|
|
@@ -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
|