问题清单问题修复

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

Loading…
Cancel
Save