|
|
@@ -0,0 +1,154 @@
|
|
|
+package com.mokamrp.privates.service.pangu.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.mokamrp.privates.entity.PostBasePageHandle;
|
|
|
+import com.mokamrp.privates.help.AjaxResult;
|
|
|
+import com.mokamrp.privates.mapper.pangu.FosterwxStationMapper;
|
|
|
+import com.mokamrp.privates.mapper.pangu.FosterwxTaskListMapper;
|
|
|
+import com.mokamrp.privates.mapper.pangu.FosterwxTaskScheduleMapper;
|
|
|
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile;
|
|
|
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStation;
|
|
|
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxTaskList;
|
|
|
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxTaskSchedule;
|
|
|
+import com.mokamrp.privates.mapper.pojo.User;
|
|
|
+import com.mokamrp.privates.service.pangu.FosterwxTaskScheduleService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 盘古微信任务排期 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author leon
|
|
|
+ * @since 2021-07-23
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class FosterwxTaskScheduleServiceImpl extends ServiceImpl<FosterwxTaskScheduleMapper, FosterwxTaskSchedule> implements FosterwxTaskScheduleService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public FosterwxTaskScheduleMapper fosterwxTaskScheduleMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private FosterwxStationMapper fosterwxStationMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private FosterwxTaskListMapper fosterwxTaskListMapper;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取数据列表 支持分页
|
|
|
+ * @param handle
|
|
|
+ * @param taskName
|
|
|
+ * @param stationId
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String, Object> getList(PostBasePageHandle handle, String taskName, Integer stationId, String date) {
|
|
|
+ Integer pagesize = handle.getPagesize();
|
|
|
+ Integer page = handle.getPage();
|
|
|
+ Page<FosterwxTaskSchedule> pageObj = new Page<FosterwxTaskSchedule>(page, pagesize);
|
|
|
+ LambdaQueryWrapper<FosterwxTaskSchedule> fosterTaskScheduleLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ // if(null!=taskName&&!taskName.isEmpty()) fosterTaskScheduleLambdaQueryWrapper.eq(FosterTaskSchedule::gettask)
|
|
|
+
|
|
|
+ List<FosterwxTaskSchedule> list = fosterwxTaskScheduleMapper.getList(pageObj);
|
|
|
+ Map<String, Object> resMap = new HashMap<String, Object>();
|
|
|
+ resMap.put("list", list);
|
|
|
+ resMap.put("total", pageObj.getTotal());
|
|
|
+ return resMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据开始任务时间生成排期
|
|
|
+ * @param fosterwxMobile
|
|
|
+ * @param authUser
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public AjaxResult insertByTaskDate(FosterwxMobile fosterwxMobile, User authUser) {
|
|
|
+ // 获取站点信息
|
|
|
+ FosterwxStation fosterwxStation = fosterwxStationMapper.selectById(fosterwxMobile.getStationId());
|
|
|
+
|
|
|
+ if (fosterwxStation == null) return AjaxResult.error(fosterwxMobile.getStationId() + "站点不存在!");
|
|
|
+
|
|
|
+ LocalDate startDate = fosterwxMobile.getTaskStartAt().toLocalDate();
|
|
|
+
|
|
|
+ // 根据站点绑定的任务模板获取模板列表
|
|
|
+ LambdaQueryWrapper<FosterwxTaskList> fosterTaskListLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ fosterTaskListLambdaQueryWrapper.eq(FosterwxTaskList::getTemplateId, fosterwxStation.getTaskTemplateId());
|
|
|
+ List<FosterwxTaskList> fosterwxTaskLists = fosterwxTaskListMapper.selectList(fosterTaskListLambdaQueryWrapper);
|
|
|
+
|
|
|
+ for (FosterwxTaskList fosterwxTaskList : fosterwxTaskLists) {
|
|
|
+ FosterwxTaskSchedule fosterwxTaskSchedule = new FosterwxTaskSchedule();
|
|
|
+ fosterwxTaskSchedule.setStationId(fosterwxStation.getId());
|
|
|
+ fosterwxTaskSchedule.setStationName(fosterwxStation.getStationName());
|
|
|
+ fosterwxTaskSchedule.setMobileCode(fosterwxMobile.getMobileCode());
|
|
|
+ fosterwxTaskSchedule.setTemplateId(fosterwxStation.getTaskTemplateId());
|
|
|
+ fosterwxTaskSchedule.setTaskId(fosterwxTaskList.getId());
|
|
|
+ fosterwxTaskSchedule.setTaskName(fosterwxTaskList.getTaskName());
|
|
|
+ fosterwxTaskSchedule.setTaskStatus(0);
|
|
|
+ fosterwxTaskSchedule.setTaskSendStatus(0);
|
|
|
+ fosterwxTaskSchedule.setSendDate(startDate);
|
|
|
+ fosterwxTaskSchedule.setSendTime(null);
|
|
|
+ fosterwxTaskSchedule.setErrMsg("");
|
|
|
+ fosterwxTaskSchedule.setMark("");
|
|
|
+ fosterwxTaskSchedule.setDelFlg(1);
|
|
|
+ fosterwxTaskSchedule.setCreateUid(authUser.getId());
|
|
|
+ fosterwxTaskSchedule.setUpdateUid(authUser.getId());
|
|
|
+ fosterwxTaskSchedule.setCreateAt(LocalDateTime.now());
|
|
|
+ fosterwxTaskSchedule.setUpdateAt(LocalDateTime.now());
|
|
|
+
|
|
|
+ fosterwxTaskScheduleMapper.insert(fosterwxTaskSchedule);
|
|
|
+
|
|
|
+ startDate = startDate.plusDays(1);
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success("新增账号成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据当天时间删除后续任务
|
|
|
+ * @param fosterwxMobileService
|
|
|
+ * @param authUser
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public AjaxResult deleteByDate(FosterwxMobile fosterwxMobile, User authUser) {
|
|
|
+ LocalDate today = LocalDate.now();
|
|
|
+ LocalDateTime localDateTime = LocalDateTime.now();
|
|
|
+
|
|
|
+ // 获取站点信息
|
|
|
+ FosterwxStation fosterwxStation = fosterwxStationMapper.selectById(fosterwxMobile.getStationId());
|
|
|
+
|
|
|
+ if (fosterwxStation == null) return AjaxResult.error(fosterwxMobile.getStationId() + "站点不存在!");
|
|
|
+
|
|
|
+ // 根据站点id 手机编号 模板id 获取今天之后的任务
|
|
|
+ LambdaQueryWrapper<FosterwxTaskSchedule> fosterTaskScheduleLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ fosterTaskScheduleLambdaQueryWrapper.eq(FosterwxTaskSchedule::getStationId, fosterwxStation.getId());
|
|
|
+ fosterTaskScheduleLambdaQueryWrapper.eq(FosterwxTaskSchedule::getMobileCode, fosterwxMobile.getMobileCode());
|
|
|
+ fosterTaskScheduleLambdaQueryWrapper.eq(FosterwxTaskSchedule::getTemplateId, fosterwxStation.getTaskTemplateId());
|
|
|
+ fosterTaskScheduleLambdaQueryWrapper.ge(FosterwxTaskSchedule::getSendDate, today);
|
|
|
+ fosterTaskScheduleLambdaQueryWrapper.orderByAsc(FosterwxTaskSchedule::getId);
|
|
|
+
|
|
|
+ List<FosterwxTaskSchedule> fosterwxTaskScheduleList = fosterwxTaskScheduleMapper.selectList(fosterTaskScheduleLambdaQueryWrapper);
|
|
|
+
|
|
|
+ for (FosterwxTaskSchedule fosterwxTaskSchedule : fosterwxTaskScheduleList) {
|
|
|
+ // 需要单独判断今天的发送时间是不是已经过去了 没有过去需要删除任务
|
|
|
+ if (fosterwxTaskSchedule.getSendDate().equals(today) && localDateTime.isAfter(fosterwxTaskSchedule.getSendTime()))
|
|
|
+ continue;
|
|
|
+
|
|
|
+ FosterwxTaskSchedule updateVO = new FosterwxTaskSchedule();
|
|
|
+ updateVO.setId(fosterwxTaskSchedule.getId());
|
|
|
+ updateVO.setDelFlg(0);
|
|
|
+ fosterwxTaskScheduleMapper.updateById(updateVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success("修改成功");
|
|
|
+ }
|
|
|
+}
|