169 lines
9.9 KiB
Java
Raw Normal View History

2024-07-23 22:18:40 +08:00
package com.zhgd.xmgl.task;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl;
import com.zhgd.xmgl.modules.dangerous.service.impl.DangerousEngineeringRecordServiceImpl;
import com.zhgd.xmgl.modules.xz.special.entity.*;
import com.zhgd.xmgl.modules.xz.special.service.*;
import lombok.extern.slf4j.Slf4j;
import net.javacrumbs.shedlock.core.SchedulerLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/xmgl/task")
public class SpecialTask {
@Lazy
@Autowired
DangerousEngineeringRecordServiceImpl dangerousEngineeringRecordService;
@Lazy
@Autowired
SystemUserServiceImpl systemUserService;
@Lazy
@Resource
IXzBlindPlatePlugSafeService xzBlindPlatePlugSafeService;
@Lazy
@Resource
IXzGroundSafetService iXzGroundSafetService;
@Lazy
@Resource
IXzHighJobSafeService iXzHighJobSafeService;
@Lazy
@Resource
IXzHoistSafetyWorkService iXzHoistSafetyWorkService;
@Lazy
@Resource
IXzLimitSpaceSafeService iXzLimitSpaceSafeService;
@Lazy
@Resource
IXzOpenCircuitSafeService iXzOpenCircuitSafeService;
@Lazy
@Resource
IXzSpecialOperationFireSafetyService iXzSpecialOperationFireSafetyService;
@Lazy
@Resource
IXzTemporaryElectricitySafeService xzTemporaryElectricitySafeService;
@Lazy
@Autowired
private INoticeService noticeService;
/**
* "++"特殊作业的实施计划时间内发送消息去提醒责任人每日上传旁站记录 消息模版在施危大工程上传旁站记录提醒 内容您所负责的焙烧基坑工程危大工程名称计划实施时间为2024年7月12日至2024年7月15日计划实施时间已开工在施危大工程需每日上传旁站记录请注意及时上传
* 危大工程特殊作业的实施计划时间内发送消息去提醒责任人每日上传排查记录 消息模版在施危大工程上传排查记录提醒 内容您所负责的焙烧基坑工程危大工程名称计划实施时间为2024年7月12日至2024年7月15日计划实施时间已开工在施危大工程需每日上传排查记录请注意及时上传
*/
@Scheduled(cron = "0 1 0 * * ?")
@SchedulerLock(name = "remindPersonUploadRecordsDailyForSpecial", lockAtMostFor = 1000 * 60 * 2, lockAtLeastFor = 1000 * 60 * 1)
@RequestMapping("remindPersonUploadRecordsDailyForSpecial")
public void remindPersonUploadRecordsDailyForSpecial() {
List<XzBlindPlatePlugSafe> list1 = xzBlindPlatePlugSafeService.list(new LambdaQueryWrapper<XzBlindPlatePlugSafe>()
.ge(XzBlindPlatePlugSafe::getWorkExecutionEndTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.le(XzBlindPlatePlugSafe::getWorkExecutionBeginTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.eq(XzBlindPlatePlugSafe::getFinalAcceptanceStatus, 1)
);
for (XzBlindPlatePlugSafe record : list1) {
sendNotice(record.getAssignmentPersonInCharge(), "盲板抽堵作业", record.getWorkTicketCode(), record.getWorkExecutionBeginTime(), record.getWorkExecutionEndTime(), record.getProjectSn());
}
List<XzGroundSafet> list2 = iXzGroundSafetService.list(new LambdaQueryWrapper<XzGroundSafet>()
.ge(XzGroundSafet::getWorkExecutionEndTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.le(XzGroundSafet::getWorkExecutionBeginTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.eq(XzGroundSafet::getFinalAcceptanceStatus, 1)
);
for (XzGroundSafet record : list2) {
sendNotice(record.getAssignmentPersonInCharge(), "动土作业", record.getWorkTicketCode(), record.getWorkExecutionBeginTime(), record.getWorkExecutionEndTime(), record.getProjectSn());
}
List<XzHighJobSafe> list3 = iXzHighJobSafeService.list(new LambdaQueryWrapper<XzHighJobSafe>()
.ge(XzHighJobSafe::getWorkExecutionEndTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.le(XzHighJobSafe::getWorkExecutionBeginTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.eq(XzHighJobSafe::getFinalAcceptanceStatus, 1)
);
for (XzHighJobSafe record : list3) {
sendNotice(record.getAssignmentPersonInCharge(), "高处作业", record.getWorkTicketCode(), record.getWorkExecutionBeginTime(), record.getWorkExecutionEndTime(), record.getProjectSn());
}
List<XzHoistSafetyWork> list4 = iXzHoistSafetyWorkService.list(new LambdaQueryWrapper<XzHoistSafetyWork>()
.ge(XzHoistSafetyWork::getWorkExecutionEndTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.le(XzHoistSafetyWork::getWorkExecutionBeginTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.eq(XzHoistSafetyWork::getFinalAcceptanceStatus, 1)
);
for (XzHoistSafetyWork record : list4) {
sendNotice(record.getAssignmentPersonInCharge(), "吊装安全作业", record.getWorkTicketCode(), record.getWorkExecutionBeginTime(), record.getWorkExecutionEndTime(), record.getProjectSn());
}
List<XzLimitSpaceSafe> list5 = iXzLimitSpaceSafeService.list(new LambdaQueryWrapper<XzLimitSpaceSafe>()
.ge(XzLimitSpaceSafe::getWorkExecutionEndTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.le(XzLimitSpaceSafe::getWorkExecutionBeginTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.eq(XzLimitSpaceSafe::getFinalAcceptanceStatus, 1)
);
for (XzLimitSpaceSafe record : list5) {
sendNotice(record.getAssignmentPersonInCharge(), "受限空间作业", record.getWorkTicketCode(), record.getWorkExecutionBeginTime(), record.getWorkExecutionEndTime(), record.getProjectSn());
}
List<XzOpenCircuitSafe> list6 = iXzOpenCircuitSafeService.list(new LambdaQueryWrapper<XzOpenCircuitSafe>()
.ge(XzOpenCircuitSafe::getWorkExecutionEndTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.le(XzOpenCircuitSafe::getWorkExecutionBeginTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.eq(XzOpenCircuitSafe::getFinalAcceptanceStatus, 1)
);
for (XzOpenCircuitSafe record : list6) {
sendNotice(record.getAssignmentPersonInCharge(), "断路作业", record.getWorkTicketCode(), record.getWorkExecutionBeginTime(), record.getWorkExecutionEndTime(), record.getProjectSn());
}
List<XzSpecialOperationFireSafety> list7 = iXzSpecialOperationFireSafetyService.list(new LambdaQueryWrapper<XzSpecialOperationFireSafety>()
.ge(XzSpecialOperationFireSafety::getHotWorkExecutionEndTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.le(XzSpecialOperationFireSafety::getHotWorkExecutionBeginTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.eq(XzSpecialOperationFireSafety::getFinalAcceptanceStatus, 1)
);
for (XzSpecialOperationFireSafety record : list7) {
sendNotice(record.getAssignmentPersonInCharge(), "动火作业", record.getWorkTicketCode(), record.getHotWorkExecutionBeginTime(), record.getHotWorkExecutionEndTime(), record.getProjectSn());
}
List<XzTemporaryElectricitySafe> list8 = xzTemporaryElectricitySafeService.list(new LambdaQueryWrapper<XzTemporaryElectricitySafe>()
.ge(XzTemporaryElectricitySafe::getWorkExecutionEndTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.le(XzTemporaryElectricitySafe::getWorkExecutionBeginTime, DateUtil.format(new Date(), "yyyy-MM-dd"))
.eq(XzTemporaryElectricitySafe::getFinalAcceptanceStatus, 1)
);
for (XzTemporaryElectricitySafe record : list8) {
sendNotice(record.getAssignmentPersonInCharge(), "临时用电作业", record.getWorkTicketCode(), record.getWorkExecutionBeginTime(), record.getWorkExecutionEndTime(), record.getProjectSn());
}
}
/**
* 发送通知
*
* @param personId
* @param specialName
* @param workTicketCode
* @param startTime
* @param endTime
* @param projectSn
*/
private void sendNotice(Long personId, String specialName, String workTicketCode, Date startTime, Date endTime, String projectSn) {
if (personId == null) {
return;
}
String title1 = "在施" + specialName + "上传旁站记录提醒";
String title2 = "在施" + specialName + "上传排查记录提醒";
String msg1 = StrUtil.format("您所负责的{}{},计划实施时间为{}至{}已开工,在施" + specialName + "需每日上传旁站记录,请注意及时上传!", specialName, workTicketCode, DateUtil.formatDateTime(startTime), DateUtil.formatDateTime(endTime));
String msg2 = StrUtil.format("您所负责的{}{},计划实施时间为{}至{}已开工,在施" + specialName + "需每日上传排查记录,请注意及时上传!", specialName, workTicketCode, DateUtil.formatDateTime(startTime), DateUtil.formatDateTime(endTime));
noticeService.addUserNotice(personId, title1, msg1, "2");
noticeService.addUserNotice(personId, title2, msg2, "2");
noticeService.addProjectLevelNotice(projectSn, title1, systemUserService.getFrameUserNames(String.valueOf(personId)) + msg1, "2", null);
noticeService.addProjectLevelNotice(projectSn, title2, systemUserService.getFrameUserNames(String.valueOf(personId)) + msg2, "2", null);
}
}