wangxuan 7 months ago
parent
commit
9141e8c497

+ 18 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxCommissionCheckDao.java

@@ -26,6 +26,12 @@ public interface ZhcxCommissionCheckDao extends BaseMapper<ZhcxCommissionCheckDo
      */
     int checkedShippedByMasterId(@Param("masterId") String masterId);
 
+    /**
+     * 根据主表id 查询该机台是否已经发运2(取项目清单)
+     * @return
+     */
+    int checkedShippedByMasterId2(@Param("masterId") String masterId);
+
     /**
      * 根据主表id 查询该项目下还没有发运的机台
      * @param masterId
@@ -33,6 +39,12 @@ public interface ZhcxCommissionCheckDao extends BaseMapper<ZhcxCommissionCheckDo
      */
     List<ZhcxCommissionCheckDo> getOtherShippeCheckList(@Param("masterId") String masterId);
 
+    /**
+     * 根据主表id 查询该项目下还没有发运的机台2(取项目清单)
+     * @param masterId
+     * @return
+     */
+    List<ZhcxCommissionCheckDo> getOtherShippeCheckList2(@Param("masterId") String masterId);
     /**
      * 删除试车检查内容下的所有子表(危险操作)
      * @param pid 试车检查主表id
@@ -58,4 +70,10 @@ public interface ZhcxCommissionCheckDao extends BaseMapper<ZhcxCommissionCheckDo
         }
         return resultMap;
     }
+
+    /**
+     * 删除试车检查内容下的所有树表(危险操作_直删)
+     * @param pid 试车检查主表id
+     */
+    void deleteTreeByPid(@Param("pid") String pid);
 }

+ 8 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxCommissionCheckDetailTreeService.java

@@ -4,6 +4,8 @@ import com.rongwei.bsentity.domain.ZhcxCommissionCheckDetailTreeDo;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.rongwei.bsentity.dto.commission.CopyDetailDto;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务类
@@ -28,4 +30,10 @@ public interface ZhcxCommissionCheckDetailTreeService extends IService<ZhcxCommi
      * @param copyDetail
      */
     void copyByPid(CopyDetailDto copyDetail);
+
+    /**
+     * 异步批量保存
+     * @param resultTreeDo
+     */
+    void saveTreeBatch(List<ZhcxCommissionCheckDetailTreeDo> resultTreeDo);
 }

+ 9 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxCommissionCheckDetailTreeServiceImpl.java

@@ -6,8 +6,11 @@ import com.rongwei.bscommon.sys.service.ZhcxCommissionCheckDetailTreeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bsentity.dto.commission.CopyDetailDto;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -42,4 +45,10 @@ public class ZhcxCommissionCheckDetailTreeServiceImpl extends ServiceImpl<ZhcxCo
         dao.copyByPid(copyDetail);
 //        dao.updatePid4Copy(copyDetail);
     }
+
+    @Override
+    @Async("batchSaveThreadPool")
+    public void saveTreeBatch(List<ZhcxCommissionCheckDetailTreeDo> resultTreeDo) {
+        this.saveBatch(resultTreeDo);
+    }
 }

+ 36 - 4
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxCommissionCheckServiceImpl.java

@@ -267,8 +267,11 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
         if(!resultCheckParameterSetDetail.isEmpty()){
             commissionCheckParameterSetDetalService.saveBatch(resultCheckParameterSetDetail);
         }
+        // 保存树表
         if(!targetList.isEmpty()){
-            zhcxCommissionCheckDetailTreeService.saveBatch(targetList);
+            //  异步保存
+            //zhcxCommissionCheckDetailTreeService.saveBatch(targetList);
+            zhcxCommissionCheckDetailTreeService.saveTreeBatch(targetList);
         }
         return R.ok("保存成功");
     }
@@ -280,11 +283,11 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
             return R.error("主表id为空");
         }
         // 判断该机台是否已发运 如果已发运 就直接返回
-        if(baseMapper.checkedShippedByMasterId(masterId) >0){
+        if(baseMapper.checkedShippedByMasterId2(masterId) == 0){
             return R.ok("该机台已发运,无需同步");
         }
         // 找到该项目下面其他 还没有发运的 机台主表数据
-        List<ZhcxCommissionCheckDo> list = baseMapper.getOtherShippeCheckList(masterId);
+        List<ZhcxCommissionCheckDo> list = baseMapper.getOtherShippeCheckList2(masterId);
         if(list.isEmpty()){
             return R.ok("暂无其他机台需要同步");
         }
@@ -296,9 +299,34 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
         if(detailDos.isEmpty()){
             return R.ok("试车检查内容为空");
         }
-        // 创建检查内容结果集合
+        // 主试车检查下的试车子树表
+        LambdaQueryWrapper<ZhcxCommissionCheckDetailTreeDo> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.eq(ZhcxCommissionCheckDetailTreeDo::getDeleted,"0")
+                .eq(ZhcxCommissionCheckDetailTreeDo::getBaseinfoid,masterId);
+        List<ZhcxCommissionCheckDetailTreeDo> treeDoList = zhcxCommissionCheckDetailTreeService.list(queryWrapper1);
+        if(treeDoList.isEmpty()){
+            return R.ok("左侧树数据为空");
+        }
+        // 创建检查内容结果集合+树集合
         List<ZhcxCommissionCheckDetailDo>  resultCheckDetailDo = new ArrayList<>();
+        List<ZhcxCommissionCheckDetailTreeDo>  resultTreeDo = new ArrayList<>();
         for (ZhcxCommissionCheckDo zhcxCommissionCheckDo : list) {
+            // 左侧树数据同步
+            baseMapper.deleteTreeByPid(zhcxCommissionCheckDo.getId());
+            treeDoList.forEach(tree -> {
+                ZhcxCommissionCheckDetailTreeDo target = new ZhcxCommissionCheckDetailTreeDo();
+                BeanUtils.copyProperties(tree, target);
+                String id = tree.getId().split("_")[0]+"_"+zhcxCommissionCheckDo.getProjectcode()+zhcxCommissionCheckDo.getMachineno();
+                target.setId(id);
+                target.setRemark(tree.getId().split("_")[0]);
+                target.setBaseinfoid(zhcxCommissionCheckDo.getId());
+                if(!target.getPid().equals("-1")){
+                    String pid = target.getPid().split("_")[0]+"_"+zhcxCommissionCheckDo.getProjectcode()+zhcxCommissionCheckDo.getMachineno();
+                    target.setPid(pid);
+                }
+                resultTreeDo.add(target);
+            });
+
             // 1.将其他机台的子表全删
             baseMapper.deleteCheckDetailByPid(zhcxCommissionCheckDo.getId());
             Map<String, ZhcxCommissionCheckDetailDo> historyDetailMap = baseMapper.getHistoryDetailMap(zhcxCommissionCheckDo.getId());
@@ -334,6 +362,10 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
             // 异步保存
             commissionCheckDetailService.saveCheckDetailBatch(resultCheckDetailDo);
         }
+        if(!resultTreeDo.isEmpty()){
+            //  异步保存
+            zhcxCommissionCheckDetailTreeService.saveTreeBatch(resultTreeDo);
+        }
         return R.ok("同步成功");
     }
     /*@Async("batchSaveThreadPool")

+ 41 - 0
business-common/src/main/resources/mybatis/business/ZhcxCommissionCheckDao.xml

@@ -7,6 +7,10 @@
         UPDATE ZHCX_COMMISSION_CHECK_DETAIL SET DELETED = '1' WHERE PID = #{pid}
     </update>
 
+    <delete id="deleteTreeByPid">
+        DELETE FROM INCONTROL.ZHCX_COMMISSION_CHECK_DETAIL_TREE WHERE BASEINFOID = #{pid}
+    </delete>
+
     <select id="checkedShippedByMasterId" resultType="java.lang.Integer">
         SELECT COUNT(*) AS count
         FROM INCONTROL.ZHCX_PROJECT_MANAGE_RECTIFY_BATCH t1
@@ -19,6 +23,21 @@
             )
     </select>
 
+    <select id="checkedShippedByMasterId2" resultType="java.lang.Integer">
+        SELECT
+            COUNT(*) AS count
+        FROM
+            INCONTROL.ZHCX_PROJECT_DEVICE_NUMBER
+        WHERE
+            ID = (
+            SELECT
+            MACHINEID
+            FROM
+            INCONTROL.ZHCX_COMMISSION_CHECK t2
+            WHERE
+            t2.ID = #{masterId} AND DELETED ='0' ) AND (STATUS !='发运' OR  STATUS IS NULL)
+    </select>
+
     <select id="getOtherShippeCheckList" resultType="com.rongwei.bsentity.domain.ZhcxCommissionCheckDo">
         SELECT c.* FROM INCONTROL.ZHCX_COMMISSION_CHECK c WHERE c.DELETED = '0' AND c.PROJECTCODE = (
             SELECT c.PROJECTCODE FROM INCONTROL.ZHCX_COMMISSION_CHECK c WHERE c.DELETED = '0' AND c.ID = #{masterId}
@@ -46,6 +65,28 @@
         )
     </select>
 
+    <select id="getOtherShippeCheckList2" resultType="com.rongwei.bsentity.domain.ZhcxCommissionCheckDo">
+        SELECT
+            c.*
+        FROM
+            INCONTROL.ZHCX_COMMISSION_CHECK c
+                JOIN INCONTROL.ZHCX_PROJECT_DEVICE_NUMBER nu ON
+                c.MACHINEID = nu.ID
+                    AND nu.DELETED = '0'
+                    AND (nu.STATUS != '发运'
+		OR nu.STATUS IS NULL)
+        WHERE
+            c.PROJECTCODE = (
+                SELECT
+                    c.PROJECTCODE
+                FROM
+                    INCONTROL.ZHCX_COMMISSION_CHECK c
+                WHERE
+                    c.DELETED = '0'
+                  AND c.ID = #{masterId}
+            )
+          AND c.ID != #{masterId}
+    </select>
     <select id="selectDetailListByPidAndChapterno" resultType="com.rongwei.bsentity.domain.ZhcxCommissionCheckDetailDo">
         SELECT *
         FROM INCONTROL.ZHCX_COMMISSION_CHECK_DETAIL

+ 3 - 0
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxCommissionCheckDetailTreeDo.java

@@ -2,6 +2,8 @@ package com.rongwei.bsentity.domain;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.rongwei.rwcommon.base.BaseDo;
+
+import java.io.Serializable;
 import java.util.Date;
 import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
@@ -74,6 +76,7 @@ public class ZhcxCommissionCheckDetailTreeDo extends BaseDo {
      */
     @TableField("LEVEL")
     private Integer level;
+
     @TableField("TREECODE")
     private String treecode;