45843 无工单补报工JOB针对多生产版本场景,默认使用SAP 主数据0001进行补报工

dev_temp_xw_202503280000_45843
xiangwei.zhang 4 months ago
parent 27e636b1e5
commit b599fa1d87

@ -28,10 +28,7 @@ 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.*;
import java.util.stream.Collectors;
/**
@ -82,9 +79,13 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
continue;
}
try {
LOGGER.info("产线:{}报工mesProductionRecordList:{}", workCenterCode, mesProductionRecordList.size());
Map<String,List<MesProductionRecord>> recordMap = mesProductionRecordList.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() + "=" + sn.getPartNo()));
for (Map.Entry<String, List<MesProductionRecord>> entry : recordMap.entrySet()) {
String k = entry.getKey();
List<MesProductionRecord> v = entry.getValue();
LOGGER.info("产线=-零件号:{},:{},报工mesProductionRecordList:{}",k, v.size());
//3.插入生产工单表
List<MesWorkOrder> mesWorkOrders = workOrderService.insertMesWorkOrder(mesProductionRecordList, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName);
List<MesWorkOrder> mesWorkOrders = workOrderService.insertMesWorkOrder(v, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName);
if (CollectionUtils.isEmpty(mesWorkOrders)) {
continue;
}
@ -123,6 +124,9 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
}
}
}
}
} catch (ImppBusiException e) {
List<String> snList = mesProductionRecordList.stream().map(MesProductionRecord::getProductSn).collect(Collectors.toList());
String errorMsg = StringUtil.isEmpty(e.getErrorDetail()) ? e.getErrorMsg() : e.getErrorDetail();

@ -1387,11 +1387,18 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(item.getErpWorkCenter(), "workCenterCode", ddlPackBean);
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesProductVersion)) {
List<MesProductVersion> mesProductVersions = mesProductVersionRDao.findByHqlWhere(ddlPackBean);
if (CollectionUtils.isEmpty(mesProductVersions)) {
LOGGER.info("物料{}产线{}生产版本{}信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion() );
MesPcnException.throwMesBusiException("物料【%s】产线【%s】生产版本【%s】信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion());
}
MesProductVersion mesProductVersion = null;
List<MesProductVersion> mesProductOneVersions = mesProductVersions.stream().filter(productVersion -> Objects.equals(productVersion.getProductVersion(),"0001")).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(mesProductOneVersions)) {
mesProductVersion = mesProductOneVersions.get(0);
} else {
mesProductVersion = mesProductVersions.get(0);
}
return mesProductVersion;
}

Loading…
Cancel
Save