|
|
|
@ -0,0 +1,99 @@
|
|
|
|
|
package cn.estsh.i3plus.ext.mes.apiservice.schedulejob;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
|
|
|
|
|
import cn.estsh.i3plus.mes.api.iservice.base.IMessagePushService;
|
|
|
|
|
import cn.estsh.i3plus.mes.apiservice.schedulejob.BaseMesScheduleJob;
|
|
|
|
|
import cn.estsh.i3plus.mes.apiservice.util.DateUtil;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.tool.TimeTool;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTask;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesReworkTaskRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.init.ApplicationProperties;
|
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.quartz.DisallowConcurrentExecution;
|
|
|
|
|
import org.quartz.JobExecutionContext;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Description : 返工单超过时不处理发邮件通知
|
|
|
|
|
* @Reference :
|
|
|
|
|
* @Author : junsheng.li
|
|
|
|
|
* @CreateDate 2024/7/8 14:43
|
|
|
|
|
* @Modify:
|
|
|
|
|
**/
|
|
|
|
|
@Slf4j
|
|
|
|
|
@DisallowConcurrentExecution
|
|
|
|
|
@Component
|
|
|
|
|
@ApiOperation("返工单超过时不处理发邮件通知")
|
|
|
|
|
public class MesSendOutTimeReworkOrderEmailJob extends BaseMesScheduleJob {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMessagePushService messagePushService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesConfigService mesConfigService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesReworkTaskRepository mesReworkTaskRepository;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public MesSendOutTimeReworkOrderEmailJob() {
|
|
|
|
|
super(MesSendOutTimeReworkOrderEmailJob.class, "返工单超过时不处理发邮件通知JOB");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) {
|
|
|
|
|
String jobParam = this.getJobParam();
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(jobParam)) {
|
|
|
|
|
throw new IllegalArgumentException("job参数为空,请检查参数");
|
|
|
|
|
}
|
|
|
|
|
for (String organizeCode : jobParam.split(",")) {
|
|
|
|
|
try {
|
|
|
|
|
//超时时间
|
|
|
|
|
int minutes = Integer.parseInt(mesConfigService.getCfgValue(organizeCode, MesCommonConstant.OUT_TIME_REWORK_ORDER_MINUTES));
|
|
|
|
|
//查询超时返工单
|
|
|
|
|
List<MesReworkTask> mesReworkTaskList = findMesReworkTaskList(organizeCode, minutes);
|
|
|
|
|
if (CollectionUtils.isEmpty(mesReworkTaskList)) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
messagePushService.pushEmail(getContent(minutes, mesReworkTaskList), "返工单超时提醒", "系统管理员", Arrays.asList(mesConfigService.getCfgValue(organizeCode, MesCommonConstant.OUT_TIME_REWORK_ORDER_SEND_URL).split(",")));
|
|
|
|
|
long startTime = System.currentTimeMillis();
|
|
|
|
|
long endTime = System.currentTimeMillis();
|
|
|
|
|
log.info("工厂{}返工单超过时不处理发邮件通知JOB --- END --- 耗时: {} ms", organizeCode, endTime - startTime);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.info("工厂{}返工单超过时不处理发邮件通知JOB 执行失败{}", organizeCode, e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String getContent(int minutes, List<MesReworkTask> mesReworkTaskList) {
|
|
|
|
|
StringBuilder content = new StringBuilder("<p>尊敬的用户</p> <p>您好!</p> <p> 下述返工工单超过" + minutes + "分钟未处理,请及时处理!</p>");
|
|
|
|
|
for (MesReworkTask mesReworkTask : mesReworkTaskList) {
|
|
|
|
|
content.append("<p>返工工单号:").append(mesReworkTask.getReworkOrder()).append("零件号:").append(mesReworkTask.getPartNo()).append(",返工数量:").append(mesReworkTask.getReworkedQty()).append(",创建时间:").append(mesReworkTask.getCreateDatetime()).append("</p>");
|
|
|
|
|
}
|
|
|
|
|
log.info(content.toString());
|
|
|
|
|
return content.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<MesReworkTask> findMesReworkTaskList(String organizeCode, int minutes) {
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_STATUS.CREATE.getValue(), "status", packBean);
|
|
|
|
|
packBean.setWhereAppend(packBean.getWhereAppend() + " and model.createDatetime <= '" + TimeTool.pareDateToString(DateUtil.addMinutes(new Date(), -minutes)) + "'");
|
|
|
|
|
List<MesReworkTask> mesReworkTaskList = mesReworkTaskRepository.findByHqlWhere(packBean);
|
|
|
|
|
return mesReworkTaskList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|