Ver Fonte

feat:业务支持删除重复任务 temp1

shc há 6 meses atrás
pai
commit
c3425ba226

+ 106 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/InitController.java

@@ -7,6 +7,8 @@ import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.pig4cloud.plugin.excel.annotation.RequestExcel;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysAreaEntity;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
@@ -20,6 +22,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
+import com.qunzhixinxi.hnqz.admin.api.model.excel.WmTaskDupModel;
 import com.qunzhixinxi.hnqz.admin.event.PackageContractEvent;
 import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
@@ -53,7 +56,9 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Comparator;
+import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -523,4 +528,105 @@ public class InitController {
     }
 
 
+    @Inner(value = false)
+    @PostMapping(value = "/cnbg/del/dup/task")
+    @Transactional(rollbackFor = Exception.class)
+    public R<Map<String, List<WmTaskContent>>> delDupTaskContent(@RequestExcel(ignoreEmptyRow = true) List<WmTaskDupModel> dup) {
+
+        List<String> tIds = new LinkedList<>();
+        List<String> tcIds = new LinkedList<>();
+
+
+        if (CollUtil.isEmpty(dup)) {
+            return R.ok(Collections.EMPTY_MAP, "重复数据集为空");
+        }
+
+        // 排序去重 && 获取重复的任务记录
+        List<String> taskNumbers = dup.stream().map(WmTaskDupModel::getTaskNumber).distinct().sorted().collect(Collectors.toList());
+        List<WmTask> targetTasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getTaskNumber, taskNumbers));
+
+
+        // 获取重复任务的任务内容
+        List<String> taskContentIds = targetTasks.stream().map(WmTask::getTaskContentId).sorted().distinct().collect(Collectors.toList());
+        List<WmTaskContent> taskContents = taskContentService.listByIds(taskContentIds);
+        Map<Integer, WmTaskContent> tcId2EntityMap = taskContents.stream().collect(Collectors.toMap(WmTaskContent::getId, Function.identity()));
+
+
+        Map<String, List<WmTaskContent>> collect = taskContents.stream().collect(Collectors.groupingBy(this::getContentStr));
+
+
+        // Iterator<WmTask> iterator = targetTasks.iterator();
+        //
+        // while (iterator.hasNext()) {
+        //
+        //     WmTask task = iterator.next();
+        //
+        //     // 当前任务的信息
+        //     String taskId = task.getId();
+        //     String taskContentId = task.getTaskContentId();
+        //     WmTaskContent taskContent = tcId2EntityMap.get(taskContentId);
+        //     String cur = getContentStr(taskContent);
+        //
+        //
+        //     for (WmTask task1 : targetTasks) {
+        //         if (StrUtil.equals(taskId, task1.getId())) {
+        //             continue;
+        //         }
+        //
+        //         WmTaskContent taskContent1 = tcId2EntityMap.get(task1.getTaskContentId());
+        //         String compared = getContentStr(taskContent1);
+        //
+        //         if (StrUtil.equals(cur, compared)){
+        //             tIds.add(task1.getId());
+        //             tcIds.add(task1.getTaskContentId());
+        //         }
+        //     }
+        //
+        //     iterator.remove();
+        // }
+
+
+        return R.ok(collect, Boolean.TRUE.toString());
+
+    }
+
+    private String getContentStr(WmTaskContent content) {
+
+        return content.getTemp1() +
+                content.getTemp2() +
+                content.getTemp3() +
+                content.getTemp4() +
+                content.getTemp5() +
+                content.getTemp6() +
+                content.getTemp7() +
+                content.getTemp8() +
+                content.getTemp9() +
+                content.getTemp10() +
+                content.getTemp11() +
+                content.getTemp12() +
+                content.getTemp13() +
+                content.getTemp14() +
+                content.getTemp15() +
+                content.getTemp16() +
+                content.getTemp17() +
+                content.getTemp18() +
+                content.getTemp19() +
+                content.getTemp20() +
+                content.getTemp21() +
+                content.getTemp22() +
+                content.getTemp23() +
+                content.getTemp24() +
+                content.getTemp25() +
+                content.getTemp26() +
+                content.getTemp27() +
+                content.getTemp28() +
+                content.getTemp29() +
+                content.getTemp30() +
+                content.getTemp31() +
+                content.getTemp32();
+
+
+    }
+
+
 }