Bläddra i källkod

新增一些功能、修改BUG

liuyc 3 år sedan
förälder
incheckning
814000bdb5

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsNodeTableVO.java

@@ -73,4 +73,9 @@ public class WbsNodeTableVO implements Serializable {
      */
     private String initTableName;
 
+    /**
+     * 状态
+     */
+    private Integer status;
+
 }

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

@@ -191,13 +191,13 @@ public class WbsTreeController extends BladeController {
         if (StringUtils.isNotEmpty(id)) {
             List<WbsFormElementVO> wbsFormElements = wbsTreeService.selectFormElements(id);
             if (wbsFormElements.size() > 0) {
-                return R.fail("删除失败,请先移除表单中的元素");
+                return R.fail("该表单中的存在元素,删除失败");
             }
             List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
                     .eq(WbsTreePrivate::getStatus, 1)
                     .eq(WbsTreePrivate::getId, id));
             if (wbsTreePrivates.size() > 0) {
-                return R.fail("该表单已被项目引用,删除失败");
+                return R.fail("该表单已被项目引用删除失败");
             }
             boolean result = wbsTreeService.removeTableById(id);
             if (result) {

+ 23 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
@@ -105,7 +106,7 @@ public class WbsTreePrivateController extends BladeController {
                                                             @RequestParam("wbsId") String wbsId,
                                                             @RequestParam("projectId") String projectId) {
         List<WbsNodeTableVO> rs = wbsTreePrivateService.selectByNodeTable(parentId, wbsId, projectId);
-        if (!("").equals(rs) && rs.size() > 0) {
+        if (rs.size() > 0) {
             return R.data(rs);
         }
         return R.fail(200, "未查询到数据");
@@ -118,6 +119,14 @@ public class WbsTreePrivateController extends BladeController {
     public R removeTableByCondition(@RequestParam("id") String id,
                                     @RequestParam("wbsId") String wbsId,
                                     @RequestParam("projectId") String projectId) {
+        List<WbsTreeContract> wbsTreeContracts = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
+                .eq(WbsTreeContract::getProjectId, projectId)
+                .eq(WbsTreeContract::getWbsId, wbsId)
+                .eq(WbsTreeContract::getId, id)
+        );
+        if (wbsTreeContracts.size() > 0) {
+            throw new ServiceException("当前表单被合同段引用中,删除失败");
+        }
         boolean result = wbsTreePrivateService.removeTableByCondition(id, wbsId, projectId);
         if (result) {
             return R.success("删除成功");
@@ -175,8 +184,7 @@ public class WbsTreePrivateController extends BladeController {
     public R<List<WbsTreePrivateDTO2>> findWbsTreePrivateSameLevel(@RequestParam("projectId") String projectId,
                                                                    @RequestParam("parentId") String parentId,
                                                                    @RequestParam("wbsId") String wbsId) {
-        List<WbsTreePrivateDTO2> trees = wbsTreePrivateService.findWbsTreePrivateSameLevel(projectId, parentId, wbsId);
-        return R.data(trees);
+        return R.data(wbsTreePrivateService.findWbsTreePrivateSameLevel(projectId, parentId, wbsId));
     }
 
     /**
@@ -186,8 +194,7 @@ public class WbsTreePrivateController extends BladeController {
     @ApiOperation(value = "wbs私有树节点手动排序", notes = "WbsTreeDTO2集合,pKeyId=节点pKeyId")
     @RequestMapping(value = "/wbsTreePrivateSort", method = RequestMethod.POST)
     public R wbsTreePrivateSort(@RequestBody List<WbsTreePrivateDTO2> wbsTreeDTO) {
-        boolean b = wbsTreePrivateService.wbsTreePrivateSort(wbsTreeDTO);
-        return R.status(b);
+        return R.status(wbsTreePrivateService.wbsTreePrivateSort(wbsTreeDTO));
     }
 
 
@@ -198,8 +205,7 @@ public class WbsTreePrivateController extends BladeController {
     @ApiOperation(value = "wbs私有树表单手动排序", notes = "WbsTreeDTO2集合,pKeyId=表单pKeyId")
     @RequestMapping(value = "/wbsTreePrivateTableSort", method = RequestMethod.POST)
     public R wbsTreePrivateTableSort(@RequestBody List<WbsTreePrivateDTO2> wbsTreeDTO) {
-        boolean b = wbsTreePrivateService.wbsTreePrivateTableSort(wbsTreeDTO);
-        return R.status(b);
+        return R.status(wbsTreePrivateService.wbsTreePrivateTableSort(wbsTreeDTO));
     }
 
     /**
@@ -212,5 +218,15 @@ public class WbsTreePrivateController extends BladeController {
         return R.status(wbsTreePrivateService.updateBatchByPid(wbsTreePrivates));
     }
 
+    /**
+     * 隐藏/启用表单
+     */
+    @ApiOperationSupport(order = 11)
+    @ApiOperation(value = "隐藏/启用表单", notes = "传入pKeyId")
+    @RequestMapping(value = "/updateStatus", method = RequestMethod.GET)
+    public R updateStatus(@RequestParam String pKeyId) {
+        return R.status(wbsTreePrivateService.updateStatus(pKeyId));
+    }
+
 
 }

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

@@ -315,7 +315,8 @@
             wt.is_link_table,
             wt.init_table_name,
             wt.excel_id as excelId,
-            wt.sort
+            wt.sort,
+            wt.status
         FROM
             m_wbs_tree_private AS wt
         WHERE

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

@@ -39,4 +39,5 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
 
     boolean updateBatchByPid(List<WbsTreePrivateDTO3> wbsTreePrivates);
 
+    boolean updateStatus(String pKeyId);
 }

+ 15 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java

@@ -355,7 +355,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
             id++;
             listDatum.setFId(wbsFormElementVO2.getId());
             String initTableFiledType = getInitTableFiledType(listDatum.getEType());
-            Integer elementLength = getElementLength(initTableFiledType);
+            Integer elementLength = getElementLength2(initTableFiledType);
             listDatum.setELength(elementLength);
             listDatum.setEKey("key_" + id);
         }
@@ -604,6 +604,20 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
         }
     }
 
+    private Integer getElementLength2(String type) {
+        switch (type) {
+            case "varchar":
+                return 255;
+            case "bigint":
+            case "decimal":
+                return 20;
+            case "datetime":
+            default:
+                return 0;
+        }
+    }
+
+
     private String setDefaultElementLength(Integer type) {
         switch (type) {
             case 1:  //字符串

+ 41 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -1,6 +1,7 @@
 package org.springblade.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.springblade.common.utils.SnowFlakeUtil;
@@ -13,6 +14,7 @@ import org.springblade.manager.dto.WbsTreePrivateDTO2;
 import org.springblade.manager.dto.WbsTreePrivateDTO3;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.WbsInfo;
+import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.entity.WbsTreePrivate;
 
 import org.springblade.manager.mapper.ContractInfoMapper;
@@ -43,6 +45,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     private final ContractInfoMapper contractInfoMapper;
     private final WbsInfoMapper wbsInfoMapper;
 
+
     @Override
     public List<WbsTreePrivateVO> tree(String wbsId, String projectId) {
         return ForestNodeMerger.merge(baseMapper.tree(wbsId, projectId));
@@ -118,8 +121,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 
     @Override
     public List<WbsNodeTableVO> selectByNodeTable(String id, String wbsId, String projectId) {
-        List<WbsNodeTableVO> wbsNodeTableVOS = baseMapper.selectByNodeTable(id, wbsId, projectId);
-        return wbsNodeTableVOS;
+        return baseMapper.selectByNodeTable(id, wbsId, projectId);
     }
 
     @Override
@@ -188,4 +190,41 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         }
         return true;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean updateStatus(String pKeyId) {
+        WbsTreePrivate wbsTreePrivate = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getPKeyId, pKeyId));
+        if (wbsTreePrivate != null) {
+            //修改项目下的该表状态
+            wbsTreePrivate.setStatus(wbsTreePrivate.getStatus() == 1 ? 0 : 1);
+            LambdaUpdateWrapper<WbsTreePrivate> updateWrapper1 = new LambdaUpdateWrapper<>();
+            updateWrapper1
+                    .eq(WbsTreePrivate::getPKeyId, pKeyId)
+                    .set(WbsTreePrivate::getStatus, wbsTreePrivate.getStatus());
+            baseMapper.update(null, updateWrapper1);
+
+            //修改当前项目下所有合同段的该表状态
+            List<WbsTreeContract> wbsTreeContracts = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
+                    .eq(WbsTreeContract::getId, wbsTreePrivate.getId())
+                    .eq(WbsTreeContract::getWbsId, wbsTreePrivate.getWbsId())
+                    .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
+            );
+            if (wbsTreeContracts.size() > 0) {
+                for (WbsTreeContract wbsTreeContract : wbsTreeContracts) {
+                    wbsTreeContract.setStatus(wbsTreeContract.getStatus() == 1 ? 0 : 1);
+                    LambdaUpdateWrapper<WbsTreeContract> updateWrapper2 = new LambdaUpdateWrapper<>();
+                    updateWrapper2
+                            .eq(WbsTreeContract::getPKeyId, wbsTreeContract.getPKeyId())
+                            .set(WbsTreeContract::getStatus, wbsTreeContract.getStatus());
+                    wbsTreeContractMapper.update(null, updateWrapper2);
+                }
+            }
+            return true;
+        }
+        return false;
+    }
+
+
+
 }

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

@@ -936,7 +936,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     //查询所有公共节点+表 diffRent=新增的节点id
                     List<WbsTree> addListData = new ArrayList<>();
                     //查询出当前wbs树下所有节点+表信息
-                    List<WbsTree> treesAll = baseMapper.selectList(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getWbsId, pawDTO.getWbsId()));
+                    List<WbsTree> treesAll = baseMapper.selectList(Wrappers.<WbsTree>query().lambda()
+                            .eq(WbsTree::getWbsId, pawDTO.getWbsId()));
 
                     for (WbsTree wbsTree : treesAll) {
                         for (String id : diffRent) {