From c8eb09de4e4dc3c2ee1812bcda6aa72381174141 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Mon, 20 May 2024 20:13:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E6=80=A5=E7=9A=84bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xmgl/modules/basicdata/entity/Notice.java | 2 +- .../service/impl/NoticeServiceImpl.java | 2 +- .../controller/WorkerInfoController.java | 10 +-- .../worker/mapper/xml/WorkerInfoMapper.xml | 3 + .../worker/service/IWorkerInfoService.java | 2 + .../service/impl/WorkerInfoServiceImpl.java | 11 +++ .../XzEmergencyRecordController.java | 12 ++++ .../service/IXzEmergencyRecordService.java | 2 + .../impl/XzEmergencyRecordServiceImpl.java | 71 +++++++++++++++++-- 9 files changed, 97 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/Notice.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/Notice.java index 250614294..948b13a7d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/Notice.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/Notice.java @@ -30,7 +30,7 @@ public class Notice implements Serializable { private java.lang.Long id; @ApiModelProperty(value = "类型,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大屏的危大") + "23同步人员到海康isc,24同步车辆到海康isc,25同步组织到海康isc 30工作流审批通知,31大屏的安全和质量,32大屏的危大,33应急处置") private java.lang.String type; /** * 消息内容 diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/NoticeServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/NoticeServiceImpl.java index 117d63ea5..244689808 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/NoticeServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/NoticeServiceImpl.java @@ -120,7 +120,7 @@ public class NoticeServiceImpl extends ServiceImpl impleme public void addUserNoticeAndApp(Long accountId, String msg, String title, String type, Object payload) { final SerializeConfig config = new SerializeConfig(); config.put(Long.class, ToStringSerializer.instance); - addUserNotice(accountId, msg, title, type, JSONObject.toJSONString(payload, config)); + addUserNotice(accountId, msg, title, type, payload != null ? JSONObject.toJSONString(payload, config) : null); SystemUser systemUser = systemUserMapper.selectById(accountId); if (systemUser == null) { return; diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java index bbadb2066..f0e95c57b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java @@ -112,15 +112,7 @@ public class WorkerInfoController { @ApiImplicitParam(name = "id", value = "劳务人员ID", paramType = "body", required = true, dataType = "Integer") @PostMapping(value = "/queryById") public Result queryById(@RequestBody Map map) { - Result result = new Result(); - WorkerInfo workerInfo = workerInfoService.getById(MapUtils.getString(map, "id")); - if (workerInfo == null) { - result.error500(MessageUtil.get("notFindErr")); - } else { - result.setResult(workerInfo); - result.setSuccess(true); - } - return result; + return Result.success(workerInfoService.queryById(map)); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml index 09b089dbe..94ac0b0d2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml @@ -48,6 +48,9 @@ and create_time>=current_date group by person_sn ) wa on wa.person_sn = a.person_sn WHERE 1 = 1 + + and a.id = #{param.id} + and a.enterprise_id in( select distinct qrte.enterprise_id from quality_region_to_enterprise qrte join quality_region_to_user qrtu diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java index fed8ad723..b79e05eaa 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java @@ -139,4 +139,6 @@ public interface IWorkerInfoService extends IService { List statsEnterprise(Map map); List statsEnterpriseRisk(Map map); + + WorkerInfo queryById(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index 72da263cf..2a289826a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -2153,6 +2153,17 @@ public class WorkerInfoServiceImpl extends ServiceImpl map) { + String id = MapUtils.getString(map, "id"); + map.put("id", id); + IPage page = selectWorkerInfoList(map); + if (CollUtil.isEmpty(page.getRecords())) { + return null; + } + return page.getRecords().get(0); + } + /** * 真正递归的方法 * diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/emergency/controller/XzEmergencyRecordController.java b/src/main/java/com/zhgd/xmgl/modules/xz/emergency/controller/XzEmergencyRecordController.java index 8e9a1fe53..562bb9679 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/emergency/controller/XzEmergencyRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/emergency/controller/XzEmergencyRecordController.java @@ -126,4 +126,16 @@ public class XzEmergencyRecordController { public Result statsDispositionStatus(@ApiIgnore @RequestBody Map param) { return Result.success(xzEmergencyRecordService.statsDispositionStatus(param)); } + + @ApiOperation(value = "发送通知", notes = "发送通知", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "星纵-应急-处置台账ID", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/sendNotice") + public Result sendNotice(@ApiIgnore @RequestBody Map param) { + xzEmergencyRecordService.sendNotice(param); + return Result.ok(); + } + + } diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/IXzEmergencyRecordService.java b/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/IXzEmergencyRecordService.java index 2817f202c..e104723f2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/IXzEmergencyRecordService.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/IXzEmergencyRecordService.java @@ -30,4 +30,6 @@ public interface IXzEmergencyRecordService extends IService { XzEmergencyRecord queryById(String id); StatsDispositionStatusVo statsDispositionStatus(Map param); + + void sendNotice(Map param); } diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/impl/XzEmergencyRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/impl/XzEmergencyRecordServiceImpl.java index 0ef38d2be..58db26ee7 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/impl/XzEmergencyRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/impl/XzEmergencyRecordServiceImpl.java @@ -11,13 +11,18 @@ import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; +import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl; +import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; +import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl; import com.zhgd.xmgl.modules.xz.emergency.entity.XzEmergencyPush; import com.zhgd.xmgl.modules.xz.emergency.entity.XzEmergencyRecord; import com.zhgd.xmgl.modules.xz.emergency.entity.XzEmergencyRescueSituation; +import com.zhgd.xmgl.modules.xz.emergency.entity.XzEmergencyType; import com.zhgd.xmgl.modules.xz.emergency.entity.vo.StatsDispositionStatusVo; import com.zhgd.xmgl.modules.xz.emergency.mapper.XzEmergencyPushMapper; import com.zhgd.xmgl.modules.xz.emergency.mapper.XzEmergencyRecordMapper; import com.zhgd.xmgl.modules.xz.emergency.mapper.XzEmergencyRescueSituationMapper; +import com.zhgd.xmgl.modules.xz.emergency.mapper.XzEmergencyTypeMapper; import com.zhgd.xmgl.modules.xz.emergency.service.IXzEmergencyRecordService; import com.zhgd.xmgl.security.entity.UserInfo; import com.zhgd.xmgl.security.util.SecurityUtils; @@ -42,9 +47,15 @@ import java.util.Map; @Service @Transactional(rollbackFor = Exception.class) public class XzEmergencyRecordServiceImpl extends ServiceImpl implements IXzEmergencyRecordService { + @Autowired + WorkerInfoServiceImpl workerInfoService; + @Autowired + NoticeServiceImpl noticeService; @Autowired ISystemUserService systemUserService; @Autowired + XzEmergencyTypeMapper xzEmergencyTypeMapper; + @Autowired private XzEmergencyRecordMapper xzEmergencyRecordMapper; @Autowired private XzEmergencyRescueSituationMapper xzEmergencyRescueSituationMapper; @@ -72,8 +83,21 @@ public class XzEmergencyRecordServiceImpl extends ServiceImpl queryWrapper = QueryGenerator.initPageQueryWrapper(XzEmergencyRecord.class, paramMap, alias); String enterpriseId = MapUtils.getString(paramMap, "enterpriseId"); + String alarmPersonName = MapUtils.getString(paramMap, "alarmPersonName"); String projectSn = MapUtils.getString(paramMap, "projectSn"); - //只能看到自己的负责的企业 + //项目子账号只能看到自己的负责的企业 + querySelfEnterpriseIfSub(enterpriseId, projectSn); + if (StrUtil.isNotBlank(enterpriseId)) { + queryWrapper.eq("ei.id", enterpriseId); + } + if (StrUtil.isNotBlank(alarmPersonName)) { + queryWrapper.like("wi.worker_name", alarmPersonName); + } + queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(XzEmergencyRecord::getUpdateDate)); + return queryWrapper; + } + + private String querySelfEnterpriseIfSub(String enterpriseId, String projectSn) { UserInfo user = SecurityUtils.getUser(); if (user.getAccountType() == 6) { List systemUserList = systemUserService.getProjectChilderSystemUserList(new MapBuilder().put("projectSn", projectSn).put("userId", user.getUserId()).build()); @@ -87,7 +111,7 @@ public class XzEmergencyRecordServiceImpl extends ServiceImpl userIds = StrUtil.split(",", push.getEmergencyManagerId()); + List userIds = StrUtil.split(push.getEmergencyManagerId(), ","); if (userIds.contains(user.getUserId() + "")) { enterpriseId = String.valueOf(push.getEnterpriseId()); } else { @@ -96,11 +120,7 @@ public class XzEmergencyRecordServiceImpl extends ServiceImpl dealList(List list) { @@ -141,6 +161,9 @@ public class XzEmergencyRecordServiceImpl extends ServiceImpl() + .eq(XzEmergencyRescueSituation::getXzEmergencyRecordId, id)); } @Override @@ -160,4 +183,38 @@ public class XzEmergencyRecordServiceImpl extends ServiceImpl param) { + String id = MapUtils.getString(param, "id"); + XzEmergencyRecord entity = baseMapper.queryById(id); + if (entity == null) { + throw new OpenAlertException("未找到对应实体"); + } + WorkerInfo wi = workerInfoService.queryById(new MapBuilder().put("id", entity.getAlarmPersonId()).build()); + if (wi == null) { + return; + } + XzEmergencyPush push = xzEmergencyPushMapper.selectOne(new LambdaQueryWrapper() + .eq(XzEmergencyPush::getEnterpriseId, wi.getEnterpriseId()) + .eq(XzEmergencyPush::getProjectSn, wi.getProjectSn()) + ); + if (push == null) { + return; + } + List userIds = StrUtil.split(push.getEmergencyManagerId(), ","); + if (CollUtil.isEmpty(userIds)) { + return; + } + XzEmergencyType type = xzEmergencyTypeMapper.selectById(entity.getEmergencyTypeId()); + for (String userId : userIds) { + if (entity.getEmergencyTypeId() == -1) { + noticeService.addUserNoticeAndApp(Long.valueOf(userId), StrUtil.format("{}人员在{}位置发起一键报警,请及时救援!", wi.getWorkerName(), entity.getLongitude() == null || entity.getLatitude() == null ? "未知" : entity.getLongitude() + "," + entity.getLatitude()), + "有应急消息待处理", "33"); + } else { + noticeService.addUserNoticeAndApp(Long.valueOf(userId), StrUtil.format("{}人员在{}位置发起【{}】应急报警,请及时救援!", wi.getWorkerName(), entity.getLongitude() == null || entity.getLatitude() == null ? "未知" : entity.getLongitude() + "," + entity.getLatitude(), type != null ? type.getEmergencyType() : "其他类型"), + "有应急消息待处理", "33"); + } + } + } + }