From 8950311d38abdafcd02d7a193fcd7d080a0ffc20 Mon Sep 17 00:00:00 2001 From: administrator Date: Thu, 11 Jul 2024 17:02:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E9=9B=B6=E4=BB=B6=E4=B8=8E?= =?UTF-8?q?=E4=BA=A7=E7=BA=BF=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesWorkCenterPartRelationController.java | 13 +++++ .../serviceimpl/base/BaseMesService.java | 5 ++ .../base/MesWorkCenterPartRelationService.java | 65 +++++++++++++++++++++- 3 files changed, 80 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkCenterPartRelationController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkCenterPartRelationController.java index eaf040a..345da78 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkCenterPartRelationController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkCenterPartRelationController.java @@ -2,9 +2,12 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenterPartRelation; +import cn.estsh.impp.framework.boot.util.ValidatorBean; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @Description : 产线与零件关系 * @Reference : @@ -15,4 +18,14 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesWorkCenterPartRelation") public class MesWorkCenterPartRelationController extends BaseMesController { + + @Override + public void validateImport(List beanList) { + beanList.forEach(item ->{ + ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空"); + ValidatorBean.checkNotNull(item.getWorkCenterName(), "产线名称不能为空!"); + }); + + + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/BaseMesService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/BaseMesService.java index d9b4e40..48befdf 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/BaseMesService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/BaseMesService.java @@ -90,6 +90,7 @@ public abstract class BaseMesService implements IBaseMesServ @Override public List insertBatch(List beanList) { + beanList = onBeforeInsertBean(beanList); for (T bean : beanList) { onInsertBean(bean); insert(bean); @@ -169,6 +170,10 @@ public abstract class BaseMesService implements IBaseMesServ ValidatorBean.beginValid(beanList); return beanList; } + + protected List onBeforeInsertBean(List beanList) { + return beanList; + } protected void onInsertBean(T item) { } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterPartRelationService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterPartRelationService.java index b382572..c02adf4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterPartRelationService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterPartRelationService.java @@ -5,12 +5,23 @@ 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.mes.bean.MesPartSap; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenterPartRelation; +import cn.estsh.i3plus.pojo.mes.repository.MesPartSapRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.TreeSet; +import java.util.stream.Collectors; + /** * @Description : * @Reference : @@ -22,17 +33,65 @@ import org.springframework.stereotype.Service; @Slf4j public class MesWorkCenterPartRelationService extends BaseMesService implements IMesWorkCenterPartRelationService { + @Autowired + private MesPartSapRepository partSapRao; + + @Autowired + private MesWorkCenterRepository mesWorkCenterRao; + @Override + protected List onBeforeInsertBean(List beanList) { + String organizeCode = AuthUtil.getOrganizeCode(); + //去重 + ArrayList relationList = beanList.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>( + Comparator.comparing(p -> p.getPartNo() + ";" + p.getWorkCenterName()))), ArrayList::new)); + + for (MesWorkCenterPartRelation item : relationList) { + //根据零件号查询数据 + DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(item.getPartNo(),"partNo",partPackBean); + List partSapList = partSapRao.findByHqlWhere(partPackBean); + if (partSapList.isEmpty()) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("零件号【%s】不存在!",item.getPartNo()) + .build(); + } + MesPartSap mesPartSap = partSapList.get(0); + item.setPartName(mesPartSap.getPartName()); + //根据产线名称去查询数据 + DdlPackBean workCenterPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(item.getWorkCenterName(),"workCenterName",workCenterPackBean); + List centerList = mesWorkCenterRao.findByHqlWhere(workCenterPackBean); + if (centerList.isEmpty()) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("产线【%s】不存在!",item.getWorkCenterName()) + .build(); + } + MesWorkCenter mesWorkCenter = centerList.get(0); + item.setWorkCenterCode(mesWorkCenter.getWorkCenterCode()); + } + + return relationList; + } + @Override protected void onInsertBean(MesWorkCenterPartRelation item) { - DdlPackBean partRelationPackBean = DdlPackBean.getDdlPackBean(AuthUtil.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", partRelationPackBean); + String organizeCode = AuthUtil.getOrganizeCode(); + + + DdlPackBean partRelationPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(item.getWorkCenterName(), "workCenterName", partRelationPackBean); DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", partRelationPackBean); boolean flg = baseRDao.isExitByHql(partRelationPackBean); if (flg) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("产线【%s】与零件【%s】关系已存在,请勿重复添加!",item.getWorkCenterCode(),item.getPartNo()) + .setErrorDetail("产线【%s】与零件【%s】关系已存在,请勿重复添加!",item.getWorkCenterName(),item.getPartNo()) .build(); } }