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

dev-temp-nht-202502180000-customprint
xiangwei.zhang 4 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.util.CollectionUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@ -79,44 +81,55 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
if (CollectionUtils.isEmpty(mesProductionRecordList)) {
continue;
}
LOGGER.info("产线:{}报工mesProductionRecordList:{}", workCenterCode, mesProductionRecordList.size());
//3.插入生产工单表
List<MesWorkOrder> mesWorkOrders = workOrderService.insertMesWorkOrder(mesProductionRecordList, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName);
if (CollectionUtils.isEmpty(mesWorkOrders)) {
continue;
}
LOGGER.info("产线:{}报工mesWorkOrders:{}", workCenterCode, mesWorkOrders.size());
//4.根据产线+物料产生的工单报工
try {
LOGGER.info("产线:{}报工mesProductionRecordList:{}", workCenterCode, mesProductionRecordList.size());
//3.插入生产工单表
List<MesWorkOrder> mesWorkOrders = workOrderService.insertMesWorkOrder(mesProductionRecordList, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName);
if (CollectionUtils.isEmpty(mesWorkOrders)) {
continue;
}
LOGGER.info("产线:{}报工mesWorkOrders:{}", workCenterCode, mesWorkOrders.size());
//4.根据产线+物料产生的工单报工
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.getPartNo().equalsIgnoreCase(mesWorkOrder.getPartNo())).collect(Collectors.toList());
workOrderService.doPcnJobProductReport(mesProductionRecords, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName, mesWorkOrder);
for (MesProductionRecord mesProductionRecord : mesProductionRecords) {
try {
if (StringUtil.isEmpty(mesProductionRecord.getWorkOrderNo())) {
List<MesWorkOrder> collect = mesWorkOrders.stream().filter(w -> w.getWorkCenterCode().equalsIgnoreCase(mesProductionRecord.getWorkCenterCode())
&& w.getPartNo().equalsIgnoreCase(mesProductionRecord.getPartNo())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(collect)) {
mesProductionRecord.setWorkOrderNo(collect.get(0).getWorkOrderNo());
}
if (StringUtil.isEmpty(mesProductionRecord.getWorkOrderNo())) {
List<MesWorkOrder> collect = mesWorkOrders.stream().filter(w -> w.getWorkCenterCode().equalsIgnoreCase(mesProductionRecord.getWorkCenterCode())
&& w.getPartNo().equalsIgnoreCase(mesProductionRecord.getPartNo())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(collect)) {
mesProductionRecord.setWorkOrderNo(collect.get(0).getWorkOrderNo());
}
mesProductionRecord.setReportStatus(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue());
mesProductionRecord.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelUpdate(mesProductionRecord, userName);
} catch (ImppBusiException e) {
String errorMsg = StringUtil.isEmpty(e.getErrorDetail()) ? e.getErrorMsg(): e.getErrorDetail();
LOGGER.error("条码:{}报工失败,{}", mesProductionRecord.getProductSn(), errorMsg);
productionRecordService.updateProductionRecord(mesProductionRecord.getOrganizeCode(), userName, mesProductionRecord.getId(), errorMsg);
continue;
}
mesProductionRecord.setReportStatus(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue());
mesProductionRecord.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelUpdate(mesProductionRecord, userName);
mesProductionRecord.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date()));
}
productionRecordRao.saveAll(mesProductionRecords);
} catch (ImppBusiException e) {
List<String> snList = mesProductionRecords.stream().map(MesProductionRecord::getProductSn).collect(Collectors.toList());
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);
}
}
}
} 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);
if (org.springframework.util.CollectionUtils.isEmpty(mesBoms)) {
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();
//如果存在多个bomCode取最新的一个
@ -572,7 +571,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
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());
} else {
@ -1240,8 +1239,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) {
LOGGER.info("产线【%s】不存在:{}", workCenterCode );
continue;
// MesPcnException.throwMesBusiException("产线【%s】不存在", workCenterCode);
MesPcnException.throwMesBusiException("产线【%s】不存在", workCenterCode);
}
MesWorkOrder item = new MesWorkOrder();
item.setOrganizeCode(organizeCode);
@ -1270,7 +1268,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean);
if (mesWorkOrderRDao.isExitByHql(orderPackBean)) {
LOGGER.info("产线【%s】单号流水码生成重复:{}", workCenterCode );
continue;
MesPcnException.throwMesBusiException("产线【%s】不存在", workCenterCode);
}
item.setWorkOrderNo(orderNo);
item.setPartName(mesProductionRecord.getPartName());
@ -1324,7 +1322,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesProductVersion)) {
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;
}

Loading…
Cancel
Save