feat: 库存预警

lh_dev_fifo
chenhc 11 months ago
parent 5af357d158
commit c268e0d067

@ -96,6 +96,20 @@ public class InvRemindSetEntity {
@TableField(value = "`status`")
private Integer status;
@TableField(value = "overStockNum")
private Integer overStockNum;
@TableField(value = "recentDateTime")
private Integer recentDateTime;
@TableField(value = "lowStockNum")
private Integer lowStockNum;
@TableField(value = "isDateBy")
private Integer isDateBy;
@Override
public String toString() {
return "InvRemindSetEntity{" +

@ -1,5 +1,6 @@
package com.glxp.api.req.inv;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.util.List;
@ -71,4 +72,17 @@ public class AddInvRemindSetRequest {
* ID
*/
private List<String> relIdList;
@TableField(value = "overStockNum")
private Integer overStockNum;
@TableField(value = "recentDateTime")
private Integer recentDateTime;
@TableField(value = "lowStockNum")
private Integer lowStockNum;
@TableField(value = "isDateBy")
private Integer isDateBy;
}

@ -91,14 +91,14 @@ public class InvRemindMsgServiceImpl implements InvRemindMsgService {
invRemindMsgRequest.setSupId(invProductEntity.getSupId());
//根据预警设置,添加类型参数
if (invRemindSetEntity.getLowStock() && null != udiRelevanceEntity.getLowStockNum()) {
if (invRemindSetEntity.getLowStock() && null != invRemindSetEntity.getLowStockNum()) {
//开启低库存预警
invRemindMsgRequest.setType("1"); //库存不足预警
InvRemindMsgEntity msgEntity = getInvRemindMsgEntity(invRemindMsgRequest, invProductEntity);
//判断是否需要生成/刷新库存预警
if ((null == msgEntity.getNextRemindTime() || msgEntity.getNextRemindTime().getTime() <= new Date().getTime()) && udiRelevanceEntity.getLowStockNum() > invProductEntity.getReCount()) {
if ((null == msgEntity.getNextRemindTime() || msgEntity.getNextRemindTime().getTime() <= new Date().getTime()) && invRemindSetEntity.getLowStockNum() > invProductEntity.getReCount()) {
//设置预警消息
msgEntity.setMsg(StrUtil.format("库存数量已不足:{},当前库存数量:{} ", udiRelevanceEntity.getLowStockNum(), invProductEntity.getReCount()));
msgEntity.setMsg(StrUtil.format("库存数量已不足:{},当前库存数量:{} ", invRemindSetEntity.getLowStockNum(), invProductEntity.getReCount()));
saveMsg(msgEntity);
}
} else {
@ -119,12 +119,12 @@ public class InvRemindMsgServiceImpl implements InvRemindMsgService {
}
}
if (invRemindSetEntity.getOverStock() && null != udiRelevanceEntity.getOverStockNum()) {
if (invRemindSetEntity.getOverStock() && null != invRemindSetEntity.getOverStockNum()) {
//开启库存积压预警
invRemindMsgRequest.setType("3"); //库存积压预警
InvRemindMsgEntity msgEntity = getInvRemindMsgEntity(invRemindMsgRequest, invProductEntity);
//判断是否需要生成/刷新库存预警
if ((null == msgEntity.getNextRemindTime() || msgEntity.getNextRemindTime().getTime() <= new Date().getTime()) && invProductEntity.getReCount() > udiRelevanceEntity.getOverStockNum()) {
if ((null == msgEntity.getNextRemindTime() || msgEntity.getNextRemindTime().getTime() <= new Date().getTime()) && invProductEntity.getReCount() > invRemindSetEntity.getOverStockNum()) {
//设置预警消息
msgEntity.setMsg(StrUtil.format("库存积压,当前库存数量:{}", invProductEntity.getReCount()));
saveMsg(msgEntity);
@ -146,14 +146,14 @@ public class InvRemindMsgServiceImpl implements InvRemindMsgService {
}
}
if (invRemindSetEntity.getRecentDate() && null != udiRelevanceEntity.getRecentDateTime()) {
if (invRemindSetEntity.getRecentDate() && null != invRemindSetEntity.getRecentDateTime()) {
//开启库存近效期预警
invRemindMsgRequest.setType("5"); //库存近效期预警
InvRemindMsgEntity msgEntity = getInvRemindMsgEntity(invRemindMsgRequest, invProductEntity);
//判断是否需要生成/刷新库存预警
if ((null == msgEntity.getNextRemindTime() || msgEntity.getNextRemindTime().getTime() <= new Date().getTime()) && StrUtil.isNotBlank(invProductEntity.getExpireDate())) {
//当前时间 - 近效期预警时间 > 产品失效日期,则进行预警
DateTime dateTime = cn.hutool.core.date.DateUtil.offsetHour(new Date(), udiRelevanceEntity.getRecentDateTime());
DateTime dateTime = cn.hutool.core.date.DateUtil.offsetHour(new Date(), invRemindSetEntity.getRecentDateTime());
if (Long.parseLong(dateTime.toString("yyMMdd")) > Long.parseLong(invProductEntity.getExpireDate())) {
//设置预警消息

@ -1,5 +1,6 @@
package com.glxp.api.service.inv.impl;
import com.baomidou.mybatisplus.annotation.TableField;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
@ -96,6 +97,16 @@ public class InvRemindSetServiceImpl implements InvRemindSetService {
invRemindSetEntity.setExpireDate(addInvRemindSetRequest.getExpireDate());
invRemindSetEntity.setRecentDate(addInvRemindSetRequest.getRecentDate());
if (addInvRemindSetRequest.getIsDateBy() == 1 && null != addInvRemindSetRequest.getRecentDateTime()) {
invRemindSetEntity.setRecentDateTime(addInvRemindSetRequest.getRecentDateTime() * 24);
}else {
invRemindSetEntity.setRecentDateTime(addInvRemindSetRequest.getRecentDateTime());
}
invRemindSetEntity.setOverStockNum(addInvRemindSetRequest.getOverStockNum());
invRemindSetEntity.setLowStockNum(addInvRemindSetRequest.getLowStockNum());
invRemindSetEntity.setIsDateBy(addInvRemindSetRequest.getIsDateBy());
//校验预警参数是否符合开启条件
verifySetParams(invRemindSetEntity);
setUpdateInfo(invRemindSetEntity);
@ -141,12 +152,19 @@ public class InvRemindSetServiceImpl implements InvRemindSetService {
response.setOverStock(invRemindSetEntity.getOverStock());
response.setExpireDate(invRemindSetEntity.getExpireDate());
response.setRecentDate(invRemindSetEntity.getRecentDate());
response.setOverStockNum(invRemindSetEntity.getOverStockNum());
if (invRemindSetEntity.getIsDateBy() != null && invRemindSetEntity.getIsDateBy() == 1 && null != invRemindSetEntity.getRecentDateTime()) {
//将近效期预警值由小时换算成天
response.setRecentDateTime(invRemindSetEntity.getRecentDateTime() / 24);
}else {
response.setRecentDateTime(invRemindSetEntity.getRecentDateTime());
}
if (response.getIsDateBy() == 1 && null != response.getRecentDateTime()) {
//将近效期预警值由小时换算成天
response.setRecentDateTime(response.getRecentDateTime() / 24);
response.setLowStockNum(invRemindSetEntity.getLowStockNum());
response.setIsDateBy(invRemindSetEntity.getIsDateBy());
}
return ResultVOUtils.success(response);
}
return ResultVOUtils.error(500, "未查询到指定的库存产品信息");

@ -4,7 +4,7 @@ server:
spring:
datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_pt2?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_pt?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: 123456
hikari:

@ -60,11 +60,7 @@
where code = ipd.invSpaceCode
and invWarehouseCode = ip.invCode) invSpaceName,
bp.ggxh,
bp.cpmctymc productName,
bu.lowStockNum,
bu.overStockNum,
bu.recentDateTime,
bu.isDateBy
bp.cpmctymc productName
from inv_product ip
left join basic_udirel bu on ip.relIdFk = bu.id
left join basic_products bp on bu.uuid = bp.uuid

@ -3860,3 +3860,17 @@ CALL Pro_Temp_ColumnWork('basic_sk_sicker', 'outHospTime',
' datetime NULL DEFAULT NULL COMMENT ''出院时间''',
1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'isStack', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('inv_remind_set', 'lowStockNum',
' int(0) NULL DEFAULT NULL COMMENT ''低库存预警数量''',
1);
CALL Pro_Temp_ColumnWork('inv_remind_set', 'overStockNum',
' int(0) NULL DEFAULT NULL COMMENT ''库存积压预警数量''',
1);
CALL Pro_Temp_ColumnWork('inv_remind_set', 'recentDateTime',
' int(0) NULL DEFAULT NULL COMMENT ''近效期预警时间(小时)''',
1);
CALL Pro_Temp_ColumnWork('inv_remind_set', 'isDateBy',
' tinyint(0) NULL DEFAULT 1 COMMENT ''时间预警填写类型1天2小时''',
1);

Loading…
Cancel
Save