SAP生产计划逻辑调整

tags/yfai-mes-ext-v1.0
jun 1 year ago
parent df880ec4e3
commit 630bf2dd61

@ -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<MesProductPlan> 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<MesProductPlan> queryMesProductPlanPager(MesProductPlan mesProductPlan, Pager pager) {
return iMesProductPlanDao.queryMesProductPlanPager(mesProductPlan, pager);

@ -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());
}

Loading…
Cancel
Save