Browse Source

修改Wbs私有树、合同段wbs树的BUG

liuyc 2 years ago
parent
commit
7d075ada4a
17 changed files with 299 additions and 149 deletions
  1. 101 95
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ProjectInfo.java
  2. 6 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreePrivate.java
  3. 48 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ProjectInfoVO2.java
  4. 4 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreePrivateVO2.java
  5. 22 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ProjectInfoController.java
  6. 3 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ProjectInfoMapper.java
  7. 10 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ProjectInfoMapper.xml
  8. 3 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml
  9. 0 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeMapper.java
  10. 6 3
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java
  11. 13 5
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml
  12. 6 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IProjectInfoService.java
  13. 45 17
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ProjectInfoServiceImpl.java
  14. 4 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java
  15. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java
  16. 24 15
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java
  17. 3 3
      doc/nacos/blade-dev.yaml

+ 101 - 95
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ProjectInfo.java

@@ -38,101 +38,107 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 public class ProjectInfo extends BaseEntity {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-	 * 项目名称
-	 */
-	@ApiModelProperty(value = "项目名称")
-	private String projectName;
-	/**
-	 * 项目别名
-	 */
-	@ApiModelProperty(value = "项目别名")
-	private String projectAlias;
-	/**
-	 * 项目编号
-	 */
-	@ApiModelProperty(value = "项目编号")
-	private String projectNumber;
-	/**
-	 * 项目大概
-	 */
-	@ApiModelProperty(value = "项目大概")
-	private String projectGist;
-	/**
-	 * 工程等级
-	 */
-	@ApiModelProperty(value = "工程等级")
-	private String projectGrade;
-	/**
-	 * 计划开始时间
-	 */
-	@ApiModelProperty(value = "计划开始时间")
-	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
-	private LocalDateTime planStartTime;
-	/**
-	 * 计划完成时间
-	 */
-	@ApiModelProperty(value = "计划完成时间")
-	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
-	private LocalDateTime planEndTime;
-	/**
-	 * 实际开始时间
-	 */
-	@ApiModelProperty(value = "实际开始时间")
-	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
-	private LocalDateTime actualStartTime;
-	/**
-	 * 实际完工时间
-	 */
-	@ApiModelProperty(value = "实际完工时间")
-	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
-	private LocalDateTime actualEndTime;
-	/**
-	 * 施工期
-	 */
-	@ApiModelProperty(value = "施工期")
-	private Integer construcetionDate;
-	/**
-	 * 建设合同金额
-	 */
-	@ApiModelProperty(value = "建设合同金额")
-	private BigDecimal estimatedAmount;
-	/**
-	 * 项目总里程
-	 */
-	@ApiModelProperty(value = "项目总里程")
-	private BigDecimal projectAllMileage;
-	/**
-	 * 项目路面
-	 */
-	@ApiModelProperty(value = "项目路面")
-	private BigDecimal projectPavement;
-	/**
-	 * 项目路基
-	 */
-	@ApiModelProperty(value = "项目路基")
-	private BigDecimal projectSubgrade;
-	/**
-	 * 项目备注
-	 */
-	@ApiModelProperty(value = "项目备注")
-	private String projectRemark;
-	/**
-	 * 节点状态
-	 */
-	@ApiModelProperty(value = "节点状态")
-	private Integer state;
-	/**
-	 * 是否开启电签
-	 */
-	@ApiModelProperty(value = "是否开启电签")
-	private Integer isOpenSign;
+    /**
+     * 项目名称
+     */
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+    /**
+     * 项目别名
+     */
+    @ApiModelProperty(value = "项目别名")
+    private String projectAlias;
+    /**
+     * 项目编号
+     */
+    @ApiModelProperty(value = "项目编号")
+    private String projectNumber;
+    /**
+     * 项目大概
+     */
+    @ApiModelProperty(value = "项目大概")
+    private String projectGist;
+    /**
+     * 工程等级
+     */
+    @ApiModelProperty(value = "工程等级")
+    private String projectGrade;
+    /**
+     * 计划开始时间
+     */
+    @ApiModelProperty(value = "计划开始时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime planStartTime;
+    /**
+     * 计划完成时间
+     */
+    @ApiModelProperty(value = "计划完成时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime planEndTime;
+    /**
+     * 实际开始时间
+     */
+    @ApiModelProperty(value = "实际开始时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime actualStartTime;
+    /**
+     * 实际完工时间
+     */
+    @ApiModelProperty(value = "实际完工时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime actualEndTime;
+    /**
+     * 施工期
+     */
+    @ApiModelProperty(value = "施工期")
+    private Integer construcetionDate;
+    /**
+     * 建设合同金额
+     */
+    @ApiModelProperty(value = "建设合同金额")
+    private BigDecimal estimatedAmount;
+    /**
+     * 项目总里程
+     */
+    @ApiModelProperty(value = "项目总里程")
+    private BigDecimal projectAllMileage;
+    /**
+     * 项目路面
+     */
+    @ApiModelProperty(value = "项目路面")
+    private BigDecimal projectPavement;
+    /**
+     * 项目路基
+     */
+    @ApiModelProperty(value = "项目路基")
+    private BigDecimal projectSubgrade;
+    /**
+     * 项目备注
+     */
+    @ApiModelProperty(value = "项目备注")
+    private String projectRemark;
+    /**
+     * 节点状态
+     */
+    @ApiModelProperty(value = "节点状态")
+    private Integer state;
+    /**
+     * 是否开启电签
+     */
+    @ApiModelProperty(value = "是否开启电签")
+    private Integer isOpenSign;
 
-	/**
-	 * wbs私有树引用wbs模板id
-	 */
-	@ApiModelProperty(value = "wbs私有树引用wbs模板id")
-	private Long referenceWbsTemplateId;
+    /**
+     * wbs私有树引用wbs模板id
+     */
+    @ApiModelProperty(value = "wbs私有树引用wbs模板id")
+    private Long referenceWbsTemplateId;
+
+    /**
+     * wbs私有树引用wbs模板类型
+     */
+    @ApiModelProperty(value = "wbs私有树引用wbs模板类型")
+    private String referenceWbsTemplateType;
 }

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreePrivate.java

@@ -39,6 +39,12 @@ public class WbsTreePrivate extends BaseEntity {
      */
     @ApiModelProperty(value = "wbs库id")
     private String wbsId;
+    /**
+     * wbsType
+     */
+    @ApiModelProperty(value = "wbs库Type")
+    private String wbsType;
+
     /**
      * 租户id
      */

+ 48 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ProjectInfoVO2.java

@@ -0,0 +1,48 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.manager.entity.ProjectInfo;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 客户级项目表视图实体类
+ *
+ * @author liuyc
+ * @since 2022-04-13
+ */
+@Data
+public class ProjectInfoVO2 implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * projectInfo
+	 */
+	private ProjectInfo projectInfo;
+
+	/**
+	 * 引用的wbsType
+	 */
+	private Integer wbsType;
+
+
+}

+ 4 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreePrivateVO2.java

@@ -17,6 +17,10 @@ public class WbsTreePrivateVO2 implements Serializable {
      * wbsId
      */
     private String wbsId;
+    /**
+     * wbsType
+     */
+    private String wbsType;
     /**
      * 项目id
      */

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

@@ -62,13 +62,33 @@ public class ProjectInfoController extends BladeController {
      */
     @GetMapping("/detail")
     @ApiOperationSupport(order = 1)
-    @ApiOperation(value = "详情", notes = "传入projectInfo")
+    @ApiOperation(value = "详情", notes = "传入projectInfoId")
     @ApiImplicitParam(value = "id", name = "id", required = true)
     public R<ProjectInfoVO> detail(ProjectInfo projectInfo) {
-        ProjectInfo detail = projectInfoService.getOne(Condition.getQueryWrapper(projectInfo));
+        ProjectInfo detail = projectInfoService.getOne(projectInfo.getId());
         return R.data(ProjectInfoWrapper.build().entityVO(detail));
     }
 
+
+    /**
+     * 详情
+     */
+    @GetMapping("/detail2")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情2", notes = "传入projectInfoId、ReferenceWbsTemplateId、ReferenceWbsTemplateType")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "id", name = "id", required = true),
+            @ApiImplicitParam(value = "ReferenceWbsTemplateId", name = "ReferenceWbsTemplateId", required = true),
+            @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);
+    }
+
+
     /**
      * 分页 客户级项目表
      */

+ 3 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ProjectInfoMapper.java

@@ -42,5 +42,7 @@ public interface ProjectInfoMapper extends BaseMapper<ProjectInfo> {
 	List<ProjectInfoVO> selectProjectInfoPage(IPage page, ProjectInfoVO projectInfo);
 
 
-    void updateTemplateIdById(String projectId, String referencePrivateWbsProjectId);
+    void updateTemplateIdById(String projectId, String referencePrivateWbsProjectId,String type);
+
+    ProjectInfo selectOneAndWbsTypeById(Long id);
 }

+ 10 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ProjectInfoMapper.xml

@@ -30,6 +30,7 @@
         <result column="state" property="state"/>
         <result column="is_open_sign" property="isOpenSign"/>
         <result column="reference_wbs_template_id" property="referenceWbsTemplateId"/>
+        <result column="reference_wbs_template_type" property="referenceWbsTemplateType"/>
     </resultMap>
 
     <select id="selectProjectList" resultMap="projectInfoResultMap">
@@ -37,7 +38,9 @@
     </select>
 
     <update id="updateTemplateIdById">
-        UPDATE  m_project_info SET reference_wbs_template_id = #{referencePrivateWbsProjectId}
+        UPDATE  m_project_info
+        SET reference_wbs_template_id = #{referencePrivateWbsProjectId},
+            reference_wbs_template_type = #{type}
         WHERE
         id = #{projectId}
         AND is_deleted = 0
@@ -48,5 +51,11 @@
     <select id="selectProjectInfoPage" resultMap="projectInfoResultMap">
         select * from m_project_info where is_deleted = 0
     </select>
+    <select id="selectOneAndWbsTypeById" resultType="org.springblade.manager.entity.ProjectInfo">
+        SELECT *,
+        (select wbs_type from m_wbs_info )
+        FROM m_project_info
+        WHERE id = #{id}
+    </select>
 
 </mapper>

+ 3 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -161,9 +161,10 @@
     </select>
     <select id="selectParent" resultType="org.springblade.manager.entity.WbsTreePrivate">
         SELECT dept_name FROM m_wbs_tree_private
-        WHERE id = #{parentId}
-        AND project_id = #{projectId}
+        WHERE
+        project_id = #{projectId}
         AND wbs_id = #{wbsId}
+        AND id = #{parentId}
     </select>
 
 

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

@@ -21,10 +21,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.manager.entity.WbsFormElement;
 import org.springblade.manager.entity.WbsTree;
-import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.vo.WbsNodeTableVO;
 import org.springblade.manager.vo.WbsTreeVO;
-import org.springframework.web.bind.annotation.PostMapping;
 
 import java.util.List;
 

+ 6 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java

@@ -28,8 +28,8 @@ public interface WbsTreePrivateMapper extends BaseMapper<WbsTreePrivate> {
 
 
     WbsTreePrivate selectByCondition(@Param("id") String id,
-                                     @Param("wbsId") String wbsId,
-                                     @Param("getReferencePrivateWbsProjectId") String getReferencePrivateWbsProjectId);
+                                     @Param("projectId") String projectId,
+                                     @Param("wbsId") String wbsId);
 
     void deleteByCondition(String id, String wbsId, String projectId);
 
@@ -45,6 +45,7 @@ public interface WbsTreePrivateMapper extends BaseMapper<WbsTreePrivate> {
 
     Integer insertCombination1(@Param("snowId") Long snowId,
                                @Param("wbsTree") WbsTree wbsTree,
+                               @Param("wbsType") Integer wbsType,
                                @Param("projectId") String projectId);
 
     Integer insertCombination2(@Param("snowId") Long snowId,
@@ -53,7 +54,7 @@ public interface WbsTreePrivateMapper extends BaseMapper<WbsTreePrivate> {
 
     WbsTreePrivate selectByCondition1(String id, String templateProjectId);
 
-    List<WbsTree> selectIsTable(Long tableId);
+    List<WbsTree> selectIsTable(Long tableId, String projectId);
 
     List<WbsNodeTableVO> selectByNodeTable(String id, String wbsId, String projectId);
 
@@ -69,4 +70,6 @@ public interface WbsTreePrivateMapper extends BaseMapper<WbsTreePrivate> {
 
     WbsTreePrivate selectByCondition3(String id, String wbsId, String referencePrivateWbsProjectId);
 
+    WbsTreePrivate selectByPKeyId(Long referenceWbsTemplateId);
+
 }

+ 13 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -38,6 +38,7 @@
     <resultMap id="resultMap2" type="org.springblade.manager.vo.WbsTreePrivateVO2">
         <result column="pKeyId" property="pKeyId"/>
         <result column="wbs_id" property="wbsId"/>
+        <result column="wbs_type" property="wbsType"/>
         <result column="project_id" property="projectId"/>
         <result column="project_name" property="projectName"/>
     </resultMap>
@@ -55,11 +56,11 @@
     </resultMap>
     <insert id="insertCombination1">
         INSERT INTO m_wbs_tree_private(
-        p_key_id,id,wbs_id,project_id,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,`type`,
+        p_key_id,id,wbs_id,wbs_type,project_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(
-        #{snowId},#{wbsTree.id},#{wbsTree.wbsId},#{projectId},#{wbsTree.tenantId},#{wbsTree.parentId},#{wbsTree.ancestors},
+        #{snowId},#{wbsTree.id},#{wbsTree.wbsId},#{wbsType},#{projectId},#{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},
@@ -68,11 +69,11 @@
 
     <insert id="insertCombination2">
         INSERT INTO m_wbs_tree_private(
-        p_key_id,id,wbs_id,project_id,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,`type`,
+        p_key_id,id,wbs_id,wbs_type,project_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(
-        #{snowId},#{wbsTree.id},#{wbsTree.wbsId},#{projectId},#{wbsTree.tenantId},#{wbsTree.parentId},#{wbsTree.ancestors},
+        #{snowId},#{wbsTree.id},#{wbsTree.wbsId},#{wbsTree.wbsType},#{projectId},#{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},
@@ -177,6 +178,7 @@
         SELECT
         wtp.p_key_id AS "pKeyId",
         wtp.wbs_id,
+        wtp.wbs_type,
         wtp.project_id,
         ( SELECT project_name FROM m_project_info pi WHERE wtp.project_id = pi.id ) AS project_name
         FROM
@@ -206,6 +208,7 @@
         </if>
         ORDER BY sort
     </select>
+
     <select id="selectByCondition" resultType="org.springblade.manager.entity.WbsTreePrivate">
         SELECT
             *
@@ -213,12 +216,13 @@
             m_wbs_tree_private
         WHERE
             id = #{id}
-            AND project_id = #{getReferencePrivateWbsProjectId}
+            AND project_id = #{projectId}
             AND wbs_id = #{wbsId}
             AND STATUS = 1
             AND is_deleted = 0
             AND type = 1
     </select>
+
     <select id="selectByCondition2" resultType="org.springblade.manager.entity.WbsTreePrivate">
         SELECT
             *
@@ -245,6 +249,7 @@
             AND is_deleted = 0
             AND `status` = 1
             AND parent_id = #{tableId}
+            AND project_id = #{projectId}
     </select>
     <select id="selectByNodeTable" resultType="org.springblade.manager.vo.WbsNodeTableVO">
         SELECT
@@ -291,5 +296,8 @@
             AND type = 1
             AND parent_id = 0
     </select>
+    <select id="selectByPKeyId" resultType="org.springblade.manager.entity.WbsTreePrivate">
+        SELECT * FROM m_wbs_tree_private WHERE p_key_id = #{referenceWbsTemplateId}
+    </select>
 
 </mapper>

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

@@ -21,6 +21,7 @@ import org.springblade.manager.vo.ContractlnfoCountVO;
 import org.springblade.manager.vo.ProjectInfoVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.manager.vo.ProjectInfoVO2;
 
 import java.util.List;
 
@@ -51,7 +52,11 @@ public interface IProjectInfoService extends BaseService<ProjectInfo> {
 	 * 查询业务条数
 	 * @return
 	 */
-	public List<ContractlnfoCountVO> selectContractInfoCount();
+	List<ContractlnfoCountVO> selectContractInfoCount();
+
+	ProjectInfo getOne(Long id);
+
+	ProjectInfoVO2 getOneByCondition(Long id, Long referenceWbsTemplateId, String referenceWbsTemplateType);
 
 
 }

+ 45 - 17
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ProjectInfoServiceImpl.java

@@ -17,12 +17,14 @@
 package org.springblade.manager.service.impl;
 
 import org.springblade.manager.entity.ProjectInfo;
-import org.springblade.manager.mapper.ContractInfoMapper;
+import org.springblade.manager.entity.WbsInfo;
+import org.springblade.manager.entity.WbsTreePrivate;
+import org.springblade.manager.mapper.*;
 import org.springblade.manager.vo.ContractlnfoCountVO;
 import org.springblade.manager.vo.ProjectInfoVO;
-import org.springblade.manager.mapper.ProjectInfoMapper;
 import org.springblade.manager.service.IProjectInfoService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.manager.vo.ProjectInfoVO2;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
@@ -38,26 +40,52 @@ import java.util.List;
 @Service
 public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, ProjectInfo> implements IProjectInfoService {
 
-	@Resource
-	private ContractInfoMapper contractInfoMapper;
+    @Resource
+    private ContractInfoMapper contractInfoMapper;
+    @Resource
+    private WbsInfoMapper wbsInfoMapper;
+    @Resource
+    private WbsTreePrivateMapper wbsTreePrivateMapper;
 
-	@Override
-	public List<ProjectInfo> selectProjectList() {
-		return this.baseMapper.selectProjectList();
-	}
+    @Override
+    public List<ProjectInfo> selectProjectList() {
+        return this.baseMapper.selectProjectList();
+    }
 
-	@Override
-	public IPage<ProjectInfoVO> selectProjectInfoPage(IPage<ProjectInfoVO> page, ProjectInfoVO projectInfo) {
-		return page.setRecords(baseMapper.selectProjectInfoPage(page, projectInfo));
-	}
+    @Override
+    public IPage<ProjectInfoVO> selectProjectInfoPage(IPage<ProjectInfoVO> page, ProjectInfoVO projectInfo) {
+        return page.setRecords(baseMapper.selectProjectInfoPage(page, projectInfo));
+    }
 
-	@Override
-	public List<ContractlnfoCountVO> selectContractInfoCount() {
-		List<ContractlnfoCountVO> contractlnfoCountVO = contractInfoMapper.selectContractInfoCount();
-		return contractlnfoCountVO;
-	}
+    @Override
+    public List<ContractlnfoCountVO> selectContractInfoCount() {
+        List<ContractlnfoCountVO> contractlnfoCountVO = contractInfoMapper.selectContractInfoCount();
+        return contractlnfoCountVO;
+    }
 
 
+    @Override
+    public ProjectInfo getOne(Long id) {
+        return baseMapper.selectById(id);
+    }
+
+    @Override
+    public ProjectInfoVO2 getOneByCondition(Long id, Long referenceWbsTemplateId, String referenceWbsTemplateType) {
+        ProjectInfoVO2 projectInfoVO2 = new ProjectInfoVO2();
+        ProjectInfo projectInfo = baseMapper.selectById(id);
+        if ("public".equals(referenceWbsTemplateType) && referenceWbsTemplateId != (-1)) {
+            WbsInfo wbsInfo = wbsInfoMapper.selectById(referenceWbsTemplateId);
+            projectInfoVO2.setWbsType(wbsInfo.getWbsType());
+            projectInfoVO2.setProjectInfo(projectInfo);
+        } else if (("private").equals(referenceWbsTemplateType) && referenceWbsTemplateId != (-1)) {
+            WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectByPKeyId(referenceWbsTemplateId);
+            projectInfoVO2.setWbsType(Integer.valueOf(wbsTreePrivate.getWbsType()));
+            projectInfoVO2.setProjectInfo(projectInfo);
+        } else {
+            projectInfoVO2.setProjectInfo(projectInfo);
+        }
+        return projectInfoVO2;
+    }
 
 
 }

+ 4 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -45,8 +45,10 @@ public class WbsTreeContractServiceImpl
         List<String> idList2 = new ArrayList<>();
         //查找合同段wbs私有库的节点树
         List<WbsTreeContract> list = baseMapper.findAllNodeList2(pawDTO.getProjectId(), pawDTO.getContractId(), pawDTO.getWbsId());
-        for (WbsTreeContract wbsTreeContract : list) {
-            idList2.add(String.valueOf(wbsTreeContract.getId()));
+        if (list.size() > 0) {
+            for (WbsTreeContract wbsTreeContract : list) {
+                idList2.add(String.valueOf(wbsTreeContract.getId()));
+            }
         }
         //比较项目wbs私有树与合同段wbs树是否相同,相同则不修改,不同则修改
         List<String> diffrent = getDiffrent(idList1, idList2);

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

@@ -61,6 +61,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             wbsTreePrivate.setStatus(1);
             Long pKeyId = SnowFlakeUtil.getId();
             wbsTreePrivate.setPKeyId(pKeyId);
+            wbsTreePrivate.setWbsType(String.valueOf(1)); //默认质检
             WbsTreePrivate parent = baseMapper.getByCondition(wbsTreePrivate.getParentId(), wbsTreePrivate.getProjectId());
             if (parent != null) {
                 String ancestors = parent.getAncestors() + "," + wbsTreePrivate.getParentId();

+ 24 - 15
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -328,7 +328,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     for (String tableId : diffrent1) {
                         WbsTree wbsTree = wbsTreeMapper.selectById(tableId);
                         Long snowId1 = SnowFlakeUtil.getId();
-                        wbsTreePrivateMapper.insertCombination1(snowId1, wbsTree, pawDTO.getProjectId());
+                        wbsTreePrivateMapper.insertCombination1(snowId1, wbsTree, pawDTO.getWbsType(), pawDTO.getProjectId());
                     }
                     return "3";
                 }
@@ -350,7 +350,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                             WbsTree wbsTree = wbsTreeMapper.selectById(id);
                             if (wbsTree != null) {
                                 Long snowId = SnowFlakeUtil.getId();
-                                wbsTreePrivateMapper.insertCombination1(snowId, wbsTree, pawDTO.getProjectId());
+                                wbsTreePrivateMapper.insertCombination1(snowId, wbsTree, pawDTO.getWbsType(), pawDTO.getProjectId());
                                 //查询该节点下是否有元素表
                                 Long tableParentId = wbsTree.getId();
                                 List<WbsTree> wbsTreeTableList = wbsTreeMapper.selectIsTable(tableParentId);
@@ -362,41 +362,50 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                         queryWrapper1.eq("id", tree.getId());
                                         queryWrapper1.eq("wbs_id", pawDTO.getWbsId());
                                         queryWrapper1.eq("project_id", pawDTO.getProjectId());
+                                        queryWrapper1.eq("parent_id", tree.getParentId());
+                                        queryWrapper1.eq("dept_name", tree.getDeptName());
+                                        queryWrapper1.eq("type", 2);
                                         WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(queryWrapper1);
+                                        System.out.println(wbsTreePrivates1 + " wbsTreePrivates1 ");
                                         if (wbsTreePrivates1 == null) {
                                             Long snowId1 = SnowFlakeUtil.getId();
-                                            wbsTreePrivateMapper.insertCombination1(snowId1, tree, pawDTO.getProjectId());
+                                            wbsTreePrivateMapper.insertCombination1(snowId1, tree, pawDTO.getWbsType(), pawDTO.getProjectId());
                                         }
                                     }
                                 }
-                                //保存引用模板id
-                                projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getWbsId());
+                                //保存引用模板id、类型
+                                projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getWbsId(), "public");
                             }
                         } else if (pawDTO.getReferenceType().equals("private")) {
                             //引用项目WBS私有库 通过referencePrivateWbsProjectId 查询引用的私有库
                             WbsTreePrivate wbsTreePrivate1 = wbsTreePrivateMapper.selectByCondition(id, pawDTO.getWbsId(), pawDTO.getReferencePrivateWbsProjectId());
                             //引用的私有库根节点primaryKeyId,赋值给新增的私有树wbsId字段
-//                            String wbsId = String.valueOf(pawDTO.getPrimaryKeyId());
+                            String wbsId = String.valueOf(pawDTO.getPrimaryKeyId());
+                            wbsTreePrivate1.setWbsId(wbsId);
                             Long snowId = SnowFlakeUtil.getId();
                             wbsTreePrivateMapper.insertCombination2(snowId, wbsTreePrivate1, pawDTO.getProjectId());  //pawDTO.getProjectId() 为当前项目id
                             //查询该节点下是否有元素表
-                            List<WbsTree> wbsTreeTableList = wbsTreePrivateMapper.selectIsTable(wbsTreePrivate1.getId());
+                            List<WbsTree> wbsTreeTableList = wbsTreePrivateMapper.selectIsTable(wbsTreePrivate1.getId(), pawDTO.getReferencePrivateWbsProjectId());
                             if (wbsTreeTableList.size() > 0) {
                                 for (WbsTree tree : wbsTreeTableList) {
                                     //判重
-                                    QueryWrapper<WbsTreePrivate> queryWrapper1 = new QueryWrapper<>();
-                                    queryWrapper1.eq("id", tree.getId());
-                                    queryWrapper1.eq("wbs_id", pawDTO.getWbsId());
-                                    queryWrapper1.eq("project_id", pawDTO.getProjectId());
-                                    WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(queryWrapper1);
+                                    QueryWrapper<WbsTreePrivate> queryWrapper2 = new QueryWrapper<>();
+                                    queryWrapper2.eq("id", tree.getId());
+                                    queryWrapper2.eq("wbs_id", pawDTO.getWbsId());
+                                    queryWrapper2.eq("project_id", pawDTO.getProjectId());
+                                    queryWrapper2.eq("parent_id", tree.getParentId());
+                                    queryWrapper2.eq("dept_name", tree.getDeptName());
+                                    queryWrapper2.eq("type", 2);
+                                    WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(queryWrapper2);
                                     if (wbsTreePrivates1 == null) {
                                         Long snowId1 = SnowFlakeUtil.getId();
-                                        wbsTreePrivateMapper.insertCombination1(snowId1, tree, pawDTO.getProjectId());
+                                        tree.setWbsId(String.valueOf(pawDTO.getPrimaryKeyId()));
+                                        wbsTreePrivateMapper.insertCombination1(snowId1, tree, pawDTO.getWbsType(), pawDTO.getProjectId());
                                     }
                                 }
                             }
-                            //保存引用模板id
-                            projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getWbsId());
+                            //保存引用模板id、类型
+                            projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getPrimaryKeyId(), "private");
                         }
                     }
                 }

+ 3 - 3
doc/nacos/blade-dev.yaml

@@ -42,9 +42,9 @@ blade:
   datasource:
     dev:
       # MySql
-      url: jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
-      username: root
-      password: root
+      url: jdbc:mysql://192.168.3.19:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
+      username: bladex
+      password: 68LzdwJ6p7RAGijK
       # PostgreSQL
       #url: jdbc:postgresql://127.0.0.1:5432/bladex
       #username: postgres