Переглянути джерело

同步-同步合同段
1、同步合同段时,记录表单信息
2、表达保存时去掉同步信息记录

LHB 10 годин тому
батько
коміт
95f1fec0c0

+ 8 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContractExtend.java

@@ -18,10 +18,18 @@ public class WbsTreeContractExtend {
     @TableId
     private Long pKeyId;
 
+    /**
+     *  类型(1-施工,2-监理)
+     */
+    private Integer type;
     /**
      *  是否为同步数据(1-是,0-不是)
      */
     private Integer isSync;
+    /**
+     *  节点祖级路径
+     */
+    private String ancestors;
 
     /**
      *  创建时间

+ 9 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -1,6 +1,5 @@
 package org.springblade.manager.controller;
 
-import cn.hutool.core.io.resource.Resource;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.log.StaticLog;
 import com.alibaba.fastjson.JSON;
@@ -79,6 +78,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.annotation.Resource;
 import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
@@ -169,6 +169,7 @@ public class ExcelTabController extends BladeController {
     @Autowired
     StringRedisTemplate RedisTemplate;
 
+    private final WbsTreeContractExtendService wbsTreeContractExtendService;
     /**
      * 详情
      */
@@ -2060,6 +2061,13 @@ public class ExcelTabController extends BladeController {
         if (!result.isSuccess()) {
             return R.fail(result.getMsg());
         }
+        //保存时修改记录
+        List<String> pKeyIds = tableInfoList.stream().map(TableInfo::getPkeyId).collect(Collectors.toList());
+        wbsTreeContractExtendService.update(Wrappers.<WbsTreeContractExtend>update().lambda()
+                .set(WbsTreeContractExtend::getIsSync, 0)
+                .eq(WbsTreeContractExtend::getType, classify)
+                .eq(WbsTreeContractExtend::getPKeyId, pKeyIds));
+
         executionTime.info("----数据合并前----");
         List<String> errorPKeyIds = new ArrayList<>();
         //单个pdf加载

+ 0 - 29
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsSynchronousEViSaServiceImpl.java

@@ -16,14 +16,12 @@ import org.springblade.manager.mapper.TextdictInfoMapper;
 import org.springblade.manager.mapper.WbsTreeContractMapper;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.mapper.WbsTreeSynchronousRecordMapper;
-import org.springblade.manager.service.WbsTreeContractExtendService;
 import org.springblade.manager.service.WbsTreeContractOldHtmlService;
 import org.springblade.manager.utils.FileUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.annotation.Resource;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.StandardCopyOption;
@@ -59,9 +57,6 @@ public class WbsSynchronousEViSaServiceImpl {
     @Autowired
     private ExcelTabClient excelTabClient;
 
-    @Resource
-    private WbsTreeContractExtendService wbsTreeContractExtendService;
-
     @Transactional(rollbackFor = Exception.class)
     public void updateTextDictInfo(Long projectId, List<Long> editPrivateIds, List<TextdictInfo> addData) {
         //删除 需要新增的节点的电签和默认值
@@ -201,24 +196,13 @@ public class WbsSynchronousEViSaServiceImpl {
                 wbsTreeContractMapper.updateSortByPId(pId, wbsTreePrivate.getSort());
             }
         }
-        //添加合同段同步记录
-        List<WbsTreeContractExtend> wbsTreeContractExtends = new ArrayList<>();
 
         for (WbsTreeContract treeContract : list) {
             treeContract.setUpdateTime(DateTime.now());
             treeContract.setUpdateUser(createUserId);
-
-            WbsTreeContractExtend wbsTreeContractExtend = new WbsTreeContractExtend();
-            wbsTreeContractExtend.setPKeyId(treeContract.getPKeyId());
-            wbsTreeContractExtend.setIsSync(1);
-            wbsTreeContractExtend.setSyncTime(DateTime.now());
-            wbsTreeContractExtends.add(wbsTreeContractExtend);
         }
         wbsTreeContractService.updateBatchById(list);
 
-        //添加合同段同步记录
-        wbsTreeContractExtendService.saveOrUpdateBatch(wbsTreeContractExtends);
-
         //排序调整
         if (type.contains("7")) {
             //获取节点下的当前表单
@@ -330,19 +314,6 @@ public class WbsSynchronousEViSaServiceImpl {
                 wbsTreeContractMapper.updateSortByPId(pId, wbsTreePrivate.getSort());
             }
         }
-        //添加合同段同步记录
-        List<Long> collect1 = list.stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
-        List<WbsTreeContractExtend> wbsTreeContractExtends = new ArrayList<>();
-        for (Long pKeyId : collect1) {
-            WbsTreeContractExtend wbsTreeContractExtend = new WbsTreeContractExtend();
-            wbsTreeContractExtend.setPKeyId(pKeyId);
-            wbsTreeContractExtend.setIsSync(1);
-            wbsTreeContractExtend.setSyncTime(DateTime.now());
-            wbsTreeContractExtends.add(wbsTreeContractExtend);
-        }
-        wbsTreeContractExtendService.saveOrUpdateBatch(wbsTreeContractExtends);
-
-
 
         //单个批次一个事务,只会回滚当前批次数据
         Integer i = wbsTreeContractMapper.insertBatchSomeColumn(list);

+ 46 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsSynchronousServiceImpl.java

@@ -16,6 +16,7 @@ import org.springblade.core.tool.utils.*;
 import org.springblade.manager.entity.*;
 import org.springblade.manager.enums.WbsSyncTypeEnum;
 import org.springblade.manager.mapper.*;
+import org.springblade.manager.service.WbsTreeContractExtendService;
 import org.springblade.system.cache.ParamCache;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
@@ -23,6 +24,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -74,6 +76,10 @@ public class WbsSynchronousServiceImpl {
     @Autowired
     private WbsTreeSynchronousRecordMapper synchronousRecordMapper;
 
+    @Resource
+    private WbsTreeContractExtendService wbsTreeContractExtendService;
+
+
     @Async("taskExecutor1")
     public void syncExecute(WbsTreeSynchronousRecord wbsTreeSynchronousRecord) {
         // 类型枚举 WbsSyncTypeEnum.ALREADY_FILLED_IN_NOT_REPORTED
@@ -852,12 +858,47 @@ public class WbsSynchronousServiceImpl {
         Set<Long> pIdsNew = new HashSet<>();
         //新增数据
         Map<Long, List<WbsTreeContract>> collect2 = addData.stream().collect(Collectors.groupingBy(WbsTreeContract::getPId));
+        List<WbsTreeContractExtend> wbsTreeContractExtends = new ArrayList<>();
+        //同步的表单及祖级节点
         if (CollectionUtil.isNotEmpty(addData)) {
+            addData.forEach(f -> {
+                WbsTreeContractExtend wbsTreeContractExtend = new WbsTreeContractExtend();
+                wbsTreeContractExtend.setPKeyId(f.getPKeyId());
+                wbsTreeContractExtend.setIsSync(1);
+                wbsTreeContractExtend.setSyncTime(DateTime.now());
+                wbsTreeContractExtend.setAncestors(f.getAncestorsPId());
+                //施工
+                if(Arrays.asList("1", "2", "3").contains(f.getTableOwner())){
+                    //
+                    wbsTreeContractExtend.setType(1);
+                }
+                //监理
+                if(Arrays.asList("4", "5", "6").contains(f.getTableOwner())){
+                    wbsTreeContractExtend.setType(2);
+                }
+                wbsTreeContractExtends.add(wbsTreeContractExtend);
+            });
             pIdsNew.addAll(collect2.keySet());
         }
         //修改数据
         Map<Long, List<WbsTreeContract>> collect1 = editData.stream().collect(Collectors.groupingBy(WbsTreeContract::getPId));
         if (CollectionUtil.isNotEmpty(editData)) {
+            editData.forEach(f -> {
+                WbsTreeContractExtend wbsTreeContractExtend = new WbsTreeContractExtend();
+                wbsTreeContractExtend.setPKeyId(f.getPKeyId());
+                wbsTreeContractExtend.setIsSync(1);
+                wbsTreeContractExtend.setSyncTime(DateTime.now());
+                //施工
+                if(Arrays.asList("1", "2", "3").contains(f.getTableOwner())){
+                    //
+                    wbsTreeContractExtend.setType(1);
+                }
+                //监理
+                if(Arrays.asList("4", "5", "6").contains(f.getTableOwner())){
+                    wbsTreeContractExtend.setType(2);
+                }
+                wbsTreeContractExtends.add(wbsTreeContractExtend);
+            });
             pIdsNew.addAll(collect1.keySet());
         }
         //计数 同步节点数量 按最小节点统计
@@ -910,6 +951,11 @@ public class WbsSynchronousServiceImpl {
         }
 
         System.err.println(errorMsg);
+
+        //添加记录
+        if(CollectionUtil.isNotEmpty(wbsTreeContractExtends)){
+            wbsTreeContractExtendService.saveOrUpdateBatch(wbsTreeContractExtends);
+        }
         synchronousRecordMapper.update(null, Wrappers.<WbsTreeSynchronousRecord>lambdaUpdate()
                 .set(WbsTreeSynchronousRecord::getStatus, 2)
                 .set(WbsTreeSynchronousRecord::getErrorMsg, null)