|
|
@@ -444,6 +444,26 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
//删除库存、库存批次,库存流水,出库成本
|
|
|
this.deleteInventory(delOutList);
|
|
|
|
|
|
+ //region 销售出库反写销售订单成本金额,成本单价
|
|
|
+ if(Constant.InventoryDocCode.SALE_ORDER.getValue().equals(delOutList.get(0).getInventoryDocCode())){
|
|
|
+ Map<String, List<InOutRecordVO>> InOutRecordVOListMap = delOutList.stream().collect(Collectors.groupingBy(InOutRecordVO::getBiznisItemId));
|
|
|
+ for (String str : InOutRecordVOListMap.keySet()) {
|
|
|
+ //赋值订单明细
|
|
|
+ OrderItem orderItem = new OrderItem();
|
|
|
+ OrderItem orderItemSql = orderItemMapper.selectById(new OrderItemQuery().setItemId(str));
|
|
|
+ //当前订单存在
|
|
|
+ if (orderItemSql!=null && orderItemSql.getOutQty() != null && orderItemSql.getOutQty().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ //查询当前订单下的出库单
|
|
|
+ List<OutboundItemResponse> outboundItemResponseList = outboundItemMapper.selectByCond(new OutboundItemQuery().setFromId(str));
|
|
|
+ BigDecimal costAmt = outboundItemResponseList.stream().map(OutboundItemResponse::getCostAmt).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ orderItem.setItemId(str);
|
|
|
+ orderItem.setCostAmt(costAmt);
|
|
|
+ orderItem.setCostPrice(costAmt == null || costAmt.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : costAmt.divide(orderItemSql.getOutQty(), 2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
|
|
|
}
|
|
|
}
|
|
|
@@ -717,6 +737,27 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //region 销售出库反写销售订单成本金额,成本单价
|
|
|
+ if(Constant.InventoryDocCode.SALE_ORDER.getValue().equals(inOutRecordVOList.get(0).getInventoryDocCode())) {
|
|
|
+ Map<String, List<InOutRecordVO>> InOutRecordVOListMap = inOutRecordVOList.stream().collect(Collectors.groupingBy(InOutRecordVO::getInvOrderItemId));
|
|
|
+ for (String str : InOutRecordVOListMap.keySet()) {
|
|
|
+ //赋值订单明细
|
|
|
+ OrderItem orderItem = new OrderItem();
|
|
|
+ OrderItem orderItemSql = orderItemMapper.selectById(new OrderItemQuery().setItemId(str));
|
|
|
+ //当前订单存在
|
|
|
+ if (orderItemSql != null && orderItemSql.getOutQty() != null && orderItemSql.getOutQty().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ //查询当前订单下的出库单
|
|
|
+ List<OutboundItemResponse> outboundItemResponseList = outboundItemMapper.selectByCond(new OutboundItemQuery().setFromId(str));
|
|
|
+ BigDecimal costAmt = outboundItemResponseList.stream().map(OutboundItemResponse::getCostAmt).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
+ .setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ orderItem.setItemId(str);
|
|
|
+ orderItem.setCostAmt(costAmt);
|
|
|
+ orderItem.setCostPrice(costAmt == null || costAmt.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : costAmt.divide(orderItemSql.getOutQty(), 2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
return inOutRecordVOList;
|
|
|
}
|
|
|
|