diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductPlanServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductPlanServiceImpl.java index 062b089..5fedfb6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductPlanServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductPlanServiceImpl.java @@ -2,8 +2,10 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesProductPlanService; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesProductPlanDao; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesProductPlan; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -23,6 +25,16 @@ public class MesProductPlanServiceImpl extends BaseMesService im @Autowired private IMesProductPlanDao iMesProductPlanDao; + protected void setPackQueryBean(MesProductPlan bean, DdlPackBean packBean) { + DdlPreparedPack.getStringEqualPack(bean.getPlanOrderNo(), "planOrderNo", packBean); + DdlPreparedPack.getStringEqualPack(bean.getPlanPartNo(), "planPartNo", packBean); + DdlPreparedPack.getStringEqualPack(bean.getPartMappingWorkCenterCode(), "partMappingWorkCenterCode", packBean); + DdlPreparedPack.getStringBiggerPack(bean.getCreateDateTimeStart(), "createDatetime", packBean); + DdlPreparedPack.getStringSmallerPack(bean.getCreateDateTimeEnd(), "createDatetime", packBean); + DdlPreparedPack.getStringBiggerPack(bean.getPlanStartDate(), "planStartDate", packBean); + DdlPreparedPack.getStringSmallerPack(bean.getPlanEndDate(), "planEndDate", packBean); + } + @Override public ListPager queryMesProductPlanPager(MesProductPlan mesProductPlan, Pager pager) { return iMesProductPlanDao.queryMesProductPlanPager(mesProductPlan, pager); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index ad24c1e..a8b055f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -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 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 implements produceSeq = result.getProduceSeq(); } - List orderLogList = new ArrayList<>(); //生成工单号 genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_SORT"); genSerialNoModel.setPartNo(bean.getPartNo()); @@ -98,10 +96,11 @@ public class MesWorkOrderService extends BaseMesService 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 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 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 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()); }