From 5ea5d085cc7c9a1aea3d4ee7e3a9c93ea05a2eb1 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 17 七月 2025 16:35:16 +0800 Subject: [PATCH] 盘点功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java | 121 +++++++++------------------------------- 1 files changed, 27 insertions(+), 94 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java index 281a3ac..8b9ee81 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java @@ -4,15 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.exception.CoolException; -import com.vincent.rsf.server.api.entity.dto.ReceiptDetlsDto; import com.vincent.rsf.server.common.config.SysStockProperties; -import com.vincent.rsf.server.common.utils.CommonUtil; import com.vincent.rsf.server.common.utils.DateUtils; -import com.vincent.rsf.server.manager.controller.params.WarehouseAreaParam; import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.enums.AsnExceStatus; +import com.vincent.rsf.server.manager.enums.OrderType; import com.vincent.rsf.server.manager.enums.POExceStatus; -import com.vincent.rsf.server.manager.enums.PakinIOStatus; import com.vincent.rsf.server.manager.enums.WarehouseAreasType; import com.vincent.rsf.server.manager.service.*; import com.vincent.rsf.server.manager.service.impl.WarehouseAreasItemServiceImpl; @@ -33,7 +30,6 @@ import java.util.Date; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; /** * @author Ryan @@ -57,14 +53,6 @@ private AsnOrderItemService asnOrderItemService; @Resource private SysStockProperties flowProperties; - @Autowired - private WaitPakinService waitPakinService; - @Autowired - private WaitPakinItemService waitPakinItemService; - @Autowired - private WaitPakinLogService waitPakinLogService; - @Autowired - private WaitPakinItemLogService waitPakinItemLogService; @Autowired private ConfigService configService; @Autowired @@ -91,15 +79,18 @@ if (!Boolean.parseBoolean(config.getVal())) { return; } - List<AsnOrder> orders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)); + //鑷姩鏀惰揣鍗� + List<WkOrder> orders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>() + .eq(WkOrder::getType, OrderType.ORDER_IN.type) + .eq(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)); if (!orders.isEmpty()) { - for (AsnOrder order : orders) { - List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, order.getId())); + for (WkOrder order : orders) { + List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId())); if (orderItems.isEmpty()) { return; } List<WarehouseAreasItem> items = new ArrayList<>(); - for (AsnOrderItem item : orderItems) { + for (WkOrderItem item : orderItems) { WarehouseAreas one = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>() .eq(WarehouseAreas::getType, WarehouseAreasType.WAREHOUSE_AREAS_TYPE_RECEIPT.type), false); Long areaId = Objects.isNull(one) ? null : one.getId(); @@ -120,7 +111,7 @@ //鏇存柊鏀惰揣鍖哄簱瀛� extracted(one, item, order, matnr); - if (!asnOrderItemService.update(new LambdaUpdateWrapper<AsnOrderItem>().set(AsnOrderItem::getQty, item.getAnfme()).eq(AsnOrderItem::getId, item.getId()))) { + if (!asnOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>().set(WkOrderItem::getQty, item.getAnfme()).eq(WkOrderItem::getId, item.getId()))) { throw new CoolException("鏀惰揣鍗曟槑缁嗗畬鎴愭暟閲忎慨鏀瑰け璐ワ紒锛�"); } } @@ -128,10 +119,10 @@ // throw new CoolException("鏀惰揣鍗曚繚瀛樿嚦鏀惰揣鍖烘墽琛屽け璐ワ紒锛�"); // } - if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>() - .set(AsnOrder::getQty, order.getAnfme()) - .set(AsnOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.val) - .eq(AsnOrder::getId, order.getId()))) { + if (!asnOrderService.update(new LambdaUpdateWrapper<WkOrder>() + .set(WkOrder::getQty, order.getAnfme()) + .set(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.val) + .eq(WkOrder::getId, order.getId()))) { throw new CoolException("鏀惰揣鍗曠姸鎬佷慨鏀瑰け璐ワ紒锛�"); } } @@ -145,7 +136,7 @@ * @description: 鏀惰揣鍖哄簱瀛樻洿鏂� * @version 1.0 */ - private void extracted(WarehouseAreas areasItem, AsnOrderItem orderItem, AsnOrder asnOrder, Matnr matnr) { + private void extracted(WarehouseAreas areasItem, WkOrderItem orderItem, WkOrder wkOrder, Matnr matnr) { Companys companys = new Companys(); if (StringUtils.isNoneBlank(orderItem.getSplrCode())) { companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, orderItem.getSplrCode())); @@ -156,8 +147,8 @@ .setAreaName(areasItem.getName()) .setAreaId(areasItem.getId()) .setAsnItemId(orderItem.getId()) - .setAsnCode(asnOrder.getCode()) - .setAsnId(asnOrder.getId()) + .setAsnCode(wkOrder.getCode()) + .setAsnId(wkOrder.getId()) .setProdTime(orderItem.getProdTime()) .setPlatItemId(orderItem.getPlatItemId()) .setPlatOrderCode(orderItem.getPlatOrderCode()) @@ -176,11 +167,11 @@ .setWeight(matnr.getWeight()) .setFieldsIndex(orderItem.getFieldsIndex()) .setShipperId(matnr.getShipperId()); - + LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new LambdaQueryWrapper<WarehouseAreasItem>() .eq(WarehouseAreasItem::getMatnrCode, orderItem.getMatnrCode()) .eq(!Cools.isEmpty(orderItem.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, orderItem.getFieldsIndex()) - .eq(WarehouseAreasItem::getAsnCode, orderItem.getAsnCode()) + .eq(WarehouseAreasItem::getAsnCode, orderItem.getOrderCode()) .eq(StringUtils.isNotBlank(orderItem.getSplrBatch()), WarehouseAreasItem::getSplrBatch, orderItem.getSplrBatch()); if (Objects.isNull(orderItem.getIsptResult())) { queryWrapper.isNull(WarehouseAreasItem::getIsptResult); @@ -232,7 +223,7 @@ if (items.isEmpty()) { throw new CoolException("瀛愬垪琛ㄦ暟鎹负绌猴紝璇锋煡璇O鍗曟槸鍚︽纭綍鍏ワ紒锛�"); } - AsnOrder order = new AsnOrder(); + WkOrder order = new WkOrder(); //鏍规嵁缂栫爜瑙勫垯鐢熸垚ASN鍗曞彿 String code = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, purchase); order.setAnfme(purchase.getAnfme()) @@ -244,9 +235,9 @@ if (!asnOrderService.save(order)) { throw new CoolException("ASN鍗曟嵁淇濆瓨澶辫触锛侊紒"); } - List<AsnOrderItem> orderItems = new ArrayList<>(); + List<WkOrderItem> orderItems = new ArrayList<>(); items.forEach(item -> { - AsnOrderItem orderItem = new AsnOrderItem(); + WkOrderItem orderItem = new WkOrderItem(); Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, item.getMatnrCode())); if (Objects.isNull(matnr)) { throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪!!"); @@ -257,10 +248,10 @@ } // String barcode = code + matnr.getCode(); orderItem.setAnfme(item.getAnfme()) - .setAsnId(order.getId()) + .setOrderId(order.getId()) .setQty(item.getQty()) .setSplrName(item.getSplrName()) - .setAsnCode(code) + .setOrderCode(code) .setSplrCode(item.getSplrCode()) .setPoDetlId(item.getId()) .setPlatItemId(item.getPlatItemId()) @@ -297,13 +288,13 @@ @Scheduled(cron = "0 0/05 * * * ? ") @Transactional(rollbackFor = Exception.class) public void generateMatnrLabel() { - List<AsnOrderItem> list = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>() - .isNull(AsnOrderItem::getTrackCode) - .select(AsnOrderItem::getId)); + List<WkOrderItem> list = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>() + .isNull(WkOrderItem::getTrackCode) + .select(WkOrderItem::getId)); if (Objects.isNull(list) || list.isEmpty()) { return; } - List<AsnOrderItem> items = new ArrayList<>(); + List<WkOrderItem> items = new ArrayList<>(); list.forEach(item -> { String trackCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, item); if (StringUtils.isBlank(trackCode)) { @@ -318,62 +309,4 @@ throw new CoolException("鐢熸垚缂栫爜澶辫触锛侊紒"); } } - - /** - * @param - * @return - * @author Ryan - * @description 缁勬嫋鍘嗗彶妗� - * @time 2025/3/29 12:36 - */ - @Scheduled(cron = "0/25 * * * * ?") - @Transactional(rollbackFor = Exception.class) - public void pakinLog() { - List<WaitPakin> pakinIds = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>() - .eq(WaitPakin::getIoStatus, Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val)) - .select(WaitPakin::getId)); - if (pakinIds.isEmpty()) { - return; - } - List<Long> list = pakinIds.stream().map(WaitPakin::getId).collect(Collectors.toList()); - List<WaitPakin> pakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().in(WaitPakin::getId, list)); - if (pakins.isEmpty()) { - throw new CoolException("缁勬嫋鍗曚负绌猴紒锛�"); - } - pakins.forEach(pakin -> { - WaitPakinLog log = new WaitPakinLog(); - BeanUtils.copyProperties(pakin, log); - log.setPakinId(pakin.getId()).setIoStatus(PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val); - - if (!waitPakinLogService.save(log)) { - throw new CoolException("缁勬墭鏃ュ織淇濆瓨澶辫触锛侊紒"); - } - List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, pakin.getId())); - if (pakinItems.isEmpty()) { - throw new CoolException("缁勬嫋鏄庣粏涓虹┖锛侊紒"); - } - List<WaitPakinItemLog> itemLogs = new ArrayList<>(); - - pakinItems.forEach(item -> { - WaitPakinItemLog itemLog = new WaitPakinItemLog(); - BeanUtils.copyProperties(item, itemLog); - itemLog.setPakinItemId(item.getId()) - .setLogId(log.getId()) - .setPakinId(item.getPakinId()); - itemLogs.add(itemLog); - }); - - if (!waitPakinItemLogService.saveBatch(itemLogs)) { - throw new CoolException("鍘嗗彶鏄庣粏妗d繚瀛樺け璐ワ紒锛�"); - } - }); - - if (!waitPakinService.removeByIds(list)) { - throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�"); - } - if (!waitPakinItemService.remove(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, list))) { - throw new CoolException("鍘熷崟鎹槑缁嗗垹闄ゅけ璐ワ紒锛�"); - } - } - } -- Gitblit v1.9.1