41053 MES:生产工单问题汇总

tags/yfai-mes-ext-v1.0
jun 11 months ago
parent 68a2f24362
commit 15de434e68

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesPartProdGroupService;
import cn.estsh.i3plus.ext.mes.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.api.base.IMesProductOffLineService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService;
@ -61,6 +62,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
private MesShiftRepository mesShiftRDao;
@Autowired
private MesProductPlanRepository mesProductPlanRDao;
@Autowired
private IMesPartProdGroupService mesPartProdGroupService;
@Autowired
private MesCustomerPartRepository mesCustomerPartRDao;
@Override
public MesWorkOrder insert(MesWorkOrder bean) {
@ -84,15 +89,14 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
//生成工单号
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_JIS_SORT);
genSerialNoModel.setPartNo(bean.getPartNo());
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.MES_WORK_ORDER_NO);
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
MesWorkOrder copyMesWorkOrder = new MesWorkOrder();
BeanUtils.copyProperties(bean, copyMesWorkOrder);
copyMesWorkOrder.setProduceSeq(produceSeq + 1);
copyMesWorkOrder.setQty(1D);
copyMesWorkOrder.setWorkOrderNo(resultList.get(0) + "_" + copyMesWorkOrder.getOrganizeCode());
copyMesWorkOrder.setWorkOrderNo(resultList.get(0));
ConvertBean.serviceModelInitialize(copyMesWorkOrder, bean.getCreateUser());
MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
@ -105,24 +109,22 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
return bean;
} else if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
//生成工单号
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_JIS_UN_SORT);
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.MES_WORK_ORDER_NO);
} else {
//生成工单号
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO);
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.MES_WORK_ORDER_NO);
Integer produceSeq = 0;
if (null != result && result.getProduceSeq() != null) {
produceSeq = result.getProduceSeq();
}
bean.setProduceSeq(produceSeq + 1);
GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO_SEQ);
orderSeqSerialNoModel.setPartNo(bean.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(orderSeqSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
bean.setWorkOrderSeq(resultList.get(0));
// bean.setOrderSeq(Integer.parseInt(resultList.get(0)));
}
genSerialNoModel.setPartNo(bean.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
bean.setWorkOrderNo(resultList.get(0) + "_" + bean.getOrganizeCode());
bean.setWorkOrderNo(resultList.get(0));
bean.setQty(bean.getQty());
ConvertBean.serviceModelInitialize(bean, bean.getCreateUser());
@ -327,8 +329,17 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesException.throwMesBusiException("vin号【%s】重复", item.getVinCode());
}
}
//校验零件生产组信息
// MesPartProdGroupDetail mesPartProdGroupDetail = new MesPartProdGroupDetail();
// mesPartProdGroupDetail.setWorkCenterCode(item.getWorkCenterCode());
// mesPartProdGroupDetail.setPartNo(item.getPartNo());
// mesPartProdGroupDetail.setOrganizeCode(item.getOrganizeCode());
// List<MesPartProdGroup> mesPartProdGroup = mesPartProdGroupService.findMesPartProdGroup(mesPartProdGroupDetail);
//排序工单数量为1
item.setQty(1d);
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue());
} else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
ValidatorBean.checkNotNull(item.getProductVersion(), "生产版本不能为空");
@ -345,9 +356,12 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (StringUtil.isEmpty(item.getPlanStartTime()) || StringUtil.isEmpty(item.getPlanEndTime())) {
packPlanTime(item);
}
if(StringUtil.isEmpty(item.getCustomerPartNo())){
getCustomerPart(item);
}
//校验物料生产版本是否存在
checkMesProductVersion(item, mesWorkCenter);
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
} else {
ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空");
ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空");
@ -356,16 +370,30 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter);
item.setProductVersion(mesProductVersion.getProductVersion());
}
if(StringUtil.isEmpty(item.getCustomerPartNo())){
getCustomerPart(item);
}
//拼接
// item.setPlanStartTime(item.getPlanStartTime() + " " + "00:00:00");
// item.setPlanEndTime(item.getPlanEndTime() + " " + "23:59:59");
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue());
}
//物料名称不存在,从物料信息中获取
MesPart mesPart = iMesPartService.getPartByPartNo(item.getPartNo(), item.getOrganizeCode());
item.setPartNameRdd(mesPart.getPartName());
item.setUnit(mesPart.getUnit());
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue());
}
private void getCustomerPart(MesWorkOrder item) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "erpPartNo", ddlPackBean);
MesCustomerPart customerPart = mesCustomerPartRDao.getByProperty(ddlPackBean);
if(!Objects.isNull(customerPart)){
item.setCustomerPartNo(customerPart.getCustomerPartNo());
item.setCustomerPartName(customerPart.getCustomerPartName());
}
}
private void checkMesProductVersion(MesWorkOrder item, MesWorkCenter mesWorkCenter) {

@ -22,12 +22,8 @@ public class MesCommonConstant {
*/
//BTO工单顺序号
public static final String ORDER_NO_BTO_SEQ = "ORDER_NO_BTO_SEQ";
//BTO单号规则
public static final String ORDER_NO_BTO = "ORDER_NO_BTO";
//非排序单号规则
public static final String ORDER_NO_JIS_UN_SORT = "ORDER_NO_JIS_UN_SORT";
//排序单号规则
public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT";
public static final String MES_WORK_ORDER_NO = "MES_WORK_ORDER_NO";
//报工条码规则
public static final String REPORT_SN = "REPORT_SN";
//装车单号

Loading…
Cancel
Save