Commit f25c4d2e4e54b08bf72f771b3a07ded752850397
Merge branch 'master-jdk17' of https://github.com/YunaiV/ruoyi-vue-pro into master-jdk17
Showing
2 changed files
with
8 additions
and
0 deletions
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/in/ErpPurchaseInSaveReqVO.java
| 1 | package cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.in; | 1 | package cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.in; |
| 2 | 2 | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | +import jakarta.validation.Valid; | ||
| 5 | +import jakarta.validation.constraints.DecimalMin; | ||
| 4 | import jakarta.validation.constraints.NotNull; | 6 | import jakarta.validation.constraints.NotNull; |
| 5 | import lombok.Data; | 7 | import lombok.Data; |
| 6 | 8 | ||
| @@ -39,6 +41,7 @@ public class ErpPurchaseInSaveReqVO { | @@ -39,6 +41,7 @@ public class ErpPurchaseInSaveReqVO { | ||
| 39 | private String remark; | 41 | private String remark; |
| 40 | 42 | ||
| 41 | @Schema(description = "入库清单列表") | 43 | @Schema(description = "入库清单列表") |
| 44 | + @Valid | ||
| 42 | private List<Item> items; | 45 | private List<Item> items; |
| 43 | 46 | ||
| 44 | @Data | 47 | @Data |
| @@ -68,6 +71,7 @@ public class ErpPurchaseInSaveReqVO { | @@ -68,6 +71,7 @@ public class ErpPurchaseInSaveReqVO { | ||
| 68 | 71 | ||
| 69 | @Schema(description = "产品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00") | 72 | @Schema(description = "产品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00") |
| 70 | @NotNull(message = "产品数量不能为空") | 73 | @NotNull(message = "产品数量不能为空") |
| 74 | + @DecimalMin(value = "0", inclusive = false, message = "产品数量必须大于 0") | ||
| 71 | private BigDecimal count; | 75 | private BigDecimal count; |
| 72 | 76 | ||
| 73 | @Schema(description = "税率,百分比", example = "99.88") | 77 | @Schema(description = "税率,百分比", example = "99.88") |
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockMapper.java
| @@ -36,6 +36,10 @@ public interface ErpStockMapper extends BaseMapperX<ErpStockDO> { | @@ -36,6 +36,10 @@ public interface ErpStockMapper extends BaseMapperX<ErpStockDO> { | ||
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | default int updateCountIncrement(Long id, BigDecimal count, boolean negativeEnable) { | 38 | default int updateCountIncrement(Long id, BigDecimal count, boolean negativeEnable) { |
| 39 | + // 数量为 0 无库存增量(历史脏数据防护):直接跳过,避免生成空 SET 的 UPDATE 抛异常 500 | ||
| 40 | + if (count.compareTo(BigDecimal.ZERO) == 0) { | ||
| 41 | + return 0; | ||
| 42 | + } | ||
| 39 | LambdaUpdateWrapper<ErpStockDO> updateWrapper = new LambdaUpdateWrapper<ErpStockDO>() | 43 | LambdaUpdateWrapper<ErpStockDO> updateWrapper = new LambdaUpdateWrapper<ErpStockDO>() |
| 40 | .eq(ErpStockDO::getId, id); | 44 | .eq(ErpStockDO::getId, id); |
| 41 | if (count.compareTo(BigDecimal.ZERO) > 0) { | 45 | if (count.compareTo(BigDecimal.ZERO) > 0) { |