From 5c69ee692fa7de46185e19191d67bcb40a7971a4 Mon Sep 17 00:00:00 2001 From: litao Date: Sat, 23 Nov 2024 09:14:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E8=B5=84=E9=87=87=E8=B4=AD=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supplies/InOrderController.java | 27 +--------- .../impl/supplies/InOrderServiceImpl.java | 51 +++++++++++++++++++ .../service/supplies/IInOrderService.java | 1 + 3 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/springblade/modules/business/contraller/supplies/InOrderController.java b/src/main/java/org/springblade/modules/business/contraller/supplies/InOrderController.java index 69436ab..c03020b 100644 --- a/src/main/java/org/springblade/modules/business/contraller/supplies/InOrderController.java +++ b/src/main/java/org/springblade/modules/business/contraller/supplies/InOrderController.java @@ -40,7 +40,6 @@ public class InOrderController extends BladeController { private final IInOrderService inOrderService; private final IInOrderDetailService iInOrderDetailService; - private final IGoodsService goodsService; /** * 物品入库单表 详情 @@ -139,30 +138,8 @@ public class InOrderController extends BladeController { * 验收 */ @PostMapping("/inOrder") - public R inOrder(@RequestBody InOrderDTO inOrderDTO) { - inOrderDTO.setStatus(4); - inOrderDTO.setApplyUserId(AuthUtil.getUserId()); - inOrderDTO.setApplyTime(new Date()); - List detailList = inOrderDTO.getDetails(); - List ids = detailList.stream().map(InOrderDetail::getGoodsId).collect(Collectors.toList()); - List goodsList = goodsService.listByIds(ids); - if (CollectionUtil.isNotEmpty(goodsList)) { - for (Goods goods : goodsList) { - for (InOrderDetail inOrderDetail : detailList) { - if (goods.getId().equals(inOrderDetail.getGoodsId())) { - goods.setNum(goods.getNum() + inOrderDetail.getNum()); - break; - } - } - } - goodsService.updateBatchById(goodsList); - } - - if (CollectionUtil.isNotEmpty(detailList)) { - iInOrderDetailService.updateBatchById(detailList); - } - - return R.status(inOrderService.updateById(inOrderDTO)); + public R inOrder(@RequestBody InOrder inOrder) { + return R.status(inOrderService.inOrder(inOrder)); } /** diff --git a/src/main/java/org/springblade/modules/business/service/impl/supplies/InOrderServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/supplies/InOrderServiceImpl.java index 6ef6f0a..fedd7fa 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/supplies/InOrderServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/supplies/InOrderServiceImpl.java @@ -2,15 +2,25 @@ package org.springblade.modules.business.service.impl.supplies; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.AllArgsConstructor; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.modules.business.pojo.entity.supplies.Goods; import org.springblade.modules.business.pojo.entity.supplies.InOrder; import org.springblade.modules.business.excel.supplies.InOrderExcel; import org.springblade.modules.business.mapper.InOrderMapper; +import org.springblade.modules.business.pojo.entity.supplies.InOrderDetail; +import org.springblade.modules.business.service.supplies.IGoodsService; +import org.springblade.modules.business.service.supplies.IInOrderDetailService; import org.springblade.modules.business.service.supplies.IInOrderService; import org.springblade.modules.business.pojo.vo.supplies.InOrderVO; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 物品入库单表 服务实现类 @@ -19,8 +29,12 @@ import java.util.List; * @since 2024-10-17 */ @Service +@AllArgsConstructor public class InOrderServiceImpl extends BaseServiceImpl implements IInOrderService { + private final IInOrderDetailService iInOrderDetailService; + private final IGoodsService goodsService; + @Override public IPage selectInOrderPage(IPage page, InOrderVO inOrder) { return page.setRecords(baseMapper.selectInOrderPage(page, inOrder)); @@ -36,4 +50,41 @@ public class InOrderServiceImpl extends BaseServiceImpl return inOrderList; } + @Override + @Transactional(rollbackFor = Exception.class) + public boolean inOrder(InOrder inOrder) { + // 采购明细 + List detailList = inOrder.getDetails(); + inOrder.setInUserId(AuthUtil.getUserId()); + inOrder.setInTime(new Date()); + inOrder.setStatus(4); + inOrder.setCode("编码格式待定"); + inOrder.setInTypeNum(detailList.size()); + boolean save = this.save(inOrder); + + // 获取本次提交所有物品 + List ids = detailList.stream().map(InOrderDetail::getGoodsId).collect(Collectors.toList()); + List goodsList = goodsService.listByIds(ids); + + // 修改库存 + if (CollectionUtil.isNotEmpty(goodsList)) { + for (Goods goods : goodsList) { + for (InOrderDetail inOrderDetail : detailList) { + if (goods.getId().equals(inOrderDetail.getGoodsId())) { + goods.setNum(goods.getNum() + inOrderDetail.getNum()); + break; + } + } + } + goodsService.updateBatchById(goodsList); + } + + // 采购明细赋值采购单ID + if (CollectionUtil.isNotEmpty(detailList)) { + detailList.forEach(detail -> detail.setOrderId(inOrder.getId())); + iInOrderDetailService.saveBatch(detailList); + } + return save; + } + } diff --git a/src/main/java/org/springblade/modules/business/service/supplies/IInOrderService.java b/src/main/java/org/springblade/modules/business/service/supplies/IInOrderService.java index f9fee1a..6cf3349 100644 --- a/src/main/java/org/springblade/modules/business/service/supplies/IInOrderService.java +++ b/src/main/java/org/springblade/modules/business/service/supplies/IInOrderService.java @@ -34,4 +34,5 @@ public interface IInOrderService extends BaseService { */ List exportInOrder(Wrapper queryWrapper); + boolean inOrder(InOrder inOrder); }