From e2e4265d1e9afbae931b201c37985dbfd6259015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Thu, 27 Nov 2025 09:23:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/ConsStockFlowController.java | 8 ++--- .../product/service/ConsStockFlowService.java | 5 ++- .../impl/ConsStockFlowServiceImpl.java | 35 ++++++++++++------- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/cash-api/product-server/src/main/java/com/czg/controller/admin/ConsStockFlowController.java b/cash-api/product-server/src/main/java/com/czg/controller/admin/ConsStockFlowController.java index eafe78993..45e3ed284 100644 --- a/cash-api/product-server/src/main/java/com/czg/controller/admin/ConsStockFlowController.java +++ b/cash-api/product-server/src/main/java/com/czg/controller/admin/ConsStockFlowController.java @@ -18,12 +18,13 @@ import com.czg.validator.group.DefaultGroup; import com.mybatisflex.core.paginate.Page; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; +import java.io.Serializable; import java.net.URL; import java.util.List; +import java.util.Map; /** @@ -68,11 +69,10 @@ public class ConsStockFlowController { @OperationLog("耗材入库") //@SaStaffCheckPermission("yun_xu_hao_cai_ru_ku") //@SaAdminCheckPermission("consStockFlow:in") - public CzgResult inStock(@RequestBody ConsInOutStockHeadParam param) { + public CzgResult> inStock(@RequestBody ConsInOutStockHeadParam param) { ValidatorUtil.validateEntity(param, DefaultGroup.class); ValidatorUtil.validateEntity(param.getBodyList(), DefaultGroup.class); - consStockFlowService.inStock(param); - return CzgResult.success(); + return CzgResult.success(consStockFlowService.inStock(param)); } /** diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/service/ConsStockFlowService.java b/cash-common/cash-common-service/src/main/java/com/czg/product/service/ConsStockFlowService.java index aca4cb621..52783192d 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/product/service/ConsStockFlowService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/service/ConsStockFlowService.java @@ -11,7 +11,9 @@ import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; import java.io.InputStream; +import java.io.Serializable; import java.util.List; +import java.util.Map; /** * 耗材库存变动记录 @@ -25,8 +27,9 @@ public interface ConsStockFlowService extends IService { * 手动入库 * * @param param 手动出库入参 + * @return */ - void inStock(ConsInOutStockHeadParam param); + Map inStock(ConsInOutStockHeadParam param); /** * 手动出库 diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java index 879ac1c36..bb4c0ee0a 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java @@ -39,9 +39,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; + import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; import java.util.*; @@ -79,7 +79,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public void inStock(ConsInOutStockHeadParam param) { + public Map inStock(ConsInOutStockHeadParam param) { Long shopId = StpKit.USER.getShopId(0L); Long createUserId = StpKit.USER.getLoginIdAsLong(); String createUserName = StpKit.USER.getAccount(); @@ -87,7 +87,12 @@ List entityList = BeanUtil.copyToList(param.getBodyList(), ConsStockFlow.class); List insertList = new ArrayList<>(); List updateStockList = new ArrayList<>(); + ArrayList unInConList = new ArrayList<>(); for (ConsStockFlow entity : entityList) { + if (entity.getId() == null) { + unInConList.add(entity); + continue; + } BeanUtil.copyProperties(head, entity, CopyOptions.create().ignoreNullValue()); entity.setShopId(shopId); entity.setInOutType(InOutTypeEnum.IN.value()); @@ -97,7 +102,8 @@ Long conId = entity.getConId(); ConsInfo consInfo = consInfoMapper.selectOneById(conId); if (consInfo == null) { - throw new CzgException(StrUtil.format("耗材{}不存在", entity.getConName())); + unInConList.add(entity); + continue; } entity.setBeforeNumber(consInfo.getStockNumber()); entity.setAfterNumber(NumberUtil.add(entity.getBeforeNumber(), entity.getInOutNumber())); @@ -109,6 +115,11 @@ for (ConsInfo consInfo : updateStockList) { consInfoMapper.update(consInfo); } + + return Map.of( + "reason", "成功入库" + (entityList.size() - unInConList.size()) + "个耗材, " + unInConList.size() + "个耗材未入库", + "unInConList", unInConList + ); } @Override @@ -300,18 +311,18 @@ } ArrayList unInCons = new ArrayList<>(); for (SaleOrderDTO.Item item : saleOrderDTO.getItems()) { - ConsInfo consInfo = consInfoMap.get(item.getConName()); - if (consInfo == null) { - unInCons.add(item); - continue; - } - bodyList.add(new ConsInOutStockBodyParam() - .setConId(consInfo.getId().toString()) - .setConName(consInfo.getConName()) + ConsInOutStockBodyParam bodyParam = new ConsInOutStockBodyParam() + .setConName(item.getConName()) .setPurchasePrice(new BigDecimal(item.getPurchasePrice())) .setUnitName(item.getUnitName()) .setSubTotal(new BigDecimal(item.getSubTotal())) - .setInOutNumber(new BigDecimal(item.getInOutNumber()))); + .setInOutNumber(new BigDecimal(item.getInOutNumber())); + ConsInfo consInfo = consInfoMap.get(item.getConName()); + if (consInfo != null) { + unInCons.add(item); + bodyParam.setConId(consInfo.getId().toString()); + } + bodyList.add(bodyParam); } ConsInOutStockHeadParam headParam = new ConsInOutStockHeadParam();