|
@@ -5,12 +5,14 @@ import cn.hutool.core.util.ObjectUtil;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.aspose.words.*;
|
|
import com.aspose.words.*;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.rongwei.bscommon.sys.dao.ZhcxCommissionCheckBaseInfoDetailDao;
|
|
import com.rongwei.bscommon.sys.dao.ZhcxCommissionCheckBaseInfoDetailDao;
|
|
import com.rongwei.bscommon.sys.dao.ZhcxCommissionCheckBaseInfoTreeDao;
|
|
import com.rongwei.bscommon.sys.dao.ZhcxCommissionCheckBaseInfoTreeDao;
|
|
import com.rongwei.bscommon.sys.dao.ZhcxCommissionCheckDetailDao;
|
|
import com.rongwei.bscommon.sys.dao.ZhcxCommissionCheckDetailDao;
|
|
import com.rongwei.bscommon.sys.feign.CXCommonFeginClient;
|
|
import com.rongwei.bscommon.sys.feign.CXCommonFeginClient;
|
|
import com.rongwei.bscommon.sys.service.*;
|
|
import com.rongwei.bscommon.sys.service.*;
|
|
import com.rongwei.bscommon.sys.utils.ExceptionUtils;
|
|
import com.rongwei.bscommon.sys.utils.ExceptionUtils;
|
|
|
|
+import com.rongwei.bscommon.sys.utils.ImportCommissionHelp;
|
|
import com.rongwei.bsentity.domain.*;
|
|
import com.rongwei.bsentity.domain.*;
|
|
import com.rongwei.bscommon.sys.dao.ZhcxCommissionCheckDao;
|
|
import com.rongwei.bscommon.sys.dao.ZhcxCommissionCheckDao;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -18,10 +20,16 @@ import com.rongwei.bsentity.domain.ZhcxCommissionCheckParameterSetDetalDo;
|
|
import com.rongwei.bsentity.domain.ZhcxCommissionCheckParameterSetDo;
|
|
import com.rongwei.bsentity.domain.ZhcxCommissionCheckParameterSetDo;
|
|
import com.rongwei.bsentity.dto.CheckDetailDTO;
|
|
import com.rongwei.bsentity.dto.CheckDetailDTO;
|
|
import com.rongwei.bsentity.dto.CommissionCheckDTO;
|
|
import com.rongwei.bsentity.dto.CommissionCheckDTO;
|
|
|
|
+import com.rongwei.bsentity.dto.commission.ImportProjectCheckBO;
|
|
|
|
+import com.rongwei.bsentity.dto.commission.ImportProjectCheckDto;
|
|
|
|
+import com.rongwei.bsentity.dto.commission.ParseDocBO;
|
|
import com.rongwei.bsentity.vo.FormDataCheckVO;
|
|
import com.rongwei.bsentity.vo.FormDataCheckVO;
|
|
import com.rongwei.bsentity.vo.ZhcxCommissionCheckDetailStandardWordVO;
|
|
import com.rongwei.bsentity.vo.ZhcxCommissionCheckDetailStandardWordVO;
|
|
import com.rongwei.bsentity.vo.ZhcxCommissionCheckDetailWordVO;
|
|
import com.rongwei.bsentity.vo.ZhcxCommissionCheckDetailWordVO;
|
|
|
|
+import com.rongwei.rwadmincommon.system.domain.SysDictDo;
|
|
|
|
+import com.rongwei.rwadmincommon.system.service.SysDictService;
|
|
import com.rongwei.rwcommon.base.R;
|
|
import com.rongwei.rwcommon.base.R;
|
|
|
|
+import com.rongwei.rwcommon.base.exception.CustomException;
|
|
import com.rongwei.rwcommon.utils.DateUtils;
|
|
import com.rongwei.rwcommon.utils.DateUtils;
|
|
import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
import com.rongwei.rwcommon.utils.StringUtils;
|
|
import com.rongwei.rwcommon.utils.StringUtils;
|
|
@@ -34,9 +42,11 @@ import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.core.io.ClassPathResource;
|
|
import org.springframework.core.io.ClassPathResource;
|
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.rongwei.rwcommoncomponent.excel.aspose.ExcelExportUtil;
|
|
import com.rongwei.rwcommoncomponent.excel.aspose.ExcelExportUtil;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import javax.annotation.PostConstruct;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
@@ -86,6 +96,9 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
|
|
@Autowired
|
|
@Autowired
|
|
private ZhcxCommissionCheckDetailTreeService zhcxCommissionCheckDetailTreeService;
|
|
private ZhcxCommissionCheckDetailTreeService zhcxCommissionCheckDetailTreeService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ZhcxCommissionCheckDetailService zhcxCommissionCheckDetailService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private ZhcxCommissionCheckBaseInfoDetailDao zhcxCommissionCheckBaseInfoDetailDao;
|
|
private ZhcxCommissionCheckBaseInfoDetailDao zhcxCommissionCheckBaseInfoDetailDao;
|
|
|
|
|
|
@@ -97,6 +110,9 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
|
|
|
|
|
|
private static CXCommonFeginClient commonFeginClient;
|
|
private static CXCommonFeginClient commonFeginClient;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysDictService sysDictService;
|
|
|
|
+
|
|
@PostConstruct
|
|
@PostConstruct
|
|
public void info() {
|
|
public void info() {
|
|
commonFeginClient = autoCommonFeginClient;
|
|
commonFeginClient = autoCommonFeginClient;
|
|
@@ -1352,4 +1368,76 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
|
|
}
|
|
}
|
|
return 3;
|
|
return 3;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 导入明细
|
|
|
|
+ *
|
|
|
|
+ * @param importDto
|
|
|
|
+ */
|
|
|
|
+ @Transactional
|
|
|
|
+ @Override
|
|
|
|
+ public ImportProjectCheckBO importCheckDetail(ImportProjectCheckDto importDto, MultipartFile file) {
|
|
|
|
+
|
|
|
|
+ final ZhcxProjectManageDo project = zhcxProjectManageService.getById(importDto.getProjectId());
|
|
|
|
+ final Document doc = multipartFile2Doc(file);
|
|
|
|
+ List<SysDictDo> list = sysDictService.getDictsByType("test_address");
|
|
|
|
+ Map<String, SysDictDo> dictMap = new HashMap<>(list.size());
|
|
|
|
+ list.stream().forEach(item -> dictMap.put(item.getName(), item));
|
|
|
|
+
|
|
|
|
+ final ParseDocBO docBO = ParseDocBO.builder()
|
|
|
|
+ .id(importDto.getId())
|
|
|
|
+ .dictMap(dictMap)
|
|
|
|
+ .build();
|
|
|
|
+
|
|
|
|
+ //解析word文档
|
|
|
|
+ return ImportCommissionHelp.parseDoc(doc, project, docBO);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 导入明细并保存
|
|
|
|
+ *
|
|
|
|
+ * @param importDto
|
|
|
|
+ * @param file
|
|
|
|
+ */
|
|
|
|
+ @Transactional
|
|
|
|
+ @Override
|
|
|
|
+ public void saveImportCheckDetail(ImportProjectCheckDto importDto, MultipartFile file) {
|
|
|
|
+
|
|
|
|
+ final ZhcxCommissionCheckDo commissionCheckDo = getById(importDto.getId());
|
|
|
|
+ importDto.setProjectId(commissionCheckDo.getProjectid());
|
|
|
|
+
|
|
|
|
+ //删除树
|
|
|
|
+ final LambdaQueryWrapper<ZhcxCommissionCheckDetailTreeDo> removeTreeWrapper = Wrappers.lambdaQuery();
|
|
|
|
+ removeTreeWrapper.eq(ZhcxCommissionCheckDetailTreeDo::getBaseinfoid, commissionCheckDo.getProjectcode());
|
|
|
|
+ zhcxCommissionCheckDetailTreeService.remove(removeTreeWrapper);
|
|
|
|
+
|
|
|
|
+ //删除明细
|
|
|
|
+ final LambdaQueryWrapper<ZhcxCommissionCheckDetailDo> removeDetailWrapper = Wrappers.lambdaQuery();
|
|
|
|
+ removeTreeWrapper.eq(ZhcxCommissionCheckDetailTreeDo::getPid, importDto.getId());
|
|
|
|
+ zhcxCommissionCheckDetailService.remove(removeDetailWrapper);
|
|
|
|
+
|
|
|
|
+ final ImportProjectCheckBO importCheckDetail = importCheckDetail(importDto, file);
|
|
|
|
+
|
|
|
|
+ if(ObjectUtil.isNotEmpty(importCheckDetail.getTreeList())) {
|
|
|
|
+ zhcxCommissionCheckDetailTreeService.saveBatch(importCheckDetail.getTreeList());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(ObjectUtil.isNotEmpty(importCheckDetail.getDetailList())) {
|
|
|
|
+ zhcxCommissionCheckDetailService.saveBatch(importCheckDetail.getDetailList());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 上传文件转换成
|
|
|
|
+ *
|
|
|
|
+ * @param file
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ private Document multipartFile2Doc(MultipartFile file) {
|
|
|
|
+ try {
|
|
|
|
+ return new Document(file.getInputStream());
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw new CustomException("文件获取失败");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|