From 6162899689c339b5faa64a63bda651193166fa56 Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 24 Sep 2024 15:17:10 +0800 Subject: [PATCH] =?UTF-8?q?CBR=E6=8A=A5=E5=B7=A5=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/base/IMesProductOffLineService.java | 6 ++- .../controller/base/MesWorkOrderController.java | 1 - .../base/MesProductOffLineServiceImpl.java | 16 ++++++++ .../serviceimpl/base/MesWorkOrderService.java | 48 +++++++++++++++++----- 4 files changed, 58 insertions(+), 13 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductOffLineService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductOffLineService.java index dfe30e0..0c77416 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductOffLineService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductOffLineService.java @@ -1,6 +1,9 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesProductOffLine; +import io.swagger.annotations.ApiOperation; + +import java.util.List; /** * @Description : 生产汇报 @@ -11,5 +14,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesProductOffLine; **/ public interface IMesProductOffLineService extends IBaseMesService{ - + @ApiOperation("查询报工数据") + List findMesProductOffLineByProductSn(String productSn, String organizeCode); } 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 07b66d4..085a71f 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 @@ -171,7 +171,6 @@ public class MesWorkOrderController extends BaseMesController { try { ValidatorBean.checkNotNull(model.getOrganizeCode(),"工厂代码不能为空"); ValidatorBean.checkNotNull(model.getQty(),"数量不能为空"); - ValidatorBean.checkNotNull(model.getSn(),"条码不能为空"); ValidatorBean.checkNotNull(model.getPartNo(),"零件号不能为空"); mesWorkOrderService.doReportWorkReversal(model); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductOffLineServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductOffLineServiceImpl.java index c9fa3af..99c1fc8 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductOffLineServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductOffLineServiceImpl.java @@ -1,9 +1,15 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesProductOffLineService; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.MesProductOffLine; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import org.springframework.stereotype.Service; +import java.util.List; + /** * @Description : 生产汇报 * @Reference : @@ -14,4 +20,14 @@ import org.springframework.stereotype.Service; @Service public class MesProductOffLineServiceImpl extends BaseMesService implements IMesProductOffLineService { + @Override + public List findMesProductOffLineByProductSn(String productSn, String organizeCode) { + if(StringUtil.isEmpty(productSn) || StringUtil.isEmpty(organizeCode)){ + return null; + } + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(productSn,"reportSn",packBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue(),"reportType",packBean); + return baseRDao.findByHqlWhere(packBean); + } } 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 859c42f..68a8b35 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,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.*; +import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao; import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanMapUtilsExt; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; @@ -929,7 +930,7 @@ public class MesWorkOrderService extends BaseMesService implements updateMesWorkOrder(mesWorkOrderDb,(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) ? MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT : MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT_ADJUST,mesWorkOrder.getNum()); //试制单不报工 if(Objects.isNull(mesWorkOrderDb.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrderDb.getOrderFlag())){ - String sn = getStringList(mesWorkOrder); + String sn = getStringList(mesWorkOrder.getOrganizeCode()); //保存数据 List mesProductOffLineList = new ArrayList<>(); String nowTime = StringUtil.isEmpty(mesWorkOrder.getDescription())?TimeTool.getNowTime(true):mesWorkOrder.getDescription(); @@ -993,7 +994,7 @@ public class MesWorkOrderService extends BaseMesService implements //物料+生产版本获取bom信息 List mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); //生成条码 - String sn = getStringList(mesWorkOrderNew); + String sn = getStringList(mesWorkOrderNew.getOrganizeCode()); //保存数据 List mesProductOffLineList = new ArrayList<>(); List mesMoveList = new ArrayList<>(); @@ -1101,15 +1102,22 @@ public class MesWorkOrderService extends BaseMesService implements public void doReportWorkReversal(WmsProductModel model) { //查询物料信息 MesPart mesPart = iMesPartService.getPartByPartNo(model.getPartNo(), model.getOrganizeCode()); - //获取生产版本 - MesProductVersion mesProductVersion = getMesProductVersion(model); - //获取bom - List mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); //保存数据 List mesProductOffLineList = new ArrayList<>(); String nowTime = TimeTool.getNowTime(true); - for (MesBom mesBom : mesBoms) { - mesProductOffLineList.add(getMesProductOffLine(model, mesPart, mesProductVersion, mesBom,nowTime)); + if (StringUtil.isEmpty(model.getSn())) { + //获取生产版本 + MesProductVersion mesProductVersion = getMesProductVersion(model); + //获取bom + List mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); + //生成流水码 + model.setSn(getStringList(model.getOrganizeCode())); + for (MesBom mesBom : mesBoms) { + mesProductOffLineList.add(getMesProductOffLine(model, mesPart, mesProductVersion, mesBom, nowTime)); + } + } else { + //按照条码查询之前报工数据 + mesProductOffLineList.addAll(getMesProductOffLineList(model, nowTime)); } mesProductOffLineService.insertBatch(mesProductOffLineList); } @@ -1152,6 +1160,25 @@ public class MesWorkOrderService extends BaseMesService implements } + private List getMesProductOffLineList(WmsProductModel model, String nowTime) { + //查询报工数据 + List oldProductOffLineList = mesProductOffLineService.findMesProductOffLineByProductSn(model.getSn(), model.getOrganizeCode()); + if (CollectionUtils.isEmpty(oldProductOffLineList)) { + MesException.throwMesBusiException("条码【%s】未查询到报工数据", model.getSn()); + } + oldProductOffLineList.forEach(item -> { + item.setReportType(MesExtEnumUtil.REPORT_TYPE.CBR.getValue()); + item.setOrderNo(model.getShipOrderNo()); + item.setCustNo(model.getCustNo()); + item.setCustOrder(model.getCustOrderNo()); + item.setDescription(nowTime); + item.setSystemSyncStatus(CommonEnumUtil.FALSE); + item.setSystemSyncDatetime(""); + ConvertBean.serviceModelInitialize(item, model.getUserName()); + }); + return oldProductOffLineList; + } + private List getMesWorkOrderList(Long[] ids, String organizeCode) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getInPackArray(ids,"id",packBean); @@ -1281,9 +1308,8 @@ public class MesWorkOrderService extends BaseMesService implements return mesProdRuleSortCfg; } - private String getStringList(MesWorkOrder mesWorkOrder) { - GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.REPORT_SN); - List resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(mesWorkOrder.getOrganizeCode()), mesWorkOrder.getCreateUser(), mesWorkOrder.getOrganizeCode(), 1).getResultList(); + private String getStringList(String organizeCode) { + List resultList = syncFuncService.syncSerialNo(new GenSerialNoModel(MesCommonConstant.REPORT_SN).organizeCode(organizeCode), AuthUtilExt.getUserName(), organizeCode, 1).getResultList(); return resultList.iterator().next(); }