From a57390bfc4f92178e2adba3a2973ef6df0807656 Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期五, 23 五月 2025 15:26:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsStandardProcessController.java |  177 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 155 insertions(+), 22 deletions(-)

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 b9fd515..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,48 +7,84 @@
 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
  */
 
+
+@Tag(name = "鏍囧噯宸ュ簭", description = "鏍囧噯宸ュ簭鎺ュ彛")
 @RestController
 @RequestMapping("/standardProcess")
-public class ApsStandardProcessController extends BaseController
-{
+public class ApsStandardProcessController extends BaseController {
     @Autowired
     private IApsStandardProcessService apsStandardProcessService;
+
+    @Autowired
+    IApsShopService apsShopService;
 
     /**
      * 鏌ヨ鏍囧噯宸ュ簭鍒楄〃
      */
-    @RequiresPermissions("core:standardProcess:list")
+    @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);
     }
 
     /**
      * 瀵煎嚭鏍囧噯宸ュ簭鍒楄〃
      */
-    @RequiresPermissions("core:standardProcess:export")
+    @Operation(summary = "瀵煎嚭鏍囧噯宸ュ簭鍒楄〃", description = "瀵煎嚭Excel")
+    @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, "鏍囧噯宸ュ簭鏁版嵁");
@@ -57,43 +93,140 @@
     /**
      * 鑾峰彇鏍囧噯宸ュ簭璇︾粏淇℃伅
      */
-    @RequiresPermissions("core:standardProcess:query")
+    @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));
     }
 
     /**
      * 鏂板鏍囧噯宸ュ簭
      */
-    @RequiresPermissions("core:standardProcess:add")
+    @Operation(summary = "鏂板鏍囧噯宸ュ簭", description = "鍗曚釜澧炲姞")
+    @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));
     }
 
     /**
      * 淇敼鏍囧噯宸ュ簭
      */
-    @RequiresPermissions("core:standardProcess:edit")
+    @Operation(summary = "淇敼鏍囧噯宸ュ簭", description = "鍗曚釜淇敼")
+    @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));
     }
 
     /**
      * 鍒犻櫎鏍囧噯宸ュ簭
      */
-    @RequiresPermissions("core:standardProcess:remove")
+    @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));
     }
+
+    /**
+     * 瀵煎叆鏍囧噯宸ュ簭鏁版嵁
+     */
+    @Operation(summary = "瀵煎叆鏍囧噯宸ュ簭鏁版嵁", description = "澧為噺瀵煎叆")
+//    @RequiresPermissions("aps:standardProcess:importData")
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file) throws Exception {
+        ExcelUtil<ApsStandardProcess> util = new ExcelUtil<>(ApsStandardProcess.class);
+        List<ApsStandardProcess> tempList = util.importExcel(file.getInputStream());
+        //鍒ゆ柇瀵煎叆鏁版嵁鏄惁涓虹┖
+        if (!tempList.isEmpty()) {
+            Boolean res = apsStandardProcessService.importData(tempList);
+            if (res) {
+                return AjaxResult.success("瀵煎叆鎴愬姛锛�");
+            } else {
+                return AjaxResult.error("瀵煎叆澶辫触锛�");
+            }
+        } else {
+            return AjaxResult.error("妯℃澘鍐呭涓虹┖");
+        }
+    }
+
+    /**
+     * 鏍规嵁杞﹂棿鏌ヨ鏍囧噯宸ュ簭鍒楄〃
+     */
+    @Operation(summary = "鏍规嵁杞﹂棿鏌ヨ鏍囧噯宸ュ簭鍒楄〃", description = "鍏ㄩ噺鏌ヨ")
+    @RequiresPermissions("aps:standardProcess:listByWorkShop")
+    @GetMapping("/listByWorkShop")
+    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);
+    }
 }

--
Gitblit v1.9.3