瀏覽代碼

试车标准库导出/检查导出treeCode自定义

zhoudazhuang 6 月之前
父節點
當前提交
95e335cabb

+ 14 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxCommissionCheckBaseInfoDetailDao.java

@@ -3,7 +3,9 @@ package com.rongwei.bscommon.sys.dao;
 import com.rongwei.bsentity.domain.ZhcxCommissionCheckBaseInfoDetailDo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.rongwei.bsentity.dto.CommissionCheckChapterNoPulsDTO;
+import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
@@ -24,6 +26,11 @@ public interface ZhcxCommissionCheckBaseInfoDetailDao extends BaseMapper<ZhcxCom
 
     void batchUpdateChapterNoPuls(List<CommissionCheckChapterNoPulsDTO> list);
 
+    /**
+     * 根据主表id查询标准库子表数据
+     * @param map
+     * @return
+     */
     @Select("SELECT\n" +
             "*\n" +
             "FROM\n" +
@@ -33,4 +40,11 @@ public interface ZhcxCommissionCheckBaseInfoDetailDao extends BaseMapper<ZhcxCom
             "AND PID = #{standardId}\n" +
             "ORDER BY SORT ASC")
     List<ZhcxCommissionCheckBaseInfoDetailDo> listData(Map<String, Object> map);
+
+    /**
+     * 根据主表id删除标准库子表数据
+     * @param mainId
+     */
+    @Delete("DELETE from ZHCX_COMMISSION_CHECK_BASE_INFO_DETAIL where PID = #{mainId}")
+    void deleteBaseInfoDetailByMainId(@Param("mainId") String mainId);
 }

+ 41 - 5
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxCommissionCheckBaseInfoTreeDao.java

@@ -2,6 +2,8 @@ package com.rongwei.bscommon.sys.dao;
 
 import com.rongwei.bsentity.domain.ZhcxCommissionCheckBaseInfoTreeDo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
@@ -17,13 +19,47 @@ import java.util.Map;
  */
 public interface ZhcxCommissionCheckBaseInfoTreeDao extends BaseMapper<ZhcxCommissionCheckBaseInfoTreeDo> {
 
+    /**
+     * 根据主表id查询标准库树表数据
+     * @param map
+     * @return
+     */
     @Select("SELECT\n" +
-            "*\n" +
+            "\tID,\n" +
+            "\tTENANTID,\n" +
+            "\tROPTION,\n" +
+            "\tDELETED,\n" +
+            "\tCREATEDATE,\n" +
+            "\tCREATEUSERID,\n" +
+            "\tCREATEUSERNAME,\n" +
+            "\tMODIFYDATE,\n" +
+            "\tMODIFYUSERID,\n" +
+            "\tMODIFYUSERNAME,\n" +
+            "\tREMARK,\n" +
+            "\tPID,\n" +
+            "\tNAME,\n" +
+            "\tSORT,\n" +
+            "\tBASEINFOID,\n" +
+            "\tPRODUCTTYPE,\n" +
+            "\tFULLPID,\n" +
+            "\t\"LEVEL\",\n" +
+            "\tIF(SORT IS NOT NULL\n" +
+            "\tOR SORT != '',\n" +
+            "\tCONCAT(SUBSTRING_INDEX(TREECODE, '.', 1), '.', SORT),\n" +
+            "\tTREECODE) AS TREECODE\n" +
             "FROM\n" +
-            "ZHCX_COMMISSION_CHECK_BASE_INFO_TREE\n" +
+            "\tINCONTROL.ZHCX_COMMISSION_CHECK_BASE_INFO_TREE\n" +
             "WHERE\n" +
-            "DELETED = 0\n" +
-            "AND BASEINFOID = #{standardId}\n" +
-            "ORDER BY SORT ASC")
+            "\tDELETED = 0\n" +
+            "\tAND BASEINFOID = #{standardId}\n" +
+            "ORDER BY\n" +
+            "\tSORT ASC")
     List<ZhcxCommissionCheckBaseInfoTreeDo> listTreeData(Map<String, Object> map);
+
+    /**
+     * 根据主表id删除标准库树表数据
+     * @param mainId
+     */
+    @Delete("DELETE from ZHCX_COMMISSION_CHECK_BASE_INFO_TREE where BASEINFOID = #{mainId}")
+    void deleteTreeByMainId(@Param("mainId") String mainId);
 }

+ 23 - 2
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxCommissionCheckDetailTreeDao.java

@@ -89,10 +89,31 @@ public interface ZhcxCommissionCheckDetailTreeDao extends BaseMapper<ZhcxCommiss
      * @return
      */
     @Select("SELECT\n" +
-            "\t*\n" +
+            "\tID,\n" +
+            "\tTENANTID,\n" +
+            "\tROPTION,\n" +
+            "\tDELETED,\n" +
+            "\tCREATEDATE,\n" +
+            "\tCREATEUSERID,\n" +
+            "\tCREATEUSERNAME,\n" +
+            "\tMODIFYDATE,\n" +
+            "\tMODIFYUSERID,\n" +
+            "\tMODIFYUSERNAME,\n" +
+            "\tREMARK,\n" +
+            "\tPID,\n" +
+            "\tNAME,\n" +
+            "\tSORT,\n" +
+            "\tBASEINFOID,\n" +
+            "\tPRODUCTTYPE,\n" +
+            "\tFULLPID,\n" +
+            "\t\"LEVEL\",\n" +
+            "\tIF(SORT IS NOT NULL\n" +
+            "\tOR SORT != '',\n" +
+            "\tCONCAT(SUBSTRING_INDEX(TREECODE, '.', 1), '.', SORT),\n" +
+            "\tTREECODE) AS TREECODE\n" +
             "FROM\n" +
             "\tZHCX_COMMISSION_CHECK_DETAIL_TREE\n" +
-            "WHERE\n" +
+            "\tWHERE\n" +
             "\tBASEINFOID = #{checkId}\n" +
             "\tAND DELETED = 0\n" +
             "ORDER BY\n" +

+ 6 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxCommissionCheckBaseInfoDetailService.java

@@ -19,4 +19,10 @@ public interface ZhcxCommissionCheckBaseInfoDetailService extends IService<ZhcxC
     void batchUpdate(List<ZhcxCommissionCheckBaseInfoDetailDo> list);
 
     void batchUpdateChapterNoPuls(List<CommissionCheckChapterNoPulsDTO> list);
+
+    /**
+     * 根据主表id删除标准库子表数据
+     * @param mainId
+     */
+    void deleteBaseInfoDetailByMainId(String mainId);
 }

+ 5 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxCommissionCheckBaseInfoTreeService.java

@@ -13,4 +13,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ZhcxCommissionCheckBaseInfoTreeService extends IService<ZhcxCommissionCheckBaseInfoTreeDo> {
 
+    /**
+     * 根据主表id删除标准库树表数据
+     * @param mainId
+     */
+    void deleteTreeByMainId(String mainId);
 }

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

@@ -33,4 +33,9 @@ public class ZhcxCommissionCheckBaseInfoDetailServiceImpl extends ServiceImpl<Zh
     public void batchUpdateChapterNoPuls(List<CommissionCheckChapterNoPulsDTO> list) {
         baseMapper.batchUpdateChapterNoPuls(list);
     }
+
+    @Override
+    public void deleteBaseInfoDetailByMainId(String mainId) {
+        dao.deleteBaseInfoDetailByMainId(mainId);
+    }
 }

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

@@ -4,6 +4,7 @@ import com.rongwei.bsentity.domain.ZhcxCommissionCheckBaseInfoTreeDo;
 import com.rongwei.bscommon.sys.dao.ZhcxCommissionCheckBaseInfoTreeDao;
 import com.rongwei.bscommon.sys.service.ZhcxCommissionCheckBaseInfoTreeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +18,11 @@ import org.springframework.stereotype.Service;
 @Service
 public class ZhcxCommissionCheckBaseInfoTreeServiceImpl extends ServiceImpl<ZhcxCommissionCheckBaseInfoTreeDao, ZhcxCommissionCheckBaseInfoTreeDo> implements ZhcxCommissionCheckBaseInfoTreeService {
 
+    @Autowired
+    private ZhcxCommissionCheckBaseInfoTreeDao zhcxCommissionCheckBaseInfoTreeDao;
+
+    @Override
+    public void deleteTreeByMainId(String mainId) {
+        zhcxCommissionCheckBaseInfoTreeDao.deleteTreeByMainId(mainId);
+    }
 }

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

@@ -1694,14 +1694,19 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
         try {
             sheet = new XSSFWorkbook(file.getInputStream()).getSheetAt(0);
             int lastRowNum = sheet.getLastRowNum();
+            //用来保存树的数据
             List<ZhcxCommissionCheckBaseInfoTreeDo> treeList = new ArrayList<>();
+            //用来存储检查子表数据
             List<ZhcxCommissionCheckBaseInfoDetailDo> detailList = new ArrayList<>();
+            //用来存储章节目录数据
             List<ImportCheckBaseInfoDetailVo> importDetailList = new ArrayList<>();
+            //校验章节号是否存在重复的数据
             List<String> chapterNos = new ArrayList<>();
             for (int i = 1; i <= lastRowNum; i++) {
                 StringBuilder stringBuilder = new StringBuilder();
                 ImportCheckBaseInfoDetailVo importDetailVo = new ImportCheckBaseInfoDetailVo();
                 Row row = sheet.getRow(i);
+                //校验excel导入是否空行,如果空行跳过循环
                 if (ImportExcelUtils.isRowEmpty(row)) {
                     continue;
                 }
@@ -1722,6 +1727,7 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
                 if (StringUtils.isBlank(number)) {
                     stringBuilder.append("章节号必填");
                 }else {
+                    //处理excel导入把文本1识别成1.0的问题
                     boolean hasSingleDot = number.matches(".*\\..*");
                     if ("是".equals(isTitle)&&hasSingleDot){
                         number = number.replace(".0","");
@@ -1766,6 +1772,7 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
                         }
                         importDetailList.add(importDetailVo);
                     }else {
+                        //设置标准库子表导入业务数据
                         ZhcxCommissionCheckBaseInfoDetailDo detailDo = new ZhcxCommissionCheckBaseInfoDetailDo();
                         detailDo.setId(SecurityUtil.getUUID());
                         detailDo.setPid(mainId);
@@ -1798,6 +1805,7 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
                 List<ImportCheckBaseInfoDetailVo> oneLevelTreeList = importDetailList.stream().filter(info->!info.getChapterno().contains(".")).sorted(Comparator.comparing(ImportCheckBaseInfoDetailVo::getSerialNumber)).collect(Collectors.toList());
                 List<String> oneLevelClassList = oneLevelTreeList.stream().map(ImportCheckBaseInfoDetailVo::getOnelevelclassification).distinct().collect(Collectors.toList());
                 int i = 0;
+                //设置标准库树表数据
                 for (String one:oneLevelClassList){
                     i++;
                     ZhcxCommissionCheckBaseInfoTreeDo treeOneDo = new ZhcxCommissionCheckBaseInfoTreeDo();
@@ -1842,12 +1850,16 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
                     }
                 }
                 if (!treeList.isEmpty()&&StringUtils.isNotBlank(mainId)) {
+                    //后面数据量大就改用物理删除数据
+//                    zhcxCommissionCheckBaseInfoTreeService.deleteTreeByMainId(mainId);
                     final LambdaQueryWrapper<ZhcxCommissionCheckBaseInfoTreeDo> removeTreeWrapper = Wrappers.lambdaQuery();
                     removeTreeWrapper.eq(ZhcxCommissionCheckBaseInfoTreeDo::getBaseinfoid, mainId);
                     zhcxCommissionCheckBaseInfoTreeService.remove(removeTreeWrapper);
                     zhcxCommissionCheckBaseInfoTreeService.saveBatch(treeList);
                     insertDetailData(treeList,detailList);
                     if (!detailList.isEmpty()&&StringUtils.isNotBlank(mainId)){
+                        //后面数据量大就改用物理删除数据
+//                        zhcxCommissionCheckBaseInfoDetailService.deleteBaseInfoDetailByMainId(mainId);
                         final LambdaQueryWrapper<ZhcxCommissionCheckBaseInfoDetailDo> removeDetailWrapper = Wrappers.lambdaQuery();
                         removeDetailWrapper.eq(ZhcxCommissionCheckBaseInfoDetailDo::getPid, mainId);
                         zhcxCommissionCheckBaseInfoDetailService.remove(removeDetailWrapper);
@@ -1862,6 +1874,7 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
     }
 
     private void insertDetailData(List<ZhcxCommissionCheckBaseInfoTreeDo> treeList, List<ZhcxCommissionCheckBaseInfoDetailDo> detailList) {
+        //设置标准库子表的三级分类的id和树的全路径treefullid字段
         if (!treeList.isEmpty()&&!detailList.isEmpty()){
             for (ZhcxCommissionCheckBaseInfoDetailDo detailDo:detailList){
                 List<ZhcxCommissionCheckBaseInfoTreeDo> oneLevelTreeList = treeList.stream().filter(infoTreeDo->infoTreeDo.getLevel().equals(1)).collect(Collectors.toList());