Quellcode durchsuchen

Merge branch 'master' of http://47.110.251.215:3000/java_org/bladex

huangtf vor 2 Jahren
Ursprung
Commit
0b5f0d50d3
27 geänderte Dateien mit 489 neuen und 82 gelöschten Zeilen
  1. 1 1
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/EMInvoiceInfo.java
  2. 20 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/PlanStatisticVO.java
  3. 22 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectIncomeCostRatioVO.java
  4. 1 1
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectProcessVO.java
  5. 28 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectServiceProcessVO.java
  6. 27 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/RiskPlanByMonthOfYearVO.java
  7. 36 23
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  8. 30 0
      blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetController.java
  9. 19 6
      blade-service/blade-control/src/main/java/org/springblade/control/controller/ExMaTwoController.java
  10. 18 7
      blade-service/blade-control/src/main/java/org/springblade/control/controller/ProjectCostBudgetController.java
  11. 2 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.java
  12. 8 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.xml
  13. 4 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.java
  14. 25 3
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.xml
  15. 1 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectInfoMapper.xml
  16. 6 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetService.java
  17. 2 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IContractReturnedInfoService.java
  18. 6 5
      blade-service/blade-control/src/main/java/org/springblade/control/service/IProjectCostBudgetService.java
  19. 155 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java
  20. 10 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ContractReturnedInfoServiceImpl.java
  21. 3 2
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/PlanInformServiceImpl.java
  22. 41 26
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java
  23. 3 2
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectProcessServiceImpl.java
  24. 6 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java
  25. 2 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java
  26. 5 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml
  27. 8 5
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java

+ 1 - 1
blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/EMInvoiceInfo.java

@@ -40,7 +40,7 @@ public class EMInvoiceInfo extends BaseEntity {
     @ApiModelProperty(value = "开票金额")
     private BigDecimal invoiceMoney;
 
-    @ApiModelProperty(value = "开票内容字典类型")
+    @ApiModelProperty(value = "开票内容")
     private String invoiceContent;
 
     @ApiModelProperty(value = "发票pdf")

+ 20 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/PlanStatisticVO.java

@@ -0,0 +1,20 @@
+package org.springblade.control.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Param  门户普通权限,计划统计图
+ * @Author wangwl
+ * @Date 2023/6/30 14:32
+ **/
+@Data
+public class PlanStatisticVO {
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "计划总数")
+    private List<Integer> value;
+}

+ 22 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectIncomeCostRatioVO.java

@@ -0,0 +1,22 @@
+package org.springblade.control.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Param  门户-统计项目收入占比,支出占比
+ * @Author wangwl
+ * @Date 2023/6/30 10:05
+ **/
+@Data
+public class ProjectIncomeCostRatioVO {
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目支出")
+    private Integer projectCost;
+
+    @ApiModelProperty(value = "项目收入")
+    private Integer projectIncome;
+
+}

+ 1 - 1
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectProcessVO.java

@@ -21,7 +21,7 @@ public class ProjectProcessVO extends ProjectProcess {
     @ApiModelProperty(value = "进程状态值")
     private String statusValue;
 
-    @ApiModelProperty(value = "是否参与")
+    @ApiModelProperty(value = "是否参与,0未参与,1参与")
     private Integer isParticipate;
 
     @ApiModelProperty(value = "成本支出")

+ 28 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectServiceProcessVO.java

@@ -0,0 +1,28 @@
+package org.springblade.control.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Param   门户-项目服务进程
+ * @Author wangwl
+ * @Date 2023/6/30 11:59
+ **/
+@Data
+public class ProjectServiceProcessVO {
+
+    @ApiModelProperty(value = "进程名称")
+    private String processName;
+
+    @ApiModelProperty(value = "进程执行进度条")
+    private Integer processProgressBar;
+
+    @ApiModelProperty(value = "进程已支出成本进度条")
+    private Integer processCostProgressBar;
+
+    @ApiModelProperty(value = "进程已支出成本金额")
+    private BigDecimal processCostCount;
+
+}

+ 27 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/RiskPlanByMonthOfYearVO.java

@@ -0,0 +1,27 @@
+package org.springblade.control.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Param  任务统计-风险计划
+ * @Author wangwl
+ * @Date 2023/6/30 16:01
+ **/
+@Data
+public class RiskPlanByMonthOfYearVO {
+    @ApiModelProperty(value = "计划名称")
+    private String name;
+
+    @ApiModelProperty(value = "格式")
+    private String type;
+
+    @ApiModelProperty(value = "格式")
+    private String stack;
+
+    @ApiModelProperty(value = "计划数量")
+    private List<Integer> data;
+
+}

+ 36 - 23
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -2569,25 +2569,25 @@ public class InformationWriteQueryController extends BladeController {
         //获取被删除节点名称
         //String nodeName = StringUtils.isNotEmpty(removeNode.getFullName()) ? removeNode.getFullName() : removeNode.getNodeName() + "," + removeNodeList.stream().map(wbs -> StringUtils.isNotEmpty(wbs.getFullName()) ? wbs.getFullName() : wbs.getNodeName()).collect(Collectors.joining());
 
-//        //获取当前节点下所有填报节点
-//        List<QueryProcessDataVO> queryProcess = new ArrayList<>();
-//        if (!Arrays.asList("1,2,3,4".split(",")).contains(removeNode.getMajorDataType().toString())) {
-//            queryProcess = this.informationQueryService.queryProcessDataByParentIdAndContractId2(removeNode.getId().toString(), 1, removeNode.getContractId());
-//            if (queryProcess == null || queryProcess.size() == 0) {
-//                //填报节点
-//                queryProcess = this.informationQueryService.queryProcessDataByPrimaryKeyIdAndClassify(removeNode.getPKeyId().toString(), 1);
-//            }
-//        }
-//
-//        if (queryProcess != null && queryProcess.size() > 0) {
-//            //检查这些填报节点是否存在已经审批或已经上报的节点,如果存在则不允许删除
-//            List<QueryProcessDataVO> approvalList = queryProcess.stream().filter(vo -> new Integer("2").equals(vo.getStatus()) && vo.getInformationQueryId() != null).collect(Collectors.toList());
-//            List<QueryProcessDataVO> runTaskList = queryProcess.stream().filter(vo -> new Integer("1").equals(vo.getStatus()) && vo.getInformationQueryId() != null).collect(Collectors.toList());
-//            if (approvalList.size() > 0 || runTaskList.size() > 0) {
-//                //说明存在已经审批或已经上报的节点,不允许删除
-//                return R.data(300, false, "存在已经上报或审批的节点,不允许删除");
-//            }
-//        }
+        //获取当前节点下所有填报节点
+        /*List<QueryProcessDataVO> queryProcess = new ArrayList<>();
+        if (!Arrays.asList("1,2,3,4".split(",")).contains(removeNode.getMajorDataType().toString())) {
+            queryProcess = this.informationQueryService.queryProcessDataByParentIdAndContractId2(removeNode.getId().toString(), 1, removeNode.getContractId());
+            if (queryProcess == null || queryProcess.size() == 0) {
+                //填报节点
+                queryProcess = this.informationQueryService.queryProcessDataByPrimaryKeyIdAndClassify(removeNode.getPKeyId().toString(), 1);
+            }
+        }
+
+        if (queryProcess != null && queryProcess.size() > 0) {
+            //检查这些填报节点是否存在已经审批或已经上报的节点,如果存在则不允许删除
+            List<QueryProcessDataVO> approvalList = queryProcess.stream().filter(vo -> new Integer("2").equals(vo.getStatus()) && vo.getInformationQueryId() != null).collect(Collectors.toList());
+            List<QueryProcessDataVO> runTaskList = queryProcess.stream().filter(vo -> new Integer("1").equals(vo.getStatus()) && vo.getInformationQueryId() != null).collect(Collectors.toList());
+            if (approvalList.size() > 0 || runTaskList.size() > 0) {
+                //说明存在已经审批或已经上报的节点,不允许删除
+                return R.data(300, false, "存在已经上报或审批的节点,不允许删除");
+            }
+        }*/
 
         //保存操作记录
         List<String> idArray = JSONArray.parseArray(JSONObject.toJSONString(ids.split(",")), String.class);
@@ -2607,7 +2607,10 @@ public class InformationWriteQueryController extends BladeController {
 
         //保存进回收站
         this.recycleBinClient.saveDelBusinessData(idArray, StringUtils.isNotEmpty(removeNode.getFullName()) ? removeNode.getFullName() : removeNode.getNodeName(), 2, parentNodeName.toString(), removeNode.getProjectId(), removeNode.getContractId());
+
+        //改为物理删除
         Boolean aBoolean = this.wbsTreeContractClient.removeContractTreeNode(idArray);
+
         //更新redis
         //this.informationQueryService.AsyncWbsTree(removeNode.getParentId() + "", removeNode.getParentId() + "", removeNode.getContractId(), "", "1");
         this.informationQueryService.delAsyncWbsTree(removeNode.getContractId());
@@ -2626,7 +2629,11 @@ public class InformationWriteQueryController extends BladeController {
     public R<Boolean> saveContractTreeNode(@RequestBody AddContractTreeNodeVO vo) {
         //先获取当前节点的信息
         WbsTreeContract treeContract = this.wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(Long.parseLong(vo.getCurrentNodePrimaryKeyId()));
-
+        if (treeContract == null) {
+            //未找到节点信息,说明可能是缓存,那么清除缓存
+            informationQueryService.delAsyncWbsTree(vo.getContractId());
+            throw new ServiceException("该节点为缓存信息,请重试");
+        }
         //半选
         List<AddContractTreeNodeVO.Node> halfSelectedNodeList = vo.getHalfSelectedList();
         //全选
@@ -2727,7 +2734,7 @@ public class InformationWriteQueryController extends BladeController {
                 }
 
                 //设置父级id
-                if (("1").equals(vo.getSaveType())) {
+                if ("1".equals(vo.getSaveType())) {
                     //当前节点及其子节点操作
                     newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId()) ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId()) || treeContract.getOldId().equals(half.getParentId().toString()) ? treeContract.getId() : SnowFlakeUtil.getId());
                 } else {
@@ -2848,7 +2855,7 @@ public class InformationWriteQueryController extends BladeController {
         List<WbsTreeContract> selectedNodeList = jdbcTemplate.query("select * from m_wbs_tree_contract where status = 1 and is_deleted = 0 and p_key_id in(" + StringUtils.join(halfSelectedList, ",") + ")", new BeanPropertyRowMapper<>(WbsTreeContract.class));
 
         //剔除与当前操作节点相同的ID,(如果saveType=1,表示当前及子级节点,那么就要剔除自己本身,否则视为仅当前节点操作,会存在自己本身)
-        if ("1".equals(saveType)){
+        if ("1".equals(saveType)) {
             //selectedNodeList.removeIf(wbsTreePrivate -> treeContract.getId().equals(wbsTreePrivate.getId()) || treeContract.getOldId().equals(wbsTreePrivate.getId().toString()));
             selectedNodeList.removeIf(wbsTreePrivate -> {
                 Long id = wbsTreePrivate.getId();
@@ -2973,7 +2980,13 @@ public class InformationWriteQueryController extends BladeController {
             //查询对应数据
             List<WbsTreeContract> allSelectedNodeLists = this.wbsTreeContractClient.queryContractTreeNodeByPKIds(allSelectedList);
             //剔除与当前操作节点相同的ID
-            allSelectedNodeLists.removeIf(wbsTreePrivate -> treeContract.getId().equals(wbsTreePrivate.getId()) || treeContract.getOldId().equals(wbsTreePrivate.getId().toString()));
+            allSelectedNodeLists.removeIf(wbsTreePrivate -> {
+                Long id = wbsTreePrivate.getId();
+                String oldId = wbsTreePrivate.getId().toString();
+                return treeContract.getId() != null && treeContract.getOldId() != null &&
+                        (treeContract.getId().equals(id) || treeContract.getOldId().equals(oldId));
+            });
+            //allSelectedNodeLists.removeIf(wbsTreePrivate -> treeContract.getId().equals(wbsTreePrivate.getId()) || treeContract.getOldId().equals(wbsTreePrivate.getId().toString()));
             //设置到集合中
             selectedNodeList.addAll(allSelectedNodeLists);
         }

+ 30 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetController.java

@@ -187,6 +187,36 @@ public class AnnualBudgetController {
         return R.data(budgetService.portalRiskPlan());
     }
 
+    /**
+     * 门户-各项目支出占比
+     */
+    @GetMapping("/portalProjectCostRatio")
+    @ApiOperationSupport(order = 13)
+    @ApiOperation(value = "门户-各项目支出占比",notes = "传入年月,如2023-06")
+    public R<List<ProjectIncomeCostRatioVO>> portalProjectCostRatio(String date) {
+        return R.data(budgetService.portalProjectCostRatio(date));
+    }
+
+    /**
+     * 门户-各项目收入占比
+     */
+    @GetMapping("/portalProjectIncomeRatio")
+    @ApiOperationSupport(order = 14)
+    @ApiOperation(value = "门户-各项目收入占比",notes = "传入年月,如2023-06")
+    public R<List<ProjectIncomeCostRatioVO>> portalProjectIncomeRatio(String date) {
+        return R.data(budgetService.portalProjectIncomeRatio(date));
+    }
+
+    /**
+     * 门户-项目服务阶段进程
+     */
+    @GetMapping("/portalProjectProcess")
+    @ApiOperationSupport(order = 15)
+    @ApiOperation(value = "门户-项目服务阶段进程",notes = "传入项目id")
+    public R<List<ProjectServiceProcessVO>> portalProjectProcess(Long projectId) {
+        return R.data(budgetService.portalProjectProcess(projectId));
+    }
+
 //    /**
 //     * 门户-风险计划查看
 //     */

+ 19 - 6
blade-service/blade-control/src/main/java/org/springblade/control/controller/ExMaTwoController.java

@@ -205,15 +205,28 @@ public class ExMaTwoController extends BladeController {
     @ApiOperationSupport(order = 7)
     @ApiOperation(value = "获取合同段发票信息", notes = "传入项目id")
     public R<ContractInvoiceInfoVO> getContractInvoiceInfo(@RequestParam String projectId) {
-        List<ControlContractInfo> query = jdbcTemplate.query("select * from c_control_contract_info where project_id = " + projectId, new BeanPropertyRowMapper<>(ControlContractInfo.class));
-        if (query.size() == 1) {
-            ControlContractInfo controlContractInfo = query.get(0);
-            if (controlContractInfo != null) {
-                ContractInvoiceInfoVO vo = BeanUtil.copyProperties(controlContractInfo, ContractInvoiceInfoVO.class);
-                return R.data(vo);
+        if (StringUtils.isNotEmpty(projectId)) {
+            List<ControlContractInfo> query = jdbcTemplate.query("select * from c_control_contract_info where project_id = " + projectId, new BeanPropertyRowMapper<>(ControlContractInfo.class));
+            if (query.size() == 1) {
+                ControlContractInfo controlContractInfo = query.get(0);
+                if (controlContractInfo != null) {
+                    ContractInvoiceInfoVO vo = BeanUtil.copyProperties(controlContractInfo, ContractInvoiceInfoVO.class);
+                    return R.data(vo);
+                }
             }
         }
         return R.data(null);
     }
 
+    @GetMapping("/getInvoiceContentList")
+    @ApiOperationSupport(order = 8)
+    @ApiOperation(value = "获取发票内容列表")
+    public R<List<String>> getInvoiceContentList() {
+        List<DictInfo> query = jdbcTemplate.query("select dict_name from c_dict_info where type = 7", new BeanPropertyRowMapper<>(DictInfo.class));
+        if (query.size() > 0) {
+            return R.data(query.stream().map(DictInfo::getDictName).collect(Collectors.toList()));
+        }
+        return R.data(null);
+    }
+
 }

+ 18 - 7
blade-service/blade-control/src/main/java/org/springblade/control/controller/ProjectCostBudgetController.java

@@ -11,6 +11,7 @@ import org.springblade.control.dto.ProjectCostBudgetDTO;
 import org.springblade.control.entity.ProjectCostBudget;
 import org.springblade.control.service.IProjectCostBudgetService;
 import org.springblade.control.vo.ControlProjectInfoVO;
+import org.springblade.control.vo.PlanStatisticVO;
 import org.springblade.control.vo.ProjectCostBudgetVO;
 import org.springblade.control.vo.ProjectCostBudgetVO3;
 import org.springblade.core.mp.support.Query;
@@ -109,7 +110,7 @@ public class ProjectCostBudgetController {
      */
     @GetMapping("/planOverview")
     @ApiOperationSupport(order = 7)
-    @ApiOperation(value = "门户普通权限总计划统计")
+    @ApiOperation(value = "门户-普通权限-总计划统计")
     public R<ProjectCostBudgetVO3> planOverview(){
         return R.data(budgetService.planOverview());
     }
@@ -119,30 +120,40 @@ public class ProjectCostBudgetController {
      */
     @GetMapping("/postponePlan")
     @ApiOperationSupport(order = 8)
-    @ApiOperation(value = "门户普通权限预警")
+    @ApiOperation(value = "门户-普通权限-预警")
     public R<List<ProjectCostBudgetVO3>> postponePlan(){
         return R.data(budgetService.postponePlan());
     }
 
     /**
-     * 门户普通权限单月计划统计
+     * 门户-普通权限-单月计划统计
      */
     @GetMapping("/MonthPlanOverview")
     @ApiOperationSupport(order = 9)
-    @ApiOperation(value = "门户普通权限单月计划统计")
+    @ApiOperation(value = "门-户普通权限-单月计划统计")
     public R<ProjectCostBudgetVO3> MonthPlanOverview(String planDate){
         return R.data(budgetService.MonthPlanOverview(planDate));
     }
 
     /**
-     * 门户普通权限计划统计图
+     * 门户-普通权限-计划统计图
      */
     @GetMapping("/MonthOfYearPlanOverview")
     @ApiOperationSupport(order = 10)
-    @ApiOperation(value = "门户普通权限计划统计图")
-    public R<List<Map<String,List<Integer>>>> MonthOfYearPlanOverview(){
+    @ApiOperation(value = "门户-普通权限-计划统计图")
+    public R<List<PlanStatisticVO>> MonthOfYearPlanOverview(){
         return R.data(budgetService.MonthOfYearPlanOverview());
     }
 
+    /**
+     * 任务统计-计划统计图
+     */
+    @GetMapping("/MonthOfYearPlanOverview2")
+    @ApiOperationSupport(order = 11)
+    @ApiOperation(value = "任务统计-计划统计图",notes = "有参数的计划统计图")
+    public R<List<PlanStatisticVO>> MonthOfYearPlanOverview2(Long deptId,Long UserId,LocalDate start,LocalDate end){
+        return R.data(budgetService.MonthOfYearPlanOverview2(deptId,UserId,start,end));
+    }
+
 
 }

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.java

@@ -26,4 +26,6 @@ public interface ContractReturnedInfoMapper extends BaseMapper<ContractReturnedI
     List<ContractReturnedInfoVO> getListByProjectId(@Param("projectId") Long projectId,@Param("contractId") Long contractId);
 
     BigDecimal getYearReturned(@Param("year") int year);
+
+    List<ContractReturnedInfo> getProjectReturnedByMonth(@Param("date") String date);
 }

+ 8 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.xml

@@ -30,4 +30,12 @@
             and DATE_FORMAT(practical_returned_time ,'%Y') = #{year}
         </if>
     </select>
+    <select id="getProjectReturnedByMonth" resultType="org.springblade.control.entity.ContractReturnedInfo">
+        select * from c_contract_returned_info
+        WHERE is_deleted = 0
+        <if test="date != null and date != ''">
+            and DATE_FORMAT(practical_returned_time ,'%Y-%m') = #{date}
+        </if>
+        and practical_returned_money is not null
+    </select>
 </mapper>

+ 4 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.java

@@ -65,4 +65,8 @@ public interface ProjectCostBudgetMapper extends BaseMapper<ProjectCostBudget> {
     List<ProjectCostBudgetVO2> getPlanByMonth(@Param("date") String date);
 
     List<ProjectCostBudget> getRiskPlan(@Param("projectId") Long projectId,@Param("costType") Integer costType);
+
+    List<ProjectCostBudget> getPlanPracticalCostByMonth(@Param("date") String date);
+
+    List<ProjectCostBudget> MonthOfYearPlanOverview2(@Param("deptId") Long deptId,@Param("userId") Long userId,@Param("start") LocalDate start,@Param("end") LocalDate end);
 }

+ 25 - 3
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.xml

@@ -125,7 +125,11 @@
         select * from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.project_id = #{id} and pcb.parent_id = 0
     </select>
     <select id="getProjectAllFinishedTask" resultType="org.springblade.control.entity.ProjectCostBudget">
-        select * from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.project_id = #{projectId} and cost_type = #{costType} and pcb.task_approve = 1
+        select * from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.project_id = #{projectId}
+        <if test="costType != null and costType != ''">
+            and cost_type = #{costType}
+        </if>
+        and pcb.task_approve = 1
     </select>
     <select id="getAllPracticalBudgetByProjectId"
             resultType="org.springblade.control.entity.ProjectCostBudget">
@@ -155,8 +159,12 @@
         select pcb.*,
                (pcb.plan_days * (select bu.one_money from blade_user bu WHERE bu.id = pcb.task_user)) as 'planCountMoney',
                 (select cpi.name from c_control_project_info cpi WHERE cpi.id = pcb.project_id) as 'projectName'
-        from c_project_cost_budget pcb WHERE DATE_FORMAT(pcb.plan_start_time ,'%Y-%m') = #{date}
-                                         and pcb.task_user is not null and pcb.plan_days is not null
+        from c_project_cost_budget pcb
+        WHERE pcb.is_deleted = 0
+        <if test="date != null and date != ''">
+            and DATE_FORMAT(pcb.plan_start_time ,'%Y-%m') = #{date}
+        </if>
+        and pcb.task_user is not null and pcb.plan_days is not null
     </select>
     <select id="getRiskPlan" resultType="org.springblade.control.entity.ProjectCostBudget">
         SELECT * from c_project_cost_budget WHERE plan_end_time &lt; NOW() and status in (2,3)
@@ -175,6 +183,20 @@
             and cost_type = #{costType}
         </if>
     </select>
+    <select id="getPlanPracticalCostByMonth" resultType="org.springblade.control.entity.ProjectCostBudget">
+        select pcb.*
+        from c_project_cost_budget pcb
+        WHERE pcb.is_deleted = 0 and pcb.task_approve = 1
+        <if test="date != null and date != ''">
+            and DATE_FORMAT(pcb.plan_start_time ,'%Y-%m') = #{date}
+        </if>
+    </select>
+    <select id="MonthOfYearPlanOverview2" resultType="org.springblade.control.entity.ProjectCostBudget">
+        select pcb.*
+        from c_project_cost_budget pcb
+        where pcb.task_user = #{user} and pcb.is_deleted = 0
+            and DATE_FORMAT(pcb.plan_start_time,'%Y') = #{year} or DATE_FORMAT(pcb.plan_end_time,'%Y') = #{year}
+    </select>
 
 
 </mapper>

+ 1 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectInfoMapper.xml

@@ -62,6 +62,7 @@
     </select>
     <select id="ProjectListStats" resultType="org.springblade.control.vo.AllProjectStatsVO">
         select
+            cpi.id as 'projectId',
             cpi.name as 'projectName',
             cci.contract_money  as 'contractMoney',
                 (select cbs.project_cost_total from c_project_cost_budget_stats cbs WHERE cpi.id = cbs.project_id  and cbs.is_deleted = 0) as 'budgetCost',

+ 6 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetService.java

@@ -44,4 +44,10 @@ public interface IAnnualBudgetService extends BaseService<AnnualBudget> {
     List<DeptMonthPlanRatioVO> portalProjectMonthRatio(String date);
 
     List<AllProjectStatsVO> portalRiskPlan();
+
+    List<ProjectIncomeCostRatioVO> portalProjectCostRatio(String date);
+
+    List<ProjectIncomeCostRatioVO> portalProjectIncomeRatio(String date);
+
+    List<ProjectServiceProcessVO> portalProjectProcess(Long projectId);
 }

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IContractReturnedInfoService.java

@@ -36,4 +36,6 @@ public interface IContractReturnedInfoService extends BaseService<ContractReturn
 
     //获取指定一年的回款
     BigDecimal getYearReturned(int year);
+
+    List<ContractReturnedInfo> getProjectReturnedByMonth(String date);
 }

+ 6 - 5
blade-service/blade-control/src/main/java/org/springblade/control/service/IProjectCostBudgetService.java

@@ -8,10 +8,7 @@ import org.springblade.control.entity.ControlProjectInfo;
 import org.springblade.control.entity.DictInfo;
 import org.springblade.control.entity.ProjectCostBudget;
 import org.springblade.control.entity.ProjectCostBudgetStats;
-import org.springblade.control.vo.ControlProjectInfoVO;
-import org.springblade.control.vo.ProjectCostBudgetVO;
-import org.springblade.control.vo.ProjectCostBudgetVO2;
-import org.springblade.control.vo.ProjectCostBudgetVO3;
+import org.springblade.control.vo.*;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.core.mp.support.Query;
 
@@ -53,7 +50,9 @@ public interface IProjectCostBudgetService extends BaseService<ProjectCostBudget
 
     List<ProjectCostBudgetVO3> postponePlan();
 
-    List<Map<String,List<Integer>>> MonthOfYearPlanOverview();
+    List<PlanStatisticVO> MonthOfYearPlanOverview();
+
+    List<PlanStatisticVO> MonthOfYearPlanOverview2(Long deptId,Long UserId,LocalDate start,LocalDate end);
 
     List<ProjectCostBudget> getAllBudgetByProjectId(Long id);
 
@@ -68,4 +67,6 @@ public interface IProjectCostBudgetService extends BaseService<ProjectCostBudget
     List<ProjectCostBudgetVO2> getPlanByMonth(String date);
 
     List<ProjectCostBudget> getRiskPlan(Long projectId,Integer costType);
+
+    List<ProjectCostBudget> getPlanPracticalCostByMonth(String date);
 }

+ 155 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java

@@ -2,6 +2,7 @@ package org.springblade.control.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.AllArgsConstructor;
+import org.hibernate.validator.internal.IgnoreForbiddenApisErrors;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.control.dto.AnnualBudgetDTO;
 import org.springblade.control.entity.*;
@@ -44,6 +45,8 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
 
     private final IProjectInfoService projectInfoService;
 
+    private final IProjectProcessService processService;
+
     /**
      * 新增年度经营预算
      * @param dto
@@ -450,6 +453,9 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
      */
     @Override
     public List<DeptMonthPlanRatioVO> portalProjectMonthRatio(String date) {
+        if ("汇总所有".equals(date)){
+            date = "";
+        }
         //获取当月所有计划,和计划工资
         List<ProjectCostBudgetVO2> planByMonth = budgetService.getPlanByMonth(date);
         if (planByMonth != null || planByMonth.size() >= 0) {
@@ -560,6 +566,155 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
         return vos;
     }
 
+    /**
+     * 门户-各项目支出占比
+     */
+    @Override
+    public List<ProjectIncomeCostRatioVO> portalProjectCostRatio(String date) {
+        if ("汇总所有".equals(date)){
+            date = "";
+        }
+        //获取项目列表
+        List<ControlProjectInfo> list = projectInfoService.list();
+        if (list == null || list.size() <= 0){
+            return null;
+        }
+        List<ProjectIncomeCostRatioVO> vos = new ArrayList<>();
+        //按月获取闭环任务,根据项目分组
+        List<ProjectCostBudget> costByMonth = budgetService.getPlanPracticalCostByMonth(date);
+        if (costByMonth == null || costByMonth.size() <= 0){
+            //没有闭环任务,为每个项目设置为0
+            for (ControlProjectInfo info : list) {
+                ProjectIncomeCostRatioVO vo = new ProjectIncomeCostRatioVO();
+                vo.setProjectName(info.getName());
+                vo.setProjectCost(0);
+                vos.add(vo);
+            }
+            return vos;
+        }
+        Map<Long, List<ProjectCostBudget>> map = costByMonth.parallelStream()
+                .collect(Collectors.groupingBy(ProjectCostBudget::getProjectId));
+        //为每个合同设置支出
+        for (ControlProjectInfo info : list) {
+            ProjectIncomeCostRatioVO vo = new ProjectIncomeCostRatioVO();
+            vo.setProjectName(info.getName());
+            BigDecimal big = new BigDecimal(0);
+            List<ProjectCostBudget> budgets = map.get(info.getId());
+            if (budgets != null && budgets.size() > 0){
+                for (ProjectCostBudget budget : budgets) {
+                    big = big.add(budget.getActualTotalMoney());
+                }
+            }
+            vo.setProjectCost(big.intValue());
+            vos.add(vo);
+        }
+        return vos;
+    }
+
+    @Override
+    public List<ProjectIncomeCostRatioVO> portalProjectIncomeRatio(String date) {
+        if ("汇总所有".equals(date)){
+            date = "";
+        }
+        //获取项目列表
+        List<ControlProjectInfo> list = projectInfoService.list();
+        if (list == null || list.size() <= 0){
+            return null;
+        }
+        //获取所有回款,根据项目分组
+        List<ProjectIncomeCostRatioVO> vos = new ArrayList<>();
+        List<ContractReturnedInfo> returnedByMonth = returnedInfoService.getProjectReturnedByMonth(date);
+        if (returnedByMonth == null || returnedByMonth.size() <= 0){
+            //没有闭环任务,为每个项目设置为0
+            for (ControlProjectInfo info : list) {
+                ProjectIncomeCostRatioVO vo = new ProjectIncomeCostRatioVO();
+                vo.setProjectName(info.getName());
+                vo.setProjectIncome(0);
+                vos.add(vo);
+            }
+            return vos;
+        }
+        Map<Long, List<ContractReturnedInfo>> map = returnedByMonth.parallelStream()
+                .collect(Collectors.groupingBy(ContractReturnedInfo::getProjectId));
+        //为每个合同设置收入
+        for (ControlProjectInfo info : list) {
+            ProjectIncomeCostRatioVO vo = new ProjectIncomeCostRatioVO();
+            vo.setProjectName(info.getName());
+            BigDecimal big = new BigDecimal(0);
+            List<ContractReturnedInfo> returnedInfos = map.get(info.getId());
+            if (returnedInfos != null && returnedInfos.size() > 0){
+                for (ContractReturnedInfo returnedInfo : returnedInfos) {
+                    big = big.add(returnedInfo.getPracticalReturnedMoney());
+                }
+            }
+            vo.setProjectCost(big.intValue());
+            vos.add(vo);
+        }
+        return vos;
+    }
+
+    /**
+     * 门户-项目服务阶段进程
+     */
+    @Override
+    public List<ProjectServiceProcessVO> portalProjectProcess(Long projectId) {
+        //获取当前项目所有进程
+        List<ProjectProcessVO> projectProcess = processService.getProjectProcess(projectId);
+        //获取项目所有已经闭环的计划
+        List<ProjectCostBudget> finishedTask = budgetService.getProjectAllFinishedTask(projectId, null);
+        Map<Long, List<ProjectCostBudget>> collect = new HashMap<>();
+        boolean isPlan = false ;
+        if (finishedTask == null || finishedTask.size() <= 0){
+                isPlan = true;
+        }else {
+            collect = finishedTask.parallelStream()
+                    .collect(Collectors.groupingBy(ProjectCostBudget::getProjectProcess));
+        }
+        //把计划根据进程分组
+        //为每个进程设置值
+        List<ProjectServiceProcessVO> vos = new ArrayList<>();
+        for (ProjectProcessVO process : projectProcess) {
+            ProjectServiceProcessVO vo = new ProjectServiceProcessVO();
+            vo.setProcessName(process.getName());
+            //设置进程百分比
+            if (process.getProcessEndTime() != null && process.getProcessEndTime() != null){
+                if (process.getStatus() == 1){
+                    //未开始
+                    vo.setProcessProgressBar(0);
+                }else if (process.getStatus() == 3){
+                    //已闭环
+                    vo.setProcessProgressBar(100);
+                }else {
+                    //进行中
+                    vo.setProcessProgressBar(50);
+                }
+            }else {
+                //未设置时间默认未开始
+                vo.setProcessProgressBar(0);
+            }
+            //设置进程支出金额,目前只统计人工支出
+            if (isPlan){
+                vo.setProcessCostCount(new BigDecimal(0));
+            }else {
+                List<ProjectCostBudget> budgets = collect.get(process.getId());
+                if (budgets != null && budgets.size() > 0){
+                    //计算所有任务支出总和
+                    BigDecimal big = new BigDecimal(0);
+                    for (ProjectCostBudget budget : budgets) {
+                        big = big.add(budget.getActualTotalMoney());
+                    }
+                    vo.setProcessCostCount(big);
+                }else {
+                    vo.setProcessCostCount(new BigDecimal(0));
+                }
+            }
+            //设置进程支出金额百分比
+            vo.setProcessCostProgressBar(40);
+            vos.add(vo);
+        }
+        return vos;
+    }
+
     /**
      * 统计支出 1支出总和2工资总和
      */

+ 10 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ContractReturnedInfoServiceImpl.java

@@ -97,4 +97,14 @@ public class ContractReturnedInfoServiceImpl extends BaseServiceImpl<ContractRet
         }
         return yearReturned;
     }
+
+    /**
+     * 根据月份获取回款
+     * @param date
+     * @return
+     */
+    @Override
+    public List<ContractReturnedInfo> getProjectReturnedByMonth(String date) {
+        return baseMapper.getProjectReturnedByMonth(date);
+    }
 }

+ 3 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/PlanInformServiceImpl.java

@@ -20,6 +20,7 @@ import org.springblade.control.vo.ControlProjectInfoVO;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -39,7 +40,7 @@ public class PlanInformServiceImpl extends BaseServiceImpl<PlanInformMapper, Pla
     @Override
     public List<PlanInform> getUserInform() {
         //没有用户
-        Long user = 1123598821738675201L;
-        return this.list(new LambdaQueryWrapper<PlanInform>().eq(PlanInform::getInformUser,user).orderByDesc(PlanInform::getInformDate).last("limit 5"));
+        Long userId = SecureUtil.getUserId();
+        return this.list(new LambdaQueryWrapper<PlanInform>().eq(PlanInform::getInformUser,userId).orderByDesc(PlanInform::getInformDate).last("limit 5"));
     }
 }

+ 41 - 26
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java

@@ -19,12 +19,10 @@ import org.springblade.control.mapper.ProjectInfoMapper;
 import org.springblade.control.service.IProjectCostBudgetService;
 import org.springblade.control.service.IProjectInfoService;
 import org.springblade.control.service.IProjectProcessService;
-import org.springblade.control.vo.ControlProjectInfoVO;
-import org.springblade.control.vo.ProjectCostBudgetVO;
-import org.springblade.control.vo.ProjectCostBudgetVO2;
-import org.springblade.control.vo.ProjectCostBudgetVO3;
+import org.springblade.control.vo.*;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -319,9 +317,8 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
      */
     @Override
     public ProjectCostBudgetVO3 planOverview() {
-        //没有用户
-        Long user = 1123598821738675201L;
-        ProjectCostBudgetVO3 vo3 = baseMapper.getUserALLPlan(user);
+        Long userId = SecureUtil.getUserId();
+        ProjectCostBudgetVO3 vo3 = baseMapper.getUserALLPlan(userId);
         return vo3;
     }
 
@@ -331,7 +328,7 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
     @Override
     public ProjectCostBudgetVO3 MonthPlanOverview(String planDate) {
         //没有用户
-        Long user = 1123598821738675201L;
+        Long userId = SecureUtil.getUserId();
         //初始化时间段
         String[] split = planDate.split("-");
         int year = Integer.parseInt(split[0]);
@@ -352,7 +349,7 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 }
             }
         }
-        ProjectCostBudgetVO3 vo3 = baseMapper.MonthPlanOverview(user, startDate, endDate);
+        ProjectCostBudgetVO3 vo3 = baseMapper.MonthPlanOverview(userId, startDate, endDate);
         return vo3;
     }
 
@@ -362,8 +359,8 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
     @Override
     public List<ProjectCostBudgetVO3> postponePlan() {
         //没有用户
-        Long user = 1123598821738675201L;
-        return baseMapper.postponePlan(user);
+        Long userId = SecureUtil.getUserId();
+        return baseMapper.postponePlan(userId);
     }
 
 
@@ -371,15 +368,15 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
      * 门户普通权限计划统计图
      */
     @Override
-    public List<Map<String, List<Integer>>> MonthOfYearPlanOverview() {
-        //没有用户
-        Long user = 1123598821738675201L;
+    public List<PlanStatisticVO> MonthOfYearPlanOverview() {
+        //查询当前用户
+        Long userId = SecureUtil.getUserId();
         //获取今年
         int year = LocalDate.now().getYear();
         //获取今年所有的当前用户的计划
-        List<ProjectCostBudget> list = baseMapper.MonthOfYearPlanOverview(user, year);
+        List<ProjectCostBudget> list = baseMapper.MonthOfYearPlanOverview(userId, year);
         if (list != null && list.size() > 0) {
-            List<Map<String, List<Integer>>> mapList = new ArrayList<>();
+            List<PlanStatisticVO> mapList = new ArrayList<>();
             List<Integer> allPlan = new ArrayList<>();
             List<Integer> finishedPlan = new ArrayList<>();
             List<Integer> unfinishedPlan = new ArrayList<>();
@@ -403,21 +400,29 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 finishedPlan.add(total2);
                 unfinishedPlan.add(total3);
             }
-            HashMap<String, List<Integer>> map1 = new HashMap<>();
-            map1.put("总计划",allPlan);
-            HashMap<String, List<Integer>> map2 = new HashMap<>();
-            map2.put("已完成",finishedPlan);
-            HashMap<String, List<Integer>> map3 = new HashMap<>();
-            map3.put("未完成",unfinishedPlan);
-            mapList.add(map1);
-            mapList.add(map2);
-            mapList.add(map3);
+            PlanStatisticVO vo1 = new PlanStatisticVO();
+            vo1.setName("总计划");
+            vo1.setValue(allPlan);
+            PlanStatisticVO vo2 = new PlanStatisticVO();
+            vo2.setName("已完成");
+            vo2.setValue(finishedPlan);
+            PlanStatisticVO vo3 = new PlanStatisticVO();
+            vo3.setName("未完成");
+            vo3.setValue(unfinishedPlan);
+            mapList.add(vo1);
+            mapList.add(vo2);
+            mapList.add(vo3);
             return mapList;
         }else {
             return null;
         }
     }
 
+    @Override
+    public List<PlanStatisticVO> MonthOfYearPlanOverview2(Long deptId, Long UserId, LocalDate start, LocalDate end) {
+        return null;
+    }
+
     @Override
     public List<ProjectCostBudget> getAllBudgetByProjectId(Long id) {
         return baseMapper.getAllBudgetByProjectId(id);
@@ -468,7 +473,7 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
     }
 
     /**
-     * 按月查询所有支出
+     * 按月查询所有计划支出
      * @param date
      * @return
      */
@@ -489,6 +494,16 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
         return baseMapper.getRiskPlan(projectId,costType);
     }
 
+    /**
+     * 根据月获取计划闭环后实际金额
+     * @param date
+     * @return
+     */
+    @Override
+    public List<ProjectCostBudget> getPlanPracticalCostByMonth(String date) {
+        return baseMapper.getPlanPracticalCostByMonth(date);
+    }
+
     /**
      * 统计一行的几个总金额
      */

+ 3 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectProcessServiceImpl.java

@@ -86,7 +86,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessMap
     }
 
     /**
-     * 根项目id获取项目的进程
+     * 根项目id获取项目的进程
      *
      * @return
      */
@@ -95,8 +95,9 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessMap
         List<ProjectProcessVO> list = processMapper.getProjectProcess(id);
         list.stream().forEach(l -> {
             if (l.getProcessStartTime() != null && l.getProcessEndTime() != null) {
-                //是否开始时间,在当前时间之前
+                //开始时间是否在今天以前,是则已开始,否则未开始
                 if (l.getProcessStartTime().isBefore(LocalDate.now())) {
+                    //结束时间是否在今天以前,是则已结果,否则进行中
                     if (l.getProcessEndTime().isBefore(LocalDate.now())) {
                         l.setStatusValue("已闭环");
                         l.setStatus(3);

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

@@ -158,7 +158,12 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
 
     @Override
     public Boolean removeContractTreeNode(List<String> ids) {
-        return this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getIsDeleted, 1).in(WbsTreeContract::getPKeyId, ids));
+        if (ids.size() > 0) {
+            jdbcTemplate.execute("delete from m_wbs_tree_contract where p_key_id in(" + org.apache.commons.lang.StringUtils.join(ids, ",") + ")");
+            return true;
+        }
+        return false;
+        //return this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getIsDeleted, 1).in(WbsTreeContract::getPKeyId, ids));
     }
 
     @Override

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

@@ -108,4 +108,6 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
                                               @feign.Param("fileNumberPrefix") String fileNumberPrefix);
 
     ArchiveTreeContract getArchiveTreeContractByContractId(@Param("contractId") Long contractId);
+
+    int updateByNodeName(@Param("contractName") String contractName,@Param("name") String name,@Param("id") Long id);
 }

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -501,5 +501,10 @@
             and (archive_auto_type != 2 and archive_auto_type != 3 or archive_auto_type is null)
         </if>
     </update>
+    <update id="updateByNodeName">
+        update m_archive_tree_contract
+        set node_name = #{name}
+        where node_name = #{contractName} and contract_id = #{id}
+    </update>
 
 </mapper>

+ 8 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java

@@ -22,10 +22,7 @@ import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.manager.dto.FindAllUserByConditionDTO;
 import org.springblade.manager.dto.SaveUserInfoByProjectDTO;
 import org.springblade.manager.entity.*;
-import org.springblade.manager.mapper.ContractInfoMapper;
-import org.springblade.manager.mapper.ProjectContractAreaMapper;
-import org.springblade.manager.mapper.SaveUserInfoByProjectMapper;
-import org.springblade.manager.mapper.WbsTreeContractMapper;
+import org.springblade.manager.mapper.*;
 import org.springblade.manager.service.IContractInfoService;
 import org.springblade.manager.vo.*;
 import org.springblade.system.user.entity.User;
@@ -53,6 +50,7 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
     private final JdbcTemplate jdbcTemplate;
     private final IUserClient iUserClient;
     private final InformationQueryClient informationQueryClient;
+    private final ArchiveTreeContractMapper archiveTreeContractMapper;
 
     @Override
     public List<String> getProcessContractByJLContractId(String contractId) {
@@ -671,7 +669,12 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
             if (contractInfos.size() > 0) {
                 throw new ServiceException("合同段名称已存在当前项目下,请重新输入");
             }
-
+            ContractInfo contractInfo1 = baseMapper.selectById(contractInfo.getId());
+            try {
+                int integer = archiveTreeContractMapper.updateByNodeName(contractInfo1.getContractName(),contractInfo.getContractName(),contractInfo.getId());
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
             boolean row = this.saveOrUpdate(contractInfo);
 
             //监理、总监办编辑