浏览代码

修改合同段wbs

liuyc 3 年之前
父节点
当前提交
6c512844dd

+ 6 - 0
blade-common/pom.xml

@@ -32,6 +32,12 @@
             <groupId>com.alibaba</groupId>
             <artifactId>fastjson</artifactId>
         </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.7.22</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
     <build>

+ 47 - 0
blade-common/src/main/java/org/springblade/common/utils/SnowFlakeUtil.java

@@ -0,0 +1,47 @@
+package org.springblade.common.utils;
+
+import cn.hutool.core.lang.Snowflake;
+import cn.hutool.core.util.IdUtil;
+
+public class SnowFlakeUtil {
+    private long machineId;
+    private long dataCenterId;
+
+
+    public SnowFlakeUtil(long machineId, long dataCenterId) {
+        this.machineId = machineId;
+        this.dataCenterId = dataCenterId;
+    }
+
+    /**
+     * 成员类,SnowFlakeUtil的实例对象的保存域
+     */
+    private static class IdGenHolder {
+        private static final SnowFlakeUtil instance = new SnowFlakeUtil();
+    }
+
+    /**
+     * 外部调用获取SnowFlakeUtil的实例对象,确保不可变
+     */
+    public static SnowFlakeUtil get() {
+        return IdGenHolder.instance;
+    }
+
+    /**
+     * 初始化构造,无参构造有参函数,默认节点都是0
+     */
+    public SnowFlakeUtil() {
+        this(0L, 0L);
+    }
+
+    private Snowflake snowflake = IdUtil.createSnowflake(machineId, dataCenterId);
+
+    public synchronized long id() {
+        return snowflake.nextId();
+    }
+
+    public static Long getId() {
+        return SnowFlakeUtil.get().id();
+    }
+
+}

+ 2 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/WbsTreeContractDTO.java

@@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 import org.springblade.manager.entity.WbsTreeContract;
 
@@ -18,6 +19,7 @@ import org.springblade.manager.entity.WbsTreeContract;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
 public class WbsTreeContractDTO extends WbsTreeContract {
     private static final long serialVersionUID = 1L;
 

+ 10 - 3
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java

@@ -1,6 +1,7 @@
 package org.springblade.manager.entity;
 
 
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModelProperty;
@@ -11,7 +12,6 @@ import lombok.NoArgsConstructor;
 import org.springblade.core.mp.base.BaseEntity;
 
 
-
 /**
  * wbs合同段树关系实体类
  *
@@ -26,6 +26,12 @@ import org.springblade.core.mp.base.BaseEntity;
 public class WbsTreeContract extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 主键id
+     */
+    @TableId(value = "p_key_Id")
+    private Long pKeyId;
+
     /**
      * wbsId
      */
@@ -136,7 +142,7 @@ public class WbsTreeContract extends BaseEntity {
     private String tableOwner;
 
     /**
-     *内业资料类型
+     * 内业资料类型
      */
     @ApiModelProperty(value = "内业资料类型")
     private Integer majorDataType;
@@ -149,9 +155,10 @@ public class WbsTreeContract extends BaseEntity {
 
 
     /**
-     *是否关联清表 '0'否 '1'是
+     * 是否关联清表 '0'否 '1'是
      */
     @ApiModelProperty(value = "是否关联清表 '0'否 '1'是")
     private Integer isLinkTable;
 
+
 }

+ 22 - 3
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO.java

@@ -22,11 +22,29 @@ public class TreeNodeVO extends BaseNode<TreeNode> {
     private Long value;
 
     //新增字段
+    @JsonSerialize(
+            using = ToStringSerializer.class
+    )
     private Integer type;
 
+    //主键id
+    @JsonSerialize(
+            using = ToStringSerializer.class
+    )
+    private Integer pKeyId;
+
+
     public TreeNodeVO() {
     }
 
+    public Integer getpKeyId() {
+        return pKeyId;
+    }
+
+    public void setpKeyId(Integer pKeyId) {
+        this.pKeyId = pKeyId;
+    }
+
     public Integer getType() {
         return type;
     }
@@ -60,7 +78,7 @@ public class TreeNodeVO extends BaseNode<TreeNode> {
     }
 
     public String toString() {
-        return "TreeNode(type="+ this.getType()+", title=" + this.getTitle() + ", key=" + this.getKey() + ", value=" + this.getValue() + ")";
+        return "TreeNode(pKeyId=" + this.getpKeyId() + ", type=" + this.getType() + ", title=" + this.getTitle() + ", key=" + this.getKey() + ", value=" + this.getValue() + ")";
     }
 
     public boolean equals(final Object o) {
@@ -69,11 +87,12 @@ public class TreeNodeVO extends BaseNode<TreeNode> {
         } else if (!(o instanceof TreeNode)) {
             return false;
         } else {
-            TreeNodeVO other = (TreeNodeVO)o;
+            TreeNodeVO other = (TreeNodeVO) o;
             if (!other.canEqual(this)) {
                 return false;
             } else {
-                label47: {
+                label47:
+                {
                     Object this$key = this.getKey();
                     Object other$key = other.getKey();
                     if (this$key == null) {

+ 11 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ContractInfoController.java

@@ -286,11 +286,18 @@ public class ContractInfoController extends BladeController {
     @ApiOperationSupport(order = 13)
     @ApiOperation(value = "分配合同段wbs节点树保存或修改", notes = "传入ids,wbsId,项目id,合同段id")
     public R submitWbsTreeInContract(@RequestBody WbsTreeContractDTO wbsTreeContractDTO) {
-        Boolean b = wbsTreeContractService.submitWbsTreeInContract(wbsTreeContractDTO);
-        if (b) {
-            return R.success("操作成功");
+        String s = wbsTreeContractService.submitWbsTreeInContract(wbsTreeContractDTO);
+        switch (s) {
+            case "1":
+                return R.success("请选择需要关联的节点");
+            case "2":
+                return R.success("未进行任何操作");
+            case "3":
+                return R.success("关联合同段树成功");
+            default:
+                return R.success("关联合同段树失败");
         }
-        return R.fail("操作失败");
+
     }
 
     /**

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

@@ -208,7 +208,7 @@ public class ProjectInfoController extends BladeController {
             case "1":
                 return R.success("请选择需要关联的节点树");
             case "2":
-                return R.success("未发现公有wbs树中的新元素表");
+                return R.success("未进行任何操作");
             case "3":
                 return R.success("公有wbs树新元素表同步成功");
             case "4":

+ 17 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ContractInfoMapper.xml

@@ -48,6 +48,7 @@
         <result column="key" property="key"/>
         <result column="has_children" property="hasChildren"/>
         <result column="type" property="type"/>
+        <result column="p_key_id" property="pKeyId"/>
     </resultMap>
 
 
@@ -139,9 +140,19 @@
     </select>
 
     <select id="tree" resultMap="treeNodeResultMap">
-        select id, parent_id, dept_name as title,type as "type", id as "value", id as "key" from m_wbs_tree_contract
-        where
-        is_deleted = 0 and status = 1
+        SELECT
+        p_key_id AS pKeyId,
+        id,
+        parent_id,
+        dept_name AS title,
+        type AS "type",
+        id AS "value",
+        id AS "key"
+        FROM
+        m_wbs_tree_contract
+        WHERE
+        is_deleted = 0
+        AND STATUS = 1
         <if test="wbsId!=null and wbsId!=''">
             and wbs_id = #{wbsId}
         </if>
@@ -151,7 +162,9 @@
         <if test="contractId!=null and contractId!=''">
             and contract_id = #{contractId}
         </if>
-        ORDER BY sort
+        ORDER BY
+        sort
+
     </select>
 
 

+ 5 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.java

@@ -14,8 +14,9 @@ public interface WbsTreeContractMapper extends BaseMapper<WbsTreeContract> {
 
     List<WbsTreeContractVO> selectAll();
 
-    Integer insertWbsTreeContract1(@Param("contractId") String contractId,
-                                  @Param("wbsTree") WbsTreePrivate wbsTree);
+    Integer insertWbsTreeContract1(@Param("snowId") Long snowId,
+                                   @Param("contractId") String contractId,
+                                   @Param("wbsTree") WbsTreePrivate wbsTree);
 
     Integer insertWbsTreeContract2(@Param("wbsTree") WbsTree wbsTree,
                                    @Param("projectId") String projectId,
@@ -40,10 +41,10 @@ public interface WbsTreeContractMapper extends BaseMapper<WbsTreeContract> {
                            @Param("contractId") String contractId,
                            @Param("wbsId") String wbsId);
 
-    WbsTreeContract selectByCondition2(@Param("id")String id,
+    WbsTreeContract selectByCondition2(@Param("id") String id,
                                        @Param("projectId") String projectId,
                                        @Param("contractId") String contractId,
-                                       @Param("wbsId")String wbsId);
+                                       @Param("wbsId") String wbsId);
 
 
 }

+ 6 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -5,6 +5,7 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="ResultMap" type="org.springblade.manager.entity.WbsTreeContract">
         <result column="id" property="id"/>
+        <result column="private_node_id" property="privateNodeId"/>
         <result column="wbs_id" property="wbsId"/>
         <result column="project_id" property="projectId"/>
         <result column="contract_id" property="contractId"/>
@@ -43,13 +44,13 @@
         <result column="contract_id" property="contractId"/>
     </resultMap>
 
-    <insert id="insertWbsTreeContract1">
+    <insert id="insertWbsTreeContract1" >
         INSERT INTO m_wbs_tree_contract(
-        id,wbs_id,project_id,contract_id,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,`type`,
+        id,private_node_id,wbs_id,project_id,contract_id,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,`type`,
         table_type,create_time,create_user,create_dept,update_user,update_time,`STATUS`,is_deleted,
         unique_code,partition_code,is_expernode,is_concrete,table_owner,major_data_type,init_table_name,is_link_table)
         VALUES(
-        #{wbsTree.id},#{wbsTree.wbsId},#{wbsTree.projectId},#{contractId},#{wbsTree.tenantId},#{wbsTree.parentId},#{wbsTree.ancestors},
+        #{snowId},#{wbsTree.id},#{wbsTree.wbsId},#{wbsTree.projectId},#{contractId},#{wbsTree.tenantId},#{wbsTree.parentId},#{wbsTree.ancestors},
         #{wbsTree.deptCategory},#{wbsTree.deptName},#{wbsTree.fullName},#{wbsTree.sort},#{wbsTree.remark},#{wbsTree.type},
         #{wbsTree.tableType},#{wbsTree.createTime},#{wbsTree.createUser},#{wbsTree.createDept},#{wbsTree.updateUser},#{wbsTree.updateTime},
         #{wbsTree.status},#{wbsTree.isDeleted},#{wbsTree.uniqueCode},#{wbsTree.partitionCode},#{wbsTree.isExpernode},#{wbsTree.isConcrete},
@@ -81,7 +82,7 @@
     <update id="updateByCondition">
         UPDATE m_wbs_tree_contract
         SET is_deleted = 0
-        WHERE id = #{id}
+        WHERE private_node_id = #{id}
         AND wbs_id = #{wbsId}
         AND project_id =#{projectId}
         AND contract_id = #{contractId}
@@ -124,7 +125,7 @@
         FROM
             m_wbs_tree_contract
         WHERE
-            id = #{id}
+            private_node_id = #{id}
             AND project_id = #{projectId}
             AND contract_id = #{contractId}
             AND wbs_id = #{wbsId}

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

@@ -8,6 +8,6 @@ import org.springblade.manager.entity.WbsTreeContract;
 
 public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
 
-    Boolean submitWbsTreeInContract(WbsTreeContractDTO wbsTreeContractDTO);
+    String submitWbsTreeInContract(WbsTreeContractDTO wbsTreeContractDTO);
 
 }

+ 8 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -6,6 +6,7 @@ import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.business.entity.ConstructionLedger;
 import org.springblade.business.mapper.ConstructionLedgerMapper;
+import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.logger.BladeLogger;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.manager.dto.WbsTreeContractDTO;
@@ -33,10 +34,10 @@ public class WbsTreeContractServiceImpl
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean submitWbsTreeInContract(WbsTreeContractDTO pawDTO) {
+    public String submitWbsTreeInContract(WbsTreeContractDTO pawDTO) {
         String wbsTreeIds = pawDTO.getWbsTreeIds();
         if (StringUtils.isEmpty(wbsTreeIds)) {
-            return false;
+            return "1";
         }
         String[] ids = wbsTreeIds.split(",");
         List<String> idList1 = Arrays.asList(ids);
@@ -44,13 +45,13 @@ public class WbsTreeContractServiceImpl
         //查找合同段wbs私有库的节点树
         List<WbsTreeContract> list = baseMapper.findAllNodeList2(pawDTO.getProjectId(), pawDTO.getContractId(), pawDTO.getWbsId());
         for (WbsTreeContract wbsTreeContract : list) {
-            idList2.add(String.valueOf(wbsTreeContract.getId()));
+            idList2.add(String.valueOf(wbsTreeContract.getPrivateNodeId()));
         }
         //比较项目wbs私有树与合同段wbs树是否相同,相同则不修改,不同则修改
         List<String> diffrent = getDiffrent(idList1, idList2);
 //        diffrent.forEach(System.out::print);
         if (diffrent.size() == 0) { //相同
-            return false;
+            return "2";
         } else { //不相同
             if (idList1.size() > idList2.size()) {  //根据ids新增多余合同段wbs树节点
                 for (String id : diffrent) {
@@ -61,7 +62,8 @@ public class WbsTreeContractServiceImpl
                     } else {
                         //根据id、projectId获取WbsTreePrivate对象
                         WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectByCondition(id, pawDTO.getProjectId());
-                        Integer row = baseMapper.insertWbsTreeContract1(pawDTO.getContractId(), wbsTreePrivate);
+                        Long snowId = SnowFlakeUtil.getId();
+                        Integer row = baseMapper.insertWbsTreeContract1(snowId, pawDTO.getContractId(), wbsTreePrivate);
                         if (row > 0) {
                             logger.info(wbsTreePrivate.getId().toString(), "初始化合同段wbs树成功");
                         }
@@ -86,8 +88,7 @@ public class WbsTreeContractServiceImpl
                 }
             }
         }
-        //TODO 初始化元素表、公式
-        return true;
+        return "3";
     }
 
     //比较两个List不同值

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

@@ -337,11 +337,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                     wbsTreePrivateMapper.insertCombination1(tree, pawDTO.getProjectId());
                                 }
                             }
-                            //初始化合同段wbs私有树
-                            Integer row2 = wbsTreeContractMapper.insertWbsTreeContract2(wbsTree, pawDTO.getProjectId(), pawDTO.getContractId());
-                            if (row > 0 && row2 > 0) {
-                                logger.info(wbsTree.getId().toString(), "项目wbs私有树操作成功");
-                            }
                             //保存引用模板id
                             projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getWbsId());
                             pawDTO.setTemplateProjectId(pawDTO.getWbsId());
@@ -358,11 +353,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                     wbsTreePrivateMapper.insertCombination1(tree, pawDTO.getProjectId());
                                 }
                             }
-                            //初始化合同段wbs私有树
-                            Integer row2 = wbsTreeContractMapper.insertWbsTreeContract1(pawDTO.getProjectId(), wbsTreePrivate1);
-                            if (row > 0 && row2 > 0) {
-                                logger.info(wbsTreePrivate1.getId().toString(), "项目wbs私有树操作成功");
-                            }
                             //保存引用模板id
                             projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getTemplateProjectId());
                             pawDTO.setTemplateProjectId(pawDTO.getTemplateProjectId());