Pārlūkot izejas kodu

Merge branch 'huangyuan-user' of lift-manager/lift-server into develop

huangyuan 5 gadi atpakaļ
vecāks
revīzija
74e2842868

+ 37 - 4
lift-business-service/src/main/java/cn/com/ty/lift/business/emergency/controller/EmergencyRepairController.java

@@ -13,11 +13,14 @@ import cn.com.ty.lift.business.library.dao.entity.PlatformCompanyLiftRelevance;
 import cn.com.ty.lift.business.library.service.PlatformCompanyLiftRelevanceService;
 import cn.com.ty.lift.business.project.dao.entity.Region;
 import cn.com.ty.lift.business.push.service.PushUserService;
+import cn.com.ty.lift.common.constants.ApiConstants;
 import cn.com.ty.lift.common.constants.CommonEnum;
+import cn.com.ty.lift.common.constants.WebSocketConstants;
 import cn.com.ty.lift.common.model.CountPage;
 import cn.com.ty.lift.common.model.PushMessage;
 import cn.com.ty.lift.common.model.PushUserInfo;
 import cn.com.ty.lift.common.utils.DateUtils;
+import cn.com.ty.lift.common.utils.SendMessageUtil;
 import cn.com.ty.lift.common.utils.ValuePool;
 import cn.com.ty.lift.common.utils.WordUtil;
 import cn.com.ty.lift.common.verify.Val;
@@ -198,7 +201,19 @@ public class EmergencyRepairController {
             }
             if(!pushUserInfos.isEmpty()){
                 RepairResponse info = emergencyRepairService.infoById(id);
-                PushMessage.emergencyAssign(info.getAreaName(), info.getProjectName(), info.getDevicePosition(), info.getRegistrationCode(), info.getCallerDate(), info.getIsTrapped(), info.getCallerFaultDescription(), info.getWorkerName()).sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                PushMessage pushMessage = PushMessage.emergencyAssign(info.getAreaName(), info.getProjectName(), info.getDevicePosition(),
+                        info.getRegistrationCode(), info.getCallerDate(), info.getIsTrapped(),
+                        info.getCallerFaultDescription(), info.getWorkerName());
+                if(ApiConstants.ACCESS_TYPE_PUBLIC == entity.getMobileType()) {
+                    pushMessage = PushMessage.emergencyAssignByProperty(info.getAreaName(), info.getProjectName(), info.getDevicePosition(),
+                            info.getRegistrationCode(), info.getCallerDate(), info.getIsTrapped(),
+                            info.getCallerFaultDescription(), info.getWorkerName());
+                    //物业端发起的急修要将消息推送到pc端
+                    List<Long> pushUserIds = pushUserInfos.stream().map(PushUserInfo::getUserId).collect(Collectors.toList());
+                    SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, pushUserIds, pushMessage.getContent(),
+                            WebSocketConstants.MessageType.EMERGENCY_MSG);
+                }
+                pushMessage.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
             }
         }
         return RestResponse.success(result);
@@ -408,7 +423,13 @@ public class EmergencyRepairController {
             }
             if(!pushUserInfos.isEmpty()){
                 RepairResponse info = emergencyRepairService.infoById(id);
-                PushMessage.emergencyTaking(info.getAreaName(), info.getProjectName(), info.getDevicePosition(), info.getRegistrationCode(), info.getCallerDate()).sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                PushMessage pushMessage = PushMessage.emergencyTaking(info.getAreaName(), info.getProjectName(),
+                        info.getDevicePosition(), info.getRegistrationCode(), info.getCallerDate());
+                pushMessage.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                //推送消息到pc端
+                List<Long> pushUserIds = pushUserInfos.stream().map(PushUserInfo::getUserId).collect(Collectors.toList());
+                SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, pushUserIds, pushMessage.getContent(),
+                        WebSocketConstants.MessageType.EMERGENCY_MSG);
             }
         }
         return result;
@@ -452,7 +473,13 @@ public class EmergencyRepairController {
             }
             if(!pushUserInfos.isEmpty()){
                 RepairResponse info = emergencyRepairService.infoById(id);
-                PushMessage.emergencyArrive(info.getAreaName(), info.getProjectName(), info.getDevicePosition(), info.getRegistrationCode(), info.getCallerDate(), info.getArriveTime()).sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                PushMessage pushMessage = PushMessage.emergencyArrive(info.getAreaName(), info.getProjectName(),
+                        info.getDevicePosition(), info.getRegistrationCode(), info.getCallerDate(), info.getArriveTime());
+                pushMessage.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                //推送消息到pc端
+                List<Long> pushUserIds = pushUserInfos.stream().map(PushUserInfo::getUserId).collect(Collectors.toList());
+                SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, pushUserIds, pushMessage.getContent(),
+                        WebSocketConstants.MessageType.EMERGENCY_MSG);
             }
         }
         return RestResponse.success(result);
@@ -704,7 +731,13 @@ public class EmergencyRepairController {
             }
             if(!pushUserInfos.isEmpty()){
                 RepairResponse info = emergencyRepairService.infoById(id);
-                PushMessage.emergencyOrder(info.getAreaName(), info.getProjectName(), info.getDevicePosition(), info.getRegistrationCode(), info.getCallerDate(), info.getRecoveryDate()).sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                PushMessage pushMessage = PushMessage.emergencyOrder(info.getAreaName(), info.getProjectName(),
+                        info.getDevicePosition(), info.getRegistrationCode(), info.getCallerDate(), info.getRecoveryDate());
+                pushMessage.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                //推送消息到pc端
+                List<Long> pushUserIds = pushUserInfos.stream().map(PushUserInfo::getUserId).collect(Collectors.toList());
+                SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, pushUserIds, pushMessage.getContent(),
+                        WebSocketConstants.MessageType.EMERGENCY_MSG);
             }
         }
         return result;

+ 5 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/emergency/entity/EmergencyRepair.java

@@ -292,4 +292,9 @@ public class EmergencyRepair extends BaseEntity {
      * 是否已经评价 0:未评价,1:已评价
      */
     private Integer hasEvaluate;
+
+    /**
+     * 急修发起的端
+     */
+    private Integer mobileType;
 }

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

@@ -10,8 +10,10 @@ 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.WebSocketConstants;
 import cn.com.ty.lift.common.model.PushMessage;
 import cn.com.ty.lift.common.model.PushUserInfo;
+import cn.com.ty.lift.common.utils.SendMessageUtil;
 import cn.hutool.core.collection.IterUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -26,6 +28,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 定时任务
@@ -40,8 +43,8 @@ import java.util.Objects;
 public class BusinessJob {
 
     private MaintenancePlanService maintenancePlanService;
-    private JmsMessagingTemplate   jmsMessagingTemplate;
-    private PushUserService        pushUserService;
+    private JmsMessagingTemplate jmsMessagingTemplate;
+    private PushUserService pushUserService;
     private MaintenancePlanMapper maintenancePlanMapper;
     private ProjectService projectService;
 
@@ -116,21 +119,33 @@ public class BusinessJob {
             IPage<InspectionTips> tips = pushUserService.pageMtCompanyByAnnualInspection(new Page<>(pageNum, 100), days);
             pages = tips.getPages();
             List<InspectionTips> records = tips.getRecords();
-            if(records.isEmpty()){
+            if (records.isEmpty()) {
                 continue;
             }
             if (days == 45) {
                 for (InspectionTips record : records) {
                     List<PushUserInfo> pushUserInfos = pushUserService.listByUserIds(record.getMtCompanyId(), record.members());
                     if (IterUtil.isNotEmpty(pushUserInfos)) {
-                        PushMessage.inspectionAdvance15daysNotice(record.getProjectName(), record.getDevicePosition(), record.getRegistrationCode()).sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                        PushMessage pushMessage = PushMessage.inspectionAdvance45daysNotice(record.getProjectName(),
+                                record.getDevicePosition(), record.getRegistrationCode());
+                        pushMessage.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                        //推送消息到pc端
+                        List<Long> userIds = pushUserInfos.stream().map(PushUserInfo::getUserId).collect(Collectors.toList());
+                        SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, userIds, pushMessage.getContent(),
+                                WebSocketConstants.MessageType.INSPECTION_MSG);
                     }
                 }
             } else {
                 for (InspectionTips record : records) {
                     List<PushUserInfo> pushUserInfos = pushUserService.listByUserIds(record.getMtCompanyId(), record.members());
                     if (IterUtil.isNotEmpty(pushUserInfos)) {
-                        PushMessage.inspectionAdvance15daysNotice(record.getProjectName(), record.getDevicePosition(), record.getRegistrationCode()).sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                        PushMessage pushMessage = PushMessage.inspectionAdvance15daysNotice(record.getProjectName(),
+                                record.getDevicePosition(), record.getRegistrationCode());
+                        pushMessage.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+                        //推送消息到pc端
+                        List<Long> userIds = pushUserInfos.stream().map(PushUserInfo::getUserId).collect(Collectors.toList());
+                        SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, userIds, pushMessage.getContent(),
+                                WebSocketConstants.MessageType.INSPECTION_MSG);
                     }
                 }
             }
@@ -151,7 +166,7 @@ public class BusinessJob {
     public void taskTipsForRegion() {
         log.trace("Starting task report notice job...");
         List<RepairTips> repairTips = pushUserService.listMtCompanyByEmergencyRepairForRegion();
-        if(repairTips.isEmpty()){
+        if (repairTips.isEmpty()) {
             return;
         }
 
@@ -167,7 +182,7 @@ public class BusinessJob {
             PushUserInfo director = pushUserService.listByUserId(mtCompanyId, repairTip.getDirectorId());
             int maintain = 0;
             TaskTips current = taskTipsMap.get(mtCompanyId);
-            if(Objects.nonNull(current)){
+            if (Objects.nonNull(current)) {
                 maintain = current.getMaintainTotal();
             }
             PushMessage.managerTaskForRegionChargerDaily(repairTip.getAreaName(), repairTip.getTotal(), repairTip.getFinish(), repairTip.getRepairing(), maintain).sendTokenOnPlatform(jmsMessagingTemplate, director);
@@ -193,7 +208,7 @@ public class BusinessJob {
             List<PushUserInfo> pushUserInfos = pushUserService.listHighDirector(mtCompanyId);
             int maintain = 0;
             TaskTips current = taskTipsMap.get(mtCompanyId);
-            if(Objects.nonNull(current)){
+            if (Objects.nonNull(current)) {
                 maintain = current.getMaintainTotal();
             }
             PushMessage.managerTaskForLeaderDaily(repairTip.getTotal(), repairTip.getFinish(), repairTip.getRepairing(), maintain).sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
@@ -212,7 +227,7 @@ public class BusinessJob {
             if (!records.isEmpty()) {
                 for (TaskTips record : records) {
                     PushUserInfo pushUserInfo = pushUserService.listByUserId(record.getMtCompanyId(), record.getUserId());
-                    if(Objects.nonNull(pushUserInfo)){
+                    if (Objects.nonNull(pushUserInfo)) {
                         PushMessage.managerMaintainDaily(record.getMaintainTotal(), record.getRepairTotal());
                     }
                 }