From 6da289fff756eaecc600422d77c4afff1ddebab0 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期五, 23 五月 2025 15:23:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
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/controller/basicData/ApsStandardProcessController.java | 130 +++++++-
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
19 files changed, 469 insertions(+), 351 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/basicData/ApsStandardProcessController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsStandardProcessController.java
index 396f46a..32552bc 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsStandardProcessController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsStandardProcessController.java
@@ -7,20 +7,39 @@
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.ApsShop;
import com.aps.core.domain.ApsStandardProcess;
+import com.aps.core.service.IApsShopService;
import com.aps.core.service.IApsStandardProcessService;
+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.ResponseEntity;
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;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 鏍囧噯宸ュ簭Controller
- *
+ *
* @author hjy
* @date 2025-04-23
*/
@@ -29,10 +48,12 @@
@Tag(name = "鏍囧噯宸ュ簭", description = "鏍囧噯宸ュ簭鎺ュ彛")
@RestController
@RequestMapping("/standardProcess")
-public class ApsStandardProcessController extends BaseController
-{
+public class ApsStandardProcessController extends BaseController {
@Autowired
private IApsStandardProcessService apsStandardProcessService;
+
+ @Autowired
+ IApsShopService apsShopService;
/**
* 鏌ヨ鏍囧噯宸ュ簭鍒楄〃
@@ -40,10 +61,19 @@
@Operation(summary = "鏌ヨ鏍囧噯宸ュ簭鍒楄〃", description = "鍒嗛〉鏌ヨ")
@RequiresPermissions("aps:standardProcess:list")
@GetMapping("/list")
- public TableDataInfo list(ApsStandardProcess apsStandardProcess)
- {
+ public TableDataInfo list(ApsStandardProcess apsStandardProcess) {
startPage();
List<ApsStandardProcess> list = apsStandardProcessService.selectApsStandardProcessList(apsStandardProcess);
+ List<ApsShop> apsShops = apsShopService.findShopByCodes(list.stream().map(ApsStandardProcess::getWorkShop)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toSet()));
+ list.forEach(temp -> {
+ temp.setWorkShop(apsShops.stream()
+ .filter(tempShop -> Objects.equals(tempShop.getShopCode(), temp.getWorkShop()))
+ .map(ApsShop::getShopName)
+ .findFirst()
+ .orElse(null));
+ });
return getDataTable(list);
}
@@ -54,8 +84,7 @@
@RequiresPermissions("aps:standardProcess:export")
@Log(title = "鏍囧噯宸ュ簭", businessType = BusinessType.EXPORT)
@PostMapping("/export")
- public void export(HttpServletResponse response, ApsStandardProcess apsStandardProcess)
- {
+ public void export(HttpServletResponse response, ApsStandardProcess apsStandardProcess) {
List<ApsStandardProcess> list = apsStandardProcessService.selectApsStandardProcessList(apsStandardProcess);
ExcelUtil<ApsStandardProcess> util = new ExcelUtil<ApsStandardProcess>(ApsStandardProcess.class);
util.exportExcel(response, list, "鏍囧噯宸ュ簭鏁版嵁");
@@ -67,8 +96,7 @@
@Operation(summary = "鑾峰彇鏍囧噯宸ュ簭璇︾粏淇℃伅", description = "鏍规嵁id鑾峰彇")
@RequiresPermissions("aps:standardProcess:query")
@GetMapping(value = "/{id}")
- public AjaxResult getInfo(@PathVariable("id") Long id)
- {
+ public AjaxResult getInfo(@PathVariable("id") Long id) {
return success(apsStandardProcessService.selectApsStandardProcessById(id));
}
@@ -79,8 +107,7 @@
@RequiresPermissions("aps:standardProcess:add")
@Log(title = "鏍囧噯宸ュ簭", businessType = BusinessType.INSERT)
@PostMapping
- public AjaxResult add(@RequestBody ApsStandardProcess apsStandardProcess)
- {
+ public AjaxResult add(@RequestBody ApsStandardProcess apsStandardProcess) {
return toAjax(apsStandardProcessService.insertApsStandardProcess(apsStandardProcess));
}
@@ -91,8 +118,7 @@
@RequiresPermissions("aps:standardProcess:edit")
@Log(title = "鏍囧噯宸ュ簭", businessType = BusinessType.UPDATE)
@PutMapping
- public AjaxResult edit(@RequestBody ApsStandardProcess apsStandardProcess)
- {
+ public AjaxResult edit(@RequestBody ApsStandardProcess apsStandardProcess) {
return toAjax(apsStandardProcessService.updateApsStandardProcess(apsStandardProcess));
}
@@ -102,9 +128,8 @@
@Operation(summary = "鍒犻櫎鏍囧噯宸ュ簭", description = "鎵归噺鍒犻櫎")
@RequiresPermissions("aps:standardProcess:remove")
@Log(title = "鏍囧噯宸ュ簭", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public AjaxResult remove(@PathVariable Long[] ids)
- {
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(apsStandardProcessService.deleteApsStandardProcessByIds(ids));
}
@@ -112,7 +137,7 @@
* 瀵煎叆鏍囧噯宸ュ簭鏁版嵁
*/
@Operation(summary = "瀵煎叆鏍囧噯宸ュ簭鏁版嵁", description = "澧為噺瀵煎叆")
- @RequiresPermissions("aps:standardProcess:importData")
+// @RequiresPermissions("aps:standardProcess:importData")
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file) throws Exception {
ExcelUtil<ApsStandardProcess> util = new ExcelUtil<>(ApsStandardProcess.class);
@@ -120,9 +145,9 @@
//鍒ゆ柇瀵煎叆鏁版嵁鏄惁涓虹┖
if (!tempList.isEmpty()) {
Boolean res = apsStandardProcessService.importData(tempList);
- if(res){
+ if (res) {
return AjaxResult.success("瀵煎叆鎴愬姛锛�");
- }else{
+ } else {
return AjaxResult.error("瀵煎叆澶辫触锛�");
}
} else {
@@ -136,9 +161,72 @@
@Operation(summary = "鏍规嵁杞﹂棿鏌ヨ鏍囧噯宸ュ簭鍒楄〃", description = "鍏ㄩ噺鏌ヨ")
@RequiresPermissions("aps:standardProcess:listByWorkShop")
@GetMapping("/listByWorkShop")
- public TableDataInfo listByWorkShop(ApsStandardProcess apsStandardProcess)
- {
+ public TableDataInfo listByWorkShop(ApsStandardProcess apsStandardProcess) {
List<ApsStandardProcess> list = apsStandardProcessService.selectApsStandardProcessList(apsStandardProcess);
return getDataTable(list);
}
+
+ /**
+ * 涓嬭浇鏍囧噯宸ュ簭鏁版嵁瀵煎叆妯℃澘
+ */
+ @SneakyThrows
+ @Operation(summary = "涓嬭浇鏍囧噯宸ュ簭鏁版嵁瀵煎叆妯℃澘", description = "涓嬭浇鏍囧噯宸ュ簭鏁版嵁瀵煎叆妯℃澘")
+// @RequiresPermissions("gasPipeline:prediction:template")
+// @Log(title = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘", businessType = BusinessType.EXPORT)
+ @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");
+ boolean changed = false;
+ 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());
+ }
+
+ sheet = workbook.getSheet("瀛楀吀-杞﹂棿");
+ List<ApsShop> shops = apsShopService.findAllShops();
+ for (int i = 0; i < shops.size(); i++) {
+ Row row = sheet.createRow(i + 1);
+ ApsShop shop = shops.get(i);
+ row.createCell(0).setCellValue(sysDictDataList
+ .stream()
+ .filter(d -> d.getDictValue().equals(shop.getPlantCode()))
+ .map(SysDictData::getDictLabel)
+ .findFirst()
+ .orElse(null));
+ row.createCell(1).setCellValue(shops.get(i).getShopCode());
+ row.createCell(2).setCellValue(shops.get(i).getShopName());
+ }
+ changed = true;
+ }
+ sheet = workbook.getSheet("瀛楀吀-涓撲笟");
+ sysDictDataList = DictUtils.getDictCache("aps_domain");
+ 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());
+ }
+
+ changed = true;
+ }
+ if (changed) {
+ 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)
+ .header(HttpHeaders.CONTENT_DISPOSITION,
+ String.format("attachment;filename=%s", URLEncoder.encode("姘斾綋棰勬祴鏁版嵁妯℃澘.xlsx", StandardCharsets.UTF_8)))
+ .header(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
+ .contentLength(file.length)
+ .body(resource);
+ }
}
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