diff --git a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsPermissionConstant.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsPermissionConstant.java index 954ddb60..88ee8064 100644 --- a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsPermissionConstant.java +++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsPermissionConstant.java @@ -26,4 +26,6 @@ public interface QmsPermissionConstant { String DEVICE_MANAGER = "qms_device_manager"; //设备管理员 String ADMIN_ROLE = "ytjyAdmin"; // 超级管理员 标识 + // 物料试剂管理员角色标识 + String MATERIAL_ADMIN_ROLE = "ytjy_material_admin"; } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigWarehouseLocationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigWarehouseLocationMapper.java index a1a523b1..1156ff85 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigWarehouseLocationMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigWarehouseLocationMapper.java @@ -30,8 +30,13 @@ public interface ConfigWarehouseLocationMapper extends BaseMapperX wrapper = new MPJLambdaWrapperX<>(); Boolean adminFlag = reqVO.getAdminFlag(); + List authorizedWarehouseIds = reqVO.getAuthorizedWarehouseIds(); + // 非管理员并且没有权限的仓库 + if ((adminFlag == null || !adminFlag) && CollUtil.isEmpty(authorizedWarehouseIds)) + return new PageResult<>(); //仓库 wrapper.leftJoin(ConfigWarehouseLocationParDO.class, ConfigWarehouseLocationParDO::getId, ConfigWarehouseLocationDO::getParentId); + wrapper.selectAll(ConfigWarehouseLocationDO.class) .selectAs(ConfigWarehouseLocationParDO::getName, ConfigWarehouseLocationRespVO::getWarehouseName) .selectAs(ConfigWarehouseLocationParDO::getCode, ConfigWarehouseLocationRespVO::getWarehouseCode) @@ -48,11 +53,11 @@ public interface ConfigWarehouseLocationMapper extends BaseMapperX - wrapper1.in(ConfigWarehouseLocationDO::getId, reqVO.getAuthorizedWarehouseIds()) + wrapper1.in(ConfigWarehouseLocationDO::getId, authorizedWarehouseIds) .or() - .in(ConfigWarehouseLocationParDO::getId, reqVO.getAuthorizedWarehouseIds())) + .in(ConfigWarehouseLocationParDO::getId, authorizedWarehouseIds)) .orderByDesc(ConfigWarehouseLocationDO::getSortNo); return selectJoinPage(reqVO, ConfigWarehouseLocationRespVO.class, wrapper); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierController.java index ef5fffd0..da2163a9 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierController.java @@ -86,7 +86,7 @@ public class SupplierController extends AbstractFileUploadController implements @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除供应商") - @PreAuthorize("@ss.hasPermission('qms:supplier:delete')") +// @PreAuthorize("@ss.hasPermission('qms:supplier:delete')") public CommonResult deleteSupplierList(@RequestBody BatchDeleteReqVO req) { supplierService.deleteSupplierListByIds(req.getIds()); return success(true); @@ -112,7 +112,7 @@ public class SupplierController extends AbstractFileUploadController implements @GetMapping("/export-excel") @Operation(summary = "导出供应商 Excel") - @PreAuthorize("@ss.hasPermission('qms:supplier:export')") +// @PreAuthorize("@ss.hasPermission('qms:supplier:export')") @ApiAccessLog(operateType = EXPORT) public void exportSupplierExcel(@Valid SupplierPageReqVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierEvaluationAtController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierEvaluationAtController.java index 96d165ea..58d9ecd8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierEvaluationAtController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierEvaluationAtController.java @@ -57,14 +57,14 @@ public class SupplierEvaluationAtController extends AbstractFileUploadController @PostMapping("/create") @Operation(summary = "创建供应商评价关系") - @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:create')") +// @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:create')") public CommonResult createSupplierEvaluationAt(@Valid @RequestBody SupplierEvaluationAtSaveReqVO createReqVO) { return success(supplierEvaluationAtService.createSupplierEvaluationAt(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新供应商评价关系") - @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:update')") +// @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:update')") public CommonResult updateSupplierEvaluationAt(@Valid @RequestBody SupplierEvaluationAtSaveReqVO updateReqVO) { supplierEvaluationAtService.updateSupplierEvaluationAt(updateReqVO); return success(true); @@ -73,7 +73,7 @@ public class SupplierEvaluationAtController extends AbstractFileUploadController @DeleteMapping("/delete") @Operation(summary = "删除供应商评价关系") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:delete')") +// @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:delete')") public CommonResult deleteSupplierEvaluationAt(@RequestParam("id") Long id) { supplierEvaluationAtService.deleteSupplierEvaluationAt(id); return success(true); @@ -82,7 +82,7 @@ public class SupplierEvaluationAtController extends AbstractFileUploadController @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除供应商评价关系") - @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:delete')") +// @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:delete')") public CommonResult deleteSupplierEvaluationAtList(@RequestBody BatchDeleteReqVO req) { supplierEvaluationAtService.deleteSupplierEvaluationAtListByIds(req.getIds()); return success(true); @@ -91,7 +91,7 @@ public class SupplierEvaluationAtController extends AbstractFileUploadController @GetMapping("/get") @Operation(summary = "获得供应商评价关系") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:query')") +// @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:query')") public CommonResult getSupplierEvaluationAt(@RequestParam("id") Long id) { SupplierEvaluationAtDO supplierEvaluationAt = supplierEvaluationAtService.getSupplierEvaluationAt(id); return success(BeanUtils.toBean(supplierEvaluationAt, SupplierEvaluationAtRespVO.class)); @@ -99,7 +99,7 @@ public class SupplierEvaluationAtController extends AbstractFileUploadController @GetMapping("/page") @Operation(summary = "获得供应商评价关系分页") - @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:query')") +// @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:query')") public CommonResult> getSupplierEvaluationAtPage(@Valid SupplierEvaluationAtPageReqVO pageReqVO) { PageResult pageResult = supplierEvaluationAtService.getSupplierEvaluationAtPage(pageReqVO); return success(BeanUtils.toBean(pageResult, SupplierEvaluationAtRespVO.class)); @@ -107,7 +107,7 @@ public class SupplierEvaluationAtController extends AbstractFileUploadController @GetMapping("/export-excel") @Operation(summary = "导出供应商评价关系 Excel") - @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:export')") +// @PreAuthorize("@ss.hasPermission('qms:supplier-evaluation-at:export')") @ApiAccessLog(operateType = EXPORT) public void exportSupplierEvaluationAtExcel(@Valid SupplierEvaluationAtPageReqVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierPropertiesController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierPropertiesController.java index deaf1e67..447631bc 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierPropertiesController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/office/supplier/controller/admin/SupplierPropertiesController.java @@ -88,7 +88,7 @@ public class SupplierPropertiesController extends AbstractFileUploadController i @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除供应商属性") - @PreAuthorize("@ss.hasPermission('qms:supplier-properties:delete')") +// @PreAuthorize("@ss.hasPermission('qms:supplier-properties:delete')") public CommonResult deleteSupplierPropertiesList(@RequestBody BatchDeleteReqVO req) { supplierPropertiesService.deleteSupplierPropertiesListByIds(req.getIds()); return success(true); @@ -116,7 +116,7 @@ public class SupplierPropertiesController extends AbstractFileUploadController i @GetMapping("/export-excel") @Operation(summary = "导出供应商属性 Excel") - @PreAuthorize("@ss.hasPermission('qms:supplier-properties:export')") +// @PreAuthorize("@ss.hasPermission('qms:supplier-properties:export')") @ApiAccessLog(operateType = EXPORT) public void exportSupplierPropertiesExcel(@Valid SupplierPropertiesPageReqVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialCorrelationAssayController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialCorrelationAssayController.java index 5744ef25..13935cc8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialCorrelationAssayController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialCorrelationAssayController.java @@ -7,6 +7,7 @@ import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; import com.zt.plat.framework.excel.core.util.ExcelUtils; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssayPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssayRespVO; @@ -33,6 +34,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @RestController @RequestMapping("/qms/resource/material-correlation-assay") @Validated +@DeptDataPermissionIgnore(enable = "true") public class MaterialCorrelationAssayController implements BusinessControllerMarker { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInfomationController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInfomationController.java index a03b330d..35728f6a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInfomationController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInfomationController.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONObject; +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationRespVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationSaveReqVO; @@ -46,6 +47,7 @@ import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; @RestController @RequestMapping("/qms/resource/material-infomation") @Validated +@DeptDataPermissionIgnore(enable = "true") public class MaterialInfomationController implements BusinessControllerMarker { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckDetailController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckDetailController.java index 4c282888..3f1193af 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckDetailController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckDetailController.java @@ -7,6 +7,7 @@ import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; import com.zt.plat.framework.excel.core.util.ExcelUtils; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryCheckDetailPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryCheckDetailRespVO; @@ -33,6 +34,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @RestController @RequestMapping("/qms/resource/material-inventory-check-detail") @Validated +@DeptDataPermissionIgnore(enable = "true") public class MaterialInventoryCheckDetailController implements BusinessControllerMarker { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckItemController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckItemController.java index ec397176..8d56d584 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckItemController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialInventoryCheckItemController.java @@ -7,6 +7,7 @@ import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; import com.zt.plat.framework.excel.core.util.ExcelUtils; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryCheckItemPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryCheckItemRespVO; @@ -33,6 +34,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @RestController @RequestMapping("/qms/material-inventory-check-item") @Validated +@DeptDataPermissionIgnore(enable = "true") public class MaterialInventoryCheckItemController implements BusinessControllerMarker { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java index 16696cc6..8d268110 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java @@ -9,6 +9,7 @@ import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; import com.zt.plat.module.qms.core.aspect.annotation.QmsPermission; +import com.zt.plat.module.qms.enums.QmsPermissionConstant; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceConfigBusinessRuleDO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceProductDO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationPageReqVO; @@ -59,7 +60,8 @@ public interface MaterialInfomationMapper extends BaseMapperX selectPageWithPdtInfo(MaterialInfomationPageReqVO reqVO) { MPJLambdaWrapper wrapper = new MPJLambdaWrapperX() .select(MaterialInfomationDO::getId, @@ -97,9 +99,9 @@ public interface MaterialInfomationMapper extends BaseMapperX selectInventoryLedgerPage(MaterialInfomationPageReqVO reqVO) { MPJLambdaWrapper wrapper = new MPJLambdaWrapperX() .select(MaterialInfomationDO::getProductId) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundDetailMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundDetailMapper.java index 52004bce..67711f33 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundDetailMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundDetailMapper.java @@ -5,6 +5,8 @@ import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; +import com.zt.plat.module.qms.core.aspect.annotation.QmsPermission; +import com.zt.plat.module.qms.enums.QmsPermissionConstant; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundDetailPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundDetailRespVO; import com.zt.plat.module.qms.resource.material.dal.dataobject.*; @@ -37,6 +39,8 @@ public interface MaterialInventoryInboundDetailMapper extends BaseMapperX selectPageWithMaterialInfo(MaterialInventoryInboundDetailPageReqVO reqVO){ MPJLambdaWrapperX wrapperX = new MPJLambdaWrapperX() .selectAll(MaterialInventoryInboundDetailDO.class) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundMapper.java index f7cd9672..9d388364 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryInboundMapper.java @@ -3,6 +3,8 @@ package com.zt.plat.module.qms.resource.material.dal.mapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.qms.core.aspect.annotation.QmsPermission; +import com.zt.plat.module.qms.enums.QmsPermissionConstant; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundPageReqVO; import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInventoryInboundDO; import org.apache.ibatis.annotations.Mapper; @@ -15,6 +17,7 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface MaterialInventoryInboundMapper extends BaseMapperX { + @QmsPermission(moduleDataRoleCodes = QmsPermissionConstant.ADMIN_ROLE + "," + QmsPermissionConstant.MATERIAL_ADMIN_ROLE) default PageResult selectPage(MaterialInventoryInboundPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(MaterialInventoryInboundDO::getTitle, reqVO.getTitle()) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryOutboundDetailMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryOutboundDetailMapper.java index 4a0821e1..4496e4e8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryOutboundDetailMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryOutboundDetailMapper.java @@ -5,6 +5,8 @@ import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; +import com.zt.plat.module.qms.core.aspect.annotation.QmsPermission; +import com.zt.plat.module.qms.enums.QmsPermissionConstant; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundDetailRespVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryOutboundDetailPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryOutboundDetailRespVO; @@ -30,6 +32,7 @@ public interface MaterialInventoryOutboundDetailMapper extends BaseMapperX selectPageWithMaterialInfo(MaterialInventoryOutboundDetailPageReqVO reqVO){ MPJLambdaWrapperX wrapperX = new MPJLambdaWrapperX() .selectAll(MaterialInventoryOutboundDetailDO.class) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryOutboundMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryOutboundMapper.java index 928bac35..47ab18ec 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryOutboundMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInventoryOutboundMapper.java @@ -7,6 +7,8 @@ import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; +import com.zt.plat.module.qms.core.aspect.annotation.QmsPermission; +import com.zt.plat.module.qms.enums.QmsPermissionConstant; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryOutboundPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryOutboundRespVO; import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO; @@ -28,7 +30,7 @@ import java.util.Map; */ @Mapper public interface MaterialInventoryOutboundMapper extends BaseMapperX { - + @QmsPermission(moduleDataRoleCodes = QmsPermissionConstant.ADMIN_ROLE + "," + QmsPermissionConstant.MATERIAL_ADMIN_ROLE) default PageResult selectPage(MaterialInventoryOutboundPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(MaterialInventoryOutboundDO::getTitle, reqVO.getTitle()) @@ -50,6 +52,8 @@ public interface MaterialInventoryOutboundMapper extends BaseMapperX selectListUsageStatisticsMainDataByDept(MaterialInventoryOutboundPageReqVO reqVO) { MPJLambdaWrapper wrapper = new MPJLambdaWrapperX() .select(MaterialInfomationDO::getProductId) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialLifecycleMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialLifecycleMapper.java index ad422fea..494f4a52 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialLifecycleMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialLifecycleMapper.java @@ -4,6 +4,8 @@ import cn.hutool.core.util.StrUtil; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.qms.core.aspect.annotation.QmsPermission; +import com.zt.plat.module.qms.enums.QmsPermissionConstant; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLifecyclePageReqVO; import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLifecycleDO; import org.apache.ibatis.annotations.Mapper; @@ -19,6 +21,7 @@ import java.util.List; @Mapper public interface MaterialLifecycleMapper extends BaseMapperX { + @QmsPermission(moduleDataRoleCodes = QmsPermissionConstant.ADMIN_ROLE + "," + QmsPermissionConstant.MATERIAL_ADMIN_ROLE) default PageResult selectPage(MaterialLifecyclePageReqVO reqVO) { String businessType = reqVO.getBusinessType(); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialProductMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialProductMapper.java index f76bd0aa..9791e791 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialProductMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialProductMapper.java @@ -7,6 +7,7 @@ import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; +import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; import com.zt.plat.module.qms.core.constant.DataTypeConstant; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialProductPageReqVO; @@ -17,6 +18,7 @@ import org.apache.ibatis.annotations.Param; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -87,13 +89,15 @@ public interface MaterialProductMapper extends BaseMapperX { return this.exists(wrapperX); } - default Map getStockQuantityByPdtIds(List mtrlIds) { + default Map getStockQuantityByPdtIds(List mtrlIds, Boolean dataPermissionByBlgDept) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper() .select(MaterialProductDO::getId) .selectCount(MaterialInfomationDO::getId, "quantity") .leftJoin(MaterialInfomationDO.class, MaterialInfomationDO::getProductId, MaterialProductDO::getId) .in(MaterialProductDO::getId, mtrlIds) .ne(MaterialInfomationDO::getUsageStatus, 1) + .in(dataPermissionByBlgDept && SecurityFrameworkUtils.getLoginUser() != null, + MaterialInfomationDO::getBelongDepartmentId, Objects.requireNonNull(SecurityFrameworkUtils.getLoginUser()).getVisitDeptId()) .groupBy(MaterialProductDO::getId); List> maps = selectJoinMaps(wrapper); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialProductServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialProductServiceImpl.java index 124d2533..ad4613e2 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialProductServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialProductServiceImpl.java @@ -6,16 +6,19 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.zt.plat.framework.common.biz.system.permission.PermissionCommonApi; import com.zt.plat.framework.common.exception.ServiceException; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.module.infra.api.businessfile.dto.BusinessFileWithUrlRespDTO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; import com.zt.plat.module.qms.business.config.service.ConfigWarehouseLocationService; import com.zt.plat.module.qms.common.service.BusinessFileService; import com.zt.plat.module.qms.core.constant.DataTypeConstant; +import com.zt.plat.module.qms.enums.QmsPermissionConstant; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialProductPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialProductRespVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialProductSaveReqVO; @@ -56,6 +59,8 @@ public class MaterialProductServiceImpl implements MaterialProductService { @Autowired private ConfigWarehouseLocationService configWarehouseLocationService; + @Autowired + private PermissionCommonApi permissionCommonApi; /** * 保存分类 @@ -428,7 +433,7 @@ public class MaterialProductServiceImpl implements MaterialProductService { if (CollUtil.isEmpty(pdtDOs)) return; List alarmPdts = pdtDOs.stream().filter(m -> m.getInventoryAlarmFlag() == 1).toList(); if (CollUtil.isEmpty(alarmPdts)) return; - Map stockQuantityMap = materialProductMapper.getStockQuantityByPdtIds(pdtIds); + Map stockQuantityMap = materialProductMapper.getStockQuantityByPdtIds(pdtIds, false); List updateAlarmLevelPdts = alarmPdts.stream().map(m -> { String customConfig = m.getCustomConfig(); String alarmLevel = null; @@ -466,13 +471,20 @@ public class MaterialProductServiceImpl implements MaterialProductService { @Override public Map getStockQuantityByPdtIds(List mtrlIds) { - return materialProductMapper.getStockQuantityByPdtIds(mtrlIds); + return materialProductMapper.getStockQuantityByPdtIds(mtrlIds, false); } @Override public Map getStockQuantityByPdtIds(List mtrlIds, List warehouseIds) { - if (CollUtil.isEmpty(warehouseIds)) return materialProductMapper.getStockQuantityByPdtIds(mtrlIds); + // 可能需要进行部门过滤 + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + CommonResult hasAdminRoleRes = permissionCommonApi.hasAnyRoles(loginUserId, QmsPermissionConstant.ADMIN_ROLE); + CommonResult hasMaterialAdminRoleRes = permissionCommonApi.hasAnyRoles(loginUserId, QmsPermissionConstant.MATERIAL_ADMIN_ROLE); + // 如果不是管理员,需要按部门过滤 + Boolean dataPermissionByBlgDept = !hasAdminRoleRes.getData() && !hasMaterialAdminRoleRes.getData(); + if (CollUtil.isEmpty(warehouseIds)) return materialProductMapper.getStockQuantityByPdtIds(mtrlIds, dataPermissionByBlgDept); return materialProductMapper.getStockQuantityByPdtIds(mtrlIds, warehouseIds); + } @Override