Эх сурвалжийг харах

bug

Signed-off-by: liuyc <56808083@qq.com>
liuyc 1 жил өмнө
parent
commit
c18ee8907d
17 өөрчлөгдсөн 462 нэмэгдсэн , 224 устгасан
  1. 31 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/TaskChangeTokenInventoryBatchSaveDTO.java
  2. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/TaskChangeTokenInventoryUpdateDTO.java
  3. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/TaskChangeTokenMeterUpdateDTO.java
  4. 1 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemContract.java
  5. 1 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemProject.java
  6. 1 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemSystem.java
  7. 1 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterTreeContract.java
  8. 1 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterTreeProject.java
  9. 1 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterTreeSystem.java
  10. 47 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ChangeTokenFormVO2.java
  11. 6 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/MaterialMeterFormTaskVO.java
  12. 1 3
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/TaskDataDetailVO.java
  13. 351 175
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java
  14. 1 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenFormMapper.java
  15. 1 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenFormMapper.xml
  16. 0 20
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeContractServiceImpl.java
  17. 12 18
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeProjectServiceImpl.java

+ 31 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/TaskChangeTokenInventoryBatchSaveDTO.java

@@ -0,0 +1,31 @@
+package org.springblade.meter.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.meter.vo.ChangeFormVO2;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class TaskChangeTokenInventoryBatchSaveDTO implements Serializable {
+
+    @ApiModelProperty(value = "清单信息")
+    private List<ChangeFormVO2> formList;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "合同段id")
+    private Long contractId;
+
+    @ApiModelProperty(value = "任务id",required = true)
+    private Long taskId;
+
+    @ApiModelProperty(value = "中间列表数据的id")
+    private Long dataId;
+
+    @ApiModelProperty(value = "申请部位的primaryKeyId")
+    private Long primaryKeyIdMeter;
+
+}

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/TaskChangeTokenInventoryUpdateDTO.java

@@ -12,6 +12,9 @@ public class TaskChangeTokenInventoryUpdateDTO implements Serializable {
     @ApiModelProperty(value = "合同段id")
     @ApiModelProperty(value = "合同段id")
     private Long contractId;
     private Long contractId;
 
 
+    @ApiModelProperty(value = "任务id",required = true)
+    private Long taskId;
+
     @ApiModelProperty(value = "中间列表的id")
     @ApiModelProperty(value = "中间列表的id")
     private Long dataId;
     private Long dataId;
 
 

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/TaskChangeTokenMeterUpdateDTO.java

@@ -8,6 +8,9 @@ import java.io.Serializable;
 @Data
 @Data
 public class TaskChangeTokenMeterUpdateDTO implements Serializable {
 public class TaskChangeTokenMeterUpdateDTO implements Serializable {
 
 
+    @ApiModelProperty(value = "任务id",required = true)
+    private Long taskId;
+
     @ApiModelProperty(value = "主键id")
     @ApiModelProperty(value = "主键id")
     private Long primaryKeyId;
     private Long primaryKeyId;
 
 

+ 1 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemContract.java

@@ -55,7 +55,7 @@ public class MeterMidPayItemContract extends BaseEntity {
     private Integer payApplicableType;
     private Integer payApplicableType;
 
 
     @ApiModelProperty(value = "租户id")
     @ApiModelProperty(value = "租户id")
-    private Long tenantId;
+    private String tenantId;
 
 
     @ApiModelProperty(value = "排序")
     @ApiModelProperty(value = "排序")
     private Integer sort;
     private Integer sort;

+ 1 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemProject.java

@@ -52,7 +52,7 @@ public class MeterMidPayItemProject extends BaseEntity {
     private Integer payApplicableType;
     private Integer payApplicableType;
 
 
     @ApiModelProperty(value = "租户id")
     @ApiModelProperty(value = "租户id")
-    private Long tenantId;
+    private String tenantId;
 
 
     @ApiModelProperty(value = "排序")
     @ApiModelProperty(value = "排序")
     private Integer sort;
     private Integer sort;

+ 1 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemSystem.java

@@ -49,7 +49,7 @@ public class MeterMidPayItemSystem extends BaseEntity {
     private Integer payApplicableType;
     private Integer payApplicableType;
 
 
     @ApiModelProperty(value = "租户id")
     @ApiModelProperty(value = "租户id")
-    private Long tenantId;
+    private String tenantId;
 
 
     @ApiModelProperty(value = "排序")
     @ApiModelProperty(value = "排序")
     private Integer sort;
     private Integer sort;

+ 1 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterTreeContract.java

@@ -54,7 +54,7 @@ public class MeterTreeContract extends BaseEntity {
     private String remarks;
     private String remarks;
 
 
     @ApiModelProperty(value = "租户id")
     @ApiModelProperty(value = "租户id")
-    private Long tenantId;
+    private String tenantId;
 
 
     @ApiModelProperty(value = "排序")
     @ApiModelProperty(value = "排序")
     private Integer sort;
     private Integer sort;

+ 1 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterTreeProject.java

@@ -49,7 +49,7 @@ public class MeterTreeProject extends BaseEntity {
     private String remarks;
     private String remarks;
 
 
     @ApiModelProperty(value = "租户id")
     @ApiModelProperty(value = "租户id")
-    private Long tenantId;
+    private String tenantId;
 
 
     @ApiModelProperty(value = "排序")
     @ApiModelProperty(value = "排序")
     private Integer sort;
     private Integer sort;

+ 1 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterTreeSystem.java

@@ -37,7 +37,7 @@ public class MeterTreeSystem extends BaseEntity {
     private String remarks;
     private String remarks;
 
 
     @ApiModelProperty(value = "租户id")
     @ApiModelProperty(value = "租户id")
-    private Long tenantId;
+    private String tenantId;
 
 
     @ApiModelProperty(value = "排序")
     @ApiModelProperty(value = "排序")
     private Integer sort;
     private Integer sort;

+ 47 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ChangeTokenFormVO2.java

@@ -0,0 +1,47 @@
+/*
+ *      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.meter.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.meter.entity.AttachmentForm;
+import org.springblade.meter.entity.ChangeTokenForm;
+
+import java.util.List;
+
+/**
+ * 变更令表视图实体类
+ *
+ * @author BladeX
+ * @since 2023-11-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ChangeTokenFormVO2 extends ChangeTokenForm {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "变更类型名称")
+	private String changeTypeName;
+
+	@ApiModelProperty(value = "变更归类名称")
+	private String changeClassifyName;
+
+	@ApiModelProperty(value = "部位集合")
+	private List<ChangeNodeVO> nodeList;
+
+}

+ 6 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/MaterialMeterFormTaskVO.java

@@ -10,4 +10,10 @@ public class MaterialMeterFormTaskVO extends MaterialMeterFormTask {
     @ApiModelProperty(value = "是否已批注,1=是,0=否")
     @ApiModelProperty(value = "是否已批注,1=是,0=否")
     private Integer isComment;
     private Integer isComment;
 
 
+    @ApiModelProperty(value = "材料是否符合要求名称")
+    private String materialConformName;
+
+    @ApiModelProperty(value = "存放是否符合要求名称")
+    private String storageConformName;
+
 }
 }

+ 1 - 3
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/TaskDataDetailVO.java

@@ -3,8 +3,6 @@ package org.springblade.meter.vo;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 import org.springblade.meter.entity.AttachmentFormTask;
 import org.springblade.meter.entity.AttachmentFormTask;
-import org.springblade.meter.entity.ChangeTokenInventoryTask;
-import org.springblade.meter.entity.ChangeTokenMeterTask;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.List;
 import java.util.List;
@@ -19,7 +17,7 @@ public class TaskDataDetailVO implements Serializable {
     private List<MeterInventoryVO> associatedDataInfoList;
     private List<MeterInventoryVO> associatedDataInfoList;
 
 
     @ApiModelProperty(value = "变更令-详情信息")
     @ApiModelProperty(value = "变更令-详情信息")
-    private ChangeTokenFormVO changeTokenFormVO;
+    private ChangeTokenFormVO2 changeTokenFormVO;
 
 
     @ApiModelProperty(value = "附件文件信息")
     @ApiModelProperty(value = "附件文件信息")
     private List<AttachmentFormTask> attachmentFormTask;
     private List<AttachmentFormTask> attachmentFormTask;

+ 351 - 175
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -27,7 +27,6 @@ import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
-import org.springblade.feign.ArchiveFileTaskClient;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.ContractRelationJlyz;
 import org.springblade.manager.entity.ContractRelationJlyz;
 import org.springblade.meter.dto.*;
 import org.springblade.meter.dto.*;
@@ -545,6 +544,14 @@ public class TaskController extends BladeController {
     @ApiOperation(value = "任务废除(任务撤销、驳回审批)", notes = "按一期废除,即按整条任务废除(中期计量申请、材料计量单、开工预付款计量单、变更令、任务查看-废除任务)")
     @ApiOperation(value = "任务废除(任务撤销、驳回审批)", notes = "按一期废除,即按整条任务废除(中期计量申请、材料计量单、开工预付款计量单、变更令、任务查看-废除任务)")
     @PushMessage(clientId = ClientIdConstant.METER_CLIENT_ID)
     @PushMessage(clientId = ClientIdConstant.METER_CLIENT_ID)
     public R<Object> repeal(@RequestBody TaskRepealDTO taskRepealDTO) {
     public R<Object> repeal(@RequestBody TaskRepealDTO taskRepealDTO) {
+        /*加锁*/
+        String redisValue = bladeRedis.get("meter:repeal:user:" + SecureUtil.getUserId());
+        if (StringUtils.isNotEmpty(redisValue) && redisValue.equals("1")) {
+            return R.fail(400, "请勿重复提交,30秒后再尝试");
+        }
+        bladeRedis.set("meter:repeal:user:" + SecureUtil.getUserId(), "1");
+        bladeRedis.expire("meter:repeal:user:" + SecureUtil.getUserId(), 30);
+
         if (ObjectUtil.isNotEmpty(taskRepealDTO) && ObjectUtil.isNotEmpty(taskRepealDTO.getTaskId())) {
         if (ObjectUtil.isNotEmpty(taskRepealDTO) && ObjectUtil.isNotEmpty(taskRepealDTO.getTaskId())) {
             if (ObjectUtil.isNotEmpty(taskRepealDTO.getMeterTaskRepealDesc()) && taskRepealDTO.getMeterTaskRepealDesc().length() > 1000) {
             if (ObjectUtil.isNotEmpty(taskRepealDTO.getMeterTaskRepealDesc()) && taskRepealDTO.getMeterTaskRepealDesc().length() > 1000) {
                 throw new ServiceException("任务废除原因最长1000个字符,请重新输入");
                 throw new ServiceException("任务废除原因最长1000个字符,请重新输入");
@@ -901,14 +908,14 @@ public class TaskController extends BladeController {
                 TaskParallel taskParallel = taskParallels.get(i);
                 TaskParallel taskParallel = taskParallels.get(i);
                 Map<String, String> taskUserOther = new LinkedHashMap<>();
                 Map<String, String> taskUserOther = new LinkedHashMap<>();
                 taskUserOther.put("name", taskParallel.getTaskUserName());
                 taskUserOther.put("name", taskParallel.getTaskUserName());
-                if (taskParallel.getStatus().equals(2)) {
-                    taskUserOther.put("date", sdf.format(task.getUpdateTime()));
+                if (taskParallel.getStatus().equals(2) || taskParallel.getStatus().equals(3)) {
+                    taskUserOther.put("date", sdf.format(taskParallel.getUpdateTime()));
                 }
                 }
                 taskUserOther.put("status", taskParallel.getStatus().toString());
                 taskUserOther.put("status", taskParallel.getStatus().toString());
                 if (i == taskParallels.size() - 1) {
                 if (i == taskParallels.size() - 1) {
-                    taskUserOther.put("flowValue", (taskParallel.getStatus().equals(2) ? "同意" : "待审批") + "</br></br>结束流程");
+                    taskUserOther.put("flowValue", (taskParallel.getStatus().equals(2) ? "同意" : taskParallel.getStatus().equals(1) ? "待审批" : "已废除") + "</br></br>结束流程");
                 } else {
                 } else {
-                    taskUserOther.put("flowValue", taskParallel.getStatus().equals(2) ? "同意" : "待审批");
+                    taskUserOther.put("flowValue", taskParallel.getStatus().equals(2) ? "同意" : taskParallel.getStatus().equals(1) ? "待审批" : "已废除");
                 }
                 }
                 taskProcessInfo.add(taskUserOther);
                 taskProcessInfo.add(taskUserOther);
             }
             }
@@ -1018,14 +1025,19 @@ public class TaskController extends BladeController {
 
 
             } else if (task.getMeterTaskType().equals(2)) {
             } else if (task.getMeterTaskType().equals(2)) {
                 MaterialMeterFormTask materialMeterFormTask = materialMeterFormServiceTask.getById(dataId);
                 MaterialMeterFormTask materialMeterFormTask = materialMeterFormServiceTask.getById(dataId);
-                vo.setBasicsInfo(materialMeterFormTask);
+                MaterialMeterFormTaskVO materialMeterFormTaskVO = BeanUtil.copyProperties(materialMeterFormTask, MaterialMeterFormTaskVO.class);
+                if (materialMeterFormTaskVO != null) {
+                    materialMeterFormTaskVO.setMaterialConformName(materialMeterFormTaskVO.getMaterialConform().equals(0) ? "不符合" : "符合");
+                    materialMeterFormTaskVO.setStorageConformName(materialMeterFormTaskVO.getStorageConform().equals(0) ? "不符合" : "符合");
+                    vo.setBasicsInfo(materialMeterFormTaskVO);
+                }
 
 
             } else if (task.getMeterTaskType().equals(3)) {
             } else if (task.getMeterTaskType().equals(3)) {
                 StartPayMeterFormTask startPayMeterFormTask = startPayMeterFormServiceTask.getById(dataId);
                 StartPayMeterFormTask startPayMeterFormTask = startPayMeterFormServiceTask.getById(dataId);
                 vo.setBasicsInfo(startPayMeterFormTask);
                 vo.setBasicsInfo(startPayMeterFormTask);
 
 
             } else if (task.getMeterTaskType().equals(4)) {
             } else if (task.getMeterTaskType().equals(4)) {
-                ChangeTokenFormVO changeTokenFormVO = changeTokenFormService.getBaseMapper().detailCopy(Long.parseLong(dataId));
+                ChangeTokenFormVO2 changeTokenFormVO = changeTokenFormService.getBaseMapper().detailCopy(Long.parseLong(dataId));
                 if (changeTokenFormVO != null) {
                 if (changeTokenFormVO != null) {
                     List<ChangeNodeVO> nodeListCopy = changeTokenFormService.getBaseMapper().getNodeListCopy(changeTokenFormVO.getContractId(), changeTokenFormVO.getId());
                     List<ChangeNodeVO> nodeListCopy = changeTokenFormService.getBaseMapper().getNodeListCopy(changeTokenFormVO.getContractId(), changeTokenFormVO.getId());
                     if (nodeListCopy.size() > 0) {
                     if (nodeListCopy.size() > 0) {
@@ -1060,9 +1072,14 @@ public class TaskController extends BladeController {
     @ApiOperationSupport(order = 7)
     @ApiOperationSupport(order = 7)
     @ApiOperation(value = "任务关联的数据删除(清单、变更令删除)", notes = "传入TaskDataRemoveDTO")
     @ApiOperation(value = "任务关联的数据删除(清单、变更令删除)", notes = "传入TaskDataRemoveDTO")
     public R<Object> dataRemove(@RequestBody TaskDataRemoveDTO dto) {
     public R<Object> dataRemove(@RequestBody TaskDataRemoveDTO dto) {
-        String sql = "SELECT meter_task_type,form_data_id FROM u_task WHERE id = ?";
+        if (ObjectUtil.isEmpty(dto.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
+        }
+        String sql = "SELECT meter_task_type,form_data_id,process_instance_id FROM u_task WHERE id = ?";
         Task task = jdbcTemplate.query(sql, new Object[]{dto.getTaskId()}, new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
         Task task = jdbcTemplate.query(sql, new Object[]{dto.getTaskId()}, new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
         if (task != null) {
         if (task != null) {
+            check(task);
+
             if (task.getMeterTaskType().equals(1)) {
             if (task.getMeterTaskType().equals(1)) {
                 /*中间计量清单*/
                 /*中间计量清单*/
                 InventoryFormApplyTask inventoryFormApplyTask = inventoryFormApplyServiceTask.getById(dto.getDataId());
                 InventoryFormApplyTask inventoryFormApplyTask = inventoryFormApplyServiceTask.getById(dto.getDataId());
@@ -1151,36 +1168,44 @@ public class TaskController extends BladeController {
     @ApiOperationSupport(order = 8)
     @ApiOperationSupport(order = 8)
     @ApiOperation(value = "清单数据修改", notes = "传入InventoryFormApplyTaskDTO")
     @ApiOperation(value = "清单数据修改", notes = "传入InventoryFormApplyTaskDTO")
     public R<Object> dataInventoryFormApplyTaskUpdate(@RequestBody InventoryFormApplyTaskDTO dto) {
     public R<Object> dataInventoryFormApplyTaskUpdate(@RequestBody InventoryFormApplyTaskDTO dto) {
-        InventoryFormApplyTask obj = BeanUtil.copyProperties(dto, InventoryFormApplyTask.class);
-        if (ObjectUtil.isEmpty(obj)) {
-            throw new ServiceException("操作异常");
-        }
-        obj.setId(dto.getTaskDetailId());
-        InventoryFormApplyTask inventoryFormApplyTask = inventoryFormApplyServiceTask.getById(obj.getId());
-        if (ObjectUtil.isEmpty(inventoryFormApplyTask)) {
-            throw new ServiceException("未获取到清单数据");
+        if (ObjectUtil.isEmpty(dto.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
         }
         }
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + dto.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
 
 
-        if (inventoryFormApplyServiceTask.updateById(obj)) {
-            MiddleMeterApplyTask middleMeterApplyTask = middleMeterApplyServiceTask.getById(inventoryFormApplyTask.getMiddleMeterId());
-            if (middleMeterApplyTask != null) {
+            InventoryFormApplyTask obj = BeanUtil.copyProperties(dto, InventoryFormApplyTask.class);
+            if (ObjectUtil.isEmpty(obj)) {
+                throw new ServiceException("操作异常");
+            }
+            obj.setId(dto.getTaskDetailId());
+            InventoryFormApplyTask inventoryFormApplyTask = inventoryFormApplyServiceTask.getById(obj.getId());
+            if (ObjectUtil.isEmpty(inventoryFormApplyTask)) {
+                throw new ServiceException("未获取到清单数据");
+            }
 
 
-                /*清单信息*/
-                List<MeterInventoryVO> formToTask = middleMeterApplyMapper.getFormCopy(middleMeterApplyTask.getId(), middleMeterApplyTask.getContractId(), middleMeterApplyTask.getContractUnitId());
-
-                BigDecimal totalSum = BigDecimal.ZERO;
-                for (MeterInventoryVO meterInventoryVO : formToTask) {
-                    BigDecimal currentMeterTotal = meterInventoryVO.getCurrentMeterTotal();
-                    BigDecimal currentMeterMoney = meterInventoryVO.getCurrentMeterMoney();
-                    BigDecimal product = currentMeterTotal.multiply(currentMeterMoney);
-                    totalSum = totalSum.add(product);
-                }
+            if (inventoryFormApplyServiceTask.updateById(obj)) {
+                MiddleMeterApplyTask middleMeterApplyTask = middleMeterApplyServiceTask.getById(inventoryFormApplyTask.getMiddleMeterId());
+                if (middleMeterApplyTask != null) {
 
 
-                String updateSql = "UPDATE s_middle_meter_apply_task SET meter_money = ? WHERE id = ?";
-                Object[] params = {totalSum, inventoryFormApplyTask.getMiddleMeterId()};
-                jdbcTemplate.update(updateSql, params);
+                    /*清单信息*/
+                    List<MeterInventoryVO> formToTask = middleMeterApplyMapper.getFormCopy(middleMeterApplyTask.getId(), middleMeterApplyTask.getContractId(), middleMeterApplyTask.getContractUnitId());
+
+                    BigDecimal totalSum = BigDecimal.ZERO;
+                    for (MeterInventoryVO meterInventoryVO : formToTask) {
+                        BigDecimal currentMeterTotal = meterInventoryVO.getCurrentMeterTotal();
+                        BigDecimal currentMeterMoney = meterInventoryVO.getCurrentMeterMoney();
+                        BigDecimal product = currentMeterTotal.multiply(currentMeterMoney);
+                        totalSum = totalSum.add(product);
+                    }
 
 
-                return R.data(200, totalSum, "操作成功");
+                    String updateSql = "UPDATE s_middle_meter_apply_task SET meter_money = ? WHERE id = ?";
+                    Object[] params = {totalSum, inventoryFormApplyTask.getMiddleMeterId()};
+                    jdbcTemplate.update(updateSql, params);
+
+                    return R.data(200, totalSum, "操作成功");
+                }
             }
             }
         }
         }
         return R.fail(400, "操作失败");
         return R.fail(400, "操作失败");
@@ -1190,55 +1215,63 @@ public class TaskController extends BladeController {
     @ApiOperationSupport(order = 9)
     @ApiOperationSupport(order = 9)
     @ApiOperation(value = "清单数据新增(添加清单)", notes = "查询获取数据接口还是调/middleMeterApply/addFormList;入参传入InventoryFormApplyTaskBatchDTO")
     @ApiOperation(value = "清单数据新增(添加清单)", notes = "查询获取数据接口还是调/middleMeterApply/addFormList;入参传入InventoryFormApplyTaskBatchDTO")
     public R<Object> dataInventoryFormApplyTaskSave(@RequestBody InventoryFormApplyTaskBatchDTO dto) {
     public R<Object> dataInventoryFormApplyTaskSave(@RequestBody InventoryFormApplyTaskBatchDTO dto) {
-        /*获取中间计量单信息*/
-        MiddleMeterApplyTask middleMeterApplyTask = middleMeterApplyServiceTask.getById(dto.getDataId());
-
-        if (ObjectUtil.isEmpty(middleMeterApplyTask)) {
-            throw new ServiceException("未获取到中间计量单信息");
-        }
-
-        /*获取数据源分解清单*/
-        List<MeterInventoryVO> formList = middleMeterApplyService.addResolveForm(dto.getContractId(), dto.getNodeId(), dto.getIds());
-
-        if (formList.size() != 0) {
-            /*复制表taskVO数据*/
-            BigDecimal currentMeterMoneyTotal = BigDecimal.ZERO;
-            List<InventoryFormApplyTask> formAppliesTask = formList.stream().map(l -> {
-                InventoryFormApplyTask formApplyTask = new InventoryFormApplyTask();
-                formApplyTask.setTaskId(dto.getTaskId());
-                formApplyTask.setBusinessDate(middleMeterApplyTask.getBusinessDate());
-                formApplyTask.setProjectId(dto.getProjectId());
-                formApplyTask.setContractId(dto.getContractId());
-                formApplyTask.setContractFormId(l.getId());
-                formApplyTask.setMiddleMeterId(dto.getDataId());
-                formApplyTask.setContractPeriodId(dto.getContractPeriodId());
-                formApplyTask.setMeterNumber(middleMeterApplyTask.getMeterNumber());
-                formApplyTask.setContractMeterId(dto.getNodeId());
-                formApplyTask.setFormNumber(l.getFormNumber());
-                formApplyTask.setFormName(l.getFormName());
-                formApplyTask.setCurrentPrice(l.getCurrentPrice());
-                formApplyTask.setBuildPictureTotal(l.getResolveTotal());
-                formApplyTask.setChangeBuildPictureTotal(l.getChangeTotal());
-                formApplyTask.setApproveStatus(1); //待审批
-                if (l.getCurrentMeterTotal() != null && l.getCurrentPrice() != null) {
-                    formApplyTask.setCurrentMeterTotal(l.getCurrentMeterTotal());
-                    formApplyTask.setCurrentMeterMoney(l.getCurrentPrice().multiply(l.getCurrentMeterTotal()));
-                } else {
-                    throw new ServiceException("计量金额和计量数量不能为空");
-                }
-                return formApplyTask;
-            }).collect(Collectors.toList());
-            for (InventoryFormApplyTask formApplyTask : formAppliesTask) {
-                currentMeterMoneyTotal = currentMeterMoneyTotal.add(formApplyTask.getCurrentMeterMoney());
+        if (ObjectUtil.isEmpty(dto.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
+        }
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + dto.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
+
+            /*获取中间计量单信息*/
+            MiddleMeterApplyTask middleMeterApplyTask = middleMeterApplyServiceTask.getById(dto.getDataId());
+
+            if (ObjectUtil.isEmpty(middleMeterApplyTask)) {
+                throw new ServiceException("未获取到中间计量单信息");
             }
             }
-            inventoryFormApplyServiceTask.saveBatch(formAppliesTask);
 
 
-            /*修改计量单当前总金额*/
-            String updateSql = "UPDATE s_middle_meter_apply_task SET meter_money = ? WHERE id = ?";
-            Object[] params = {currentMeterMoneyTotal, middleMeterApplyTask.getId()};
-            jdbcTemplate.update(updateSql, params);
+            /*获取数据源分解清单*/
+            List<MeterInventoryVO> formList = middleMeterApplyService.addResolveForm(dto.getContractId(), dto.getNodeId(), dto.getIds());
+
+            if (formList.size() != 0) {
+                /*复制表taskVO数据*/
+                BigDecimal currentMeterMoneyTotal = BigDecimal.ZERO;
+                List<InventoryFormApplyTask> formAppliesTask = formList.stream().map(l -> {
+                    InventoryFormApplyTask formApplyTask = new InventoryFormApplyTask();
+                    formApplyTask.setTaskId(dto.getTaskId());
+                    formApplyTask.setBusinessDate(middleMeterApplyTask.getBusinessDate());
+                    formApplyTask.setProjectId(dto.getProjectId());
+                    formApplyTask.setContractId(dto.getContractId());
+                    formApplyTask.setContractFormId(l.getId());
+                    formApplyTask.setMiddleMeterId(dto.getDataId());
+                    formApplyTask.setContractPeriodId(dto.getContractPeriodId());
+                    formApplyTask.setMeterNumber(middleMeterApplyTask.getMeterNumber());
+                    formApplyTask.setContractMeterId(dto.getNodeId());
+                    formApplyTask.setFormNumber(l.getFormNumber());
+                    formApplyTask.setFormName(l.getFormName());
+                    formApplyTask.setCurrentPrice(l.getCurrentPrice());
+                    formApplyTask.setBuildPictureTotal(l.getResolveTotal());
+                    formApplyTask.setChangeBuildPictureTotal(l.getChangeTotal());
+                    formApplyTask.setApproveStatus(1); //待审批
+                    if (l.getCurrentMeterTotal() != null && l.getCurrentPrice() != null) {
+                        formApplyTask.setCurrentMeterTotal(l.getCurrentMeterTotal());
+                        formApplyTask.setCurrentMeterMoney(l.getCurrentPrice().multiply(l.getCurrentMeterTotal()));
+                    } else {
+                        throw new ServiceException("计量金额和计量数量不能为空");
+                    }
+                    return formApplyTask;
+                }).collect(Collectors.toList());
+                for (InventoryFormApplyTask formApplyTask : formAppliesTask) {
+                    currentMeterMoneyTotal = currentMeterMoneyTotal.add(formApplyTask.getCurrentMeterMoney());
+                }
+                inventoryFormApplyServiceTask.saveBatch(formAppliesTask);
+
+                /*修改计量单当前总金额*/
+                String updateSql = "UPDATE s_middle_meter_apply_task SET meter_money = ? WHERE id = ?";
+                Object[] params = {currentMeterMoneyTotal, middleMeterApplyTask.getId()};
+                jdbcTemplate.update(updateSql, params);
 
 
-            return R.data(200, formList, "操作成功");
+                return R.data(200, formList, "操作成功");
+            }
         }
         }
 
 
         return R.fail("操作失败");
         return R.fail("操作失败");
@@ -1248,8 +1281,16 @@ public class TaskController extends BladeController {
     @ApiOperationSupport(order = 10)
     @ApiOperationSupport(order = 10)
     @ApiOperation(value = "材料数据修改", notes = "传入MaterialMeterFormTask")
     @ApiOperation(value = "材料数据修改", notes = "传入MaterialMeterFormTask")
     public R<Object> dataMaterialMeterFormServiceTaskUpdate(@RequestBody MaterialMeterFormTask obj) {
     public R<Object> dataMaterialMeterFormServiceTaskUpdate(@RequestBody MaterialMeterFormTask obj) {
-        if (materialMeterFormServiceTask.updateById(obj)) {
-            return R.success("操作成功");
+        if (ObjectUtil.isEmpty(obj.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
+        }
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + obj.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
+
+            if (materialMeterFormServiceTask.updateById(obj)) {
+                return R.success("操作成功");
+            }
         }
         }
         return R.fail("操作失败");
         return R.fail("操作失败");
     }
     }
@@ -1258,60 +1299,155 @@ public class TaskController extends BladeController {
     @ApiOperationSupport(order = 11)
     @ApiOperationSupport(order = 11)
     @ApiOperation(value = "开工预付款数据修改", notes = "传入StartPayMeterFormTask")
     @ApiOperation(value = "开工预付款数据修改", notes = "传入StartPayMeterFormTask")
     public R<Object> dataStartPayMeterFormServiceTaskUpdate(@RequestBody StartPayMeterFormTask obj) {
     public R<Object> dataStartPayMeterFormServiceTaskUpdate(@RequestBody StartPayMeterFormTask obj) {
-        if (startPayMeterFormServiceTask.updateById(obj)) {
-            return R.success("操作成功");
+        if (ObjectUtil.isEmpty(obj.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
+        }
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + obj.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
+
+            if (startPayMeterFormServiceTask.updateById(obj)) {
+                return R.success("操作成功");
+            }
         }
         }
         return R.fail("操作失败");
         return R.fail("操作失败");
     }
     }
 
 
     @PostMapping("/data/changeTokenFrom/update")
     @PostMapping("/data/changeTokenFrom/update")
-    @ApiOperationSupport(order = 11)
+    @ApiOperationSupport(order = 12)
     @ApiOperation(value = "变更令-基础信息修改", notes = "传入ChangeTokenFormTask")
     @ApiOperation(value = "变更令-基础信息修改", notes = "传入ChangeTokenFormTask")
     public R<Object> dataChangeTokenFromUpdate(@RequestBody ChangeTokenFormTask obj) {
     public R<Object> dataChangeTokenFromUpdate(@RequestBody ChangeTokenFormTask obj) {
-        if (changeTokenFormServiceTask.updateById(obj)) {
-            return R.success("操作成功");
+        if (ObjectUtil.isEmpty(obj.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
+        }
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + obj.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
+
+            if (changeTokenFormServiceTask.updateById(obj)) {
+                return R.success("操作成功");
+            }
         }
         }
         return R.fail("操作失败");
         return R.fail("操作失败");
     }
     }
 
 
     @PostMapping("/data/changeTokenMeter/update")
     @PostMapping("/data/changeTokenMeter/update")
-    @ApiOperationSupport(order = 11)
+    @ApiOperationSupport(order = 13)
     @ApiOperation(value = "变更令-申请部位合同图号修改", notes = "传入TaskChangeTokenMeterUpdateDTO")
     @ApiOperation(value = "变更令-申请部位合同图号修改", notes = "传入TaskChangeTokenMeterUpdateDTO")
     public R<Object> dataChangeTokenMeterUpdate(@RequestBody TaskChangeTokenMeterUpdateDTO dto) {
     public R<Object> dataChangeTokenMeterUpdate(@RequestBody TaskChangeTokenMeterUpdateDTO dto) {
-        if (ObjectUtil.isNotEmpty(dto.getPrimaryKeyId())) {
-            String sql = "UPDATE s_change_token_meter_task SET contract_picture = ? WHERE id = ?";
-            Object[] params = {(ObjectUtil.isNotEmpty(dto.getContractPicture()) ? dto.getContractPicture() : null), dto.getPrimaryKeyId()};
-            jdbcTemplate.update(sql, params);
-            return R.success("操作成功");
+        if (ObjectUtil.isEmpty(dto.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
+        }
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + dto.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
+
+            if (ObjectUtil.isNotEmpty(dto.getPrimaryKeyId())) {
+                String sql = "UPDATE s_change_token_meter_task SET contract_picture = ? WHERE id = ?";
+                Object[] params = {(ObjectUtil.isNotEmpty(dto.getContractPicture()) ? dto.getContractPicture() : null), dto.getPrimaryKeyId()};
+                jdbcTemplate.update(sql, params);
+                return R.success("操作成功");
+            }
         }
         }
         return R.fail("操作失败");
         return R.fail("操作失败");
     }
     }
 
 
     @PostMapping("/data/changeTokenInventory/update")
     @PostMapping("/data/changeTokenInventory/update")
-    @ApiOperationSupport(order = 11)
+    @ApiOperationSupport(order = 14)
     @ApiOperation(value = "变更令-申请清单修改", notes = "传入TaskChangeTokenInventoryUpdateDTO")
     @ApiOperation(value = "变更令-申请清单修改", notes = "传入TaskChangeTokenInventoryUpdateDTO")
     public R<Object> dataChangeTokenInventoryUpdate(@RequestBody TaskChangeTokenInventoryUpdateDTO dto) {
     public R<Object> dataChangeTokenInventoryUpdate(@RequestBody TaskChangeTokenInventoryUpdateDTO dto) {
-        if (ObjectUtil.isNotEmpty(dto.getPrimaryKeyIdInventory())) {
-            String sql = "SELECT * FROM s_change_token_inventory_task WHERE id = ?";
-            Object[] params = {dto.getPrimaryKeyIdInventory()};
-            ChangeTokenInventoryTask changeTokenInventoryTask = jdbcTemplate.query(sql, params, new BeanPropertyRowMapper<>(ChangeTokenInventoryTask.class)).stream().findAny().orElse(null);
-            if (changeTokenInventoryTask != null) {
-                //变更前数量
-                BigDecimal changeAfterTotal = changeTokenInventoryTask.getChangeBeforeTotal();
-                //变更数量
-                BigDecimal changTotalNow = dto.getChangTotal();
-                //变更后数量
-                BigDecimal afterTotalNow = changeAfterTotal.add(changTotalNow);
-
-                //变更金额(变更数量*单价)
-                BigDecimal changeMoneyNow = changTotalNow.multiply(changeTokenInventoryTask.getCurrentPrice());
-                //变更后金额(变更金额+变更前金额)
-                BigDecimal afterChangeMoneyNow = changeMoneyNow.add(changeTokenInventoryTask.getChangeBeforeMoney());
-
-                /*修改单条清单信息*/
-                String updateSqlInventory = "UPDATE s_change_token_inventory_task SET change_total = ? ,change_after_total = ? , change_money = ? , change_after_money = ? WHERE id = ?";
-                Object[] updateParamsInventory = {changTotalNow, afterTotalNow, changeMoneyNow, afterChangeMoneyNow, dto.getPrimaryKeyIdInventory()};
-                jdbcTemplate.update(updateSqlInventory, updateParamsInventory);
+        if (ObjectUtil.isEmpty(dto.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
+        }
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + dto.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
+
+            if (ObjectUtil.isNotEmpty(dto.getPrimaryKeyIdInventory())) {
+                String sql = "SELECT * FROM s_change_token_inventory_task WHERE id = ?";
+                Object[] params = {dto.getPrimaryKeyIdInventory()};
+                ChangeTokenInventoryTask changeTokenInventoryTask = jdbcTemplate.query(sql, params, new BeanPropertyRowMapper<>(ChangeTokenInventoryTask.class)).stream().findAny().orElse(null);
+                if (changeTokenInventoryTask != null) {
+                    //变更前数量
+                    BigDecimal changeAfterTotal = changeTokenInventoryTask.getChangeBeforeTotal();
+                    //变更数量
+                    BigDecimal changTotalNow = dto.getChangTotal();
+                    //变更后数量
+                    BigDecimal afterTotalNow = changeAfterTotal.add(changTotalNow);
+
+                    //变更金额(变更数量*单价)
+                    BigDecimal changeMoneyNow = changTotalNow.multiply(changeTokenInventoryTask.getCurrentPrice());
+                    //变更后金额(变更金额+变更前金额)
+                    BigDecimal afterChangeMoneyNow = changeMoneyNow.add(changeTokenInventoryTask.getChangeBeforeMoney());
+
+                    /*修改单条清单信息*/
+                    String updateSqlInventory = "UPDATE s_change_token_inventory_task SET change_total = ? ,change_after_total = ? , change_money = ? , change_after_money = ? WHERE id = ?";
+                    Object[] updateParamsInventory = {changTotalNow, afterTotalNow, changeMoneyNow, afterChangeMoneyNow, dto.getPrimaryKeyIdInventory()};
+                    jdbcTemplate.update(updateSqlInventory, updateParamsInventory);
+
+                    /*修改部位变更金额*/
+                    ChangeTokenMeterTask changeTokenMeterTask = changeTokenMeterServiceTask.getBaseMapper().selectById(dto.getPrimaryKeyIdMeter());
+                    List<ChangeFormVO2> formListCopyByMeterId = changeTokenFormService.getBaseMapper().getFormListCopyByMeterId(dto.getContractId(), dto.getDataId(), changeTokenMeterTask.getContractMeterId());
+                    BigDecimal sumOfCurrentChangeMoneyByMeterId = formListCopyByMeterId.stream().map(ChangeFormVO2::getCurrentChangeMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    BigDecimal add = changeTokenMeterTask.getChangeMoney().add(sumOfCurrentChangeMoneyByMeterId);
+                    String updateSqlMeter = "UPDATE s_change_token_meter_task SET change_money = ? WHERE id = ?";
+                    Object[] updateParamsMeter = {add, dto.getPrimaryKeyIdMeter()};
+                    jdbcTemplate.update(updateSqlMeter, updateParamsMeter);
+
+                    /*修改变更令申请金额*/
+                    List<ChangeFormVO2> formListCopyAll = changeTokenFormService.getBaseMapper().getFormListCopy(dto.getContractId(), dto.getDataId());
+                    BigDecimal sumOfCurrentChangeMoneyAll = formListCopyAll.stream().map(ChangeFormVO2::getCurrentChangeMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    String updateSqlForm = "UPDATE s_change_token_form_task SET change_money = ? WHERE id = ?";
+                    Object[] updateParamsForm = {sumOfCurrentChangeMoneyAll, dto.getDataId()};
+                    jdbcTemplate.update(updateSqlForm, updateParamsForm);
+
+                    return R.success("操作成功");
+                }
+            }
+        }
+        return R.fail("操作失败");
+    }
+
+    @PostMapping("/data/changeTokenInventory/save")
+    @ApiOperationSupport(order = 15)
+    @ApiOperation(value = "变更令-申请清单添加", notes = "/changeTokenForm/addForm接口获取清单信息;传入TaskChangeTokenInventoryBatchSaveDTO")
+    public R<Object> dataChangeTokenInventorySave(@RequestBody TaskChangeTokenInventoryBatchSaveDTO dto) {
+        if (ObjectUtil.isEmpty(dto.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
+        }
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + dto.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
+
+            if (dto.getFormList().size() > 0) {
+                List<ChangeTokenInventoryTask> inventoryList = new ArrayList<>();
+                for (ChangeFormVO2 vo2 : dto.getFormList()) {
+                    ChangeTokenInventoryTask inventory = new ChangeTokenInventoryTask();
+                    inventory.setProjectId(dto.getProjectId());
+                    inventory.setContractId(dto.getContractId());
+                    inventory.setChangeTokenId(dto.getDataId());
+                    inventory.setContractFormId(vo2.getId());
+                    inventory.setChangeBeforeTotal(vo2.getContractTotal());
+                    inventory.setChangeTotal(vo2.getCurrentChangeTotal());
+                    //设置清单3个基础信息,因为变更后不能改变
+                    inventory.setFormNumber(vo2.getFormNumber());
+                    inventory.setFormName(vo2.getFormName());
+                    inventory.setCurrentPrice(vo2.getCurrentPrice());
+                    if (vo2.getContractMeterId() == null) {
+                        throw new ServiceException("未找到清单(" + vo2.getFormName() + ")的部位id");
+                    }
+                    //设置节点id
+                    inventory.setContractMeterId(vo2.getContractMeterId());
+                    //计算变更后
+                    inventory.setChangeAfterTotal(inventory.getChangeBeforeTotal().add(inventory.getChangeTotal()));
+                    inventory.setChangeBeforeMoney(vo2.getContractMoney());
+                    //计算变更增减金额
+                    inventory.setChangeMoney(vo2.getCurrentPrice().multiply(inventory.getChangeTotal()));
+                    //计算变更后金额
+                    inventory.setChangeAfterMoney(vo2.getCurrentPrice().multiply(inventory.getChangeAfterTotal()));
+                    inventoryList.add(inventory);
+                }
+                changeTokenInventoryServiceTask.saveBatch(inventoryList);
 
 
                 /*修改部位变更金额*/
                 /*修改部位变更金额*/
                 ChangeTokenMeterTask changeTokenMeterTask = changeTokenMeterServiceTask.getBaseMapper().selectById(dto.getPrimaryKeyIdMeter());
                 ChangeTokenMeterTask changeTokenMeterTask = changeTokenMeterServiceTask.getBaseMapper().selectById(dto.getPrimaryKeyIdMeter());
@@ -1329,52 +1465,72 @@ public class TaskController extends BladeController {
                 Object[] updateParamsForm = {sumOfCurrentChangeMoneyAll, dto.getDataId()};
                 Object[] updateParamsForm = {sumOfCurrentChangeMoneyAll, dto.getDataId()};
                 jdbcTemplate.update(updateSqlForm, updateParamsForm);
                 jdbcTemplate.update(updateSqlForm, updateParamsForm);
 
 
-                return R.success("操作成功");
+                return R.data(200, "操作成功");
+            } else {
+                throw new ServiceException("请添加变更清单后再保存");
             }
             }
         }
         }
         return R.fail("操作失败");
         return R.fail("操作失败");
     }
     }
 
 
     @PostMapping("/data/uploadFile")
     @PostMapping("/data/uploadFile")
-    @ApiOperationSupport(order = 12)
+    @ApiOperationSupport(order = 16)
     @ApiOperation(value = "附件文件上传", notes = "传入TaskDataUploadFileDTO")
     @ApiOperation(value = "附件文件上传", notes = "传入TaskDataUploadFileDTO")
     public R<Object> dataUploadFile(@RequestBody TaskDataUploadFileDTO dto) {
     public R<Object> dataUploadFile(@RequestBody TaskDataUploadFileDTO dto) {
-        List<AttachmentFormTask> fileList = dto.getFileList();
-        if (fileList != null && fileList.size() != 0) {
-            for (AttachmentFormTask file : fileList) {
-                file.setProjectId(dto.getProjectId());
-                file.setContractId(dto.getContractId());
-                file.setMasterId(dto.getDataId());
-                file.setTaskId(dto.getTaskId());
+        if (ObjectUtil.isEmpty(dto.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
+        }
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + dto.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
+
+            List<AttachmentFormTask> fileList = dto.getFileList();
+            if (fileList != null && fileList.size() != 0) {
+                for (AttachmentFormTask file : fileList) {
+                    file.setProjectId(dto.getProjectId());
+                    file.setContractId(dto.getContractId());
+                    file.setMasterId(dto.getDataId());
+                    file.setTaskId(dto.getTaskId());
+                }
+                attachmentFormServiceTask.saveOrUpdateBatch(fileList);
+                return R.success("操作成功");
             }
             }
-            attachmentFormServiceTask.saveOrUpdateBatch(fileList);
-            return R.success("操作成功");
         }
         }
         return R.fail("操作失败");
         return R.fail("操作失败");
     }
     }
 
 
     @GetMapping("/data/removeFile")
     @GetMapping("/data/removeFile")
-    @ApiOperationSupport(order = 13)
-    @ApiOperation(value = "附件文件删除", notes = "传入文件id")
-    public R<Object> dataRemoveFile(@RequestParam String id) {
-        AttachmentFormTask attachmentFormTask = attachmentFormServiceTask.getById(id);
-        if (attachmentFormTask != null) {
-            jdbcTemplate.execute("DELETE FROM s_attachment_form_task WHERE id = " + id);
-            return R.success("操作成功");
+    @ApiOperationSupport(order = 17)
+    @ApiOperation(value = "附件文件删除", notes = "传入文件id、任务taskId")
+    public R<Object> dataRemoveFile(@RequestParam String id, @RequestParam String taskId) {
+        if (ObjectUtil.isEmpty(taskId)) {
+            throw new ServiceException("未获取到taskId");
+        }
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + taskId, new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
+
+            AttachmentFormTask attachmentFormTask = attachmentFormServiceTask.getById(id);
+            if (attachmentFormTask != null) {
+                jdbcTemplate.execute("DELETE FROM s_attachment_form_task WHERE id = " + id);
+                return R.success("操作成功");
+            }
         }
         }
         return R.fail("操作失败");
         return R.fail("操作失败");
     }
     }
 
 
     @PostMapping("/data/audit")
     @PostMapping("/data/audit")
-    @ApiOperationSupport(order = 14)
+    @ApiOperationSupport(order = 18)
     @ApiOperation(value = "单条数据同意或驳回", notes = "传入TaskAuditDTO")
     @ApiOperation(value = "单条数据同意或驳回", notes = "传入TaskAuditDTO")
     public R<Object> updateStatus(@RequestBody TaskAuditDTO dto) {
     public R<Object> updateStatus(@RequestBody TaskAuditDTO dto) {
         if (ObjectUtil.isEmpty(dto.getDataId()) || ObjectUtil.isEmpty(dto.getTaskId())) {
         if (ObjectUtil.isEmpty(dto.getDataId()) || ObjectUtil.isEmpty(dto.getTaskId())) {
             throw new ServiceException("任务id、数据id不能为空");
             throw new ServiceException("任务id、数据id不能为空");
         }
         }
         if (Arrays.asList("1", "2").contains(dto.getAuditStatus())) {
         if (Arrays.asList("1", "2").contains(dto.getAuditStatus())) {
-            Task task = jdbcTemplate.query("SELECT meter_task_type FROM u_task WHERE id = " + dto.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+            Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + dto.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
             if (task != null) {
             if (task != null) {
+                check(task);
+
                 if (task.getMeterTaskType().equals(1)) {
                 if (task.getMeterTaskType().equals(1)) {
                     middleMeterApplyServiceTask.update(Wrappers.<MiddleMeterApplyTask>lambdaUpdate()
                     middleMeterApplyServiceTask.update(Wrappers.<MiddleMeterApplyTask>lambdaUpdate()
                             .set(MiddleMeterApplyTask::getStatus, dto.getAuditStatus())
                             .set(MiddleMeterApplyTask::getStatus, dto.getAuditStatus())
@@ -1407,7 +1563,7 @@ public class TaskController extends BladeController {
     }
     }
 
 
     @PostMapping("/approve")
     @PostMapping("/approve")
-    @ApiOperationSupport(order = 15)
+    @ApiOperationSupport(order = 19)
     @ApiOperation(value = "同意审批(批量审批)", notes = "传入TaskApproveDTO")
     @ApiOperation(value = "同意审批(批量审批)", notes = "传入TaskApproveDTO")
     @PushMessage(clientId = ClientIdConstant.METER_CLIENT_ID)
     @PushMessage(clientId = ClientIdConstant.METER_CLIENT_ID)
     public R<Object> approve(@RequestBody TaskApproveDTO dto) {
     public R<Object> approve(@RequestBody TaskApproveDTO dto) {
@@ -1416,12 +1572,12 @@ public class TaskController extends BladeController {
         }
         }
 
 
         /*加锁*/
         /*加锁*/
-        String redisValue = bladeRedis.get("meter:approve:" + dto.getTaskId());
+        String redisValue = bladeRedis.get("meter:approve:user:" + SecureUtil.getUserId());
         if (StringUtils.isNotEmpty(redisValue) && redisValue.equals("1")) {
         if (StringUtils.isNotEmpty(redisValue) && redisValue.equals("1")) {
             return R.fail(400, "请勿重复提交,30秒后再尝试");
             return R.fail(400, "请勿重复提交,30秒后再尝试");
         }
         }
-        bladeRedis.set("meter:approve:" + dto.getTaskId(), "1");
-        bladeRedis.expire("meter:approve:" + dto.getTaskId(), 30);
+        bladeRedis.set("meter:approve:user:" + SecureUtil.getUserId(), "1");
+        bladeRedis.expire("meter:approve:user:" + SecureUtil.getUserId(), 30);
 
 
         String sql_1 = "SELECT * FROM u_task WHERE id = ?";
         String sql_1 = "SELECT * FROM u_task WHERE id = ?";
         Task task = jdbcTemplate.query(sql_1, new Object[]{dto.getTaskId()}, new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
         Task task = jdbcTemplate.query(sql_1, new Object[]{dto.getTaskId()}, new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
@@ -1465,6 +1621,12 @@ public class TaskController extends BladeController {
         return R.fail("操作失败");
         return R.fail("操作失败");
     }
     }
 
 
+    private void check(Task task) {
+        String sql_2 = "SELECT * FROM u_task_parallel WHERE process_instance_id = ? ORDER BY sort";
+        List<TaskParallel> taskParallels = jdbcTemplate.query(sql_2, new Object[]{task.getProcessInstanceId()}, new BeanPropertyRowMapper<>(TaskParallel.class));
+        checkTheTaskPersonSort(taskParallels);
+    }
+
     private boolean checkTheTaskPersonSort(List<TaskParallel> taskParallels) {
     private boolean checkTheTaskPersonSort(List<TaskParallel> taskParallels) {
         //未完成审批人信息
         //未完成审批人信息
         List<String> name = new ArrayList<>();
         List<String> name = new ArrayList<>();
@@ -1497,7 +1659,7 @@ public class TaskController extends BladeController {
             List<MiddleMeterApplyTask> middleMeterApplyTasks = middleMeterApplyServiceTask.getBaseMapper().selectList(Wrappers.<MiddleMeterApplyTask>lambdaQuery()
             List<MiddleMeterApplyTask> middleMeterApplyTasks = middleMeterApplyServiceTask.getBaseMapper().selectList(Wrappers.<MiddleMeterApplyTask>lambdaQuery()
                     .eq(MiddleMeterApplyTask::getContractPeriodId, formDataId)
                     .eq(MiddleMeterApplyTask::getContractPeriodId, formDataId)
                     .eq(MiddleMeterApplyTask::getTaskId, dto.getTaskId())
                     .eq(MiddleMeterApplyTask::getTaskId, dto.getTaskId())
-                    .isNull(MiddleMeterApplyTask::getStatus) //表示用户未选择,那么默认同意
+                    .ne(MiddleMeterApplyTask::getStatus, 2)
             );
             );
             List<Long> ids = middleMeterApplyTasks.stream().map(MiddleMeterApplyTask::getId).collect(Collectors.toList());
             List<Long> ids = middleMeterApplyTasks.stream().map(MiddleMeterApplyTask::getId).collect(Collectors.toList());
             if (ids.size() > 0) {
             if (ids.size() > 0) {
@@ -1512,7 +1674,7 @@ public class TaskController extends BladeController {
             List<MaterialMeterFormTask> materialMeterFormTasks = materialMeterFormServiceTask.getBaseMapper().selectList(Wrappers.<MaterialMeterFormTask>lambdaQuery()
             List<MaterialMeterFormTask> materialMeterFormTasks = materialMeterFormServiceTask.getBaseMapper().selectList(Wrappers.<MaterialMeterFormTask>lambdaQuery()
                     .eq(MaterialMeterFormTask::getMeterPeriodId, formDataId)
                     .eq(MaterialMeterFormTask::getMeterPeriodId, formDataId)
                     .eq(MaterialMeterFormTask::getTaskId, dto.getTaskId())
                     .eq(MaterialMeterFormTask::getTaskId, dto.getTaskId())
-                    .isNull(MaterialMeterFormTask::getStatus) //表示用户未选择,那么默认同意
+                    .ne(MaterialMeterFormTask::getStatus, 2)
             );
             );
             List<Long> ids = materialMeterFormTasks.stream().map(MaterialMeterFormTask::getId).collect(Collectors.toList());
             List<Long> ids = materialMeterFormTasks.stream().map(MaterialMeterFormTask::getId).collect(Collectors.toList());
             if (ids.size() > 0) {
             if (ids.size() > 0) {
@@ -1526,7 +1688,7 @@ public class TaskController extends BladeController {
             List<StartPayMeterFormTask> startPayMeterFormTasks = startPayMeterFormServiceTask.getBaseMapper().selectList(Wrappers.<StartPayMeterFormTask>lambdaQuery()
             List<StartPayMeterFormTask> startPayMeterFormTasks = startPayMeterFormServiceTask.getBaseMapper().selectList(Wrappers.<StartPayMeterFormTask>lambdaQuery()
                     .eq(StartPayMeterFormTask::getMeterPeriodId, formDataId)
                     .eq(StartPayMeterFormTask::getMeterPeriodId, formDataId)
                     .eq(StartPayMeterFormTask::getTaskId, dto.getTaskId())
                     .eq(StartPayMeterFormTask::getTaskId, dto.getTaskId())
-                    .isNull(StartPayMeterFormTask::getStatus) //表示用户未选择,那么默认同意
+                    .ne(StartPayMeterFormTask::getStatus, 2)
             );
             );
             List<Long> ids = startPayMeterFormTasks.stream().map(StartPayMeterFormTask::getId).collect(Collectors.toList());
             List<Long> ids = startPayMeterFormTasks.stream().map(StartPayMeterFormTask::getId).collect(Collectors.toList());
             if (ids.size() > 0) {
             if (ids.size() > 0) {
@@ -1537,7 +1699,11 @@ public class TaskController extends BladeController {
                 startPayMeterFormServiceTask.update(updateEntity, updateWrapper);
                 startPayMeterFormServiceTask.update(updateEntity, updateWrapper);
             }
             }
         } else if (task.getMeterTaskType().equals(4)) {
         } else if (task.getMeterTaskType().equals(4)) {
-            jdbcTemplate.execute("UPDATE s_change_token_form_task SET status = 1 WHERE id IN(" + formDataId + ")");
+            List<ChangeTokenFormTask> query = jdbcTemplate.query("SELECT id FROM s_change_token_form_task WHERE status != 2 id IN(" + formDataId + ")", new BeanPropertyRowMapper<>(ChangeTokenFormTask.class));
+            List<Long> collect = query.stream().map(ChangeTokenFormTask::getId).collect(Collectors.toList());
+            if (collect.size() > 0) {
+                jdbcTemplate.execute("UPDATE s_change_token_form_task SET status = 1 WHERE id IN(" + StringUtils.join(collect, ",") + ")");
+            }
         }
         }
     }
     }
 
 
@@ -1613,7 +1779,7 @@ public class TaskController extends BladeController {
             String sql = "UPDATE u_task_parallel SET status = ? ,update_time = ? WHERE id = ?";
             String sql = "UPDATE u_task_parallel SET status = ? ,update_time = ? WHERE id = ?";
             Object[] param = {
             Object[] param = {
                     2,
                     2,
-                    new java.sql.Timestamp(System.currentTimeMillis()),
+                    new Date(),
                     taskParallelOne.getId()};
                     taskParallelOne.getId()};
             jdbcTemplate.update(sql, param);
             jdbcTemplate.update(sql, param);
         }
         }
@@ -1686,7 +1852,7 @@ public class TaskController extends BladeController {
     }
     }
 
 
     @GetMapping("/comment/list")
     @GetMapping("/comment/list")
-    @ApiOperationSupport(order = 16)
+    @ApiOperationSupport(order = 20)
     @ApiOperation(value = "批注信息列表", notes = "传入任务taskId,数据dataId")
     @ApiOperation(value = "批注信息列表", notes = "传入任务taskId,数据dataId")
     public R<List<TaskComment>> commentList(@RequestParam String taskId, @RequestParam String dataId) {
     public R<List<TaskComment>> commentList(@RequestParam String taskId, @RequestParam String dataId) {
         if (StringUtils.isNotEmpty(taskId) && StringUtils.isNotEmpty(dataId)) {
         if (StringUtils.isNotEmpty(taskId) && StringUtils.isNotEmpty(dataId)) {
@@ -1698,52 +1864,62 @@ public class TaskController extends BladeController {
     }
     }
 
 
     @PostMapping("/comment/submit")
     @PostMapping("/comment/submit")
-    @ApiOperationSupport(order = 17)
+    @ApiOperationSupport(order = 21)
     @ApiOperation(value = "批注信息新增或修改", notes = "传入TaskComment")
     @ApiOperation(value = "批注信息新增或修改", notes = "传入TaskComment")
     @Transactional
     @Transactional
     public R<Object> commentSubmit(@RequestBody TaskComment taskComment) {
     public R<Object> commentSubmit(@RequestBody TaskComment taskComment) {
+        if (ObjectUtil.isEmpty(taskComment.getTaskId())) {
+            throw new ServiceException("未获取到taskId");
+        }
         if (ObjectUtil.isEmpty(SecureUtil.getUserId())) {
         if (ObjectUtil.isEmpty(SecureUtil.getUserId())) {
             throw new ServiceException("未获取到当前用户信息");
             throw new ServiceException("未获取到当前用户信息");
         }
         }
         if (ObjectUtil.isNotEmpty(taskComment.getComment()) && taskComment.getComment().length() > 1000) {
         if (ObjectUtil.isNotEmpty(taskComment.getComment()) && taskComment.getComment().length() > 1000) {
             throw new ServiceException("批注信息最长1000个字符,请重新输入");
             throw new ServiceException("批注信息最长1000个字符,请重新输入");
         }
         }
-        try {
-            String querySql = "SELECT COUNT(*) FROM s_task_comment WHERE task_id = ? AND data_id = ? AND user_id = ?";
-            Object[] queryParams = {
-                    taskComment.getTaskId(),
-                    taskComment.getDataId(),
-                    SecureUtil.getUserId()
-            };
-            Integer count = jdbcTemplate.queryForObject(querySql, Integer.class, queryParams);
-            int rowCount = (count != null) ? count : 0;
-            if (rowCount == 0) {
-                String insertSql = "INSERT INTO s_task_comment(id, task_id, data_id, user_id, user_name, comment, create_time) VALUES (?, ?, ?, ?, ?, ?, ?)";
-                Object[] insertParams = {
-                        SnowFlakeUtil.getId(),
-                        taskComment.getTaskId(),
-                        taskComment.getDataId(),
-                        SecureUtil.getUserId(),
-                        SecureUtil.getNickName(),
-                        ObjectUtil.isNotEmpty(taskComment.getComment()) ? taskComment.getComment() : null,
-                        new java.sql.Timestamp(System.currentTimeMillis())
-                };
-                jdbcTemplate.update(insertSql, insertParams);
-            } else {
-                String updateSql = "UPDATE s_task_comment SET comment = ?, create_time = ? WHERE task_id = ? AND data_id = ? AND user_id = ?";
-                Object[] updateParams = {
-                        ObjectUtil.isNotEmpty(taskComment.getComment()) ? taskComment.getComment() : null,
-                        new java.sql.Timestamp(System.currentTimeMillis()),
+        Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + taskComment.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
+        if (task != null) {
+            check(task);
+
+            try {
+                String querySql = "SELECT COUNT(*) FROM s_task_comment WHERE task_id = ? AND data_id = ? AND user_id = ?";
+                Object[] queryParams = {
                         taskComment.getTaskId(),
                         taskComment.getTaskId(),
                         taskComment.getDataId(),
                         taskComment.getDataId(),
                         SecureUtil.getUserId()
                         SecureUtil.getUserId()
                 };
                 };
-                jdbcTemplate.update(updateSql, updateParams);
+                Integer count = jdbcTemplate.queryForObject(querySql, Integer.class, queryParams);
+                int rowCount = (count != null) ? count : 0;
+                if (rowCount == 0) {
+                    String insertSql = "INSERT INTO s_task_comment(id, task_id, data_id, user_id, user_name, comment, create_time) VALUES (?, ?, ?, ?, ?, ?, ?)";
+                    Object[] insertParams = {
+                            SnowFlakeUtil.getId(),
+                            taskComment.getTaskId(),
+                            taskComment.getDataId(),
+                            SecureUtil.getUserId(),
+                            SecureUtil.getNickName(),
+                            ObjectUtil.isNotEmpty(taskComment.getComment()) ? taskComment.getComment() : null,
+                            new Date()
+                    };
+                    jdbcTemplate.update(insertSql, insertParams);
+                } else {
+                    String updateSql = "UPDATE s_task_comment SET comment = ?, create_time = ? WHERE task_id = ? AND data_id = ? AND user_id = ?";
+                    Object[] updateParams = {
+                            ObjectUtil.isNotEmpty(taskComment.getComment()) ? taskComment.getComment() : null,
+                            new Date(),
+                            taskComment.getTaskId(),
+                            taskComment.getDataId(),
+                            SecureUtil.getUserId()
+                    };
+                    jdbcTemplate.update(updateSql, updateParams);
+                }
+
+                return R.data(200, null, "操作成功");
+            } catch (Exception e) {
+                return R.fail("操作失败" + e.getMessage());
             }
             }
-            return R.data(200, null, "操作成功");
-        } catch (Exception e) {
-            return R.fail("操作失败" + e.getMessage());
         }
         }
+        return R.fail("操作失败");
     }
     }
 
 
 }
 }

+ 1 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenFormMapper.java

@@ -49,7 +49,7 @@ public interface ChangeTokenFormMapper extends BaseMapper<ChangeTokenForm> {
 
 
     ChangeTokenFormVO detail(@Param("id") Long id);
     ChangeTokenFormVO detail(@Param("id") Long id);
 
 
-    ChangeTokenFormVO detailCopy(@Param("id") Long id);
+    ChangeTokenFormVO2 detailCopy(@Param("id") Long id);
 
 
     //获取变更令下节点
     //获取变更令下节点
     List<ChangeNodeVO> getNodeList(@Param("contractId") Long contractId,@Param("id") Long id);
     List<ChangeNodeVO> getNodeList(@Param("contractId") Long contractId,@Param("id") Long id);

+ 1 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenFormMapper.xml

@@ -179,7 +179,7 @@
         where id = #{id}
         where id = #{id}
     </select>
     </select>
 
 
-    <select id="detailCopy" resultType="org.springblade.meter.vo.ChangeTokenFormVO">
+    <select id="detailCopy" resultType="org.springblade.meter.vo.ChangeTokenFormVO2">
         select *,
         select *,
                (select dict_value from blade_dict where is_deleted = 0 and code = 'meter_change_type' and dict_key = ctf.change_type) as changeTypeName,
                (select dict_value from blade_dict where is_deleted = 0 and code = 'meter_change_type' and dict_key = ctf.change_type) as changeTypeName,
                (select dict_value from blade_dict where is_deleted = 0 and code = 'meter_change_classify' and dict_key = ctf.change_classify) as changeClassifyName
                (select dict_value from blade_dict where is_deleted = 0 and code = 'meter_change_classify' and dict_key = ctf.change_classify) as changeClassifyName

+ 0 - 20
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeContractServiceImpl.java

@@ -76,10 +76,6 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
                 cObj.setAncestor(null); //后面重新计算子级ancestor
                 cObj.setAncestor(null); //后面重新计算子级ancestor
             }
             }
 
 
-            if (ObjectUtil.isNotEmpty(SecureUtil.getTenantId())) {
-                cObj.setTenantId(Long.parseLong(SecureUtil.getTenantId()));
-            }
-
             meterTreeContractResultData.add(cObj);
             meterTreeContractResultData.add(cObj);
         }
         }
 
 
@@ -212,10 +208,6 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
                                         cObj.setAncestor(null); //后面重新计算子级ancestor
                                         cObj.setAncestor(null); //后面重新计算子级ancestor
                                     }
                                     }
 
 
-                                    if (ObjectUtil.isNotEmpty(SecureUtil.getTenantId())) {
-                                        cObj.setTenantId(Long.parseLong(SecureUtil.getTenantId()));
-                                    }
-
                                     meterTreeContractResultData.add(cObj);
                                     meterTreeContractResultData.add(cObj);
                                 }
                                 }
 
 
@@ -325,10 +317,6 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
                                         cObj.setAncestor(null); //后面重新计算子级ancestor
                                         cObj.setAncestor(null); //后面重新计算子级ancestor
                                     }
                                     }
 
 
-                                    if (ObjectUtil.isNotEmpty(SecureUtil.getTenantId())) {
-                                        cObj.setTenantId(Long.parseLong(SecureUtil.getTenantId()));
-                                    }
-
                                     meterTreeContractResultData.add(cObj);
                                     meterTreeContractResultData.add(cObj);
                                 }
                                 }
 
 
@@ -433,10 +421,6 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
                         /*ancestor*/
                         /*ancestor*/
                         cObj.setAncestor(meterTreeContractNode.getAncestor() + "," + cObj.getParentId());
                         cObj.setAncestor(meterTreeContractNode.getAncestor() + "," + cObj.getParentId());
 
 
-                        if (ObjectUtil.isNotEmpty(SecureUtil.getTenantId())) {
-                            cObj.setTenantId(Long.parseLong(SecureUtil.getTenantId()));
-                        }
-
                         baseMapper.insert(cObj);
                         baseMapper.insert(cObj);
                     }
                     }
 
 
@@ -494,10 +478,6 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
                             cObj.setAncestor(null); //后面重新计算子级ancestor
                             cObj.setAncestor(null); //后面重新计算子级ancestor
                         }
                         }
 
 
-                        if (ObjectUtil.isNotEmpty(SecureUtil.getTenantId())) {
-                            cObj.setTenantId(Long.parseLong(SecureUtil.getTenantId()));
-                        }
-
                         meterTreeContractResultData.add(cObj);
                         meterTreeContractResultData.add(cObj);
                     }
                     }
 
 

+ 12 - 18
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeProjectServiceImpl.java

@@ -40,7 +40,7 @@ public class MeterTreeProjectServiceImpl extends BaseServiceImpl<MeterTreeProjec
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public R<Object> projectTreeInitOrSync(Long meterTemplateId, Long projectId) {
     public R<Object> projectTreeInitOrSync(Long meterTemplateId, Long projectId) {
         /*首先判断是否存在项目树*/
         /*首先判断是否存在项目树*/
-        MeterTreeProject rootNode = baseMapper.selectOne(Wrappers.<MeterTreeProject>lambdaQuery()
+        List<MeterTreeProject> rootNode = baseMapper.selectList(Wrappers.<MeterTreeProject>lambdaQuery()
                 .select(MeterTreeProject::getTemplateId)
                 .select(MeterTreeProject::getTemplateId)
                 .eq(MeterTreeProject::getTemplateId, meterTemplateId) //当前模板
                 .eq(MeterTreeProject::getTemplateId, meterTemplateId) //当前模板
                 .eq(MeterTreeProject::getProjectId, projectId)
                 .eq(MeterTreeProject::getProjectId, projectId)
@@ -49,7 +49,7 @@ public class MeterTreeProjectServiceImpl extends BaseServiceImpl<MeterTreeProjec
                 .eq(MeterTreeProject::getStatus, 1));
                 .eq(MeterTreeProject::getStatus, 1));
 
 
         /*非当前模板,表示已修改项目的系统级模板绑定,那么需要先删除旧模板数据(一个项目只关联了一个模板)*/
         /*非当前模板,表示已修改项目的系统级模板绑定,那么需要先删除旧模板数据(一个项目只关联了一个模板)*/
-        MeterTreeProject rootNodeOther = baseMapper.selectOne(Wrappers.<MeterTreeProject>lambdaQuery()
+        List<MeterTreeProject> rootNodeOther = baseMapper.selectList(Wrappers.<MeterTreeProject>lambdaQuery()
                 .select(MeterTreeProject::getTemplateId)
                 .select(MeterTreeProject::getTemplateId)
                 .ne(MeterTreeProject::getTemplateId, meterTemplateId) //非当前模板
                 .ne(MeterTreeProject::getTemplateId, meterTemplateId) //非当前模板
                 .eq(MeterTreeProject::getProjectId, projectId)
                 .eq(MeterTreeProject::getProjectId, projectId)
@@ -57,17 +57,19 @@ public class MeterTreeProjectServiceImpl extends BaseServiceImpl<MeterTreeProjec
                 .eq(MeterTreeProject::getAncestor, "0")
                 .eq(MeterTreeProject::getAncestor, "0")
                 .eq(MeterTreeProject::getStatus, 1));
                 .eq(MeterTreeProject::getStatus, 1));
 
 
-        if (rootNodeOther != null) {
-            /*逻辑删除旧项目模板信息*/
-            jdbcTemplate.execute("UPDATE s_meter_tree_project SET is_deleted = 1 WHERE project_id = " + projectId + " AND template_id = " + rootNodeOther.getTemplateId());
-            logger.info(" ==================== 已成功逻辑删除旧系统模板id {} 项目id {} 的项目单元树数据 ==================== ", rootNodeOther.getTemplateId(), projectId);
+        if (rootNodeOther.size() > 0) {
+            for (MeterTreeProject meterTreeProject : rootNodeOther) {
+                /*逻辑删除旧项目模板信息*/
+                jdbcTemplate.execute("DELETE FROM s_meter_tree_project WHERE project_id = " + projectId + " AND template_id = " + meterTreeProject.getTemplateId());
+                logger.info(" ==================== 已成功删除旧系统模板id {} 项目id {} 的项目单元树数据 ==================== ", meterTreeProject.getTemplateId(), projectId);
 
 
-            /*逻辑删除项目下所有合同段的模板信息*/
-            jdbcTemplate.execute("UPDATE s_meter_tree_contract SET is_deleted = 1 WHERE project_id = " + projectId + " AND template_id = " + rootNodeOther.getTemplateId());
-            logger.info(" ==================== 已成功逻辑删除旧系统模板id {} 项目id {} 的合同段单元树数据 ==================== ", rootNodeOther.getTemplateId(), projectId);
+                /*逻辑删除项目下所有合同段的模板信息*/
+                jdbcTemplate.execute("DELETE FROM s_meter_tree_contract WHERE project_id = " + projectId + " AND template_id = " + meterTreeProject.getTemplateId());
+                logger.info(" ==================== 已成功删除旧系统模板id {} 项目id {} 的合同段单元树数据 ==================== ", meterTreeProject.getTemplateId(), projectId);
+            }
         }
         }
 
 
-        if (rootNode == null) {
+        if (rootNode.size() == 0) {
             /*================== 新增初始化 ==================*/
             /*================== 新增初始化 ==================*/
             /*获取系统单元树信息*/
             /*获取系统单元树信息*/
             List<MeterTreeSystem> meterTreeSystems = meterTreeSystemMapper.selectList(Wrappers.<MeterTreeSystem>lambdaQuery()
             List<MeterTreeSystem> meterTreeSystems = meterTreeSystemMapper.selectList(Wrappers.<MeterTreeSystem>lambdaQuery()
@@ -108,10 +110,6 @@ public class MeterTreeProjectServiceImpl extends BaseServiceImpl<MeterTreeProjec
                         pObj.setAncestor(null); //后面重新计算子级ancestor
                         pObj.setAncestor(null); //后面重新计算子级ancestor
                     }
                     }
 
 
-                    if (ObjectUtil.isNotEmpty(SecureUtil.getTenantId())) {
-                        pObj.setTenantId(Long.parseLong(SecureUtil.getTenantId()));
-                    }
-
                     meterTreeProjectsResultData.add(pObj);
                     meterTreeProjectsResultData.add(pObj);
                 }
                 }
 
 
@@ -242,10 +240,6 @@ public class MeterTreeProjectServiceImpl extends BaseServiceImpl<MeterTreeProjec
                                         pObj.setAncestor(null); //后面重新计算子级ancestor
                                         pObj.setAncestor(null); //后面重新计算子级ancestor
                                     }
                                     }
 
 
-                                    if (ObjectUtil.isNotEmpty(SecureUtil.getTenantId())) {
-                                        pObj.setTenantId(Long.parseLong(SecureUtil.getTenantId()));
-                                    }
-
                                     meterTreeProjectsResultData.add(pObj);
                                     meterTreeProjectsResultData.add(pObj);
                                 }
                                 }