商品库存警戒线
This commit is contained in:
@@ -131,6 +131,8 @@ public class TbProduct implements Serializable {
|
||||
|
||||
private Integer stockNumber;
|
||||
|
||||
private Integer warnLine = 0;
|
||||
|
||||
@Transient
|
||||
private int orderCount;
|
||||
|
||||
@@ -655,4 +657,12 @@ public class TbProduct implements Serializable {
|
||||
public void setStockNumber(Integer stockNumber) {
|
||||
this.stockNumber = stockNumber;
|
||||
}
|
||||
|
||||
public Integer getWarnLine() {
|
||||
return warnLine;
|
||||
}
|
||||
|
||||
public void setWarnLine(Integer warnLine) {
|
||||
this.warnLine = warnLine;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,8 +35,6 @@ public class TbProductSku implements Serializable {
|
||||
|
||||
private String coverImg;
|
||||
|
||||
private Integer warnLine;
|
||||
|
||||
private Double weight;
|
||||
|
||||
private Float volume;
|
||||
|
||||
@@ -426,7 +426,7 @@ public class OrderService {
|
||||
private void checkWarnLineAndSendMsg(TbProductSku productSku, TbProduct product, Integer shopId, Integer num) {
|
||||
log.info("下单,开始校验库存预警,商品信息:{}, {}, {}", product, productSku, num);
|
||||
|
||||
if (productSku.getWarnLine() == null) {
|
||||
if (product.getWarnLine() == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -434,21 +434,15 @@ public class OrderService {
|
||||
return;
|
||||
}
|
||||
|
||||
if (productSku.getStockNumber() == null) {
|
||||
productSku.setStockNumber((double) 0);
|
||||
}
|
||||
|
||||
if (product.getStockNumber() == null) {
|
||||
product.setStockNumber(0);
|
||||
}
|
||||
if (
|
||||
(product.getIsDistribute() == 1 && product.getStockNumber() - num <= productSku.getWarnLine())
|
||||
|| (product.getIsDistribute() != 1) && productSku.getStockNumber() - num <= productSku.getWarnLine()
|
||||
) {
|
||||
if (product.getStockNumber() - num <= product.getWarnLine()) {
|
||||
List<TbShopOpenId> shopOpenIds = shopOpenIdMapper.selectStateByShopIdAndType(product.getShopId(), ShopWxMsgTypeEnum.STOCK_MSG.getType());
|
||||
shopOpenIds.forEach(item -> {
|
||||
wxAccountUtil.sendStockWarnMsg("商品库存不足", product.getName(),
|
||||
product.getIsDistribute() == 1 ? product.getStockNumber()-num : (int) (productSku.getStockNumber() - num), item.getOpenId(), ShopWxMsgTypeEnum.STOCK_MSG, shopId);
|
||||
product.getStockNumber() - num , item.getOpenId(), ShopWxMsgTypeEnum.STOCK_MSG, shopId);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
<result column="tax_config_id" jdbcType="VARCHAR" property="taxConfigId" />
|
||||
<result column="spec_table_headers" jdbcType="VARCHAR" property="specTableHeaders" />
|
||||
<result column="stock_number" jdbcType="INTEGER" property="stockNumber" />
|
||||
<result column="warn_line" jdbcType="INTEGER" property="warnLine" />
|
||||
</resultMap>
|
||||
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.chaozhanggui.system.cashierservice.entity.TbProductWithBLOBs">
|
||||
<result column="images" jdbcType="LONGVARCHAR" property="images" />
|
||||
@@ -81,7 +82,7 @@
|
||||
created_at, updated_at, base_sales_number, real_sales_number, sales_number, thumb_count,
|
||||
store_count, furnish_meal, furnish_express, furnish_draw, furnish_vir, is_combo,
|
||||
is_show_cash, is_show_mall, is_need_examine, show_on_mall_status, show_on_mall_time,
|
||||
show_on_mall_error_msg, enable_label, tax_config_id, spec_table_headers, stock_number
|
||||
show_on_mall_error_msg, enable_label, tax_config_id, spec_table_headers, stock_number,warn_line
|
||||
</sql>
|
||||
<sql id="Blob_Column_List">
|
||||
images, video, notice, group_snap, spec_info, select_spec
|
||||
@@ -120,7 +121,7 @@
|
||||
show_on_mall_status, show_on_mall_time, show_on_mall_error_msg,
|
||||
enable_label, tax_config_id, spec_table_headers,
|
||||
images, video, notice,
|
||||
group_snap, spec_info, select_spec, stock_number
|
||||
group_snap, spec_info, select_spec, stock_number,warn_line
|
||||
)
|
||||
values (#{id,jdbcType=INTEGER}, #{categoryId,jdbcType=VARCHAR}, #{specId,jdbcType=INTEGER},
|
||||
#{sourcePath,jdbcType=VARCHAR}, #{brandId,jdbcType=INTEGER}, #{merchantId,jdbcType=VARCHAR},
|
||||
@@ -144,7 +145,7 @@
|
||||
#{enableLabel,jdbcType=TINYINT}, #{taxConfigId,jdbcType=VARCHAR}, #{specTableHeaders,jdbcType=VARCHAR},
|
||||
#{images,jdbcType=LONGVARCHAR}, #{video,jdbcType=LONGVARCHAR}, #{notice,jdbcType=LONGVARCHAR},
|
||||
#{groupSnap,jdbcType=LONGVARCHAR}, #{specInfo,jdbcType=LONGVARCHAR}, #{selectSpec,jdbcType=LONGVARCHAR},
|
||||
#{stockNumber,jdbcType=INTEGER}
|
||||
#{stockNumber,jdbcType=INTEGER},#{warnLine,jdbcType=INTEGER}
|
||||
)
|
||||
</insert>
|
||||
<insert id="insertSelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductWithBLOBs">
|
||||
@@ -351,6 +352,9 @@
|
||||
<if test="stockNumber != null">
|
||||
stock_number,
|
||||
</if>
|
||||
<if test="warnLine != null">
|
||||
warn_line,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">
|
||||
@@ -554,6 +558,9 @@
|
||||
<if test="stockNumber != null">
|
||||
#{stockNumber,jdbcType=INTEGER},
|
||||
</if>
|
||||
<if test="warnLine != null">
|
||||
#{warnLine,jdbcType=INTEGER},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
<update id="updateByPrimaryKeySelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProductWithBLOBs">
|
||||
@@ -757,6 +764,9 @@
|
||||
<if test="stockNumber != null">
|
||||
stock_number = #{stockNumber,jdbcType=INTEGER},
|
||||
</if>
|
||||
<if test="warnLine != null">
|
||||
warn_line = #{warnLine,jdbcType=INTEGER},
|
||||
</if>
|
||||
</set>
|
||||
where id = #{id,jdbcType=INTEGER}
|
||||
</update>
|
||||
@@ -827,7 +837,8 @@
|
||||
group_snap = #{groupSnap,jdbcType=LONGVARCHAR},
|
||||
spec_info = #{specInfo,jdbcType=LONGVARCHAR},
|
||||
select_spec = #{selectSpec,jdbcType=LONGVARCHAR},
|
||||
stock_number = #{stockNumber,jdbcType=INTEGER}
|
||||
stock_number = #{stockNumber,jdbcType=INTEGER},
|
||||
warn_line = #{warnLine,jdbcType=INTEGER}
|
||||
where id = #{id,jdbcType=INTEGER}
|
||||
</update>
|
||||
<update id="updateByPrimaryKey" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProduct">
|
||||
@@ -891,7 +902,8 @@
|
||||
enable_label = #{enableLabel,jdbcType=TINYINT},
|
||||
tax_config_id = #{taxConfigId,jdbcType=VARCHAR},
|
||||
spec_table_headers = #{specTableHeaders,jdbcType=VARCHAR},
|
||||
stock_number = #{stockNumber,jdbcType=INTEGER}
|
||||
stock_number = #{stockNumber,jdbcType=INTEGER},
|
||||
warn_line = #{warnLine,jdbcType=INTEGER}
|
||||
where id = #{id,jdbcType=INTEGER}
|
||||
</update>
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
<result column="strategy_price" jdbcType="DECIMAL" property="strategyPrice" />
|
||||
<result column="stock_number" jdbcType="DOUBLE" property="stockNumber" />
|
||||
<result column="cover_img" jdbcType="VARCHAR" property="coverImg" />
|
||||
<result column="warn_line" jdbcType="INTEGER" property="warnLine" />
|
||||
<result column="suit" jdbcType="INTEGER" property="suit" />
|
||||
<result column="weight" jdbcType="DOUBLE" property="weight" />
|
||||
<result column="volume" jdbcType="REAL" property="volume" />
|
||||
@@ -54,7 +53,7 @@
|
||||
product_id, origin_price, cost_price,
|
||||
member_price, meal_price, sale_price,
|
||||
guide_price, strategy_price, stock_number,
|
||||
cover_img, warn_line, weight,
|
||||
cover_img, weight,
|
||||
volume, real_sales_number, first_shared,
|
||||
second_shared, created_at, updated_at,
|
||||
spec_info, spec_snap)
|
||||
@@ -62,7 +61,7 @@
|
||||
#{productId,jdbcType=VARCHAR}, #{originPrice,jdbcType=DECIMAL}, #{costPrice,jdbcType=DECIMAL},
|
||||
#{memberPrice,jdbcType=DECIMAL}, #{mealPrice,jdbcType=DECIMAL}, #{salePrice,jdbcType=DECIMAL},
|
||||
#{guidePrice,jdbcType=DECIMAL}, #{strategyPrice,jdbcType=DECIMAL}, #{stockNumber,jdbcType=DOUBLE},
|
||||
#{coverImg,jdbcType=VARCHAR}, #{warnLine,jdbcType=INTEGER}, #{weight,jdbcType=DOUBLE},
|
||||
#{coverImg,jdbcType=VARCHAR}, #{weight,jdbcType=DOUBLE},
|
||||
#{volume,jdbcType=REAL}, #{realSalesNumber,jdbcType=DOUBLE}, #{firstShared,jdbcType=DECIMAL},
|
||||
#{secondShared,jdbcType=DECIMAL}, #{createdAt,jdbcType=BIGINT}, #{updatedAt,jdbcType=BIGINT},
|
||||
#{specInfo,jdbcType=LONGVARCHAR}, #{specSnap,jdbcType=LONGVARCHAR})
|
||||
@@ -109,9 +108,6 @@
|
||||
<if test="coverImg != null">
|
||||
cover_img,
|
||||
</if>
|
||||
<if test="warnLine != null">
|
||||
warn_line,
|
||||
</if>
|
||||
<if test="weight != null">
|
||||
weight,
|
||||
</if>
|
||||
@@ -180,9 +176,6 @@
|
||||
<if test="coverImg != null">
|
||||
#{coverImg,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="warnLine != null">
|
||||
#{warnLine,jdbcType=INTEGER},
|
||||
</if>
|
||||
<if test="weight != null">
|
||||
#{weight,jdbcType=DOUBLE},
|
||||
</if>
|
||||
@@ -251,9 +244,6 @@
|
||||
<if test="coverImg != null">
|
||||
cover_img = #{coverImg,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="warnLine != null">
|
||||
warn_line = #{warnLine,jdbcType=INTEGER},
|
||||
</if>
|
||||
<if test="weight != null">
|
||||
weight = #{weight,jdbcType=DOUBLE},
|
||||
</if>
|
||||
@@ -298,7 +288,6 @@
|
||||
strategy_price = #{strategyPrice,jdbcType=DECIMAL},
|
||||
stock_number = #{stockNumber,jdbcType=DOUBLE},
|
||||
cover_img = #{coverImg,jdbcType=VARCHAR},
|
||||
warn_line = #{warnLine,jdbcType=INTEGER},
|
||||
weight = #{weight,jdbcType=DOUBLE},
|
||||
volume = #{volume,jdbcType=REAL},
|
||||
real_sales_number = #{realSalesNumber,jdbcType=DOUBLE},
|
||||
@@ -324,7 +313,6 @@
|
||||
strategy_price = #{strategyPrice,jdbcType=DECIMAL},
|
||||
stock_number = #{stockNumber,jdbcType=DOUBLE},
|
||||
cover_img = #{coverImg,jdbcType=VARCHAR},
|
||||
warn_line = #{warnLine,jdbcType=INTEGER},
|
||||
weight = #{weight,jdbcType=DOUBLE},
|
||||
volume = #{volume,jdbcType=REAL},
|
||||
real_sales_number = #{realSalesNumber,jdbcType=DOUBLE},
|
||||
|
||||
Reference in New Issue
Block a user