|
@@ -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()));
|