From c268e0d0670036565258167f5ccd7ec519bca072 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Tue, 13 Aug 2024 17:34:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BA=93=E5=AD=98=E9=A2=84=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/entity/inv/InvRemindSetEntity.java | 14 ++++++++++ .../api/req/inv/AddInvRemindSetRequest.java | 14 ++++++++++ .../inv/impl/InvRemindMsgServiceImpl.java | 14 +++++----- .../inv/impl/InvRemindSetServiceImpl.java | 26 ++++++++++++++++--- src/main/resources/application-dev.yml | 2 +- .../mybatis/mapper/inv/InvRemindSetDao.xml | 6 +---- src/main/resources/schemas/schema_v2.4.sql | 14 ++++++++++ 7 files changed, 73 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/glxp/api/entity/inv/InvRemindSetEntity.java b/src/main/java/com/glxp/api/entity/inv/InvRemindSetEntity.java index 2044bc2a8..d9914f449 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvRemindSetEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvRemindSetEntity.java @@ -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{" + diff --git a/src/main/java/com/glxp/api/req/inv/AddInvRemindSetRequest.java b/src/main/java/com/glxp/api/req/inv/AddInvRemindSetRequest.java index 4695124e1..38bd7773e 100644 --- a/src/main/java/com/glxp/api/req/inv/AddInvRemindSetRequest.java +++ b/src/main/java/com/glxp/api/req/inv/AddInvRemindSetRequest.java @@ -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 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; } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvRemindMsgServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvRemindMsgServiceImpl.java index a92e387fb..56ca5252d 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvRemindMsgServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvRemindMsgServiceImpl.java @@ -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())) { //设置预警消息 diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java index 89ec1853f..8ab007377 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java @@ -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, "未查询到指定的库存产品信息"); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index a2ecc2dc9..087dbec16 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -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: diff --git a/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml b/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml index 59d1972ce..ac2484459 100644 --- a/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml @@ -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 diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 0a7b7551f..f482a6189 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -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);