liuyc 2 жил өмнө
parent
commit
5c4f74938c

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialDetectionController.java

@@ -153,7 +153,7 @@ public class TrialDetectionController extends BladeController {
                 .and(obj -> obj.ne(TrialSelfInspectionRecord::getTaskStatus, "未上报").ne(TrialSelfInspectionRecord::getTaskStatus, "已废除"))
                 .in(TrialSelfInspectionRecord::getId, Func.toLongList(ids)));
         if (recordList.size() > 0) {
-            return R.fail("只能删除未上报记录信息,操作失败");
+            return R.fail("只能删除未上报或已废除的试验记录信息,操作失败");
         }
         //刪除按钮状态记录
         String sql1 = "delete from u_trial_self_data_record where record_id in(" + ids + ")";

+ 0 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java

@@ -71,8 +71,6 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
 
     List<WbsTreePrivate> selectNodeAndTable2(String wbsId, String referencePrivateWbsProjectId);
 
-    boolean updateBatchByPid(@Param("wbsTreePrivates") WbsTreePrivateDTO3 wbsTreePrivates);
-
     List<WbsTreePrivate> selectByIds(@Param("projectId") String projectId, @Param("ids") List<String> ids);
 
     void updateBatchByIds(@Param("wbsTree") WbsTree wbsTree, @Param("projectId") String projectId);

+ 0 - 10
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -238,16 +238,6 @@
           AND is_deleted = 0
     </update>
 
-    <update id="updateBatchByPid">
-        UPDATE m_wbs_tree_private
-        SET node_name   = #{wbsTreePrivates.nodeName},
-            full_name   =#{wbsTreePrivates.nodeName},
-            table_type  = #{wbsTreePrivates.tableType},
-            table_owner = #{wbsTreePrivates.tableOwner},
-            fill_rate = #{wbsTreePrivates.fillRate}
-        WHERE p_key_id = #{wbsTreePrivates.pKeyId}
-    </update>
-
     <update id="updateBatchByIds">
         UPDATE m_wbs_tree_private
         SET node_name = #{wbsTree.nodeName},

+ 28 - 33
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -290,56 +290,51 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
     public boolean updateBatchByPid(List<WbsTreePrivateDTO3> wbsTreePrivates) {
         try {
             //修改当前私有项目元素表基础信息
             wbsTreePrivates.forEach(list -> {
-                baseMapper.updateBatchByPid(list);
+                this.update(Wrappers.<WbsTreePrivate>lambdaUpdate()
+                        .set(WbsTreePrivate::getNodeName, list.getNodeName())
+                        .set(WbsTreePrivate::getFullName, list.getNodeName())
+                        .set(WbsTreePrivate::getTableType, list.getTableType())
+                        .set(WbsTreePrivate::getTableOwner, list.getTableOwner())
+                        .set(WbsTreePrivate::getFillRate, list.getFillRate())
+                        .eq(WbsTreePrivate::getPKeyId, list.getPKeyId())
+                );
             });
 
+            //获取最新项目表信息
+            List<Long> pKeyIds = wbsTreePrivates.stream().map(WbsTreePrivateDTO3::getPKeyId).collect(Collectors.toList());
+            List<WbsTreePrivate> wbsTreePrivateNew = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
+                    .select(WbsTreePrivate::getNodeName, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner, WbsTreePrivate::getId, WbsTreePrivate::getSort, WbsTreePrivate::getProjectId)
+                    .in(WbsTreePrivate::getPKeyId, pKeyIds));
+            String projectId = wbsTreePrivateNew.stream().map(WbsTreePrivate::getProjectId).findAny().orElse(null);
+
             //修改当前项目下所有合同段中的元素表基础信息
-            String projectId = "";
-            String parentId = "";
-            List<WbsTreePrivate> wbsTreePrivateList = new ArrayList<>();
-            int number = 0;
-            for (WbsTreePrivateDTO3 wbsTreePrivate : wbsTreePrivates) {
-                WbsTreePrivate wbsTreePrivate1 = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getPKeyId, wbsTreePrivate.getPKeyId()));
-                wbsTreePrivateList.add(wbsTreePrivate1);
-                if (number == 0) {
-                    projectId = wbsTreePrivate1.getProjectId();
-                    parentId = String.valueOf(wbsTreePrivate1.getParentId());
-                    number = 1;
-                }
-            }
-            if (StringUtils.isNotEmpty(projectId) && StringUtils.isNotEmpty(parentId) && wbsTreePrivateList.size() > 0) {
+            if (StringUtils.isNotEmpty(projectId) && wbsTreePrivateNew.size() > 0) {
                 //获取所有合同段ids
-                List<ContractInfo> contractInfos = contractInfoMapper.selectList(Wrappers.<ContractInfo>query().lambda().eq(ContractInfo::getPId, projectId));
-                if (contractInfos.size() > 0) {
-                    List<Long> contractInfoIds = contractInfos.stream().map(ContractInfo::getId).collect(Collectors.toList());
-                    for (Long contractInfoId : contractInfoIds) {
-                        for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateList) {
+                List<Long> contractInfoIds = contractInfoMapper.selectList(Wrappers.<ContractInfo>lambdaQuery().select(ContractInfo::getId).eq(ContractInfo::getPId, projectId)).stream().map(ContractInfo::getId).collect(Collectors.toList());
+                if (contractInfoIds.size() > 0) {
+                    for (Long contractId : contractInfoIds) {
+                        for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateNew) {
                             //判断当前合同段是否存在该元素表、以及该元素表父级节点(包括新增、复制节点)
-                            List<WbsTreeContract> wbsTreeContract = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
-                                    .eq(WbsTreeContract::getContractId, contractInfoId)
-                                    .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
+                            long row = wbsTreeContractMapper.selectCount(Wrappers.<WbsTreeContract>lambdaQuery()
                                     .eq(WbsTreeContract::getStatus, 1)
-                                    .eq(WbsTreeContract::getId, wbsTreePrivate.getId())
-                                    .or()
-                                    .eq(WbsTreeContract::getParentId, wbsTreePrivate.getId())
-                                    .or()
-                                    .eq(WbsTreeContract::getOldId, wbsTreePrivate.getId())
+                                    .eq(WbsTreeContract::getContractId, contractId)
+                                    .eq(WbsTreeContract::getProjectId, projectId)
+                                    .and(obj -> obj.eq(WbsTreeContract::getId, wbsTreePrivate.getId()).or().eq(WbsTreeContract::getParentId, wbsTreePrivate.getId()).or().eq(WbsTreeContract::getOldId, wbsTreePrivate.getId()))
                             );
                             //修改原始、复制、新增节点下的元素表
-                            if (wbsTreeContract.size() > 0) {
-                                wbsTreeContractMapper.updateContractTablesInfo(contractInfoId, wbsTreePrivate);
+                            if (row > 0) {
+                                wbsTreeContractMapper.updateContractTablesInfo(contractId, wbsTreePrivate);
                             }
                         }
                     }
                 }
             }
         } catch (Exception e) {
-            throw new ServiceException("修改同步到合同段时异常 " + e.getMessage());
+            throw new ServiceException("修改同步到合同段时异常" + e.getMessage());
         }
         return true;
     }
@@ -1799,7 +1794,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             tableOwnerList = Func.toStrList(tableOwners);
         }
 
-        return baseMapper.selectWbsTreeTrialTabList(roleAndTabOwners, tableType, wbsTreePrivate.getProjectId(), wbsTreePrivate.getWbsId(), wbsTreePrivate.getId(), tableOwnerList,contractId);
+        return baseMapper.selectWbsTreeTrialTabList(roleAndTabOwners, tableType, wbsTreePrivate.getProjectId(), wbsTreePrivate.getWbsId(), wbsTreePrivate.getId(), tableOwnerList, contractId);
     }
 
     @Override

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

@@ -847,6 +847,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
     }
 
     //新增独立表单库数据
+    @Async
     private void insertDLTabAsync(WbsTreeContractDTO pawDTO) {
         //获取当前引用项目的独立表
         List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateService.getBaseMapper().selectList(Wrappers.<WbsTreePrivate>lambdaQuery()