问题清单问题修复

tags/yfai-mes-ext-v1.0
jun 11 months ago
parent 29cc194ad7
commit 36fb84aef3

@ -84,9 +84,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
@Override
public MesWorkOrder insert(MesWorkOrder bean) {
//插入前构造数据
onInsertBean(bean);
//获取相同类型 相同标识 生产序号最大值的
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), "workOrderStatus", orderPackBean);
@ -94,15 +91,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"produceSeq"}, orderPackBean);
MesWorkOrder result = baseRDao.getByProperty(orderPackBean);
//生成工单号
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.MES_WORK_ORDER_NO);
List<String> orderList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
String orderNo = orderList.get(0);
orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean);
if (baseRDao.isExitByHql(orderPackBean)) {
MesException.throwMesBusiException("单号流水码生成重复");
}
//插入前构造数据
onInsertBean(bean);
//若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1
if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
@ -113,7 +103,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesWorkOrder copyMesWorkOrder = new MesWorkOrder();
BeanUtils.copyProperties(bean, copyMesWorkOrder);
copyMesWorkOrder.setProduceSeq((long) (produceSeq + 1));
copyMesWorkOrder.setWorkOrderNo(orderNo);
copyMesWorkOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelInitialize(copyMesWorkOrder, bean.getCreateUser());
@ -130,7 +119,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
List<String> resultList = syncFuncService.syncSerialNo(orderSeqSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
bean.setWorkOrderSeq(resultList.get(0));
}
bean.setWorkOrderNo(orderNo);
bean.setQty(bean.getQty());
bean.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelInitialize(bean, bean.getCreateUser());
@ -168,6 +156,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//更新状态
if (result.getWorkOrderStatus().intValue() != bean.getWorkOrderStatus().intValue()) {
result.setWorkOrderStatus(bean.getWorkOrderStatus());
if (result.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()
&& bean.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) {
//校验物料生产版本是否存在
@ -177,7 +166,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//发送工单信息给WMS
mesWorkOrderToWmsService.insertBatch(mesWorkOrderToWmsService.saveMesWorkOrderToWms(result, bomList));
}
result.setWorkOrderStatus(bean.getWorkOrderStatus());
}
//修改工单,工单标识需要改为未同步
result.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
@ -246,6 +234,16 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (StringUtil.isEmpty(item.getCustPartNo())) {
getCustomerPart(item);
}
//生成工单号
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.MES_WORK_ORDER_NO);
List<String> orderList = syncFuncService.syncSerialNo(genSerialNoModel, item.getCreateUser(), item.getOrganizeCode(), 1).getResultList();
String orderNo = orderList.get(0);
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean);
if (baseRDao.isExitByHql(orderPackBean)) {
MesException.throwMesBusiException("单号流水码生成重复");
}
item.setWorkOrderNo(orderNo);
//校验标识
//若工单类型为排序
List<MesWorkOrderToWms> saveMesWorkOrderToWms = new ArrayList<>();
@ -325,10 +323,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesProductVersion mesProductVersion = checkMesProductVersion(item);
//获取bom信息
List<MesBom> bomList = mesBomService.findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList());
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
//发送工单信息给WMS
saveMesWorkOrderToWms.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, bomList));
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
} else {
ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空");
ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空");
@ -340,9 +337,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
item.setProductVersion(mesProductVersion.getProductVersion());
//获取bom信息
List<MesBom> bomList = mesBomService.findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList());
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
//发送工单信息给WMS
saveMesWorkOrderToWms.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, bomList));
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
}
//物料名称不存在,从物料信息中获取
MesPartSap mesPart = iMesPartSapService.getMesPartSapByPartNo(item.getPartNo(), item.getOrganizeCode());
@ -448,15 +445,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesWorkOrder next = mesWorkOrderList.iterator().next();
//属性校验&字段填充
List<MesWorkOrderToWms> mesWorkOrderToWmsList = checkData(mesWorkOrderList, next.getOrganizeCode());
//生成工单号
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.MES_WORK_ORDER_NO);
List<String> orderList = syncFuncService.syncSerialNo(genSerialNoModel, next.getCreateUser(), next.getOrganizeCode(), mesWorkOrderList.size()).getResultList();
//查询工单是否已经存在
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(next.getOrganizeCode());
DdlPreparedPack.getInPackList(orderList, "workOrderNo", orderPackBean);
if (baseRDao.isExitByHql(orderPackBean)) {
MesException.throwMesBusiException("单号已存在");
}
//BTO序号
List<String> seqList = new ArrayList<>();
if (MesExtEnumUtil.ORDER_TYPE.BTO.getValue() == next.getWorkOrderType()) {
@ -467,7 +455,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
int index = 0;
for (MesWorkOrder item : mesWorkOrderList) {
//获取相同类型 相同标识 生产序号最大值的
orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(item.getWorkOrderStatus(), "workOrderStatus", orderPackBean);
DdlPreparedPack.getStringEqualPack(item.getOrderFlag(), "orderFlag", orderPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"produceSeq"}, orderPackBean);
@ -482,7 +470,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesWorkOrder copyMesWorkOrder = new MesWorkOrder();
BeanUtils.copyProperties(item, copyMesWorkOrder);
copyMesWorkOrder.setProduceSeq((long) (produceSeq + 1));
copyMesWorkOrder.setWorkOrderNo(orderList.get(index));
copyMesWorkOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelInitialize(copyMesWorkOrder, item.getCreateUser());
index++;
@ -500,8 +487,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
item.setProduceSeq(produceSeq + 1);
item.setWorkOrderSeq(seqList.get(index));
}
item.setWorkOrderNo(orderList.get(index));
item.setQty(item.getQty());
item.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelInitialize(item, item.getCreateUser());
baseRDao.insert(item);
@ -522,6 +507,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
private List<MesWorkOrderToWms> checkData(List<MesWorkOrder> mesWorkOrderList, String organizeCode) {
MesWorkOrder next = mesWorkOrderList.iterator().next();
String nowDate = TimeTool.getNowTime(true);
//获取产线信息
List<String> workCenterCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).distinct().collect(Collectors.toList());
@ -555,6 +541,15 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesException.throwMesBusiException("vin号【%s】已存在", list);
}
}
//生成工单号
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.MES_WORK_ORDER_NO);
List<String> orderList = syncFuncService.syncSerialNo(genSerialNoModel, next.getCreateUser(), next.getOrganizeCode(), mesWorkOrderList.size()).getResultList();
//查询工单是否已经存在
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(next.getOrganizeCode());
DdlPreparedPack.getInPackList(orderList, "workOrderNo", orderPackBean);
if (baseRDao.isExitByHql(orderPackBean)) {
MesException.throwMesBusiException("单号已存在");
}
//BOM信息
Map<String, List<MesBom>> mesBomMap = new HashMap<>();
@ -564,7 +559,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
Map<String, MesPartProdGroup> mesPartProdGroupMap = new HashMap<>();
//发送wms数据
List<MesWorkOrderToWms> mesWorkOrderToWmsList = new ArrayList<>();
int index = 0;
for (MesWorkOrder item : mesWorkOrderList) {
item.setWorkOrderNo(orderList.get(index));
// 数据校验
ValidatorBean.checkNotNull(item.getWorkOrderType(), "工单类型不能为空");
ValidatorBean.checkNotNull(item.getWorkCenterCode(), "产线不能为空");
@ -702,10 +699,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesBomList = mesBomService.findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList());
mesBomMap.put(item.getPartNo() + mesProductVersion.getAlternativePartList(), mesBomList);
}
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
//发送工单信息给WMS
mesWorkOrderToWmsList.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, mesBomList));
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
} else {
ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空");
ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空");
@ -729,11 +726,12 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesBomList = mesBomService.findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList());
mesBomMap.put(item.getPartNo() + mesProductVersion.getAlternativePartList(), mesBomList);
}
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
//发送工单信息给WMS
mesWorkOrderToWmsList.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, mesBomList));
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
}
item.setUnCompleteQty(item.getQty());
index++;
}
return mesWorkOrderToWmsList;
}

Loading…
Cancel
Save