From 42721ff26b98163480d66a905742a63d5603689c Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Thu, 9 Jan 2025 19:20:16 +0800 Subject: [PATCH 1/3] =?UTF-8?q?44270=20=E9=9D=9E=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E5=8A=A0=E5=B7=A5=E8=A7=84=E5=88=99=E7=9A=84?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesProdRuleNosortCfgController.java | 123 ++++++++++++++++++++- 1 file changed, 121 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProdRuleNosortCfgController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProdRuleNosortCfgController.java index 0364793..8d581fd 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProdRuleNosortCfgController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProdRuleNosortCfgController.java @@ -1,11 +1,41 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; -import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleNosortCfg; -import cn.estsh.i3plus.pojo.mes.bean.MesTimeEfficientCfg; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; +import cn.estsh.i3plus.platform.common.tool.JsonUtilTool; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.repository.MesAssemblyNosortCfgRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentProdParamCfgRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesTimeEfficientCfgRepository; +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.apache.commons.collections4.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +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.io.InputStream; +import java.util.List; +import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; /** * 非排序产品加工规则配置 @@ -14,4 +44,93 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesProdRuleNosortCfg") public class MesProdRuleNosortCfgController extends BaseMesController{ + + public static final Logger LOGGER = LoggerFactory.getLogger(MesProdRuleNosortCfgController.class); + @Autowired + private MesAssemblyNosortCfgRepository assemblyNosortCfgRepository; + + @Autowired + private MesEquipmentProdParamCfgRepository equipmentProdParamCfgRepository; + + @Autowired + private MesTimeEfficientCfgRepository timeEfficientCfgRepository; + + @PostMapping(value = "/all/import") + @ApiOperation(value = "流程导入") + public ResultBean allImport(@RequestParam("file") MultipartFile file) { + try { + //String organizeCode = AuthUtil.getOrganizeCode(); + String organizeCode = "CK01"; + //数据空校验以及转换 + ExcelTool excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); + List ruleNosortCfgList = getDataAndInitValid(excelTool, file.getOriginalFilename(), file.getInputStream(), + MesProdRuleNosortCfg.class, "MesProdRuleNosortCfg", true); + List assemblyNosortCfgList = getDataAndInitValid(excelTool, file.getOriginalFilename(), file.getInputStream(), + MesAssemblyNosortCfg.class, "MesAssemblyNosortCfg", true); + List equipmentProdParamCfgList = getDataAndInitValid(excelTool, file.getOriginalFilename(), file.getInputStream(), + MesEquipmentProdParamCfg.class, "MesEquipmentProdParamCfg", true); + List timeEfficientCfgList = getDataAndInitValid(excelTool, file.getOriginalFilename(), file.getInputStream(), + MesTimeEfficientCfg.class, "MesTimeEfficientCfg", true); + //String userName = AuthUtil.getSessionUser().getUserName(); + String userName ="zxw"; + ruleNosortCfgList.forEach(ruleNosortCfg -> { + ruleNosortCfg.setOrganizeCode(organizeCode); + ConvertBean.serviceModelInitialize(ruleNosortCfg,userName); + }); + List ruleNosortCfgs = baseService.insertBatch(ruleNosortCfgList); + Map> ruleNosortCfgMap = ruleNosortCfgs.stream().collect(Collectors.groupingBy(MesProdRuleNosortCfg::getNo)); + + assemblyNosortCfgList.forEach(assemblyNosortCfg -> { + List mesProdRuleNosortCfgs = ruleNosortCfgMap.get(assemblyNosortCfg.getNo()); + assemblyNosortCfg.setPid(mesProdRuleNosortCfgs.get(0).getId()); + assemblyNosortCfg.setOrganizeCode(organizeCode); + ConvertBean.serviceModelInitialize(assemblyNosortCfg,userName); + }); + assemblyNosortCfgRepository.saveAll(assemblyNosortCfgList); + + equipmentProdParamCfgList.forEach(equipmentProdParamCfg -> { + List mesProdRuleNosortCfgs = ruleNosortCfgMap.get(equipmentProdParamCfg.getNo()); + equipmentProdParamCfg.setSourceId(mesProdRuleNosortCfgs.get(0).getId()); + equipmentProdParamCfg.setOrganizeCode(organizeCode); + ConvertBean.serviceModelInitialize(equipmentProdParamCfg,userName); + }); + equipmentProdParamCfgRepository.saveAll(equipmentProdParamCfgList); + + timeEfficientCfgList.forEach(timeEfficientCfg -> { + List mesProdRuleNosortCfgs = ruleNosortCfgMap.get(timeEfficientCfg.getNo()); + timeEfficientCfg.setSourceId(mesProdRuleNosortCfgs.get(0).getId()); + timeEfficientCfg.setOrganizeCode(organizeCode); + ConvertBean.serviceModelInitialize(timeEfficientCfg,userName); + }); + timeEfficientCfgRepository.saveAll(timeEfficientCfgList); + + + return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + /** + * SHEET初始校验 + * + * @param excelTool + * @param fileName + * @param inputStream + * @param dataBean + * @param sheetName + * @param + * @return + * @throws Exception + */ + private List getDataAndInitValid(ExcelTool excelTool, String fileName, InputStream inputStream, + Class dataBean, String sheetName, boolean isCheckDataEmpty) throws Exception { + List beanList = excelTool.importData(fileName, inputStream, dataBean, sheetName); + LOGGER.info("导入的【" + sheetName + "】数据" + JsonUtilTool.getJSONArrayByList(beanList)); + if (isCheckDataEmpty && CollectionUtils.isEmpty(beanList)) { + MesException.throwBusiException(String.format("导入的【%s】数据为空", sheetName)); + } + return beanList; + } } From 9cdc9c3b1c0bd2c36a50b4398c67418d6777b95b Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Thu, 9 Jan 2025 20:03:07 +0800 Subject: [PATCH 2/3] =?UTF-8?q?44270=20=E9=9D=9E=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E5=8A=A0=E5=B7=A5=E8=A7=84=E5=88=99=E7=9A=84?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesAssemblyNosortCfgController.java | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesAssemblyNosortCfgController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesAssemblyNosortCfgController.java index 9fe8d45..558e5c7 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesAssemblyNosortCfgController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesAssemblyNosortCfgController.java @@ -1,10 +1,26 @@ 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.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesAssemblyNosortCfg; +import cn.estsh.i3plus.pojo.mes.bean.MesTimeEfficientCfg; +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; /** * 非排序产品加工规则配置 @@ -13,4 +29,39 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesAssemblyNosortCfg") public class MesAssemblyNosortCfgController extends BaseMesController{ + + + @PostMapping(value = "/import-data") + @ApiOperation(value = "导入数据") + public ResultBean importNew(@RequestParam("file") MultipartFile file, @RequestParam("sourceId")Long sourceId) { + try { + MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis()); + List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), mesClass); + + // 校验导入数据 + baseService.validateImport(beanList); + + beanList.forEach(mesAssemblyNosortCfg -> { + mesAssemblyNosortCfg.setPid(sourceId); + }); + + String userName = AuthUtil.getSessionUser().getUserName(); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + // 导入数据初始化 + for (MesAssemblyNosortCfg bean : beanList) { + ConvertBean.serviceModelInitialize(bean, userName); + bean.setOrganizeCode(organizeCode); + bean.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + } + 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); + } + } } From ce6e53fd7212fc524e096fe4ea70262351a95f7c Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Mon, 13 Jan 2025 19:06:17 +0800 Subject: [PATCH 3/3] =?UTF-8?q?44270=20PC=EF=BC=9A=E9=9D=9E=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E4=BA=A7=E5=93=81=E5=8A=A0=E5=B7=A5=E8=A7=84=E5=88=99?= =?UTF-8?q?=E7=9A=84=E6=89=B9=E9=87=8F=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/base/MesAssemblyNosortCfgController.java | 3 --- .../controller/base/MesProdRuleNosortCfgController.java | 8 ++++---- .../apiservice/serviceimpl/base/MesAssemblyNosortCfgService.java | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesAssemblyNosortCfgController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesAssemblyNosortCfgController.java index 558e5c7..318338c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesAssemblyNosortCfgController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesAssemblyNosortCfgController.java @@ -38,9 +38,6 @@ public class MesAssemblyNosortCfgController extends BaseMesController beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), mesClass); - // 校验导入数据 - baseService.validateImport(beanList); - beanList.forEach(mesAssemblyNosortCfg -> { mesAssemblyNosortCfg.setPid(sourceId); }); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProdRuleNosortCfgController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProdRuleNosortCfgController.java index 8d581fd..0765a93 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProdRuleNosortCfgController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesProdRuleNosortCfgController.java @@ -59,8 +59,8 @@ public class MesProdRuleNosortCfgController extends BaseMesController ruleNosortCfgList = getDataAndInitValid(excelTool, file.getOriginalFilename(), file.getInputStream(), @@ -71,8 +71,8 @@ public class MesProdRuleNosortCfgController extends BaseMesController timeEfficientCfgList = getDataAndInitValid(excelTool, file.getOriginalFilename(), file.getInputStream(), MesTimeEfficientCfg.class, "MesTimeEfficientCfg", true); - //String userName = AuthUtil.getSessionUser().getUserName(); - String userName ="zxw"; + String userName = AuthUtil.getSessionUser().getUserName(); + //String userName ="zxw"; ruleNosortCfgList.forEach(ruleNosortCfg -> { ruleNosortCfg.setOrganizeCode(organizeCode); ConvertBean.serviceModelInitialize(ruleNosortCfg,userName); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesAssemblyNosortCfgService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesAssemblyNosortCfgService.java index cc63214..1feed31 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesAssemblyNosortCfgService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesAssemblyNosortCfgService.java @@ -23,7 +23,7 @@ public class MesAssemblyNosortCfgService extends BaseMesService