From aa6c6f58b3497d17871173657dc8138033bc1274 Mon Sep 17 00:00:00 2001 From: gsz Date: Thu, 27 Jun 2024 15:59:57 +0800 Subject: [PATCH] =?UTF-8?q?41525=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=96-=E6=A0=A1=E9=AA=8C=E5=B9=B6=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=95=B0=E6=8D=AE+=E6=9E=9A=E4=B8=BE=E4=B8=AD?= =?UTF-8?q?=E6=96=87=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/ext/mes/api/base/IBaseMesService.java | 3 ++ .../controller/base/BaseMesController.java | 27 ++++++++++++++ .../serviceimpl/base/BaseMesService.java | 7 +++- .../base/MesEquipmentSpotCheckDetailService.java | 43 ++++++++++++++++++++++ .../base/MesEquipmentSpotCheckPartService.java | 41 +++++++++++++++++++++ 5 files changed, 120 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IBaseMesService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IBaseMesService.java index 61ba932..9d1bca9 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IBaseMesService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IBaseMesService.java @@ -43,6 +43,9 @@ public interface IBaseMesService { @ApiOperation(value = "校验导入数据", notes = "校验导入数据") void validateImport(List bean); + @ApiOperation(value = "校验并返回导入数据", notes = "校验并返回导入数据") + List validateReturnImport(List bean); + @ApiOperation(value = "修改信息", notes = "修改信息") T update(T bean); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseMesController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseMesController.java index 17e38f1..b618c5d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseMesController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseMesController.java @@ -459,6 +459,33 @@ public abstract class BaseMesController extends BaseControll return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + @PostMapping(value = "/import-ext") + @ApiOperation(value = "导入数据校验返回") + public ResultBean importExtExcel(@RequestParam("file") MultipartFile file) { + try { + MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis()); + List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), mesClass); + + // 校验导入数据 + List returnImport = baseService.validateReturnImport(beanList); + String userName = AuthUtil.getSessionUser().getUserName(); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + // 导入数据初始化 + for (T bean : returnImport) { + ConvertBean.serviceModelInitialize(bean, userName); + bean.setOrganizeCode(organizeCode); + } + baseService.insertBatch(returnImport); + + // 导入后 + afterImport(returnImport); + return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } @GetMapping(value = "/down-template") @ApiOperation(value = "下载导入模板") 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 2c3002e..d9b4e40 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 @@ -163,7 +163,12 @@ public abstract class BaseMesService implements IBaseMesServ /* 新增数据校验 */ ValidatorBean.beginValid(beanList); } - + @Override + public List validateReturnImport(List beanList) { + /* 新增数据校验 */ + ValidatorBean.beginValid(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/MesEquipmentSpotCheckDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckDetailService.java index 2e7d56d..c9b3768 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckDetailService.java @@ -5,10 +5,15 @@ 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.MesEquipmentSpotCheck; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckDetail; +import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckPart; +import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentSpotCheckRepository; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -17,6 +22,8 @@ import java.util.List; @Slf4j public class MesEquipmentSpotCheckDetailService extends BaseMesService implements IMesEquipmentSpotCheckDetailService { + @Autowired + private MesEquipmentSpotCheckRepository equipmentSpotCheckRepository; protected void setPackQueryBean(MesEquipmentSpotCheckDetail bean, DdlPackBean packBean) { DdlPreparedPack.getNumEqualPack(bean.getPid(), "pid", packBean); DdlPreparedPack.getStringLikerPack(bean.getSpotCheckItemCode(), "spotCheckItemCode", packBean); @@ -82,5 +89,41 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService validateReturnImport(List beanList) { + + for (MesEquipmentSpotCheckDetail item : beanList) { + // 数据校验 + if(StringUtil.isEmpty(item.getPid())){ + ValidatorBean.checkNotNull(item.getSpotCheckCode(), "点检项目代码不能为空"); + ValidatorBean.checkNotNull(item.getSpotCheckItemCode(), "点检内容代码不能为空"); + + DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getSpotCheckCode(), "spotCheckCode", seriesPackBean); + MesEquipmentSpotCheck itemFlg = equipmentSpotCheckRepository.getByProperty(seriesPackBean); + if (StringUtil.isEmpty(itemFlg)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】点检项目代码不存在,请检查数据", item.getSpotCheckCode()) + .build(); + } + item.setPid(itemFlg.getId()); + }else { + ValidatorBean.checkNotNull(item.getId(), "点检项目id不能为空"); + DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", seriesPackBean); + + if (!baseRDao.isExitByHql(seriesPackBean)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】点检项目id不存在,请检查数据", item.getPid()) + .build(); + } + } + } + return beanList; + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java index 676cdae..e045ae2 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java @@ -6,10 +6,13 @@ 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.MesEquipmentSpotCheck; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckPart; +import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentSpotCheckRepository; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -19,6 +22,8 @@ import java.util.List; public class MesEquipmentSpotCheckPartService extends BaseMesService implements IMesEquipmentSpotCheckPartService { + @Autowired + private MesEquipmentSpotCheckRepository equipmentSpotCheckRepository; protected void setPackQueryBean(MesEquipmentSpotCheckPart bean, DdlPackBean packBean) { DdlPreparedPack.getNumEqualPack(bean.getPid(), "pid", packBean); DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean); @@ -58,4 +63,40 @@ public class MesEquipmentSpotCheckPartService extends BaseMesService validateReturnImport(List beanList) { + + for (MesEquipmentSpotCheckPart item : beanList) { + // 数据校验 + if(StringUtil.isEmpty(item.getPid())){ + ValidatorBean.checkNotNull(item.getSpotCheckCode(), "点检项目代码不能为空"); + + DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getSpotCheckCode(), "spotCheckCode", seriesPackBean); + MesEquipmentSpotCheck itemFlg = equipmentSpotCheckRepository.getByProperty(seriesPackBean); + if (StringUtil.isEmpty(itemFlg)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】点检项目代码不存在,请检查数据", item.getSpotCheckCode()) + .build(); + } + item.setPid(itemFlg.getId()); + }else { + ValidatorBean.checkNotNull(item.getId(), "点检项目id不能为空"); + + DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", seriesPackBean); + + if (!baseRDao.isExitByHql(seriesPackBean)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】点检项目id不存在,请检查数据", item.getPid()) + .build(); + } + } + } + return beanList; + } }