Browse Source

bug

Signed-off-by: liuyc <56808083@qq.com>
liuyc 1 year ago
parent
commit
b48c5f8ce5
19 changed files with 520 additions and 44 deletions
  1. 2 2
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/MeterApprovalDTO.java
  2. 117 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ChangeTokenFormTask.java
  3. 105 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ChangeTokenInventoryTask.java
  4. 67 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ChangeTokenMeterTask.java
  5. 13 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ChangeTokenFormTaskVO.java
  6. 9 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/TaskDataDetailVO.java
  7. 106 41
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java
  8. 9 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenFormTaskMapper.java
  9. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenFormTaskMapper.xml
  10. 9 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenInventoryTaskMapper.java
  11. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenInventoryTaskMapper.xml
  12. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenMeterTaskMapper.java
  13. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenMeterTaskMapper.xml
  14. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IChangeTokenFormServiceTask.java
  15. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IChangeTokenInventoryServiceTask.java
  16. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IChangeTokenMeterServiceTask.java
  17. 12 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ChangeTokenFormServiceTaskImpl.java
  18. 12 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ChangeTokenInventoryServiceTaskImpl.java
  19. 12 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ChangeTokenMeterServiceTaskImpl.java

+ 2 - 2
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/MeterApprovalDTO.java

@@ -14,8 +14,8 @@ public class MeterApprovalDTO implements Serializable {
     @ApiModelProperty(value = "合同段id")
     @ApiModelProperty(value = "合同段id")
     private Long contractId;
     private Long contractId;
 
 
-    @ApiModelProperty(value = "期数id")
-    private Long periodId;
+    @ApiModelProperty(value = "期数id(如果是变更令,那么入参传勾选的id字符串英文逗号拼接)")
+    private String periodId;
 
 
     @ApiModelProperty(value = "任务名称")
     @ApiModelProperty(value = "任务名称")
     private String taskName;
     private String taskName;

+ 117 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ChangeTokenFormTask.java

@@ -0,0 +1,117 @@
+package org.springblade.meter.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+@TableName("s_change_token_form_task")
+@EqualsAndHashCode(callSuper = true)
+public class ChangeTokenFormTask extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 任务id
+     */
+    @ApiModelProperty(value = "任务id")
+    private Long taskId;
+
+    /**
+     * 项目id
+     */
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+    /**
+     * 合同段id
+     */
+    @ApiModelProperty(value = "合同段id")
+    private Long contractId;
+    /**
+     * 变更令编号
+     */
+    @ApiModelProperty(value = "变更令编号")
+    private String changeNumber;
+    /**
+     * 变更令名称
+     */
+    @ApiModelProperty(value = "变更令名称")
+    private String changeName;
+    /**
+     * 变更发起单位
+     */
+    @ApiModelProperty(value = "变更发起单位")
+    private String changeUnit;
+    /**
+     * 变更类型
+     */
+    @ApiModelProperty(value = "变更类型")
+    private Integer changeType;
+    /**
+     * 业务日期
+     */
+    @ApiModelProperty(value = "业务日期")
+    private LocalDate businessDate;
+    /**
+     * 延长工期
+     */
+    @ApiModelProperty(value = "延长工期")
+    private Integer lengthenDays;
+    /**
+     * 变更申请金额
+     */
+    @ApiModelProperty(value = "变更申请金额")
+    private BigDecimal changeMoney;
+    /**
+     * 设计完成时间
+     */
+    @ApiModelProperty(value = "设计完成时间")
+    private LocalDate designDate;
+    /**
+     * 实际变更桩号
+     */
+    @ApiModelProperty(value = "实际变更桩号")
+    private String realityChangeNumber;
+    /**
+     * 变更批复文号
+     */
+    @ApiModelProperty(value = "变更批复文号")
+    private String changeApprovalNumber;
+    /**
+     * 变更归类
+     */
+    @ApiModelProperty(value = "变更归类")
+    private Integer changeClassify;
+    /**
+     * 变更批复日期
+     */
+    @ApiModelProperty(value = "变更批复日期")
+    private LocalDate changeApprovalDate;
+    /**
+     * 变更原因
+     */
+    @ApiModelProperty(value = "变更原因")
+    private String changeCause;
+    /**
+     * 审批状态
+     */
+    @ApiModelProperty(value = "审批状态,0未上报,1待审批,2已审批,3已废除")
+    private Integer approveStatus;
+    /**
+     * 下达状态
+     */
+    @ApiModelProperty(value = "下达状态0未下达1已下达")
+    private Integer commandStatus;
+
+    @ApiModelProperty(value = "下达日期")
+    private LocalDateTime commandDate;
+
+
+
+}

+ 105 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ChangeTokenInventoryTask.java

@@ -0,0 +1,105 @@
+package org.springblade.meter.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.math.BigDecimal;
+
+@Data
+@TableName("s_change_token_inventory_task")
+@EqualsAndHashCode(callSuper = true)
+public class ChangeTokenInventoryTask extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 任务id
+     */
+    @ApiModelProperty(value = "任务id")
+    private Long taskId;
+
+    /**
+     * 项目id
+     */
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+    /**
+     * 合同段id
+     */
+    @ApiModelProperty(value = "合同段id")
+    private Long contractId;
+    /**
+     * 变更令id
+     */
+    @ApiModelProperty(value = "变更令id")
+    private Long changeTokenId;
+    /**
+     * 合同计量单元id
+     */
+    @ApiModelProperty(value = "合同计量单元id(部位)")
+    private Long contractMeterId;
+    /**
+     * 合同工程清单id
+     */
+    @ApiModelProperty(value = "合同工程清单id")
+    private Long contractFormId;
+    /**
+     * 清单编号
+     */
+    @ApiModelProperty(value = "清单编号")
+    private String formNumber;
+    /**
+     * 清单名称
+     */
+    @ApiModelProperty(value = "清单名称")
+    private String formName;
+    /**
+     * 当前单价
+     */
+    @ApiModelProperty(value = "当前单价")
+    private BigDecimal currentPrice;
+    /**
+     * 变更前数量
+     */
+    @ApiModelProperty(value = "变更前数量")
+    private BigDecimal changeBeforeTotal;
+    /**
+     * 变更数量
+     */
+    @ApiModelProperty(value = "变更数量")
+    private BigDecimal changeTotal;
+    /**
+     * 变更后数量
+     */
+    @ApiModelProperty(value = "变更后数量")
+    private BigDecimal changeAfterTotal;
+    /**
+     * 变更前金额
+     */
+    @ApiModelProperty(value = "变更前金额")
+    private BigDecimal changeBeforeMoney;
+    /**
+     * 变更金额
+     */
+    @ApiModelProperty(value = "变更金额")
+    private BigDecimal changeMoney;
+    /**
+     * 变更后金额
+     */
+    @ApiModelProperty(value = "变更后金额")
+    private BigDecimal changeAfterMoney;
+
+    /**
+     * 是否汇总清单,0分解清单1汇总清单
+     */
+    @ApiModelProperty(value = "是否汇总清单,0分解清单1汇总清单")
+    private Integer isCollectForm;
+
+    @ApiModelProperty(value = "需要修改的中间计量申请ids")
+    private String applyIds;
+
+
+}

+ 67 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ChangeTokenMeterTask.java

@@ -0,0 +1,67 @@
+package org.springblade.meter.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.math.BigDecimal;
+
+
+@Data
+@TableName("s_change_token_meter_task")
+@EqualsAndHashCode(callSuper = true)
+public class ChangeTokenMeterTask extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 任务id
+     */
+    @ApiModelProperty(value = "任务id")
+    private Long taskId;
+    /**
+     * 项目id
+     */
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+    /**
+     * 合同段id
+     */
+    @ApiModelProperty(value = "合同段id")
+    private Long contractId;
+    /**
+     * 变更令id
+     */
+    @ApiModelProperty(value = "变更令id")
+    private Long changeTokenId;
+    /**
+     * 合同计量单元id
+     */
+    @ApiModelProperty(value = "合同计量单元id")
+    private Long contractMeterId;
+
+    @ApiModelProperty(value = "工程名称")
+    private String nodeName;
+
+    @ApiModelProperty(value = "节点路径")
+    private String nodeUrl;
+
+    @ApiModelProperty(value = "变更后合同图号")
+    private String contractPicture;
+
+    @ApiModelProperty(value = "变更前-变更合同图号")
+    private String beforeContractPicture;
+
+    @ApiModelProperty(value = "变更后金额")
+    private BigDecimal changeMoney;
+
+    @ApiModelProperty(value = "变更前-变更后金额")
+    private BigDecimal beforeChangeMoney;
+
+    @ApiModelProperty(value = "是否增补")
+    private Integer isSupplement;
+
+
+}

+ 13 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ChangeTokenFormTaskVO.java

@@ -0,0 +1,13 @@
+package org.springblade.meter.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.meter.entity.ChangeTokenFormTask;
+
+@Data
+public class ChangeTokenFormTaskVO extends ChangeTokenFormTask {
+
+    @ApiModelProperty(value = "是否已批注,1=是,0=否")
+    private Integer isComment;
+
+}

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

@@ -3,6 +3,8 @@ 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;
@@ -13,9 +15,15 @@ public class TaskDataDetailVO implements Serializable {
     @ApiModelProperty(value = "基础信息")
     @ApiModelProperty(value = "基础信息")
     private Object basicsInfo;
     private Object basicsInfo;
 
 
-    @ApiModelProperty(value = "关联业务列表数据")
+    @ApiModelProperty(value = "中间计量-关联清单列表数据")
     private List<MeterInventoryVO> associatedDataInfoList;
     private List<MeterInventoryVO> associatedDataInfoList;
 
 
+    @ApiModelProperty(value = "变更令-关联部位数据")
+    private List<ChangeTokenMeterTask> changeTokenMeterTaskList;
+
+    @ApiModelProperty(value = "变更令-关联部位清单数据")
+    private List<ChangeTokenInventoryTask> changeTokenInventoryTaskList;
+
     @ApiModelProperty(value = "附件文件信息")
     @ApiModelProperty(value = "附件文件信息")
     private List<AttachmentFormTask> attachmentFormTask;
     private List<AttachmentFormTask> attachmentFormTask;
 
 

+ 106 - 41
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -11,7 +11,6 @@ import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateUtils;
 import org.apache.commons.lang.time.DateUtils;
-import org.springblade.business.entity.FixedFlowLink;
 import org.springblade.business.entity.Task;
 import org.springblade.business.entity.Task;
 import org.springblade.business.entity.TaskParallel;
 import org.springblade.business.entity.TaskParallel;
 import org.springblade.business.feign.TaskClient;
 import org.springblade.business.feign.TaskClient;
@@ -60,7 +59,6 @@ public class TaskController extends BladeController {
 
 
     private final JdbcTemplate jdbcTemplate;
     private final JdbcTemplate jdbcTemplate;
     private final BladeRedis bladeRedis;
     private final BladeRedis bladeRedis;
-    private final ArchiveFileTaskClient archiveFileTaskClient;
     private final TaskClient taskClient;
     private final TaskClient taskClient;
     private final ContractMeterPeriodServiceImpl contractMeterPeriodService;
     private final ContractMeterPeriodServiceImpl contractMeterPeriodService;
     private final MeterPeriodServiceImpl periodService;
     private final MeterPeriodServiceImpl periodService;
@@ -77,6 +75,11 @@ public class TaskController extends BladeController {
     private final MiddleMeterApplyMapper middleMeterApplyMapper;
     private final MiddleMeterApplyMapper middleMeterApplyMapper;
 
 
     private final ChangeTokenFormServiceImpl changeTokenFormService;
     private final ChangeTokenFormServiceImpl changeTokenFormService;
+    private final ChangeTokenFormServiceTaskImpl changeTokenFormServiceTask;
+    private final ChangeTokenMeterServiceImpl changeTokenMeterService;
+    private final ChangeTokenMeterServiceTaskImpl changeTokenMeterServiceTask;
+    private final ChangeTokenInventoryServiceImpl changeTokenInventoryService;
+    private final ChangeTokenInventoryServiceTaskImpl changeTokenInventoryServiceTask;
 
 
     @GetMapping("/name")
     @GetMapping("/name")
     @ApiOperationSupport(order = 1)
     @ApiOperationSupport(order = 1)
@@ -108,7 +111,7 @@ public class TaskController extends BladeController {
                     List<ChangeTokenForm> changeTokenForms = changeTokenFormService.getBaseMapper().selectBatchIds(longs);
                     List<ChangeTokenForm> changeTokenForms = changeTokenFormService.getBaseMapper().selectBatchIds(longs);
                     if (changeTokenForms.size() > 0) {
                     if (changeTokenForms.size() > 0) {
                         List<String> collect = changeTokenForms.stream().map(ChangeTokenForm::getChangeNumber).collect(Collectors.toList());
                         List<String> collect = changeTokenForms.stream().map(ChangeTokenForm::getChangeNumber).collect(Collectors.toList());
-                        name = "【" + contractInfo.getContractName() + "】" + date + " 变更令【" + StringUtils.join(collect,"、") + "】";
+                        name = "【" + contractInfo.getContractName() + "】" + date + " 变更令【" + StringUtils.join(collect, "、") + "】";
                     }
                     }
                 }
                 }
             }
             }
@@ -136,14 +139,14 @@ public class TaskController extends BladeController {
         }
         }
 
 
         /*加锁*/
         /*加锁*/
-        String redisValue = bladeRedis.get("meter:report:periodId-" + approvalDTO.getPeriodId());
+        String redisValue = bladeRedis.get("meter:report:contractId-" + approvalDTO.getContractId());
         if (StringUtils.isNotEmpty(redisValue) && redisValue.equals("1")) {
         if (StringUtils.isNotEmpty(redisValue) && redisValue.equals("1")) {
-            return R.fail(400, "当前期数已提交任务审批,请勿重复提交,60秒后再尝试");
+            return R.fail(400, "请勿重复提交,10秒后再尝试");
         }
         }
-        bladeRedis.set("meter:report:periodId-" + approvalDTO.getPeriodId(), "1");
-        bladeRedis.expire("meter:report:periodId-" + approvalDTO.getPeriodId(), 60);
+        bladeRedis.set("meter:report:contractId-" + approvalDTO.getContractId(), "1");
+        bladeRedis.expire("meter:report:contractId-" + approvalDTO.getContractId(), 10);
 
 
-        if (ObjectUtil.isNotEmpty(approvalDTO.getType()) && (approvalDTO.getType().equals(1) || approvalDTO.getType().equals(2) || approvalDTO.getType().equals(3))) {
+        if (ObjectUtil.isNotEmpty(approvalDTO.getType()) && (approvalDTO.getType().equals(1) || approvalDTO.getType().equals(2) || approvalDTO.getType().equals(3) || approvalDTO.getType().equals(4))) {
             if (approvalDTO.getType().equals(1)) {
             if (approvalDTO.getType().equals(1)) {
                 /*==================== 中间计量申请 ====================*/
                 /*==================== 中间计量申请 ====================*/
                 Long taskId = SnowFlakeUtil.getId();
                 Long taskId = SnowFlakeUtil.getId();
@@ -351,7 +354,62 @@ public class TaskController extends BladeController {
                 }
                 }
             } else if (approvalDTO.getType().equals(4)) {
             } else if (approvalDTO.getType().equals(4)) {
                 /*==================== 变更令 ====================*/
                 /*==================== 变更令 ====================*/
-                //TODO
+                Set<String> aopParamsSet = new HashSet<>();
+                for (String id : approvalDTO.getPeriodId().split(",")) {
+                    Long taskId = SnowFlakeUtil.getId();
+                    /*获取变更令信息*/
+                    ChangeTokenForm changeTokenForm = changeTokenFormService.getById(id);
+                    if (changeTokenForm != null) {
+                        /*判断是否是未上报、或已废除*/
+                        if (!Arrays.asList(0, 3).contains(changeTokenForm.getApproveStatus())) {
+                            throw new ServiceException("当前变更令已上报,操作失败");
+                        }
+                        /*获取变更令下的计量单元部位信息*/
+                        List<ChangeTokenMeter> changeTokenMeters = changeTokenMeterService.getBaseMapper().selectList(Wrappers.<ChangeTokenMeter>lambdaQuery().eq(ChangeTokenMeter::getChangeTokenId, changeTokenForm.getId()));
+                        if (changeTokenMeters.size() > 0) {
+                            /*获取计量单元下的清单信息*/
+                            List<ChangeTokenInventory> changeTokenInventories = changeTokenInventoryService.getBaseMapper().selectList(Wrappers.<ChangeTokenInventory>lambdaQuery()
+                                    .eq(ChangeTokenInventory::getChangeTokenId, changeTokenForm.getId()));
+
+                            /*复制taskVO数据*/
+                            ChangeTokenFormTask changeTokenFormTask = BeanUtil.copyProperties(changeTokenForm, ChangeTokenFormTask.class);
+                            if (changeTokenFormTask != null) {
+                                changeTokenFormTask.setTaskId(taskId);
+                                changeTokenFormServiceTask.save(changeTokenFormTask); //变更令
+
+                                List<ChangeTokenMeterTask> changeTokenMeterTasks = BeanUtil.copyProperties(changeTokenMeters, ChangeTokenMeterTask.class);
+                                for (ChangeTokenMeterTask changeTokenMeterTask : changeTokenMeterTasks) {
+                                    changeTokenMeterTask.setTaskId(taskId);
+                                }
+                                changeTokenMeterServiceTask.saveBatch(changeTokenMeterTasks, 1000); //部位
+
+                                List<ChangeTokenInventoryTask> changeTokenInventoryTasks = BeanUtil.copyProperties(changeTokenInventories, ChangeTokenInventoryTask.class);
+                                for (ChangeTokenInventoryTask changeTokenInventoryTask : changeTokenInventoryTasks) {
+                                    changeTokenInventoryTask.setTaskId(taskId);
+                                }
+                                changeTokenInventoryServiceTask.saveBatch(changeTokenInventoryTasks, 1000); //清单
+
+                                /*构造创建审批任务*/
+                                try {
+                                    this.buildTaskInfo(taskId, approvalDTO, aopParamsSet, 4);
+                                } catch (Exception e) {
+                                    throw new ServiceException("创建审批任务异常,操作失败");
+                                }
+
+                                /*修改变更令原始数据的审批状态=待审批*/
+                                changeTokenFormService.update(Wrappers.<ChangeTokenForm>lambdaUpdate()
+                                        .set(ChangeTokenForm::getApproveStatus, 1)
+                                        .eq(ChangeTokenForm::getId, id));
+                                /*复制数据的审批状态=待审批*/
+                                changeTokenFormServiceTask.update(Wrappers.<ChangeTokenFormTask>lambdaUpdate()
+                                        .set(ChangeTokenFormTask::getApproveStatus, 1)
+                                        .eq(ChangeTokenFormTask::getTaskId, taskId)
+                                        .eq(ChangeTokenFormTask::getId, id));
+                            }
+                        }
+                    }
+                }
+                return R.data(200, aopParamsSet, "操作成功");
             }
             }
         }
         }
         return R.fail("操作失败");
         return R.fail("操作失败");
@@ -366,33 +424,6 @@ public class TaskController extends BladeController {
      * @param meterTaskType
      * @param meterTaskType
      */
      */
     private void buildTaskInfo(Long taskId, MeterApprovalDTO approvalDTO, Set<String> aopParamsSet, Integer meterTaskType) {
     private void buildTaskInfo(Long taskId, MeterApprovalDTO approvalDTO, Set<String> aopParamsSet, Integer meterTaskType) {
-        /*预设流程,获取对应任务人id*//*
-        String resultString = "";
-        if (ObjectUtil.isNotEmpty(approvalDTO.getFixedFlowId())) {
-            List<FixedFlowLink> fixedFlowLinks = jdbcTemplate.query("select fixed_flow_link_user,fixed_flow_link_sort from u_fixed_flow_link " +
-                    "where fixed_flow_id = " + approvalDTO.getFixedFlowId(), new BeanPropertyRowMapper<>(FixedFlowLink.class));
-            if (fixedFlowLinks.size() > 0) {
-                fixedFlowLinks.sort(Comparator.comparingInt(FixedFlowLink::getFixedFlowLinkSort));
-                StringBuilder sortStr = new StringBuilder();
-                for (FixedFlowLink link : fixedFlowLinks) {
-                    sortStr.append(link.getFixedFlowLinkUser()).append(",");
-                }
-                if (sortStr.length() > 0) {
-                    sortStr.deleteCharAt(sortStr.length() - 1);
-                }
-                resultString = sortStr.toString();
-            }
-        }
-        *//*如果是预设流程,重新赋值任务人id*//*
-        if (ObjectUtil.isNotEmpty(resultString)) {
-            *//*检查预设任务流程的任务人是否存在签字证书信息*//*
-            R<Object> objectR = archiveFileTaskClient.checkTaskUserCertificateInfo(resultString);
-            if (objectR.isSuccess()) {
-                approvalDTO.setTaskUserIds(resultString);
-            } else {
-                throw new ServiceException("未获取到预设任务流程的任务人的签字证书信息,操作失败");
-            }
-        }*/
         if (ObjectUtil.isEmpty(approvalDTO.getTaskUserIds())) {
         if (ObjectUtil.isEmpty(approvalDTO.getTaskUserIds())) {
             throw new ServiceException("未获取到任务人信息,操作失败");
             throw new ServiceException("未获取到任务人信息,操作失败");
         }
         }
@@ -415,7 +446,7 @@ public class TaskController extends BladeController {
         task.setCreateDept(null);
         task.setCreateDept(null);
         task.setTaskContent(ObjectUtil.isNotEmpty(approvalDTO.getTaskDesc()) ? approvalDTO.getTaskDesc() : null);
         task.setTaskContent(ObjectUtil.isNotEmpty(approvalDTO.getTaskDesc()) ? approvalDTO.getTaskDesc() : null);
         task.setTaskUser(null);
         task.setTaskUser(null);
-        task.setFormDataId(approvalDTO.getPeriodId().toString()); //数据指向,指向期数id
+        task.setFormDataId(approvalDTO.getPeriodId()); //数据指向,指向期数id(变更令为id英文逗号拼接)
         task.setTaskName(approvalDTO.getTaskName());
         task.setTaskName(approvalDTO.getTaskName());
         task.setContractId(approvalDTO.getContractId().toString());
         task.setContractId(approvalDTO.getContractId().toString());
         task.setProjectId(approvalDTO.getProjectId().toString());
         task.setProjectId(approvalDTO.getProjectId().toString());
@@ -511,7 +542,7 @@ public class TaskController extends BladeController {
 
 
     @PostMapping("/repeal")
     @PostMapping("/repeal")
     @ApiOperationSupport(order = 3)
     @ApiOperationSupport(order = 3)
-    @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) {
         if (ObjectUtil.isNotEmpty(taskRepealDTO) && ObjectUtil.isNotEmpty(taskRepealDTO.getTaskId())) {
         if (ObjectUtil.isNotEmpty(taskRepealDTO) && ObjectUtil.isNotEmpty(taskRepealDTO.getTaskId())) {
@@ -626,7 +657,17 @@ public class TaskController extends BladeController {
                         jdbcTemplate.execute("DELETE FROM s_start_pay_meter_form_task WHERE meter_period_id = '" + periodId + "' AND task_id = " + taskRepealDTO.getTaskId());
                         jdbcTemplate.execute("DELETE FROM s_start_pay_meter_form_task WHERE meter_period_id = '" + periodId + "' AND task_id = " + taskRepealDTO.getTaskId());
 
 
                     } else if (task.getMeterTaskType().equals(4)) {
                     } else if (task.getMeterTaskType().equals(4)) {
-                        //TODO 变更令
+                        for (String dataId : periodId.split(",")) {
+                            /*修改变更令的审批状态=未上报*/
+                            changeTokenFormService.update(Wrappers.<ChangeTokenForm>lambdaUpdate()
+                                    .set(ChangeTokenForm::getApproveStatus, 0)
+                                    .eq(ChangeTokenForm::getId, dataId));
+
+                            /*删除业务复制数据taskVO*/
+                            jdbcTemplate.execute("DELETE FROM s_change_token_form_task WHERE id = '" + dataId + "' AND task_id = " + taskRepealDTO.getTaskId());
+                            jdbcTemplate.execute("DELETE FROM s_change_token_meter_task WHERE change_token_id = '" + dataId + "' AND task_id = " + taskRepealDTO.getTaskId());
+                            jdbcTemplate.execute("DELETE FROM s_change_token_inventory_task WHERE change_token_id = '" + dataId + "' AND task_id = " + taskRepealDTO.getTaskId());
+                        }
                     }
                     }
 
 
                     /*删除文件附件、任务批注信息*/
                     /*删除文件附件、任务批注信息*/
@@ -937,7 +978,20 @@ public class TaskController extends BladeController {
 
 
                 } else if (task.getMeterTaskType().equals(4)) {
                 } else if (task.getMeterTaskType().equals(4)) {
                     /*==================== 变更令 ====================*/
                     /*==================== 变更令 ====================*/
-                    //TODO 变更令
+                    List<Long> longs = Func.toLongList(periodId);
+                    List<ChangeTokenFormTask> changeTokenFormTasks = changeTokenFormServiceTask.getBaseMapper().selectBatchIds(longs);
+                    List<ChangeTokenFormTaskVO> changeTokenFormTaskVOS = BeanUtil.copyProperties(changeTokenFormTasks, ChangeTokenFormTaskVO.class);
+                    for (ChangeTokenFormTaskVO changeTokenFormTaskVO : changeTokenFormTaskVOS) {
+                        String key = SecureUtil.getUserId() + ":" + changeTokenFormTaskVO.getId();
+                        TaskComment orDefault = taskCommentMap.getOrDefault(key, null);
+                        if (orDefault != null) {
+                            changeTokenFormTaskVO.setIsComment(1);
+                        } else {
+                            changeTokenFormTaskVO.setIsComment(0);
+                        }
+                    }
+                    vo.setTaskCenterDataInfo(changeTokenFormTaskVOS);
+
                 }
                 }
             }
             }
         }
         }
@@ -971,7 +1025,18 @@ public class TaskController extends BladeController {
                 vo.setBasicsInfo(startPayMeterFormTask);
                 vo.setBasicsInfo(startPayMeterFormTask);
 
 
             } else if (task.getMeterTaskType().equals(4)) {
             } else if (task.getMeterTaskType().equals(4)) {
-                //TODO 变更令
+                ChangeTokenFormTask changeTokenFormTask = changeTokenFormServiceTask.getById(dataId);
+                if (changeTokenFormTask != null) {
+                    vo.setBasicsInfo(changeTokenFormTask);
+
+                    List<ChangeTokenMeterTask> changeTokenMeterTasks = changeTokenMeterServiceTask.getBaseMapper().selectList(Wrappers.<ChangeTokenMeterTask>lambdaQuery()
+                            .eq(ChangeTokenMeterTask::getChangeTokenId, changeTokenFormTask.getId()));
+                    vo.setChangeTokenMeterTaskList(changeTokenMeterTasks);
+
+                    List<ChangeTokenInventoryTask> changeTokenInventoryTasks = changeTokenInventoryServiceTask.getBaseMapper().selectList(Wrappers.<ChangeTokenInventoryTask>lambdaQuery()
+                            .eq(ChangeTokenInventoryTask::getChangeTokenId, changeTokenFormTask.getId()));
+                    vo.setChangeTokenInventoryTaskList(changeTokenInventoryTasks);
+                }
             }
             }
 
 
             /*附件文件信息*/
             /*附件文件信息*/

+ 9 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenFormTaskMapper.java

@@ -0,0 +1,9 @@
+package org.springblade.meter.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.meter.entity.*;
+
+
+public interface ChangeTokenFormTaskMapper extends BaseMapper<ChangeTokenFormTask> {
+
+}

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenFormTaskMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.meter.mapper.ChangeTokenFormTaskMapper">
+
+</mapper>

+ 9 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenInventoryTaskMapper.java

@@ -0,0 +1,9 @@
+package org.springblade.meter.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.meter.entity.ChangeTokenInventoryTask;
+
+
+public interface ChangeTokenInventoryTaskMapper extends BaseMapper<ChangeTokenInventoryTask> {
+
+}

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenInventoryTaskMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.meter.mapper.ChangeTokenInventoryTaskMapper">
+
+</mapper>

+ 8 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenMeterTaskMapper.java

@@ -0,0 +1,8 @@
+package org.springblade.meter.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.meter.entity.ChangeTokenMeterTask;
+
+public interface ChangeTokenMeterTaskMapper extends BaseMapper<ChangeTokenMeterTask> {
+
+}

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenMeterTaskMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.meter.mapper.ChangeTokenMeterTaskMapper">
+
+</mapper>

+ 8 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IChangeTokenFormServiceTask.java

@@ -0,0 +1,8 @@
+package org.springblade.meter.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.meter.entity.ChangeTokenFormTask;
+
+public interface IChangeTokenFormServiceTask extends BaseService<ChangeTokenFormTask> {
+
+}

+ 8 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IChangeTokenInventoryServiceTask.java

@@ -0,0 +1,8 @@
+package org.springblade.meter.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.meter.entity.ChangeTokenInventoryTask;
+
+public interface IChangeTokenInventoryServiceTask extends BaseService<ChangeTokenInventoryTask> {
+
+}

+ 8 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IChangeTokenMeterServiceTask.java

@@ -0,0 +1,8 @@
+package org.springblade.meter.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.meter.entity.ChangeTokenMeterTask;
+
+public interface IChangeTokenMeterServiceTask extends BaseService<ChangeTokenMeterTask> {
+
+}

+ 12 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ChangeTokenFormServiceTaskImpl.java

@@ -0,0 +1,12 @@
+package org.springblade.meter.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.entity.*;
+import org.springblade.meter.mapper.ChangeTokenFormTaskMapper;
+import org.springblade.meter.service.*;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ChangeTokenFormServiceTaskImpl extends BaseServiceImpl<ChangeTokenFormTaskMapper, ChangeTokenFormTask> implements IChangeTokenFormServiceTask {
+
+}

+ 12 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ChangeTokenInventoryServiceTaskImpl.java

@@ -0,0 +1,12 @@
+package org.springblade.meter.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.entity.ChangeTokenInventoryTask;
+import org.springblade.meter.mapper.ChangeTokenInventoryTaskMapper;
+import org.springblade.meter.service.IChangeTokenInventoryServiceTask;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ChangeTokenInventoryServiceTaskImpl extends BaseServiceImpl<ChangeTokenInventoryTaskMapper, ChangeTokenInventoryTask> implements IChangeTokenInventoryServiceTask {
+
+}

+ 12 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ChangeTokenMeterServiceTaskImpl.java

@@ -0,0 +1,12 @@
+package org.springblade.meter.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.entity.ChangeTokenMeterTask;
+import org.springblade.meter.mapper.ChangeTokenMeterTaskMapper;
+import org.springblade.meter.service.IChangeTokenMeterServiceTask;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ChangeTokenMeterServiceTaskImpl extends BaseServiceImpl<ChangeTokenMeterTaskMapper, ChangeTokenMeterTask> implements IChangeTokenMeterServiceTask {
+
+}