feat(商品): 添加商品免审批功能以支持自动审批

在商品相关实体、DTO、查询条件及SQL表中添加`auto_approval`字段,用于标识商品是否免审批。在审批流程中,若商品标记为免审批,则自动完成审批流程,减少人工干预。
This commit is contained in:
dzq 2025-04-21 11:40:46 +08:00
parent 029975787f
commit afbd0935e7
6 changed files with 51 additions and 2 deletions

View File

@ -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";

View File

@ -52,6 +52,10 @@ public class ShopGoodsEntity extends BaseEntity<ShopGoodsEntity> {
@TableField("`status`")
private Integer status;
@ApiModelProperty("免审批0否 1是")
@TableField("`auto_approval`")
private Integer autoApproval;
@ApiModelProperty("封面图URL")
@TableField("cover_img")
private String coverImg;

View File

@ -36,7 +36,7 @@ public interface ShopGoodsMapper extends BaseMapper<ShopGoodsEntity> {
@Param(Constants.WRAPPER) Wrapper<SearchGoodsDO> 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 " +

View File

@ -60,6 +60,9 @@ public class ShopGoodsDTO {
@ExcelColumn(name = "商品状态")
private Integer status;
@ExcelColumn(name = "免审批")
private Integer autoApproval;
@ExcelColumn(name = "封面图")
private String coverImg;

View File

@ -14,6 +14,7 @@ public class SearchShopGoodsQuery<T> extends AbstractPageQuery<T> {
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<T> extends AbstractPageQuery<T> {
.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)

View File

@ -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`;