别傲 5 роки тому
батько
коміт
c1d817f53f

+ 0 - 13
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/dao/mapper/ProjectMapper.java

@@ -1,13 +0,0 @@
-package cn.com.ty.lift.batch.applet.dao.mapper;
-
-import cn.com.ty.lift.batch.applet.dao.model.Project;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @author bieao
- * @date 2020/2/9
- * @description 项目数据层
- */
-public interface ProjectMapper extends BaseMapper<Project> {
-
-}

+ 0 - 157
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/dao/model/Project.java

@@ -1,157 +0,0 @@
-package cn.com.ty.lift.batch.applet.dao.model;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import lombok.Data;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-/**
- * 实体类 - 表:project
- * @author bieao
- * @since 2019-11-28 15:52:37
- */
-@Data
-public class Project {
-
-    /**
-     * 项目ID
-     */
-    @TableId(value = "id",type = IdType.ID_WORKER)
-    private Long id;
-
-    /**
-     * 维保公司ID
-     */
-    private Long mtCompanyId;
-
-    /**
-     * 甲方公司ID
-     */
-    private Long ppCompanyId;
-
-    /**
-     * 甲方联系人ID
-     */
-    private Long ppContactId;
-
-    /**
-     * 项目编号
-     */
-    private String projectCode;
-
-    /**
-     * 项目名称
-     */
-    private String projectName;
-
-    /**
-     * 省编码
-     */
-    private String provinceCode;
-
-    /**
-     * 省
-     */
-    private String province;
-
-    /**
-     * 市编码
-     */
-    private String cityCode;
-
-    /**
-     * 市
-     */
-    private String city;
-
-    /**
-     * 区编码
-     */
-    private String districtCode;
-
-    /**
-     * 区
-     */
-    private String district;
-
-    /**
-     * 项目地址
-     */
-    private String address;
-
-    /**
-     * 台量
-     */
-    private Integer num;
-
-    /**
-     * 实际台量
-     */
-    private Integer actualNum;
-
-    /**
-     * 用途 1.住宅2.办公楼3.医院4.商场5.工厂6.酒店7.交通枢纽8.学校9.剧场10.其他
-     */
-    private String projectUsage;
-
-    /**
-     * 开始时间
-     */
-    private LocalDate startDate;
-
-    /**
-     * 结束时间
-     */
-    private LocalDate endDate;
-
-    /**
-     * 状态  0:删除 1:尚未开始(项目开始日期晚于系统日期);2:服务中(系统日期在项目开始和结束日期之间,包括相等) 3:停止服务 4.逾期
-     */
-    private String projectStatus;
-
-    /**
-     * 备注
-     */
-    private String remarks;
-
-    /**
-     * 是否锁定 0否 1是
-     */
-    private Integer locked;
-
-    /**
-     * 评价方式 0是默认 24  1天后自动评价 48  48小时候默认好评
-     */
-    private Integer evaluate;
-
-    /**
-     * 停止服务描述
-     */
-    private String endRemarks;
-
-    /**
-     * 维保班长编辑电梯负责人权限  0否1是
-     */
-    private Integer ifMonitor;
-
-    /**
-     * 维保工查看所有电梯权限 0否 1是
-     */
-    private Integer allProject;
-
-    /**
-     * 区域ID
-     */
-    private Long regionId;
-    /**
-     * 是否保存
-     */
-    private Integer save;
-
-    /**
-     * 项目停止时间
-     */
-    private LocalDateTime stopTime;
-}

+ 0 - 46
lift-batch-service/src/main/java/cn/com/ty/lift/batch/applet/service/ProjectService.java

@@ -1,46 +0,0 @@
-package cn.com.ty.lift.batch.applet.service;
-
-import cn.com.ty.lift.batch.applet.dao.mapper.ProjectMapper;
-import cn.com.ty.lift.batch.applet.dao.model.Project;
-import cn.com.ty.lift.common.constants.CommonEnum;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.time.LocalDate;
-import java.util.List;
-
-/**
- * @author bieao
- * @date 2020/2/10
- * @description 项目业务层
- */
-@Service
-@Slf4j
-public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
-
-    /**
-     * @return 项目列表
-     * @description 查询项目列表
-     * @date 2020/2/9 4:02 下午
-     */
-    public List<Project> queryProjectList() {
-        LambdaQueryWrapper<Project> lambdaQueryWrapper = new QueryWrapper<Project>().lambda();
-        lambdaQueryWrapper.lt(Project::getEndDate, LocalDate.now());
-        lambdaQueryWrapper.ne(Project::getProjectStatus, CommonEnum.ProjectStatus.OVERDUE.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()));
-        updateBatchById(list, list.size());
-        log.info("批量更新项目状态" + list.size() + "条");
-    }
-}

+ 0 - 39
lift-batch-service/src/main/java/cn/com/ty/lift/batch/quartz/ProjectStatusQuartzJob.java

@@ -1,39 +0,0 @@
-package cn.com.ty.lift.batch.quartz;
-
-import cn.com.ty.lift.batch.applet.dao.model.Project;
-import cn.com.ty.lift.batch.applet.service.ProjectService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-/**
- * @author bieao
- * @date 2020/2/9
- * @description 批量更新项目状态
- */
-@Slf4j
-@Component
-@Configuration
-@EnableScheduling
-public class ProjectStatusQuartzJob {
-
-    @Resource
-    private ProjectService projectService;
-
-    /**
-     * @description 批量更新项目状态
-     * @date 2020/2/10 11:26 上午
-     */
-    @Scheduled(cron = "0 0 0 * * ?")
-    public void modifyProjectStatus() {
-        log.info("开始执行批量更新项目状态");
-        List<Project> projects = projectService.queryProjectList();
-        projectService.updateBatch(projects);
-        log.info("批量更新项目状态执行成功");
-    }
-}

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

@@ -4,6 +4,8 @@ import cn.com.ty.lift.business.maintenance.dao.entity.MaintenancePlan;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.MaintenanceTask;
 import cn.com.ty.lift.business.maintenance.dao.mapper.MaintenancePlanMapper;
 import cn.com.ty.lift.business.maintenance.service.MaintenancePlanService;
+import cn.com.ty.lift.business.project.dao.entity.Project;
+import cn.com.ty.lift.business.project.service.ProjectService;
 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;
@@ -41,6 +43,7 @@ public class BusinessJob {
     private JmsMessagingTemplate   jmsMessagingTemplate;
     private PushUserService        pushUserService;
     private MaintenancePlanMapper maintenancePlanMapper;
+    private ProjectService projectService;
 
     /**
      * 更新维保计划过期状态job:每天1-3点,每10分钟执行一次
@@ -70,6 +73,7 @@ public class BusinessJob {
      */
     @Scheduled(cron = "0 0 7 * * ?")
     public void sendMaintenanceTask() {
+        log.info("开始执行维保任务提醒推送");
         //查询所有维保工当天的维保任务
         List<MaintenanceTask> maintenanceTasks = maintenancePlanMapper.queryMaintenanceTask();
         for (MaintenanceTask task : maintenanceTasks) {
@@ -78,6 +82,22 @@ public class BusinessJob {
             PushMessage.maintainHasTaskDaily(task.getNum())
                     .sendTokenOnPlatform(jmsMessagingTemplate, userInfo);
         }
+        log.info("维保任务提醒推送执行完成");
+    }
+
+
+    /**
+     * 批量更新项目状态
+     */
+    @Scheduled(cron = "0 */5 * * * ?")
+    public void sendMessageModifyStatus() {
+        log.info("开始执行批量更新项目状态");
+        List<Project> projects = projectService.queryProjectList();
+        projectService.updateBatch(projects);
+        log.info("批量更新项目状态执行成功");
+        for (Project entry : projects) {
+            projectService.sendOverdueMessage(entry.getId(), entry.getMtCompanyId());
+        }
     }
 
     /**

+ 56 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectService.java

@@ -15,6 +15,7 @@ import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectUserResp
 import cn.com.ty.lift.business.project.dao.mapper.ProjectMapper;
 import cn.com.ty.lift.business.push.service.PushUserService;
 import cn.com.ty.lift.common.base.ExportRequest;
+import cn.com.ty.lift.common.constants.CommonEnum;
 import cn.com.ty.lift.common.constants.CommonEnum.ProjectStatus;
 import cn.com.ty.lift.common.export.ExportUtils;
 import cn.com.ty.lift.common.model.PushMessage;
@@ -91,6 +92,61 @@ public class ProjectService extends ServiceImpl<ProjectMapper,Project> {
         put("endDate", "结束时间");
     }};
 
+    /**
+     * @return 项目列表
+     * @description 查询项目列表
+     * @date 2020/2/9 4:02 下午
+     */
+    public List<Project> queryProjectList() {
+        LambdaQueryWrapper<Project> lambdaQueryWrapper = new QueryWrapper<Project>().lambda();
+        lambdaQueryWrapper.lt(Project::getEndDate, LocalDate.now());
+        lambdaQueryWrapper.eq(Project::getProjectStatus, ProjectStatus.IN_SERVICE.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()));
+        updateBatchById(list, list.size());
+        log.info("批量更新项目状态" + list.size() + "条");
+    }
+
+
+    /**
+     * @param projectId   项目ID
+     * @param mtCompanyId 公司ID
+     * @return
+     * @description 项目逾期消息推送
+     * @date 2020/5/5 9:26 下午
+     */
+    public void sendOverdueMessage(Long projectId, Long mtCompanyId) {
+        //消息推送
+        List<Long> userIds = new ArrayList<>();
+        Region region = pushUserService.findRegionByProject(projectId, mtCompanyId);
+        if (Objects.nonNull(region)) {
+            userIds.addAll(region.members());
+        }
+        List<PushUserInfo> director = pushUserService.listEnterpriseAdmin(mtCompanyId);
+        List<PushUserInfo> pushUserInfos = new ArrayList<>(director);
+        if (!userIds.isEmpty()) {
+            List<PushUserInfo> userInfos = pushUserService.listByUserIds(mtCompanyId, userIds);
+            pushUserInfos.addAll(userInfos);
+        }
+        if (!pushUserInfos.isEmpty()) {
+            ProjectDetailResponse detail = projectAppService.detail(projectId);
+            PushMessage pushMessage = PushMessage.workProjectOverdue(detail.getAreaName(), detail.getProjectName());
+            pushMessage.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+            List<Long> sendToUserIdList = pushUserInfos.stream().map(PushUserInfo::getUserId).collect(Collectors.toList());
+            //推送pc端
+            SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, sendToUserIdList, pushMessage.getContent());
+        }
+    }
+
+
     /**
      * @param request 项目列表查询条件
      * @return RestResponse 结果集