瀏覽代碼

Merge branch 'develop' of http://132.232.206.88:3000/lift-manager/lift-server into huangyuan-user

黄远 5 年之前
父節點
當前提交
8be97e3ea1

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

@@ -9,13 +9,18 @@ import cn.com.ty.lift.business.maintenance.service.MaintenancePlanService;
 import cn.com.ty.lift.business.project.dao.entity.*;
 import cn.com.ty.lift.business.project.dao.entity.model.ProjectImportModel;
 import cn.com.ty.lift.business.project.dao.entity.model.request.ProjectRequest;
+import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectDetailResponse;
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectResponse;
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectUserResponse;
 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.ProjectStatus;
 import cn.com.ty.lift.common.export.ExportUtils;
+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.verify.Validate;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.core.bean.BeanUtil;
@@ -28,6 +33,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.jms.core.JmsMessagingTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -65,6 +71,12 @@ public class ProjectService extends ServiceImpl<ProjectMapper,Project> {
     private ProjectUserService projectUserService;
     @Resource
     private MaintenancePlanService maintenancePlanService;
+    @Resource
+    private ProjectAppService projectAppService;
+    @Resource
+    private JmsMessagingTemplate jmsMessagingTemplate;
+    @Resource
+    private PushUserService pushUserService;
 
     private Map<String, String> paramMap = new HashMap<String, String>() {{
         put("projectCode", "项目编号");
@@ -216,6 +228,39 @@ public class ProjectService extends ServiceImpl<ProjectMapper,Project> {
         return save(project);
     }
 
+    /**
+     * @param projectId 项目ID
+     * @param mtCompanyId 公司ID
+     * @return
+     * @description 新增项目及项目服务中消息推送
+     * @date 2020/5/5 9:26 下午
+     */
+    public void sendMessage(Long projectId, Long mtCompanyId, String projectStatus) {
+        //消息推送
+        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.workAddProject(detail.getAreaName(), detail.getProjectName(), detail.getNum(), detail.getStartDate(), detail.getAreaDirector());
+            pushMessage.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+            if (ProjectStatus.IN_SERVICE.getCode().equals(projectStatus)) {
+                PushMessage.workStartProject(detail.getAreaName(), detail.getProjectName()).sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+            }
+            List<Long> sendToUserIdList = pushUserInfos.stream().map(PushUserInfo::getUserId).collect(Collectors.toList());
+            //推送pc端
+            SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, sendToUserIdList, pushMessage.getContent());
+        }
+    }
+
     /**
      * @param request 新增项目数据项
      * @return Integer 成功1或失败0
@@ -227,6 +272,8 @@ public class ProjectService extends ServiceImpl<ProjectMapper,Project> {
         Project project = request.getProject();
         boolean ret = saveProject(project);
         if (!ret) return RestResponse.fail(MessageUtils.get("msg.add.fail"));
+        //新增项目消息推送
+        sendMessage(project.getId(), request.getMtCompanyId(), project.getProjectStatus());
         //批量新增项目成员信息
         List<ProjectUser> users = request.getUserList();
         users.forEach(user -> user.setProjectId(project.getId()));