diff --git a/sql/dm/2026-1-8物料属性表新增字段.sql b/sql/dm/2026-1-8物料属性表新增字段.sql new file mode 100644 index 00000000..50ec1ce1 --- /dev/null +++ b/sql/dm/2026-1-8物料属性表新增字段.sql @@ -0,0 +1,5 @@ +ALTER TABLE "BSE_MTRL_PRPS" ADD COLUMN "DEPT_ID" BIGINT; +COMMENT ON COLUMN "BSE_MTRL_PRPS"."DEPT_ID" IS '部门ID,如果为空则表示通用属性,不为空则是对应部门的私有属性'; + +ALTER TABLE "BSE_MTRL_HS_PRPS" ADD COLUMN "DEPT_ID" BIGINT; +COMMENT ON COLUMN "BSE_MTRL_HS_PRPS"."DEPT_ID" IS '部门ID,如果为空则表示通用属性,不为空则是对应部门的私有属性'; \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/DepartmentMaterialController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/DepartmentMaterialController.java index 2fde036a..f6822591 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/DepartmentMaterialController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/DepartmentMaterialController.java @@ -110,7 +110,7 @@ public class DepartmentMaterialController { @Parameter(name = "ids", description = "要克隆的数据ID", required = true) @Parameter(name = "deptId", description = "目标组织架构ID", required = true) @PreAuthorize("@ss.hasPermission('base:department-material:clone')") - @Transactional + @Transactional(rollbackFor = Exception.class) public CommonResult getDepartmentMaterial(@RequestBody DepartmentMaterialCloneReqVO req) { List list = departmentMaterialService.getDepartmentMaterialByIds(req.getIds()); for (DepartmentMaterialRespVO departmentMaterial : list) { diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesController.java index 94308579..96f6d76b 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesController.java @@ -87,6 +87,7 @@ public class MaterialHasPropertiesController { @Operation(summary = "获得物料持有属性分页") @PreAuthorize("@ss.hasPermission('base:material-has-properties:query')") public CommonResult> getMaterialHasPropertiesPage(@Valid MaterialHasPropertiesPageReqVO pageReqVO) { + pageReqVO.setDeptId(null); PageResult pageResult = materialHasPropertiesService.getMaterialHasPropertiesPage(pageReqVO); return success(BeanUtils.toBean(pageResult, MaterialHasPropertiesRespVO.class)); } @@ -95,7 +96,7 @@ public class MaterialHasPropertiesController { @Operation(summary = "批量保存物料持有属性(全量替换)") @PreAuthorize("@ss.hasPermission('base:material-has-properties:update')") public CommonResult batchSave(@Valid @RequestBody MaterialHasPropertiesBatchSaveReqVO reqVO) { - MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(reqVO); + MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(reqVO, null); return success(resp); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesDeptController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesDeptController.java new file mode 100644 index 00000000..27e8fb63 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesDeptController.java @@ -0,0 +1,61 @@ +package com.zt.plat.module.base.controller.admin.materialhasproperties; + +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.module.base.controller.admin.materialhasproperties.vo.MaterialHasPropertiesBatchSaveReqVO; +import com.zt.plat.module.base.controller.admin.materialhasproperties.vo.MaterialHasPropertiesBatchSaveRespVO; +import com.zt.plat.module.base.controller.admin.materialhasproperties.vo.MaterialHasPropertiesPageReqVO; +import com.zt.plat.module.base.controller.admin.materialhasproperties.vo.MaterialHasPropertiesRespVO; +import com.zt.plat.module.base.dal.dataobject.materialhasproperties.MaterialHasPropertiesDO; +import com.zt.plat.module.base.service.materialhasproperties.MaterialHasPropertiesService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 部门私有物料持有属性") +@RestController +@RequestMapping("/base/material-has-properties-dept") +@Validated +public class MaterialHasPropertiesDeptController { + + + @Resource + private MaterialHasPropertiesService materialHasPropertiesService; + + @GetMapping("/page") + @Operation(summary = "获得物料持有属性分页") + @PreAuthorize("@ss.hasPermission('base:material-has-properties-dept:query')") + public CommonResult> getMaterialHasPropertiesPage(@Valid MaterialHasPropertiesPageReqVO pageReqVO) { + Long deptId = pageReqVO.getDeptId(); + if (deptId == null) { + throw new ServiceException(401, "部门ID不能为空"); + } + PageResult pageResult = materialHasPropertiesService.getMaterialHasPropertiesPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialHasPropertiesRespVO.class)); + } + + @PostMapping("/batch-save") + @Operation(summary = "批量保存物料持有属性(全量替换)") + @PreAuthorize("@ss.hasPermission('base:material-has-properties-dept:update')") + public CommonResult batchSave(@Valid @RequestBody MaterialHasPropertiesBatchSaveReqVO reqVO) { + Long deptId = reqVO.getDeptId(); + if (deptId == null) { + throw new ServiceException(401, "部门ID不能为空"); + } + MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(reqVO, deptId); + return success(resp); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesBatchItemReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesBatchItemReqVO.java index 7f9cb6de..ef39a15f 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesBatchItemReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesBatchItemReqVO.java @@ -29,4 +29,5 @@ public class MaterialHasPropertiesBatchItemReqVO { @Schema(description = "排序号") private Long sort; + } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesBatchSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesBatchSaveReqVO.java index dac8badb..c1176a96 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesBatchSaveReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesBatchSaveReqVO.java @@ -19,4 +19,7 @@ public class MaterialHasPropertiesBatchSaveReqVO { @Schema(description = "属性列表", requiredMode = Schema.RequiredMode.REQUIRED) @Valid private List properties = new ArrayList<>(); + + @Schema(description = "部门ID,私有属性有值,通用属性无值") + private Long deptId; } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesPageReqVO.java index f1a33498..20adaca4 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesPageReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesPageReqVO.java @@ -38,4 +38,9 @@ public class MaterialHasPropertiesPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "部门ID,私有属性有值,通用属性无值") + private Long deptId; + + + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesController.java index e6edcaaa..80f7816b 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesController.java @@ -1,7 +1,5 @@ package com.zt.plat.module.base.controller.admin.materialproperties; -import com.zt.plat.framework.common.util.object.BeanUtils; -import com.zt.plat.module.base.dal.dataobject.materialproperties.MaterialPropertiesDO; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -45,6 +43,7 @@ public class MaterialPropertiesController { @Operation(summary = "创建物料属性") @PreAuthorize("@ss.hasPermission('base:material-properties:create')") public CommonResult createMaterialProperties(@Valid @RequestBody MaterialPropertiesSaveReqVO createReqVO) { + createReqVO.setDeptId(null); return success(materialPropertiesService.createMaterialProperties(createReqVO)); } @@ -52,6 +51,7 @@ public class MaterialPropertiesController { @Operation(summary = "更新物料属性") @PreAuthorize("@ss.hasPermission('base:material-properties:update')") public CommonResult updateMaterialProperties(@Valid @RequestBody MaterialPropertiesSaveReqVO updateReqVO) { + updateReqVO.setDeptId(null); materialPropertiesService.updateMaterialProperties(updateReqVO); return success(true); } @@ -80,6 +80,9 @@ public class MaterialPropertiesController { @PreAuthorize("@ss.hasPermission('base:material-properties:query')") public CommonResult getMaterialProperties(@RequestParam("id") Long id) { MaterialPropertiesRespVO materialProperties = materialPropertiesService.getMaterialProperties(id); + if (materialProperties.getDeptId() != null) { + return CommonResult.error(401, "没有权限"); + } return success(materialProperties); } @@ -87,6 +90,7 @@ public class MaterialPropertiesController { @Operation(summary = "获得物料属性分页") @PreAuthorize("@ss.hasPermission('base:material-properties:query')") public CommonResult> getMaterialPropertiesPage(@Valid MaterialPropertiesPageReqVO pageReqVO) { + pageReqVO.setDeptId(null); PageResult pageResult = materialPropertiesService.getMaterialPropertiesPage(pageReqVO); return success(pageResult); } @@ -95,6 +99,7 @@ public class MaterialPropertiesController { @Operation(summary = "获得物料属性精简分页") @PreAuthorize("@ss.hasPermission('base:material-properties:query')") public CommonResult> getMaterialPropertiesSimplePage(@Valid MaterialPropertiesSimplePageReqVO pageReqVO) { + pageReqVO.setDeptId(null); return success(materialPropertiesService.getMaterialPropertiesSimplePage(pageReqVO)); } @@ -105,7 +110,8 @@ public class MaterialPropertiesController { public void exportMaterialPropertiesExcel(@Valid MaterialPropertiesPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = materialPropertiesService.getMaterialPropertiesPage(pageReqVO).getList(); + pageReqVO.setDeptId(null); + List list = materialPropertiesService.getMaterialPropertiesPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "物料属性.xls", "数据", MaterialPropertiesRespVO.class, list); diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesDeptController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesDeptController.java new file mode 100644 index 00000000..fe37ca8e --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesDeptController.java @@ -0,0 +1,142 @@ +package com.zt.plat.module.base.controller.admin.materialproperties; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import com.zt.plat.framework.common.exception.ServiceException; +import com.zt.plat.framework.common.pojo.CommonResult; +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.excel.core.util.ExcelUtils; +import com.zt.plat.module.base.controller.admin.departmentmaterial.vo.DepartmentMaterialRespVO; +import com.zt.plat.module.base.controller.admin.materialproperties.vo.MaterialPropertiesPageReqVO; +import com.zt.plat.module.base.controller.admin.materialproperties.vo.MaterialPropertiesRespVO; +import com.zt.plat.module.base.controller.admin.materialproperties.vo.MaterialPropertiesSaveReqVO; +import com.zt.plat.module.base.controller.admin.materialproperties.vo.MaterialPropertiesSimplePageReqVO; +import com.zt.plat.module.base.controller.admin.materialproperties.vo.MaterialPropertiesSimpleRespVO; +import com.zt.plat.module.base.service.departmentmaterial.DepartmentMaterialService; +import com.zt.plat.module.base.service.materialproperties.MaterialPropertiesService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.io.IOException; +import java.util.List; + +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 部门私有物料属性") +@RestController +@RequestMapping("/base/material-properties-dept") +@Validated +public class MaterialPropertiesDeptController { + + + @Resource + private MaterialPropertiesService materialPropertiesService; + + @Resource + private DepartmentMaterialService departmentMaterialService; + + @PostMapping("/create") + @Operation(summary = "创建物料属性") + @PreAuthorize("@ss.hasPermission('base:material-properties-dept:create')") + public CommonResult createMaterialProperties(@Valid @RequestBody MaterialPropertiesSaveReqVO createReqVO) { + if (createReqVO.getDeptId() == null) { + throw new ServiceException(401, "部门ID不能为空"); + } + return success(materialPropertiesService.createMaterialProperties(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料属性") + @PreAuthorize("@ss.hasPermission('base:material-properties-dept:update')") + public CommonResult updateMaterialProperties(@Valid @RequestBody MaterialPropertiesSaveReqVO updateReqVO) { + if (updateReqVO.getDeptId() == null) { + throw new ServiceException(401, "部门ID不能为空"); + } + materialPropertiesService.updateMaterialProperties(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料属性") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:material-properties-dept:delete')") + public CommonResult deleteMaterialProperties(@RequestParam("id") Long id) { + materialPropertiesService.deleteMaterialProperties(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除物料属性") + @PreAuthorize("@ss.hasPermission('base:material-properties-dept:delete')") + public CommonResult deleteMaterialPropertiesList(@RequestBody BatchDeleteReqVO req) { + materialPropertiesService.deleteMaterialPropertiesListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料属性") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:material-properties-dept:query')") + public CommonResult getMaterialProperties(@RequestParam("id") Long id) { + MaterialPropertiesRespVO materialProperties = materialPropertiesService.getMaterialProperties(id); + if (materialProperties.getDeptId() == null) { + throw new ServiceException(401, "没有权限"); + } + return success(materialProperties); + } + + @GetMapping("/page") + @Operation(summary = "获得物料属性分页") + @PreAuthorize("@ss.hasPermission('base:material-properties-dept:query')") + public CommonResult> getMaterialPropertiesPage(@Valid MaterialPropertiesPageReqVO pageReqVO) { + if (pageReqVO.getDeptId() == null) { + throw new ServiceException(401, "部门ID不能为空"); + } + PageResult pageResult = materialPropertiesService.getMaterialPropertiesPage(pageReqVO); + return success(pageResult); + } + + @GetMapping("/simple-page") + @Operation(summary = "获得物料属性精简分页") + @PreAuthorize("@ss.hasPermission('base:material-properties-dept:query')") + public CommonResult> getMaterialPropertiesSimplePage(@Valid MaterialPropertiesSimplePageReqVO pageReqVO) { + if (pageReqVO.getDeptId() == null) { + throw new ServiceException(401, "部门ID不能为空"); + } + return success(materialPropertiesService.getMaterialPropertiesSimplePage(pageReqVO)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出物料属性 Excel") + @PreAuthorize("@ss.hasPermission('base:material-properties-dept:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialPropertiesExcel(@Valid MaterialPropertiesPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + if (pageReqVO.getDeptId() == null) { + throw new ServiceException(401, "部门ID不能为空"); + } + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialPropertiesService.getMaterialPropertiesPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "物料属性.xls", "数据", MaterialPropertiesRespVO.class, + list); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesPageReqVO.java index 2c56c31c..7b3610fe 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesPageReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesPageReqVO.java @@ -38,4 +38,7 @@ public class MaterialPropertiesPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "部门ID,私有属性有值,通用属性无值") + private Long deptId; + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesRespVO.java index 2e460871..5459e4a1 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesRespVO.java @@ -60,4 +60,7 @@ public class MaterialPropertiesRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "部门ID,私有属性有值,通用属性无值") + private Long deptId; + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSaveReqVO.java index 721a1b54..9a89559c 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSaveReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSaveReqVO.java @@ -35,4 +35,7 @@ public class MaterialPropertiesSaveReqVO { @NotEmpty(message = "备注不能为空") private String remark; + @Schema(description = "部门ID,私有属性有值,通用属性无值") + private Long deptId; + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSimplePageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSimplePageReqVO.java index bd8b36cf..c1a2a0c1 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSimplePageReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSimplePageReqVO.java @@ -13,4 +13,7 @@ public class MaterialPropertiesSimplePageReqVO extends PageParam { @Schema(description = "属性类型") private String dictionaryDataValue; + + @Schema(description = "部门ID,私有属性有值,通用属性无值") + private Long deptId; } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasproperties/MaterialHasPropertiesMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasproperties/MaterialHasPropertiesMapper.java index 0b91f690..10fa028f 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasproperties/MaterialHasPropertiesMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasproperties/MaterialHasPropertiesMapper.java @@ -18,7 +18,7 @@ import com.zt.plat.module.base.controller.admin.materialhasproperties.vo.*; public interface MaterialHasPropertiesMapper extends BaseMapperX { default PageResult selectPage(MaterialHasPropertiesPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() + LambdaQueryWrapperX query = new LambdaQueryWrapperX() .eqIfPresent(MaterialHasPropertiesDO::getInfomationId, reqVO.getInfomationId()) .eqIfPresent(MaterialHasPropertiesDO::getPropertiesId, reqVO.getPropertiesId()) .eqIfPresent(MaterialHasPropertiesDO::getUnitId, reqVO.getUnitId()) @@ -27,7 +27,13 @@ public interface MaterialHasPropertiesMapper extends BaseMapperX selectByInfoIdsAndPropertyIds(Collection infoIds, Collection propertyIds) { diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialproperties/MaterialPropertiesMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialproperties/MaterialPropertiesMapper.java index 2a8061a6..beb1d8e0 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialproperties/MaterialPropertiesMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialproperties/MaterialPropertiesMapper.java @@ -30,6 +30,11 @@ public interface MaterialPropertiesMapper extends BaseMapperX w.like(MaterialPropertiesDO::getCode, reqVO.getKeyword()) .or() @@ -40,13 +45,18 @@ public interface MaterialPropertiesMapper extends BaseMapperX selectSimplePage(MaterialPropertiesSimplePageReqVO reqVO) { - LambdaQueryWrapperX query = new LambdaQueryWrapperX() + LambdaQueryWrapperX query = new LambdaQueryWrapperX() .eqIfPresent(MaterialPropertiesDO::getDictionaryDataValue, reqVO.getDictionaryDataValue()); if (StrUtil.isNotBlank(reqVO.getKeyword())) { query.and(w -> w.like(MaterialPropertiesDO::getCode, reqVO.getKeyword()) .or() .like(MaterialPropertiesDO::getName, reqVO.getKeyword())); } + if (reqVO.getDeptId() == null) { + query.isNull(MaterialPropertiesDO::getDeptId); + } else { + query.eq(MaterialPropertiesDO::getDeptId, reqVO.getDeptId()); + } query.orderByAsc(MaterialPropertiesDO::getCode); return selectPage(reqVO, query); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasproperties/MaterialHasPropertiesDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasproperties/MaterialHasPropertiesDO.java index 8eccb9a1..2f9203de 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasproperties/MaterialHasPropertiesDO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasproperties/MaterialHasPropertiesDO.java @@ -67,4 +67,9 @@ public class MaterialHasPropertiesDO extends BaseDO { @TableField("SRT") private Long sort; + /** + * 部门ID,私有属性有值,通用属性无值 + */ + @TableField("DEPT_ID") + private Long deptId; } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialproperties/MaterialPropertiesDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialproperties/MaterialPropertiesDO.java index a075eeb1..d3591ef8 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialproperties/MaterialPropertiesDO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialproperties/MaterialPropertiesDO.java @@ -62,4 +62,10 @@ public class MaterialPropertiesDO extends BaseDO { @TableField("RMK") private String remark; + /** + * 部门ID,如果为空则表示通用属性,不为空则是对应部门的私有属性 + */ + @TableField("DEPT_ID") + private Long deptId; + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesService.java index aafbba27..fe5786ee 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesService.java @@ -64,6 +64,6 @@ public interface MaterialHasPropertiesService { * @param batchReqVO 请求参数 * @return 行级校验错误(为空表示成功) */ - MaterialHasPropertiesBatchSaveRespVO batchSave(MaterialHasPropertiesBatchSaveReqVO batchReqVO); + MaterialHasPropertiesBatchSaveRespVO batchSave(MaterialHasPropertiesBatchSaveReqVO batchReqVO, Long deptId); } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImpl.java index f858fee3..6681d747 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImpl.java @@ -106,7 +106,7 @@ public class MaterialHasPropertiesServiceImpl implements MaterialHasPropertiesSe @Override @Transactional(rollbackFor = Exception.class) - public MaterialHasPropertiesBatchSaveRespVO batchSave(MaterialHasPropertiesBatchSaveReqVO batchReqVO) { + public MaterialHasPropertiesBatchSaveRespVO batchSave(MaterialHasPropertiesBatchSaveReqVO batchReqVO, Long deptId) { MaterialHasPropertiesBatchSaveRespVO resp = new MaterialHasPropertiesBatchSaveRespVO(); Long infoId = batchReqVO.getInfomationId(); if (infoId == null) { @@ -163,6 +163,7 @@ public class MaterialHasPropertiesServiceImpl implements MaterialHasPropertiesSe .isKey(item.getIsKey()) .isMetering(item.getIsMetering()) .sort(item.getSort() == null ? (long) (i + 1) : item.getSort()) + .deptId(deptId) .build(); materialHasPropertiesMapper.insert(entity); } diff --git a/zt-module-base/zt-module-base-server/src/test/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImplTest.java b/zt-module-base/zt-module-base-server/src/test/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImplTest.java index e1fe4b74..f36cf6e6 100644 --- a/zt-module-base/zt-module-base-server/src/test/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImplTest.java +++ b/zt-module-base/zt-module-base-server/src/test/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImplTest.java @@ -70,7 +70,7 @@ class MaterialHasPropertiesServiceImplTest extends BaseDbUnitTest { req.setInfomationId(infoId); req.setProperties(CollUtil.newArrayList(item1, item2, itemDuplicate)); - MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(req); + MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(req, null); assertThat(resp.getRowErrors()).isEmpty(); @@ -94,7 +94,7 @@ class MaterialHasPropertiesServiceImplTest extends BaseDbUnitTest { @Test void batchSave_missingInfoId_shouldReturnErrorAndSkipInsert() { MaterialHasPropertiesBatchSaveReqVO req = new MaterialHasPropertiesBatchSaveReqVO(); - MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(req); + MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(req, null); assertThat(resp.getRowErrors()).hasSize(1); RowValidationErrorVO error = resp.getRowErrors().get(0); @@ -112,7 +112,7 @@ class MaterialHasPropertiesServiceImplTest extends BaseDbUnitTest { req.setInfomationId(infoId); req.setProperties(List.of()); - MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(req); + MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(req, null); assertThat(resp.getRowErrors()).isEmpty(); List current = materialHasPropertiesMapper.selectList(new QueryWrapper() @@ -132,7 +132,7 @@ class MaterialHasPropertiesServiceImplTest extends BaseDbUnitTest { req.setInfomationId(infoId); req.setProperties(List.of(item)); - MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(req); + MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(req, null); assertThat(resp.getRowErrors()).hasSize(1); RowValidationErrorVO error = resp.getRowErrors().get(0);