演示功能修复

tags/yfai-mes-ext-v1.0
jun 1 year ago
parent 306ddf5fe7
commit 838aeed985

@ -20,6 +20,7 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
public class MesCavityGroupCfgServiceImpl extends BaseMesService<MesCavityGroupCfg> implements IMesCavityGroupCfgService { public class MesCavityGroupCfgServiceImpl extends BaseMesService<MesCavityGroupCfg> implements IMesCavityGroupCfgService {
@Override
protected void setPackQueryBean(MesCavityGroupCfg bean, DdlPackBean packBean) { protected void setPackQueryBean(MesCavityGroupCfg bean, DdlPackBean packBean) {
DdlPreparedPack.getStringLikerPack(bean.getCavityCode(), "cavityCode", packBean); DdlPreparedPack.getStringLikerPack(bean.getCavityCode(), "cavityCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getCavityName(), "cavityName", packBean); DdlPreparedPack.getStringLikerPack(bean.getCavityName(), "cavityName", packBean);
@ -28,6 +29,7 @@ public class MesCavityGroupCfgServiceImpl extends BaseMesService<MesCavityGroupC
packBean.setOrderByStr(" order by createDatetime desc "); packBean.setOrderByStr(" order by createDatetime desc ");
} }
@Override
protected void onInsertBean(MesCavityGroupCfg item) { protected void onInsertBean(MesCavityGroupCfg item) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getCavityCode(), "腔组代码不能为空"); ValidatorBean.checkNotNull(item.getCavityCode(), "腔组代码不能为空");
@ -40,6 +42,7 @@ public class MesCavityGroupCfgServiceImpl extends BaseMesService<MesCavityGroupC
} }
} }
@Override
protected void onUpdateBean(MesCavityGroupCfg item) { protected void onUpdateBean(MesCavityGroupCfg item) {
// 数据校验 // 数据校验
DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());

@ -19,16 +19,19 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
public class MesCavityGroupDetailCfgServiceImpl extends BaseMesService<MesCavityGroupDetailCfg> implements IMesCavityGroupDetailCfgService { public class MesCavityGroupDetailCfgServiceImpl extends BaseMesService<MesCavityGroupDetailCfg> implements IMesCavityGroupDetailCfgService {
@Override
protected void setPackQueryBean(MesCavityGroupDetailCfg bean, DdlPackBean packBean) { protected void setPackQueryBean(MesCavityGroupDetailCfg bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCavityCode(),"cavityCode",packBean); DdlPreparedPack.getStringEqualPack(bean.getCavityCode(),"cavityCode",packBean);
DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(),"equipmentCode",packBean); DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(),"equipmentCode",packBean);
} }
@Override
protected void onInsertBean(MesCavityGroupDetailCfg item) { protected void onInsertBean(MesCavityGroupDetailCfg item) {
} }
@Override
protected void onUpdateBean(MesCavityGroupDetailCfg item) { protected void onUpdateBean(MesCavityGroupDetailCfg item) {
} }
} }

@ -45,6 +45,7 @@ public class MesCraftRouteDetailServiceImpl extends BaseMesService<MesCraftRoute
private IMesCraftService mesCraftService; private IMesCraftService mesCraftService;
@Override
protected void setPackQueryBean(MesCraftRouteDetail bean, DdlPackBean packBean) { protected void setPackQueryBean(MesCraftRouteDetail bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCraftRouteCode(), "craftRouteCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCraftRouteCode(), "craftRouteCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getCraftCode(), "craftCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCraftCode(), "craftCode", packBean);
@ -52,6 +53,7 @@ public class MesCraftRouteDetailServiceImpl extends BaseMesService<MesCraftRoute
packBean.setOrderByStr(" order by seq asc "); packBean.setOrderByStr(" order by seq asc ");
} }
@Override
protected void setPackQueryBean(DdlPackBean packBean) { protected void setPackQueryBean(DdlPackBean packBean) {
packBean.setOrderByStr(" order by seq asc "); packBean.setOrderByStr(" order by seq asc ");
} }

@ -23,12 +23,14 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
public class MesCraftRouteServiceImpl extends BaseMesService<MesCraftRoute> implements IMesCraftRouteService { public class MesCraftRouteServiceImpl extends BaseMesService<MesCraftRoute> implements IMesCraftRouteService {
@Override
protected void setPackQueryBean(MesCraftRoute bean, DdlPackBean packBean) { protected void setPackQueryBean(MesCraftRoute bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCraftRouteCode(), "craftRouteCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCraftRouteCode(), "craftRouteCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getCraftRouteName(), "craftRouteName", packBean); DdlPreparedPack.getStringLikerPack(bean.getCraftRouteName(), "craftRouteName", packBean);
DdlPreparedPack.getNumEqualPack(bean.getCraftRouteType(), "craftRouteType", packBean); DdlPreparedPack.getNumEqualPack(bean.getCraftRouteType(), "craftRouteType", packBean);
} }
@Override
protected void onInsertBean(MesCraftRoute item) { protected void onInsertBean(MesCraftRoute item) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getCraftRouteCode(), "工艺路线代码不能为空"); ValidatorBean.checkNotNull(item.getCraftRouteCode(), "工艺路线代码不能为空");
@ -46,6 +48,7 @@ public class MesCraftRouteServiceImpl extends BaseMesService<MesCraftRoute> impl
} }
} }
@Override
protected void onUpdateBean(MesCraftRoute item) { protected void onUpdateBean(MesCraftRoute item) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getCraftRouteCode(), "工艺路线代码不能为空"); ValidatorBean.checkNotNull(item.getCraftRouteCode(), "工艺路线代码不能为空");

@ -29,11 +29,13 @@ public class MesCraftServiceImpl extends BaseMesService<MesCraft> implements IMe
@Autowired @Autowired
private IMesCraftDao mesCraftDao; private IMesCraftDao mesCraftDao;
@Override
protected void setPackQueryBean(MesCraft bean, DdlPackBean packBean) { protected void setPackQueryBean(MesCraft bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCraftCode(), "craftCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCraftCode(), "craftCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getCraftName(), "craftName", packBean); DdlPreparedPack.getStringLikerPack(bean.getCraftName(), "craftName", packBean);
} }
@Override
protected void onInsertBean(MesCraft item) { protected void onInsertBean(MesCraft item) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空"); ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空");
@ -52,6 +54,7 @@ public class MesCraftServiceImpl extends BaseMesService<MesCraft> implements IMe
} }
@Override
protected void onUpdateBean(MesCraft item) { protected void onUpdateBean(MesCraft item) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空"); ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空");

@ -19,16 +19,18 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
public class MesEquipmentProdParamCfgServiceImpl extends BaseMesService<MesEquipmentProdParamCfg> implements IMesEquipmentProdParamCfgService { public class MesEquipmentProdParamCfgServiceImpl extends BaseMesService<MesEquipmentProdParamCfg> implements IMesEquipmentProdParamCfgService {
@Override
protected void setPackQueryBean(MesEquipmentProdParamCfg bean, DdlPackBean packBean) { protected void setPackQueryBean(MesEquipmentProdParamCfg bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCavityCode(),"cavityCode",packBean); DdlPreparedPack.getStringEqualPack(bean.getCavityCode(),"cavityCode",packBean);
DdlPreparedPack.getNumEqualPack(bean.getSeq(),"seq",packBean); DdlPreparedPack.getNumEqualPack(bean.getSeq(),"seq",packBean);
} }
@Override
protected void onInsertBean(MesEquipmentProdParamCfg item) { protected void onInsertBean(MesEquipmentProdParamCfg item) {
item.setDataSource(MesExtEnumUtil.DATA_SOURCE.DATA_SOURCE30.getValue()); item.setDataSource(MesExtEnumUtil.DATA_SOURCE.DATA_SOURCE30.getValue());
} }
@Override
protected void onUpdateBean(MesEquipmentProdParamCfg item) { protected void onUpdateBean(MesEquipmentProdParamCfg item) {
} }

@ -18,17 +18,18 @@ import org.springframework.stereotype.Service;
@Service @Service
@Slf4j @Slf4j
public class MesModelMultiCavityServiceImpl extends BaseMesService<MesModelMultiCavity> implements IMesModelMultiCavityService { public class MesModelMultiCavityServiceImpl extends BaseMesService<MesModelMultiCavity> implements IMesModelMultiCavityService {
@Override
protected void setPackQueryBean(MesModelMultiCavity bean, DdlPackBean packBean) { protected void setPackQueryBean(MesModelMultiCavity bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getModuleCode(),"moduleCode",packBean); DdlPreparedPack.getStringEqualPack(bean.getModuleCode(),"moduleCode",packBean);
DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"partNo",packBean); DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"partNo",packBean);
DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(),"equipmentCode",packBean); DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(),"equipmentCode",packBean);
} }
@Override
protected void onInsertBean(MesModelMultiCavity item) { protected void onInsertBean(MesModelMultiCavity item) {
} }
@Override
protected void onUpdateBean(MesModelMultiCavity item) { protected void onUpdateBean(MesModelMultiCavity item) {
} }
} }

@ -22,6 +22,7 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
public class MesProcessCraftCfgServiceImpl extends BaseMesService<MesProcessCraftCfg> implements IMesProcessCraftCfgService { public class MesProcessCraftCfgServiceImpl extends BaseMesService<MesProcessCraftCfg> implements IMesProcessCraftCfgService {
@Override
protected void setPackQueryBean(MesProcessCraftCfg bean, DdlPackBean packBean) { protected void setPackQueryBean(MesProcessCraftCfg bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCraftCode(), "craftCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCraftCode(), "craftCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getProcessCode(), "processCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getProcessCode(), "processCode", packBean);
@ -29,6 +30,7 @@ public class MesProcessCraftCfgServiceImpl extends BaseMesService<MesProcessCraf
DdlPreparedPack.getStringLikerPack(bean.getProcessName(), "processName", packBean); DdlPreparedPack.getStringLikerPack(bean.getProcessName(), "processName", packBean);
} }
@Override
protected void onInsertBean(MesProcessCraftCfg item) { protected void onInsertBean(MesProcessCraftCfg item) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空"); ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空");
@ -47,6 +49,7 @@ public class MesProcessCraftCfgServiceImpl extends BaseMesService<MesProcessCraf
} }
} }
@Override
protected void onUpdateBean(MesProcessCraftCfg item) { protected void onUpdateBean(MesProcessCraftCfg item) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空"); ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空");

@ -25,6 +25,7 @@ public class MesProductPlanServiceImpl extends BaseMesService<MesProductPlan> im
@Autowired @Autowired
private IMesProductPlanDao iMesProductPlanDao; private IMesProductPlanDao iMesProductPlanDao;
@Override
protected void setPackQueryBean(MesProductPlan bean, DdlPackBean packBean) { protected void setPackQueryBean(MesProductPlan bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getPlanOrderNo(), "planOrderNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getPlanOrderNo(), "planOrderNo", packBean);
DdlPreparedPack.getStringEqualPack(bean.getPlanPartNo(), "planPartNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getPlanPartNo(), "planPartNo", packBean);

@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
public class MesProductVersionService extends BaseMesService<MesProductVersion> implements IMesProductVersionService { public class MesProductVersionService extends BaseMesService<MesProductVersion> implements IMesProductVersionService {
@Override
protected void setPackQueryBean(MesProductVersion bean, DdlPackBean packBean) { protected void setPackQueryBean(MesProductVersion bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"partNo",packBean); DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"partNo",packBean);
DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(),"workCenterCode",packBean); DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(),"workCenterCode",packBean);

@ -21,12 +21,14 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
public class MesWindowServiceImpl extends BaseMesService<MesWindow> implements IMesWindowService { public class MesWindowServiceImpl extends BaseMesService<MesWindow> implements IMesWindowService {
@Override
protected void setPackQueryBean(MesWindow bean, DdlPackBean packBean) { protected void setPackQueryBean(MesWindow bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getWindowNo(),"windowNo",packBean); DdlPreparedPack.getStringEqualPack(bean.getWindowNo(),"windowNo",packBean);
DdlPreparedPack.getStringLikerPack(bean.getWindowName(),"windowName",packBean); DdlPreparedPack.getStringLikerPack(bean.getWindowName(),"windowName",packBean);
DdlPreparedPack.getNumEqualPack(bean.getWindowType(),"windowType",packBean); DdlPreparedPack.getNumEqualPack(bean.getWindowType(),"windowType",packBean);
} }
@Override
protected void onInsertBean(MesWindow item) { protected void onInsertBean(MesWindow item) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getWindowNo(), "界面编号不能为空"); ValidatorBean.checkNotNull(item.getWindowNo(), "界面编号不能为空");
@ -47,6 +49,7 @@ public class MesWindowServiceImpl extends BaseMesService<MesWindow> implements I
} }
@Override
protected void onUpdateBean(MesWindow item) { protected void onUpdateBean(MesWindow item) {
// 数据校验 // 数据校验

@ -3,9 +3,9 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesPartService; 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.IMesProductOffLineService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService;
import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao;
import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.mes.apiservice.util.DateUtil; import cn.estsh.i3plus.mes.apiservice.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
@ -19,9 +19,12 @@ import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.util.DateUtilExt;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
@ -29,9 +32,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -43,8 +44,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
@Autowired @Autowired
private ISyncFuncService syncFuncService; private ISyncFuncService syncFuncService;
@Autowired @Autowired
private IMesWorkOrderToSapService iMesWorkOrderToSapService;
@Autowired
private IMesPartService iMesPartService; private IMesPartService iMesPartService;
@Autowired @Autowired
private MesProductVersionRepository mesProductVersionRDao; private MesProductVersionRepository mesProductVersionRDao;
@ -83,7 +82,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
//生成工单号 //生成工单号
genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_SORT"); genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_JIS_SORT);
genSerialNoModel.setPartNo(bean.getPartNo()); genSerialNoModel.setPartNo(bean.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
@ -100,22 +99,20 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
baseRDao.insert(copyMesWorkOrder); baseRDao.insert(copyMesWorkOrder);
workOrderLogService.insert(workOrderLog); workOrderLogService.insert(workOrderLog);
//写入SAP下发计划表 //写入SAP下发计划表
saveMesProductPlan(bean); saveMesProductPlan(bean, true, false);
//写入接口表
//iMesWorkOrderToSapService.insert(bean);
return bean; return bean;
} else if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) { } else if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
//生成工单号 //生成工单号
genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_UN_SORT"); genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_JIS_UN_SORT);
} else { } else {
//生成工单号 //生成工单号
genSerialNoModel = new GenSerialNoModel("ORDER_NO_BTO"); genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO);
Integer produceSeq = 0; Integer produceSeq = 0;
if (null != result && result.getProduceSeq() != null) { if (null != result && result.getProduceSeq() != null) {
produceSeq = result.getProduceSeq(); produceSeq = result.getProduceSeq();
} }
bean.setProduceSeq(produceSeq + 1); bean.setProduceSeq(produceSeq + 1);
GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel("ORDER_NO_BTO_SEQ"); GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO_SEQ);
orderSeqSerialNoModel.setPartNo(bean.getPartNo()); orderSeqSerialNoModel.setPartNo(bean.getPartNo());
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));
@ -133,61 +130,76 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
workOrderLogService.insert(workOrderLog); workOrderLogService.insert(workOrderLog);
bean = baseRDao.insert(bean); bean = baseRDao.insert(bean);
//写入SAP下发计划表 //写入SAP下发计划表
saveMesProductPlan(bean); saveMesProductPlan(bean, true, false);
return bean; return bean;
} }
private void saveMesProductPlan(MesWorkOrder bean) { private void saveMesProductPlan(MesWorkOrder bean, boolean isInsert, boolean isReport) {
if(StringUtil.isEmpty(bean.getPlanOrderNo())){ if (StringUtil.isEmpty(bean.getPlanOrderNo())) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"planPartNo",ddlPackBean); DdlPreparedPack.getStringEqualPack(bean.getPartNo(), "planPartNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(bean.getPlanStartTime(),"planStartDate",ddlPackBean); DdlPreparedPack.getStringEqualPack(bean.getPlanStartTime(), "planStartDate", ddlPackBean);
DdlPreparedPack.getStringEqualPack(bean.getPlanEndTime(),"planEndDate",ddlPackBean); DdlPreparedPack.getStringEqualPack(bean.getPlanEndTime(), "planEndDate", ddlPackBean);
MesProductPlan mesProductPlan = mesProductPlanRDao.getByProperty(ddlPackBean); MesProductPlan mesProductPlan = mesProductPlanRDao.getByProperty(ddlPackBean);
if(null == mesProductPlan){ if (null == mesProductPlan) {
MesProductPlan mesPlanOrder = new MesProductPlan(); MesProductPlan mesPlanOrder = new MesProductPlan();
mesPlanOrder.setPlanOrderNo(""); mesPlanOrder.setPlanOrderNo("");
mesPlanOrder.setPlanQty(bean.getQty()); mesPlanOrder.setPlanQty(bean.getQty());
mesPlanOrder.setPlanPartNo(bean.getPartNo()); mesPlanOrder.setPlanPartNo(bean.getPartNo());
mesPlanOrder.setCompleteQty(bean.getQty()); mesPlanOrder.setCompleteQty(0d);
mesPlanOrder.setUncompleteQty(0d); mesPlanOrder.setUncompleteQty(bean.getQty());
mesPlanOrder.setUnit(bean.getUnit()); mesPlanOrder.setUnit(bean.getUnit());
mesPlanOrder.setPlanStartDate(bean.getPlanStartTime()); mesPlanOrder.setPlanStartDate(bean.getPlanStartTime());
mesPlanOrder.setPlanEndDate(bean.getPlanEndTime()); mesPlanOrder.setPlanEndDate(bean.getPlanEndTime());
mesPlanOrder.setPartMappingWorkCenterCode(bean.getWorkCenterCode()); mesPlanOrder.setPartMappingWorkCenterCode(bean.getErpWorkCenter());
mesPlanOrder.setPlanOrganizeCode(bean.getOrganizeCode()); mesPlanOrder.setPlanOrganizeCode(bean.getOrganizeCode());
mesPlanOrder.setOrganizeCode(bean.getOrganizeCode()); mesPlanOrder.setOrganizeCode(bean.getOrganizeCode());
ConvertBean.serviceModelInitialize(mesPlanOrder, bean.getCreateUser()); ConvertBean.serviceModelInitialize(mesPlanOrder, bean.getCreateUser());
mesProductPlanRDao.insert(mesPlanOrder); mesProductPlanRDao.insert(mesPlanOrder);
}else { } else {
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getQty())); if (isInsert) {
mesProductPlan.setPlanQty(mesProductPlan.getCompleteQty()); mesProductPlan.setPlanQty(MathOperation.add(mesProductPlan.getPlanQty(), bean.getQty()));
} else {
//报工
if (isReport) {
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getNum()));
//报工调整
} else {
mesProductPlan.setCompleteQty(MathOperation.sub(mesProductPlan.getCompleteQty(), bean.getNum()));
}
}
mesProductPlan.setUncompleteQty(MathOperation.sub(mesProductPlan.getPlanQty(), mesProductPlan.getCompleteQty()));
ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser()); ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser());
mesProductPlanRDao.update(mesProductPlan); mesProductPlanRDao.update(mesProductPlan);
} }
}else{ } else {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getPlanOrderNo(),"planOrderNo",ddlPackBean); DdlPreparedPack.getStringEqualPack(bean.getPlanOrderNo(), "planOrderNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"planPartNo",ddlPackBean); DdlPreparedPack.getStringEqualPack(bean.getPartNo(), "planPartNo", ddlPackBean);
MesProductPlan mesProductPlan = mesProductPlanRDao.getByProperty(ddlPackBean); MesProductPlan mesProductPlan = mesProductPlanRDao.getByProperty(ddlPackBean);
if(null == mesProductPlan){ if (null == mesProductPlan) {
MesException.throwMesBusiException("SAP计划单号【%s】物料【%s】,不存在", bean.getPlanOrderNo(), bean.getPartNo()); MesException.throwMesBusiException("SAP计划单号【%s】物料【%s】,不存在", bean.getPlanOrderNo(), bean.getPartNo());
} }
if(Objects.isNull(mesProductPlan.getCompleteQty())){ if (!isInsert) {
mesProductPlan.setCompleteQty(0d); if (Objects.isNull(mesProductPlan.getCompleteQty())) {
mesProductPlan.setCompleteQty(0d);
}
//报工
if (isReport) {
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getNum()));
//报工调整
} else {
mesProductPlan.setCompleteQty(MathOperation.sub(mesProductPlan.getCompleteQty(), bean.getNum()));
}
mesProductPlan.setUncompleteQty(MathOperation.sub(mesProductPlan.getPlanQty(), mesProductPlan.getCompleteQty()));
ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser());
mesProductPlanRDao.update(mesProductPlan);
} }
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 @Override
public MesWorkOrder update(MesWorkOrder bean) { public MesWorkOrder update(MesWorkOrder bean) {
//回传sap
boolean sendToSap = false;
MesWorkOrder result = baseRDao.getById(bean.getId()); MesWorkOrder result = baseRDao.getById(bean.getId());
//若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1 //若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1
if (result.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) { if (result.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
@ -201,14 +213,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesException.throwMesBusiException(String.format("工单数量不能小于工单源数量【%s】", MesException.throwMesBusiException(String.format("工单数量不能小于工单源数量【%s】",
result.getQty())); result.getQty()));
} }
//修改状态或者指令下发需要传给SAP
if (!Objects.equals(bean.getQty(), result.getQty())) {
sendToSap = true;
}
}
if (MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue() == bean.getWorkOrderStatus() ||
MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue() == bean.getWorkOrderStatus()) {
sendToSap = true;
} }
//在加工的工单不能修改物料信息 //在加工的工单不能修改物料信息
if (result.getWorkOrderStatus() >= MesExtEnumUtil.ORDER_STATUS.process.getValue()) { if (result.getWorkOrderStatus() >= MesExtEnumUtil.ORDER_STATUS.process.getValue()) {
@ -244,21 +248,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
BeanUtils.copyProperties(result, workOrderLog, "id"); BeanUtils.copyProperties(result, workOrderLog, "id");
workOrderLogService.insert(workOrderLog); workOrderLogService.insert(workOrderLog);
//关闭工单
if (MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue() == bean.getWorkOrderStatus()) {
bean.setQty(0d);
sendToSap = true;
}
//发送给SAP
if (sendToSap) {
//iMesWorkOrderToSapService.insert(bean);
}
baseRDao.update(result); baseRDao.update(result);
return bean; return bean;
} }
@Override
protected void setPackQueryBean(MesWorkOrder bean, DdlPackBean packBean) { protected void setPackQueryBean(MesWorkOrder bean, DdlPackBean packBean) {
DdlPreparedPack.getStringLikerPack(bean.getWorkOrderNo(), "workOrderNo", packBean); DdlPreparedPack.getStringLikerPack(bean.getWorkOrderNo(), "workOrderNo", packBean);
DdlPreparedPack.getStringLikerPack(bean.getPartNameRdd(), "partNameRdd", packBean); DdlPreparedPack.getStringLikerPack(bean.getPartNameRdd(), "partNameRdd", packBean);
@ -274,9 +270,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
DdlPreparedPack.getStringSmallerPack(bean.getStartTimeEnd(), "planStartTime", packBean); DdlPreparedPack.getStringSmallerPack(bean.getStartTimeEnd(), "planStartTime", packBean);
DdlPreparedPack.getStringBiggerPack(bean.getEndTimeStart(), "planEndTime", packBean); DdlPreparedPack.getStringBiggerPack(bean.getEndTimeStart(), "planEndTime", packBean);
DdlPreparedPack.getStringSmallerPack(bean.getEndTimeEnd(), "planEndTime", packBean); DdlPreparedPack.getStringSmallerPack(bean.getEndTimeEnd(), "planEndTime", packBean);
packBean.setOrderByStr(" order by createDatetime desc "); packBean.setOrderByStr(" order by createDatetime desc,workOrderSeq desc ");
} }
@Override
protected void onInsertBean(MesWorkOrder item) { protected void onInsertBean(MesWorkOrder item) {
// 数据校验 // 数据校验
@ -291,6 +288,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (Objects.isNull(mesWorkCenter)) { if (Objects.isNull(mesWorkCenter)) {
MesException.throwMesBusiException("产线【%s】不存在", item.getWorkCenterCode()); MesException.throwMesBusiException("产线【%s】不存在", item.getWorkCenterCode());
} }
item.setErpWorkCenter(mesWorkCenter.getErpWorkCenter());
//校验标识 //校验标识
//若工单类型为排序 //若工单类型为排序
if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) { if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
@ -314,12 +312,12 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
packPlanTime(item); packPlanTime(item);
} }
//生产版本为空 //生产版本为空
if(Objects.isNull(item.getProductVersion())){ if (StringUtil.isEmpty(item.getProductVersion())) {
MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter); MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter);
item.setProductVersion(mesProductVersion.getProductVersion()); item.setProductVersion(mesProductVersion.getProductVersion());
} }
if(!StringUtil.isEmpty(item.getVinCode())){ if (!StringUtil.isEmpty(item.getVinCode())) {
//校验vin号是否重复 //校验vin号是否重复
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getVinCode(), "vinCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(item.getVinCode(), "vinCode", ddlPackBean);
@ -352,7 +350,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空"); ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空");
ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空"); ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空");
//生产版本为空 //生产版本为空
if(Objects.isNull(item.getProductVersion())){ if (StringUtil.isEmpty(item.getProductVersion())) {
MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter); MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter);
item.setProductVersion(mesProductVersion.getProductVersion()); item.setProductVersion(mesProductVersion.getProductVersion());
} }
@ -386,8 +384,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
DdlPreparedPack.getStringEqualPack(mesWorkCenter.getErpWorkCenter(), "workCenterCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesWorkCenter.getErpWorkCenter(), "workCenterCode", ddlPackBean);
ddlPackBean.setOrderByStr(" order by createDatetime desc "); ddlPackBean.setOrderByStr(" order by createDatetime desc ");
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean); MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if(Objects.isNull(mesProductVersion)){ if (Objects.isNull(mesProductVersion)) {
MesException.throwMesBusiException("物料【%s】工作中心【%s】对应的生产版本信息不存在",item.getPartNo(), MesException.throwMesBusiException("物料【%s】工作中心【%s】对应的生产版本信息不存在", item.getPartNo(),
mesWorkCenter.getErpWorkCenter()); mesWorkCenter.getErpWorkCenter());
} }
return mesProductVersion; return mesProductVersion;
@ -397,6 +395,16 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
DdlPackBean ddlPackBean; DdlPackBean ddlPackBean;
ValidatorBean.checkNotNull(item.getPlanDate(), "计划日期不能为空"); ValidatorBean.checkNotNull(item.getPlanDate(), "计划日期不能为空");
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空"); ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
//工单导入:计划时间不能为当天之前日期
try {
if (DateUtilExt.compareDateTime(DateUtil.SHORT_FORMAT, item.getPlanDate(), TimeTool.getToday()) < 0) {
MesException.throwMesBusiException("导入工单计划日期不能小于今天");
}
}catch (ImppBusiException busExcep) {
MesException.throwMesBusiException(busExcep.getErrorDetail());
}catch (Exception e) {
MesException.throwMesBusiException("计划日期格式异常");
}
//查询班次信息 //查询班次信息
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", ddlPackBean);
@ -410,26 +418,20 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
item.setPlanStartTime(item.getPlanDate() + " " + mesShift.getStartTime()); item.setPlanStartTime(item.getPlanDate() + " " + mesShift.getStartTime());
item.setPlanEndTime(item.getPlanDate() + " " + mesShift.getEndTime()); item.setPlanEndTime(item.getPlanDate() + " " + mesShift.getEndTime());
try { try {
int windowStartEndTimeCompare = this.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime()); int windowStartEndTimeCompare = DateUtilExt.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime());
if (windowStartEndTimeCompare > 0) { if (windowStartEndTimeCompare > 0) {
item.setPlanEndTime(TimeTool.pareDateToString(DateUtil.addDays(item.getPlanEndTime(),1))); item.setPlanEndTime(TimeTool.pareDateToString(DateUtil.addDays(item.getPlanEndTime(), 1)));
} }
} catch (Exception e) { } catch (Exception e) {
MesException.throwMesBusiException("时间格式异常"); MesException.throwMesBusiException("时间格式异常");
} }
} }
@Override
protected void onUpdateBean(MesWorkOrder item) { protected void onUpdateBean(MesWorkOrder item) {
} }
public int compareDateTime(String formatStr, String startTimeStr, String endTimeStr) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
Date startTime = sdf.parse(startTimeStr);
Date endTime = sdf.parse(endTimeStr);
return startTime.compareTo(endTime);
}
@Override @Override
public void doProductReport(MesWorkOrder mesWorkOrder) { public void doProductReport(MesWorkOrder mesWorkOrder) {
//查询物料信息 //查询物料信息
@ -462,6 +464,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//报工类型 //报工类型
if (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) { if (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) {
mesWorkOrder.setReportedQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getReportedQty())); mesWorkOrder.setReportedQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getReportedQty()));
//更新SAP计划完成数量
saveMesProductPlan(mesWorkOrder, false, true);
} else { } else {
//冲销数量大于工单完成数量报错 //冲销数量大于工单完成数量报错
if (mesWorkOrder.getNum() > mesWorkOrder.getReportedQty()) { if (mesWorkOrder.getNum() > mesWorkOrder.getReportedQty()) {
@ -472,6 +476,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesWorkOrder.setAdjustQty((MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getAdjustQty()))); mesWorkOrder.setAdjustQty((MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getAdjustQty())));
//已汇报数量减一 //已汇报数量减一
mesWorkOrder.setReportedQty(MathOperation.sub(mesWorkOrder.getReportedQty(), mesWorkOrder.getNum())); mesWorkOrder.setReportedQty(MathOperation.sub(mesWorkOrder.getReportedQty(), mesWorkOrder.getNum()));
//更新SAP计划完成数量
saveMesProductPlan(mesWorkOrder, false, false);
} }
//更新工单状态 //更新工单状态
double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getReportedQty()); double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getReportedQty());
@ -487,7 +493,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
update(mesWorkOrder); update(mesWorkOrder);
//生成条码 //生成条码
GenSerialNoModel genSerialNoModel = new GenSerialNoModel("REPORT_SN"); // todo
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.REPORT_SN);
genSerialNoModel.setPartNo(mesWorkOrder.getPartNo()); genSerialNoModel.setPartNo(mesWorkOrder.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, mesWorkOrder.getCreateUser(), mesWorkOrder.getOrganizeCode(), mesWorkOrder.getNum()).getResultList(); List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, mesWorkOrder.getCreateUser(), mesWorkOrder.getOrganizeCode(), mesWorkOrder.getNum()).getResultList();

@ -17,6 +17,19 @@ public class MesCommonConstant {
public static final String SPOT_CHECK_ORDER_TASK_RESOURCE = "MES"; public static final String SPOT_CHECK_ORDER_TASK_RESOURCE = "MES";
public static final String SPOT_CHECK_ORDER_NO_RULE = "SPOT_CHECK_ORDER_NO_RULE"; public static final String SPOT_CHECK_ORDER_NO_RULE = "SPOT_CHECK_ORDER_NO_RULE";
/***
*
*/
//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 REPORT_SN = "REPORT_SN";
} }

Loading…
Cancel
Save