补录操作日志

tags/yfai-pcn-ext-v1.0
administrator 11 months ago
parent f595d98629
commit 4273eba96c

@ -0,0 +1,17 @@
package cn.estsh.i3plus.ext.mes.pcn.api.busi;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2024/6/30 16:44
* @Modify:
**/
public interface IMesWorkCellScanMonitorLogService {
/**
*
* @param pageSize
* @param organizeCode
*/
void doRecordCellOperationLog(String organizeCode,Integer pageSize);
}

@ -0,0 +1,52 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkCellScanMonitorLogService;
import cn.estsh.impp.framework.boot.init.ApplicationProperties;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.JobExecutionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Description : job
* @Reference :
* @Author : Castle
* @CreateDate 2024/6/26 18:22
* @Modify:
**/
@Slf4j
@DisallowConcurrentExecution
@Component
@ApiOperation("工位操作日志字段补录job")
public class MesWorkCellOperationLogJob extends BaseMesScheduleJob {
@Autowired
private IMesWorkCellScanMonitorLogService logService;
public MesWorkCellOperationLogJob() {
super(MesWorkCellOperationLogJob.class, "工位操作日志字段补录job");
}
@Override
public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) {
/**
*
* {
* "organizeCode":"CK01",
* "pageSize":50
* }
*/
String jobParam = this.getJobParam();
JSONObject params = JSONUtil.parseObj(jobParam);
String organizeCode = params.get("organizeCode").toString();
Integer pageSize = Integer.parseInt(params.get("pageSize").toString());
logService.doRecordCellOperationLog(organizeCode,pageSize);
}
}

@ -0,0 +1,75 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkCellScanMonitorLogService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
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.MesProductionRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCellScanMonitorLog;
import cn.estsh.i3plus.pojo.mes.repository.MesProductionRecordRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellScanMonitorLogRepository;
import com.netflix.discovery.converters.Auto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2024/6/30 16:57
* @Modify:
**/
@Service
public class MesWorkCellScanMonitorLogServiceImpl implements IMesWorkCellScanMonitorLogService {
@Autowired
private MesWorkCellScanMonitorLogRepository monitorLogRao;
@Autowired
private MesProductionRecordRepository productionRecordRao;
/**
* MesWorkCellScanMonitorLog mouldRecordId id
* MesProductionRecord id
* @param pageSize
* @param organizeCode
*/
@Override
public void doRecordCellOperationLog(String organizeCode,Integer pageSize) {
//查询serviceFlag是未处理状态,mouldRecordId不为空的记录每次查询pageSize 默认50条
DdlPackBean logPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),"serviceFlag",logPackBean);
DdlPreparedPack.getIsNotNull("mouldRecordId",logPackBean);
List<MesWorkCellScanMonitorLog> monitorLogs = monitorLogRao.findByHqlTopWhere(logPackBean, pageSize);
if (!monitorLogs.isEmpty()) {
for (MesWorkCellScanMonitorLog monitorLog : monitorLogs) {
Long mouldRecordId = monitorLog.getMouldRecordId();
DdlPackBean recordPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(mouldRecordId,"mouldRecordId",logPackBean);
List<MesProductionRecord> recordList = productionRecordRao.findByHqlWhere(recordPackBean);
//需要补录如下字段
if (!recordList.isEmpty()) {
String workOrderNoStr = recordList.stream().map(MesProductionRecord::getWorkOrderNo).collect(Collectors.joining(","));
String serialNoStr = recordList.stream().map(MesProductionRecord::getSerialNumber).collect(Collectors.joining(","));
String productSnStr = recordList.stream().map(MesProductionRecord::getProductSn).collect(Collectors.joining(","));
String custSnStr = recordList.stream().map(MesProductionRecord::getCustSn).collect(Collectors.joining(","));
String partNoStr = recordList.stream().map(MesProductionRecord::getPartNo).collect(Collectors.joining(","));
String partNameStr = recordList.stream().map(MesProductionRecord::getPartName).collect(Collectors.joining(","));
monitorLog.setWorkOrderNo(workOrderNoStr);
monitorLog.setSerialNumber(serialNoStr);
monitorLog.setProductSn(productSnStr);
monitorLog.setCustSn(custSnStr);
monitorLog.setPartNo(partNoStr);
monitorLog.setPartName(partNameStr);
ConvertBean.saveOrUpdate(monitorLog,"JOB");
}
}
monitorLogRao.saveAll(monitorLogs);
}
}
}
Loading…
Cancel
Save