根据设备停机超时时间新增设备停机记录JOB

tags/yfai-mes-ext-v1.0
gsz 12 months ago
parent 3f2441aea8
commit c442e79998

@ -2,6 +2,9 @@ package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesDowntimeRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipment;
import java.util.List;
/**
* @Description:
@ -10,4 +13,11 @@ import cn.estsh.i3plus.pojo.mes.bean.MesDowntimeRecord;
* @Modify:
*/
public interface IMesDowntimeRecordService extends IBaseMesService<MesDowntimeRecord> {
/**
* MES
* @param organizeCode
* @param mesEquipmentList
*/
void doMesDowntimeRecordJob(String organizeCode, List<MesEquipment> mesEquipmentList);
}

@ -0,0 +1,87 @@
package cn.estsh.i3plus.ext.mes.apiservice.schedulejob;
import cn.estsh.i3plus.ext.mes.api.base.IMesCcscTaskService;
import cn.estsh.i3plus.ext.mes.api.base.IMesDowntimeRecordService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesBasDowntimeReasonTypeServiceImpl;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesDowntimeRecordServiceImpl;
import cn.estsh.i3plus.mes.apiservice.schedulejob.BaseMesScheduleJob;
import cn.estsh.i3plus.platform.common.util.MesConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipment;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.repository.IMesBasDowntimeReasonRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentRepository;
import cn.estsh.impp.framework.boot.init.ApplicationProperties;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.JobExecutionContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* @Description : MES
* @Reference :
* @Author : gsz
* @CreateDate 2024/5/28 10:58
* @Modify:
**/
@DisallowConcurrentExecution
@ApiOperation("MES设备生产停机记录")
public class MesDowntimeRecordJob extends BaseMesScheduleJob {
public static final Logger LOGGER = LoggerFactory.getLogger(MesDowntimeRecordJob.class);
private static final long serialVersionUID = 964832621370364379L;
@Autowired
private MesEquipmentRepository mesEquipmentRDao;
@Autowired
private IMesDowntimeRecordService downtimeRecordService;
@Value("${server.port}")
private String serverPort;
@Value("${impp.server.ip}")
private String ip;
public MesDowntimeRecordJob() {
super(MesDowntimeRecordJob.class, "MES设备生产停机记录");
this.setMultiInstance(true);
}
@Override
public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) {
try {
String jobParam = this.getJobParam();
if (StringUtils.isBlank(jobParam)) {
throw new IllegalArgumentException("job参数为空请检查参数");
}
String[] organizeCodeList = jobParam.split(",");
LOGGER.info("MES设备生产停机记录 -----start");
for (String organizeCode : organizeCodeList) {
List<MesEquipment> mesEquipmentList = mesEquipmentRDao.findByProperty(
new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED, MesConstWords.IS_VALID},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),
CommonEnumUtil.IS_VAILD.VAILD.getValue()});
if (!CollectionUtils.isEmpty(mesEquipmentList)){
downtimeRecordService.doMesDowntimeRecordJob(organizeCode,mesEquipmentList);
}
}
LOGGER.info("MES设备生产停机记录 ----- end");
} catch (Exception e) {
LOGGER.error("MES设备生产停机记录 e:{}",e.toString());
}
}
}

@ -1,16 +1,27 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesDowntimeRecordService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesDowntimeRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipment;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
import cn.estsh.i3plus.pojo.mes.repository.MesDowntimeRecordRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesProductionRecordRepository;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* @Description:
@ -22,6 +33,12 @@ import org.springframework.stereotype.Service;
@Slf4j
public class MesDowntimeRecordServiceImpl extends BaseMesService<MesDowntimeRecord> implements IMesDowntimeRecordService {
@Autowired
private MesProductionRecordRepository mesProductionRecordRDao;
@Autowired
private MesDowntimeRecordRepository mesDowntimeRecordRDao;
@Override
protected void setPackQueryBean(MesDowntimeRecord bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(), "workCenterCode", packBean);
@ -54,4 +71,50 @@ public class MesDowntimeRecordServiceImpl extends BaseMesService<MesDowntimeReco
.build();
}
}
@Override
public void doMesDowntimeRecordJob(String organizeCode, List<MesEquipment> mesEquipmentList) {
for (MesEquipment mesEquipment : mesEquipmentList) {
Integer monitorDownTime = Integer.parseInt(mesEquipment.getMonitorDownTime());//todo
String previousDay = getPreviousDay(new Date(), monitorDownTime);
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(mesEquipment.getEquipmentCode(), "equipmentCode", ddlPackBean);
DdlPreparedPack.getNumberBiggerEqualPack(previousDay, "createDatetime", ddlPackBean);
// DdlPreparedPack.getNumberSmallerEqualPack(mesEquipment.getCreateDateTimeEnd(), "createDatetime", ddlPackBean);
int byHqlWhereCount = mesProductionRecordRDao.findByHqlWhereCount(ddlPackBean);
if (byHqlWhereCount < 1) {
//新增设备停机记录
MesDowntimeRecord mesDowntimeRecord=new MesDowntimeRecord();
mesDowntimeRecord.setOrganizeCode(organizeCode);
mesDowntimeRecord.setEquipId(mesEquipment.getEquipId());
mesDowntimeRecord.setEquipmentCode(mesEquipment.getEquipmentCode());
mesDowntimeRecord.setAreaCode(mesEquipment.getAreaCode());
mesDowntimeRecord.setWorkCenterCode(mesEquipment.getWorkCenterCode());
mesDowntimeRecord.setWorkCellCode(mesEquipment.getWorkCellCode());
mesDowntimeRecord.setReasonCode("未选择停机原因");
mesDowntimeRecord.setReasonTypeCode("未选择停机类型原因");//todo
ConvertBean.serviceModelInitialize(mesDowntimeRecord, "MesDowntimeRecordJob");
mesDowntimeRecordRDao.insert(mesDowntimeRecord);
}
}
}
/**
*
*
* @return yyyy-MM-dd HH:mm:ss
*/
public static String getPreviousDay(Date dateTime, int amount) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
if (dateTime != null) {
c.setTime(dateTime);
}
c.add(Calendar.MINUTE, -amount);
Date start = c.getTime();
String date = format.format(start);//前几分钟
return date;
}
}

Loading…
Cancel
Save