From 481d8165f26fc7e37f0e87f6444ac0340bb563a3 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期二, 03 十一月 2026 18:53:22 +0800
Subject: [PATCH] fix: 移植长辉已验证的四类接口 500/体验问题(不含物料颜色字段)
---
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchasePlanController.java | 76 +++++++++++++++++++++++++++++++------
1 files changed, 63 insertions(+), 13 deletions(-)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchasePlanController.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchasePlanController.java
index 858b26a..260568e 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchasePlanController.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchasePlanController.java
@@ -8,6 +8,10 @@
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanAuditReqVO;
+import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanImportExcelVO;
+import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanImportReqVO;
+import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanImportRespVO;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanPageReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanRespVO;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanSaveReqVO;
@@ -36,8 +40,10 @@
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
@@ -48,7 +54,7 @@
@Tag(name = "绠$悊鍚庡彴 - ERP 閲囪喘璁″垝")
@RestController
-@RequestMapping({"/erp/purchase-plan", "/purchase/plan"})
+@RequestMapping({"/purchase/plan", "/erp/purchase-plan"})
@Validated
public class ErpPurchasePlanController {
@@ -92,7 +98,6 @@
@GetMapping("/get")
@Operation(summary = "鑾峰緱閲囪喘璁″垝")
@Parameter(name = "id", description = "缂栧彿", required = true, example = "1024")
- @PreAuthorize("@ss.hasPermission('erp:purchase-plan:query')")
public CommonResult<ErpPurchasePlanRespVO> getPurchasePlan(@RequestParam("id") Long id) {
ErpPurchasePlanDO plan = purchasePlanService.getPurchasePlan(id);
if (plan == null) {
@@ -114,7 +119,6 @@
@GetMapping("/page")
@Operation(summary = "鑾峰緱閲囪喘璁″垝鍒嗛〉")
- @PreAuthorize("@ss.hasPermission('erp:purchase-plan:query')")
public CommonResult<PageResult<ErpPurchasePlanRespVO>> getPurchasePlanPage(@Valid ErpPurchasePlanPageReqVO pageReqVO) {
PageResult<ErpPurchasePlanDO> pageResult = purchasePlanService.getPurchasePlanPage(pageReqVO);
return success(buildPurchasePlanVOPageResult(pageResult));
@@ -131,21 +135,51 @@
ExcelUtils.write(response, "閲囪喘璁″垝.xls", "鏁版嵁", ErpPurchasePlanRespVO.class, list);
}
+ @GetMapping("/get-import-template")
+ @Operation(summary = "鑾峰緱瀵煎叆閲囪喘璁″垝妯℃澘")
+ public void importTemplate(HttpServletResponse response) throws IOException {
+ // 鎵嬪姩鍒涘缓瀵煎嚭 demo
+ List<ErpPurchasePlanImportExcelVO> list = Arrays.asList(
+ ErpPurchasePlanImportExcelVO.builder().no("CGJH-绀轰緥-001").name("绀轰緥閲囪喘璁″垝")
+ .demandSource(null).planDate(null).supplierName("")
+ .remark("").productCode("").productUnitCode("").count(null)
+ .demandTime(null).itemRemark("").build()
+ );
+ // 杈撳嚭
+ ExcelUtils.writeTemplate(response, "閲囪喘璁″垝瀵煎叆妯℃澘.xls", "閲囪喘璁″垝鍒楄〃", ErpPurchasePlanImportExcelVO.class, list);
+ }
+
+ @PostMapping("/import")
+ @Operation(summary = "瀵煎叆閲囪喘璁″垝")
+ @PreAuthorize("@ss.hasPermission('erp:purchase-plan:import')")
+ public CommonResult<ErpPurchasePlanImportRespVO> importExcel(@Valid ErpPurchasePlanImportReqVO importReqVO)
+ throws Exception {
+ List<ErpPurchasePlanImportExcelVO> list = ExcelUtils.read(importReqVO.getFile(), ErpPurchasePlanImportExcelVO.class);
+ return success(purchasePlanService.importPurchasePlanList(list, importReqVO));
+ }
+
@PutMapping("/submit")
- @Operation(summary = "鎻愪氦閲囪喘璁″垝瀹℃壒")
+ @Operation(summary = "鎻愪氦閲囪喘璁″垝瀹℃牳锛堣崏绋�/瀹℃牳涓嶉�氳繃 鈫� 瀹℃壒涓級")
+ @Parameter(name = "id", description = "缂栧彿", required = true)
@PreAuthorize("@ss.hasPermission('erp:purchase-plan:submit')")
- public CommonResult<Boolean> submitPurchasePlan(@RequestParam("id") Long id,
- @RequestParam("processDefinitionKey") String processDefinitionKey) {
- Long userId = getLoginUserId();
- purchasePlanService.submitPurchasePlan(id, processDefinitionKey, userId);
+ public CommonResult<Boolean> submitPurchasePlan(@RequestParam("id") Long id) {
+ purchasePlanService.submitPurchasePlan(id);
return success(true);
}
- @GetMapping("/approve-process-list")
- @Operation(summary = "鑾峰彇閲囪喘璁″垝瀹℃壒娴佺▼鍒楄〃")
- @PreAuthorize("@ss.hasPermission('erp:purchase-plan:query')")
- public CommonResult<List<Map<String, Object>>> getApproveProcessList() {
- return success(purchasePlanService.getPurchasePlanApproveProcessDefinitionList());
+ @PutMapping("/audit")
+ @Operation(summary = "瀹℃牳閲囪喘璁″垝锛堝鎵逛腑 鈫� 瀹℃牳閫氳繃/瀹℃牳涓嶉�氳繃锛夛紝浠呭鎵逛汉鏈汉鍙搷浣�")
+ @PreAuthorize("@ss.hasPermission('erp:purchase-plan:audit')")
+ public CommonResult<Boolean> auditPurchasePlan(@Valid @RequestBody ErpPurchasePlanAuditReqVO auditReqVO) {
+ purchasePlanService.auditPurchasePlan(auditReqVO.getId(), auditReqVO.getPass(),
+ auditReqVO.getReviewRemark());
+ return success(true);
+ }
+
+ @GetMapping("/approver-ids")
+ @Operation(summary = "鑾峰緱閲囪喘璁″垝鐨勫鎵逛汉缂栧彿闆嗗悎锛屼緵鍓嶇鍒ゆ柇鏄惁灞曠ず瀹℃牳鎸夐挳")
+ public CommonResult<Set<Long>> getApproverUserIds() {
+ return success(purchasePlanService.getPurchasePlanApproverUserIds());
}
@PostMapping("/generate-from-stock-alert")
@@ -157,6 +191,22 @@
return success(plan.getId());
}
+ @GetMapping("/get-stock-alert-suggest-items")
+ @Operation(summary = "鑾峰彇搴撳瓨棰勮寤鸿閲囪喘鏄庣粏", description = "閬嶅巻鍚敤瀹夊叏搴撳瓨鐨勭墿鏂欙紝鎸夐粯璁や粨搴撶己閲忚繑鍥炲缓璁噰璐槑缁嗭紝涓嶈惤搴�")
+ @PreAuthorize("@ss.hasPermission('erp:purchase-plan:create')")
+ public CommonResult<List<ErpPurchasePlanRespVO.Item>> getStockAlertSuggestItems() {
+ List<ErpPurchasePlanRespVO.Item> items = purchasePlanService.getStockAlertSuggestItems();
+ if (CollUtil.isEmpty(items)) {
+ return success(items);
+ }
+ // 1.2 鍗曚綅淇℃伅
+ Map<Long, MdmUnitMeasureRespDTO> unitMeasureMap = mdmUnitMeasureApi.getUnitMeasureMap(
+ convertSet(items, ErpPurchasePlanRespVO.Item::getProductUnitId));
+ items.forEach(item -> MapUtils.findAndThen(unitMeasureMap, item.getProductUnitId(),
+ unit -> item.setProductUnitName(unit.getName())));
+ return success(items);
+ }
+
@PostMapping("/generate-requests")
@Operation(summary = "鐢熸垚閲囪喘鐢宠")
@PreAuthorize("@ss.hasPermission('erp:purchase-plan:generate-request')")
--
Gitblit v1.9.3