|
|
|
@ -253,7 +253,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
mesProductOffLineRDao.saveAll(mesProductOffLineList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public void doPcnJobProductReport(List<MesProduceSn> mesProduceSns,List<MesShift> mesShiftList,String organizeCode, String userName ,MesWorkOrder mesWorkOrderDb) {
|
|
|
|
|
public void doPcnJobProductReport(List<MesProductionRecord> mesProductionRecordList,List<MesShift> mesShiftList,String organizeCode, String userName ,MesWorkOrder mesWorkOrderDb) {
|
|
|
|
|
|
|
|
|
|
//查询物料信息
|
|
|
|
|
DdlPackBean ddlPackBeanPart = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode());
|
|
|
|
@ -279,8 +279,6 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
//更新工单
|
|
|
|
|
// updateMesWorkOrder(mesWorkOrderDb, userName );
|
|
|
|
|
|
|
|
|
|
//生成条码 todo 有条码 不生成
|
|
|
|
|
|
|
|
|
|
//保存数据
|
|
|
|
|
// List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
|
|
|
|
|
// for (MesBom mesBom : mesBoms) {
|
|
|
|
@ -288,11 +286,11 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
// }
|
|
|
|
|
// mesProductOffLineService.insertBatch(mesProductOffLineList);
|
|
|
|
|
|
|
|
|
|
LOGGER.info("产线:{} 零件:{}更新工单mesProduceSns:{}", mesWorkOrderDb.getWorkCenterCode(), mesWorkOrderDb.getPartNo(),mesProduceSns.size());
|
|
|
|
|
LOGGER.info("产线:{} 零件:{}更新工单mesProduceSns:{}", mesWorkOrderDb.getWorkCenterCode(), mesWorkOrderDb.getPartNo(),mesProductionRecordList.size());
|
|
|
|
|
//保存数据
|
|
|
|
|
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
|
|
|
|
|
MesProductOffLine newMesProductOffLine;
|
|
|
|
|
for (MesProduceSn produceSn : mesProduceSns) {
|
|
|
|
|
for (MesProductionRecord mesProductionRecord : mesProductionRecordList) {
|
|
|
|
|
for (MesBom mesBom : mesBoms) {
|
|
|
|
|
newMesProductOffLine = new MesProductOffLine();
|
|
|
|
|
newMesProductOffLine.setReportPartNo(mesWorkOrderDb.getPartNo());
|
|
|
|
@ -303,9 +301,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint());
|
|
|
|
|
newMesProductOffLine.setStgeLoc(mesProductVersion.getShipInventoryPoint());
|
|
|
|
|
newMesProductOffLine.setQty(1d);
|
|
|
|
|
newMesProductOffLine.setReportSn(produceSn.getProductSn());
|
|
|
|
|
newMesProductOffLine.setReportSn(mesProductionRecord.getProductSn());
|
|
|
|
|
newMesProductOffLine.setBomVersion(mesWorkOrderDb.getProductVersion());
|
|
|
|
|
newMesProductOffLine.setSerialNumber(produceSn.getProductSn());
|
|
|
|
|
newMesProductOffLine.setSerialNumber(mesProductionRecord.getProductSn());
|
|
|
|
|
newMesProductOffLine.setUnit(mesBom.getUnit());
|
|
|
|
|
newMesProductOffLine.setItemUnit(mesBom.getItemUnit());
|
|
|
|
|
newMesProductOffLine.setWorkOrderNo(mesWorkOrderDb.getWorkOrderNo());
|
|
|
|
@ -809,12 +807,12 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesWorkOrder> insertMesWorkOrder(List<MesProduceSn> mesProduceSns,List<MesShift> mesShiftList, String organizeCode, String userName) {
|
|
|
|
|
public List<MesWorkOrder> insertMesWorkOrder(List<MesProductionRecord> mesProductionRecordList,List<MesShift> mesShiftList, String organizeCode, String userName) {
|
|
|
|
|
List<MesWorkOrder> mesWorkOrderList=new ArrayList<>();
|
|
|
|
|
Map<String, List<MesProduceSn>> snListMap = mesProduceSns.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() +"="+ sn.getPartNo()));
|
|
|
|
|
for (Map.Entry<String, List<MesProduceSn>> stringListEntry : snListMap.entrySet()) {
|
|
|
|
|
List<MesProduceSn> value = stringListEntry.getValue();
|
|
|
|
|
MesProduceSn mesProduceSn = value.get(0);
|
|
|
|
|
Map<String, List<MesProductionRecord>> mesProductionRecordListMap = mesProductionRecordList.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() +"="+ sn.getPartNo()));
|
|
|
|
|
for (Map.Entry<String, List<MesProductionRecord>> stringListEntry : mesProductionRecordListMap.entrySet()) {
|
|
|
|
|
List<MesProductionRecord> value = stringListEntry.getValue();
|
|
|
|
|
MesProductionRecord mesProductionRecord = value.get(0);
|
|
|
|
|
String[] split = stringListEntry.getKey().split("=");
|
|
|
|
|
String workCenterCode = split[0];
|
|
|
|
|
String partNo = split[1];
|
|
|
|
@ -853,11 +851,11 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
MesPcnException.throwMesBusiException("单号流水码生成重复");
|
|
|
|
|
}
|
|
|
|
|
item.setWorkOrderNo(orderNo);
|
|
|
|
|
item.setPartName(mesProduceSn.getPartName());
|
|
|
|
|
item.setPartName(mesProductionRecord.getPartName());
|
|
|
|
|
//生产时间新增取当天
|
|
|
|
|
item.setProduceTime(TimeTool.getToday());
|
|
|
|
|
item.setUnCompleteQty(0d);
|
|
|
|
|
item.setQty(value.stream().mapToDouble(MesProduceSn::getQty).sum());
|
|
|
|
|
item.setQty(value.stream().mapToDouble(MesProductionRecord::getQty).sum());
|
|
|
|
|
item.setReportedQty(item.getQty());
|
|
|
|
|
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
|
|
|
|
|
|
|
|
|
@ -877,17 +875,11 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
item.setProductVersion(mesProductVersion.getProductVersion());
|
|
|
|
|
//获取bom信息
|
|
|
|
|
List<MesBom> bomList = findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList());
|
|
|
|
|
//item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
|
|
|
|
|
|
|
|
|
|
//发送工单信息给WMS
|
|
|
|
|
saveMesWorkOrderToWms.addAll(saveMesWorkOrderToWms(item, bomList));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()){
|
|
|
|
|
// //生产工单-非排序手工插单,关闭该零件当天之前日期非排序工单
|
|
|
|
|
// List<String> partNoList = Collections.singletonList(item.getPartNo());
|
|
|
|
|
// deleteUnSortOrder(orderNo,partNoList);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
item.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
ConvertBean.serviceModelInitialize(item, userName);
|
|
|
|
|
MesWorkOrder mesWorkOrder = workOrderRepository.insert(item);
|
|
|
|
|