Browse Source

HL-5715 结算出库导入, 根据订单行的数量做校验(目前存在问题在于订单行数量已经满足了,但还能创建申请 > 优化调整执行顺序

hella_online_20240829
李达明 10 months ago
parent
commit
76dd4a0753
  1. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/SaleDetailController.java

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/SaleDetailController.java

@ -8,6 +8,7 @@ import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.util.StringUtils;
import com.win.module.wms.controller.sale.vo.*;
import com.win.module.wms.convert.sale.SaleDetailConvert;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
@ -106,20 +107,22 @@ public class SaleDetailController {
if (pageResult.getList().isEmpty()) {
return result;
}
//销售订单主
List<SaleMainDO> saleMainDO = saleMainService.selectList(new LambdaQueryWrapper<SaleMainDO>().in(SaleMainDO::getId, result.getList().stream().map(SaleDetailRespVO::getMasterId).collect(Collectors.toSet())));
Map<Long, SaleMainDO> saleMainDOMap = saleMainDO.stream().collect(Collectors.toMap(SaleMainDO::getId, e -> e));
//结算订单查询条件
Set<String> lineNumberSet = pageResult.getList().stream().map(SaleDetailDO::getLineNumber).collect(Collectors.toSet());
Set<String> numberSet = pageResult.getList().stream().map(SaleDetailDO::getNumber).collect(Collectors.toSet());
Set<String> numberSet = saleMainDO.stream().filter(e -> e.getType().equals("DISCRETE")).map(SaleMainDO::getNumber).collect(Collectors.toSet());
Set<String> itemCodeSet = pageResult.getList().stream().map(SaleDetailDO::getItemCode).collect(Collectors.toSet());
//查询离散状态结算订单数据
LambdaQueryWrapper<SaleShipmentDetailDO> queryWrapper = new LambdaQueryWrapper();
queryWrapper.in(SaleShipmentDetailDO::getSoLine, lineNumberSet);
queryWrapper.in(SaleShipmentDetailDO::getSoNumber, numberSet);
queryWrapper.in(SaleShipmentDetailDO::getItemCode, itemCodeSet);
List<SaleShipmentDetailDO> saleDetailList = saleShipmentDetailService.selectList(queryWrapper);
List<SaleMainDO> saleMainDO = saleMainService.selectList(new LambdaQueryWrapper<SaleMainDO>().in(SaleMainDO::getId, result.getList().stream().map(SaleDetailRespVO::getMasterId).collect(Collectors.toSet())));
Map<Long, SaleMainDO> saleMainDOMap = saleMainDO.stream().collect(Collectors.toMap(SaleMainDO::getId, e -> e));
//计算
result.getList().stream().iterator().forEachRemaining(vo -> {
if ("DISCRETE".equals(saleMainDOMap.get(vo.getMasterId()).getType())) {
if (saleMainDOMap.get(vo.getMasterId()) != null && StringUtils.equals("DISCRETE", saleMainDOMap.get(vo.getMasterId()).getType())) {
vo.setSubSettleQty(vo.getOrderQty());
List<SaleShipmentDetailDO> slist = saleDetailList.stream()
.filter(saleDetailDO -> saleDetailDO.getSoLine().equals(vo.getLineNumber()))
@ -163,5 +166,4 @@ public class SaleDetailController {
}
ExcelUtils.write(response, "销售订单子.xls", "数据", SaleDetailExcelVO.class, datas);
}
}

Loading…
Cancel
Save