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

账号列表辅助提示 账号列表页面字段排序 页面显示明细数量 任务详情编辑辅助检查

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

+ 133 - 0
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxMobileController.java

@@ -583,6 +583,139 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
         return AjaxResult.success(HttpMsg.importSuccess);
     }
 
+    @PostMapping("/checkTaskByRules")
+    public Object checkTaskByRules(@Valid @RequestBody EditHandle<FosterwxMobile> editHandle) {
+        // 新增 编辑 批量编辑 任务时间是检测合法性
+        List<String> idList = Arrays.asList(editHandle.getIds().split(","));
+        // 单个账号 需要进行详细检查
+        if (idList.size() == 1) {
+            FosterwxStation fosterwxStation = null;
+            if ("0".equals(editHandle.getIds())) {
+                fosterwxStation = fosterwxStationService.getById(editHandle.getRaw().getStationId());
+            } else {
+                FosterwxMobile fosterwxMobile = fosterwxMobileService.getById(idList.get(0));
+                fosterwxStation = fosterwxStationService.getById(fosterwxMobile.getStationId());
+                editHandle.getRaw().setMobileCode(fosterwxMobile.getMobileCode());
+            }
+
+
+            String stationName = fosterwxStation.getStationName();
+            // 获取分组
+            int group = Integer.parseInt(editHandle.getRaw().getMobileCode()) / 33;
+            if (0 == Integer.parseInt(editHandle.getRaw().getMobileCode()) % 33) {
+                group -= 1;
+            }
+
+            // 任务开始时间不一致ids
+            List<FosterwxTaskSchedule> taskStartIds = new ArrayList<>();
+            // 任务结束时间不一致ids
+            List<FosterwxTaskSchedule> taskEndIds = new ArrayList<>();
+            // 任务模板不一致ids
+            List<FosterwxTaskSchedule> taskTemplateIds = new ArrayList<>();
+
+            // 循环所属分组
+            for (int mobileCode = group * 33 + 1; mobileCode < (group + 1) * 33 + 1; mobileCode++) {
+                // 待检查的账号任务详情
+                FosterwxMobileTaskTimeList fosterwxMobileTaskTimeList = editHandle.getRaw().getTaskTimeLists().get(editHandle.getRaw().getTaskTimeLists().size() - 1);
+                // 唯一码
+                String mobileUnionCode = stationName + String.format("%03d", mobileCode);
+                FosterwxMobile checkVO = fosterwxMobileService.getOne(new LambdaQueryWrapper<FosterwxMobile>().eq(FosterwxMobile::getMobileUnioCode, mobileUnionCode).last("limit 1"));
+                // 账号存在的情况下 才去判断任务详情是否一致
+                if (checkVO != null && !Objects.equals(checkVO.getMobileCode(), editHandle.getRaw().getMobileCode())) {
+                    FosterwxMobileTaskTimeList checkTaskTime = fosterwxMobileTaskTimeListService.getOne(new LambdaQueryWrapper<FosterwxMobileTaskTimeList>().eq(FosterwxMobileTaskTimeList::getMobileUnioCode, checkVO.getMobileUnioCode()).last("limit 1"));
+                    if (null == checkTaskTime) {
+                        // 对照组的任务详情没有时 直接报错
+                        taskStartIds.add(new FosterwxTaskSchedule() {{
+                            setMobileCode(checkVO.getMobileCode());
+                        }});
+                        taskEndIds.add(new FosterwxTaskSchedule() {{
+                            setMobileCode(checkVO.getMobileCode());
+                        }});
+                        taskTemplateIds.add(new FosterwxTaskSchedule() {{
+                            setMobileCode(checkVO.getMobileCode());
+                        }});
+                    } else {
+                        // 如果开始时间不一致
+                        if (!Objects.equals(checkTaskTime.getTaskStartAt(), fosterwxMobileTaskTimeList.getTaskStartAt())) {
+                            taskStartIds.add(new FosterwxTaskSchedule() {{
+                                setMobileCode(checkVO.getMobileCode());
+                            }});
+                        }
+                        // 如果结束时间不一致
+                        if (!Objects.equals(checkTaskTime.getTaskEndAt(), fosterwxMobileTaskTimeList.getTaskEndAt())) {
+                            taskEndIds.add(new FosterwxTaskSchedule() {{
+                                setMobileCode(checkVO.getMobileCode());
+                            }});
+                        }
+                        // 如果任务模板不一致
+                        if (!Objects.equals(checkTaskTime.getTemplateId(), fosterwxMobileTaskTimeList.getTemplateId())) {
+                            taskTemplateIds.add(new FosterwxTaskSchedule() {{
+                                setMobileCode(checkVO.getMobileCode());
+                            }});
+                        }
+                    }
+                }
+            }
+
+            // 检查结束 开始拼接前台报错信息
+            String taskStartMobile = fosterwxTaskScheduleService.getMobileCodeCombine(taskStartIds);
+            String taskEndMobile = fosterwxTaskScheduleService.getMobileCodeCombine(taskEndIds);
+            String templateMobile = fosterwxTaskScheduleService.getMobileCodeCombine(taskTemplateIds);
+
+            StringBuffer warningInfo = new StringBuffer();
+            if (!taskStartIds.isEmpty() || !taskEndIds.isEmpty() || !taskTemplateIds.isEmpty()) {
+                if (Objects.equals(taskStartMobile, taskEndMobile) && Objects.equals(taskStartMobile, templateMobile)) {
+                    // 全部相等的情况下一起报错
+                    warningInfo.append("编号").append(editHandle.getRaw().getMobileCode()).append("账号,与编号").append(taskStartMobile).append("账号,").append("任务开始时间不一致,任务结束时间不一致,任务模板不一致,是否确认保存");
+                    return AjaxResult.success(AjaxResult.MSG_TAG, warningInfo);
+                } else if (Objects.equals(taskStartMobile, taskEndMobile) && !taskStartMobile.isEmpty()) {
+                    // 开始做任务时间还有 结束做任务时间不一致的id一样的情况下
+                    warningInfo.append("编号").append(editHandle.getRaw().getMobileCode()).append("账号,与编号").append(taskStartMobile).append("账号,").append("任务开始时间不一致,任务结束时间不一致,是否确认保存").append("<br>");
+                    if (null != templateMobile) {
+                        warningInfo.append("编号").append(editHandle.getRaw().getMobileCode()).append("账号,与编号").append(templateMobile).append("账号,").append("任务模板不一致,是否确认保存");
+                    }
+                } else if (Objects.equals(taskStartMobile, templateMobile) && !taskStartMobile.isEmpty()) {
+                    // 开始做任务时间还有 模板任务不一致的id一样的情况下
+                    warningInfo.append("编号").append(editHandle.getRaw().getMobileCode()).append("账号,与编号").append(taskStartMobile).append("账号,").append("任务开始时间不一致,任务模板不一致,是否确认保存").append("<br>");
+                    if (null != taskEndMobile) {
+                        warningInfo.append("编号").append(editHandle.getRaw().getMobileCode()).append("账号,与编号").append(taskEndMobile).append("账号,").append("任务结束时间不一致,是否确认保存");
+                    }
+                } else if (Objects.equals(taskEndMobile, templateMobile) && !taskEndMobile.isEmpty()) {
+                    // 开始做任务时间还有 模板任务不一致的id一样的情况下
+                    warningInfo.append("编号").append(editHandle.getRaw().getMobileCode()).append("账号,与编号").append(taskEndMobile).append("账号,").append("任务结束时间不一致,任务模板不一致,是否确认保存").append("<br>");
+                    if (null != taskStartMobile) {
+                        warningInfo.append("编号").append(editHandle.getRaw().getMobileCode()).append("账号,与编号").append(taskStartMobile).append("账号,").append("任务开始时间不一致,是否确认保存");
+                    }
+                } else {
+                    if (!taskStartMobile.isEmpty()) {
+                        warningInfo.append("编号").append(editHandle.getRaw().getMobileCode()).append("账号,与编号").append(taskStartMobile).append("账号,").append("任务开始时间不一致,是否确认保存").append("<br>");
+                    }
+                    if (!taskEndMobile.isEmpty()) {
+                        warningInfo.append("编号").append(editHandle.getRaw().getMobileCode()).append("账号,与编号").append(taskEndMobile).append("账号,").append("任务结束时间不一致,是否确认保存").append("<br>");
+                    }
+                    if (!templateMobile.isEmpty()) {
+                        warningInfo.append("编号").append(editHandle.getRaw().getMobileCode()).append("账号,与编号").append(templateMobile).append("账号,").append("任务模板不一致,是否确认保存");
+                    }
+                }
+                return AjaxResult.success(AjaxResult.MSG_TAG, warningInfo);
+            } else {
+                return AjaxResult.success(AjaxResult.MSG_TAG, "");
+            }
+        } else {
+            // 多个账号只要进行提醒
+            List<FosterwxTaskSchedule> fosterwxTaskScheduleList = new ArrayList<>();
+            idList.forEach(id -> {
+                FosterwxMobile fosterwxMobile = fosterwxMobileService.getById(id);
+                fosterwxTaskScheduleList.add(new FosterwxTaskSchedule() {{
+                    setMobileCode(fosterwxMobile.getMobileCode());
+                }});
+            });
+
+            String mobileCode = fosterwxTaskScheduleService.getMobileCodeCombine(fosterwxTaskScheduleList);
+            return AjaxResult.success(AjaxResult.MSG_TAG, "本地编辑账号编号为" + mobileCode + ",是否确认保存");
+        }
+    }
+
     /**
      * 检查任务时间状态是否一致
      * @param editHandle

+ 2 - 0
src/main/java/com/mokamrp/privates/entity/pangu/GetForsterwxMobileHandle.java

@@ -24,6 +24,8 @@ public class GetForsterwxMobileHandle {
     private String createDate;
     private String updateDate;
     private List<Integer> Ids;
+    private String prop;
+    private String order;
 
     public Integer getPage() {
         return page;

+ 36 - 29
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxMobileMapper.xml

@@ -4,36 +4,36 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile">
-        <id column="id" property="id" />
-        <result column="station_id" property="stationId" />
-        <result column="mobile_code" property="mobileCode" />
+        <id column="id" property="id"/>
+        <result column="station_id" property="stationId"/>
+        <result column="mobile_code" property="mobileCode"/>
         <result column="mobile_unio_code" property="mobileUnioCode"/>
-        <result column="mobile_no" property="mobileNo" />
-        <result column="mobile_operator" property="mobileOperator" />
-        <result column="mobile_create_at" property="mobileCreateAt" />
-        <result column="mobile_advance_pay_amt" property="mobileAdvancePayAmt" />
-        <result column="mobile_combo" property="mobileCombo" />
-        <result column="mobile_combo_flow" property="mobileComboFlow" />
-        <result column="mobile_real_name" property="mobileRealName" />
-        <result column="mobile_identity_card_no" property="mobileIdentityCardNo" />
-        <result column="status" property="status" />
-        <result column="wx_status" property="wxStatus" />
-        <result column="wx_password" property="wxPassword" />
-        <result column="wx_real_name" property="wxRealName" />
-        <result column="wx_identity_card_no" property="wxIdentityCardNo" />
-        <result column="wx_register_at" property="wxRegisterAt" />
+        <result column="mobile_no" property="mobileNo"/>
+        <result column="mobile_operator" property="mobileOperator"/>
+        <result column="mobile_create_at" property="mobileCreateAt"/>
+        <result column="mobile_advance_pay_amt" property="mobileAdvancePayAmt"/>
+        <result column="mobile_combo" property="mobileCombo"/>
+        <result column="mobile_combo_flow" property="mobileComboFlow"/>
+        <result column="mobile_real_name" property="mobileRealName"/>
+        <result column="mobile_identity_card_no" property="mobileIdentityCardNo"/>
+        <result column="status" property="status"/>
+        <result column="wx_status" property="wxStatus"/>
+        <result column="wx_password" property="wxPassword"/>
+        <result column="wx_real_name" property="wxRealName"/>
+        <result column="wx_identity_card_no" property="wxIdentityCardNo"/>
+        <result column="wx_register_at" property="wxRegisterAt"/>
         <result column="wx_appid" property="wxAppid"/>
-        <result column="bank_card_no" property="bankCardNo" />
-        <result column="bank_card_mobile_no" property="bankCardMobileNo" />
-        <result column="work_wx_corp_id" property="workWxCorpId" />
-        <result column="work_wx_corp" property="workWxCorp" />
-        <result column="work_wx_register_at" property="workWxRegisterAt" />
-        <result column="work_wx_status" property="workWxStatus" />
-        <result column="in_pool" property="inPool" />
-        <result column="task_start_at" property="taskStartAt" />
+        <result column="bank_card_no" property="bankCardNo"/>
+        <result column="bank_card_mobile_no" property="bankCardMobileNo"/>
+        <result column="work_wx_corp_id" property="workWxCorpId"/>
+        <result column="work_wx_corp" property="workWxCorp"/>
+        <result column="work_wx_register_at" property="workWxRegisterAt"/>
+        <result column="work_wx_status" property="workWxStatus"/>
+        <result column="in_pool" property="inPool"/>
+        <result column="task_start_at" property="taskStartAt"/>
         <result column="code_url" property="codeUrl"/>
-        <result column="create_at" property="createAt" />
-        <result column="update_at" property="updateAt" />
+        <result column="create_at" property="createAt"/>
+        <result column="update_at" property="updateAt"/>
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -61,10 +61,17 @@
                     #{item}
                 </foreach>
             </if>
-<!--            <if test="param.wxFriendName != null">and B.wx_name = </if>-->
+            <!--            <if test="param.wxFriendName != null">and B.wx_name = </if>-->
         </where>
 
-        order by id desc
+        order by
+        <if test="param.prop == null">id desc</if>
+        <if test="param.prop != null">
+            <if test="param.prop == 'mobileCode'">mobile_code</if>
+            <if test="param.order == 'ascending'">asc</if>
+            <if test="param.order == 'descending'">desc</if>
+        </if>
+
     </select>
 
     <select id="getListByStationId" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile">

+ 12 - 0
src/main/java/com/mokamrp/privates/service/pangu/FosterwxTaskScheduleService.java

@@ -40,9 +40,21 @@ public interface FosterwxTaskScheduleService extends IService<FosterwxTaskSchedu
      */
     public AjaxResult deleteByDate(FosterwxMobile fosterwxMobile, User authUser);
 
+    /**
+     * 获取数据拼接手机号
+     * @param handle
+     * @return
+     */
     public FosterwxTaskSchedule getInfo(FosterwxTaskScheduleHandle handle);
 
     /**
+     * 拼接手机号方法
+     * @param fosterwxTaskScheduleList
+     * @return
+     */
+    public String getMobileCodeCombine(List<FosterwxTaskSchedule> fosterwxTaskScheduleList);
+
+    /**
      * 根据站点 手机号获取账号任务详情
      * @param stationId
      * @param mobileCode

+ 29 - 6
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxTaskScheduleServiceImpl.java

@@ -203,6 +203,11 @@ public class FosterwxTaskScheduleServiceImpl extends ServiceImpl<FosterwxTaskSch
         return null;
     }
 
+    /**
+     * 拼接手机号
+     * @param handle
+     * @return
+     */
     @Override
     public FosterwxTaskSchedule getInfo(FosterwxTaskScheduleHandle handle) {
         LambdaQueryWrapper<FosterwxTaskSchedule> fosterwxTaskScheduleLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -214,7 +219,30 @@ public class FosterwxTaskScheduleServiceImpl extends ServiceImpl<FosterwxTaskSch
 
         List<FosterwxTaskSchedule> fosterwxTaskScheduleList = fosterwxTaskScheduleMapper.selectList(fosterwxTaskScheduleLambdaQueryWrapper);
 
+        String mobileCode = getMobileCodeCombine(fosterwxTaskScheduleList);
+
+        if (fosterwxTaskScheduleList.isEmpty()) return null;
+
+        FosterwxTaskSchedule fosterwxTaskSchedule = fosterwxTaskScheduleList.get(0);
+        fosterwxTaskSchedule.setMobileCount(fosterwxTaskScheduleList.size());
+        fosterwxTaskSchedule.setComment(mobileCode);
+        return fosterwxTaskSchedule;
+    }
+
+    /**
+     * 拼接手机号
+     * @param fosterwxTaskScheduleList
+     * @return
+     */
+    @Override
+    public String getMobileCodeCombine(List<FosterwxTaskSchedule> fosterwxTaskScheduleList) {
         String mobileCode = "";
+        // 提前对list的手机编号进行排序
+        fosterwxTaskScheduleList.sort((o1, o2) -> {
+            Integer i1 = Integer.parseInt(o1.getMobileCode());
+            Integer i2 = Integer.parseInt(o2.getMobileCode());
+            return i1.compareTo(i2);
+        });
         for (FosterwxTaskSchedule fosterwxTaskSchedule : fosterwxTaskScheduleList) {
             String code = fosterwxTaskSchedule.getMobileCode();
             // 第一条数据
@@ -249,12 +277,7 @@ public class FosterwxTaskScheduleServiceImpl extends ServiceImpl<FosterwxTaskSch
             }
         }
 
-        if (fosterwxTaskScheduleList.isEmpty()) return null;
-
-        FosterwxTaskSchedule fosterwxTaskSchedule = fosterwxTaskScheduleList.get(0);
-        fosterwxTaskSchedule.setMobileCount(fosterwxTaskScheduleList.size());
-        fosterwxTaskSchedule.setComment(mobileCode.endsWith("、") ? mobileCode.substring(0, mobileCode.length() - 1) : mobileCode);
-        return fosterwxTaskSchedule;
+        return mobileCode.endsWith("、") ? mobileCode.substring(0, mobileCode.length() - 1) : mobileCode;
     }
 
     @Override

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

@@ -1,6 +1,7 @@
 package com.mokamrp;
 
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.ListUtils;
 import org.junit.Test;
 
@@ -12,6 +13,7 @@ import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 
+@Slf4j
 public class Tests {
 
     private static String formatDouble(double d) {
@@ -77,6 +79,16 @@ public class Tests {
         Integer int1 = 1;
 
         System.out.println(int1 == 1);
+    }
 
+    @Test
+    public void test7() {
+        for (int i = 1; i <= 1000; i++) {
+            int group = i / 33;
+            if (0 == i % 33) {
+                group -= 1;
+            }
+            log.info("{}:{}", i, group);
+        }
     }
 }