From 66417d809507ae07310fd3b6c3ab6432a05cb02f Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 11 Sep 2024 14:51:07 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E6=96=B0=E5=A2=9E=E4=BA=8C=E6=9C=9F?= =?UTF-8?q?=E8=BD=BD=E5=85=B7=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../st/rest/StructattrController.java | 6 + .../st/service/StructattrService.java | 9 ++ .../service/impl/StructattrServiceImpl.java | 20 +++ .../wms/basedata/st/wql/QST_STRUCT_ATTR.wql | 32 +++++ .../org/nl/wms/sch/manage/AutoCleanIos.java | 97 +++++++++++++ .../src/views/wms/stat/twoivtquery/index.vue | 9 +- .../views/wms/stat/twoivtquery/vehicleivt.vue | 131 ++++++++++++++++++ 7 files changed, 300 insertions(+), 4 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCleanIos.java create mode 100644 lms/nladmin-ui/src/views/wms/stat/twoivtquery/vehicleivt.vue diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructattrController.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructattrController.java index 43d631b81..5503a4370 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructattrController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructattrController.java @@ -130,4 +130,10 @@ public class StructattrController { structattrService.tunConfirm(json); return new ResponseEntity<>(HttpStatus.OK); } + + @GetMapping("/twoVehicleIvt") + @Log("查询二期空托盘库存") + public ResponseEntity twoVehicleIvt(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(structattrService.twoVehicleIvt(whereJson, page), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructattrService.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructattrService.java index 83cf146d9..0bc3fc48a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructattrService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructattrService.java @@ -139,4 +139,13 @@ public interface StructattrService { * @return 、 */ JSONObject unLockPointTwo(JSONObject whereJson); + + /** + * 查询二期空托盘库存数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map twoVehicleIvt(Map whereJson, Pageable page); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java index 506f5e8cc..51cbe4bfd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.wms.basedata.st.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -854,4 +855,23 @@ public class StructattrServiceImpl implements StructattrService { return null; } + @Override + public Map twoVehicleIvt(Map whereJson, Pageable page) { + String storagevehicle_code = MapUtil.getStr(whereJson, "storagevehicle_code"); + String struct_code = MapUtil.getStr(whereJson, "struct_code"); + HashMap map = new HashMap<>(); + + if (ObjectUtil.isNotEmpty(storagevehicle_code)) { + map.put("storagevehicle_code", "%"+storagevehicle_code+"%"); + } + if (ObjectUtil.isNotEmpty(struct_code)) { + map.put("struct_code", "%"+struct_code+"%"); + } + map.put("storagevehicle_type", MapUtil.getStr(whereJson,"storagevehicle_type")); + map.put("flag", "3"); + + JSONObject jo = WQL.getWO("QST_STRUCT_ATTR").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "struct_code asc"); + return jo; + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCT_ATTR.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCT_ATTR.wql index 28a9eea90..ed3506ac8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCT_ATTR.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCT_ATTR.wql @@ -19,6 +19,8 @@ 输入.sect_id TYPEAS s_string 输入.lock_type TYPEAS s_string 输入.storagevehicle_type TYPEAS s_string + 输入.storagevehicle_code TYPEAS s_string + 输入.struct_code TYPEAS s_string 输入.is_used TYPEAS s_string 输入.is_delete TYPEAS s_string 输入.have_vehicle TYPEAS s_string @@ -104,5 +106,35 @@ ENDQUERY ENDIF + IF 输入.flag = "3" + PAGEQUERY + SELECT + * + FROM + st_ivt_structattr + WHERE + is_delete = '0' + AND is_used = '1' + AND lock_type = '1' + AND IFNULL(storagevehicle_code, '') <> '' + AND is_emptyvehicle = '1' + AND sect_code = 'BZC01' + + OPTION 输入.storagevehicle_code <> "" + storagevehicle_code LIKE 输入.storagevehicle_code + ENDOPTION + + OPTION 输入.struct_code <> "" + struct_code LIKE 输入.struct_code + ENDOPTION + + OPTION 输入.storagevehicle_type <> "" + storagevehicle_type = 输入.storagevehicle_type + ENDOPTION + + ENDSELECT + ENDPAGEQUERY + ENDIF + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCleanIos.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCleanIos.java new file mode 100644 index 000000000..1da47472b --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCleanIos.java @@ -0,0 +1,97 @@ +package org.nl.wms.sch.manage; + + +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.wql.core.bean.WQLObject; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoCleanIos { + + private final RedissonClient redissonClient; + + @SneakyThrows + public void run() { + RLock lock = redissonClient.getLock(this.getClass().getName()); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock){ + /* + * 自动清除仓储相关单据 + */ + // 出入库单据清除 + cleanIosInAndOut(); + // 移库单据清除 + cleanIosMove(); + } + }finally { + if (tryLock) { + lock.unlock(); + } + } + } + + /** + * 清除出入库单据 + * 超过365天的删除 + */ + private void cleanIosInAndOut() { + // 出入库单主表 + WQLObject mst = WQLObject.getWQLObject("st_ivt_iostorinv"); + // 出入库单明细表 + WQLObject dtl = WQLObject.getWQLObject("st_ivt_iostorinvdtl"); + // 出入库单分配明细表 + WQLObject dis = WQLObject.getWQLObject("st_ivt_iostorinvdis"); + + // 需删除的主表集合 + List mstArr = mst.query("(TO_DAYS(NOW()) - TO_DAYS(input_time))>365") + .getResultJSONArray(0).toJavaList(JSONObject.class); + + String iostorinv_id_in = mstArr.stream() + .map(row -> row.getString("iostorinv_id")) + .collect(Collectors.joining("','")); + // 删除主表 + mst.delete("iostorinv_id IN ('"+iostorinv_id_in+"')"); + // 删除明细表 + dtl.delete("iostorinv_id IN ('"+iostorinv_id_in+"')"); + // 删除分配明细表 + dis.delete("iostorinv_id IN ('"+iostorinv_id_in+"')"); + log.info("仓储【出入库单据】相关表清除成功!删除单据为:"+iostorinv_id_in); + } + + /** + * 清除移库单单据 + * 超过365天的删除 + */ + private void cleanIosMove() { + // 移库单主表 + WQLObject mst = WQLObject.getWQLObject("st_ivt_moveinv"); + // 移库单明细表 + WQLObject dtl = WQLObject.getWQLObject("st_ivt_moveinvdtl"); + + // 需删除的主表集合 + List mstArr = mst.query("(TO_DAYS(NOW()) - TO_DAYS(input_time))>365") + .getResultJSONArray(0).toJavaList(JSONObject.class); + + String moveinv_id_in = mstArr.stream() + .map(row -> row.getString("moveinv_id")) + .collect(Collectors.joining("','")); + + // 删除主表 + mst.delete("moveinv_id IN ('"+moveinv_id_in+"')"); + // 删除明细表 + dtl.delete("moveinv_id IN ('"+moveinv_id_in+"')"); + log.info("仓储【移库单据】相关表清除成功!删除单据为:"+moveinv_id_in); + } +} diff --git a/lms/nladmin-ui/src/views/wms/stat/twoivtquery/index.vue b/lms/nladmin-ui/src/views/wms/stat/twoivtquery/index.vue index 4861129cc..625d12471 100644 --- a/lms/nladmin-ui/src/views/wms/stat/twoivtquery/index.vue +++ b/lms/nladmin-ui/src/views/wms/stat/twoivtquery/index.vue @@ -5,19 +5,20 @@ 木箱库存 - + + diff --git a/lms/nladmin-ui/src/views/wms/stat/twoivtquery/vehicleivt.vue b/lms/nladmin-ui/src/views/wms/stat/twoivtquery/vehicleivt.vue new file mode 100644 index 000000000..f22c01576 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/stat/twoivtquery/vehicleivt.vue @@ -0,0 +1,131 @@ + + + + +