From d00aebb49d6efe11295dff3ab9780f9f9e2a633a Mon Sep 17 00:00:00 2001 From: hewencai <2357300448@qq.com> Date: Wed, 29 Oct 2025 13:18:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=AE=8C=E5=96=84=E8=AE=A1=E9=87=8F?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QuantityUnitRelationController.java | 15 ++++++++ .../vo/CreateUnitWithRelationReqVO.java | 27 +++++++++++++++ .../vo/DeleteUnitWithRelationReqVO.java | 19 +++++++++++ .../vo/UnitConversionPageReqVO.java | 3 ++ .../vo/UnitConversionSaveReqVO.java | 4 +++ .../UnitConversion/UnitConversionMapper.java | 1 + .../UnitConversion/UnitConversionDO.java | 5 +++ .../QuantityUnitRelationService.java | 19 +++++++++++ .../QuantityUnitRelationServiceImpl.java | 34 +++++++++++++++++++ 9 files changed, 127 insertions(+) create mode 100644 zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/CreateUnitWithRelationReqVO.java create mode 100644 zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/DeleteUnitWithRelationReqVO.java diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java index 6a48f14..f6eef72 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java @@ -113,4 +113,19 @@ public class QuantityUnitRelationController implements BusinessControllerMarker return success(true); } + @PostMapping("/create-unit-with-relation") + @Operation(summary = "创建单位并关联到量纲(组合接口)") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:create')") + public CommonResult createUnitWithRelation(@Valid @RequestBody CreateUnitWithRelationReqVO createReqVO) { + return success(quantityUnitRelationService.createUnitWithRelation(createReqVO)); + } + + @PostMapping("/delete-unit-with-relation") + @Operation(summary = "删除单位及关联关系(组合接口)") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:delete')") + public CommonResult deleteUnitWithRelation(@Valid @RequestBody DeleteUnitWithRelationReqVO deleteReqVO) { + quantityUnitRelationService.deleteUnitWithRelation(deleteReqVO); + return success(true); + } + } \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/CreateUnitWithRelationReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/CreateUnitWithRelationReqVO.java new file mode 100644 index 0000000..9dee92f --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/CreateUnitWithRelationReqVO.java @@ -0,0 +1,27 @@ +package com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 创建单位并关联到量纲 Request VO") +@Data +public class CreateUnitWithRelationReqVO { + + @Schema(description = "量纲ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "量纲ID不能为空") + private Long untQtyId; + + @Schema(description = "单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "米") + @NotEmpty(message = "单位名称不能为空") + private String name; + + @Schema(description = "单位符号", requiredMode = Schema.RequiredMode.REQUIRED, example = "m") + @NotEmpty(message = "单位符号不能为空") + private String smb; + + @Schema(description = "是否基准单位:0=否,1=是", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "是否基准单位不能为空") + private Integer isBse; + +} diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/DeleteUnitWithRelationReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/DeleteUnitWithRelationReqVO.java new file mode 100644 index 0000000..4d604e3 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/DeleteUnitWithRelationReqVO.java @@ -0,0 +1,19 @@ +package com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 删除单位及关联关系 Request VO") +@Data +public class DeleteUnitWithRelationReqVO { + + @Schema(description = "关联关系ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "关联关系ID不能为空") + private Long relationId; + + @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "单位ID不能为空") + private Long untId; + +} diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java index 77fb339..0763d9b 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java @@ -14,6 +14,9 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH @Data public class UnitConversionPageReqVO extends PageParam { + @Schema(description = "计量单位量ID(量纲ID)", example = "1") + private Long untQtyId; + @Schema(description = "源单位ID", example = "26239") private Long srcUntId; diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java index b8da368..19fcaaf 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java @@ -13,6 +13,10 @@ public class UnitConversionSaveReqVO { @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "339") private Long id; + @Schema(description = "计量单位量ID(量纲ID)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "量纲ID不能为空") + private Long untQtyId; + @Schema(description = "源单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26239") @NotNull(message = "源单位ID不能为空") private Long srcUntId; diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java index a667ad7..53a4bb7 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java @@ -19,6 +19,7 @@ public interface UnitConversionMapper extends BaseMapperX { default PageResult selectPage(UnitConversionPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(UnitConversionDO::getUntQtyId, reqVO.getUntQtyId()) .eqIfPresent(UnitConversionDO::getSrcUntId, reqVO.getSrcUntId()) .eqIfPresent(UnitConversionDO::getTgtUntId, reqVO.getTgtUntId()) .eqIfPresent(UnitConversionDO::getFctr, reqVO.getFctr()) diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java index 05431d2..82679d4 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java @@ -33,6 +33,11 @@ public class UnitConversionDO extends BaseDO { @TableId(type = IdType.ASSIGN_ID) private Long id; /** + * 计量单位量ID(量纲ID) + */ + @TableField("UNT_QTY_ID") + private Long untQtyId; + /** * 源单位ID */ @TableField("SRC_UNT_ID") diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java index cd2e715..61e42e9 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java @@ -67,4 +67,23 @@ public interface QuantityUnitRelationService { */ void batchSaveQuantityUnitRelations(@Valid QuantityUnitRelationBatchSaveReqVO batchSaveReqVO); + /** + * 创建单位并关联到量纲(组合接口) + * 1. 创建计量单位 + * 2. 创建量纲-单位关联关系 + * + * @param createReqVO 创建信息 + * @return 关联关系响应VO + */ + QuantityUnitRelationRespVO createUnitWithRelation(@Valid CreateUnitWithRelationReqVO createReqVO); + + /** + * 删除单位及关联关系(组合接口) + * 1. 删除量纲-单位关联关系 + * 2. 删除计量单位 + * + * @param deleteReqVO 删除信息 + */ + void deleteUnitWithRelation(@Valid DeleteUnitWithRelationReqVO deleteReqVO); + } \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java index 3848e1c..1a1be0d 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java @@ -14,6 +14,9 @@ import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.unitmanagement.dal.dao.QuantityUnitRelation.QuantityUnitRelationMapper; +import com.zt.plat.module.unitmanagement.service.UntInfo.UntInfoService; +import com.zt.plat.module.unitmanagement.controller.admin.UntInfo.vo.UntInfoSaveReqVO; +import com.zt.plat.module.unitmanagement.controller.admin.UntInfo.vo.UntInfoRespVO; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; @@ -32,6 +35,9 @@ public class QuantityUnitRelationServiceImpl implements QuantityUnitRelationServ @Resource private QuantityUnitRelationMapper quantityUnitRelationMapper; + @Resource + private UntInfoService untInfoService; + @Override public QuantityUnitRelationRespVO createQuantityUnitRelation(QuantityUnitRelationSaveReqVO createReqVO) { // 插入 @@ -138,4 +144,32 @@ public class QuantityUnitRelationServiceImpl implements QuantityUnitRelationServ } } + @Override + @Transactional(rollbackFor = Exception.class) + public QuantityUnitRelationRespVO createUnitWithRelation(CreateUnitWithRelationReqVO createReqVO) { + // 1. 创建计量单位 + UntInfoSaveReqVO untInfoReqVO = new UntInfoSaveReqVO(); + untInfoReqVO.setName(createReqVO.getName()); + untInfoReqVO.setSmb(createReqVO.getSmb()); + UntInfoRespVO untInfoResp = untInfoService.createUntInfo(untInfoReqVO); + + // 2. 创建量纲-单位关联关系 + QuantityUnitRelationSaveReqVO relationReqVO = new QuantityUnitRelationSaveReqVO(); + relationReqVO.setUntQtyId(createReqVO.getUntQtyId()); + relationReqVO.setUntId(untInfoResp.getId()); + relationReqVO.setIsBse(createReqVO.getIsBse()); + + return createQuantityUnitRelation(relationReqVO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteUnitWithRelation(DeleteUnitWithRelationReqVO deleteReqVO) { + // 1. 先删除关联关系(外键约束,必须先删除) + deleteQuantityUnitRelation(deleteReqVO.getRelationId()); + + // 2. 再删除计量单位 + untInfoService.deleteUntInfo(deleteReqVO.getUntId()); + } + } \ No newline at end of file