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

增加项目自动扭转服务中批处理,新建项目状态判断修改

别傲 пре 5 година
родитељ
комит
aba848dbcc

+ 21 - 6
lift-business-service/src/main/java/cn/com/ty/lift/business/framework/job/BusinessJob.java

@@ -10,6 +10,7 @@ import cn.com.ty.lift.business.push.entity.InspectionTips;
 import cn.com.ty.lift.business.push.entity.RepairTips;
 import cn.com.ty.lift.business.push.entity.TaskTips;
 import cn.com.ty.lift.business.push.service.PushUserService;
+import cn.com.ty.lift.common.constants.CommonEnum;
 import cn.com.ty.lift.common.constants.WebSocketConstants;
 import cn.com.ty.lift.common.model.PushMessage;
 import cn.com.ty.lift.common.model.PushUserInfo;
@@ -90,19 +91,33 @@ public class BusinessJob {
 
 
     /**
-     * 批量更新项目状态
+     * 批量更新项目状态为逾期,并发送提醒消息
      */
     @Scheduled(cron = "0 0 0 * * ?")
-    public void sendMessageModifyStatus() {
-        log.info("开始执行批量更新项目状态");
-        List<Project> projects = projectService.queryProjectList();
-        projectService.updateBatch(projects);
-        log.info("批量更新项目状态执行成功");
+    public void updateProjectOverdueJob() {
+        log.info("开始执行批量更新项目状态为逾期批处理");
+        List<Project> projects = projectService.queryInServiceProjectList();
+        projectService.updateBatch(projects, CommonEnum.ProjectStatus.OVERDUE.getCode());
+        log.info("批量更新项目状态为逾期批处理执行成功");
         for (Project entry : projects) {
             projectService.sendOverdueMessage(entry.getId(), entry.getMtCompanyId());
         }
     }
 
+    /**
+     * 批量更新项目状态为服务中,并发送提醒消息
+     */
+    @Scheduled(cron = "0 0 1 * * ?")
+    public void updateProjectInServiceJob() {
+        log.info("开始执行批量更新项目状态为服务中批处理");
+        List<Project> projects = projectService.queryNotStartProjectList();
+        projectService.updateBatch(projects, CommonEnum.ProjectStatus.IN_SERVICE.getCode());
+        log.info("批量更新项目状态为服务中批处理执行成功");
+        for (Project entry : projects) {
+            projectService.sendMessage(entry.getId(), entry.getMtCompanyId(), entry.getProjectStatus());
+        }
+    }
+
     /**
      * 年检到期提前45天提醒
      */

+ 22 - 5
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectService.java

@@ -111,23 +111,35 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
 
     /**
      * @return 项目列表
-     * @description 查询项目列表
+     * @description 查询服务中项目列表
      * @date 2020/2/9 4:02 下午
      */
-    public List<Project> queryProjectList() {
+    public List<Project> queryInServiceProjectList() {
         LambdaQueryWrapper<Project> lambdaQueryWrapper = new QueryWrapper<Project>().lambda();
         lambdaQueryWrapper.lt(Project::getEndDate, LocalDate.now());
         lambdaQueryWrapper.eq(Project::getProjectStatus, ProjectStatus.IN_SERVICE.getCode());
         return list(lambdaQueryWrapper);
     }
 
+    /**
+     * @return 项目列表
+     * @description 查询尚未开始项目列表
+     * @date 2020/6/3 22:32 下午
+     */
+    public List<Project> queryNotStartProjectList() {
+        LambdaQueryWrapper<Project> lambdaQueryWrapper = new QueryWrapper<Project>().lambda();
+        lambdaQueryWrapper.eq(Project::getStartDate, LocalDate.now());
+        lambdaQueryWrapper.eq(Project::getProjectStatus, ProjectStatus.NOT_START.getCode());
+        return list(lambdaQueryWrapper);
+    }
+
     /**
      * @param list 项目列表
      * @description 更新项目状态
      * @date 2020/2/10 4:16 下午
      */
-    public void updateBatch(List<Project> list) {
-        list.forEach(project -> project.setProjectStatus(CommonEnum.ProjectStatus.OVERDUE.getCode()));
+    public void updateBatch(List<Project> list, String projectStatus) {
+        list.forEach(project -> project.setProjectStatus(projectStatus));
         updateBatchById(list, list.size());
         log.info("批量更新项目状态" + list.size() + "条");
     }
@@ -313,7 +325,12 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         //按当前日期时间戳自动生成项目编号
         String projectCode = DateUtils.generateCode();
         project.setProjectCode("XM" + projectCode);
-        project.setProjectStatus(project.getStartDate().isAfter(LocalDate.now()) ? "1" : "2");
+        LocalDate now = LocalDate.now();
+        LocalDate startDate = project.getStartDate();
+        LocalDate endDate = project.getEndDate();
+        if (startDate.isEqual(now) || startDate.isBefore(now) && endDate.isAfter(now)) {
+            project.setProjectStatus("2");
+        }
         return save(project);
     }