diff --git a/base-server/src/main/resources/logback-spring.xml b/base-server/src/main/resources/logback-spring.xml
index 19d38bf5..2156fc14 100644
--- a/base-server/src/main/resources/logback-spring.xml
+++ b/base-server/src/main/resources/logback-spring.xml
@@ -108,4 +108,8 @@
+
+
+
+
diff --git a/sql/dm/2026-1-14物料相关表增加索引.sql b/sql/dm/2026-1-14物料相关表增加索引.sql
new file mode 100644
index 00000000..2ab2ea62
--- /dev/null
+++ b/sql/dm/2026-1-14物料相关表增加索引.sql
@@ -0,0 +1,29 @@
+CREATE INDEX idx_hs_cls_tenant_deleted_cls
+ ON bse_mtrl_hs_cls(tenant_id, deleted, CLS_ID, INF_ID);
+
+CREATE INDEX idx_hs_cls_composite
+ ON bse_mtrl_hs_cls(tenant_id, deleted, CLS_ID);
+
+CREATE INDEX idx_mtrl_inf_tenant_deleted_id
+ ON bse_mtrl_inf(tenant_id, deleted, id);
+
+CREATE INDEX idx_mtrl_inf_tenant_deleted_cd
+ ON bse_mtrl_inf(tenant_id, deleted, CD, id);
+
+CREATE INDEX idx_mtrl_inf_cover
+ ON bse_mtrl_inf(tenant_id, deleted, CD, id, NAME, RMK, create_time, update_time, creator, updater);
+
+CREATE INDEX idx_hs_prps_tenant_deleted_inf
+ ON bse_mtrl_hs_prps(tenant_id, deleted, INF_ID, PRPS_ID);
+
+CREATE INDEX idx_hs_prps_tenant_inf_deleted
+ ON bse_mtrl_hs_prps(tenant_id, INF_ID, deleted);
+
+CREATE INDEX idx_hs_prps_cover
+ ON bse_mtrl_hs_prps(tenant_id, deleted, INF_ID, PRPS_ID, UNT_ID, IS_KY, IS_MTNG, SRT, DEPT_ID);
+
+CREATE INDEX idx_mtrl_prps_tenant_deleted_id
+ ON bse_mtrl_prps(tenant_id, deleted, id);
+
+CREATE INDEX idx_mtrl_prps_cover
+ ON bse_mtrl_prps(tenant_id, deleted, id, CD, NAME, UNT_QTY_ID, DIC_DAT_VAL, DAT_TP, RMK, DEPT_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/materialhasproperties/MaterialHasPropertiesDeptController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesDeptController.java
index 27e8fb63..08bb476a 100644
--- 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
@@ -52,7 +52,7 @@ public class MaterialHasPropertiesDeptController {
public CommonResult batchSave(@Valid @RequestBody MaterialHasPropertiesBatchSaveReqVO reqVO) {
Long deptId = reqVO.getDeptId();
if (deptId == null) {
- throw new ServiceException(401, "部门ID不能为空");
+ throw new ServiceException(500, "部门ID不能为空");
}
MaterialHasPropertiesBatchSaveRespVO resp = materialHasPropertiesService.batchSave(reqVO, deptId);
return success(resp);
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
index fe37ca8e..e1237a90 100644
--- 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
@@ -97,7 +97,7 @@ public class MaterialPropertiesDeptController {
public CommonResult getMaterialProperties(@RequestParam("id") Long id) {
MaterialPropertiesRespVO materialProperties = materialPropertiesService.getMaterialProperties(id);
if (materialProperties.getDeptId() == null) {
- throw new ServiceException(401, "没有权限");
+ throw new ServiceException(500, "没有权限");
}
return success(materialProperties);
}
@@ -107,7 +107,7 @@ public class MaterialPropertiesDeptController {
@PreAuthorize("@ss.hasPermission('base:material-properties-dept:query')")
public CommonResult> getMaterialPropertiesPage(@Valid MaterialPropertiesPageReqVO pageReqVO) {
if (pageReqVO.getDeptId() == null) {
- throw new ServiceException(401, "部门ID不能为空");
+ throw new ServiceException(500, "部门ID不能为空");
}
PageResult pageResult = materialPropertiesService.getMaterialPropertiesPage(pageReqVO);
return success(pageResult);
@@ -118,7 +118,7 @@ public class MaterialPropertiesDeptController {
@PreAuthorize("@ss.hasPermission('base:material-properties-dept:query')")
public CommonResult> getMaterialPropertiesSimplePage(@Valid MaterialPropertiesSimplePageReqVO pageReqVO) {
if (pageReqVO.getDeptId() == null) {
- throw new ServiceException(401, "部门ID不能为空");
+ throw new ServiceException(500, "部门ID不能为空");
}
return success(materialPropertiesService.getMaterialPropertiesSimplePage(pageReqVO));
}
@@ -130,7 +130,7 @@ public class MaterialPropertiesDeptController {
public void exportMaterialPropertiesExcel(@Valid MaterialPropertiesPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
if (pageReqVO.getDeptId() == null) {
- throw new ServiceException(401, "部门ID不能为空");
+ throw new ServiceException(500, "部门ID不能为空");
}
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List list = materialPropertiesService.getMaterialPropertiesPage(pageReqVO).getList();
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 6681d747..d9903e76 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
@@ -114,8 +114,14 @@ public class MaterialHasPropertiesServiceImpl implements MaterialHasPropertiesSe
return resp;
}
// 全量替换:先删除该物料的已有属性
- materialHasPropertiesMapper.delete(new LambdaQueryWrapperX()
- .eq(MaterialHasPropertiesDO::getInfomationId, infoId));
+ LambdaQueryWrapperX delQuery = new LambdaQueryWrapperX<>();
+ delQuery.eq(MaterialHasPropertiesDO::getInfomationId, infoId);
+ if (deptId == null) {
+ delQuery.isNull(MaterialHasPropertiesDO::getDeptId);
+ } else {
+ delQuery.eq(MaterialHasPropertiesDO::getDeptId, deptId);
+ }
+ materialHasPropertiesMapper.delete(delQuery);
List properties = batchReqVO.getProperties();
if (CollUtil.isEmpty(properties)) {