|
|
|
@ -18,10 +18,7 @@ import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.util.StringUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesBomRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesProductVersionRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesShiftRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.auth.AuthUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
|
|
|
@ -61,6 +58,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
private MesWorkCenterRepository mesWorkCenterRDao;
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesShiftRepository mesShiftRDao;
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesProductPlanRepository mesProductPlanRDao;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesWorkOrder insert(MesWorkOrder bean) {
|
|
|
|
@ -83,7 +82,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
produceSeq = result.getProduceSeq();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<MesWorkOrderLog> orderLogList = new ArrayList<>();
|
|
|
|
|
//生成工单号
|
|
|
|
|
genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_SORT");
|
|
|
|
|
genSerialNoModel.setPartNo(bean.getPartNo());
|
|
|
|
@ -98,10 +96,11 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
|
|
|
|
|
MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
|
|
|
|
|
BeanUtils.copyProperties(copyMesWorkOrder, workOrderLog, "id");
|
|
|
|
|
orderLogList.add(workOrderLog);
|
|
|
|
|
|
|
|
|
|
baseRDao.insert(copyMesWorkOrder);
|
|
|
|
|
workOrderLogService.insertBatch(orderLogList);
|
|
|
|
|
workOrderLogService.insert(workOrderLog);
|
|
|
|
|
//写入SAP下发计划表
|
|
|
|
|
saveMesProductPlan(bean);
|
|
|
|
|
//写入接口表
|
|
|
|
|
//iMesWorkOrderToSapService.insert(bean);
|
|
|
|
|
return bean;
|
|
|
|
@ -133,11 +132,54 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
BeanUtils.copyProperties(bean, workOrderLog, "id");
|
|
|
|
|
workOrderLogService.insert(workOrderLog);
|
|
|
|
|
bean = baseRDao.insert(bean);
|
|
|
|
|
//写入接口表
|
|
|
|
|
//iMesWorkOrderToSapService.insert(bean);
|
|
|
|
|
//写入SAP下发计划表
|
|
|
|
|
saveMesProductPlan(bean);
|
|
|
|
|
return bean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void saveMesProductPlan(MesWorkOrder bean) {
|
|
|
|
|
if(StringUtil.isEmpty(bean.getPlanOrderNo())){
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"planPartNo",ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(bean.getPlanStartTime(),"planStartDate",ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(bean.getPlanEndTime(),"planEndDate",ddlPackBean);
|
|
|
|
|
MesProductPlan mesProductPlan = mesProductPlanRDao.getByProperty(ddlPackBean);
|
|
|
|
|
if(null == mesProductPlan){
|
|
|
|
|
MesProductPlan mesPlanOrder = new MesProductPlan();
|
|
|
|
|
mesPlanOrder.setPlanOrderNo("");
|
|
|
|
|
mesPlanOrder.setPlanQty(bean.getQty());
|
|
|
|
|
mesPlanOrder.setPlanPartNo(bean.getPartNo());
|
|
|
|
|
mesPlanOrder.setCompleteQty(bean.getQty());
|
|
|
|
|
mesPlanOrder.setUncompleteQty(0d);
|
|
|
|
|
mesPlanOrder.setUnit(bean.getUnit());
|
|
|
|
|
mesPlanOrder.setPlanStartDate(bean.getPlanStartTime());
|
|
|
|
|
mesPlanOrder.setPlanEndDate(bean.getPlanEndTime());
|
|
|
|
|
mesPlanOrder.setPartMappingWorkCenterCode(bean.getWorkCenterCode());
|
|
|
|
|
mesPlanOrder.setPlanOrganizeCode(bean.getOrganizeCode());
|
|
|
|
|
mesPlanOrder.setOrganizeCode(bean.getOrganizeCode());
|
|
|
|
|
ConvertBean.serviceModelInitialize(mesPlanOrder, bean.getCreateUser());
|
|
|
|
|
mesProductPlanRDao.insert(mesPlanOrder);
|
|
|
|
|
}else {
|
|
|
|
|
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getQty()));
|
|
|
|
|
mesProductPlan.setPlanQty(mesProductPlan.getCompleteQty());
|
|
|
|
|
ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser());
|
|
|
|
|
mesProductPlanRDao.update(mesProductPlan);
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(bean.getPlanOrderNo(),"orderNo",ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"partNo",ddlPackBean);
|
|
|
|
|
MesProductPlan mesProductPlan = mesProductPlanRDao.getByProperty(ddlPackBean);
|
|
|
|
|
if(null == mesProductPlan){
|
|
|
|
|
MesException.throwMesBusiException("SAP计划单号【%s】物料【%s】,不存在", bean.getPlanOrderNo(), bean.getPartNo());
|
|
|
|
|
}
|
|
|
|
|
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getQty()));
|
|
|
|
|
mesProductPlan.setUncompleteQty(MathOperation.sub(mesProductPlan.getPlanQty(),mesProductPlan.getCompleteQty()));
|
|
|
|
|
ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser());
|
|
|
|
|
mesProductPlanRDao.update(mesProductPlan);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesWorkOrder update(MesWorkOrder bean) {
|
|
|
|
|
//回传sap
|
|
|
|
@ -280,7 +322,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
if (baseRDao.isExitByHql(ddlPackBean)) {
|
|
|
|
|
MesException.throwMesBusiException("vin号【%s】重复", item.getVinCode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//排序工单数量为1
|
|
|
|
|
item.setQty(1d);
|
|
|
|
|
} else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
|
|
|
|
|
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(item.getProductVersion(), "生产版本不能为空");
|
|
|
|
@ -313,10 +356,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
// item.setPlanEndTime(item.getPlanEndTime() + " " + "23:59:59");
|
|
|
|
|
}
|
|
|
|
|
//物料名称不存在,从物料信息中获取
|
|
|
|
|
if (StringUtil.isEmpty(item.getPartNameRdd())) {
|
|
|
|
|
MesPart mesPart = iMesPartService.getPartByPartNo(item.getPartNo(), item.getOrganizeCode());
|
|
|
|
|
item.setPartNameRdd(mesPart.getPartName());
|
|
|
|
|
}
|
|
|
|
|
MesPart mesPart = iMesPartService.getPartByPartNo(item.getPartNo(), item.getOrganizeCode());
|
|
|
|
|
item.setPartNameRdd(mesPart.getPartName());
|
|
|
|
|
item.setUnit(mesPart.getUnit());
|
|
|
|
|
|
|
|
|
|
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|