bug-1504 各出库单据的编辑和删除功能,未过账单据允许编辑数量(只能改小,不能改大),也可删除

This commit is contained in:
曹鹏飞 2026-05-26 17:03:22 +08:00
parent d37658cbc6
commit 4443608429
8 changed files with 49 additions and 7 deletions

View File

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.nflg.wms.admin.pojo.dto.PdfPageDTO; import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest;
import com.nflg.wms.admin.service.ComponentPackingControllerService; import com.nflg.wms.admin.service.ComponentPackingControllerService;
import com.nflg.wms.admin.service.SapService; import com.nflg.wms.admin.service.SapService;
import com.nflg.wms.admin.util.PdfGeneratorUtil; import com.nflg.wms.admin.util.PdfGeneratorUtil;
@ -19,16 +20,20 @@ import com.nflg.wms.common.pojo.vo.*;
import com.nflg.wms.common.util.VUtil; import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.WmsComponentPacking; import com.nflg.wms.repository.entity.WmsComponentPacking;
import com.nflg.wms.repository.entity.WmsComponentPackingItem; import com.nflg.wms.repository.entity.WmsComponentPackingItem;
import com.nflg.wms.repository.entity.WmsOutProduceItem;
import com.nflg.wms.repository.service.IWmsBomService; import com.nflg.wms.repository.service.IWmsBomService;
import com.nflg.wms.repository.service.IWmsComponentPackingItemService; import com.nflg.wms.repository.service.IWmsComponentPackingItemService;
import com.nflg.wms.repository.service.IWmsComponentPackingService; import com.nflg.wms.repository.service.IWmsComponentPackingService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -90,6 +95,43 @@ public class ComponentPackingController {
return packingVO; return packingVO;
} }
/**
* 修改订单项数量
*/
@PostMapping("updateItemNum")
public ApiResult<Void> updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) {
WmsComponentPackingItem item = wmsComponentPackingItemService.getById(request.getId());
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在");
VUtil.trueThrowBusinessError(item.getOutQty().compareTo(BigDecimal.ZERO)!=0)
.throwMessage("修改失败:该订单项已出库");
item.setMenge(request.getNum());
wmsComponentPackingItemService.updateById(item);
return ApiResult.success();
}
/**
* 删除订单项
* @param ids 订单项id列表
*/
@Transactional
@PostMapping("deleteItems")
public ApiResult<Void> deleteItems(@RequestBody @NotEmpty List<Long> ids) {
List<WmsComponentPackingItem> items = wmsComponentPackingItemService.lambdaQuery()
.in(WmsComponentPackingItem::getId, ids)
.list();
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在");
items.removeIf(item -> item.getOutQty().compareTo(BigDecimal.ZERO) != 0);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("删除失败:选择的订单项均已领料");
wmsComponentPackingItemService.removeByIds(items.stream().map(WmsComponentPackingItem::getId).collect(Collectors.toList()));
if (!wmsComponentPackingItemService.lambdaQuery()
.eq(WmsComponentPackingItem::getPackingId, items.get(0).getPackingId())
.exists()
) {
wmscomponentPackingService.removeById(items.get(0).getPackingId());
}
return ApiResult.success();
}
/** /**
* 零部件订单信息 * 零部件订单信息
* *

View File

@ -225,7 +225,7 @@ public class OutAssistanceController extends BaseController {
.list(); .list();
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在");
items.removeIf(item -> item.getNum().compareTo(item.getLeft()) != 0); items.removeIf(item -> item.getNum().compareTo(item.getLeft()) != 0);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("没有可以删除的订单项"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("删除失败:选择的订单项均已领料");
outAssistanceItemService.removeByIds(items.stream().map(WmsOutAssistanceItem::getId).collect(Collectors.toList())); outAssistanceItemService.removeByIds(items.stream().map(WmsOutAssistanceItem::getId).collect(Collectors.toList()));
if (!outAssistanceItemService.lambdaQuery() if (!outAssistanceItemService.lambdaQuery()
.eq(WmsOutAssistanceItem::getOrderId, items.get(0).getOrderId()) .eq(WmsOutAssistanceItem::getOrderId, items.get(0).getOrderId())

View File

@ -228,7 +228,7 @@ public class OutCostCenterController extends BaseController {
.list(); .list();
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在");
items.removeIf(item -> item.getNum().compareTo(item.getLeft()) != 0); items.removeIf(item -> item.getNum().compareTo(item.getLeft()) != 0);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("没有可以删除的订单项"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("删除失败:选择的订单项均已领料");
outCostcenterItemService.removeByIds(items.stream().map(WmsOutCostcenterItem::getId).collect(Collectors.toList())); outCostcenterItemService.removeByIds(items.stream().map(WmsOutCostcenterItem::getId).collect(Collectors.toList()));
if (!outCostcenterItemService.lambdaQuery() if (!outCostcenterItemService.lambdaQuery()
.eq(WmsOutCostcenterItem::getOrderId, items.get(0).getOrderId()) .eq(WmsOutCostcenterItem::getOrderId, items.get(0).getOrderId())

View File

@ -354,7 +354,7 @@ public class OutProduceController extends BaseController {
.list(); .list();
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在");
items.removeIf(item -> item.getNum().compareTo(BigDecimal.ZERO) != 0); items.removeIf(item -> item.getNum().compareTo(BigDecimal.ZERO) != 0);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("没有可以删除的订单项"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("删除失败:选择的订单项均已领料");
outProduceItemService.removeByIds(items.stream().map(WmsOutProduceItem::getId).collect(Collectors.toList())); outProduceItemService.removeByIds(items.stream().map(WmsOutProduceItem::getId).collect(Collectors.toList()));
if (!outProduceItemService.lambdaQuery() if (!outProduceItemService.lambdaQuery()
.eq(WmsOutProduceItem::getOrderId, items.get(0).getOrderId()) .eq(WmsOutProduceItem::getOrderId, items.get(0).getOrderId())

View File

@ -138,7 +138,7 @@ public class PurchaseReturnController extends BaseController {
.list(); .list();
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在");
items.removeIf(item -> item.getRequestQuantity().compareTo(item.getLeft()) != 0); items.removeIf(item -> item.getRequestQuantity().compareTo(item.getLeft()) != 0);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("没有可以删除的订单项"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("删除失败:选择的订单项均已领料");
returnRequestItemService.removeByIds(items.stream().map(WmsReturnRequestItem::getId).collect(Collectors.toList())); returnRequestItemService.removeByIds(items.stream().map(WmsReturnRequestItem::getId).collect(Collectors.toList()));
if (!returnRequestItemService.lambdaQuery() if (!returnRequestItemService.lambdaQuery()
.eq(WmsReturnRequestItem::getApplicationId, items.get(0).getApplicationId()) .eq(WmsReturnRequestItem::getApplicationId, items.get(0).getApplicationId())

View File

@ -252,7 +252,7 @@ public class TransferCompanyController extends BaseController {
.list(); .list();
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在");
items.removeIf(item -> item.getNum().compareTo(item.getLeft()) != 0); items.removeIf(item -> item.getNum().compareTo(item.getLeft()) != 0);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("没有可以删除的订单项"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("删除失败:选择的订单项均已领料");
transferCompanyItemService.removeByIds(items.stream().map(WmsTransferCompanyItem::getId).collect(Collectors.toList())); transferCompanyItemService.removeByIds(items.stream().map(WmsTransferCompanyItem::getId).collect(Collectors.toList()));
if (!transferCompanyItemService.lambdaQuery() if (!transferCompanyItemService.lambdaQuery()
.eq(WmsTransferCompanyItem::getOrderId, items.get(0).getOrderId()) .eq(WmsTransferCompanyItem::getOrderId, items.get(0).getOrderId())

View File

@ -250,7 +250,7 @@ public class TransferFactoryController extends BaseController {
.list(); .list();
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("订单项不存在");
items.removeIf(item -> item.getNum().compareTo(item.getLeft()) != 0); items.removeIf(item -> item.getNum().compareTo(item.getLeft()) != 0);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("没有可以删除的订单项"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("删除失败:选择的订单项均已领料");
transferFactoryItemService.removeByIds(items.stream().map(WmsTransferFactoryItem::getId).collect(Collectors.toList())); transferFactoryItemService.removeByIds(items.stream().map(WmsTransferFactoryItem::getId).collect(Collectors.toList()));
if (!transferFactoryItemService.lambdaQuery() if (!transferFactoryItemService.lambdaQuery()
.eq(WmsTransferFactoryItem::getOrderId, items.get(0).getOrderId()) .eq(WmsTransferFactoryItem::getOrderId, items.get(0).getOrderId())

View File

@ -146,7 +146,7 @@ public class TransferCompanyItemVO {
private BigDecimal numLimit; private BigDecimal numLimit;
public BigDecimal getNumLimit() { public BigDecimal getNumLimit() {
return outNum; return getOutNum();
} }
/** /**