44657 前一天报工job失败,加入到备注中

dev-temp-nht-202502180000-customprint
xiangwei.zhang 5 months ago
parent f0ba25d59b
commit 37013c67fb

@ -27,8 +27,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -79,6 +81,7 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
if (CollectionUtils.isEmpty(mesProductionRecordList)) { if (CollectionUtils.isEmpty(mesProductionRecordList)) {
continue; continue;
} }
try {
LOGGER.info("产线:{}报工mesProductionRecordList:{}", workCenterCode, mesProductionRecordList.size()); LOGGER.info("产线:{}报工mesProductionRecordList:{}", workCenterCode, mesProductionRecordList.size());
//3.插入生产工单表 //3.插入生产工单表
List<MesWorkOrder> mesWorkOrders = workOrderService.insertMesWorkOrder(mesProductionRecordList, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName); List<MesWorkOrder> mesWorkOrders = workOrderService.insertMesWorkOrder(mesProductionRecordList, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName);
@ -87,15 +90,16 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
} }
LOGGER.info("产线:{}报工mesWorkOrders:{}", workCenterCode, mesWorkOrders.size()); LOGGER.info("产线:{}报工mesWorkOrders:{}", workCenterCode, mesWorkOrders.size());
//4.根据产线+物料产生的工单报工 //4.根据产线+物料产生的工单报工
try {
for (MesWorkOrder mesWorkOrder : mesWorkOrders) { for (MesWorkOrder mesWorkOrder : mesWorkOrders) {
List<MesProductionRecord> mesProductionRecords = mesProductionRecordList.stream().filter( List<MesProductionRecord> mesProductionRecords = new ArrayList<>();
try {
mesProductionRecords = mesProductionRecordList.stream().filter(
w -> w.getWorkCenterCode().equalsIgnoreCase(mesWorkOrder.getWorkCenterCode()) w -> w.getWorkCenterCode().equalsIgnoreCase(mesWorkOrder.getWorkCenterCode())
&& w.getPartNo().equalsIgnoreCase(mesWorkOrder.getPartNo())).collect(Collectors.toList()); && w.getPartNo().equalsIgnoreCase(mesWorkOrder.getPartNo())).collect(Collectors.toList());
workOrderService.doPcnJobProductReport(mesProductionRecords, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName, mesWorkOrder); workOrderService.doPcnJobProductReport(mesProductionRecords, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName, mesWorkOrder);
for (MesProductionRecord mesProductionRecord : mesProductionRecords) { for (MesProductionRecord mesProductionRecord : mesProductionRecords) {
try {
if (StringUtil.isEmpty(mesProductionRecord.getWorkOrderNo())) { if (StringUtil.isEmpty(mesProductionRecord.getWorkOrderNo())) {
List<MesWorkOrder> collect = mesWorkOrders.stream().filter(w -> w.getWorkCenterCode().equalsIgnoreCase(mesProductionRecord.getWorkCenterCode()) List<MesWorkOrder> collect = mesWorkOrders.stream().filter(w -> w.getWorkCenterCode().equalsIgnoreCase(mesProductionRecord.getWorkCenterCode())
&& w.getPartNo().equalsIgnoreCase(mesProductionRecord.getPartNo())).collect(Collectors.toList()); && w.getPartNo().equalsIgnoreCase(mesProductionRecord.getPartNo())).collect(Collectors.toList());
@ -106,17 +110,26 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
mesProductionRecord.setReportStatus(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()); mesProductionRecord.setReportStatus(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue());
mesProductionRecord.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); mesProductionRecord.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelUpdate(mesProductionRecord, userName); ConvertBean.serviceModelUpdate(mesProductionRecord, userName);
mesProductionRecord.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date()));
}
productionRecordRao.saveAll(mesProductionRecords);
} catch (ImppBusiException e) { } catch (ImppBusiException e) {
String errorMsg = StringUtil.isEmpty(e.getErrorDetail()) ? e.getErrorMsg(): e.getErrorDetail(); List<String> snList = mesProductionRecords.stream().map(MesProductionRecord::getProductSn).collect(Collectors.toList());
LOGGER.error("条码:{}报工失败,{}", mesProductionRecord.getProductSn(), errorMsg); String errorMsg = StringUtil.isEmpty(e.getErrorDetail()) ? e.getErrorMsg() : e.getErrorDetail();
LOGGER.info("条码:{}报工失败,{}", snList, errorMsg);
for (MesProductionRecord mesProductionRecord : mesProductionRecords) {
productionRecordService.updateProductionRecord(mesProductionRecord.getOrganizeCode(), userName, mesProductionRecord.getId(), errorMsg); productionRecordService.updateProductionRecord(mesProductionRecord.getOrganizeCode(), userName, mesProductionRecord.getId(), errorMsg);
continue;
} }
} }
productionRecordRao.saveAll(mesProductionRecords);
} }
} catch (ImppBusiException e) { } catch (ImppBusiException e) {
LOGGER.error("产线:{}报工失败:{}", workCenterCode, e.getErrorDetail()); List<String> snList = mesProductionRecordList.stream().map(MesProductionRecord::getProductSn).collect(Collectors.toList());
String errorMsg = StringUtil.isEmpty(e.getErrorDetail()) ? e.getErrorMsg() : e.getErrorDetail();
LOGGER.info("条码:{}报工失败,{}", snList, errorMsg);
for (MesProductionRecord mesProductionRecord : mesProductionRecordList) {
productionRecordService.updateProductionRecord(mesProductionRecord.getOrganizeCode(), userName, mesProductionRecord.getId(), errorMsg);
}
} }
} }
} }

@ -387,8 +387,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
List<MesBom> mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean); List<MesBom> mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean);
if (org.springframework.util.CollectionUtils.isEmpty(mesBoms)) { if (org.springframework.util.CollectionUtils.isEmpty(mesBoms)) {
LOGGER.info("物料{}生产版本{}对应bom信息不存在", partNo, bomVersion ); LOGGER.info("物料{}生产版本{}对应bom信息不存在", partNo, bomVersion );
return mesBoms; MesPcnException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", partNo, bomVersion);
// MesPcnException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", partNo, bomVersion);
} }
MesBom next = mesBoms.iterator().next(); MesBom next = mesBoms.iterator().next();
//如果存在多个bomCode取最新的一个 //如果存在多个bomCode取最新的一个
@ -572,7 +571,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
if (StringUtil.isEmpty(productionRecord.getWorkOrderNo())) { if (StringUtil.isEmpty(productionRecord.getWorkOrderNo())) {
//更新工单状态 //更新工单状态
if (oldMesWorkOrder.getReportedQty() >= oldMesWorkOrder.getQty()) { if (reportQty >= oldMesWorkOrder.getQty()) {
propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
} else { } else {
@ -1240,8 +1239,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean); MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) { if (Objects.isNull(mesWorkCenter)) {
LOGGER.info("产线【%s】不存在:{}", workCenterCode ); LOGGER.info("产线【%s】不存在:{}", workCenterCode );
continue; MesPcnException.throwMesBusiException("产线【%s】不存在", workCenterCode);
// MesPcnException.throwMesBusiException("产线【%s】不存在", workCenterCode);
} }
MesWorkOrder item = new MesWorkOrder(); MesWorkOrder item = new MesWorkOrder();
item.setOrganizeCode(organizeCode); item.setOrganizeCode(organizeCode);
@ -1270,7 +1268,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean); DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean);
if (mesWorkOrderRDao.isExitByHql(orderPackBean)) { if (mesWorkOrderRDao.isExitByHql(orderPackBean)) {
LOGGER.info("产线【%s】单号流水码生成重复:{}", workCenterCode ); LOGGER.info("产线【%s】单号流水码生成重复:{}", workCenterCode );
continue; MesPcnException.throwMesBusiException("产线【%s】不存在", workCenterCode);
} }
item.setWorkOrderNo(orderNo); item.setWorkOrderNo(orderNo);
item.setPartName(mesProductionRecord.getPartName()); item.setPartName(mesProductionRecord.getPartName());
@ -1324,7 +1322,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean); MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesProductVersion)) { if (Objects.isNull(mesProductVersion)) {
LOGGER.info("物料{}产线{}生产版本{}信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion() ); LOGGER.info("物料{}产线{}生产版本{}信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion() );
// MesPcnException.throwMesBusiException("物料【%s】产线【%s】生产版本【%s】信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion()); MesPcnException.throwMesBusiException("物料【%s】产线【%s】生产版本【%s】信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion());
} }
return mesProductVersion; return mesProductVersion;
} }

Loading…
Cancel
Save