41807 组件返工作业--返工单创建时间超过配置时间(增加配置)后,通过邮件提醒

tags/yfai-mes-ext-v1.0
jun 10 months ago
parent c9998589da
commit 9bbcc13ff5

@ -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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下述返工工单超过" + 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;
}
}

@ -49,4 +49,8 @@ public class MesCommonConstant {
//字体位置
public static final String FONDS_TEMP_PATH = File.separator+"usr" + File.separator+ "share" + File.separator+ "fonts" + File.separator+ "myfonts" + File.separator;
//返工单超过时不处理发邮件通知
public static final String OUT_TIME_REWORK_ORDER_SEND_URL = "OUT_TIME_REWORK_ORDER_SEND_URL";
public static final String OUT_TIME_REWORK_ORDER_MINUTES = "OUT_TIME_REWORK_ORDER_MINUTES";
}

Loading…
Cancel
Save