From 5d37d96ee0d709d4e6f9333a4939086ce2e01b41 Mon Sep 17 00:00:00 2001 From: yewj Date: Tue, 27 Aug 2024 09:41:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=8D=E4=B8=8A=E8=B4=A7=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E5=88=B0=E5=BA=93=E5=AD=98=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/inout/IoCheckInoutService.java | 57 ++------------ .../service/inout/IoSplitFifoInvService.java | 74 +++++++++++++++++++ 2 files changed, 80 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index c97300ebc..d8ebfd7a9 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -1237,60 +1237,11 @@ public class IoCheckInoutService { //若未拆零预出库单据则进入到拆零队列 if (orderEntity.getAction().equals(ConstantType.SPLIT_OUT)) { List codeList = codeService.findByOrderId(orderEntity.getBillNo()); - List splitCodeEntities = new ArrayList<>(); - if (CollUtil.isNotEmpty(codeList)) { - for (IoCodeEntity codeEntity : codeList) { - IoSplitFifoCodeEntity ioSplitFifoCodeEntity = null; - if (StrUtil.isEmpty(codeEntity.getSerialNo())) { - ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), orderEntity.getWorkPlaceCode()); - } - if (ioSplitFifoCodeEntity != null) { - ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) + IntUtil.value(codeEntity.getCount())); - ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getTotalCount() + codeEntity.getReCount()); - ioSplitFifoCodeEntity.setUpdateTime(new Date()); - splitFifoCodeService.updateById(ioSplitFifoCodeEntity); - } else { - IoSplitFifoCodeEntity splitCodeEntity = new IoSplitFifoCodeEntity(); - BeanUtils.copyProperties(codeEntity, splitCodeEntity); - splitCodeEntity.setInBactchNo(codeEntity.getInBatchNo()); - splitCodeEntity.setScanCount(codeEntity.getCount()); - splitCodeEntity.setTotalCount(IntUtil.value(splitCodeEntity.getTotalCount()) + codeEntity.getReCount()); - splitCodeEntity.setSupId(Long.parseLong(codeEntity.getSupId())); - splitCodeEntity.setWorkPlaceCode(orderEntity.getWorkPlaceCode()); - splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit()); - splitCodeEntity.setId(null); - splitCodeEntities.add(splitCodeEntity); - } - } - } - splitFifoCodeService.saveBatch(splitCodeEntities); - - ThreadUtil.execAsync(() -> { - splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode()); - }); + fifoInvService.insertInv(codeList, orderEntity.getWorkPlaceCode()); } else if (orderEntity.getAction().equals(ConstantType.SPLIT_RETURN)) { //拆零预出库退回 List codeList = codeService.findByOrderId(orderEntity.getBillNo()); - List splitCodeEntities = new ArrayList<>(); - if (CollUtil.isNotEmpty(codeList)) { - for (IoCodeEntity codeEntity : codeList) { - IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), orderEntity.getWorkPlaceCode()); - if (StrUtil.isEmpty(codeEntity.getSerialNo())) { - if (ioSplitFifoCodeEntity != null) { - ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) - IntUtil.value(codeEntity.getCount())); - ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getTotalCount() + codeEntity.getReCount()); - ioSplitFifoCodeEntity.setUpdateTime(new Date()); - splitFifoCodeService.updateById(ioSplitFifoCodeEntity); - } - } else { - splitCodeEntities.add(ioSplitFifoCodeEntity); - } - } - } - splitFifoCodeService.removeBatchByIds(splitCodeEntities); - ThreadUtil.execAsync(() -> { - splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode()); - }); + fifoInvService.removeInv(codeList, orderEntity.getWorkPlaceCode()); } } } else { @@ -1299,6 +1250,10 @@ public class IoCheckInoutService { } } + + @Resource + IoSplitFifoInvService fifoInvService; + @Resource InvWarehouseService invWarehouseService; diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java index d15cccf61..94f8d69e7 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java @@ -1,8 +1,19 @@ package com.glxp.api.service.inout; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.thread.ThreadUtil; +import cn.hutool.core.util.StrUtil; +import com.glxp.api.entity.inout.IoCodeEntity; +import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; +import com.glxp.api.util.IntUtil; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; + import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; import java.util.List; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.entity.inout.IoSplitFifoInv; import com.glxp.api.dao.inout.IoSplitFifoInvMapper; @@ -10,5 +21,68 @@ import com.glxp.api.dao.inout.IoSplitFifoInvMapper; @Service public class IoSplitFifoInvService extends ServiceImpl { + @Resource + IoSplitFifoCodeService splitFifoCodeService; + + public void insertInv(List codeList, Long workPlaceCode) { + + List splitCodeEntities = new ArrayList<>(); + if (CollUtil.isNotEmpty(codeList)) { + for (IoCodeEntity codeEntity : codeList) { + IoSplitFifoCodeEntity ioSplitFifoCodeEntity = null; + if (StrUtil.isEmpty(codeEntity.getSerialNo())) { + ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), workPlaceCode); + } + if (ioSplitFifoCodeEntity != null) { + ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) + IntUtil.value(codeEntity.getCount())); + ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getTotalCount() + codeEntity.getReCount()); + ioSplitFifoCodeEntity.setUpdateTime(new Date()); + splitFifoCodeService.updateById(ioSplitFifoCodeEntity); + } else { + IoSplitFifoCodeEntity splitCodeEntity = new IoSplitFifoCodeEntity(); + BeanUtils.copyProperties(codeEntity, splitCodeEntity); + splitCodeEntity.setInBactchNo(codeEntity.getInBatchNo()); + splitCodeEntity.setScanCount(codeEntity.getCount()); + splitCodeEntity.setTotalCount(IntUtil.value(splitCodeEntity.getTotalCount()) + codeEntity.getReCount()); + splitCodeEntity.setSupId(Long.parseLong(codeEntity.getSupId())); + splitCodeEntity.setWorkPlaceCode(workPlaceCode); + splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit()); + splitCodeEntity.setId(null); + splitCodeEntities.add(splitCodeEntity); + } + } + } + splitFifoCodeService.saveBatch(splitCodeEntities); + + ThreadUtil.execAsync(() -> { +// splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode()); + }); + } + + + public void removeInv(List codeList, Long workPlaceCode) { + List splitCodeEntities = new ArrayList<>(); + if (CollUtil.isNotEmpty(codeList)) { + for (IoCodeEntity codeEntity : codeList) { + IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), workPlaceCode); + if (StrUtil.isEmpty(codeEntity.getSerialNo())) { + if (ioSplitFifoCodeEntity != null) { + ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) - IntUtil.value(codeEntity.getCount())); + ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getTotalCount() + codeEntity.getReCount()); + ioSplitFifoCodeEntity.setUpdateTime(new Date()); + splitFifoCodeService.updateById(ioSplitFifoCodeEntity); + } + } else { + splitCodeEntities.add(ioSplitFifoCodeEntity); + } + } + } + splitFifoCodeService.removeBatchByIds(splitCodeEntities); + ThreadUtil.execAsync(() -> { +// splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode()); + }); + } + + }