|
|
@ -1292,15 +1292,12 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<MesWorkOrder> insertMesWorkOrder(List<MesProductionRecord> mesProductionRecordList, List<MesShift> mesShiftList, String organizeCode, String userName) {
|
|
|
|
public MesWorkOrder insertMesWorkOrder(List<MesProductionRecord> mesProductionRecordList, List<MesShift> mesShiftList, String organizeCode, String userName) {
|
|
|
|
List<MesWorkOrder> mesWorkOrderList = new ArrayList<>();
|
|
|
|
|
|
|
|
Map<String, List<MesProductionRecord>> mesProductionRecordListMap = mesProductionRecordList.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() + "=" + sn.getPartNo()));
|
|
|
|
MesProductionRecord mesProductionRecord = mesProductionRecordList.get(0);
|
|
|
|
for (Map.Entry<String, List<MesProductionRecord>> stringListEntry : mesProductionRecordListMap.entrySet()) {
|
|
|
|
|
|
|
|
List<MesProductionRecord> value = stringListEntry.getValue();
|
|
|
|
String workCenterCode = mesProductionRecord.getWorkCenterCode();
|
|
|
|
MesProductionRecord mesProductionRecord = value.get(0);
|
|
|
|
String partNo = mesProductionRecord.getPartNo();
|
|
|
|
String[] split = stringListEntry.getKey().split("=");
|
|
|
|
|
|
|
|
String workCenterCode = split[0];
|
|
|
|
|
|
|
|
String partNo = split[1];
|
|
|
|
|
|
|
|
//查询工作中心
|
|
|
|
//查询工作中心
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean);
|
|
|
@ -1344,7 +1341,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
item.setProduceTime(TimeTool.getToday());
|
|
|
|
item.setProduceTime(TimeTool.getToday());
|
|
|
|
item.setProductTime(item.getProduceTime());
|
|
|
|
item.setProductTime(item.getProduceTime());
|
|
|
|
item.setUnCompleteQty(0d);
|
|
|
|
item.setUnCompleteQty(0d);
|
|
|
|
item.setQty(value.stream().mapToDouble(MesProductionRecord::getQty).sum());
|
|
|
|
item.setQty(mesProductionRecordList.stream().mapToDouble(MesProductionRecord::getQty).sum());
|
|
|
|
item.setCompleteQty(item.getQty());
|
|
|
|
item.setCompleteQty(item.getQty());
|
|
|
|
item.setReportedQty(item.getQty());
|
|
|
|
item.setReportedQty(item.getQty());
|
|
|
|
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
|
|
|
|
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
|
|
|
@ -1362,13 +1359,13 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
//校验物料生产版本是否存在
|
|
|
|
//校验物料生产版本是否存在
|
|
|
|
MesProductVersion mesProductVersion = checkMesProductVersion(item);
|
|
|
|
MesProductVersion mesProductVersion = checkMesProductVersion(item);
|
|
|
|
if (Objects.isNull(mesProductVersion)) {
|
|
|
|
if (Objects.isNull(mesProductVersion)) {
|
|
|
|
continue;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
item.setProductVersion(mesProductVersion.getProductVersion());
|
|
|
|
item.setProductVersion(mesProductVersion.getProductVersion());
|
|
|
|
//获取bom信息
|
|
|
|
//获取bom信息
|
|
|
|
List<MesBom> bomList = findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList());
|
|
|
|
List<MesBom> bomList = findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList());
|
|
|
|
if (org.springframework.util.CollectionUtils.isEmpty(bomList)) {
|
|
|
|
if (org.springframework.util.CollectionUtils.isEmpty(bomList)) {
|
|
|
|
continue;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1377,21 +1374,26 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
ConvertBean.serviceModelInitialize(item, userName);
|
|
|
|
ConvertBean.serviceModelInitialize(item, userName);
|
|
|
|
MesWorkOrder mesWorkOrder = workOrderRepository.insert(item);
|
|
|
|
MesWorkOrder mesWorkOrder = workOrderRepository.insert(item);
|
|
|
|
saveMesWorkOrderLog(mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT.getValue(),item.getQty());
|
|
|
|
saveMesWorkOrderLog(mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT.getValue(),item.getQty());
|
|
|
|
mesWorkOrderList.add(mesWorkOrder);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return mesWorkOrderList;
|
|
|
|
return mesWorkOrder;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private MesProductVersion checkMesProductVersion(MesWorkOrder item) {
|
|
|
|
private MesProductVersion checkMesProductVersion(MesWorkOrder item) {
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getErpWorkCenter(), "workCenterCode", ddlPackBean);
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getErpWorkCenter(), "workCenterCode", ddlPackBean);
|
|
|
|
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
|
|
|
|
List<MesProductVersion> mesProductVersions = mesProductVersionRDao.findByHqlWhere(ddlPackBean);
|
|
|
|
if (Objects.isNull(mesProductVersion)) {
|
|
|
|
if (CollectionUtils.isEmpty(mesProductVersions)) {
|
|
|
|
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());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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;
|
|
|
|
return mesProductVersion;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|