From bf5594331a7d8f8ee2af3abd8e12e1f773a3780a Mon Sep 17 00:00:00 2001 From: zhengxuming Date: Wed, 16 Jul 2025 17:30:43 +0800 Subject: [PATCH] =?UTF-8?q?add:=E9=A2=84=E8=AD=A6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IMdPbStoragevehicleextService.java | 9 + .../mapper/MdPbStoragevehicleextMapper.java | 6 + .../mapper/MdPbStoragevehicleextMapper.xml | 67 ++++ .../service/dto/MdPbStoragevehicleextDto.java | 16 + .../MdPbStoragevehicleextServiceImpl.java | 7 + .../service/util/ForewarningTask.java | 204 ++++++++++++ .../service/quartz/config/QuartzConfig.java | 17 + .../service/quartz/utils/ExecutionJob.java | 4 +- .../StIvtForewarningconfigController.java | 75 +++++ .../StIvtOverdueforewarningController.java | 59 ++++ .../StIvtSafetyforewarningController.java | 59 ++++ .../IStIvtForewarningconfigService.java | 56 ++++ .../IStIvtForewarningmaterialService.java | 43 +++ .../IStIvtOverdueforewarningService.java | 50 +++ .../IStIvtSafetyforewarningService.java | 46 +++ .../service/dao/StIvtForewarningconfig.java | 74 +++++ .../service/dao/StIvtForewarningmaterial.java | 64 ++++ .../service/dao/StIvtOverdueforewarning.java | 74 +++++ .../service/dao/StIvtSafetyforewarning.java | 71 ++++ .../mapper/StIvtForewarningconfigMapper.java | 18 ++ .../mapper/StIvtForewarningconfigMapper.xml | 33 ++ .../StIvtForewarningmaterialMapper.java | 19 ++ .../mapper/StIvtForewarningmaterialMapper.xml | 16 + .../mapper/StIvtOverdueforewarningMapper.java | 18 ++ .../mapper/StIvtOverdueforewarningMapper.xml | 26 ++ .../mapper/StIvtSafetyforewarningMapper.java | 20 ++ .../mapper/StIvtSafetyforewarningMapper.xml | 26 ++ .../dto/StIvtForewarningconfigDto.java | 72 +++++ .../dto/StIvtForewarningconfigQuery.java | 12 + .../dto/StIvtForewarningmaterialDto.java | 60 ++++ .../dto/StIvtForewarningmaterialQuery.java | 12 + .../dto/StIvtOverdueforewarningDto.java | 68 ++++ .../dto/StIvtOverdueforewarningQuery.java | 12 + .../dto/StIvtSafetyforewarningDto.java | 65 ++++ .../dto/StIvtSafetyforewarningQuery.java | 12 + .../StIvtForewarningconfigServiceImpl.java | 136 ++++++++ .../StIvtForewarningmaterialServiceImpl.java | 81 +++++ .../StIvtOverdueforewarningServiceImpl.java | 85 +++++ .../StIvtSafetyforewarningServiceImpl.java | 95 ++++++ nladmin-ui/src/api/forewarning.js | 48 +++ .../forewarning_config/AddDialog.vue | 305 ++++++++++++++++++ .../forewarning_config/AddMaterial.vue | 136 ++++++++ .../forewarning_config/index.vue | 270 ++++++++++++++++ .../stIvtForewarningconfig.js | 43 +++ .../overdue_forewarning/index.vue | 125 +++++++ .../stIvtOverdueforewarning.js | 27 ++ .../safety_forewarning/index.vue | 123 +++++++ .../stIvtSafetyforewarning.js | 27 ++ 48 files changed, 2990 insertions(+), 1 deletion(-) create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/ForewarningTask.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtForewarningconfigController.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtOverdueforewarningController.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtSafetyforewarningController.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtForewarningconfigService.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtForewarningmaterialService.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtOverdueforewarningService.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtSafetyforewarningService.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtForewarningconfig.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtForewarningmaterial.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtOverdueforewarning.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtSafetyforewarning.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningconfigMapper.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningconfigMapper.xml create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningmaterialMapper.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningmaterialMapper.xml create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtOverdueforewarningMapper.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtOverdueforewarningMapper.xml create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtSafetyforewarningMapper.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtSafetyforewarningMapper.xml create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningconfigDto.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningconfigQuery.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningmaterialDto.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningmaterialQuery.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtOverdueforewarningDto.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtOverdueforewarningQuery.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtSafetyforewarningDto.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtSafetyforewarningQuery.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtForewarningconfigServiceImpl.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtForewarningmaterialServiceImpl.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtOverdueforewarningServiceImpl.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtSafetyforewarningServiceImpl.java create mode 100644 nladmin-ui/src/api/forewarning.js create mode 100644 nladmin-ui/src/views/wms/forewarning_management/forewarning_config/AddDialog.vue create mode 100644 nladmin-ui/src/views/wms/forewarning_management/forewarning_config/AddMaterial.vue create mode 100644 nladmin-ui/src/views/wms/forewarning_management/forewarning_config/index.vue create mode 100644 nladmin-ui/src/views/wms/forewarning_management/forewarning_config/stIvtForewarningconfig.js create mode 100644 nladmin-ui/src/views/wms/forewarning_management/overdue_forewarning/index.vue create mode 100644 nladmin-ui/src/views/wms/forewarning_management/overdue_forewarning/stIvtOverdueforewarning.js create mode 100644 nladmin-ui/src/views/wms/forewarning_management/safety_forewarning/index.vue create mode 100644 nladmin-ui/src/views/wms/forewarning_management/safety_forewarning/stIvtSafetyforewarning.js diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java index 1c87e56..5d5a4b7 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; +import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto; import java.util.List; import java.util.Map; @@ -27,4 +28,12 @@ public interface IMdPbStoragevehicleextService extends IService queryAll(Map whereJson, PageQuery page); + + /** + * 全部查询 + * @param whereJson : {查询参数} + * @return 返回结果 + */ + List queryAll(Map whereJson); + } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java index 930b0a6..75bce79 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java @@ -46,6 +46,12 @@ public interface MdPbStoragevehicleextMapper extends BaseMapper queryAllByPage(Page page, @Param("param") Map whereJson); + /** + * 查询 + * @param whereJson 查询条件 + */ + List queryAll( @Param("param") Map whereJson); + /** * erp查询库存 * @param whereJson { diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml index 01844ef..40c9132 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml @@ -265,4 +265,71 @@ ORDER BY ext.create_time + + diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/MdPbStoragevehicleextDto.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/MdPbStoragevehicleextDto.java index ded89d6..555e3e1 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/MdPbStoragevehicleextDto.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/MdPbStoragevehicleextDto.java @@ -3,6 +3,8 @@ package org.nl.wms.basedata_manage.service.dto; import lombok.Data; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; +import java.math.BigDecimal; + /** * @author dsh * 2025/6/5 @@ -20,6 +22,11 @@ public class MdPbStoragevehicleextDto extends MdPbStoragevehicleext{ */ private String sect_code; + /** + * 仓库编码 + */ + private String stor_code; + /** * 库区名称 */ @@ -45,4 +52,13 @@ public class MdPbStoragevehicleextDto extends MdPbStoragevehicleext{ */ private String material_name; + /** + * 数量 + */ + private BigDecimal qty; + + private String create_time; + + + } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java index 8df7bb4..09470a7 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java @@ -8,8 +8,10 @@ import org.nl.common.domain.query.PageQuery; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; +import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; /** @@ -31,5 +33,10 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl queryAll(Map whereJson) { + return this.baseMapper.queryAll(whereJson); + } + } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/ForewarningTask.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/ForewarningTask.java new file mode 100644 index 0000000..2699264 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/ForewarningTask.java @@ -0,0 +1,204 @@ +package org.nl.wms.sch_manage.service.util; + + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; +import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto; +import org.nl.wms.warehouse_manage.service.*; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningconfig; + +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningmaterial; +import org.nl.wms.warehouse_manage.service.dao.StIvtSafetyforewarning; +import org.nl.wms.warehouse_manage.service.dao.StIvtOverdueforewarning; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +@Slf4j +@Component +@RequiredArgsConstructor +public class ForewarningTask { + + @Autowired + private IStIvtOverdueforewarningService stIvtOverdueforewarningService; + + @Autowired + private IStIvtSafetyforewarningService stIvtSafetyforewarningService; + + @Autowired + private IStIvtForewarningconfigService forewarningconfigService; + + @Autowired + private IStIvtForewarningmaterialService stIvtForewarningmaterialService; + + @Autowired + private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper; + + @Autowired + private final RedissonClient redissonClient; + + //定时任务 + @SneakyThrows + @Transactional(rollbackFor = Exception.class) + public void run() { + RLock lock = redissonClient.getLock(this.getClass().getName()); + boolean tryLock = lock.tryLock(2, TimeUnit.SECONDS); + try { + if (tryLock) { + runTask(); + } + lock.unlock(); + } catch (Exception e) { + if (tryLock) { + lock.unlock(); + } + } + } + + /** + * 预警数据生成 + *

+ * 1、删除st_ivt_overdueforewarning、st_ivt_safetyforewarning表中的全部数据 + * 2、查询st_ivt_forewarningconfig,获取正在启用的、未删除的配置 + * 3、通过st_ivt_forewarningconfig表的id字段,匹配上st_ivt_forewarningmaterial表的config_id字段,获取对应的物料。赋值给 + * StIvtForewarningconfigDto的tableData + * 4、循环,判断每条数据下的对应物料的安全库存数量、入库时间(以组盘时间为准) + * 其中库存表:md_pb_groupplate,实体类:GroupPlate,组盘时间create_time,物料编码id material_id + * 5、 分别生成st_ivt_safetyforewarning(安全库存数量超期) 和 st_ivt_overdueforewarning(安全库存天数超期) ,插入到对应数据库中 + */ + private void runTask() { + // 1. 删除st_ivt_overdueforewarning、st_ivt_safetyforewarning表中的全部数据 + stIvtOverdueforewarningService.deleteAllNoParam(); + stIvtSafetyforewarningService.deleteAllNoParam(); + + // 2. 查询st_ivt_forewarningconfig,获取正在启用的、未删除的配置 + List configList = forewarningconfigService.list(new LambdaQueryWrapper() + .eq(StIvtForewarningconfig::getIs_active,true) + .eq(StIvtForewarningconfig::getIs_delete,false)); + if (CollectionUtil.isEmpty(configList)) { + return; + } + + List configStringList =configList.stream().map(StIvtForewarningconfig::getId).collect(Collectors.toList()); + + // 获取配置文件下的所有物料 + List materialList = stIvtForewarningmaterialService.list(new LambdaQueryWrapper() + .eq(StIvtForewarningmaterial::getIs_active,true) + .eq(StIvtForewarningmaterial::getIs_delete,false) + .in(StIvtForewarningmaterial::getConfig_id,configStringList)); + + List materialIdList = materialList.stream().map(StIvtForewarningmaterial::getMaterial_id).collect(Collectors.toList()); + List storCodeList = configList.stream().map(StIvtForewarningconfig::getStor_code).collect(Collectors.toList()); + // 查询库存信息 + Map queryMap = new HashMap(); + queryMap.put("stor_code_list",storCodeList); + queryMap.put("material_id_list",materialIdList); + List mdPbStoragevehicleextDtos = mdPbStoragevehicleextMapper.queryAll(queryMap); + if (CollectionUtil.isEmpty(mdPbStoragevehicleextDtos)) { + return; + } + + for (StIvtForewarningconfig config : configList) { + //3. 通过st_ivt_forewarningconfig表的id字段,匹配上st_ivt_forewarningmaterial表的config_id字段,获取对应的物料 + List configMaterialList = materialList.stream(). + filter(a->config.getId().equals(a.getConfig_id())).collect(Collectors.toList()); + // 4. 循环,判断每条数据下的对应物料的安全库存数量、入库时间(以组盘时间为准) + for (StIvtForewarningmaterial material : configMaterialList) { + + // 计算安全库存数量 + BigDecimal totalQty = mdPbStoragevehicleextDtos.stream() + .filter(a -> config.getStor_code().equals(a.getStor_code()) + && material.getMaterial_id().equals(a.getMaterial_id())) + .map(MdPbStoragevehicleextDto::getQty) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + + // 计算最早的组盘时间 + LocalDateTime earliestPlate = null; + try { + earliestPlate = mdPbStoragevehicleextDtos.stream() + .filter(a -> config.getStor_code().equals(a.getStor_code()) + && material.getMaterial_id().equals(a.getMaterial_id())) + .map(a -> { + try { + String createTimeStr = a.getCreate_time(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + return LocalDateTime.parse(createTimeStr, formatter); + } catch (Exception ex) { + // 解析失败,返回null + return null; + } + }) + .filter(Objects::nonNull) + .min(LocalDateTime::compareTo) + .orElse(null); + } catch (Exception ex) { + // 处理整体异常 + earliestPlate = null; + } + // 计算 earliestPlate 与当前时间的天数差,返回int类型 + BigDecimal daysDiff = BigDecimal.ZERO; + if (earliestPlate != null) { + long millis = java.time.Duration.between(earliestPlate, LocalDateTime.now()).toMillis(); + daysDiff = new BigDecimal(millis) + .divide(new BigDecimal(1000 * 60 * 60 * 24), 4, BigDecimal.ROUND_HALF_UP); + } + + + + // 5. 分别生成st_ivt_safetyforewarning(安全库存数量超期) 和 st_ivt_overdueforewarning(安全库存天数超期) + // 安全库存数量超期 + if (config.getSafe_qty() != null && totalQty.compareTo(config.getSafe_qty()) > 0) { + StIvtSafetyforewarning safety = new StIvtSafetyforewarning(); + safety.setId(IdUtil.getSnowflake(1, 1).nextIdStr()); + safety.setConfig_id(config.getId()); + safety.setMaterial_code(material.getMaterial_code()); + safety.setMaterial_name(material.getMaterial_name()); + safety.setSafe_qty(config.getSafe_qty()); + safety.setStor_code(config.getStor_code()); + safety.setCurrent_qty(totalQty); + safety.setCreate_name("JOB"); + safety.setCreate_time(DateUtil.now()); + stIvtSafetyforewarningService.save(safety); + } + + // 安全库存天数超期 + + if (config.getSafe_days() != null && daysDiff.compareTo(config.getSafe_days())>0) { + // 将 earliestPlate 转化成 yyyy-MM-dd HH:mm:ss 的String 类型 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + String earliestPlateStr = earliestPlate.format(formatter); + + StIvtOverdueforewarning overdue = new StIvtOverdueforewarning(); + overdue.setId(IdUtil.getSnowflake(1, 1).nextIdStr()); + overdue.setConfig_id(config.getId()); + overdue.setMaterial_code(material.getMaterial_code()); + overdue.setMaterial_name(material.getMaterial_name()); + overdue.setOverdue_days(daysDiff); + overdue.setStor_code(config.getStor_code()); + overdue.setSafe_days(config.getSafe_days()); + overdue.setInsert_time(earliestPlateStr); + overdue.setCreate_name("JOB"); + overdue.setCreate_time(DateUtil.now()); + stIvtOverdueforewarningService.save(overdue); + } + + } + } + } +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/system_manage/service/quartz/config/QuartzConfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/system_manage/service/quartz/config/QuartzConfig.java index cac7854..a619fdc 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/system_manage/service/quartz/config/QuartzConfig.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/system_manage/service/quartz/config/QuartzConfig.java @@ -10,6 +10,11 @@ import org.springframework.scheduling.quartz.SchedulerFactoryBean; import org.springframework.stereotype.Component; import java.util.Properties; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.LinkedBlockingQueue; +import javax.annotation.Resource; +import org.springframework.beans.factory.annotation.Qualifier; /** * 定时任务配置 @@ -64,4 +69,16 @@ public class QuartzConfig { scheduler.start(); return scheduler; } + + @Bean(name = "wmshandlerPool") + public ThreadPoolExecutor wmshandlerPool() { + return new ThreadPoolExecutor( + 10, // corePoolSize + 20, // maximumPoolSize + 60, // keepAliveTime + TimeUnit.SECONDS, + new LinkedBlockingQueue<>(1000), + new ThreadPoolExecutor.CallerRunsPolicy() + ); + } } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/system_manage/service/quartz/utils/ExecutionJob.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/system_manage/service/quartz/utils/ExecutionJob.java index ece4f4a..f0e543c 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/system_manage/service/quartz/utils/ExecutionJob.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/system_manage/service/quartz/utils/ExecutionJob.java @@ -19,7 +19,9 @@ import org.springframework.scheduling.quartz.QuartzJobBean; import javax.annotation.Resource; import java.util.concurrent.Future; +import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; /** * @Author: / @@ -36,7 +38,7 @@ public class ExecutionJob extends QuartzJobBean { * 该处仅供参考 */ @Resource - @Qualifier("meshandlerPool") + @Qualifier("wmshandlerPool") private ThreadPoolExecutor EXECUTOR; @Override diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtForewarningconfigController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtForewarningconfigController.java new file mode 100644 index 0000000..9ab8651 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtForewarningconfigController.java @@ -0,0 +1,75 @@ +package org.nl.wms.warehouse_manage.controller; + +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.decision_manage.service.strategyConfig.dao.StStrategyConfig; +import org.nl.wms.warehouse_manage.service.IStIvtForewarningconfigService; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningconfig; +import org.nl.wms.warehouse_manage.service.dto.StIvtForewarningconfigDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; +import java.util.Set; +/** +* @author zhengxuming +* @date 2025-07-14 +**/ +@Slf4j +@RestController +@RequestMapping("/api/stIvtForewarningconfig") +public class StIvtForewarningconfigController { + + @Autowired + private IStIvtForewarningconfigService stIvtForewarningconfigService; + + @GetMapping + @Log("查询预警配置") + //@SaCheckPermission("stIvtForewarningconfig:list") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(stIvtForewarningconfigService.queryAll(whereJson,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增预警配置") + //@SaCheckPermission("stIvtForewarningconfig:add") + public ResponseEntity create(@Validated @RequestBody StIvtForewarningconfigDto entity){ + stIvtForewarningconfigService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改预警配置") + //@SaCheckPermission("stIvtForewarningconfig:edit") + public ResponseEntity update(@Validated @RequestBody StIvtForewarningconfigDto entity){ + stIvtForewarningconfigService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除预警配置") + //@SaCheckPermission("stIvtForewarningconfig:del") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + stIvtForewarningconfigService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @GetMapping("/getWarningMaterial") + @Log("查询预警物料") + public ResponseEntity getWarningMaterial(@RequestParam Map whereJson) { + return new ResponseEntity<>(stIvtForewarningconfigService.getWarningMaterial(whereJson), HttpStatus.OK); + } + + @PutMapping("/changeActive") + @Log("修改启用状态规格") + public ResponseEntity changeActive(@Validated @RequestBody StIvtForewarningconfigDto dao) { + stIvtForewarningconfigService.changeActive(dao); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtOverdueforewarningController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtOverdueforewarningController.java new file mode 100644 index 0000000..f4d35b7 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtOverdueforewarningController.java @@ -0,0 +1,59 @@ +package org.nl.wms.warehouse_manage.controller; + +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.warehouse_manage.service.IStIvtOverdueforewarningService; +import org.nl.wms.warehouse_manage.service.dao.StIvtOverdueforewarning; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; +import java.util.Set; +/** +* @author zhengxuming +* @date 2025-07-14 +**/ +@Slf4j +@RestController +@RequestMapping("/api/stIvtOverdueforewarning") +public class StIvtOverdueforewarningController { + + @Autowired + private IStIvtOverdueforewarningService stIvtOverdueforewarningService; + + @GetMapping + @Log("查询库存超期预警") + //@SaCheckPermission("stIvtOverdueforewarning:list") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(stIvtOverdueforewarningService.queryAll(whereJson,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增库存超期预警") + //@SaCheckPermission("stIvtOverdueforewarning:add") + public ResponseEntity create(@Validated @RequestBody StIvtOverdueforewarning entity){ + stIvtOverdueforewarningService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改库存超期预警") + //@SaCheckPermission("stIvtOverdueforewarning:edit") + public ResponseEntity update(@Validated @RequestBody StIvtOverdueforewarning entity){ + stIvtOverdueforewarningService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除库存超期预警") + //@SaCheckPermission("stIvtOverdueforewarning:del") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + stIvtOverdueforewarningService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtSafetyforewarningController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtSafetyforewarningController.java new file mode 100644 index 0000000..e7a01ff --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtSafetyforewarningController.java @@ -0,0 +1,59 @@ +package org.nl.wms.warehouse_manage.controller; + +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.warehouse_manage.service.IStIvtSafetyforewarningService; +import org.nl.wms.warehouse_manage.service.dao.StIvtSafetyforewarning; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; +import java.util.Set; +/** +* @author zhengxuming +* @date 2025-07-14 +**/ +@Slf4j +@RestController +@RequestMapping("/api/stIvtSafetyforewarning") +public class StIvtSafetyforewarningController { + + @Autowired + private IStIvtSafetyforewarningService stIvtSafetyforewarningService; + + @GetMapping + @Log("查询安全库存预警") + //@SaCheckPermission("stIvtSafetyforewarning:list") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(stIvtSafetyforewarningService.queryAll(whereJson,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增安全库存预警") + //@SaCheckPermission("stIvtSafetyforewarning:add") + public ResponseEntity create(@Validated @RequestBody StIvtSafetyforewarning entity){ + stIvtSafetyforewarningService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改安全库存预警") + //@SaCheckPermission("stIvtSafetyforewarning:edit") + public ResponseEntity update(@Validated @RequestBody StIvtSafetyforewarning entity){ + stIvtSafetyforewarningService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除安全库存预警") + //@SaCheckPermission("stIvtSafetyforewarning:del") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + stIvtSafetyforewarningService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtForewarningconfigService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtForewarningconfigService.java new file mode 100644 index 0000000..e410761 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtForewarningconfigService.java @@ -0,0 +1,56 @@ +package org.nl.wms.warehouse_manage.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.decision_manage.service.strategyConfig.dao.StStrategyConfig; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningconfig; +import org.nl.wms.warehouse_manage.service.dto.StIvtForewarningconfigDto; +import org.nl.wms.warehouse_manage.service.dto.StIvtForewarningmaterialDto; +import org.nl.wms.warehouse_manage.service.dto.StIvtOverdueforewarningDto; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** +* @description 服务接口 +* @author zhengxuming +* @date 2025-07-14 +**/ +public interface IStIvtForewarningconfigService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(StIvtForewarningconfigDto entity); + + /** + * 编辑 + * @param entity / + */ + void update(StIvtForewarningconfigDto entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); + + List getWarningMaterial(Map whereJson); + + /** + * 修改启用状态 + * @param dao:实体类 + */ + void changeActive(StIvtForewarningconfigDto dao); +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtForewarningmaterialService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtForewarningmaterialService.java new file mode 100644 index 0000000..d5ac191 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtForewarningmaterialService.java @@ -0,0 +1,43 @@ +package org.nl.wms.warehouse_manage.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningmaterial; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务接口 +* @author zhengxuming +* @date 2025-07-15 +**/ +public interface IStIvtForewarningmaterialService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(StIvtForewarningmaterial entity); + + /** + * 编辑 + * @param entity / + */ + void update(StIvtForewarningmaterial entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtOverdueforewarningService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtOverdueforewarningService.java new file mode 100644 index 0000000..f591047 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtOverdueforewarningService.java @@ -0,0 +1,50 @@ +package org.nl.wms.warehouse_manage.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.warehouse_manage.service.dao.StIvtOverdueforewarning; +import org.nl.wms.warehouse_manage.service.dto.StIvtOverdueforewarningDto; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务接口 +* @author zhengxuming +* @date 2025-07-14 +**/ +public interface IStIvtOverdueforewarningService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(StIvtOverdueforewarning entity); + + /** + * 编辑 + * @param entity / + */ + void update(StIvtOverdueforewarning entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); + + /** + * + * 删除全部 + */ + void deleteAllNoParam(); +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtSafetyforewarningService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtSafetyforewarningService.java new file mode 100644 index 0000000..9f9b5ec --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/IStIvtSafetyforewarningService.java @@ -0,0 +1,46 @@ +package org.nl.wms.warehouse_manage.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.warehouse_manage.service.dao.StIvtSafetyforewarning; +import org.nl.wms.warehouse_manage.service.dto.StIvtSafetyforewarningDto; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务接口 +* @author zhengxuming +* @date 2025-07-14 +**/ +public interface IStIvtSafetyforewarningService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(StIvtSafetyforewarning entity); + + /** + * 编辑 + * @param entity / + */ + void update(StIvtSafetyforewarning entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); + + void deleteAllNoParam(); +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtForewarningconfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtForewarningconfig.java new file mode 100644 index 0000000..199d2ad --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtForewarningconfig.java @@ -0,0 +1,74 @@ +package org.nl.wms.warehouse_manage.service.dao; + + import com.baomidou.mybatisplus.annotation.IdType; + import com.baomidou.mybatisplus.annotation.TableId; + import com.baomidou.mybatisplus.annotation.TableName; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + import java.math.BigDecimal; + +/** +* @description / +* @author zhengxuming +* @date 2025-07-14 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_forewarningconfig") +public class StIvtForewarningconfig implements Serializable { + +private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.NONE) + /** id */ + private String id; + + /** 方案名称 */ + private String name; + + /** 仓库编码 */ + private String stor_code; + + /** 安全库存数量 */ + private BigDecimal safe_qty; + + /** 安全库存天数 */ + private BigDecimal safe_days; + + /** 备注 */ + private String remark; + + /** 是否启用 */ + private Boolean is_active; + + /** 是否删除 */ + private Boolean is_delete; + + /** 创建id */ + private String create_id; + + /** 创建者 */ + private String create_name; + + /** 创建时间 */ + private String create_time; + + /** 修改id */ + private String update_id; + + /** 修改者 */ + private String update_name; + + /** 修改时间 */ + private String update_time; + + /** 表达式 */ + private String cron; + + /** 通知类型 */ + private String notify_type; + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtForewarningmaterial.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtForewarningmaterial.java new file mode 100644 index 0000000..ebf9fd2 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtForewarningmaterial.java @@ -0,0 +1,64 @@ +package org.nl.wms.warehouse_manage.service.dao; + + import com.baomidou.mybatisplus.annotation.IdType; + import com.baomidou.mybatisplus.annotation.TableId; + import com.baomidou.mybatisplus.annotation.TableName; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** +* @description / +* @author zhengxuming +* @date 2025-07-15 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_forewarningmaterial") +public class StIvtForewarningmaterial implements Serializable { + +private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.NONE) + /** 明细id */ + private String id; + + /** 预警id */ + private String config_id; + + /** 物料标识 */ + private String material_id; + + /** 物料编号 */ + private String material_code; + + /** 物料名称 */ + private String material_name; + + /** 是否启用 */ + private String is_active; + + /** 是否删除 */ + private String is_delete; + + /** 创建id */ + private String create_id; + + /** 创建者 */ + private String create_name; + + /** 创建时间 */ + private String create_time; + + /** 修改id */ + private String update_id; + + /** 修改者 */ + private String update_name; + + /** 修改时间 */ + private String update_time; + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtOverdueforewarning.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtOverdueforewarning.java new file mode 100644 index 0000000..3beea41 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtOverdueforewarning.java @@ -0,0 +1,74 @@ +package org.nl.wms.warehouse_manage.service.dao; + + import com.baomidou.mybatisplus.annotation.IdType; + import com.baomidou.mybatisplus.annotation.TableId; + import com.baomidou.mybatisplus.annotation.TableName; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + import java.math.BigDecimal; + +/** +* @description / +* @author zhengxuming +* @date 2025-07-14 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_overdueforewarning") +public class StIvtOverdueforewarning implements Serializable { + +private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.NONE) + /** id */ + private String id; + + /** 配置id */ + private String config_id; + + /** 物料编码 */ + private String material_code; + + /** 物料名称 */ + private String material_name; + + /** 仓位编码 */ + private String stor_code; + + /** 入库时间 */ + private String insert_time; + + /** 超时天数 */ + private BigDecimal overdue_days; + + /** 安全天数 */ + private BigDecimal safe_days; + + /** 备注 */ + private String remark; + + /** 是否删除 */ + private String is_delete; + + /** 创建id */ + private String create_id; + + /** 创建者 */ + private String create_name; + + /** 创建时间 */ + private String create_time; + + /** 修改id */ + private String update_id; + + /** 修改者 */ + private String update_name; + + /** 修改时间 */ + private String update_time; + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtSafetyforewarning.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtSafetyforewarning.java new file mode 100644 index 0000000..3ca0bbe --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/StIvtSafetyforewarning.java @@ -0,0 +1,71 @@ +package org.nl.wms.warehouse_manage.service.dao; + + import com.baomidou.mybatisplus.annotation.IdType; + import com.baomidou.mybatisplus.annotation.TableId; + import com.baomidou.mybatisplus.annotation.TableName; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + import java.math.BigDecimal; + +/** +* @description / +* @author zhengxuming +* @date 2025-07-14 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_safetyforewarning") +public class StIvtSafetyforewarning implements Serializable { + +private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.NONE) + /** id */ + private String id; + + /** 配置id */ + private String config_id; + + /** 物料编码 */ + private String material_code; + + /** 物料名称 */ + private String material_name; + + /** 仓位编码 */ + private String stor_code; + + /** 当前数量 */ + private BigDecimal current_qty; + + /** 安全数量 */ + private BigDecimal safe_qty; + + /** 备注 */ + private String remark; + + /** 是否删除 */ + private String is_delete; + + /** 创建id */ + private String create_id; + + /** 创建者 */ + private String create_name; + + /** 创建时间 */ + private String create_time; + + /** 修改id */ + private String update_id; + + /** 修改者 */ + private String update_name; + + /** 修改时间 */ + private String update_time; + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningconfigMapper.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningconfigMapper.java new file mode 100644 index 0000000..ffdb435 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningconfigMapper.java @@ -0,0 +1,18 @@ +package org.nl.wms.warehouse_manage.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningconfig; +import org.nl.wms.warehouse_manage.service.dto.StIvtForewarningconfigDto; + +import java.util.Map; + +/** +* @author zhengxuming +* @date 2025-07-14 +**/ +public interface StIvtForewarningconfigMapper extends BaseMapper { + IPage queryAllByPage(Page page, @Param("params") Map params); +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningconfigMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningconfigMapper.xml new file mode 100644 index 0000000..9bfe5e3 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningconfigMapper.xml @@ -0,0 +1,33 @@ + + + + + diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningmaterialMapper.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningmaterialMapper.java new file mode 100644 index 0000000..0737ce7 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningmaterialMapper.java @@ -0,0 +1,19 @@ +package org.nl.wms.warehouse_manage.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningmaterial; +import org.nl.wms.warehouse_manage.service.dto.StIvtOverdueforewarningDto; + +import java.util.List; +import java.util.Map; + +/** +* @author zhengxuming +* @date 2025-07-15 +**/ +public interface StIvtForewarningmaterialMapper extends BaseMapper { + List queryAllByList(@Param("params") Map params); +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningmaterialMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningmaterialMapper.xml new file mode 100644 index 0000000..df5d4af --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtForewarningmaterialMapper.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtOverdueforewarningMapper.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtOverdueforewarningMapper.java new file mode 100644 index 0000000..bfe7f9e --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtOverdueforewarningMapper.java @@ -0,0 +1,18 @@ +package org.nl.wms.warehouse_manage.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.warehouse_manage.service.dao.StIvtOverdueforewarning; +import org.nl.wms.warehouse_manage.service.dto.StIvtOverdueforewarningDto; +import java.util.Map; + +/** +* @author zhengxuming +* @date 2025-07-14 +**/ +public interface StIvtOverdueforewarningMapper extends BaseMapper { + IPage queryAllByPage(Page page, @Param("params") Map params); + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtOverdueforewarningMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtOverdueforewarningMapper.xml new file mode 100644 index 0000000..dc7d7a7 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtOverdueforewarningMapper.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtSafetyforewarningMapper.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtSafetyforewarningMapper.java new file mode 100644 index 0000000..0f0c256 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtSafetyforewarningMapper.java @@ -0,0 +1,20 @@ +package org.nl.wms.warehouse_manage.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.basedata_manage.service.dao.BsrealStorattrDto; +import org.nl.wms.basedata_manage.service.dao.SectattrDto; +import org.nl.wms.warehouse_manage.service.dao.StIvtSafetyforewarning; +import org.nl.wms.warehouse_manage.service.dto.StIvtSafetyforewarningDto; + +import java.util.Map; + +/** +* @author zhengxuming +* @date 2025-07-14 +**/ +public interface StIvtSafetyforewarningMapper extends BaseMapper { + IPage queryAllByPage(Page page, @Param("params") Map params); +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtSafetyforewarningMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtSafetyforewarningMapper.xml new file mode 100644 index 0000000..4c4d94f --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtSafetyforewarningMapper.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningconfigDto.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningconfigDto.java new file mode 100644 index 0000000..cc32d93 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningconfigDto.java @@ -0,0 +1,72 @@ +package org.nl.wms.warehouse_manage.service.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningmaterial; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** +* @description / +* @author zhengxuming +* @date 2025-07-14 +**/ +@Data +public class StIvtForewarningconfigDto implements Serializable { + + /** id */ + private String id; + + /** 方案名称 */ + private String name; + + /** 仓库编码 */ + private String stor_code; + + /** 仓库名称 */ + private String stor_name; + + /** 安全库存数量 */ + private BigDecimal safe_qty; + + /** 安全库存天数 */ + private BigDecimal safe_days; + + /** 备注 */ + private String remark; + + /** 是否启用 */ + private Boolean is_active; + + /** 是否删除 */ + private Boolean is_delete; + + /** 创建id */ + private String create_id; + + /** 创建者 */ + private String create_name; + + /** 创建时间 */ + private String create_time; + + /** 修改id */ + private String update_id; + + /** 修改者 */ + private String update_name; + + /** 修改时间 */ + private String update_time; + + /** 表达式 */ + private String cron; + + /** 通知类型 */ + private String notify_type; + + List tableData; +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningconfigQuery.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningconfigQuery.java new file mode 100644 index 0000000..e37d82c --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningconfigQuery.java @@ -0,0 +1,12 @@ +package org.nl.wms.warehouse_manage.service.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningconfig; + +/** +* @author zhengxuming +* @date 2025-07-14 +**/ +public class StIvtForewarningconfigQuery extends BaseQuery { + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningmaterialDto.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningmaterialDto.java new file mode 100644 index 0000000..0173a54 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningmaterialDto.java @@ -0,0 +1,60 @@ +package org.nl.wms.warehouse_manage.service.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import java.io.Serializable; + +/** +* @description / +* @author zhengxuming +* @date 2025-07-15 +**/ +@Data +public class StIvtForewarningmaterialDto implements Serializable { + + /** 明细id */ + private String id; + + /** 预警id */ + private String config_id; + + /** 物料标识 */ + private String material_id; + + /** 物料编号 */ + private String material_code; + + /** 物料名称 */ + private String material_name; + + /** 物料规格 */ + private String material_spec; + + /** 物料型号 */ + private String material_model; + + /** 是否启用 */ + private String is_active; + + /** 是否删除 */ + private String is_delete; + + /** 创建id */ + private Long create_id; + + /** 创建者 */ + private String create_name; + + /** 创建时间 */ + private String create_time; + + /** 修改id */ + private Long update_id; + + /** 修改者 */ + private String update_name; + + /** 修改时间 */ + private String update_time; +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningmaterialQuery.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningmaterialQuery.java new file mode 100644 index 0000000..00e6903 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtForewarningmaterialQuery.java @@ -0,0 +1,12 @@ +package org.nl.wms.warehouse_manage.service.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningmaterial; + +/** +* @author zhengxuming +* @date 2025-07-15 +**/ +public class StIvtForewarningmaterialQuery extends BaseQuery { + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtOverdueforewarningDto.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtOverdueforewarningDto.java new file mode 100644 index 0000000..a529540 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtOverdueforewarningDto.java @@ -0,0 +1,68 @@ +package org.nl.wms.warehouse_manage.service.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import java.io.Serializable; +import java.math.BigDecimal; + +/** +* @description / +* @author zhengxuming +* @date 2025-07-14 +**/ +@Data +public class StIvtOverdueforewarningDto implements Serializable { + + /** id */ + private String id; + + /** 配置id */ + private String config_id; + + private String config_name; + + /** 物料编码 */ + private String material_code; + + /** 物料名称 */ + private String material_name; + + /** 仓位编码 */ + private String stor_code; + + private String stor_name; + + /** 入库时间 */ + private String insert_time; + + /** 超时天数 */ + private BigDecimal overdue_days; + + /** 安全天数 */ + private BigDecimal safe_days; + + /** 备注 */ + private String remark; + + /** 是否删除 */ + private String is_delete; + + /** 创建id */ + private String create_id; + + /** 创建者 */ + private String create_name; + + /** 创建时间 */ + private String create_time; + + /** 修改id */ + private String update_id; + + /** 修改者 */ + private String update_name; + + /** 修改时间 */ + private String update_time; +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtOverdueforewarningQuery.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtOverdueforewarningQuery.java new file mode 100644 index 0000000..18feacc --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtOverdueforewarningQuery.java @@ -0,0 +1,12 @@ +package org.nl.wms.warehouse_manage.service.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.warehouse_manage.service.dao.StIvtOverdueforewarning; + +/** +* @author zhengxuming +* @date 2025-07-14 +**/ +public class StIvtOverdueforewarningQuery extends BaseQuery { + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtSafetyforewarningDto.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtSafetyforewarningDto.java new file mode 100644 index 0000000..c456b3f --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtSafetyforewarningDto.java @@ -0,0 +1,65 @@ +package org.nl.wms.warehouse_manage.service.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import java.io.Serializable; +import java.math.BigDecimal; + +/** +* @description / +* @author zhengxuming +* @date 2025-07-14 +**/ +@Data +public class StIvtSafetyforewarningDto implements Serializable { + + /** id */ + private String id; + + /** 配置id */ + private String config_id; + + private String config_name; + + /** 物料编码 */ + private String material_code; + + /** 物料名称 */ + private String material_name; + + /** 仓位编码 */ + private String stor_code; + + private String stor_name; + + /** 当前数量 */ + private BigDecimal current_qty; + + /** 安全数量 */ + private BigDecimal safe_qty; + + /** 备注 */ + private String remark; + + /** 是否删除 */ + private String is_delete; + + /** 创建id */ + private String create_id; + + /** 创建者 */ + private String create_name; + + /** 创建时间 */ + private String create_time; + + /** 修改id */ + private String update_id; + + /** 修改者 */ + private String update_name; + + /** 修改时间 */ + private String update_time; +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtSafetyforewarningQuery.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtSafetyforewarningQuery.java new file mode 100644 index 0000000..5391544 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/dto/StIvtSafetyforewarningQuery.java @@ -0,0 +1,12 @@ +package org.nl.wms.warehouse_manage.service.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.warehouse_manage.service.dao.StIvtSafetyforewarning; + +/** +* @author zhengxuming +* @date 2025-07-14 +**/ +public class StIvtSafetyforewarningQuery extends BaseQuery { + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtForewarningconfigServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtForewarningconfigServiceImpl.java new file mode 100644 index 0000000..5e900d3 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtForewarningconfigServiceImpl.java @@ -0,0 +1,136 @@ +package org.nl.wms.warehouse_manage.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.nl.config.language.LangProcess; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.system_manage.service.dict.dao.Dict; +import org.nl.wms.warehouse_manage.service.IStIvtForewarningconfigService; +import org.nl.wms.warehouse_manage.service.IStIvtForewarningmaterialService; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningmaterial; +import org.nl.wms.warehouse_manage.service.dao.mapper.StIvtForewarningconfigMapper; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningconfig; +import org.nl.wms.warehouse_manage.service.dao.mapper.StIvtForewarningmaterialMapper; +import org.nl.wms.warehouse_manage.service.dto.StIvtForewarningconfigDto; +import org.nl.wms.warehouse_manage.service.dto.StIvtForewarningmaterialDto; +import org.nl.wms.warehouse_manage.service.dto.StIvtOverdueforewarningDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** +* @description 服务实现 +* @author zhengxuming +* @date 2025-07-14 +**/ +@Slf4j +@Service +public class StIvtForewarningconfigServiceImpl extends ServiceImpl implements IStIvtForewarningconfigService { + + @Autowired + private StIvtForewarningconfigMapper stIvtForewarningconfigMapper; + + @Autowired + private IStIvtForewarningmaterialService iStIvtForewarningmaterialService; + + @Autowired + private StIvtForewarningmaterialMapper stIvtForewarningmaterialMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page){ + return stIvtForewarningconfigMapper.queryAllByPage(new Page<>(page.getPage() +1 ,page.getSize()), whereJson); + + } + + @Override + public void create(StIvtForewarningconfigDto dto) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + dto.setId(IdUtil.getSnowflake(1, 1).nextIdStr()); + dto.setCreate_id(currentUserId); + dto.setCreate_name(nickName); + dto.setCreate_time(now); + dto.setUpdate_id(currentUserId); + dto.setUpdate_name(nickName); + dto.setUpdate_time(now); + StIvtForewarningconfig entity = BeanUtil.copyProperties(dto, StIvtForewarningconfig.class); + List stIvtForewarningmaterialList = dto.getTableData(); + + if( stIvtForewarningconfigMapper.insert(entity)>0) { + stIvtForewarningmaterialList.forEach(stIvtForewarningmaterial -> { + stIvtForewarningmaterial.setConfig_id(dto.getId()); + iStIvtForewarningmaterialService.create(stIvtForewarningmaterial); + }); + } + } + + @Override + public void update(StIvtForewarningconfigDto dto) { + StIvtForewarningconfig entity = stIvtForewarningconfigMapper.selectById(dto.getId()); + if (dto == null) throw new BadRequestException(LangProcess.msg("error_SystemAuthError")); + + entity = BeanUtil.copyProperties(dto, StIvtForewarningconfig.class); + + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + + List stIvtForewarningmaterialList = dto.getTableData(); + + if( stIvtForewarningconfigMapper.updateById(entity)>0) { + stIvtForewarningmaterialMapper.delete(new LambdaQueryWrapper() + .eq(StIvtForewarningmaterial::getConfig_id,dto.getId())); + stIvtForewarningmaterialList.forEach(stIvtForewarningmaterial -> { + stIvtForewarningmaterial.setConfig_id(dto.getId()); + iStIvtForewarningmaterialService.create(stIvtForewarningmaterial); + }); + } + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + if (stIvtForewarningconfigMapper.deleteBatchIds(ids) > 0) { + stIvtForewarningmaterialMapper.delete(new LambdaQueryWrapper() + .in(StIvtForewarningmaterial::getConfig_id, ids)); + } + } + + @Override + public List getWarningMaterial(Map whereJson) { + return stIvtForewarningmaterialMapper.queryAllByList(whereJson); + } + + @Override + public void changeActive(StIvtForewarningconfigDto dao) { + if(StringUtils.isBlank(dao.getId())){ + return; + } + Boolean isUsed = true; + if (dao.getIs_active()) { + isUsed = false; + } + StIvtForewarningconfig stIvtForewarningconfig = stIvtForewarningconfigMapper.selectById(dao.getId()); + stIvtForewarningconfig.setIs_active(isUsed); + stIvtForewarningconfig.setUpdate_time(DateUtil.now()); + stIvtForewarningconfig.setUpdate_name(SecurityUtils.getCurrentNickName()); + this.updateById(stIvtForewarningconfig); + } + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtForewarningmaterialServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtForewarningmaterialServiceImpl.java new file mode 100644 index 0000000..5ad1956 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtForewarningmaterialServiceImpl.java @@ -0,0 +1,81 @@ +package org.nl.wms.warehouse_manage.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.config.language.LangProcess; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.warehouse_manage.service.IStIvtForewarningmaterialService; +import org.nl.wms.warehouse_manage.service.dao.mapper.StIvtForewarningmaterialMapper; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningmaterial; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务实现 +* @author zhengxuming +* @date 2025-07-15 +**/ +@Slf4j +@Service +public class StIvtForewarningmaterialServiceImpl extends ServiceImpl implements IStIvtForewarningmaterialService { + + @Autowired + private StIvtForewarningmaterialMapper stIvtForewarningmaterialMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page){ + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + stIvtForewarningmaterialMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void create(StIvtForewarningmaterial entity) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + entity.setId(IdUtil.getSnowflake(1, 1).nextIdStr()); + entity.setCreate_id(currentUserId); + entity.setCreate_name(nickName); + entity.setCreate_time(now); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + stIvtForewarningmaterialMapper.insert(entity); + } + + @Override + public void update(StIvtForewarningmaterial entity) { + StIvtForewarningmaterial dto = stIvtForewarningmaterialMapper.selectById(entity.getId()); + if (dto == null) throw new BadRequestException(LangProcess.msg("error_SystemAuthError")); + + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + + stIvtForewarningmaterialMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + stIvtForewarningmaterialMapper.deleteBatchIds(ids); + } + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtOverdueforewarningServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtOverdueforewarningServiceImpl.java new file mode 100644 index 0000000..9ff4a63 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtOverdueforewarningServiceImpl.java @@ -0,0 +1,85 @@ +package org.nl.wms.warehouse_manage.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.config.language.LangProcess; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.warehouse_manage.service.IStIvtOverdueforewarningService; +import org.nl.wms.warehouse_manage.service.dao.mapper.StIvtOverdueforewarningMapper; +import org.nl.wms.warehouse_manage.service.dao.StIvtOverdueforewarning; +import org.nl.wms.warehouse_manage.service.dto.StIvtOverdueforewarningDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务实现 +* @author zhengxuming +* @date 2025-07-14 +**/ +@Slf4j +@Service +public class StIvtOverdueforewarningServiceImpl extends ServiceImpl implements IStIvtOverdueforewarningService { + + @Autowired + private StIvtOverdueforewarningMapper stIvtOverdueforewarningMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page){ + return stIvtOverdueforewarningMapper.queryAllByPage(new Page<>(page.getPage() +1 ,page.getSize()), whereJson); + } + + @Override + public void create(StIvtOverdueforewarning entity) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + entity.setId(IdUtil.getSnowflake(1, 1).nextIdStr()); + entity.setCreate_id(currentUserId); + entity.setCreate_name(nickName); + entity.setCreate_time(now); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + stIvtOverdueforewarningMapper.insert(entity); + } + + @Override + public void update(StIvtOverdueforewarning entity) { + StIvtOverdueforewarning dto = stIvtOverdueforewarningMapper.selectById(entity.getId()); + if (dto == null) throw new BadRequestException(LangProcess.msg("error_SystemAuthError")); + + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + + stIvtOverdueforewarningMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + stIvtOverdueforewarningMapper.deleteBatchIds(ids); + } + + @Override + public void deleteAllNoParam() { + // 真删除 + stIvtOverdueforewarningMapper.deleteByMap(null); + } + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtSafetyforewarningServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtSafetyforewarningServiceImpl.java new file mode 100644 index 0000000..43b1ca5 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/service/impl/StIvtSafetyforewarningServiceImpl.java @@ -0,0 +1,95 @@ +package org.nl.wms.warehouse_manage.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.config.language.LangProcess; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.basedata_manage.service.dao.BsrealStorattr; +import org.nl.wms.basedata_manage.service.dao.mapper.BsrealStorattrMapper; +import org.nl.wms.warehouse_manage.service.IStIvtSafetyforewarningService; +import org.nl.wms.warehouse_manage.service.dao.StIvtForewarningconfig; +import org.nl.wms.warehouse_manage.service.dao.mapper.StIvtForewarningconfigMapper; +import org.nl.wms.warehouse_manage.service.dao.mapper.StIvtSafetyforewarningMapper; +import org.nl.wms.warehouse_manage.service.dao.StIvtSafetyforewarning; +import org.nl.wms.warehouse_manage.service.dto.StIvtSafetyforewarningDto; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** +* @description 服务实现 +* @author zhengxuming +* @date 2025-07-14 +**/ +@Slf4j +@Service +public class StIvtSafetyforewarningServiceImpl extends ServiceImpl implements IStIvtSafetyforewarningService { + + @Autowired + private StIvtSafetyforewarningMapper stIvtSafetyforewarningMapper; + + @Autowired + private StIvtForewarningconfigMapper stIvtForewarningconfigMapper; + + @Autowired + private BsrealStorattrMapper bsrealStorattrMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + return stIvtSafetyforewarningMapper.queryAllByPage(new Page<>(page.getPage() +1 ,page.getSize()), whereJson); + } + + @Override + public void create(StIvtSafetyforewarning entity) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + entity.setId(IdUtil.getSnowflake(1, 1).nextIdStr()); + entity.setCreate_id(currentUserId); + entity.setCreate_name(nickName); + entity.setCreate_time(now); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + stIvtSafetyforewarningMapper.insert(entity); + } + + @Override + public void update(StIvtSafetyforewarning entity) { + StIvtSafetyforewarning dto = stIvtSafetyforewarningMapper.selectById(entity.getId()); + if (dto == null) throw new BadRequestException(LangProcess.msg("error_SystemAuthError")); + + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + + stIvtSafetyforewarningMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + stIvtSafetyforewarningMapper.deleteBatchIds(ids); + } + + @Override + public void deleteAllNoParam() { + // 真删除 + stIvtSafetyforewarningMapper.deleteByMap(null); + } + +} diff --git a/nladmin-ui/src/api/forewarning.js b/nladmin-ui/src/api/forewarning.js new file mode 100644 index 0000000..7ee8f81 --- /dev/null +++ b/nladmin-ui/src/api/forewarning.js @@ -0,0 +1,48 @@ +import request from '@/utils/request' + +// 安全库存配置 +export function getSafeStockConfigs() { + return request({ + url: '/api/safeStockConfig', + method: 'get' + }) +} + +export function saveSafeStockConfig(data) { + return request({ + url: '/api/safeStockConfig', + method: 'post', + data + }) +} + +export function updateSafeStockConfig(data) { + return request({ + url: '/api/safeStockConfig', + method: 'put', + data + }) +} + +export function deleteSafeStockConfig(id) { + return request({ + url: `/api/safeStockConfig/${id}`, + method: 'delete' + }) +} + +// 安全库存预警结果 +export function getSafetyStockWarningResults() { + return request({ + url: '/api/safetyStockWarningResult', + method: 'get' + }) +} + +// 库存超期预警结果 +export function getOverdueStockWarningResults() { + return request({ + url: '/api/overdueStockWarningResult', + method: 'get' + }) +} diff --git a/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/AddDialog.vue b/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/AddDialog.vue new file mode 100644 index 0000000..53e7a3e --- /dev/null +++ b/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/AddDialog.vue @@ -0,0 +1,305 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/AddMaterial.vue b/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/AddMaterial.vue new file mode 100644 index 0000000..758f76d --- /dev/null +++ b/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/AddMaterial.vue @@ -0,0 +1,136 @@ + + + + diff --git a/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/index.vue b/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/index.vue new file mode 100644 index 0000000..1b28d84 --- /dev/null +++ b/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/index.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/stIvtForewarningconfig.js b/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/stIvtForewarningconfig.js new file mode 100644 index 0000000..aa958b2 --- /dev/null +++ b/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/stIvtForewarningconfig.js @@ -0,0 +1,43 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/stIvtForewarningconfig', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/stIvtForewarningconfig/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/stIvtForewarningconfig', + method: 'put', + data + }) +} + +export function getWarningMaterial(params) { + return request({ + url: '/api/stIvtForewarningconfig/getWarningMaterial', + method: 'get', + params + }) +} + +export function changeActive(data) { + return request({ + url: 'api/stIvtForewarningconfig/changeActive', + method: 'put', + data + }) +} + +export default { add, edit, del, getWarningMaterial, changeActive } diff --git a/nladmin-ui/src/views/wms/forewarning_management/overdue_forewarning/index.vue b/nladmin-ui/src/views/wms/forewarning_management/overdue_forewarning/index.vue new file mode 100644 index 0000000..f9df256 --- /dev/null +++ b/nladmin-ui/src/views/wms/forewarning_management/overdue_forewarning/index.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/forewarning_management/overdue_forewarning/stIvtOverdueforewarning.js b/nladmin-ui/src/views/wms/forewarning_management/overdue_forewarning/stIvtOverdueforewarning.js new file mode 100644 index 0000000..b6b223d --- /dev/null +++ b/nladmin-ui/src/views/wms/forewarning_management/overdue_forewarning/stIvtOverdueforewarning.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/stIvtOverdueforewarning', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/stIvtOverdueforewarning/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/stIvtOverdueforewarning', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/nladmin-ui/src/views/wms/forewarning_management/safety_forewarning/index.vue b/nladmin-ui/src/views/wms/forewarning_management/safety_forewarning/index.vue new file mode 100644 index 0000000..bec19f8 --- /dev/null +++ b/nladmin-ui/src/views/wms/forewarning_management/safety_forewarning/index.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/forewarning_management/safety_forewarning/stIvtSafetyforewarning.js b/nladmin-ui/src/views/wms/forewarning_management/safety_forewarning/stIvtSafetyforewarning.js new file mode 100644 index 0000000..82e838c --- /dev/null +++ b/nladmin-ui/src/views/wms/forewarning_management/safety_forewarning/stIvtSafetyforewarning.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/stIvtSafetyforewarning', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/stIvtSafetyforewarning/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/stIvtSafetyforewarning', + method: 'put', + data + }) +} + +export default { add, edit, del }