承包商审批,通知发给项目账号和【安全环保监察中心】这个角色的人

This commit is contained in:
guoshengxiong 2024-07-29 19:31:16 +08:00
parent eb70d0dd55
commit 1db3d4ef06
4 changed files with 62 additions and 1 deletions

View File

@ -28,6 +28,11 @@ public class Notice implements Serializable {
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "消息通知") @ApiModelProperty(value = "消息通知")
private java.lang.Long id; private java.lang.Long id;
/**
* 类型1考勤提醒2人员报警,3车辆4混凝土监测5卸料平台6配电箱7扬尘,8视频9标养室,10安全检查,11质量检查,12塔吊,13升降机,"
* "14电表,15水表,16访客,17,防疫人员通知18访客通知,19巡检点,20人员的资质证书即将到期,21人员的合同信息即将到期22人员的保险信息即将到期,"
* "23同步人员到海康isc,24同步车辆到海康isc,25同步组织到海康isc 30工作流审批通知31大屏的安全和质量,32大屏的危大33应急处置
*/
@ApiModelProperty(value = "类型1考勤提醒2人员报警,3车辆4混凝土监测5卸料平台6配电箱7扬尘,8视频9标养室,10安全检查,11质量检查,12塔吊,13升降机," + @ApiModelProperty(value = "类型1考勤提醒2人员报警,3车辆4混凝土监测5卸料平台6配电箱7扬尘,8视频9标养室,10安全检查,11质量检查,12塔吊,13升降机," +
"14电表,15水表,16访客,17,防疫人员通知18访客通知,19巡检点,20人员的资质证书即将到期,21人员的合同信息即将到期22人员的保险信息即将到期," + "14电表,15水表,16访客,17,防疫人员通知18访客通知,19巡检点,20人员的资质证书即将到期,21人员的合同信息即将到期22人员的保险信息即将到期," +
"23同步人员到海康isc,24同步车辆到海康isc,25同步组织到海康isc 30工作流审批通知31大屏的安全和质量,32大屏的危大33应急处置") "23同步人员到海康isc,24同步车辆到海康isc,25同步组织到海康isc 30工作流审批通知31大屏的安全和质量,32大屏的危大33应急处置")

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.basicdata.entity.Notice; import com.zhgd.xmgl.modules.basicdata.entity.Notice;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -57,6 +58,16 @@ public interface INoticeService extends IService<Notice> {
*/ */
void addUserNotice(Long accountId, String title, String msg, String type); void addUserNotice(Long accountId, String title, String msg, String type);
/**
* 发通知给多个人
*
* @param accountIds 账号id
* @param title 标题
* @param msg 消息内容
* @param type 类型
*/
void addUsersNotice(List<Long> accountIds, String title, String msg, String type);
/** /**
* 添加消息通知并推送手机客户端 * 添加消息通知并推送手机客户端
* *

View File

@ -30,6 +30,7 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -105,6 +106,25 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
noticeService.sendMqttMessage(notice); noticeService.sendMqttMessage(notice);
} }
@Override
public void addUsersNotice(List<Long> accountIds, String title, String msg, String type) {
ArrayList<Notice> notices = new ArrayList<>();
for (Long accountId : accountIds) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Notice notice = new Notice();
notice.setAccountId(accountId);
notice.setMsg(msg);
notice.setTitle(title);
notice.setSendTime(sdf.format(new Date()));
notice.setType(type);
notices.add(notice);
}
noticeService.saveBatch(notices);
for (Notice notice : notices) {
noticeService.sendMqttMessage(notice);
}
}
@Override @Override
public void addUserNotice(Long accountId, String title, String msg, String type) { public void addUserNotice(Long accountId, String title, String msg, String type) {
addUserNotice(accountId, title, msg, type, null); addUserNotice(accountId, title, msg, type, null);

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.xz.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -11,17 +12,21 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.redis.lock.redisson.DistributedLock; import com.zhgd.redis.lock.redisson.DistributedLock;
import com.zhgd.xmgl.constant.Cts;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper; import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.XzSystemUserToCompanyProjectMapper; import com.zhgd.xmgl.modules.basicdata.mapper.XzSystemUserToCompanyProjectMapper;
import com.zhgd.xmgl.modules.basicdata.service.impl.CompanyServiceImpl; import com.zhgd.xmgl.modules.basicdata.service.impl.CompanyServiceImpl;
import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl;
import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl;
import com.zhgd.xmgl.modules.project.mapper.ProjectEnterpriseMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectEnterpriseMapper;
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo; import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.zhgd.xmgl.modules.worker.entity.EnterpriseQualification; import com.zhgd.xmgl.modules.worker.entity.EnterpriseQualification;
import com.zhgd.xmgl.modules.worker.entity.ProjectEnterpriseSupplierInfo;
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseQualificationMapper; import com.zhgd.xmgl.modules.worker.mapper.EnterpriseQualificationMapper;
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl; import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseQualificationServiceImpl; import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseQualificationServiceImpl;
import com.zhgd.xmgl.modules.worker.entity.ProjectEnterpriseSupplierInfo;
import com.zhgd.xmgl.modules.worker.service.impl.ProjectEnterpriseSupplierInfoServiceImpl; import com.zhgd.xmgl.modules.worker.service.impl.ProjectEnterpriseSupplierInfoServiceImpl;
import com.zhgd.xmgl.modules.xz.entity.XzSupplierQualificationApply; import com.zhgd.xmgl.modules.xz.entity.XzSupplierQualificationApply;
import com.zhgd.xmgl.modules.xz.entity.XzSupplierQualificationRecord; import com.zhgd.xmgl.modules.xz.entity.XzSupplierQualificationRecord;
@ -33,6 +38,7 @@ import com.zhgd.xmgl.modules.xz.mapper.XzSupplierRecordMapper;
import com.zhgd.xmgl.modules.xz.service.IXzSupplierQualificationApplyService; import com.zhgd.xmgl.modules.xz.service.IXzSupplierQualificationApplyService;
import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.util.EmailUtils; import com.zhgd.xmgl.util.EmailUtils;
import com.zhgd.xmgl.util.MapBuilder;
import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil; import com.zhgd.xmgl.util.RefUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -41,9 +47,11 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* @Description: 星纵-承包商-入场申请 * @Description: 星纵-承包商-入场申请
@ -57,6 +65,9 @@ public class XzSupplierQualificationApplyServiceImpl extends ServiceImpl<XzSuppl
@Lazy @Lazy
@Autowired @Autowired
XzSupplierRecordServiceImpl xzSupplierRecordService; XzSupplierRecordServiceImpl xzSupplierRecordService;
@Lazy
@Resource
NoticeServiceImpl noticeService;
@Autowired @Autowired
private XzSystemUserToCompanyProjectMapper xzSystemUserToCompanyProjectMapper; private XzSystemUserToCompanyProjectMapper xzSystemUserToCompanyProjectMapper;
@Autowired @Autowired
@ -91,6 +102,9 @@ public class XzSupplierQualificationApplyServiceImpl extends ServiceImpl<XzSuppl
@Lazy @Lazy
@Autowired @Autowired
private EnterpriseQualificationServiceImpl enterpriseQualificationService; private EnterpriseQualificationServiceImpl enterpriseQualificationService;
@Lazy
@Autowired
private SystemUserServiceImpl systemUserService;
@Override @Override
public IPage<XzSupplierQualificationApply> queryPageList(HashMap<String, Object> paramMap) { public IPage<XzSupplierQualificationApply> queryPageList(HashMap<String, Object> paramMap) {
@ -188,6 +202,17 @@ public class XzSupplierQualificationApplyServiceImpl extends ServiceImpl<XzSuppl
} }
projectEnterpriseSupplierInfoService.saveBatch(enterpriseSupplierInfos); projectEnterpriseSupplierInfoService.saveBatch(enterpriseSupplierInfos);
} }
XzSupplierQualificationApply qualificationApply = baseMapper.selectById(applyId);
String msg = StrUtil.format("{}在{}提交了承包商入场申请,请尽快审批!", supplierRecord.getEnterpriseName(), DateUtil.formatDateTime(qualificationApply.getApplyTime()));
String title = "承包商入场审批";
//项目发通知
noticeService.addProjectLevelNotice(apply.getProjectSn(), title, msg, "1", null);
//安全环保监察中心角色发通知
List<SystemUser> systemUserList = systemUserService.getProjectChildernSystemUserList(new MapBuilder<String, Object>().put("projectSn", apply.getProjectSn()).put("isSafetyAndMonitoringRoleName", 1).put(Cts.IGNORE_DATA_SCOPE, Cts.IGNORE_DATA_SCOPE).build());
if (CollUtil.isNotEmpty(systemUserList)) {
noticeService.addUsersNotice(systemUserList.stream().map(SystemUser::getUserId).collect(Collectors.toList()), title, msg, "1");
}
} }
@Override @Override