From 759061a76deead8a2469adfcd9d1abd2ea807dbf Mon Sep 17 00:00:00 2001 From: youjie <272855983@qq.com> Date: Tue, 13 Dec 2022 19:01:31 +0800 Subject: [PATCH] 更新入库单数量、更新出库单数量 --- jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java | 6 ++++-- jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java | 21 ++++++++++++++++++++- jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java | 4 ++++ jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java | 14 +++++++++++--- jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java | 25 +++++++++++++++++++++++++ jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/controller/ShipmentHeaderController.java | 24 +++++++++++++++++++++++- jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/IShipmentDetailService.java | 2 ++ jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/IShipmentHeaderService.java | 1 + jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentDetailServiceImpl.java | 21 ++++++++++++++++++--- jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java | 29 ++++++++++++++++++++++++----- 10 files changed, 132 insertions(+), 15 deletions(-) diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java index 229b23a..11a09cc 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java @@ -292,10 +292,12 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai return false; } int receiptContainerStatus = receiptContainerHeader.getStatus(); - if(receiptContainerStatus == QuantityConstant.RECEIPT_CONTAINER_TASK) { - throw new ServiceException("取消入库任务时, "); + if(receiptContainerStatus != QuantityConstant.RECEIPT_CONTAINER_TASK) { + throw new ServiceException("取消入库任务时, 任务状态不为生成任务状态"); } receiptContainerHeader.setStatus(QuantityConstant.RECEIPT_CONTAINER_BUILD); + // 取消任务后,不指定组盘库位 + receiptContainerHeader.setToLocationCode(QuantityConstant.EMPTY_STRING); boolean success = receiptContainerHeaderService.updateById(receiptContainerHeader); if(!success) { throw new ServiceException("取消入库任务时, 更新入库组盘头失败"); diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java index f0f2f92..e76e830 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.wms.receipt.receiptHeader.controller; +import com.aliyun.oss.ServiceException; import org.jeecg.common.system.query.QueryGenerator; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -219,7 +220,25 @@ public class ReceiptHeaderController extends JeecgController<ReceiptHeader, IRec @ApiOperation(value="入库单详情-通过id删除", notes="入库单详情-通过id删除") @DeleteMapping(value = "/deleteReceiptDetail") public Result<String> deleteReceiptDetail(@RequestParam(name="id",required=true) String id) { - receiptDetailService.removeById(id); + ReceiptDetail receiptDetail = receiptDetailService.getById(id); + if(receiptDetail == null) { + return Result.error("删除失败, 没有找到入库单详情"); + } + ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId()); + if(receiptHeader == null) { + return Result.error("删除失败, 没有找到入库单"); + } + if(receiptHeader.getFirstStatus().intValue() != QuantityConstant.RECEIPT_HEADER_BUILD) { + return Result.error("删除失败, 入库单必须是新建状态才能删除详情"); + } + boolean success = receiptDetailService.removeById(id); + if(!success) { + throw new ServiceException("删除详情失败"); + } + success = receiptHeaderService.updateReceiptHeader(receiptDetail.getReceiptId()); + if(!success) { + throw new ServiceException("更新入库单头数量失败"); + } return Result.OK("删除成功!"); } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java index 4622705..4fe4d70 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java @@ -31,4 +31,8 @@ public interface IReceiptHeaderService extends IService<ReceiptHeader> { public String createCode(String receiptType); public boolean updateReceiptHeaderStatus(Integer id); + + public boolean updateReceiptHeader(Integer id); + + } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java index 8b59f82..ec78149 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java @@ -1,5 +1,6 @@ package org.jeecg.modules.wms.receipt.receiptHeader.service.impl; +import com.aliyun.oss.ServiceException; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.wms.config.material.entity.Material; import org.jeecg.modules.wms.config.material.service.IMaterialService; @@ -47,6 +48,9 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R if(receiptHeader == null) { return Result.error("添加失败,没有找到入库单头"); } + if(receiptHeader.getFirstStatus().intValue() != QuantityConstant.RECEIPT_HEADER_BUILD) { + return Result.error("添加失败,入库单非创建状态不能新增详情"); + } String receiptCode = receiptHeader.getCode(); if(StringUtils.isEmpty(receiptCode)) { return Result.error("添加失败,没有找到入库单编码"); @@ -68,9 +72,13 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R receiptDetail.setMaterialSpec(materialSpec); receiptDetail.setMaterialUnit(materialUnit); receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_BUILD); - boolean result = receiptDetailService.save(receiptDetail); - if(!result) { - return Result.error("添加失败, 保存入库单详情的时候报错"); + boolean success = receiptDetailService.save(receiptDetail); + if(!success) { + throw new ServiceException("添加失败, 保存入库单详情的时候报错"); + } + success = receiptHeaderService.updateReceiptHeader(receiptDetail.getReceiptId()); + if(!success) { + throw new ServiceException("添加失败, 保存入库单详失败"); } return Result.OK("添加成功!"); } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java index df13a30..862cf9e 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.Serializable; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -166,4 +167,28 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R boolean result = receiptHeaderService.updateById(receiptHeader); return result; } + + @Override + public boolean updateReceiptHeader(Integer id) { + LambdaQueryWrapper<ReceiptDetail> receiptDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); + receiptDetailLambdaQueryWrapper.eq(ReceiptDetail::getReceiptId, id); + List<ReceiptDetail> receiptDetailList = receiptDetailService.list(receiptDetailLambdaQueryWrapper); + ReceiptHeader receiptHeader = receiptHeaderService.getById(id); + if(receiptHeader == null) { + return false; + } + BigDecimal totalQty = new BigDecimal(0); + int totalLines = 0; + for(ReceiptDetail receiptDetail : receiptDetailList) { + totalLines++; + totalQty = totalQty.add(receiptDetail.getQty()); + } + receiptHeader.setTotalqty(totalQty); + receiptHeader.setTotallines(totalLines); + if (!receiptHeaderService.updateById(receiptHeader)){ + return false; + } + return true; + } + } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/controller/ShipmentHeaderController.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/controller/ShipmentHeaderController.java index 5495410..877c8eb 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/controller/ShipmentHeaderController.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/controller/ShipmentHeaderController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.wms.shipment.shipmentHeader.controller; +import com.aliyun.oss.ServiceException; import org.jeecg.common.system.query.QueryGenerator; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -8,11 +9,14 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail; +import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader; import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentDetail; import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentHeader; import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentDetailService; import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentHeaderService; import org.jeecg.utils.StringUtils; +import org.jeecg.utils.constant.QuantityConstant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -206,7 +210,25 @@ public class ShipmentHeaderController extends JeecgController<ShipmentHeader, IS @ApiOperation(value="出库单详情-通过id删除", notes="出库单详情-通过id删除") @DeleteMapping(value = "/deleteShipmentDetail") public Result<String> deleteShipmentDetail(@RequestParam(name="id",required=true) String id) { - shipmentDetailService.removeById(id); + ShipmentDetail shipmentDetail = shipmentDetailService.getById(id); + if(shipmentDetail == null) { + return Result.error("删除失败, 没有找到出库单详情"); + } + ShipmentHeader shipmentHeader = shipmentHeaderService.getById(shipmentDetail.getShipmentId()); + if(shipmentHeader == null) { + return Result.error("删除失败, 没有找到出库单"); + } + if(shipmentHeader.getFirstStatus().intValue() != QuantityConstant.SHIPMENT_HEADER_BUILD) { + return Result.error("删除失败, 出库单必须是新建状态才能删除详情"); + } + boolean success = shipmentDetailService.removeById(id); + if(!success) { + throw new ServiceException("删除详情失败"); + } + success = shipmentHeaderService.updateShipmentHeader(shipmentDetail.getShipmentId()); + if(!success) { + throw new ServiceException("更新出库单头数量失败"); + } return Result.OK("删除成功!"); } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/IShipmentDetailService.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/IShipmentDetailService.java index cab9841..fbc1866 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/IShipmentDetailService.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/IShipmentDetailService.java @@ -18,4 +18,6 @@ public interface IShipmentDetailService extends IService<ShipmentDetail> { public List<ShipmentDetail> selectByMainId(String mainId); public Result saveShipmentDetail(ShipmentDetail shipmentDetail); + + public List<ShipmentDetail> getShipmentDetailListByShipmentId(Integer id); } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/IShipmentHeaderService.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/IShipmentHeaderService.java index bcc8a0b..bcfadfe 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/IShipmentHeaderService.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/IShipmentHeaderService.java @@ -35,4 +35,5 @@ public interface IShipmentHeaderService extends IService<ShipmentHeader> { public boolean updateShipmentHeaderStatus(Integer id); + public boolean updateShipmentHeader(Integer id); } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentDetailServiceImpl.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentDetailServiceImpl.java index 4988741..b75099b 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentDetailServiceImpl.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentDetailServiceImpl.java @@ -1,5 +1,8 @@ package org.jeecg.modules.wms.shipment.shipmentHeader.service.impl; +import com.aliyun.oss.ServiceException; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.wms.config.material.entity.Material; import org.jeecg.modules.wms.config.material.service.IMaterialService; @@ -69,10 +72,22 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, shipmentDetail.setMaterialSpec(materialSpec); shipmentDetail.setMaterialUnit(materialUnit); shipmentDetail.setStatus(QuantityConstant.RECEIPT_HEADER_BUILD); - boolean result = shipmentDetailService.save(shipmentDetail); - if(!result) { - return Result.error("添加失败, 保存出库单详情的时候报错"); + boolean success = shipmentDetailService.save(shipmentDetail); + if(!success) { + throw new ServiceException("添加失败, 保存出库单详情的时候报错"); + } + success = shipmentHeaderService.updateShipmentHeader(shipmentHeader.getId()); + if(!success) { + throw new ServiceException("添加失败, 更新出库单失败"); } return Result.OK("添加成功!"); } + + @Override + public List<ShipmentDetail> getShipmentDetailListByShipmentId(Integer id) { + LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); + shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getShipmentId, id); + List<ShipmentDetail> shipmentDetailList = shipmentDetailService.list(shipmentDetailLambdaQueryWrapper); + return shipmentDetailList; + } } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java index 5040145..8abfab6 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java @@ -152,11 +152,9 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, } @Override - public boolean updateShipmentHeaderStatus(Integer id) { - LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); - shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getShipmentId, id); - List<ShipmentDetail> shipmentDetailList = shipmentDetailService.list(shipmentDetailLambdaQueryWrapper); - ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id); + public boolean updateShipmentHeaderStatus(Integer shipmentId) { + List<ShipmentDetail> shipmentDetailList = shipmentDetailService.getShipmentDetailListByShipmentId(shipmentId); + ShipmentHeader shipmentHeader = shipmentHeaderService.getById(shipmentId); if(shipmentHeader == null) { return false; } @@ -185,4 +183,25 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, return result; } + @Override + public boolean updateShipmentHeader(Integer shipmentId) { + List<ShipmentDetail> shipmentDetailList = shipmentDetailService.getShipmentDetailListByShipmentId(shipmentId); + ShipmentHeader shipmentHeader = shipmentHeaderService.getById(shipmentId); + if(shipmentHeader == null) { + return false; + } + BigDecimal totalQty = new BigDecimal(0); + int totalLines = 0; + for(ShipmentDetail shipmentDetail : shipmentDetailList) { + totalLines++; + totalQty = totalQty.add(shipmentDetail.getQty()); + } + shipmentHeader.setTotalQty(totalQty); + shipmentHeader.setTotalLines(totalLines); + if (!shipmentHeaderService.updateById(shipmentHeader)){ + return false; + } + return true; + } + } -- libgit2 0.22.2