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..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 @@ -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,36 @@ 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); + + 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); + } + } } 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..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 @@ -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; + } } 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