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/controller/basicData/ApsStandardProcessController.java | 139 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 119 insertions(+), 20 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 412a4f3..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,22 +48,32 @@ @Tag(name = "鏍囧噯宸ュ簭", description = "鏍囧噯宸ュ簭鎺ュ彛") @RestController @RequestMapping("/standardProcess") -public class ApsStandardProcessController extends BaseController -{ +public class ApsStandardProcessController extends BaseController { @Autowired private IApsStandardProcessService apsStandardProcessService; + + @Autowired + IApsShopService apsShopService; /** * 鏌ヨ鏍囧噯宸ュ簭鍒楄〃 */ - @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); } @@ -55,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, "鏍囧噯宸ュ簭鏁版嵁"); @@ -68,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)); } @@ -80,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)); } @@ -92,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)); } @@ -103,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)); } @@ -113,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); @@ -121,13 +145,88 @@ //鍒ゆ柇瀵煎叆鏁版嵁鏄惁涓虹┖ if (!tempList.isEmpty()) { Boolean res = apsStandardProcessService.importData(tempList); - if(res){ + if (res) { return AjaxResult.success("瀵煎叆鎴愬姛锛�"); - }else{ + } 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