Bläddra i källkod

质检-上报
1、记录历史html的时候区分监理和施工

LHB 1 månad sedan
förälder
incheckning
07ba1a7025

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java

@@ -208,7 +208,7 @@ public interface WbsTreeContractClient {
     Integer findIsExistTreeNode(List<String> processNodeList);
 
     @PostMapping(API_PREFIX + "/queryListByPIds")
-    List<WbsTreeContract> queryListByPIds(@RequestBody List<Long> pIds);
+    List<WbsTreeContract> queryListByPIds(@RequestBody List<Long> pIds,@RequestParam Integer classify);
 
     @GetMapping(API_PREFIX + "/saveNameRuleByPkeyId")
     void saveNameRuleByPkeyId(@RequestParam Long  pKeyId, @RequestParam String s,  @RequestParam Long projectId);

+ 40 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -1230,8 +1230,48 @@ public class InformationWriteQueryController extends BladeController {
                 return R.data(300, false, "未查询到填报信息,上报失败");
             }
         } else { //质检
+            //记录选中节点的所有表单旧html
+            List<Long> list = Arrays.stream(startTaskVO.getIds().split(",")).map(Long::parseLong).collect(Collectors.toList());
+            List<WbsTreeContract> wbsTreeContracts =  wbsTreeContractClient.queryListByPIds(list,startTaskVO.getClassify());
+
+
             businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, startTaskVO.getIds().replaceAll(",", "")).eq(InformationQuery::getClassify, startTaskVO.getClassify().toString()).eq(InformationQuery::getType, 1).last("order by id desc limit 1"));
             if (businessData != null) {
+
+                //处理html 复制之后记录在新表中w
+                if (CollectionUtils.isNotEmpty(wbsTreeContracts)) {
+                    List<WbsTreeContractOldHtml> data = new ArrayList<>();
+                    try {
+                        for (WbsTreeContract wbsTreeContract : wbsTreeContracts) {
+                            ExcelTab byId = excelTabClient.getById(String.valueOf(wbsTreeContract.getExcelId()));
+                            WbsTreeContractOldHtml oldHtml = new WbsTreeContractOldHtml();
+                            oldHtml.setId(SnowFlakeUtil.getId());
+                            oldHtml.setCreateUser(getUser().getUserId());
+                            String htmlUrl = wbsTreeContract.getHtmlUrl();
+                            // 获取或下载文件
+                            Path sourcePath = FileUtils.getOrDownloadFile(htmlUrl);
+                            // 生成副本路径
+                            Path copyPath = FileUtils.generateCopyPath(sourcePath,wbsTreeContract.getPKeyId());
+                            // 执行复制操作(覆盖已存在的文件)
+                            Files.copy(sourcePath, copyPath, StandardCopyOption.REPLACE_EXISTING);
+
+                            oldHtml.setContractFormId(wbsTreeContract.getPKeyId());
+                            oldHtml.setOldHtmlUrl(copyPath.toFile().getAbsolutePath());
+                            //记录历史excel路径
+                            oldHtml.setOldExcelUrl(byId.getFileUrl());
+                            data.add(oldHtml);
+                        }
+                        List<Long> collect = data.stream().map(WbsTreeContractOldHtml::getContractFormId).collect(Collectors.toList());
+                        //删除旧记录
+                        wbsTreeContractOldHtmlClient.deleteByContractFormIds(collect);
+
+                        wbsTreeContractOldHtmlClient.save(data);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        throw new ServiceException(e.getMessage());
+                    }
+                }
+
                 //设置业务数据ID
                 startTaskVO.setIds(businessData.getId().toString());
                 return this.batchTask(startTaskVO);

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -502,8 +502,8 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
 
 
     @Override
-    public List<WbsTreeContract> queryListByPIds(List<Long> pIds) {
-        return wbsTreeContractService.queryListByPIds(pIds);
+    public List<WbsTreeContract> queryListByPIds(List<Long> pIds, Integer classify) {
+        return wbsTreeContractService.queryListByPIds(pIds, classify);
     }
 
 

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java

@@ -98,6 +98,7 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
 
     List<APIWbsContractSubdivisionVo> getWbsContractSubdivision(String contractId);
 
+    List<WbsTreeContract> queryListByPIds(List<Long> pIds, Integer classify);
     ResponseEntity<Resource> exportTree(Long contractId, HttpServletResponse response) throws IOException, InvalidFormatException;
 
     R importPartitionCode(MultipartFile file);

+ 13 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -5505,4 +5505,17 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
             }
         }
     }
+    @Override
+    public List<WbsTreeContract> queryListByPIds(List<Long> pIds, Integer classify) {
+        LambdaQueryWrapper<WbsTreeContract> eq = Wrappers.<WbsTreeContract>lambdaQuery()
+                .in(WbsTreeContract::getPId, pIds)
+                .eq(WbsTreeContract::getIsDeleted, 0);
+        if(Objects.equals(1,classify)){
+            eq.in(WbsTreeContract::getTableOwner, 1,2,3);
+        }
+        if(Objects.equals(2,classify)){
+            eq.in(WbsTreeContract::getTableOwner, 4,5,6);
+        }
+        return baseMapper.selectList(eq);
+    }
 }