From e58fefcab960e0658b44c7ee7774c02954079bce Mon Sep 17 00:00:00 2001 From: zhengxuming Date: Thu, 17 Jul 2025 14:54:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E9=A2=84=E8=AD=A6=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E8=B0=83=E6=95=B4=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E4=B8=8A=E4=B8=8B=E9=99=90=EF=BC=8C=E5=B7=B2?= =?UTF-8?q?=E8=AF=BB=E6=9C=AA=E8=AF=BB=E7=AD=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/util/ForewarningTask.java | 202 ++++++++++-------- .../StIvtOverdueforewarningController.java | 8 + .../StIvtSafetyforewarningController.java | 8 + .../IStIvtOverdueforewarningService.java | 6 + .../IStIvtSafetyforewarningService.java | 6 + .../service/dao/StIvtForewarningconfig.java | 9 +- .../service/dao/StIvtOverdueforewarning.java | 17 +- .../service/dao/StIvtSafetyforewarning.java | 24 ++- .../mapper/StIvtForewarningconfigMapper.xml | 8 +- .../mapper/StIvtOverdueforewarningMapper.xml | 6 +- .../mapper/StIvtSafetyforewarningMapper.xml | 6 +- .../dto/StIvtForewarningconfigDto.java | 9 +- .../dto/StIvtOverdueforewarningDto.java | 17 +- .../dto/StIvtSafetyforewarningDto.java | 24 ++- .../StIvtOverdueforewarningServiceImpl.java | 16 ++ .../StIvtSafetyforewarningServiceImpl.java | 16 ++ .../forewarning_config/AddDialog.vue | 83 +++---- .../forewarning_config/index.vue | 106 ++------- .../overdue_forewarning/index.vue | 71 +++++- .../stIvtOverdueforewarning.js | 10 +- .../safety_forewarning/index.vue | 79 ++++++- .../stIvtSafetyforewarning.js | 9 +- 22 files changed, 480 insertions(+), 260 deletions(-) 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 index 2699264..5c3dcfb 100644 --- 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 @@ -73,41 +73,40 @@ public class ForewarningTask { /** * 预警数据生成 *

- * 1、删除st_ivt_overdueforewarning、st_ivt_safetyforewarning表中的全部数据 - * 2、查询st_ivt_forewarningconfig,获取正在启用的、未删除的配置 - * 3、通过st_ivt_forewarningconfig表的id字段,匹配上st_ivt_forewarningmaterial表的config_id字段,获取对应的物料。赋值给 + * 1、查询st_ivt_forewarningconfig,获取正在启用的、未删除的配置 + * 2、通过st_ivt_forewarningconfig表的id字段,匹配上st_ivt_forewarningmaterial表的config_id字段,获取对应的物料。赋值给 * StIvtForewarningconfigDto的tableData - * 4、循环,判断每条数据下的对应物料的安全库存数量、入库时间(以组盘时间为准) + * 3、循环,判断每条数据下的对应物料的安全库存数量、入库时间(以组盘时间为准) * 其中库存表:md_pb_groupplate,实体类:GroupPlate,组盘时间create_time,物料编码id material_id - * 5、 分别生成st_ivt_safetyforewarning(安全库存数量超期) 和 st_ivt_overdueforewarning(安全库存天数超期) ,插入到对应数据库中 + * 4、 分别生成st_ivt_safetyforewarning(安全库存数量超期) 和 st_ivt_overdueforewarning(超期天数超期) ,插入到对应数据库中 */ private void runTask() { // 1. 删除st_ivt_overdueforewarning、st_ivt_safetyforewarning表中的全部数据 - stIvtOverdueforewarningService.deleteAllNoParam(); - stIvtSafetyforewarningService.deleteAllNoParam(); + // stIvtOverdueforewarningService.deleteAllNoParam(); + // stIvtSafetyforewarningService.deleteAllNoParam(); // 2. 查询st_ivt_forewarningconfig,获取正在启用的、未删除的配置 List configList = forewarningconfigService.list(new LambdaQueryWrapper() - .eq(StIvtForewarningconfig::getIs_active,true) - .eq(StIvtForewarningconfig::getIs_delete,false)); + .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 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)); + .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()); + Set materialIdList = materialList.stream().map(StIvtForewarningmaterial::getMaterial_id).collect(Collectors.toSet()); + Set storCodeList = configList.stream().map(StIvtForewarningconfig::getStor_code).collect(Collectors.toSet()); // 查询库存信息 - Map queryMap = new HashMap(); - queryMap.put("stor_code_list",storCodeList); - queryMap.put("material_id_list",materialIdList); + 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; @@ -116,88 +115,107 @@ public class ForewarningTask { 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()); + filter(a -> config.getId().equals(a.getConfig_id())).collect(Collectors.toList()); + + // 按照struct_code对mdPbStoragevehicleextDtos进行分组 + Map> structCodeGroupMap = mdPbStoragevehicleextDtos.stream() + .filter(a->config.getStor_code().equals(a.getStor_code())) + .collect(Collectors.groupingBy(MdPbStoragevehicleextDto::getStruct_code)); + // 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); + // 遍历structCodeGroupMap,获取每个struct_code下的mdPbStoragevehicleextDtos + for (Map.Entry> entry : structCodeGroupMap.entrySet()) { + List mdPbStoragevehicleextDtoStructs = entry.getValue(); - // 计算最早的组盘时间 - LocalDateTime earliestPlate = null; - try { - earliestPlate = mdPbStoragevehicleextDtos.stream() + // 计算安全库存数量 + BigDecimal totalQty = mdPbStoragevehicleextDtoStructs.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); + .map(MdPbStoragevehicleextDto::getQty) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + // 计算最早的组盘时间 + LocalDateTime earliestPlate = null; + try { + earliestPlate = mdPbStoragevehicleextDtoStructs.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_lower_limit() != null && totalQty.compareTo(config.getSafe_qty_lower_limit()) < 0) + || (config.getSafe_qty_upper_limit() != null && totalQty.compareTo(config.getSafe_qty_upper_limit()) > 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.setSect_code(mdPbStoragevehicleextDtoStructs.get(0).getSect_code()); + safety.setSect_name(mdPbStoragevehicleextDtoStructs.get(0).getSect_name()); + safety.setStruct_code(mdPbStoragevehicleextDtoStructs.get(0).getStruct_code()); + safety.setStruct_name(mdPbStoragevehicleextDtoStructs.get(0).getStruct_name()); + safety.setSafe_qty_lower_limit(config.getSafe_qty_lower_limit()); + safety.setSafe_qty_upper_limit(config.getSafe_qty_upper_limit()); + 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.setSect_code(mdPbStoragevehicleextDtoStructs.get(0).getSect_code()); + overdue.setSect_name(mdPbStoragevehicleextDtoStructs.get(0).getSect_name()); + overdue.setStruct_code(mdPbStoragevehicleextDtoStructs.get(0).getStruct_code()); + overdue.setStruct_name(mdPbStoragevehicleextDtoStructs.get(0).getStruct_name()); + overdue.setSafe_days(config.getSafe_days()); + overdue.setInsert_time(earliestPlateStr); + overdue.setCreate_name("JOB"); + overdue.setCreate_time(DateUtil.now()); + stIvtOverdueforewarningService.save(overdue); + } } - - // 安全库存天数超期 - - 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/warehouse_manage/controller/StIvtOverdueforewarningController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtOverdueforewarningController.java index f4d35b7..a554c02 100644 --- 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 @@ -56,4 +56,12 @@ public class StIvtOverdueforewarningController { stIvtOverdueforewarningService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } + + @Log("将预警信息设置为已读") + //@SaCheckPermission("stIvtOverdueforewarning:del") + @PostMapping("/read") + public ResponseEntity read(@RequestBody Set ids) { + stIvtOverdueforewarningService.read(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 index e7a01ff..b1efa49 100644 --- 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 @@ -56,4 +56,12 @@ public class StIvtSafetyforewarningController { stIvtSafetyforewarningService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } + + @Log("将预警信息设置为已读") + //@SaCheckPermission("stIvtOverdueforewarning:del") + @PostMapping("/read") + public ResponseEntity read(@RequestBody Set ids) { + stIvtSafetyforewarningService.read(ids); + return new ResponseEntity<>(HttpStatus.OK); + } } 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 index f591047..788d4c5 100644 --- 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 @@ -47,4 +47,10 @@ public interface IStIvtOverdueforewarningService extends IService ids); } 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 index 9f9b5ec..2327123 100644 --- 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 @@ -43,4 +43,10 @@ public interface IStIvtSafetyforewarningService extends IService ids); void deleteAllNoParam(); + + /** + * 已读全部 + * @param ids / + */ + void read(Set ids); } 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 index 199d2ad..4f3c4d8 100644 --- 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 @@ -32,10 +32,13 @@ private static final long serialVersionUID = 1L; /** 仓库编码 */ private String stor_code; - /** 安全库存数量 */ - private BigDecimal safe_qty; + /** 安全数量下限 */ + private BigDecimal safe_qty_lower_limit; - /** 安全库存天数 */ + /** 安全数量上限 */ + private BigDecimal safe_qty_upper_limit; + + /** 超期天数 */ private BigDecimal safe_days; /** 备注 */ 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 index 3beea41..09d8f24 100644 --- 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 @@ -35,9 +35,21 @@ private static final long serialVersionUID = 1L; /** 物料名称 */ private String material_name; - /** 仓位编码 */ + /** 仓库编码 */ private String stor_code; + /** 库区编码 */ + private String sect_code; + + /** 库区名称 */ + private String sect_name; + + /** 仓位编码 */ + private String struct_code; + + /** 仓位名称 */ + private String struct_name; + /** 入库时间 */ private String insert_time; @@ -53,6 +65,9 @@ private static final long serialVersionUID = 1L; /** 是否删除 */ private String is_delete; + /** 是否已读 */ + private Boolean is_read; + /** 创建id */ private String create_id; 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 index 3ca0bbe..38efebf 100644 --- 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 @@ -35,14 +35,29 @@ private static final long serialVersionUID = 1L; /** 物料名称 */ private String material_name; - /** 仓位编码 */ + /** 仓库编码 */ private String stor_code; + /** 库区编码 */ + private String sect_code; + + /** 库区名称 */ + private String sect_name; + + /** 仓位编码 */ + private String struct_code; + + /** 仓位名称 */ + private String struct_name; + /** 当前数量 */ private BigDecimal current_qty; - /** 安全数量 */ - private BigDecimal safe_qty; + /** 安全数量下限 */ + private BigDecimal safe_qty_lower_limit; + + /** 安全数量上限 */ + private BigDecimal safe_qty_upper_limit; /** 备注 */ private String remark; @@ -50,6 +65,9 @@ private static final long serialVersionUID = 1L; /** 是否删除 */ private String is_delete; + /** 是否已读 */ + private Boolean is_read; + /** 创建id */ private String create_id; 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 index 9bfe5e3..0edfa2d 100644 --- 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 @@ -15,9 +15,13 @@ AND config.stor_code = #{params.stor_code} - + AND - config.safe_qty = #{params.safe_qty} + config.safe_qty_lower_limit = #{params.safe_qty_lower_limit} + + + AND + config.safe_qty_upper_limit = #{params.safe_qty_upper_limit} AND 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 index dc7d7a7..faddeb6 100644 --- 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 @@ -20,7 +20,11 @@ AND forewarning.stor_code = #{params.stor_code} + + AND + forewarning.is_read = #{params.is_read} + - ORDER BY forewarning.update_time Desc + ORDER BY is_read asc,forewarning.create_time Desc 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 index 4c4d94f..de4fd79 100644 --- 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 @@ -20,7 +20,11 @@ AND forewarning.stor_code = #{params.stor_code} + + AND + forewarning.is_read = #{params.is_read} + - ORDER BY forewarning.update_time Desc + ORDER BY is_read asc,forewarning.create_time Desc 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 index cc32d93..175e276 100644 --- 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 @@ -29,10 +29,13 @@ public class StIvtForewarningconfigDto implements Serializable { /** 仓库名称 */ private String stor_name; - /** 安全库存数量 */ - private BigDecimal safe_qty; + /** 安全数量下限 */ + private BigDecimal safe_qty_lower_limit; - /** 安全库存天数 */ + /** 安全数量上限 */ + private BigDecimal safe_qty_upper_limit; + + /** 超期天数 */ private BigDecimal safe_days; /** 备注 */ 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 index a529540..9f4b00b 100644 --- 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 @@ -28,11 +28,23 @@ public class StIvtOverdueforewarningDto implements Serializable { /** 物料名称 */ private String material_name; - /** 仓位编码 */ + /** 仓库编码 */ private String stor_code; private String stor_name; + /** 库区编码 */ + private String sect_code; + + /** 库区名称 */ + private String sect_name; + + /** 仓位编码 */ + private String struct_code; + + /** 仓位名称 */ + private String struct_name; + /** 入库时间 */ private String insert_time; @@ -48,6 +60,9 @@ public class StIvtOverdueforewarningDto implements Serializable { /** 是否删除 */ private String is_delete; + /** 是否已读 */ + private Boolean is_read; + /** 创建id */ private String create_id; 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 index c456b3f..1b1f3f8 100644 --- 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 @@ -28,16 +28,31 @@ public class StIvtSafetyforewarningDto implements Serializable { /** 物料名称 */ private String material_name; - /** 仓位编码 */ + /** 仓库编码 */ private String stor_code; private String stor_name; + /** 库区编码 */ + private String sect_code; + + /** 库区名称 */ + private String sect_name; + + /** 仓位编码 */ + private String struct_code; + + /** 仓位名称 */ + private String struct_name; + /** 当前数量 */ private BigDecimal current_qty; - /** 安全数量 */ - private BigDecimal safe_qty; + /** 安全数量下限 */ + private BigDecimal safe_qty_lower_limit; + + /** 安全数量上限 */ + private BigDecimal safe_qty_upper_limit; /** 备注 */ private String remark; @@ -45,6 +60,9 @@ public class StIvtSafetyforewarningDto implements Serializable { /** 是否删除 */ private String is_delete; + /** 是否已读 */ + private Boolean is_read; + /** 创建id */ private String create_id; 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 index 9ff4a63..398d6ce 100644 --- 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 @@ -3,6 +3,7 @@ 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.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -12,6 +13,8 @@ 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.enums.IOSConstant; +import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInv; 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; @@ -82,4 +85,17 @@ public class StIvtOverdueforewarningServiceImpl extends ServiceImpl ids) { + this.update( + new UpdateWrapper().lambda() + .in(StIvtOverdueforewarning::getId, ids) + .eq(StIvtOverdueforewarning::getIs_read,false) + .set(StIvtOverdueforewarning::getIs_read, true) + .set(StIvtOverdueforewarning::getUpdate_id, SecurityUtils.getCurrentUserId()) + .set(StIvtOverdueforewarning::getUpdate_name, SecurityUtils.getCurrentNickName()) + .set(StIvtOverdueforewarning::getUpdate_time, DateUtil.now()) + ); + } + } 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 index 43b1ca5..011c9dc 100644 --- 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 @@ -3,6 +3,7 @@ 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.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -16,6 +17,8 @@ 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.StIvtOverdueforewarning; +import org.nl.wms.warehouse_manage.service.dao.StIvtSafetyforewarning; 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; @@ -92,4 +95,17 @@ public class StIvtSafetyforewarningServiceImpl extends ServiceImpl ids) { + this.update( + new UpdateWrapper().lambda() + .in(StIvtSafetyforewarning::getId, ids) + .eq(StIvtSafetyforewarning::getIs_read,false) + .set(StIvtSafetyforewarning::getIs_read, true) + .set(StIvtSafetyforewarning::getUpdate_id, SecurityUtils.getCurrentUserId()) + .set(StIvtSafetyforewarning::getUpdate_name, SecurityUtils.getCurrentNickName()) + .set(StIvtSafetyforewarning::getUpdate_time, DateUtil.now()) + ); + } + } 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 index 53e7a3e..63c2744 100644 --- a/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/AddDialog.vue +++ b/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/AddDialog.vue @@ -45,22 +45,22 @@ - + - - + + - + @@ -73,8 +73,10 @@ + + - + { - this.form.tableData = res - // 将明细变成不可编辑 - for (let i = 0; i < this.form.tableData.length; i++) { - const row = this.form.tableData[i] - this.form.tableData.splice(i, 1, row) - } - }) + [CRUD.HOOK.afterSubmit]() { }, - [CRUD.HOOK.beforeSubmit]() { // 提交前校验 if (this.form.tableData.length === 0) { this.crud.notify('请至少选择一条明细', CRUD.NOTIFICATION_TYPE.INFO) return false } - }, - billTypeChange(val) { - if (val === '000101') { - this.bill_btn = false - this.mater_btn = true - } else if (val === '000102') { - this.bill_btn = true - this.mater_btn = false - } else { - this.bill_btn = true - this.mater_btn = true + + if (this.form.safe_qty_upper_limit !== '' && this.form.safe_qty_lower_limit !== '' && + this.form.safe_qty_upper_limit < this.form.safe_qty_lower_limit) { + this.crud.notify('下限不能大于上限', CRUD.NOTIFICATION_TYPE.INFO) + return false } - this.form.tableData = [] - this.form.total_qty = 0 - this.form.detail_count = 0 }, fun(val) { return Number(val).toFixed(3) 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 index 1b28d84..9205b5a 100644 --- a/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/index.vue +++ b/nladmin-ui/src/views/wms/forewarning_management/forewarning_config/index.vue @@ -21,9 +21,10 @@ :value="item.stor_code" /> - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -