From 8c6327da1e57033a8d331d11e7f2e81496f1d6b5 Mon Sep 17 00:00:00 2001 From: sfd <sun.sunshine@163.com> Date: 星期五, 23 五月 2025 15:15:24 +0800 Subject: [PATCH] 修改导入导出规则 --- aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java | 59 ---- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessServiceImpl.java | 64 +++- aps-modules/aps-core/src/main/java/com/aps/core/service/IApsShopService.java | 9 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsShopMapper.java | 35 ++ aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java | 40 ++ aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java | 24 + aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java | 27 + aps-modules/aps-core/src/main/resources/templates/标准工序数据模板v1.0.xlsx | 0 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java | 3 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcess.java | 8 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java | 112 +++----- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineMoServiceImpl.java | 65 +---- aps-modules/aps-core/src/main/resources/templates/气体工单数据模板v1.0.xlsx | 0 aps-common/aps-common-security/src/main/java/com/aps/common/security/utils/DictUtils.java | 65 +++- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsShopServiceImpl.java | 19 + aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java | 157 +++++------- aps-modules/aps-core/src/main/resources/templates/气体预测数据模板v1.0.xlsx | 0 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessMapper.java | 3 18 files changed, 360 insertions(+), 330 deletions(-) diff --git a/aps-common/aps-common-security/src/main/java/com/aps/common/security/utils/DictUtils.java b/aps-common/aps-common-security/src/main/java/com/aps/common/security/utils/DictUtils.java index b3466a3..b1b7fe1 100644 --- a/aps-common/aps-common-security/src/main/java/com/aps/common/security/utils/DictUtils.java +++ b/aps-common/aps-common-security/src/main/java/com/aps/common/security/utils/DictUtils.java @@ -1,43 +1,43 @@ package com.aps.common.security.utils; import java.util.Collection; +import java.util.Collections; import java.util.List; +import java.util.Objects; + import com.alibaba.fastjson2.JSONArray; import com.aps.common.core.constant.CacheConstants; import com.aps.common.core.utils.SpringUtils; import com.aps.common.core.utils.StringUtils; import com.aps.common.redis.service.RedisService; import com.aps.system.api.domain.SysDictData; +import org.springframework.util.CollectionUtils; /** * 瀛楀吀宸ュ叿绫� - * + * * @author ruoyi */ -public class DictUtils -{ +public class DictUtils { /** * 璁剧疆瀛楀吀缂撳瓨 - * - * @param key 鍙傛暟閿� + * + * @param key 鍙傛暟閿� * @param dictDatas 瀛楀吀鏁版嵁鍒楄〃 */ - public static void setDictCache(String key, List<SysDictData> dictDatas) - { + public static void setDictCache(String key, List<SysDictData> dictDatas) { SpringUtils.getBean(RedisService.class).setCacheObject(getCacheKey(key), dictDatas); } /** * 鑾峰彇瀛楀吀缂撳瓨 - * + * * @param key 鍙傛暟閿� * @return dictDatas 瀛楀吀鏁版嵁鍒楄〃 */ - public static List<SysDictData> getDictCache(String key) - { + public static List<SysDictData> getDictCache(String key) { JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(getCacheKey(key)); - if (StringUtils.isNotNull(arrayCache)) - { + if (StringUtils.isNotNull(arrayCache)) { return arrayCache.toList(SysDictData.class); } return null; @@ -45,31 +45,56 @@ /** * 鍒犻櫎鎸囧畾瀛楀吀缂撳瓨 - * + * * @param key 瀛楀吀閿� */ - public static void removeDictCache(String key) - { + public static void removeDictCache(String key) { SpringUtils.getBean(RedisService.class).deleteObject(getCacheKey(key)); } /** * 娓呯┖瀛楀吀缂撳瓨 */ - public static void clearDictCache() - { + public static void clearDictCache() { Collection<String> keys = SpringUtils.getBean(RedisService.class).keys(CacheConstants.SYS_DICT_KEY + "*"); SpringUtils.getBean(RedisService.class).deleteObject(keys); } /** * 璁剧疆cache key - * + * * @param configKey 鍙傛暟閿� * @return 缂撳瓨閿甼ey */ - public static String getCacheKey(String configKey) - { + public static String getCacheKey(String configKey) { return CacheConstants.SYS_DICT_KEY + configKey; } + + + public static interface CacheValue{ + String get(String label); + } + + /** + * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏告爣绛捐幏鍙栧瓧鍏稿�� + * + * @param dictType + * @return + */ + public static CacheValue getCacheValue(String dictType) { + + List<SysDictData> cacheData = StringUtils.isEmpty(dictType) ? Collections.emptyList() : getDictCache(dictType); + return label -> { + if (CollectionUtils.isEmpty(cacheData)){ + return null; + } + if(StringUtils.isEmpty(label)){ + return null; + } + return cacheData.stream().filter(item -> Objects.equals(item.getDictLabel(), label)) + .findFirst() + .map(SysDictData::getDictValue) + .orElse(null); + }; + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java index ac1167d..0b08b15 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java @@ -10,8 +10,10 @@ import com.aps.common.security.annotation.RequiresPermissions; import com.aps.common.security.utils.SecurityUtils; import com.aps.core.domain.ApsGasPipelineCapacityPlan; +import com.aps.core.domain.ApsShop; import com.aps.core.domain.ApsStandardProcess; import com.aps.core.service.IApsGasPipelineCapacityPlanService; +import com.aps.core.service.IApsShopService; import com.aps.core.service.IApsStandardProcessService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.*; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.Objects; @@ -40,6 +43,9 @@ @Autowired private IApsStandardProcessService apsStandardProcessService; + @Autowired + private IApsShopService apsShopService; + /** * 鏌ヨ姘斾綋绠¤矾浜ц兘瑙勫垝鍒楄〃 */ @@ -53,20 +59,30 @@ apsStandardProcess.setMajor(apsGasPipelineCapacityPlan.getMajor()); apsStandardProcess.setPlant(apsGasPipelineCapacityPlan.getOrgCode()); List<ApsStandardProcess> processList = apsStandardProcessService.selectApsStandardProcessListAll(apsStandardProcess); + List<ApsShop> apsShops = apsShopService.findShopByFactory(apsGasPipelineCapacityPlan.getOrgCode()); if (list.isEmpty()) { for (ApsStandardProcess apsStandardProcessTemp : processList) { ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlanTemp = new ApsGasPipelineCapacityPlan(); apsGasPipelineCapacityPlanTemp.setProcessName(apsStandardProcessTemp.getProcessName()); apsGasPipelineCapacityPlanTemp.setOrgCode(apsStandardProcessTemp.getPlant()); - apsGasPipelineCapacityPlanTemp.setWorkshop(apsStandardProcessTemp.getWorkShop()); + apsGasPipelineCapacityPlanTemp.setWorkshop(apsShops.stream() + .filter(shop -> Objects.equals(shop.getShopName(), apsStandardProcessTemp.getWorkShop())) + .map(ApsShop::getShopCode) + .findFirst() + .orElse(null)); list.add(apsGasPipelineCapacityPlanTemp); } } else { - list.forEach(item -> { - processList.stream().filter(p -> Objects.equals(p.getPlant(), item.getOrgCode())) - .filter(p -> Objects.equals(p.getProcessName(), item.getProcessName())) + list.forEach(capacityPlan -> { + processList.stream().filter(p -> Objects.equals(p.getPlant(), capacityPlan.getOrgCode())) + .filter(p -> Objects.equals(p.getMajor(), capacityPlan.getMajor())) + .filter(p -> p.getWorkShop() != null) .findFirst().ifPresent(p -> { - item.setWorkshop(p.getWorkShop()); + capacityPlan.setWorkshop(apsShops.stream() + .filter(shop -> Objects.equals(shop.getShopCode(), p.getWorkShop())) + .map(ApsShop::getShopName) + .findFirst() + .orElse(null)); }); }); } @@ -84,15 +100,19 @@ newProcess.add(apsStandardProcessTemp); } } - for (ApsStandardProcess processName : newProcess) { + for (ApsStandardProcess process : newProcess) { ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlanTemp = new ApsGasPipelineCapacityPlan(); - apsGasPipelineCapacityPlanTemp.setProcessName(processName.getProcessName()); - apsGasPipelineCapacityPlanTemp.setOrgCode(processName.getPlant()); - apsGasPipelineCapacityPlanTemp.setWorkshop(processName.getWorkShop()); + apsGasPipelineCapacityPlanTemp.setProcessName(process.getProcessName()); + apsGasPipelineCapacityPlanTemp.setOrgCode(process.getPlant()); + apsGasPipelineCapacityPlanTemp.setWorkshop(apsShops.stream() + .filter(shop -> Objects.equals(shop.getShopName(), process.getWorkShop())) + .map(ApsShop::getShopCode) + .findFirst() + .orElse(null)); list.add(apsGasPipelineCapacityPlanTemp); } } - list.sort((a, b) -> a.getProcessName().compareTo(b.getProcessName())); + list.sort(Comparator.comparing(ApsGasPipelineCapacityPlan::getProcessName)); return getDataTable(list); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java index f99787f..10d4244 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java @@ -7,13 +7,19 @@ import com.aps.common.log.annotation.Log; import com.aps.common.log.enums.BusinessType; import com.aps.common.security.annotation.RequiresPermissions; +import com.aps.common.security.utils.DictUtils; import com.aps.core.domain.ApsGasPipelineMo; import com.aps.core.service.IApsGasPipelineMoService; +import com.aps.system.api.domain.SysDictData; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.SneakyThrows; import org.apache.commons.io.IOUtils; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ByteArrayResource; import org.springframework.http.HttpHeaders; @@ -21,6 +27,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.List; @@ -56,7 +64,7 @@ @Operation(summary = "瀵煎叆绠¤矾鎵嬪伐姘斾綋宸ュ崟鏁版嵁", description = "鎵归噺瀵煎叆") @Log(title = "瀵煎叆绠¤矾鎵嬪伐姘斾綋宸ュ崟鏁版嵁", businessType = BusinessType.IMPORT) - @RequiresPermissions("gasPipeline:mo:import") +// @RequiresPermissions("gasPipeline:mo:import") @PostMapping("/importData") public AjaxResult importData(MultipartFile file) throws Exception { @@ -135,6 +143,20 @@ @GetMapping("/template") public ResponseEntity<ByteArrayResource> exportTemplate() { byte[] file = IOUtils.resourceToByteArray("/templates/姘斾綋宸ュ崟鏁版嵁妯℃澘v1.0.xlsx"); + Workbook workbook = WorkbookFactory.create(new ByteArrayInputStream(file)); + Sheet sheet = workbook.getSheet("瀛楀吀-鐢熶骇鍩哄湴"); + List<SysDictData> sysDictDataList = DictUtils.getDictCache("aps_factory"); + if (sysDictDataList != null) { + for (int i = 0; i < sysDictDataList.size(); i++) { + Row row = sheet.createRow(i + 1); + row.createCell(0).setCellValue(sysDictDataList.get(i).getDictValue()); + row.createCell(1).setCellValue(sysDictDataList.get(i).getDictLabel()); + } + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + workbook.write(baos); + file = baos.toByteArray(); + } + workbook.close(); ByteArrayResource resource = new ByteArrayResource(file); return ResponseEntity.ok() .header("Access-Control-Expose-Headers", HttpHeaders.CONTENT_DISPOSITION) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java index faf5e0a..1200905 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java @@ -7,23 +7,28 @@ import com.aps.common.log.annotation.Log; import com.aps.common.log.enums.BusinessType; import com.aps.common.security.annotation.RequiresPermissions; +import com.aps.common.security.utils.DictUtils; import com.aps.core.domain.ApsGasPipelinePrediction; -import com.aps.core.domain.ApsMaterialProductGroupManagement; import com.aps.core.service.IApsGasPipelinePredictionService; +import com.aps.system.api.domain.SysDictData; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.SneakyThrows; import org.apache.commons.io.IOUtils; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ByteArrayResource; import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.io.InputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.List; @@ -57,7 +62,7 @@ @Operation(summary = "瀵煎叆鎵嬪伐姘斾綋棰勬祴鏁版嵁", description = "鎵归噺瀵煎叆") @Log(title = "瀵煎叆鎵嬪伐姘斾綋棰勬祴鏁版嵁", businessType = BusinessType.IMPORT) - @RequiresPermissions("gasPipeline:prediction:import") +// @RequiresPermissions("gasPipeline:prediction:import") @PostMapping("/importData") public AjaxResult importData(MultipartFile file) throws Exception { @@ -75,6 +80,20 @@ @GetMapping("/template") public ResponseEntity<ByteArrayResource> exportTemplate() { byte[] file = IOUtils.resourceToByteArray("/templates/姘斾綋棰勬祴鏁版嵁妯℃澘v1.0.xlsx"); + Workbook workbook = WorkbookFactory.create(new ByteArrayInputStream(file)); + Sheet sheet = workbook.getSheet("瀛楀吀-鐢熶骇鍩哄湴"); + List<SysDictData> sysDictDataList = DictUtils.getDictCache("aps_factory"); + if (sysDictDataList != null) { + for (int i = 0; i < sysDictDataList.size(); i++) { + Row row = sheet.createRow(i + 1); + row.createCell(0).setCellValue(sysDictDataList.get(i).getDictValue()); + row.createCell(1).setCellValue(sysDictDataList.get(i).getDictLabel()); + } + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + workbook.write(baos); + file = baos.toByteArray(); + } + workbook.close(); ByteArrayResource resource = new ByteArrayResource(file); return ResponseEntity.ok() .header("Access-Control-Expose-Headers", HttpHeaders.CONTENT_DISPOSITION) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java index 2c83cd4..d031ba2 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java @@ -11,6 +11,7 @@ import java.math.BigDecimal; import java.sql.Timestamp; +import java.util.Date; /** * 绠¤矾鎵嬪伐姘斾綋宸ュ崟鏁版嵁瀵硅薄 aps_gas_pipeline_mo @@ -49,66 +50,10 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "璁″垝瀹屽伐鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Schema(description = "璁″垝瀹屽伐鏃ユ湡") - private Timestamp planEnd; + private Date planEnd; /** 鏁伴噺 */ @Excel(name = "鏁伴噺") @Schema(description = "鏁伴噺") private BigDecimal quantity; - - public void setId(Long id) - { - this.id = id; - } - - public Long getId() - { - return id; - } - - public void setMo(String mo) - { - this.mo = mo; - } - - public String getMo() - { - return mo; - } - - public void setFactory(String factory) - { - this.factory = factory; - } - - public String getFactory() - { - return factory; - } - - public void setMaterialCode(String materialCode) - { - this.materialCode = materialCode; - } - - public String getMaterialCode() - { - return materialCode; - } - - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("mo", getMo()) - .append("factory", getFactory()) - .append("materialCode", getMaterialCode()) - .append("planEnd", getPlanEnd()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java index 6a23249..4f60a7f 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java @@ -12,6 +12,7 @@ import java.math.BigDecimal; import java.sql.Timestamp; import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -48,7 +49,7 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "棰勬祴鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Schema(description = "棰勬祴鏃ユ湡") - private Timestamp predictDate; + private Date predictDate; /** 鏁伴噺 */ @Excel(name = "鏁伴噺") diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcess.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcess.java index e7d134b..e6f7157 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcess.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcess.java @@ -2,9 +2,13 @@ import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import org.springframework.data.annotation.Id; import java.math.BigDecimal; @@ -20,6 +24,10 @@ { private static final long serialVersionUID = 1L; + @Id + @TableId(type = IdType.AUTO) + /** 涓婚敭id */ + @JsonFormat(shape = JsonFormat.Shape.STRING) /** 涓婚敭id */ @Schema(description = "涓婚敭id", type = "Long") private Long id; diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsShopMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsShopMapper.java index 491ee60..7de4790 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsShopMapper.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsShopMapper.java @@ -1,8 +1,13 @@ package com.aps.core.mapper; import java.util.List; +import java.util.Set; + import com.aps.core.domain.ApsShop; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import org.jetbrains.annotations.NotNull; /** * 杞﹂棿Mapper鎺ュ彛 @@ -11,7 +16,7 @@ * @date 2025-04-14 */ @Mapper -public interface ApsShopMapper +public interface ApsShopMapper extends BaseMapper<ApsShop> { /** * 鏌ヨ杞﹂棿 @@ -60,4 +65,32 @@ * @return 缁撴灉 */ public int deleteApsShopByIds(String[] ids); + + + @Select(""" + <script> + select * from aps_shop where 1 = 0 + <if test="!codes.isEmpty()"> or shop_name in + <foreach collection="names" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + </script> + """) + List<ApsShop> selectApsByName(@NotNull Set<String> names); + + @Select("select * from aps_shop where plant_code = #{orgCode}") + List<ApsShop> selectApsByFactory(String orgCode); + + @Select(""" + <script> + select * from aps_shop where 1 = 0 + <if test="!codes.isEmpty()"> or shop_code in + <foreach collection="codes" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + </script> + """) + List<ApsShop> selectByCodes(Set<String> codes); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessMapper.java index fdf5d23..3cb17d4 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessMapper.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessMapper.java @@ -1,6 +1,7 @@ package com.aps.core.mapper; import com.aps.core.domain.ApsStandardProcess; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; @@ -10,7 +11,7 @@ * @author hjy * @date 2025-04-23 */ -public interface ApsStandardProcessMapper +public interface ApsStandardProcessMapper extends BaseMapper<ApsStandardProcess> { /** * 鏌ヨ鏍囧噯宸ュ簭 diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsShopService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsShopService.java index 118614e..666c56c 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsShopService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsShopService.java @@ -1,7 +1,10 @@ package com.aps.core.service; import java.util.List; +import java.util.Set; + import com.aps.core.domain.ApsShop; +import org.jetbrains.annotations.NotNull; /** * 杞﹂棿Service鎺ュ彛 @@ -58,4 +61,10 @@ * @return 缁撴灉 */ public int deleteApsShopById(String id); + + List<ApsShop> findAllShops(); + + List<ApsShop> findShopByFactory(String orgCode); + + List<ApsShop> findShopByCodes(@NotNull Set<String> collect); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineMoServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineMoServiceImpl.java index d714577..b326ae6 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineMoServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineMoServiceImpl.java @@ -2,25 +2,18 @@ import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; +import com.aps.common.core.utils.poi.ExcelUtil; +import com.aps.common.security.utils.DictUtils; import com.aps.common.security.utils.SecurityUtils; import com.aps.core.domain.ApsGasPipelineMo; import com.aps.core.mapper.ApsGasPipelineMoMapper; import com.aps.core.service.IApsGasPipelineMoService; -import io.micrometer.common.util.StringUtils; import lombok.SneakyThrows; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.usermodel.Workbook; -import org.apache.poi.ss.usermodel.WorkbookFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; -import java.math.BigDecimal; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; import java.util.List; /** @@ -108,49 +101,21 @@ @Transactional(rollbackFor = Exception.class) @Override public int batchInsertGasPipelineMo(MultipartFile file) { - Workbook workbook = WorkbookFactory.create(file.getInputStream()); - Sheet sheet = workbook.getSheetAt(0); - int rows = sheet.getLastRowNum(); - if (rows > 0) { - List<ApsGasPipelineMo> list = new ArrayList<>(); + ExcelUtil<ApsGasPipelineMo> util = new ExcelUtil<>(ApsGasPipelineMo.class); + List<ApsGasPipelineMo> tempList = util.importExcel(file.getInputStream()); + DictUtils.CacheValue cacheValue = DictUtils.getCacheValue("aps_factory"); + tempList.forEach(apsGasPipelineMo -> { + apsGasPipelineMo.setId(IdUtil.getSnowflakeNextId()); + apsGasPipelineMo.setFactory(cacheValue.get(apsGasPipelineMo.getFactory())); + apsGasPipelineMo.setCreateBy(SecurityUtils.getUsername()); + apsGasPipelineMo.setCreateTime(DateUtils.getNowDate()); + }); - /*鏁版嵁鍒椾粠1寮�濮�*/ - for (int i = 1; i <= rows; i++) { - Row row = sheet.getRow(i); - if (row.getCell(0) == null){ - continue; - } - String mo = row.getCell(0).getStringCellValue(); - if (StringUtils.isEmpty(mo)){ - continue; - } - String factory = row.getCell(1).getStringCellValue(); - String materialNum = row.getCell(2).getStringCellValue(); - double quantity = row.getCell(3).getNumericCellValue(); - Date planEnd = row.getCell(4).getDateCellValue(); - if (StringUtils.isNotBlank(factory) && - StringUtils.isNotBlank(materialNum) && - planEnd != null) { - ApsGasPipelineMo apsGasPipelineMo = new ApsGasPipelineMo(); - apsGasPipelineMo.setMo(mo); - apsGasPipelineMo.setMaterialCode(materialNum); - apsGasPipelineMo.setId(IdUtil.getSnowflakeNextId()); - apsGasPipelineMo.setFactory(factory); - apsGasPipelineMo.setCreateBy(SecurityUtils.getUsername()); - apsGasPipelineMo.setCreateTime(DateUtils.getNowDate()); - apsGasPipelineMo.setQuantity(new BigDecimal(quantity)); - apsGasPipelineMo.setPlanEnd(new Timestamp(planEnd.getTime())); - list.add(apsGasPipelineMo); - } - } - if (!list.isEmpty()) { - apsGasPipelineMoMapper.deleteAll(); - apsGasPipelineMoMapper.insert(list); - } - return list.size(); + if (!tempList.isEmpty()) { + apsGasPipelineMoMapper.deleteAll(); + apsGasPipelineMoMapper.insert(tempList); } - return 0; - + return tempList.size(); } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java index f4715e4..c9f6153 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java @@ -2,27 +2,19 @@ import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; +import com.aps.common.core.utils.poi.ExcelUtil; +import com.aps.common.security.utils.DictUtils; import com.aps.common.security.utils.SecurityUtils; import com.aps.core.domain.ApsGasPipelinePrediction; -import com.aps.core.domain.ApsMaterialProductGroupManagement; import com.aps.core.mapper.ApsGasPipelinePredictionMapper; import com.aps.core.service.IApsGasPipelinePredictionService; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import io.micrometer.common.util.StringUtils; import lombok.SneakyThrows; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.usermodel.Workbook; -import org.apache.poi.ss.usermodel.WorkbookFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; -import java.math.BigDecimal; import java.sql.Timestamp; -import java.text.SimpleDateFormat; import java.util.*; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; /** @@ -107,72 +99,54 @@ @SneakyThrows @Override public int batchInsertApsGasPipelinePrediction(MultipartFile file) { - Workbook workbook = WorkbookFactory.create(file.getInputStream()); - Sheet sheet = workbook.getSheetAt(0); - int rows = sheet.getLastRowNum(); - if (rows > 0) { - List<ApsGasPipelinePrediction> list = new ArrayList<>(); - Set<String> keys = new HashSet<>(); - /*鏁版嵁琛屼粠1寮�濮�*/ - for (int i = rows; i > 0; --i) { - Row row = sheet.getRow(i); - if (row.getCell(0) == null) { - continue; - } + ExcelUtil<ApsGasPipelinePrediction> util = new ExcelUtil<>(ApsGasPipelinePrediction.class); + List<ApsGasPipelinePrediction> list = util.importExcel(file.getInputStream()); + DictUtils.CacheValue cacheValue = DictUtils.getCacheValue("aps_factory"); + Set<String> keys = new HashSet<>(); + list.forEach(item -> { + item.setId(IdUtil.getSnowflakeNextId()); + item.setFactory(cacheValue.get(item.getFactory())); + item.setCreateBy(SecurityUtils.getUsername()); + item.setCreateTime(DateUtils.getNowDate()); + }); + Collections.reverse(list); + list = list.stream().filter(item -> { + item.setKey(null); + if (!keys.contains(item.getKey())) { + keys.add(item.getKey()); + return true; + } + return false; + }).collect(Collectors.toList()); - String materialCode = row.getCell(0).getStringCellValue(); - if (StringUtils.isEmpty(materialCode)) { - continue; - } - String factory = row.getCell(1).getStringCellValue(); - double quantity = row.getCell(2).getNumericCellValue(); - Date date = row.getCell(3).getDateCellValue(); - if (StringUtils.isNotBlank(factory) && - date != null) { - ApsGasPipelinePrediction item = new ApsGasPipelinePrediction(); - item.setId(IdUtil.getSnowflakeNextId()); - item.setFactory(factory); - item.setMaterialCode(materialCode); - item.setCreateBy(SecurityUtils.getUsername()); - item.setCreateTime(DateUtils.getNowDate()); - item.setPredictQuantity(new BigDecimal(quantity)); - item.setPredictDate(new Timestamp(date.getTime())); - if (!keys.contains(item.getKey())) { - keys.add(item.getKey()); - list.add(item); + if (!list.isEmpty()) { + List<Map<String, Object>> facCodeKey = apsGasPipelinePredictionMapper.selectByFacOrMaterial(keys); + if (!facCodeKey.isEmpty()) { + Iterator<ApsGasPipelinePrediction> it = list.iterator(); + while (it.hasNext()) { + ApsGasPipelinePrediction item = it.next(); + int count = 0; + for (Map<String, Object> map : facCodeKey) { + if (map.get("key").equals(item.getKey())) { + item.setId((Long) map.get("id")); + item.setCreateBy(null); + item.setCreateTime(null); + item.setUpdateBy(SecurityUtils.getUsername()); + item.setUpdateTime(new Timestamp(System.currentTimeMillis())); + apsGasPipelinePredictionMapper.updateById(item); + count++; + } + } + if (count > 0) { + it.remove(); } } } if (!list.isEmpty()) { - List<Map<String, Object>> facCodeKey = apsGasPipelinePredictionMapper.selectByFacOrMaterial(keys); - if (!facCodeKey.isEmpty()) { - Iterator<ApsGasPipelinePrediction> it = list.iterator(); - while (it.hasNext()) { - ApsGasPipelinePrediction item = it.next(); - int count = 0; - for (Map<String, Object> map : facCodeKey) { - if (map.get("key").equals(item.getKey())) { - item.setId((Long) map.get("id")); - item.setCreateBy(null); - item.setCreateTime(null); - item.setUpdateBy(SecurityUtils.getUsername()); - item.setUpdateTime(new Timestamp(System.currentTimeMillis())); - apsGasPipelinePredictionMapper.updateById(item); - count++; - } - } - if (count > 0){ - it.remove(); - } - } - } - if (!list.isEmpty()) { - apsGasPipelinePredictionMapper.insert(list); - } + apsGasPipelinePredictionMapper.insert(list); } - return list.size(); } - return 0; + return list.size(); } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java index 9cb9f90..b89e432 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java @@ -1,73 +1,64 @@ package com.aps.core.service.impl; -import java.math.BigDecimal; -import java.sql.Timestamp; -import java.util.*; -import java.util.stream.Collectors; - import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; +import com.aps.common.core.utils.poi.ExcelUtil; +import com.aps.common.security.utils.DictUtils; import com.aps.common.security.utils.SecurityUtils; -import com.aps.core.domain.ApsGasPipelinePrediction; import com.aps.core.domain.ApsMaterialProductGroupManagement; import com.aps.core.mapper.ApsMaterialProductGroupManagementMapper; import com.aps.core.service.IApsMaterialProductGroupManagementService; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import io.micrometer.common.util.StringUtils; import lombok.SneakyThrows; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.usermodel.Workbook; -import org.apache.poi.ss.usermodel.WorkbookFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.sql.Timestamp; +import java.util.*; +import java.util.stream.Collectors; + /** * 鐗╂枡浜у搧缁勬暟鎹鐞哠ervice涓氬姟灞傚鐞� - * + * * @author ruoyi * @date 2025-05-19 */ @Service -public class ApsMaterialProductGroupManagementServiceImpl implements IApsMaterialProductGroupManagementService -{ +public class ApsMaterialProductGroupManagementServiceImpl implements IApsMaterialProductGroupManagementService { @Autowired private ApsMaterialProductGroupManagementMapper apsMaterialProductGroupManagementMapper; /** * 鏌ヨ鐗╂枡浜у搧缁勬暟鎹鐞� - * + * * @param id 鐗╂枡浜у搧缁勬暟鎹鐞嗕富閿� * @return 鐗╂枡浜у搧缁勬暟鎹鐞� */ @Override - public ApsMaterialProductGroupManagement selectApsMaterialProductGroupManagementById(Long id) - { + public ApsMaterialProductGroupManagement selectApsMaterialProductGroupManagementById(Long id) { return apsMaterialProductGroupManagementMapper.selectApsMaterialProductGroupManagementById(id); } /** * 鏌ヨ鐗╂枡浜у搧缁勬暟鎹鐞嗗垪琛� - * + * * @param apsMaterialProductGroupManagement 鐗╂枡浜у搧缁勬暟鎹鐞� * @return 鐗╂枡浜у搧缁勬暟鎹鐞� */ @Override - public List<ApsMaterialProductGroupManagement> selectApsMaterialProductGroupManagementList(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) - { + public List<ApsMaterialProductGroupManagement> selectApsMaterialProductGroupManagementList(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) { return apsMaterialProductGroupManagementMapper.selectApsMaterialProductGroupManagementList(apsMaterialProductGroupManagement); } /** * 鏂板鐗╂枡浜у搧缁勬暟鎹鐞� - * + * * @param apsMaterialProductGroupManagement 鐗╂枡浜у搧缁勬暟鎹鐞� * @return 缁撴灉 */ @Override - public int insertApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) - { + public int insertApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) { apsMaterialProductGroupManagement.setId(IdUtil.getSnowflakeNextId()); apsMaterialProductGroupManagement.setCreateBy(SecurityUtils.getUsername()); apsMaterialProductGroupManagement.setCreateTime(DateUtils.getNowDate()); @@ -76,13 +67,12 @@ /** * 淇敼鐗╂枡浜у搧缁勬暟鎹鐞� - * + * * @param apsMaterialProductGroupManagement 鐗╂枡浜у搧缁勬暟鎹鐞� * @return 缁撴灉 */ @Override - public int updateApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) - { + public int updateApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) { apsMaterialProductGroupManagement.setUpdateTime(DateUtils.getNowDate()); apsMaterialProductGroupManagement.setUpdateBy(SecurityUtils.getUsername()); return apsMaterialProductGroupManagementMapper.updateApsMaterialProductGroupManagement(apsMaterialProductGroupManagement); @@ -90,98 +80,79 @@ /** * 鎵归噺鍒犻櫎鐗╂枡浜у搧缁勬暟鎹鐞� - * + * * @param ids 闇�瑕佸垹闄ょ殑鐗╂枡浜у搧缁勬暟鎹鐞嗕富閿� * @return 缁撴灉 */ @Override - public int deleteApsMaterialProductGroupManagementByIds(Long[] ids) - { + public int deleteApsMaterialProductGroupManagementByIds(Long[] ids) { return apsMaterialProductGroupManagementMapper.deleteApsMaterialProductGroupManagementByIds(ids); } /** * 鍒犻櫎鐗╂枡浜у搧缁勬暟鎹鐞嗕俊鎭� - * + * * @param id 鐗╂枡浜у搧缁勬暟鎹鐞嗕富閿� * @return 缁撴灉 */ @Override - public int deleteApsMaterialProductGroupManagementById(Long id) - { + public int deleteApsMaterialProductGroupManagementById(Long id) { return apsMaterialProductGroupManagementMapper.deleteApsMaterialProductGroupManagementById(id); } @SneakyThrows @Override public int batchInsertApsMaterialProductGroupManagement(MultipartFile file) { - Workbook workbook = WorkbookFactory.create(file.getInputStream()); - - Sheet sheet = workbook.getSheetAt(0); - int rows = sheet.getLastRowNum(); - if (rows > 0) { - List<ApsMaterialProductGroupManagement> list = new ArrayList<>(); - - /*鏁版嵁琛屼粠1寮�濮�*/ - Set<String> keys = new HashSet<>(); - for (int i = rows; i > 0; --i) { - Row row = sheet.getRow(i); - if (row.getCell(0) == null) { - continue; - } - String materialCode = row.getCell(0).getStringCellValue(); - if (StringUtils.isEmpty(materialCode)){ - continue; - } - String materialType = row.getCell(1).getStringCellValue(); - String domain = row.getCell(2).getStringCellValue(); - String isMain = row.getCell(3).getStringCellValue(); - String factory = row.getCell(4).getStringCellValue(); - if (StringUtils.isNotBlank(materialType) && - StringUtils.isNotBlank(domain) && - StringUtils.isNotBlank(isMain) && - StringUtils.isNotBlank(factory)) { - ApsMaterialProductGroupManagement item = new ApsMaterialProductGroupManagement(); - item.setId(IdUtil.getSnowflakeNextId()); - item.setFactory(factory); - item.setDomain(domain); - item.setMaterialType(materialType); - item.setMaterialCode(materialCode); - item.setIsMain(isMain); - item.setCreateBy(SecurityUtils.getUsername()); - item.setCreateTime(DateUtils.getNowDate()); + ExcelUtil<ApsMaterialProductGroupManagement> util = new ExcelUtil<>(ApsMaterialProductGroupManagement.class); + List<ApsMaterialProductGroupManagement> list = util.importExcel(file.getInputStream()); + DictUtils.CacheValue cacheValue = DictUtils.getCacheValue("aps_factory"); + DictUtils.CacheValue cacheDomain = DictUtils.getCacheValue("aps_domain"); + Set<String> keys = new HashSet<>(); + list.forEach(item -> { + item.setId(IdUtil.getSnowflakeNextId()); + item.setDomain(cacheDomain.get(item.getDomain())); + item.setFactory(cacheValue.get(item.getFactory())); + item.setCreateBy(SecurityUtils.getUsername()); + item.setCreateTime(DateUtils.getNowDate()); + }); + Collections.reverse(list); + list = list.stream() + .filter(item -> { + item.setKey(null); if (!keys.contains(item.getKey())) { keys.add(item.getKey()); - list.add(item); + return true; } - } - } - if (!list.isEmpty()) { - Set<String> facCodeKey = apsMaterialProductGroupManagementMapper.selectByFacOrMaterial(keys); - if (!facCodeKey.isEmpty()) { - Iterator<ApsMaterialProductGroupManagement> it = list.iterator(); - while (it.hasNext()) { - ApsMaterialProductGroupManagement item = it.next(); - if (facCodeKey.contains(item.getKey())) { - LambdaUpdateWrapper<ApsMaterialProductGroupManagement> wrapper = new LambdaUpdateWrapper<>(); - wrapper.eq(ApsMaterialProductGroupManagement::getFactory, item.getFactory()); - wrapper.eq(ApsMaterialProductGroupManagement::getMaterialCode, item.getMaterialCode()); - item.setCreateBy(null); - item.setCreateTime(null); - item.setUpdateBy(SecurityUtils.getUsername()); - item.setUpdateTime(new Timestamp(System.currentTimeMillis())); - apsMaterialProductGroupManagementMapper.update(item, wrapper); - it.remove(); - } - } - } + return false; + }) + .collect(Collectors.toList()); - if (!list.isEmpty()) { - apsMaterialProductGroupManagementMapper.insert(list); + if (!list.isEmpty()) { + Set<String> facCodeKey = apsMaterialProductGroupManagementMapper.selectByFacOrMaterial(keys); + if (!facCodeKey.isEmpty()) { + Iterator<ApsMaterialProductGroupManagement> it = list.iterator(); + while (it.hasNext()) { + ApsMaterialProductGroupManagement item = it.next(); + if (facCodeKey.contains(item.getKey())) { + LambdaUpdateWrapper<ApsMaterialProductGroupManagement> wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(ApsMaterialProductGroupManagement::getFactory, item.getFactory()); + wrapper.eq(ApsMaterialProductGroupManagement::getMaterialCode, item.getMaterialCode()); + item.setCreateBy(null); + item.setCreateTime(null); + item.setId(null); + item.setUpdateBy(SecurityUtils.getUsername()); + item.setUpdateTime(new Timestamp(System.currentTimeMillis())); + apsMaterialProductGroupManagementMapper.update(item, wrapper); + it.remove(); + } } } - return list.size(); + + if (!list.isEmpty()) { + apsMaterialProductGroupManagementMapper.insert(list); + } } - return 0; + return list.size(); + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsShopServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsShopServiceImpl.java index a83b730..b154f2d 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsShopServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsShopServiceImpl.java @@ -1,9 +1,13 @@ package com.aps.core.service.impl; import java.util.List; +import java.util.Set; + import com.aps.common.core.utils.DateUtils; import com.aps.common.core.utils.uuid.IdUtils; import com.aps.common.security.utils.SecurityUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsShopMapper; @@ -97,4 +101,19 @@ { return apsShopMapper.deleteApsShopById(id); } + + @Override + public List<ApsShop> findAllShops() { + return apsShopMapper.selectList(new QueryWrapper<>()); + } + + @Override + public List<ApsShop> findShopByFactory(String orgCode) { + return apsShopMapper.selectApsByFactory(orgCode); + } + + @Override + public List<ApsShop> findShopByCodes(@NotNull Set<String> codes) { + return apsShopMapper.selectByCodes(codes); + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessServiceImpl.java index cfb2f8a..b2fee3c 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessServiceImpl.java @@ -1,60 +1,65 @@ package com.aps.core.service.impl; import com.aps.common.core.utils.DateUtils; +import com.aps.common.core.utils.StringUtils; +import com.aps.common.security.utils.DictUtils; import com.aps.common.security.utils.SecurityUtils; +import com.aps.core.domain.ApsShop; import com.aps.core.domain.ApsStandardProcess; +import com.aps.core.mapper.ApsShopMapper; import com.aps.core.mapper.ApsStandardProcessMapper; import com.aps.core.service.IApsStandardProcessService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * 鏍囧噯宸ュ簭Service涓氬姟灞傚鐞� - * + * * @author hjy * @date 2025-04-23 */ @Service -public class ApsStandardProcessServiceImpl implements IApsStandardProcessService -{ +public class ApsStandardProcessServiceImpl implements IApsStandardProcessService { @Autowired private ApsStandardProcessMapper apsStandardProcessMapper; + @Autowired + private ApsShopMapper apsShopMapper; + /** * 鏌ヨ鏍囧噯宸ュ簭 - * + * * @param id 鏍囧噯宸ュ簭涓婚敭 * @return 鏍囧噯宸ュ簭 */ @Override - public ApsStandardProcess selectApsStandardProcessById(Long id) - { + public ApsStandardProcess selectApsStandardProcessById(Long id) { return apsStandardProcessMapper.selectApsStandardProcessById(id); } /** * 鏌ヨ鏍囧噯宸ュ簭鍒楄〃 - * + * * @param apsStandardProcess 鏍囧噯宸ュ簭 * @return 鏍囧噯宸ュ簭 */ @Override - public List<ApsStandardProcess> selectApsStandardProcessList(ApsStandardProcess apsStandardProcess) - { + public List<ApsStandardProcess> selectApsStandardProcessList(ApsStandardProcess apsStandardProcess) { return apsStandardProcessMapper.selectApsStandardProcessList(apsStandardProcess); } /** * 鏂板鏍囧噯宸ュ簭 - * + * * @param apsStandardProcess 鏍囧噯宸ュ簭 * @return 缁撴灉 */ @Override - public int insertApsStandardProcess(ApsStandardProcess apsStandardProcess) - { + public int insertApsStandardProcess(ApsStandardProcess apsStandardProcess) { apsStandardProcess.setCreateTime(DateUtils.getNowDate()); apsStandardProcess.setCreateBy(SecurityUtils.getUsername()); return apsStandardProcessMapper.insertApsStandardProcess(apsStandardProcess); @@ -62,13 +67,12 @@ /** * 淇敼鏍囧噯宸ュ簭 - * + * * @param apsStandardProcess 鏍囧噯宸ュ簭 * @return 缁撴灉 */ @Override - public int updateApsStandardProcess(ApsStandardProcess apsStandardProcess) - { + public int updateApsStandardProcess(ApsStandardProcess apsStandardProcess) { apsStandardProcess.setUpdateTime(DateUtils.getNowDate()); apsStandardProcess.setUpdateBy(SecurityUtils.getUsername()); return apsStandardProcessMapper.updateApsStandardProcess(apsStandardProcess); @@ -76,30 +80,29 @@ /** * 鎵归噺鍒犻櫎鏍囧噯宸ュ簭 - * + * * @param ids 闇�瑕佸垹闄ょ殑鏍囧噯宸ュ簭涓婚敭 * @return 缁撴灉 */ @Override - public int deleteApsStandardProcessByIds(Long[] ids) - { + public int deleteApsStandardProcessByIds(Long[] ids) { return apsStandardProcessMapper.deleteApsStandardProcessByIds(ids); } /** * 鍒犻櫎鏍囧噯宸ュ簭淇℃伅 - * + * * @param id 鏍囧噯宸ュ簭涓婚敭 * @return 缁撴灉 */ @Override - public int deleteApsStandardProcessById(Long id) - { + public int deleteApsStandardProcessById(Long id) { return apsStandardProcessMapper.deleteApsStandardProcessById(id); } /** * 瀵煎叆鏁版嵁 + * * @param tempList * @return true/false */ @@ -107,11 +110,26 @@ public boolean importData(List<ApsStandardProcess> tempList) { try { if (!tempList.isEmpty()) { - tempList.forEach(temp->{ + DictUtils.CacheValue cacheFactory = DictUtils.getCacheValue("aps_factory"); + DictUtils.CacheValue cacheDomain = DictUtils.getCacheValue("aps_domain"); + + List<ApsShop> shops = apsShopMapper.selectApsByName(tempList.stream() + .map(ApsStandardProcess::getWorkShop) + .filter(StringUtils::isNotEmpty) + .collect(Collectors.toSet())); + tempList.forEach(temp -> { temp.setCreateBy(SecurityUtils.getUsername()); temp.setCreateTime(DateUtils.getNowDate()); - apsStandardProcessMapper.insertApsStandardProcess(temp); + temp.setMajor(cacheDomain.get(temp.getMajor())); + temp.setPlant(cacheFactory.get(temp.getPlant())); + temp.setWorkShop(shops.stream() + .filter(shop -> Objects.equals(shop.getShopName(), temp.getWorkShop())) + .filter(shop -> Objects.equals(shop.getPlantCode(), temp.getPlant())) + .map(ApsShop::getShopCode) + .findFirst() + .orElse(null)); }); + apsStandardProcessMapper.insert(tempList); } } catch (Exception e) { e.printStackTrace(); diff --git "a/aps-modules/aps-core/src/main/resources/templates/\346\240\207\345\207\206\345\267\245\345\272\217\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" "b/aps-modules/aps-core/src/main/resources/templates/\346\240\207\345\207\206\345\267\245\345\272\217\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" new file mode 100644 index 0000000..090ea01 --- /dev/null +++ "b/aps-modules/aps-core/src/main/resources/templates/\346\240\207\345\207\206\345\267\245\345\272\217\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" Binary files differ diff --git "a/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\345\267\245\345\215\225\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" "b/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\345\267\245\345\215\225\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" index e67251f..3168a65 100644 --- "a/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\345\267\245\345\215\225\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" +++ "b/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\345\267\245\345\215\225\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" Binary files differ diff --git "a/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\351\242\204\346\265\213\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" "b/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\351\242\204\346\265\213\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" index 50fb427..f30117d 100644 --- "a/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\351\242\204\346\265\213\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" +++ "b/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\351\242\204\346\265\213\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" Binary files differ -- Gitblit v1.9.3