فهرست منبع

项目删除bug

liuyc 2 سال پیش
والد
کامیت
d1fe7de1d6

+ 7 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ProjectInfoController.java

@@ -1,5 +1,6 @@
 package org.springblade.manager.controller;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.*;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -64,8 +65,11 @@ public class ProjectInfoController extends BladeController {
             @ApiImplicitParam(value = "ReferenceWbsTemplateType", name = "ReferenceWbsTemplateType", required = true)
     })
     public R<ProjectInfoVO2> detail2(ProjectInfo projectInfo) {
-        ProjectInfoVO2 detail = projectInfoService.getOneByCondition(projectInfo.getId(), projectInfo.getReferenceWbsTemplateId(), projectInfo.getReferenceWbsTemplateType());
-        return R.data(detail);
+        if (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateId()) && ObjectUtil.isNotEmpty(projectInfo.getId()) && ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateType())) {
+            ProjectInfoVO2 detail = projectInfoService.getOneByCondition(projectInfo.getId(), projectInfo.getReferenceWbsTemplateId(), projectInfo.getReferenceWbsTemplateType());
+            return R.data(detail);
+        }
+        return R.fail(200, "未查询到信息");
     }
 
 
@@ -232,6 +236,7 @@ public class ProjectInfoController extends BladeController {
 
     /**
      * 保存或修改分配项目级wbs树
+     *
      * @return
      */
     @PostMapping("/submit-wbsTree-project")

+ 11 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -312,7 +312,15 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 
     @Override
     public Long findWbsTreePrivate(String ids) {
-        return baseMapper.selectCount(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getProjectId, ids));
+        List<WbsTreePrivate> wbsTreePrivates = baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda().select(WbsTreePrivate::getParentId).eq(WbsTreePrivate::getProjectId, ids));
+        boolean allParentIdAreMinus10 = wbsTreePrivates.stream().allMatch(f -> f.getParentId() == -10L);
+        if (allParentIdAreMinus10) {
+            //如果都是元素库引用的表,那么直接全部删除
+            jdbcTemplate.execute("delete from m_wbs_tree_private where project_id = " + ids);
+            return 0L;
+        } else {
+            return 1L;
+        }
     }
 
     @Override
@@ -969,7 +977,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                         insertList.forEach(i -> i.setId(SnowFlakeUtil.getId()));
                         this.wbsParamServiceImpl.saveOrUpdateBatch(insertList, 1000);
                         /*生成公式,并自动绑定元素,同key复用一个公式*/
-                        Map<String, Long> formulaIdeyMap =this.wbsParamServiceImpl.formulaIdKeyMap(insertList.stream().map(WbsParam::getK).collect(Collectors.toList()));
+                        Map<String, Long> formulaIdeyMap = this.wbsParamServiceImpl.formulaIdKeyMap(insertList.stream().map(WbsParam::getK).collect(Collectors.toList()));
                       /*  Map<Long, Formula> insertFormulaMap = insertList.stream().map(e -> {
                             Map<String, Object> tmpMap = new HashMap<>();
                             Formula formula = new Formula();
@@ -1002,7 +1010,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                         List<ElementFormulaMapping> insertEfm = new ArrayList<>();
                         insertList.forEach(p -> {
                             List<Map<String, Object>> elementMap = groupElementNode.get(p.getNodeId().toString());
-                           // Formula formula = insertFormulaMap.get(p.getId());
+                            // Formula formula = insertFormulaMap.get(p.getId());
                             if (Func.isNotEmpty(elementMap)) {
                                 elementMap.forEach(m -> {
                                     if (com.mixsmart.utils.StringUtils.handleNull(m.get("name")).contains(p.getName())) {