Sfoglia il codice sorgente

优化后管表单删除逻辑,使用pKeyId主键删除

lvy 4 giorni fa
parent
commit
8ccdc20606

+ 15 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -460,6 +460,21 @@ public class WbsTreePrivateController extends BladeController {
         }
         return R.fail("删除失败");
     }
+    @GetMapping("/remove-table-by-pKeyId")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "删除节点下的元素表", notes = "传入表单 pKeyId、wbsId、projectId")
+    public R removeTableByPKeyIdCondition(@RequestParam("pKeyId") String pKeyId,
+                                    @RequestParam("wbsId") String wbsId,
+                                    @RequestParam("projectId") String projectId) {
+        Long row = wbsTreeContractMapper.selectCount(Wrappers.<WbsTreeContract>query().lambda().eq(WbsTreeContract::getProjectId, projectId).eq(WbsTreeContract::getWbsId, wbsId).eq(WbsTreeContract::getIsTypePrivatePid, pKeyId));
+        if (row > 0L) {
+            throw new ServiceException("当前表单被合同段引用中,删除失败");
+        }
+        if (wbsTreePrivateService.removeTableByPKeyIdCondition(pKeyId, wbsId, projectId)) {
+            return R.success("删除成功");
+        }
+        return R.fail("删除失败");
+    }
 
 
     /**

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

@@ -38,6 +38,7 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
     List<WbsNodeTableVO> selectByNodeTable(String id, String wbsId, String projectId);
 
     void updateDeletedByCondition(String id, String wbsId, String projectId);
+    void removeTableByPKeyIdCondition(String pKeyId, String wbsId, String projectId);
 
     List<WbsTreePrivateVO> lazyTree(String wbsId, Integer wbsType, Long parentId, String projectId,Integer type);
 

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

@@ -189,6 +189,14 @@
           AND wbs_id = #{wbsId}
           AND project_id = #{projectId}
     </update>
+    <update id="removeTableByPKeyIdCondition">
+        UPDATE m_wbs_tree_private
+        SET is_deleted = 1
+        WHERE type = 2
+          AND p_key_id = #{pKeyId}
+          AND wbs_id = #{wbsId}
+          AND project_id = #{projectId}
+    </update>
 
     <update id="updateByPKeyId">
         update m_wbs_tree_private

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

@@ -25,6 +25,7 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
     List<WbsNodeTableVO> selectByNodeTable(String id, String wbsId, String projectId);
 
     boolean removeTableByCondition(String id, String wbsId, String projectId);
+    boolean removeTableByPKeyIdCondition(String pKeyId, String wbsId, String projectId);
 
     List<WbsTreePrivateVO> lazyTree(String wbsId, String wbsType, Long parentId, String projectId,Integer type);
 

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

@@ -258,6 +258,17 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         }
         return true;
     }
+    @Override
+    public boolean removeTableByPKeyIdCondition(String pKeyId, String wbsId, String projectId) {
+        baseMapper.removeTableByPKeyIdCondition(pKeyId, wbsId, projectId);
+        List<WbsTreeContract> wbsTreeContractsTable = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda().select(WbsTreeContract::getPKeyId).eq(WbsTreeContract::getProjectId, projectId)
+                .eq(WbsTreeContract::getIsTypePrivatePid, pKeyId).eq(WbsTreeContract::getWbsId, wbsId).eq(WbsTreeContract::getType, 2).eq(WbsTreeContract::getStatus, 1));
+        List<Long> ids = wbsTreeContractsTable.stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
+        if (!ids.isEmpty()) {
+            wbsTreeContractMapper.updateDeletedByIds(ids);
+        }
+        return true;
+    }
 
     @Override
     public List<WbsTreePrivateVO> lazyTree(String wbsId, String wbsType, Long parentId, String projectId, Integer type) {