Преглед изворни кода

同步批量设置任务时间

lqc пре 4 година
родитељ
комит
a6145962c3

+ 70 - 3
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxMobileController.java

@@ -188,12 +188,16 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
             FosterwxMobileTaskTimeList fosterwxMobileTaskTimeList = new FosterwxMobileTaskTimeList();
 
             if (!editHandle.getRaw().getTaskTimeLists().isEmpty()) {
-                fosterwxMobileTaskTimeList = editHandle.getRaw().getTaskTimeLists().get(editHandle.getRaw().getTaskTimeLists().size() - 1);
+                FosterwxMobileTaskTimeList sample = editHandle.getRaw().getTaskTimeLists().get(editHandle.getRaw().getTaskTimeLists().size() - 1);
+                fosterwxMobileTaskTimeList.setTaskStartAt(sample.getTaskStartAt());
+                fosterwxMobileTaskTimeList.setTaskEndAt(sample.getTaskEndAt());
+                fosterwxMobileTaskTimeList.setTemplateId(sample.getTemplateId());
             }
 
             AjaxResult ajaxResult = null;
             // 全新增加任务的场合
-            if (editHandle.getRaw().getTaskTimeLists().size() > oldTimeList.size()) {
+            // 批量操作的时候传过来的件数不能跟数据库件数比较 因此独立判断
+            if (editHandle.getRaw().getTaskTimeLists().size() > oldTimeList.size() || (editHandle.getRaw().getType() != null && editHandle.getRaw().getTaskTimeLists().size() == 2)) {
                 if (null != fosterwxMobileTaskTimeList.getTaskStartAt()) {
                     fosterwxMobileTaskTimeListService.insertByMobile(fosterwxMobile, fosterwxMobileTaskTimeList);
                     ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, fosterwxMobileTaskTimeList, authUser, false);
@@ -205,7 +209,7 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
                         ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, fosterwxMobileTaskTimeList, authUser, false);
                     }
                 } else if (null != fosterwxMobileTaskTimeList.getTaskEndAt() && oldTimeList.get(oldTimeList.size() - 1).getTaskEndAt() == null) {
-                    fosterwxMobileTaskTimeListService.updateById(fosterwxMobileTaskTimeList);
+                    fosterwxMobileTaskTimeListService.update(fosterwxMobileTaskTimeList, new LambdaQueryWrapper<FosterwxMobileTaskTimeList>().eq(FosterwxMobileTaskTimeList::getMobileUnioCode, fosterwxMobile.getMobileUnioCode()));
                     // 删除后面的任务
                     fosterwxTaskScheduleService.remove(new LambdaQueryWrapper<FosterwxTaskSchedule>().eq(FosterwxTaskSchedule::getStationId, oldVO.getStationId()).eq(FosterwxTaskSchedule::getMobileCode, oldVO.getMobileCode()).gt(FosterwxTaskSchedule::getSendDate, fosterwxMobileTaskTimeList.getTaskEndAt()));
                 }
@@ -553,5 +557,68 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
 
         return AjaxResult.success(HttpMsg.importSuccess);
     }
+
+    /**
+     * 检查任务时间状态是否一致
+     * @param editHandle
+     * @return
+     */
+    @PostMapping("/checkTaskTime")
+    public Object checkTaskTime(@Valid @RequestBody EditHandle<FosterwxMobile> editHandle) {
+        List<String> idList = Arrays.asList(editHandle.getIds().split(","));
+        // 作为判断标准
+        List<FosterwxMobileTaskTimeList> baseList = new ArrayList<>();
+        FosterwxMobile fosterwxMobile = fosterwxMobileService.getById(idList.get(0));
+        if (fosterwxMobile == null) return AjaxResult.error("无法获取账号");
+
+        baseList = fosterwxMobileTaskTimeListService.list(new LambdaQueryWrapper<FosterwxMobileTaskTimeList>().eq(FosterwxMobileTaskTimeList::getMobileUnioCode, fosterwxMobile.getMobileUnioCode()));
+        FosterwxMobileTaskTimeList baseVO = null;
+
+        if (!baseList.isEmpty()) {
+            baseVO = baseList.get(baseList.size() - 1);
+        }
+
+        for (int i = 1; i < idList.size(); i++) {
+            List<FosterwxMobileTaskTimeList> compareList = new ArrayList<>();
+            fosterwxMobile = fosterwxMobileService.getById(idList.get(i));
+            if (fosterwxMobile == null) return AjaxResult.error("无法获取账号");
+
+            compareList = fosterwxMobileTaskTimeListService.list(new LambdaQueryWrapper<FosterwxMobileTaskTimeList>().eq(FosterwxMobileTaskTimeList::getMobileUnioCode, fosterwxMobile.getMobileUnioCode()));
+
+            // 进行判断
+            if ((baseList.isEmpty() && !compareList.isEmpty()) || (!baseList.isEmpty() && compareList.isEmpty()))
+                return AjaxResult.error("第" + (i + 1) + "条任务详情不一致,存在从没开始设置任务的情况");
+
+            FosterwxMobileTaskTimeList compareVO = null;
+            if (!compareList.isEmpty()) {
+                compareVO = compareList.get(compareList.size() - 1);
+            }
+
+            if (null == baseVO || null == compareVO) continue;
+
+            if (baseVO.getTaskEndAt() == null) {
+                if (compareVO.getTaskEndAt() != null)
+                    return AjaxResult.error("第" + (i + 1) + "条任务结束详情不一致");
+            } else {
+                if (compareVO.getTaskEndAt() == null)
+                    return AjaxResult.error("第" + (i + 1) + "条任务结束详情不一致");
+            }
+
+            // 开始编辑返回的数据
+            if (null == baseVO.getTaskEndAt()) {
+                // 设置最后面的开始时间
+                if (baseVO.getTaskStartAt().isBefore(compareVO.getTaskStartAt())) {
+                    baseVO.setTaskStartAt(compareVO.getTaskStartAt());
+                }
+            } else {
+                // 设置最后面的结束时间
+                if (baseVO.getTaskEndAt().isBefore(compareVO.getTaskEndAt())) {
+                    baseVO.setTaskEndAt(compareVO.getTaskEndAt());
+                }
+            }
+        }
+
+        return AjaxResult.success(baseVO);
+    }
 }
 

+ 3 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxMobile.java

@@ -187,6 +187,9 @@ public class FosterwxMobile extends Model<FosterwxMobile> {
     @TableField(exist = false)
     private Integer templateId;
 
+    @TableField(exist = false)
+    private String type;
+
 
     public Integer getId() {
         return id;

+ 25 - 0
src/test/java/com/mokamrp/Tests.java

@@ -1,5 +1,7 @@
 package com.mokamrp;
 
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile;
+import org.apache.commons.collections4.ListUtils;
 import org.junit.Test;
 
 import java.math.BigDecimal;
@@ -7,6 +9,8 @@ import java.math.RoundingMode;
 import java.text.NumberFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
 
 public class Tests {
 
@@ -40,4 +44,25 @@ public class Tests {
 
         System.out.println(end.toEpochDay() - start.toEpochDay());
     }
+
+    @Test
+    public void test4() {
+        List<FosterwxMobile> baseList = new ArrayList();
+        List<FosterwxMobile> compareList = new ArrayList<>();
+
+        FosterwxMobile fosterwxMobile = new FosterwxMobile();
+        fosterwxMobile.setId(1);
+        fosterwxMobile.setStationId(0);
+
+        baseList.add(fosterwxMobile);
+        fosterwxMobile.setId(2);
+        compareList.add(fosterwxMobile);
+
+        System.out.println(baseList);
+        System.out.println(compareList);
+
+        System.out.println(ListUtils.isEqualList(baseList, compareList));
+
+
+    }
 }