From c3268336873a429f0d92051f9cdb28df37e6fc92 Mon Sep 17 00:00:00 2001 From: jun Date: Fri, 10 May 2024 11:34:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E5=B7=A5=E5=8D=95=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/ext/mes/api/base/IMesPartService.java | 3 +- .../mes/api/base/IMesWorkOrderToSapService.java | 15 +++ .../controller/base/MesWorkOrderController.java | 45 ++++++- .../apiservice/daoimpl/SapProductPlanDaoImpl.java | 2 +- .../serviceimpl/base/MesPartService.java | 13 +- .../serviceimpl/base/MesWorkOrderService.java | 135 +++++++++++++++------ .../base/MesWorkOrderToSapServiceImpl.java | 22 ++++ .../apiservice/unit/exception/MesException.java | 71 +++++++++++ 8 files changed, 263 insertions(+), 43 deletions(-) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/unit/exception/MesException.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartService.java index c3fde06..2b264c7 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartService.java @@ -1,6 +1,5 @@ package cn.estsh.i3plus.ext.mes.api.base; -import cn.estsh.i3plus.pojo.mes.bean.MesBom; import cn.estsh.i3plus.pojo.mes.bean.MesPart; /** @@ -10,5 +9,7 @@ import cn.estsh.i3plus.pojo.mes.bean.MesPart; */ public interface IMesPartService extends IBaseMesService { + MesPart getPartByPartNo(String partNo, String organizeCode); + } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java new file mode 100644 index 0000000..f0b13a5 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderToSap; + +/** + * @Description : + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/5/8 16:48 + * @Modify: + **/ +public interface IMesWorkOrderToSapService extends IBaseMesService { + MesWorkOrderToSap insert(MesWorkOrder mesWorkOrder); +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index aeea791..aff40d9 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -1,17 +1,58 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel.MesExcelTool; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; -import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrderDetail; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +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.util.RedisCacheTool; +import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; @Api(description = "工单主页面") @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesWorkOrder") - public class MesWorkOrderController extends BaseMesController { + @PostMapping(value = "/import-mes-work-order") + @ApiOperation(value = "导入数据") + public ResultBean importMesWorkOrderExcel(@RequestParam("file") MultipartFile file, Integer type) { + try { + MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis()); + List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), MesWorkOrder.class); + + // 校验导入数据 + validateImport(beanList); + String userName = AuthUtil.getSessionUser().getUserName(); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + // 导入数据初始化 + for (MesWorkOrder bean : beanList) { + bean.setWorkOrderType(type); + ConvertBean.serviceModelInitialize(bean, userName); + bean.setOrganizeCode(organizeCode); + } + baseService.insertBatch(beanList); + + // 导入后 + afterImport(beanList); + return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/SapProductPlanDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/SapProductPlanDaoImpl.java index 0197e92..b797fad 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/SapProductPlanDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/SapProductPlanDaoImpl.java @@ -39,7 +39,7 @@ public class SapProductPlanDaoImpl implements ISapProductPlanDao { StringBuilder hql = new StringBuilder(); hql.append(" from sap_product_plan sap left join mes_work_order mes on sap.plnum = mes.plan_order_no and sap.plmat = mes.part_no " + "where sap.is_deleted=:isDeleted and sap.is_valid=:isValid and sap.organize_code=:organizeCode " + - " and mes.is_deleted=:isDeleted and mes.is_valid=:isValid and mes.organize_code=:organizeCode"); + " and ((mes.is_deleted=:isDeleted and mes.is_valid=:isValid and mes.organize_code=:organizeCode) or mes.id is null)"); //拼接查询条件 packWhere(sapProductPlan, hql); StringBuffer unionDataHql = new StringBuffer("select sap.plnum,mes.part_no,mes.qty," + diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartService.java index c4b3f23..f1b8890 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartService.java @@ -1,10 +1,10 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesPartService; +import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesPart; -import cn.estsh.i3plus.pojo.mes.bean.MesPartPtr; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -17,4 +17,15 @@ public class MesPartService extends BaseMesService implements IMesPartS DdlPreparedPack.getStringLikeEqualPack(bean.getPartName(), "partName", packBean); } + + @Override + public MesPart getPartByPartNo(String partNo, String organizeCode) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); + MesPart mesPart = baseRDao.getByProperty(ddlPackBean); + if (null == mesPart) { + MesException.throwMesBusiException("物料【%s】信息不存在", partNo); + } + return mesPart; + } } 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 1d38d83..cb9dcd9 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 @@ -1,6 +1,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.IMesWorkOrderService; +import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService; +import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtEnumUtil; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; @@ -8,9 +11,13 @@ import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.base.util.StringUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderToSap; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderToSapRepository; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; @@ -21,6 +28,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Objects; @Service @Slf4j @@ -29,6 +37,10 @@ public class MesWorkOrderService extends BaseMesService implements private MesWorkOrderLogService workOrderLogService; @Autowired private ISyncFuncService syncFuncService; + @Autowired + private IMesWorkOrderToSapService iMesWorkOrderToSapService; + @Autowired + private IMesPartService iMesPartService; @Override public MesWorkOrder insert(MesWorkOrder bean) { @@ -46,35 +58,32 @@ public class MesWorkOrderService extends BaseMesService implements GenSerialNoModel genSerialNoModel = new GenSerialNoModel(); //若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1 if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) { - - Integer produceSeq = 0; - if (result.getProduceSeq() != null) { + if (null != result && result.getProduceSeq() != null) { produceSeq = result.getProduceSeq(); } - List sortWorkOrderList = new ArrayList<>(); - List orderLogList = new ArrayList<>(); - for (int i = 0; i < bean.getSortInsertOrderQty(); i++) { - //生成工单号 - genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_SORT"); - genSerialNoModel.setPartNo(bean.getPartNo()); - List resultList = syncFuncService.syncSerialNo(genSerialNoModel, AuthUtil.getSessionUser().getUserName(), bean.getOrganizeCode(), 1).getResultList(); - - MesWorkOrder copyMesWorkOrder = new MesWorkOrder(); - BeanUtils.copyProperties(bean, copyMesWorkOrder); - copyMesWorkOrder.setProduceSeq(produceSeq + i + 1); - copyMesWorkOrder.setQty(1D); - copyMesWorkOrder.setOrderNo(resultList.get(0)); - ConvertBean.serviceModelInitialize(copyMesWorkOrder, AuthUtil.getSessionUser().getUserName()); - sortWorkOrderList.add(copyMesWorkOrder); - - MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); - BeanUtils.copyProperties(copyMesWorkOrder, workOrderLog, "id"); - orderLogList.add(workOrderLog); - } - insertBatch(sortWorkOrderList); + List orderLogList = new ArrayList<>(); + //生成工单号 + genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_SORT"); + genSerialNoModel.setPartNo(bean.getPartNo()); + List 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.setOrderNo(resultList.get(0)); + ConvertBean.serviceModelInitialize(copyMesWorkOrder, bean.getCreateUser()); + + MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); + BeanUtils.copyProperties(copyMesWorkOrder, workOrderLog, "id"); + orderLogList.add(workOrderLog); + + baseRDao.insert(copyMesWorkOrder); workOrderLogService.insertBatch(orderLogList); + //写入接口表 + iMesWorkOrderToSapService.insert(bean); return bean; } else if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) { //生成工单号 @@ -83,50 +92,81 @@ public class MesWorkOrderService extends BaseMesService implements //生成工单号 genSerialNoModel = new GenSerialNoModel("ORDER_NO_BTO"); Integer produceSeq = 0; - if (result.getProduceSeq() != null) { + if (null != result && result.getProduceSeq() != null) { produceSeq = result.getProduceSeq(); } bean.setProduceSeq(produceSeq + 1); GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel("ORDER_NO_BTO_SEQ"); orderSeqSerialNoModel.setPartNo(bean.getPartNo()); - List resultList = syncFuncService.syncSerialNo(genSerialNoModel, AuthUtil.getSessionUser().getUserName(), bean.getOrganizeCode(), 1).getResultList(); + List resultList = syncFuncService.syncSerialNo(orderSeqSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); bean.setOrderSeq(Integer.parseInt(resultList.get(0))); } genSerialNoModel.setPartNo(bean.getPartNo()); - List resultList = syncFuncService.syncSerialNo(genSerialNoModel, AuthUtil.getSessionUser().getUserName(), bean.getOrganizeCode(), 1).getResultList(); + List resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); bean.setOrderNo(resultList.get(0)); - bean.setQty(bean.getSortInsertOrderQty().doubleValue()); + bean.setQty(bean.getQty()); - ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName()); + ConvertBean.serviceModelInitialize(bean, bean.getCreateUser()); MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); BeanUtils.copyProperties(bean, workOrderLog, "id"); workOrderLogService.insert(workOrderLog); bean = baseRDao.insert(bean); + //写入接口表 + iMesWorkOrderToSapService.insert(bean); return bean; } @Override public MesWorkOrder update(MesWorkOrder bean) { - //插入前构造数据 - onInsertBean(bean); + //回传sap + boolean sendToSap = false; MesWorkOrder result = baseRDao.getById(bean.getId()); //若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1 if (result.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) { - throw ImppExceptionBuilder.newInstance() - .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) - .setErrorDetail(String.format("工单类型为【%s】 不需要修改数量", MesExtEnumUtil.ORDER_TYPE.SORT.getValue())) - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .build(); + if(!Objects.equals(bean.getQty(), result.getQty())){ + MesException.throwMesBusiException(String.format("工单类型为【%s】 不需要修改数量", + MesExtEnumUtil.ORDER_TYPE.SORT.getDescription())); + } + }else{ + //工单数量只能比原来的大 + if(bean.getQty() < result.getQty()){ + MesException.throwMesBusiException(String.format("工单数量不能小于工单源数量【%s】", + result.getQty())); + } + //修改状态或者指令下发需要传给SAP + if(!Objects.equals(bean.getQty(), result.getQty())){ + sendToSap = true; + } + } + if(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue() == bean.getWorkOrderStatus()){ + sendToSap = true; + } + //在加工的工单不能修改物料信息 + if(result.getWorkOrderStatus() >= MesExtEnumUtil.ORDER_STATUS.process.getValue()){ + if(!Objects.equals(bean.getPartNo(), result.getPartNo())){ + MesException.throwMesBusiException(String.format("工单状态为【%s】不允许修改物料", + MesExtEnumUtil.ORDER_TYPE.valueOfDescription(result.getWorkOrderStatus()))); + } } - result.setQty(bean.getSortInsertOrderQty().doubleValue()); + result.setQty(bean.getQty()); + result.setWorkOrderStatus(bean.getWorkOrderStatus()); ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName()); MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); BeanUtils.copyProperties(result, workOrderLog, "id"); 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); return bean; @@ -134,6 +174,19 @@ public class MesWorkOrderService extends BaseMesService implements protected void setPackQueryBean(MesWorkOrder bean, DdlPackBean packBean) { + DdlPreparedPack.getStringLikerPack(bean.getOrderNo(),"orderNo",packBean); + DdlPreparedPack.getStringLikerPack(bean.getPartNameRdd(),"partNameRdd",packBean); + DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"partNo",packBean); + DdlPreparedPack.getStringEqualPack(bean.getCustPartNo(),"custPartNo",packBean); + DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(),"workCenterCode",packBean); + DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(),"workOrderStatus",packBean); + DdlPreparedPack.getNumEqualPack(bean.getWorkOrderType(),"workOrderType",packBean); + DdlPreparedPack.getStringBiggerPack(bean.getCreateDateTimeStart(),"createDatetime",packBean); + DdlPreparedPack.getStringSmallerPack(bean.getCreateDateTimeEnd(),"createDatetime",packBean); + DdlPreparedPack.getStringBiggerPack(bean.getStartTimeStart(),"planStartTime",packBean); + DdlPreparedPack.getStringSmallerPack(bean.getStartTimeEnd(),"planStartTime",packBean); + DdlPreparedPack.getStringBiggerPack(bean.getEndTimeStart(),"planEndTime",packBean); + DdlPreparedPack.getStringSmallerPack(bean.getEndTimeEnd(),"planEndTime",packBean); } protected void onInsertBean(MesWorkOrder item) { @@ -142,7 +195,7 @@ public class MesWorkOrderService extends BaseMesService implements ValidatorBean.checkNotNull(item.getWorkOrderType(), "工单类型不能为空"); ValidatorBean.checkNotNull(item.getWorkCenterCode(), "产线不能为空"); - ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空"); + //ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空"); //校验标识 //若工单类型为排序 @@ -177,6 +230,12 @@ public class MesWorkOrderService extends BaseMesService implements .build(); } } + //物料名称不存在,从物料信息中获取 + if(StringUtil.isEmpty(item.getPartNameRdd())){ + MesPart mesPart = iMesPartService.getPartByPartNo(item.getPartNo(), item.getOrganizeCode()); + item.setPartNameRdd(mesPart.getPartName()); + } + item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); } protected void onUpdateBean(MesWorkOrder item) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java new file mode 100644 index 0000000..96169ca --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java @@ -0,0 +1,22 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderToSap; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class MesWorkOrderToSapServiceImpl extends BaseMesService implements IMesWorkOrderToSapService { + + @Override + public MesWorkOrderToSap insert(MesWorkOrder mesWorkOrder) { + MesWorkOrderToSap mesWorkOrderToSap = new MesWorkOrderToSap(mesWorkOrder.getOrganizeCode(), + mesWorkOrder.getOrganizeCode(), mesWorkOrder.getPartNo(), "", mesWorkOrder.getQty(), mesWorkOrder.getPlanEndTime()); + ConvertBean.serviceModelUpdate(mesWorkOrderToSap,mesWorkOrder.getModifyUser()); + return baseRDao.insert(mesWorkOrderToSap); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/unit/exception/MesException.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/unit/exception/MesException.java new file mode 100644 index 0000000..9fbb570 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/unit/exception/MesException.java @@ -0,0 +1,71 @@ +package cn.estsh.i3plus.ext.mes.apiservice.unit.exception; + +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; + +/** + * @Description : 抛出异常的工具类,用于简化抛出异常的代码 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/5/8 17:16 + * @Modify: + **/ +public class MesException { + + /** + * 抛出业务系统异常 + * @param errorDetail 异常信息 + * @param errorSolution 异常的解决方案 + * @throws ImppBusiException + */ + public static void throwFlowException(String errorDetail, String errorSolution) + throws ImppBusiException { + + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) + .setErrorDetail(errorDetail) + .setErrorSolution(errorSolution) + .build(); + } + + /** + * 抛出业务系统异常 + * @param errorDetail 异常信息 + * @throws ImppBusiException + */ + public static void throwFlowException(String errorDetail) + throws ImppBusiException { + + throwFlowException(errorDetail, ""); + } + + /** + * WMS 抛出业务异常 + * @param errorCode 错误代码 + * @param errorDetail 错误详情 + * @param errorSoluction 解决办法 + */ + public static void throwBusiException(String errorCode,String errorDetail,String errorSoluction,Object...args){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(errorCode) + .setErrorDetail(errorDetail,args) + .setErrorSolution(errorSoluction) + .build(); + } + /** + * 抛异常 + * + * @param + */ + public static void throwMesBusiException(String errorDetailString, Object... args) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) + .setErrorDetail(errorDetailString,args) + .build(); + } +}