From afbd0935e70d862ea40370d03715e3ddd5042ec4 Mon Sep 17 00:00:00 2001 From: dzq Date: Mon, 21 Apr 2025 11:40:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=95=86=E5=93=81):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=85=8D=E5=AE=A1=E6=89=B9=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=BB=A5=E6=94=AF=E6=8C=81=E8=87=AA=E5=8A=A8=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在商品相关实体、DTO、查询条件及SQL表中添加`auto_approval`字段,用于标识商品是否免审批。在审批流程中,若商品标记为免审批,则自动完成审批流程,减少人工干预。 --- .../ReturnApprovalApplicationService.java | 15 ++++++++++- .../domain/shop/goods/db/ShopGoodsEntity.java | 4 +++ .../domain/shop/goods/db/ShopGoodsMapper.java | 2 +- .../domain/shop/goods/dto/ShopGoodsDTO.java | 3 +++ .../goods/query/SearchShopGoodsQuery.java | 2 ++ sql/20250329_cabinet_cell_operation.sql | 27 +++++++++++++++++++ 6 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 sql/20250329_cabinet_cell_operation.sql diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java index 4e35dbb..4fc8740 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java @@ -158,7 +158,9 @@ public class ReturnApprovalApplicationService { } // 审批人信息 - if (StringUtils.isNotBlank(command.getUserid())) { + if (StringUtils.isNotBlank(command.getAuditName())) { + model.setAuditName(command.getAuditName()); + } else if (StringUtils.isNotBlank(command.getUserid())) { QyUserEntity qyUserEntity = qyUserService.getUserByUserId(command.getUserid(), WeixinConstants.corpid); if (null != qyUserEntity) { model.setAuditName(qyUserEntity.getName()); @@ -216,6 +218,17 @@ public class ReturnApprovalApplicationService { orderGoodsModel.setStatus(5); orderGoodsModel.updateById(); + GoodsModel goodsModel = goodsModelFactory.loadById(orderGoods.getGoodsId()); + // 如果商品免审批,则自动审批 + if (goodsModel.getAutoApproval().equals(1)) { + UpdateReturnApprovalCommand approveCommand = new UpdateReturnApprovalCommand(); + approveCommand.setApprovalId(returnApprovalModel.getApprovalId()); + approveCommand.setReturnAmount(orderGoods.getTotalAmount()); + approveCommand.setAuditName("自动审批"); + approveCommand.setAuditRemark("自动审批"); + approveApproval(approveCommand); + } + // 发送审核消息 try { String appid = "QWTONG_YS_WXSHOP"; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/db/ShopGoodsEntity.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/db/ShopGoodsEntity.java index 42cf140..77b011a 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/db/ShopGoodsEntity.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/db/ShopGoodsEntity.java @@ -52,6 +52,10 @@ public class ShopGoodsEntity extends BaseEntity { @TableField("`status`") private Integer status; + @ApiModelProperty("免审批(0否 1是)") + @TableField("`auto_approval`") + private Integer autoApproval; + @ApiModelProperty("封面图URL") @TableField("cover_img") private String coverImg; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/db/ShopGoodsMapper.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/db/ShopGoodsMapper.java index 7586b14..eac2f94 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/db/ShopGoodsMapper.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/db/ShopGoodsMapper.java @@ -36,7 +36,7 @@ public interface ShopGoodsMapper extends BaseMapper { @Param(Constants.WRAPPER) Wrapper queryWrapper ); */ @Select("SELECT g.goods_id, g.goods_name, g.category_id, g.price, " + - "g.stock, g.status, g.cover_img, SUM(cc.stock) AS total_stock, " + + "g.stock, g.status, g.auto_approval, g.cover_img, SUM(cc.stock) AS total_stock, " + "GROUP_CONCAT(DISTINCT cc.cell_no) AS cell_no_str, " + "GROUP_CONCAT(DISTINCT sc.cabinet_name) AS cabinet_name " + "FROM shop_goods g " + diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/dto/ShopGoodsDTO.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/dto/ShopGoodsDTO.java index e5eda7b..c687284 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/dto/ShopGoodsDTO.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/dto/ShopGoodsDTO.java @@ -60,6 +60,9 @@ public class ShopGoodsDTO { @ExcelColumn(name = "商品状态") private Integer status; + @ExcelColumn(name = "免审批") + private Integer autoApproval; + @ExcelColumn(name = "封面图") private String coverImg; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/query/SearchShopGoodsQuery.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/query/SearchShopGoodsQuery.java index 079b751..51f5a15 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/query/SearchShopGoodsQuery.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/goods/query/SearchShopGoodsQuery.java @@ -14,6 +14,7 @@ public class SearchShopGoodsQuery extends AbstractPageQuery { protected String goodsName; protected Long categoryId; protected Integer status; + protected Integer autoApproval; protected BigDecimal minPrice; protected BigDecimal maxPrice; @@ -25,6 +26,7 @@ public class SearchShopGoodsQuery extends AbstractPageQuery { .like(StrUtil.isNotEmpty(goodsName), "g.goods_name", goodsName) .eq(categoryId != null, "cc.cabinet_id", categoryId) .eq(status != null, "g.status", status) + .eq(autoApproval != null, "g.auto_approval", autoApproval) .ge(minPrice != null, "g.price", minPrice) .le(maxPrice != null, "g.price", maxPrice) .eq("g.deleted", 0) diff --git a/sql/20250329_cabinet_cell_operation.sql b/sql/20250329_cabinet_cell_operation.sql new file mode 100644 index 0000000..7a4bc9c --- /dev/null +++ b/sql/20250329_cabinet_cell_operation.sql @@ -0,0 +1,27 @@ +DROP TABLE IF EXISTS `cabinet_cell_operation`; + +CREATE TABLE `cabinet_cell_operation` ( + `operation_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '操作流水号', + `cell_id` BIGINT NOT NULL COMMENT '关联格口ID', + `goods_id` BIGINT NOT NULL COMMENT '关联商品ID', + `goods_name` VARCHAR(255) NOT NULL COMMENT '商品名称', + `userid` varchar(100) NOT NULL COMMENT '企业微信用户ID', + `is_internal` TINYINT(1) DEFAULT 0 COMMENT '是否内部用户(0否 1是)', + `name` varchar(30) DEFAULT NULL COMMENT '成员名称', + `mobile` varchar(30) DEFAULT NULL COMMENT '手机号码', + `operation_type` TINYINT NOT NULL COMMENT '操作类型(1用户 2管理员)', + `status` TINYINT NOT NULL DEFAULT 1 COMMENT '操作状态(1正常 2操作失败)', + `creator_id` BIGINT NOT NULL DEFAULT 0 COMMENT '创建者ID', + `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater_id` BIGINT NOT NULL DEFAULT 0 COMMENT '更新者ID', + `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志(0存在 1删除)', + PRIMARY KEY (`operation_id`), + KEY `idx_cell` (`cell_id`), + KEY `idx_user` (`userid`), + KEY `idx_operation_time` (`create_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='柜机格口操作记录表'; + + +ALTER TABLE `shop_goods` +ADD COLUMN `auto_approval` TINYINT NOT NULL DEFAULT 0 COMMENT '免审批(0否 1是)' AFTER `status`; \ No newline at end of file