From c37ad18da73368b1e581afa419ad08dfcf898968 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Fri, 30 Jan 2026 13:55:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(crm):=20=E4=BC=98=E5=8C=96=E7=A4=BC?= =?UTF-8?q?=E5=93=81=E7=94=B3=E8=AF=B7=E5=92=8C=E7=A4=BC=E5=93=81=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改礼品申请编号校验规则,新增时由后端自动生成编号 - 更新礼品申请编码规则从1019到1020 - 添加申请部门名称自动补齐逻辑,避免前端未传值问题 - 实现发放部门名称获取失败时使用部门ID兜底机制 - 新增礼品信息单价范围查询功能(最低单价和最高单价) - 添加礼品信息仅显示有库存筛选条件 - 移除礼品信息VO中的多余空行以优化代码结构 --- .../dromara/oa/crm/domain/bo/CrmGiftApplyBo.java | 3 ++- .../dromara/oa/crm/domain/bo/CrmGiftInfoBo.java | 15 +++++++++++++++ .../dromara/oa/crm/domain/vo/CrmGiftInfoVo.java | 1 - .../crm/service/impl/CrmGiftApplyServiceImpl.java | 13 +++++++++++-- .../crm/service/impl/CrmGiftInfoServiceImpl.java | 3 +++ 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmGiftApplyBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmGiftApplyBo.java index 710ff622..c4429d49 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmGiftApplyBo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmGiftApplyBo.java @@ -36,7 +36,8 @@ public class CrmGiftApplyBo extends BaseEntity { /** * 礼品申请编号 */ - @NotBlank(message = "礼品申请编号不能为空", groups = { AddGroup.class, EditGroup.class }) + // 新增时由后端自动生成编号,仅编辑场景校验非空 + @NotBlank(message = "礼品申请编号不能为空", groups = { EditGroup.class }) private String applicationCode; /** diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmGiftInfoBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmGiftInfoBo.java index 4670fd75..189955c7 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmGiftInfoBo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/bo/CrmGiftInfoBo.java @@ -50,6 +50,16 @@ public class CrmGiftInfoBo extends BaseEntity { */ private BigDecimal unitPrice; + /** + * 最低单价 + */ + private BigDecimal unitPriceMin; + + /** + * 最高单价 + */ + private BigDecimal unitPriceMax; + /** * 单位ID */ @@ -60,6 +70,11 @@ public class CrmGiftInfoBo extends BaseEntity { */ private Integer inventoryQuantity; + /** + * 是否仅展示有库存 + */ + private Boolean hasStock; + /** * 备注 */ diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmGiftInfoVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmGiftInfoVo.java index 2a01606d..c63c9289 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmGiftInfoVo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmGiftInfoVo.java @@ -11,7 +11,6 @@ import java.io.Serializable; import java.math.BigDecimal; - /** * 礼品信息视图对象 crm_gift_info * diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmGiftApplyServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmGiftApplyServiceImpl.java index bf6b00d3..f099da5b 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmGiftApplyServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmGiftApplyServiceImpl.java @@ -59,7 +59,7 @@ public class CrmGiftApplyServiceImpl implements ICrmGiftApplyService { private final CrmGiftInfoMapper giftInfoMapper; /** 礼品申请编码规则 */ - private static final String GIFT_APPLY_CODE_RULE = "1019"; + private static final String GIFT_APPLY_CODE_RULE = "1020"; @DubboReference(timeout = 30000) private RemoteWorkflowService remoteWorkflowService; @@ -154,6 +154,14 @@ public class CrmGiftApplyServiceImpl implements ICrmGiftApplyService { if (StringUtils.isBlank(add.getApplicationCode())) { add.setApplicationCode(remoteCodeRuleService.selectCodeRuleCode(GIFT_APPLY_CODE_RULE)); } + // 补齐申请部门名称(有些前端浏览器可能未带出) + if (StringUtils.isBlank(add.getApplicantDeptName())) { + try { + add.setApplicantDeptName(LoginHelper.getLoginUser().getDeptName()); + } catch (Exception ignored) { + // 保底:前端未传且无法获取则保持空,避免提交失败 + } + } // 新增时设置默认状态为草稿 if (StringUtils.isBlank(add.getApplicationStatus())) { add.setApplicationStatus(OAStatusEnum.DRAFT.getStatus()); @@ -620,7 +628,8 @@ public class CrmGiftApplyServiceImpl implements ICrmGiftApplyService { try { record.setIssueDeptName(LoginHelper.getLoginUser().getDeptName()); } catch (Exception e) { - // 获取失败时忽略 + // 获取失败时使用部门ID字符串兜底 + record.setIssueDeptName(Convert.toStr(LoginHelper.getDeptId())); } record.setBeforeInventory(currentInventory); record.setAfterInventory(currentInventory - detail.getApplicationQuantity()); diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmGiftInfoServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmGiftInfoServiceImpl.java index ba33afd5..a6dcfffa 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmGiftInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmGiftInfoServiceImpl.java @@ -85,8 +85,11 @@ public class CrmGiftInfoServiceImpl implements ICrmGiftInfoService { .like(StringUtils.isNotBlank(bo.getGiftName()), CrmGiftInfo::getGiftName, bo.getGiftName()) .eq(StringUtils.isNotBlank(bo.getSpecification()), CrmGiftInfo::getSpecification, bo.getSpecification()) .eq(bo.getUnitPrice() != null, CrmGiftInfo::getUnitPrice, bo.getUnitPrice()) + .ge(bo.getUnitPriceMin() != null, CrmGiftInfo::getUnitPrice, bo.getUnitPriceMin()) + .le(bo.getUnitPriceMax() != null, CrmGiftInfo::getUnitPrice, bo.getUnitPriceMax()) .eq(bo.getUnitId() != null, CrmGiftInfo::getUnitId, bo.getUnitId()) .eq(bo.getInventoryQuantity() != null, CrmGiftInfo::getInventoryQuantity, bo.getInventoryQuantity()) + .gt(Boolean.TRUE.equals(bo.getHasStock()), CrmGiftInfo::getInventoryQuantity, 0) .orderByDesc(CrmGiftInfo::getCreateTime); return lqw; }