Browse Source

中间计量申请废除之后也能查看上报信息和批注

qianxb 10 months ago
parent
commit
337fc669fc

+ 22 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -5,6 +5,7 @@ import cn.hutool.log.StaticLog;
 import com.alibaba.fastjson.JSON;
 import com.aspose.cells.PageSetup;
 import com.aspose.cells.SaveFormat;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -810,9 +811,27 @@ public class TaskController extends BladeController {
                                 .eq(ContractMeterPeriod::getId, periodId));
 
                         try {
+                            //修改所有复制数据id,并且同步修改中间表id,用于废除预览
+                            List<MiddleMeterApplyTask> meterApplyTaskList = middleMeterApplyServiceTask.list(new LambdaQueryWrapper<MiddleMeterApplyTask>()
+                                    .eq(MiddleMeterApplyTask::getContractPeriodId, periodId));
+                            List<InventoryFormApplyTask> taskList = inventoryFormApplyServiceTask.list(new LambdaQueryWrapper<InventoryFormApplyTask>()
+                                    .eq(InventoryFormApplyTask::getContractPeriodId, periodId));
+                            Map<Long,Long> idMap = new HashMap<>();
+                            for (MiddleMeterApplyTask applyTask : meterApplyTaskList) {
+                                Long id = SnowFlakeUtil.getId();
+                                idMap.put(applyTask.getId(),id);
+                                applyTask.setId(id);
+                            }
+                            for (InventoryFormApplyTask applyTask : taskList) {
+                                applyTask.setId(null);
+                                applyTask.setMiddleMeterId(idMap.get(applyTask.getMiddleMeterId()));
+                            }
                             /*删除业务复制数据taskVO*/
                             jdbcTemplate.execute("DELETE FROM s_middle_meter_apply_task WHERE contract_period_id = '" + periodId + "' AND task_id = " + taskRepealDTO.getTaskId());
                             jdbcTemplate.execute("DELETE FROM s_inventory_form_apply_task WHERE contract_period_id = '" + periodId + "' AND task_id = " + taskRepealDTO.getTaskId());
+
+                            middleMeterApplyServiceTask.saveBatch(meterApplyTaskList);
+                            inventoryFormApplyServiceTask.saveBatch(taskList);
                         } catch (Exception e) {
                             throw new ServiceException("删除业务复制数据taskVO失败");
                         }
@@ -1230,7 +1249,8 @@ public class TaskController extends BladeController {
             }
 
             /*中间业务taskVO复制数据(只有待审批、已审批任务才能查看到具体的taskVO复制数据,因为废除任务时taskVO被删除,但是单条驳回时有记录单条数据的历史信息,所以通过的任务还是能查看到)*/
-            if (ObjectUtil.isNotEmpty(task.getFormDataId()) && Arrays.asList(1, 2).contains(task.getStatus())) {
+//            if (ObjectUtil.isNotEmpty(task.getFormDataId()) && Arrays.asList(1, 2).contains(task.getStatus())) {
+            if (ObjectUtil.isNotEmpty(task.getFormDataId())) {
                 /*获取当条任务所有批注信息*/
                 Map<String, TaskComment> taskCommentMap = jdbcTemplate.query("SELECT * FROM s_task_comment WHERE task_id = " + id, new BeanPropertyRowMapper<>(TaskComment.class))
                         .stream()
@@ -2124,7 +2144,7 @@ public class TaskController extends BladeController {
         if (ObjectUtil.isEmpty(dto.getDataId()) || ObjectUtil.isEmpty(dto.getTaskId())) {
             throw new ServiceException("任务id、数据id不能为空");
         }
-        if (Arrays.asList("1", "2").contains(dto.getAuditStatus())) {
+        if (Arrays.asList("1", "2","3").contains(dto.getAuditStatus())) {
             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);