From d0b80b5cb70f2709c7b5692ab7facd118ce62814 Mon Sep 17 00:00:00 2001 From: HuangHuiKang Date: Fri, 27 Feb 2026 17:47:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=B7=B2=E7=9F=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/mold/MoldBrandController.java | 1 + .../admin/product/ErpProductController.java | 14 +- .../product/ErpProductUnitController.java | 13 +- .../admin/stock/ErpStockCheckController.java | 15 +- .../admin/stock/ErpStockController.java | 7 +- .../admin/stock/ErpStockInController.java | 18 +- .../admin/stock/ErpStockMoveController.java | 15 +- .../admin/stock/ErpStockOutController.java | 19 +- .../admin/stock/ErpStockRecordController.java | 7 +- .../admin/stock/ErpWarehouseController.java | 13 +- .../stock/vo/in/ErpStockInSaveReqVO.java | 2 +- .../stock/vo/out/ErpStockOutSaveReqVO.java | 2 +- .../service/stock/ErpStockInServiceImpl.java | 36 +-- .../service/stock/ErpStockOutServiceImpl.java | 40 +-- .../admin/device/DeviceController.java | 6 +- .../DeviceAttributeTypeController.java | 2 +- .../DeviceOperationRecordController.java | 2 +- .../RecipePlanDetailController.java | 1 + .../iot/service/device/DeviceServiceImpl.java | 232 +++++++++--------- .../iot/service/device/TDengineService.java | 76 ++++++ .../energydevice/EnergyDeviceController.java | 4 +- .../moldsubject/MoldSubjectController.java | 1 + .../organization/OrganizationController.java | 14 +- .../controller/admin/plan/PlanController.java | 22 +- 24 files changed, 334 insertions(+), 228 deletions(-) diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java index d6c4a00a6..925848f36 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldBrandController.java @@ -75,6 +75,7 @@ public class MoldBrandController { } @GetMapping("/getBrandList") @Operation(summary = "获得模具型号列表") + @PreAuthorize("@ss.hasPermission('erp:mold-brand:query')") public CommonResult> getBrandList(MoldBrandPageReqVO pageReqVO) { List brandDOList = moldBrandService.selectBy(pageReqVO); return success(brandDOList); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductController.java index 4498bf635..e0fb907de 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductController.java @@ -19,6 +19,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -49,7 +50,7 @@ public class ErpProductController { @PostMapping("/create") @Operation(summary = "创建产品") - //@PreAuthorize("@ss.hasPermission('erp:product:create')") + @PreAuthorize("@ss.hasPermission('erp:product:create')") public CommonResult createProduct(@Valid @RequestBody ProductSaveReqVO createReqVO) { ErpProductPageReqVO productPageReqVO = new ErpProductPageReqVO(); productPageReqVO.setName(createReqVO.getName()); @@ -67,7 +68,7 @@ public class ErpProductController { @PutMapping("/update") @Operation(summary = "更新产品") - //@PreAuthorize("@ss.hasPermission('erp:product:update')") + @PreAuthorize("@ss.hasPermission('erp:product:update')") public CommonResult updateProduct(@Valid @RequestBody ProductSaveReqVO updateReqVO) { ErpProductPageReqVO productPageReqVO = new ErpProductPageReqVO(); productPageReqVO.setName(updateReqVO.getName()); @@ -87,7 +88,7 @@ public class ErpProductController { @DeleteMapping("/delete") @Operation(summary = "删除产品") @Parameter(name = "id", description = "编号", required = true) - //@PreAuthorize("@ss.hasPermission('erp:product:delete')") + @PreAuthorize("@ss.hasPermission('erp:product:delete')") public CommonResult deleteProduct(@RequestParam("id") Long id) { productService.deleteProduct(id); return success(true); @@ -96,7 +97,7 @@ public class ErpProductController { @GetMapping("/get") @Operation(summary = "获得产品") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('erp:product:query')") + @PreAuthorize("@ss.hasPermission('erp:product:query')") public CommonResult getProduct(@RequestParam("id") Long id) { ErpProductDO product = productService.getProduct(id); return success(BeanUtils.toBean(product, ErpProductRespVO.class)); @@ -104,7 +105,7 @@ public class ErpProductController { @GetMapping("/page") @Operation(summary = "获得产品分页") - //@PreAuthorize("@ss.hasPermission('erp:product:query')") + @PreAuthorize("@ss.hasPermission('erp:product:query')") public CommonResult> getProductPage(@Valid ErpProductPageReqVO pageReqVO) { return success(productService.getProductVOPage(pageReqVO)); } @@ -172,6 +173,7 @@ public class ErpProductController { } @GetMapping("/export-excel") @Operation(summary = "导出产品 Excel") + @PreAuthorize("@ss.hasPermission('erp:product:export')") @ApiAccessLog(operateType = EXPORT) public void exportProductExcel(@Valid ErpProductPageReqVO pageReqVO, HttpServletResponse response) throws IOException { @@ -185,6 +187,7 @@ public class ErpProductController { @GetMapping("/get-import-template") @Operation(summary = "获取产品导入模板") @ApiAccessLog(operateType = EXPORT) + @PreAuthorize("@ss.hasPermission('erp:product:import')") public void getImportTemplate(HttpServletResponse response) throws IOException { // 准备模板数据 List list = new ArrayList<>(); @@ -214,6 +217,7 @@ public class ErpProductController { @PostMapping("/import") @Operation(summary = "导入产品") + @PreAuthorize("@ss.hasPermission('erp:product:import')") @Parameters({ @Parameter(name = "file", description = "Excel 文件", required = true), @Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductUnitController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductUnitController.java index 5c8f1a4be..bf20b21db 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductUnitController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductUnitController.java @@ -16,6 +16,7 @@ import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -43,7 +44,7 @@ public class ErpProductUnitController { @PostMapping("/create") @Operation(summary = "创建产品单位") - //@PreAuthorize("@ss.hasPermission('erp:product-unit:create')") + @PreAuthorize("@ss.hasPermission('erp:product-unit:create')") public CommonResult createProductUnit(@Valid @RequestBody ErpProductUnitSaveReqVO createReqVO) { ErpProductUnitPageReqVO productUnitPageReqVO = new ErpProductUnitPageReqVO(); productUnitPageReqVO.setName(createReqVO.getName()); @@ -55,7 +56,7 @@ public class ErpProductUnitController { @PutMapping("/update") @Operation(summary = "更新产品单位") - //@PreAuthorize("@ss.hasPermission('erp:product-unit:update')") + @PreAuthorize("@ss.hasPermission('erp:product-unit:update')") public CommonResult updateProductUnit(@Valid @RequestBody ErpProductUnitSaveReqVO updateReqVO) { productUnitService.updateProductUnit(updateReqVO); return success(true); @@ -64,7 +65,7 @@ public class ErpProductUnitController { @DeleteMapping("/delete") @Operation(summary = "删除产品单位") @Parameter(name = "id", description = "编号", required = true) - //@PreAuthorize("@ss.hasPermission('erp:product-unit:delete')") + @PreAuthorize("@ss.hasPermission('erp:product-unit:delete')") public CommonResult deleteProductUnit(@RequestParam("id") Long id) { productUnitService.deleteProductUnit(id); return success(true); @@ -73,7 +74,7 @@ public class ErpProductUnitController { @GetMapping("/get") @Operation(summary = "获得产品单位") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('erp:product-unit:query')") + @PreAuthorize("@ss.hasPermission('erp:product-unit:query')") public CommonResult getProductUnit(@RequestParam("id") Long id) { ErpProductUnitDO productUnit = productUnitService.getProductUnit(id); return success(BeanUtils.toBean(productUnit, ErpProductUnitRespVO.class)); @@ -81,7 +82,7 @@ public class ErpProductUnitController { @GetMapping("/page") @Operation(summary = "获得产品单位分页") - //@PreAuthorize("@ss.hasPermission('erp:product-unit:query')") + @PreAuthorize("@ss.hasPermission('erp:product-unit:query')") public CommonResult> getProductUnitPage(@Valid ErpProductUnitPageReqVO pageReqVO) { PageResult pageResult = productUnitService.getProductUnitPage(pageReqVO); return success(BeanUtils.toBean(pageResult, ErpProductUnitRespVO.class)); @@ -96,7 +97,7 @@ public class ErpProductUnitController { @GetMapping("/export-excel") @Operation(summary = "导出产品单位 Excel") - //@PreAuthorize("@ss.hasPermission('erp:product-unit:export')") + @PreAuthorize("@ss.hasPermission('erp:product-unit:export')") @ApiAccessLog(operateType = EXPORT) public void exportProductUnitExcel(@Valid ErpProductUnitPageReqVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockCheckController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockCheckController.java index 8681366cd..e2a45aec0 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockCheckController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockCheckController.java @@ -21,6 +21,7 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -52,14 +53,14 @@ public class ErpStockCheckController { @PostMapping("/create") @Operation(summary = "创建库存调拨单") - //@PreAuthorize("@ss.hasPermission('erp:stock-check:create')") + @PreAuthorize("@ss.hasPermission('erp:stock-check:create')") public CommonResult createStockCheck(@Valid @RequestBody ErpStockCheckSaveReqVO createReqVO) { return success(stockCheckService.createStockCheck(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新库存调拨单") - //@PreAuthorize("@ss.hasPermission('erp:stock-check:update')") + @PreAuthorize("@ss.hasPermission('erp:stock-check:update')") public CommonResult updateStockCheck(@Valid @RequestBody ErpStockCheckSaveReqVO updateReqVO) { stockCheckService.updateStockCheck(updateReqVO); return success(true); @@ -67,7 +68,7 @@ public class ErpStockCheckController { @PutMapping("/update-status") @Operation(summary = "更新库存调拨单的状态") - //@PreAuthorize("@ss.hasPermission('erp:stock-check:update-status')") + @PreAuthorize("@ss.hasPermission('erp:stock-check:update-status')") public CommonResult updateStockCheckStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) { stockCheckService.updateStockCheckStatus(id, status); @@ -77,7 +78,7 @@ public class ErpStockCheckController { @DeleteMapping("/delete") @Operation(summary = "删除库存调拨单") @Parameter(name = "ids", description = "编号数组", required = true) - //@PreAuthorize("@ss.hasPermission('erp:stock-check:delete')") + @PreAuthorize("@ss.hasPermission('erp:stock-check:delete')") public CommonResult deleteStockCheck(@RequestParam("ids") List ids) { stockCheckService.deleteStockCheck(ids); return success(true); @@ -86,7 +87,7 @@ public class ErpStockCheckController { @GetMapping("/get") @Operation(summary = "获得库存调拨单") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('erp:stock-check:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-check:query')") public CommonResult getStockCheck(@RequestParam("id") Long id) { ErpStockCheckDO stockCheck = stockCheckService.getStockCheck(id); if (stockCheck == null) { @@ -103,7 +104,7 @@ public class ErpStockCheckController { @GetMapping("/page") @Operation(summary = "获得库存调拨单分页") - //@PreAuthorize("@ss.hasPermission('erp:stock-check:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-check:query')") public CommonResult> getStockCheckPage(@Valid ErpStockCheckPageReqVO pageReqVO) { PageResult pageResult = stockCheckService.getStockCheckPage(pageReqVO); return success(buildStockCheckVOPageResult(pageResult)); @@ -111,7 +112,7 @@ public class ErpStockCheckController { @GetMapping("/export-excel") @Operation(summary = "导出库存调拨单 Excel") - //@PreAuthorize("@ss.hasPermission('erp:stock-check:export')") + @PreAuthorize("@ss.hasPermission('erp:stock-check:export')") @ApiAccessLog(operateType = EXPORT) public void exportStockCheckExcel(@Valid ErpStockCheckPageReqVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockController.java index 82e519108..1f97382a3 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockController.java @@ -20,6 +20,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -58,7 +59,7 @@ public class ErpStockController { @Parameter(name = "productId", description = "产品编号", example = "10"), // 方案二:传递 productId + warehouseId @Parameter(name = "warehouseId", description = "仓库编号", example = "2") }) - //@PreAuthorize("@ss.hasPermission('erp:stock:query')") + @PreAuthorize("@ss.hasPermission('erp:stock:query')") public CommonResult getStock(@RequestParam(value = "id", required = false) Long id, @RequestParam(value = "productId", required = false) Long productId, @RequestParam(value = "warehouseId", required = false) Long warehouseId) { @@ -75,7 +76,7 @@ public class ErpStockController { @GetMapping("/page") @Operation(summary = "获得产品库存分页") - //@PreAuthorize("@ss.hasPermission('erp:stock:query')") + @PreAuthorize("@ss.hasPermission('erp:stock:query')") public CommonResult> getStockPage(@Valid ErpStockPageReqVO pageReqVO) { PageResult pageResult = stockService.getStockPage(pageReqVO); return success(buildStockVOPageResult(pageResult)); @@ -83,7 +84,7 @@ public class ErpStockController { @GetMapping("/export-excel") @Operation(summary = "导出产品库存 Excel") - //@PreAuthorize("@ss.hasPermission('erp:stock:export')") + @PreAuthorize("@ss.hasPermission('erp:stock:export')") @ApiAccessLog(operateType = EXPORT) public void exportStockExcel(@Valid ErpStockPageReqVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockInController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockInController.java index ecd1cf0f3..4f421a659 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockInController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockInController.java @@ -31,6 +31,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.apache.commons.lang3.StringUtils; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -72,14 +73,14 @@ public class ErpStockInController { @PostMapping("/create") @Operation(summary = "创建其它入库单") - //@PreAuthorize("@ss.hasPermission('erp:stock-in:create')") + @PreAuthorize("@ss.hasPermission('erp:stock-in:create')") public CommonResult createStockIn(@Valid @RequestBody ErpStockInSaveReqVO createReqVO) { return success(stockInService.createStockIn(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新其它入库单") - //@PreAuthorize("@ss.hasPermission('erp:stock-in:update')") + @PreAuthorize("@ss.hasPermission('erp:stock-in:update')") public CommonResult updateStockIn(@Valid @RequestBody ErpStockInSaveReqVO updateReqVO) { stockInService.updateStockIn(updateReqVO); return success(true); @@ -87,7 +88,7 @@ public class ErpStockInController { @PutMapping("/update-status") @Operation(summary = "更新其它入库单的状态") - //@PreAuthorize("@ss.hasPermission('erp:stock-in:update-status')") + @PreAuthorize("@ss.hasPermission('erp:stock-in:update-status')") public CommonResult updateStockInStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) { stockInService.updateStockInStatus(id, status); @@ -97,7 +98,7 @@ public class ErpStockInController { @DeleteMapping("/delete") @Operation(summary = "删除其它入库单") @Parameter(name = "ids", description = "编号数组", required = true) - //@PreAuthorize("@ss.hasPermission('erp:stock-in:delete')") + @PreAuthorize("@ss.hasPermission('erp:stock-in:delete')") public CommonResult deleteStockIn(@RequestParam("ids") List ids) { stockInService.deleteStockIn(ids); return success(true); @@ -106,7 +107,7 @@ public class ErpStockInController { @GetMapping("/get") @Operation(summary = "获得其它入库单") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('erp:stock-in:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-in:query')") public CommonResult getStockIn(@RequestParam("id") Long id) { ErpStockInDO stockIn = stockInService.getStockIn(id); if (stockIn == null) { @@ -139,7 +140,7 @@ public class ErpStockInController { @GetMapping("/page") @Operation(summary = "获得其它入库单分页") - //@PreAuthorize("@ss.hasPermission('erp:stock-in:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-in:query')") public CommonResult> getStockInPage(@Valid ErpStockInPageReqVO pageReqVO) { if(StringUtils.isEmpty(pageReqVO.getInType())){ List list = new ArrayList<>(); @@ -155,7 +156,7 @@ public class ErpStockInController { @GetMapping("/export-excel") @Operation(summary = "导出其它入库单 Excel") - //@PreAuthorize("@ss.hasPermission('erp:stock-in:export')") + @PreAuthorize("@ss.hasPermission('erp:stock-in:export')") @ApiAccessLog(operateType = EXPORT) public void exportStockInExcel(@Valid ErpStockInPageReqVO pageReqVO, HttpServletResponse response) throws IOException { @@ -207,12 +208,14 @@ public class ErpStockInController { @PostMapping("/createMesStockIn") @Operation(summary = "创建生产入库单") + @PreAuthorize("@ss.hasPermission('erp:stock-in:create')") public CommonResult createMesStockIn(@Valid @RequestBody ErpStockInSaveReqVO createReqVO) { createReqVO.setInType(StockInTypeEnum.生产入库.getValue()); return success(stockInService.createStockIn(createReqVO)); } @GetMapping("/pageMesStockIn") @Operation(summary = "获得生产入库单分页") + @PreAuthorize("@ss.hasPermission('erp:stock-in:query')") public CommonResult> pageMesStockIn(@Valid ErpStockInPageReqVO pageReqVO) { pageReqVO.setInType(StockInTypeEnum.生产入库.getValue()); PageResult pageResult = stockInService.getStockInPage(pageReqVO); @@ -220,6 +223,7 @@ public class ErpStockInController { } @GetMapping("/pageComponent") @Operation(summary = "获得备件入库单分页") + @PreAuthorize("@ss.hasPermission('erp:stock-in:query')") public CommonResult> pageComponent(@Valid ErpStockInPageReqVO pageReqVO) { pageReqVO.setInType(StockInTypeEnum.生产入库.getValue()); PageResult pageResult = stockInService.getStockInPage(pageReqVO); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java index 1c7f14c1f..72d67d210 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java @@ -23,6 +23,7 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -57,14 +58,14 @@ public class ErpStockMoveController { @PostMapping("/create") @Operation(summary = "创建库存调拨单") - //@PreAuthorize("@ss.hasPermission('erp:stock-move:create')") + @PreAuthorize("@ss.hasPermission('erp:stock-move:create')") public CommonResult createStockMove(@Valid @RequestBody ErpStockMoveSaveReqVO createReqVO) { return success(stockMoveService.createStockMove(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新库存调拨单") - //@PreAuthorize("@ss.hasPermission('erp:stock-move:update')") + @PreAuthorize("@ss.hasPermission('erp:stock-move:update')") public CommonResult updateStockMove(@Valid @RequestBody ErpStockMoveSaveReqVO updateReqVO) { stockMoveService.updateStockMove(updateReqVO); return success(true); @@ -72,7 +73,7 @@ public class ErpStockMoveController { @PutMapping("/update-status") @Operation(summary = "更新库存调拨单的状态") - //@PreAuthorize("@ss.hasPermission('erp:stock-move:update-status')") + @PreAuthorize("@ss.hasPermission('erp:stock-move:update-status')") public CommonResult updateStockMoveStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) { stockMoveService.updateStockMoveStatus(id, status); @@ -82,7 +83,7 @@ public class ErpStockMoveController { @DeleteMapping("/delete") @Operation(summary = "删除库存调拨单") @Parameter(name = "ids", description = "编号数组", required = true) - //@PreAuthorize("@ss.hasPermission('erp:stock-move:delete')") + @PreAuthorize("@ss.hasPermission('erp:stock-move:delete')") public CommonResult deleteStockMove(@RequestParam("ids") List ids) { stockMoveService.deleteStockMove(ids); return success(true); @@ -91,7 +92,7 @@ public class ErpStockMoveController { @GetMapping("/get") @Operation(summary = "获得库存调拨单") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('erp:stock-move:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-move:query')") public CommonResult getStockMove(@RequestParam("id") Long id) { ErpStockMoveDO stockMove = stockMoveService.getStockMove(id); if (stockMove == null) { @@ -111,7 +112,7 @@ public class ErpStockMoveController { @GetMapping("/page") @Operation(summary = "获得库存调拨单分页") - //@PreAuthorize("@ss.hasPermission('erp:stock-move:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-move:query')") public CommonResult> getStockMovePage(@Valid ErpStockMovePageReqVO pageReqVO) { PageResult pageResult = stockMoveService.getStockMovePage(pageReqVO); return success(buildStockMoveVOPageResult(pageResult)); @@ -119,7 +120,7 @@ public class ErpStockMoveController { @GetMapping("/export-excel") @Operation(summary = "导出库存调拨单 Excel") - //@PreAuthorize("@ss.hasPermission('erp:stock-move:export')") + @PreAuthorize("@ss.hasPermission('erp:stock-move:export')") @ApiAccessLog(operateType = EXPORT) public void exportStockMoveExcel(@Valid ErpStockMovePageReqVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockOutController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockOutController.java index ead13209a..bb47b5f8f 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockOutController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockOutController.java @@ -30,6 +30,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.apache.commons.lang3.StringUtils; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -71,14 +72,14 @@ public class ErpStockOutController { @PostMapping("/create") @Operation(summary = "创建其它出库单") - //@PreAuthorize("@ss.hasPermission('erp:stock-out:create')") + @PreAuthorize("@ss.hasPermission('erp:stock-out:create')") public CommonResult createStockOut(@Valid @RequestBody ErpStockOutSaveReqVO createReqVO) { return success(stockOutService.createStockOut(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新其它出库单") - //@PreAuthorize("@ss.hasPermission('erp:stock-out:update')") + @PreAuthorize("@ss.hasPermission('erp:stock-out:update')") public CommonResult updateStockOut(@Valid @RequestBody ErpStockOutSaveReqVO updateReqVO) { stockOutService.updateStockOut(updateReqVO); return success(true); @@ -86,7 +87,7 @@ public class ErpStockOutController { @PutMapping("/update-status") @Operation(summary = "更新其它出库单的状态") - //@PreAuthorize("@ss.hasPermission('erp:stock-out:update-status')") + @PreAuthorize("@ss.hasPermission('erp:stock-out:update-status')") public CommonResult updateStockOutStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) { stockOutService.updateStockOutStatus(id, status); @@ -96,7 +97,7 @@ public class ErpStockOutController { @DeleteMapping("/delete") @Operation(summary = "删除其它出库单") @Parameter(name = "ids", description = "编号数组", required = true) - //@PreAuthorize("@ss.hasPermission('erp:stock-out:delete')") + @PreAuthorize("@ss.hasPermission('erp:stock-out:delete')") public CommonResult deleteStockOut(@RequestParam("ids") List ids) { stockOutService.deleteStockOut(ids); return success(true); @@ -105,7 +106,7 @@ public class ErpStockOutController { @GetMapping("/get") @Operation(summary = "获得其它出库单") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('erp:stock-out:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-out:query')") public CommonResult getStockOut(@RequestParam("id") Long id) { ErpStockOutDO stockOut = stockOutService.getStockOut(id); if (stockOut == null) { @@ -138,7 +139,7 @@ public class ErpStockOutController { @GetMapping("/page") @Operation(summary = "获得其它出库单分页") - //@PreAuthorize("@ss.hasPermission('erp:stock-out:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-out:query')") public CommonResult> getStockOutPage(@Valid ErpStockOutPageReqVO pageReqVO) { if(StringUtils.isEmpty(pageReqVO.getOutType())){ List list = new ArrayList<>(); @@ -153,7 +154,7 @@ public class ErpStockOutController { } @GetMapping("/export-excel") @Operation(summary = "导出其它出库单 Excel") - //@PreAuthorize("@ss.hasPermission('erp:stock-out:export')") + @PreAuthorize("@ss.hasPermission('erp:stock-out:export')") @ApiAccessLog(operateType = EXPORT) public void exportStockOutExcel(@Valid ErpStockOutPageReqVO pageReqVO, HttpServletResponse response) throws IOException { @@ -208,14 +209,14 @@ public class ErpStockOutController { @PostMapping("/createMesStockOut") @Operation(summary = "创建生产领料出库单") - //@PreAuthorize("@ss.hasPermission('erp:stock-out:create')") + @PreAuthorize("@ss.hasPermission('erp:stock-out:create')") public CommonResult createMesStockout(@Valid @RequestBody ErpStockOutSaveReqVO createReqVO) { createReqVO.setOutType(StockOutTypeEnum.领料出库.getValue()); return success(stockOutService.createStockOut(createReqVO)); } @GetMapping("/pageMesStockOut") @Operation(summary = "获得生产领料出库单分页") - //@PreAuthorize("@ss.hasPermission('erp:stock-out:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-out:query')") public CommonResult> getMesStockOutPage(@Valid ErpStockOutPageReqVO pageReqVO) { pageReqVO.setOutType(StockOutTypeEnum.领料出库.getValue()); PageResult pageResult = stockOutService.getStockOutPage(pageReqVO); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockRecordController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockRecordController.java index c6bf25f35..5209eb10d 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockRecordController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockRecordController.java @@ -21,6 +21,7 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -57,7 +58,7 @@ public class ErpStockRecordController { @GetMapping("/get") @Operation(summary = "获得产品库存明细") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('erp:stock-record:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-record:query')") public CommonResult getStockRecord(@RequestParam("id") Long id) { ErpStockRecordDO stockRecord = stockRecordService.getStockRecord(id); return success(BeanUtils.toBean(stockRecord, ErpStockRecordRespVO.class)); @@ -65,7 +66,7 @@ public class ErpStockRecordController { @GetMapping("/page") @Operation(summary = "获得产品库存明细分页") - //@PreAuthorize("@ss.hasPermission('erp:stock-record:query')") + @PreAuthorize("@ss.hasPermission('erp:stock-record:query')") public CommonResult> getStockRecordPage(@Valid ErpStockRecordPageReqVO pageReqVO) { PageResult pageResult = stockRecordService.getStockRecordPage(pageReqVO); return success(buildStockRecrodVOPageResult(pageResult)); @@ -73,7 +74,7 @@ public class ErpStockRecordController { @GetMapping("/export-excel") @Operation(summary = "导出产品库存明细 Excel") - //@PreAuthorize("@ss.hasPermission('erp:stock-record:export')") + @PreAuthorize("@ss.hasPermission('erp:stock-record:export')") @ApiAccessLog(operateType = EXPORT) public void exportStockRecordExcel(@Valid ErpStockRecordPageReqVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpWarehouseController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpWarehouseController.java index 19fb1b0c8..9de214b80 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpWarehouseController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpWarehouseController.java @@ -16,6 +16,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -40,14 +41,14 @@ public class ErpWarehouseController { @PostMapping("/create") @Operation(summary = "创建仓库") - //@PreAuthorize("@ss.hasPermission('erp:warehouse:create')") + @PreAuthorize("@ss.hasPermission('erp:warehouse:create')") public CommonResult createWarehouse(@Valid @RequestBody ErpWarehouseSaveReqVO createReqVO) { return success(warehouseService.createWarehouse(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新仓库") - //@PreAuthorize("@ss.hasPermission('erp:warehouse:update')") + @PreAuthorize("@ss.hasPermission('erp:warehouse:update')") public CommonResult updateWarehouse(@Valid @RequestBody ErpWarehouseSaveReqVO updateReqVO) { warehouseService.updateWarehouse(updateReqVO); return success(true); @@ -68,7 +69,7 @@ public class ErpWarehouseController { @DeleteMapping("/delete") @Operation(summary = "删除仓库") @Parameter(name = "id", description = "编号", required = true) - //@PreAuthorize("@ss.hasPermission('erp:warehouse:delete')") + @PreAuthorize("@ss.hasPermission('erp:warehouse:delete')") public CommonResult deleteWarehouse(@RequestParam("id") Long id) { warehouseService.deleteWarehouse(id); return success(true); @@ -77,7 +78,7 @@ public class ErpWarehouseController { @GetMapping("/get") @Operation(summary = "获得仓库") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('erp:warehouse:query')") + @PreAuthorize("@ss.hasPermission('erp:warehouse:query')") public CommonResult getWarehouse(@RequestParam("id") Long id) { ErpWarehouseDO warehouse = warehouseService.getWarehouse(id); return success(BeanUtils.toBean(warehouse, ErpWarehouseRespVO.class)); @@ -85,7 +86,7 @@ public class ErpWarehouseController { @GetMapping("/page") @Operation(summary = "获得仓库分页") - //@PreAuthorize("@ss.hasPermission('erp:warehouse:query')") + @PreAuthorize("@ss.hasPermission('erp:warehouse:query')") public CommonResult> getWarehousePage(@Valid ErpWarehousePageReqVO pageReqVO) { PageResult pageResult = warehouseService.getWarehousePage(pageReqVO); return success(BeanUtils.toBean(pageResult, ErpWarehouseRespVO.class)); @@ -101,7 +102,7 @@ public class ErpWarehouseController { @GetMapping("/export-excel") @Operation(summary = "导出仓库 Excel") - //@PreAuthorize("@ss.hasPermission('erp:warehouse:export')") + @PreAuthorize("@ss.hasPermission('erp:warehouse:export')") @ApiAccessLog(operateType = EXPORT) public void exportWarehouseExcel(@Valid ErpWarehousePageReqVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInSaveReqVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInSaveReqVO.java index a7bfeb0e1..4c2bc8c9a 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInSaveReqVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInSaveReqVO.java @@ -51,7 +51,7 @@ public class ErpStockInSaveReqVO { private Long id; @Schema(description = "仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3113") - @NotNull(message = "仓库编号不能为空") +// @NotNull(message = "仓库编号不能为空") private Long warehouseId; @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3113") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/out/ErpStockOutSaveReqVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/out/ErpStockOutSaveReqVO.java index 24f5995ef..ba2ce25fb 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/out/ErpStockOutSaveReqVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/out/ErpStockOutSaveReqVO.java @@ -46,7 +46,7 @@ public class ErpStockOutSaveReqVO { private Long id; @Schema(description = "仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3113") - @NotNull(message = "仓库编号不能为空") +// @NotNull(message = "仓库编号不能为空") private Long warehouseId; @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3113") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java index 7000f86a7..cb6aa8d76 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java @@ -133,22 +133,22 @@ public class ErpStockInServiceImpl implements ErpStockInService { // 3. 变更库存 List stockInItems = stockInItemMapper.selectListByInId(id); - Integer bizType = approve ? ErpStockRecordBizTypeEnum.OTHER_IN.getType() - : ErpStockRecordBizTypeEnum.OTHER_IN_CANCEL.getType(); - stockInItems.forEach(stockInItem -> { - BigDecimal count = approve ? stockInItem.getCount() : stockInItem.getCount().negate(); - if (Objects.equals(stockIn.getInType(), "模具入库")) { - MoldDO moldDO = moldService.getMold(stockInItem.getProductId()); - stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO( - stockInItem.getProductId(),moldDO.getBrandId(), stockInItem.getWarehouseId(), count, - bizType, stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(), stockIn.getInTime())); - } else { - ErpProductDO productDO = productService.getProduct(stockInItem.getProductId()); - stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO( - stockInItem.getProductId(),productDO.getCategoryId(), stockInItem.getWarehouseId(), count, - bizType, stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(), stockIn.getInTime())); - } - }); +// Integer bizType = approve ? ErpStockRecordBizTypeEnum.OTHER_IN.getType() +// : ErpStockRecordBizTypeEnum.OTHER_IN_CANCEL.getType(); +// stockInItems.forEach(stockInItem -> { +// BigDecimal count = approve ? stockInItem.getCount() : stockInItem.getCount().negate(); +// if (Objects.equals(stockIn.getInType(), "模具入库")) { +// MoldDO moldDO = moldService.getMold(stockInItem.getProductId()); +// stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO( +// stockInItem.getProductId(),moldDO.getBrandId(), stockInItem.getWarehouseId(), count, +// bizType, stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(), stockIn.getInTime())); +// } else { +// ErpProductDO productDO = productService.getProduct(stockInItem.getProductId()); +// stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO( +// stockInItem.getProductId(),productDO.getCategoryId(), stockInItem.getWarehouseId(), count, +// bizType, stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(), stockIn.getInTime())); +// } +// }); // 更改状态 if (Objects.equals(stockIn.getInType(), "模具入库")) { @@ -176,8 +176,8 @@ public class ErpStockInServiceImpl implements ErpStockInService { convertSet(list, ErpStockInSaveReqVO.Item::getProductId)); Map moldMap = convertMap(moldList, MoldDO::getId); // 1.2 校验仓库存在 - warehouseService.validWarehouseList(convertSet( - list, ErpStockInSaveReqVO.Item::getWarehouseId)); +// warehouseService.validWarehouseList(convertSet( +// list, ErpStockInSaveReqVO.Item::getWarehouseId)); // 2. 转化为 ErpStockInItemDO 列表 return convertList(list, o -> BeanUtils.toBean(o, ErpStockInItemDO.class, item -> item .setProductUnitId(moldMap.get(item.getProductId()).getUnitId()) diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java index d440563c9..2c779adda 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java @@ -139,24 +139,24 @@ public class ErpStockOutServiceImpl implements ErpStockOutService { // 3. 变更库存 List stockOutItems = stockOutItemMapper.selectListByOutId(id); - Integer bizType = approve ? ErpStockRecordBizTypeEnum.OTHER_OUT.getType() - : ErpStockRecordBizTypeEnum.OTHER_OUT_CANCEL.getType(); - stockOutItems.forEach(stockOutItem -> { - BigDecimal count = approve ? stockOutItem.getCount().negate() : stockOutItem.getCount(); - if (Objects.equals(stockOut.getOutType(), "模具出库")) { - MoldDO moldDO = moldService.getMold(stockOutItem.getProductId()); - stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO( - stockOutItem.getProductId(),moldDO.getBrandId(), stockOutItem.getWarehouseId(), count, - bizType, stockOutItem.getOutId(), stockOutItem.getId(), stockOut.getNo(),stockOut.getOutTime())); - - } else { - ErpProductDO productDO = productService.getProduct(stockOutItem.getProductId()); - stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO( - stockOutItem.getProductId(),productDO.getCategoryId(), stockOutItem.getWarehouseId(), count, - bizType, stockOutItem.getOutId(), stockOutItem.getId(), stockOut.getNo(),stockOut.getOutTime())); - - } - }); +// Integer bizType = approve ? ErpStockRecordBizTypeEnum.OTHER_OUT.getType() +// : ErpStockRecordBizTypeEnum.OTHER_OUT_CANCEL.getType(); +// stockOutItems.forEach(stockOutItem -> { +// BigDecimal count = approve ? stockOutItem.getCount().negate() : stockOutItem.getCount(); +// if (Objects.equals(stockOut.getOutType(), "模具出库")) { +// MoldDO moldDO = moldService.getMold(stockOutItem.getProductId()); +// stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO( +// stockOutItem.getProductId(),moldDO.getBrandId(), stockOutItem.getWarehouseId(), count, +// bizType, stockOutItem.getOutId(), stockOutItem.getId(), stockOut.getNo(),stockOut.getOutTime())); +// +// } else { +// ErpProductDO productDO = productService.getProduct(stockOutItem.getProductId()); +// stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO( +// stockOutItem.getProductId(),productDO.getCategoryId(), stockOutItem.getWarehouseId(), count, +// bizType, stockOutItem.getOutId(), stockOutItem.getId(), stockOut.getNo(),stockOut.getOutTime())); +// +// } +// }); // 更改状态 if (Objects.equals(stockOut.getOutType(), "模具出库")) { for (ErpStockOutItemDO item : stockOutItems) { @@ -181,7 +181,7 @@ public class ErpStockOutServiceImpl implements ErpStockOutService { convertSet(list, ErpStockOutSaveReqVO.Item::getProductId)); Map moldMap = convertMap(moldList, MoldDO::getId); // 1.2 校验仓库存在 - warehouseService.validWarehouseList(convertSet(list, ErpStockOutSaveReqVO.Item::getWarehouseId)); +// warehouseService.validWarehouseList(convertSet(list, ErpStockOutSaveReqVO.Item::getWarehouseId)); // 2. 转化为 ErpStockOutItemDO 列表 return convertList(list, o -> BeanUtils.toBean(o, ErpStockOutItemDO.class, item -> item .setProductUnitId(moldMap.get(item.getProductId()).getUnitId()) @@ -192,7 +192,7 @@ public class ErpStockOutServiceImpl implements ErpStockOutService { convertSet(list, ErpStockOutSaveReqVO.Item::getProductId)); Map productMap = convertMap(productList, ErpProductDO::getId); // 1.2 校验仓库存在 - warehouseService.validWarehouseList(convertSet(list, ErpStockOutSaveReqVO.Item::getWarehouseId)); +// warehouseService.validWarehouseList(convertSet(list, ErpStockOutSaveReqVO.Item::getWarehouseId)); // 2. 转化为 ErpStockOutItemDO 列表 return convertList(list, o -> BeanUtils.toBean(o, ErpStockOutItemDO.class, item -> item .setProductUnitId(productMap.get(item.getProductId()).getUnitId()) diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java index 6805f9961..fb339e746 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java @@ -179,7 +179,7 @@ public class DeviceController { @PostMapping("/copy") @Operation(summary = "复制设备") -// @PreAuthorize("@ss.hasPermission('iot:device-model:create')") + @PreAuthorize("@ss.hasPermission('iot:device-model:update')") public CommonResult copyDevice(@RequestParam("id") Long id) { return success(deviceService.copyDevice(id)); } @@ -187,7 +187,7 @@ public class DeviceController { @GetMapping("/lineDevicePage") @Operation(summary = "获得产线设备分页") - @PreAuthorize("@ss.hasPermission('iot:device:query')") +// @PreAuthorize("@ss.hasPermission('iot:device:lineDevicePage')") public CommonResult> lineDevicePage(@Valid LineDeviceRequestVO pageReqVO) { PageResult pageResult = deviceService.lineDevicePage(pageReqVO); return success(pageResult); @@ -195,7 +195,7 @@ public class DeviceController { @GetMapping("/export-line-device") @Operation(summary = "导出产线设备分页 Excel") - @PreAuthorize("@ss.hasPermission('iot:device:export')") +// @PreAuthorize("@ss.hasPermission('iot:device:lineDeviceExport')") @ApiAccessLog(operateType = EXPORT) public void exportLineDevice(@Valid LineDeviceRequestVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/deviceattributetype/DeviceAttributeTypeController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/deviceattributetype/DeviceAttributeTypeController.java index fcb89b025..ef1ebf44f 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/deviceattributetype/DeviceAttributeTypeController.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/deviceattributetype/DeviceAttributeTypeController.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.iot.controller.admin.deviceattributetype; -import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -14,6 +13,7 @@ import javax.validation.*; import javax.servlet.http.*; import java.util.*; import java.io.IOException; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import cn.iocoder.yudao.framework.common.pojo.PageParam; diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/deviceoperationrecord/DeviceOperationRecordController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/deviceoperationrecord/DeviceOperationRecordController.java index b171cd233..1ac76fb3c 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/deviceoperationrecord/DeviceOperationRecordController.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/deviceoperationrecord/DeviceOperationRecordController.java @@ -97,7 +97,7 @@ public class DeviceOperationRecordController { @GetMapping("/deviceOperationPage") @Operation(summary = "设备运行报表") - @PreAuthorize("@ss.hasPermission('mes:repair-tems:query')") + @PreAuthorize("@ss.hasPermission('iot:device-operation-record:query')") public CommonResult> deviceOperationPage(@Valid DeviceTotalTimeRecordReqVO pageReqVO) { PageResult pageResult = deviceOperationRecordService.deviceOperationPage(pageReqVO); return success(pageResult); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipeplandetail/RecipePlanDetailController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipeplandetail/RecipePlanDetailController.java index 750b03070..341f0344d 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipeplandetail/RecipePlanDetailController.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/recipeplandetail/RecipePlanDetailController.java @@ -82,6 +82,7 @@ public class RecipePlanDetailController { @GetMapping("/page") @Operation(summary = "分页查询配方计划详情(含关联信息)") + @PreAuthorize("@ss.hasPermission('iot:recipe-plan-detail:query')") public CommonResult> pageRecipePlanDetail(RecipePlanDetailPageReqVO reqVO) { PageResult pageResult = recipePlanDetailService.pageRecipePlanDetail(reqVO); return CommonResult.success(pageResult); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java index 6029ed05e..dd9c458fa 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java @@ -42,6 +42,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.core.JsonProcessingException; @@ -63,6 +64,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -1184,91 +1186,110 @@ public class DeviceServiceImpl implements DeviceService { @Override public List> getMultiDeviceAttributes(Long goviewId) { + List> result = new ArrayList<>(); try { - // 直接从数据库查询deviceIds JSON字符串 + String deviceIdsJson = deviceMapper.selectDeviceIdsByGoviewId(goviewId); if (StringUtils.isBlank(deviceIdsJson)) { - log.info("No deviceIds found for goviewId: {}", goviewId); return result; } - // 解析JSON格式的deviceIds - Map> deviceAttributeMap = parseDeviceIdsJson(deviceIdsJson); - if (deviceAttributeMap.isEmpty()) { - log.warn("No valid device-attribute mapping found for goviewId: {}", goviewId); + // 1. 解析(允许重复 device) + List>> deviceAttributeList = + parseDeviceIdsJson(deviceIdsJson); + + if (CollectionUtils.isEmpty(deviceAttributeList)) { return result; } - // 批量获取所有设备的最新运行记录,减少数据库查询次数 - Map latestRecordMap = getLatestDeviceOperationRecords(deviceAttributeMap.keySet()); + // 2. 收集所有 deviceId / attributeId(用于批量查询) + Set allDeviceIds = deviceAttributeList.stream() + .map(Map.Entry::getKey) + .collect(Collectors.toSet()); - log.info("Found {} devices with attribute mappings for goviewId {}: {}", - deviceAttributeMap.size(), goviewId, deviceAttributeMap); + Set allAttributeIds = deviceAttributeList.stream() + .flatMap(e -> e.getValue().stream()) + .collect(Collectors.toSet()); + + // 3. 批量查设备 + Map deviceMap = deviceMapper + .selectBatchIds(allDeviceIds) + .stream() + .collect(Collectors.toMap(DeviceDO::getId, Function.identity())); + + // 4. 批量查属性 + Map attributeMap = + deviceContactModelMapper.selectList( + Wrappers.lambdaQuery() + .in(DeviceContactModelDO::getId, allAttributeIds) + ).stream().collect(Collectors.toMap( + DeviceContactModelDO::getId, + Function.identity() + )); + + // 5. 批量查运行状态 + Map latestRecordMap = + getLatestDeviceOperationRecords(allDeviceIds); + + // 6. 批量查最新采集数据(需为批量方法) + Map>> deviceDataMap = + createDeviceDataMapBatch(allDeviceIds, attributeMap); + + // 7. 按原始结构组装(不合并重复设备) + for (Map.Entry> entry : deviceAttributeList) { - // 遍历每个设备ID,获取设备属性数据 - for (Map.Entry> entry : deviceAttributeMap.entrySet()) { Long deviceId = entry.getKey(); Set attributeIds = entry.getValue(); - try { - // 获取设备信息 - DeviceDO device = deviceMapper.selectById(deviceId); - if (device == null) { - log.warn("Device not found for ID: {}", deviceId); - continue; - } + DeviceDO device = deviceMap.get(deviceId); + if (device == null) { + continue; + } - // 创建设备层级的Map - Map deviceMap = new HashMap<>(); - deviceMap.put("deviceId", deviceId); - deviceMap.put("deviceName", device.getDeviceName()); - deviceMap.put("deviceCode", device.getDeviceCode()); + Map deviceResult = new HashMap<>(); + deviceResult.put("deviceId", deviceId); + deviceResult.put("deviceName", device.getDeviceName()); + deviceResult.put("deviceCode", device.getDeviceCode()); - // 添加设备运行状态 - String operatingStatus = getDeviceOperatingStatus(deviceId, latestRecordMap); - deviceMap.put("operatingStatus", operatingStatus); + String operatingStatus = + getDeviceOperatingStatus(deviceId, latestRecordMap); + deviceResult.put("operatingStatus", operatingStatus); - // 获取设备属性列表,只查询指定的属性ID - List attributes = deviceContactModelMapper.selectList( - Wrappers.lambdaQuery() - .eq(DeviceContactModelDO::getDeviceId, deviceId) - .in(DeviceContactModelDO::getId, attributeIds)); - - // 获取设备最新数据 - Map> deviceDataMap = createDeviceDataMap(deviceId); - - // 创建属性集合 - List> attributeList = new ArrayList<>(); - for (DeviceContactModelDO attribute : attributes) { - Map attributeData = new HashMap<>(); - attributeData.put("attributeId", attribute.getId()); - attributeData.put("attributeName", attribute.getAttributeName()); - attributeData.put("attributeCode", attribute.getAttributeCode()); - attributeData.put("dataType", attribute.getDataType()); - attributeData.put("dataUnit", attribute.getDataUnit()); - - // 获取最新数据 - Map latestData = deviceDataMap.get(attribute.getId()); - if (latestData != null) { - attributeData.put("addressValue", adjustByRatio(latestData.get("addressValue"), attribute.getRatio())); - attributeData.put("latestCollectionTime", latestData.get("timestamp")); - } + List> attributeList = new ArrayList<>(); + + Map> deviceAttrData = + deviceDataMap.getOrDefault(deviceId, Collections.emptyMap()); + + for (Long attributeId : attributeIds) { - attributeList.add(attributeData); + DeviceContactModelDO attribute = attributeMap.get(attributeId); + if (attribute == null) { + continue; } - // 将属性集合添加到设备层级 - deviceMap.put("attributes", attributeList); + Map attrResult = new HashMap<>(); + attrResult.put("attributeId", attribute.getId()); + attrResult.put("attributeName", attribute.getAttributeName()); + attrResult.put("attributeCode", attribute.getAttributeCode()); + attrResult.put("dataType", attribute.getDataType()); + attrResult.put("dataUnit", attribute.getDataUnit()); + + Map latestData = deviceAttrData.get(attributeId); + if (latestData != null) { + attrResult.put("addressValue", + adjustByRatio(latestData.get("addressValue"), attribute.getRatio())); + attrResult.put("latestCollectionTime", latestData.get("timestamp")); + } - // 添加到结果列表 - result.add(deviceMap); - } catch (Exception e) { - log.error("Error processing device ID: {} with attributes: {}", deviceId, attributeIds, e); - // 继续处理其他设备,不中断整体流程 + attributeList.add(attrResult); } + + deviceResult.put("attributes", attributeList); + result.add(deviceResult); } + } catch (Exception e) { log.error("Failed to get multi-device attributes by goviewId: {}", goviewId, e); } @@ -1276,6 +1297,11 @@ public class DeviceServiceImpl implements DeviceService { return result; } + private Map>> createDeviceDataMapBatch(Set allDeviceIds, Map deviceContactModelDOMap) { + return tdengineService.createDeviceDataMapBatch(allDeviceIds,deviceContactModelDOMap); + } + + /** * 获取设备运行状态 * @param deviceId 设备ID @@ -1327,74 +1353,60 @@ public class DeviceServiceImpl implements DeviceService { * @param deviceIdsJson JSON格式的设备和属性映射字符串 * @return 设备ID到属性ID集合的映射(已去重) */ - private Map> parseDeviceIdsJson(String deviceIdsJson) { - Map> deviceAttributeMap = new HashMap<>(); + private List>> parseDeviceIdsJson(String deviceIdsJson) { + + List>> result = new ArrayList<>(); if (StringUtils.isBlank(deviceIdsJson)) { - return deviceAttributeMap; + return result; } try { - // 使用Jackson解析JSON字符串 ObjectMapper objectMapper = new ObjectMapper(); - List> deviceAttributeList = objectMapper.readValue( - deviceIdsJson, new TypeReference>>() {}); - // 遍历解析结果,构建设备-属性映射并去重 + List> deviceAttributeList = + objectMapper.readValue(deviceIdsJson, + new TypeReference>>() {}); + for (Map item : deviceAttributeList) { - try { - // 提取设备ID - Object deviceIdObj = item.get("deviceId"); - if (deviceIdObj == null) { - log.warn("Device ID is null in item: {}", item); - continue; - } - Long deviceId = null; - if (deviceIdObj instanceof Number) { - deviceId = ((Number) deviceIdObj).longValue(); - } else { - deviceId = Long.parseLong(deviceIdObj.toString()); - } - // 提取属性ID数组 - List attributeIds = new ArrayList<>(); - Object attributesIdsObj = item.get("attributesIds"); - if (attributesIdsObj instanceof List) { - List attributesList = (List) attributesIdsObj; - for (Object attrIdObj : attributesList) { - if (attrIdObj instanceof Number) { - attributeIds.add(((Number) attrIdObj).longValue()); - } else if (attrIdObj != null) { - try { - attributeIds.add(Long.parseLong(attrIdObj.toString())); - } catch (NumberFormatException e) { - log.warn("Invalid attribute ID: {}", attrIdObj); - } - } - } - } + Object deviceIdObj = item.get("deviceId"); + if (deviceIdObj == null) { + continue; + } - // 合并属性ID到现有设备映射中(避免Lambda变量捕获问题) - Set existingAttributes = deviceAttributeMap.get(deviceId); - if (existingAttributes == null) { - // 如果设备不存在,创建新的属性集合 - Set newAttributesSet = new HashSet<>(attributeIds); - deviceAttributeMap.put(deviceId, newAttributesSet); - } else { - // 如果设备已存在,将新的属性ID添加到现有集合中 - for (Long attrId : attributeIds) { - existingAttributes.add(attrId); + Long deviceId; + if (deviceIdObj instanceof Number) { + deviceId = ((Number) deviceIdObj).longValue(); + } else { + deviceId = Long.parseLong(deviceIdObj.toString()); + } + + Set attributeIds = new HashSet<>(); + + Object attributesIdsObj = item.get("attributesIds"); + if (attributesIdsObj instanceof List) { + for (Object attrIdObj : (List) attributesIdsObj) { + if (attrIdObj instanceof Number) { + attributeIds.add(((Number) attrIdObj).longValue()); + } else if (attrIdObj != null) { + try { + attributeIds.add(Long.parseLong(attrIdObj.toString())); + } catch (Exception ignore) { + } } } - } catch (Exception e) { - log.warn("Error parsing device-attribute item: {}", item, e); } + + // 每条记录单独保存,不合并 + result.add(new AbstractMap.SimpleEntry<>(deviceId, attributeIds)); } + } catch (Exception e) { log.error("Error parsing deviceIds JSON: {}", deviceIdsJson, e); } - return deviceAttributeMap; + return result; } @Override diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/TDengineService.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/TDengineService.java index 6555cec39..893b34431 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/TDengineService.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/TDengineService.java @@ -1417,6 +1417,82 @@ public class TDengineService { } + @DS("tdengine") + public Map>> createDeviceDataMapBatch( + Set deviceIds, + Map attributeMap) { + + if (CollectionUtils.isEmpty(deviceIds)) { + return Collections.emptyMap(); + } + + Map>> result = new HashMap<>(); + + // 先把 attributeCode -> attributeId 做反向索引 + Map codeToAttrIdMap = attributeMap.values() + .stream() + .collect(Collectors.toMap( + item -> item.getAttributeCode().toLowerCase(), + DeviceContactModelDO::getId, + (a, b) -> a + )); + + for (Long deviceId : deviceIds) { + + String tableName = "besure_server.d_" + deviceId; + + String sql = "SELECT * FROM " + tableName + + " ORDER BY ts DESC LIMIT 1"; + + try { + + List> list = + jdbcTemplate.queryForList(sql); + + if (CollectionUtils.isEmpty(list)) { + continue; + } + + Map row = list.get(0); + + convertTs(row); // 你已有方法 + + Map> attributeDataMap = new HashMap<>(); + + Object ts = row.get("ts"); + + for (Map.Entry column : row.entrySet()) { + + String columnName = column.getKey(); + + if ("ts".equalsIgnoreCase(columnName)) { + continue; + } + + Long attributeId = codeToAttrIdMap.get(columnName); + if (attributeId == null) { + continue; + } + + Map valueMap = new HashMap<>(); + valueMap.put("addressValue", column.getValue()); + valueMap.put("timestamp", ts); + + attributeDataMap.put(attributeId, valueMap); + } + + result.put(deviceId, attributeDataMap); + + } catch (Exception e) { + log.error("查询设备最新数据失败 deviceId={}", deviceId, e); + } + } + + return result; + } + + + private void convertTs(Map row) { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energydevice/EnergyDeviceController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energydevice/EnergyDeviceController.java index bc16c8d9e..00e48dbe9 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energydevice/EnergyDeviceController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energydevice/EnergyDeviceController.java @@ -99,14 +99,14 @@ public class EnergyDeviceController { @GetMapping("/queryDataRecords") @Operation(summary = "查询数据记录") - @PreAuthorize("@ss.hasPermission('mes:energy-device:create')") + @PreAuthorize("@ss.hasPermission('mes:energy-device:queryRecords')") public CommonResult> queryDataRecords(@Valid EnergyDeviceConsumptionReqVO deviceConsumptionReqVO) { return success(energyDeviceService.queryDataRecords(deviceConsumptionReqVO)); } @GetMapping("/record-export-excel") @Operation(summary = "导出数据记录 Excel") - @PreAuthorize("@ss.hasPermission('mes:energy-device:export')") + @PreAuthorize("@ss.hasPermission('mes:energy-device:exportRecords')") @ApiAccessLog(operateType = EXPORT) public void recordExportExcel(@Valid EnergyDeviceConsumptionReqVO deviceConsumptionReqVO, HttpServletResponse response) throws IOException { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/MoldSubjectController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/MoldSubjectController.java index 84ed2cd04..589a2e210 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/MoldSubjectController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldsubject/MoldSubjectController.java @@ -189,6 +189,7 @@ public class MoldSubjectController { @GetMapping("/getAllList") @Operation(summary = "获得模具维保项目列表") + @PreAuthorize("@ss.hasPermission('mes:mold-subject:query')") public CommonResult> getMoldSubjectAllList() { List doList = moldSubjectService.getAllList(); return success(doList); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/OrganizationController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/OrganizationController.java index f9be752d2..2819627f9 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/OrganizationController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/OrganizationController.java @@ -34,14 +34,14 @@ public class OrganizationController { @PostMapping("/create") @Operation(summary = "创建产线工位") - //@PreAuthorize("@ss.hasPermission('mes:organization:create')") + @PreAuthorize("@ss.hasPermission('mes:organization:create')") public CommonResult createOrganization(@Valid @RequestBody OrganizationSaveReqVO createReqVO) { return success(organizationService.createOrganization(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新产线工位") - //@PreAuthorize("@ss.hasPermission('mes:organization:update')") + @PreAuthorize("@ss.hasPermission('mes:organization:update')") public CommonResult updateOrganization(@Valid @RequestBody OrganizationSaveReqVO updateReqVO) { organizationService.updateOrganization(updateReqVO); return success(true); @@ -50,7 +50,7 @@ public class OrganizationController { @DeleteMapping("/delete") @Operation(summary = "删除产线工位") @Parameter(name = "id", description = "编号", required = true) - //@PreAuthorize("@ss.hasPermission('mes:organization:delete')") + @PreAuthorize("@ss.hasPermission('mes:organization:delete')") public CommonResult deleteOrganization(@RequestParam("id") Long id) { organizationService.deleteOrganization(id); return success(true); @@ -59,7 +59,7 @@ public class OrganizationController { @GetMapping("/get") @Operation(summary = "获得产线工位") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('mes:organization:query')") + @PreAuthorize("@ss.hasPermission('mes:organization:query')") public CommonResult getOrganization(@RequestParam("id") Long id) { OrganizationDO organization = organizationService.getOrganization(id); return success(BeanUtils.toBean(organization, OrganizationRespVO.class)); @@ -67,21 +67,21 @@ public class OrganizationController { @GetMapping("/list") @Operation(summary = "获得产线工位列表") - //@PreAuthorize("@ss.hasPermission('mes:organization:query')") + @PreAuthorize("@ss.hasPermission('mes:organization:query')") public CommonResult> getOrganizationList(@Valid OrganizationListReqVO listReqVO) { List list = organizationService.getOrganizationList(listReqVO); return success(organizationService.buildVOList(list)); } @GetMapping("/listOrgWorker") @Operation(summary = "获得派工工位列表") - //@PreAuthorize("@ss.hasPermission('mes:organization:query')") + @PreAuthorize("@ss.hasPermission('mes:organization:query')") public CommonResult> getListOrgWorker(@Valid OrganizationListReqVO listReqVO) { List list = organizationService.getOrganizationList(listReqVO); return success(organizationService.buildWorkerVOList(list)); } @GetMapping("/export-excel") @Operation(summary = "导出产线工位 Excel") - //@PreAuthorize("@ss.hasPermission('mes:organization:export')") + @PreAuthorize("@ss.hasPermission('mes:organization:export')") @ApiAccessLog(operateType = EXPORT) public void exportOrganizationExcel(@Valid OrganizationListReqVO listReqVO, HttpServletResponse response) throws IOException { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/PlanController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/PlanController.java index 6415d560e..e797fb0de 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/PlanController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/PlanController.java @@ -72,7 +72,7 @@ public class PlanController { @PostMapping("/create") @Operation(summary = "创建生产计划") @Transactional(rollbackFor = Exception.class) - //@PreAuthorize("@ss.hasPermission('mes:plan:create')") + @PreAuthorize("@ss.hasPermission('mes:plan:create')") public CommonResult createPlan(@Valid @RequestBody PlanSaveReqVO createReqVO) { Long id = planService.createPlan(createReqVO); if (createReqVO.getIsPreProduction() != null && createReqVO.getIsPreProduction().compareTo(new BigDecimal(1)) == 0) { @@ -97,7 +97,7 @@ public class PlanController { @PutMapping("/update") @Operation(summary = "更新生产计划") - //@PreAuthorize("@ss.hasPermission('mes:plan:update')") + @PreAuthorize("@ss.hasPermission('mes:plan:update')") public CommonResult updatePlan(@Valid @RequestBody PlanSaveReqVO updateReqVO) { planService.updatePlan(updateReqVO); return success(true); @@ -106,7 +106,7 @@ public class PlanController { @DeleteMapping("/delete") @Operation(summary = "删除生产计划") @Parameter(name = "id", description = "编号", required = true) - //@PreAuthorize("@ss.hasPermission('mes:plan:delete')") + @PreAuthorize("@ss.hasPermission('mes:plan:delete')") public CommonResult deletePlan(@RequestParam("id") Long id) { planService.deletePlan(id); return success(true); @@ -115,7 +115,7 @@ public class PlanController { @GetMapping("/get") @Operation(summary = "获得生产计划") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('mes:plan:query')") + @PreAuthorize("@ss.hasPermission('mes:plan:query')") public CommonResult getPlan(@RequestParam("id") Long id) { PlanDO plan = planService.getPlan(id); return success(planService.getPlanRespVO(plan)); @@ -123,7 +123,7 @@ public class PlanController { @GetMapping("/page") @Operation(summary = "获得生产计划分页") - //@PreAuthorize("@ss.hasPermission('mes:plan:query')") + @PreAuthorize("@ss.hasPermission('mes:plan:query')") public CommonResult> getPlanPage(@Valid PlanPageReqVO pageReqVO) { PageResult pageResult = planService.getPlanPage(pageReqVO); return success(new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal())); @@ -142,7 +142,7 @@ public class PlanController { @GetMapping("/export-excel") @Operation(summary = "导出生产计划 Excel") - //@PreAuthorize("@ss.hasPermission('mes:plan:export')") + @PreAuthorize("@ss.hasPermission('mes:plan:export')") @ApiAccessLog(operateType = EXPORT) public void exportPlanExcel(@Valid PlanPageReqVO pageReqVO, HttpServletResponse response) throws IOException { @@ -167,7 +167,7 @@ public class PlanController { @PutMapping("/paigong") @Operation(summary = "下料派工") - //@PreAuthorize("@ss.hasPermission('mes:plan:update')") + @PreAuthorize("@ss.hasPermission('mes:plan:update')") public CommonResult updatePlan(@Valid @RequestBody ItemRequisitionSaveReqVO saveReqVO) { PlanDO planDO = planMapper.selectById(saveReqVO.getPlanId()); List list = analysisService.getItemAnalysis(planDO); @@ -177,7 +177,7 @@ public class PlanController { @PutMapping("/typePaigong") @Operation(summary = "工序派工") - //@PreAuthorize("@ss.hasPermission('mes:plan:update')") + @PreAuthorize("@ss.hasPermission('mes:plan:update')") public CommonResult updatePlanNum(@Valid @RequestBody ItemRequisitionSaveReqVO saveReqVO) { PlanDO planDO = planMapper.selectById(saveReqVO.getPlanId()); //List list = analysisService.getItemAnalysis(planDO); @@ -187,7 +187,7 @@ public class PlanController { @PutMapping("/updateStatus") @Operation(summary = "更新生产计划状态") - //@PreAuthorize("@ss.hasPermission('mes:plan:update')") + @PreAuthorize("@ss.hasPermission('mes:plan:update')") public CommonResult updatePlanStatus(@Valid @RequestBody PlanStatusUpdateVO statusUpdateVO) { PlanDO planDO = planMapper.selectById(statusUpdateVO.getId()); // 试产 @@ -217,7 +217,7 @@ public class PlanController { @PutMapping("/updatePlanZjStatus") @Operation(summary = "更新生产计划质检状态") - //@PreAuthorize("@ss.hasPermission('mes:plan:update')") + @PreAuthorize("@ss.hasPermission('mes:plan:update')") public CommonResult updatePlanZjStatus(@Valid @RequestBody PlanStatusUpdateVO statusUpdateVO) { PlanDO planDO = planMapper.selectById(statusUpdateVO.getId()); planDO.setIsZj(true); @@ -228,7 +228,7 @@ public class PlanController { @GetMapping("/getProductByStatus") @Operation(summary = "获得正在开工生产的产品") @Parameter(name = "id", description = "编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('mes:plan:query')") + @PreAuthorize("@ss.hasPermission('mes:plan:query')") public CommonResult> getPlan() { List status = new ArrayList<>(); status.add(PlanStatusEnum.量产.getValue());