|
|
@@ -201,7 +201,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
//赋值箱片
|
|
|
for (OutboundItemVO outboundItemVO : outboundIngList) {
|
|
|
//箱
|
|
|
- outboundItemVO.setOutingBox(Integer.valueOf(outboundItemVO.getOutingQty().divide(outboundItemVO.getPackBox(),0,RoundingMode.DOWN).toString()) );
|
|
|
+ outboundItemVO.setOutingBox(Integer.valueOf(outboundItemVO.getOutingQty().divide(outboundItemVO.getPackBox(), 0, RoundingMode.DOWN).toString()));
|
|
|
//片
|
|
|
outboundItemVO.setOutingPiece(outboundItemVO.getOutingQty().remainder(outboundItemVO.getPackBox()));
|
|
|
}
|
|
|
@@ -218,7 +218,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
for (OutboundItemVO outboundItemVO : itemList) {
|
|
|
if (outboundItemVO.getSkuId() != null) { //过滤外协品 外协品没有箱片
|
|
|
//箱
|
|
|
- outboundItemVO.setOutBox(Integer.valueOf(outboundItemVO.getOutingQty().divide(outboundItemVO.getPackBox(),0,RoundingMode.DOWN).toString()) );
|
|
|
+ outboundItemVO.setOutBox(Integer.valueOf(outboundItemVO.getOutingQty().divide(outboundItemVO.getPackBox(), 0, RoundingMode.DOWN).toString()));
|
|
|
//片
|
|
|
outboundItemVO.setOutPiece(outboundItemVO.getOutingQty().remainder(outboundItemVO.getPackBox()));
|
|
|
}
|
|
|
@@ -250,7 +250,6 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
accountService.reversePayable(inboundResponse.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//删除外协入库单
|
|
|
//外协入库总单
|
|
|
inboundMapper.deleteByFromId(outboundItemVOList.get(0).getOutId());
|
|
|
@@ -383,6 +382,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
*/
|
|
|
@Transactional(rollbackFor = {Exception.class})
|
|
|
public ResponseResultVO<?> saleOrderOutboundInsert(OutboundVO outboundVO, Boolean orderTransmitFlag) {
|
|
|
+
|
|
|
//region 如果没有客户id,要新建
|
|
|
// outboundVO = outCommon.insertCustomer(outboundVO);
|
|
|
//endregion
|
|
|
@@ -409,8 +409,8 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
BigDecimal sumIntoPriceAmt = BigDecimal.ZERO;
|
|
|
if (orderTransmitFlag) {
|
|
|
sumIntoQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- sumIntoPriceAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getPriceOut).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- }
|
|
|
+ sumIntoPriceAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getFactAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
//获取 id/单号
|
|
|
Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.SALEORDER.getName(), false);
|
|
|
outboundVO.setOutId(codeMap.get("outId").toString()).
|
|
|
@@ -429,7 +429,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
|
|
|
outboundVO
|
|
|
.setOutQty(orderTransmitFlag ? sumIntoQty : outboundVO.getOutingQty())
|
|
|
- .setOutAmt(orderTransmitFlag ? sumIntoQty.multiply(sumIntoPriceAmt) : outboundVO.getOutingAmt())
|
|
|
+ .setOutAmt(orderTransmitFlag ? sumIntoPriceAmt : outboundVO.getOutingAmt())
|
|
|
.setOutingQty(BigDecimal.ZERO)
|
|
|
.setOutingAmt(BigDecimal.ZERO)
|
|
|
;
|
|
|
@@ -439,7 +439,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
.setOutAmt(BigDecimal.ZERO)
|
|
|
//用于销售订单自动创建出库单
|
|
|
.setOutingQty(orderTransmitFlag ? sumIntoQty : outboundVO.getOutingQty())
|
|
|
- .setOutingAmt(orderTransmitFlag ? sumIntoQty.multiply(sumIntoPriceAmt) : outboundVO.getOutingAmt())
|
|
|
+ .setOutingAmt(orderTransmitFlag ? sumIntoPriceAmt : outboundVO.getOutingAmt())
|
|
|
;
|
|
|
}
|
|
|
|
|
|
@@ -453,47 +453,22 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
//endregion
|
|
|
|
|
|
//region 销售订单
|
|
|
- if (outboundVO.getFromId() != null) {
|
|
|
- //赋值 (这里重写了更新方法,数量在更新方法中有数据库原始数量+本次数量)
|
|
|
- Order order = new Order();
|
|
|
- order.setOrderId(outboundVO.getFromId());
|
|
|
- //根据id查询
|
|
|
- OrderResponse orderResponse = orderMapper.selectById(outboundVO.getFromId());
|
|
|
- //已出库
|
|
|
- if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
|
|
|
- order.setOutingQty(BigDecimal.ZERO);
|
|
|
- order.setOutingAmt(BigDecimal.ZERO);
|
|
|
- order.setOutQty(outboundVO.getOutQty());
|
|
|
- order.setOutAmt(outboundVO.getOutAmt());
|
|
|
- }
|
|
|
- //出库中
|
|
|
- else {
|
|
|
- order.setOutingQty(outboundVO.getOutingQty());
|
|
|
- order.setOutingAmt(outboundVO.getOutingAmt());
|
|
|
- order.setOutQty(BigDecimal.ZERO);
|
|
|
- order.setOutAmt(BigDecimal.ZERO);
|
|
|
- }
|
|
|
- //入库状态
|
|
|
- String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
|
|
|
- orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
|
|
|
- order.setOutStatus(outStatus);
|
|
|
- //修改
|
|
|
- int countRow = orderMapper.updateById(order);
|
|
|
- //数量超出
|
|
|
- if (countRow == 0) {
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
|
|
|
- }
|
|
|
- }
|
|
|
+ //新建销售出库修改销售订单信息
|
|
|
+ this.insertOrderMessageByEdit(outboundVO,outboundVO.getItemList());
|
|
|
//endregion
|
|
|
|
|
|
+ BigDecimal factAmt = BigDecimal.ZERO; //总单的实际金额
|
|
|
+
|
|
|
//region 明细
|
|
|
//校验明细
|
|
|
if (outboundVO.getItemList().size() == 0) {
|
|
|
throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getCode(),
|
|
|
ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getMessage());
|
|
|
}
|
|
|
+
|
|
|
for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
|
|
|
outboundItemVO.setItemId(null);
|
|
|
+
|
|
|
//region 将库存需要的参数赋值
|
|
|
outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
|
|
|
outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
|
|
|
@@ -512,13 +487,13 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
.setOutingQty(BigDecimal.ZERO)
|
|
|
.setOutingAmt(BigDecimal.ZERO)
|
|
|
.setCostPrice(outboundItemVO.getPriceOut())
|
|
|
- .setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(2, BigDecimal.ROUND_HALF_UP))
|
|
|
- ;
|
|
|
+ .setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(2, BigDecimal.ROUND_HALF_UP)) ;
|
|
|
} else {
|
|
|
outboundItemVO
|
|
|
.setOutQty(BigDecimal.ZERO)
|
|
|
.setOutAmt(BigDecimal.ZERO);
|
|
|
}
|
|
|
+ factAmt = factAmt.add(outboundItemVO.getFactAmt()); //把明细的 实际金额相加就是总单的
|
|
|
//出库状态
|
|
|
outboundItemVO.setOutStatus(outboundVO.getOutStatus());
|
|
|
//实体转换
|
|
|
@@ -549,6 +524,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
orderItem.setOutQty(BigDecimal.ZERO);
|
|
|
orderItem.setOutAmt(BigDecimal.ZERO);
|
|
|
}
|
|
|
+
|
|
|
//出库状态
|
|
|
String outStatus = this.setOutStatus(orderItemResponse.getOutingQty().add(orderItem.getOutingQty()),
|
|
|
orderItemResponse.getOutQty().add(orderItem.getOutQty()), orderItemResponse.getItemQty());
|
|
|
@@ -565,6 +541,13 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
+ Outbound outboundup = new Outbound();
|
|
|
+ outboundup.setOutId(outbound.getOutId()).setFactAmt(factAmt);
|
|
|
+ //反写总单实际金额
|
|
|
+ outboundMapper.update(outboundup,
|
|
|
+ new UpdateWrapper<Outbound>().lambda()
|
|
|
+ .eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
|
|
|
+ );
|
|
|
//region 已出库 应收记账
|
|
|
if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
|
|
|
accountService.accReceivable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
@@ -602,6 +585,58 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * @desc : 新建销售出库修改销售订单信息
|
|
|
+ * @date : 2024/6/27 9:27
|
|
|
+ * @author : 寇珊珊
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = {Exception.class})
|
|
|
+ public void insertOrderMessageByEdit(OutboundVO outboundVO , List<OutboundItemVO> itemList){
|
|
|
+ //出库明细汇总
|
|
|
+ Map<String, List<OutboundItemVO>> orderOutItemVOListMap = itemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getFromId));
|
|
|
+ //出库明细汇总循环
|
|
|
+ for (String fromId : orderOutItemVOListMap.keySet()) {
|
|
|
+
|
|
|
+ //region 提取新建分组后的明细
|
|
|
+ List<OutboundItemVO> orderOutItemVOListGroup = orderOutItemVOListMap.get(fromId);
|
|
|
+ //分组后的明细 出库数量和金额总和
|
|
|
+ BigDecimal orderSumQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal orderSumAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ //region 反写订单数据
|
|
|
+ //根据id查询
|
|
|
+ OrderResponse orderResponse = orderMapper.selectById(fromId);
|
|
|
+ Order order = new Order();
|
|
|
+ order.setOrderId(fromId);
|
|
|
+ //已出库
|
|
|
+ if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
|
|
|
+ order.setOutingQty(BigDecimal.ZERO);
|
|
|
+ order.setOutingAmt(BigDecimal.ZERO);
|
|
|
+ order.setOutQty(orderSumQty);
|
|
|
+ order.setOutAmt(orderSumAmt);
|
|
|
+ }
|
|
|
+ //出库中
|
|
|
+ else {
|
|
|
+ order.setOutingQty(orderSumQty);
|
|
|
+ order.setOutingAmt(orderSumQty);
|
|
|
+ order.setOutQty(BigDecimal.ZERO);
|
|
|
+ order.setOutAmt(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ //出库状态
|
|
|
+ String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
|
|
|
+ orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
|
|
|
+ order.setOutStatus(outStatus);
|
|
|
+ //修改
|
|
|
+ int countRow = orderMapper.updateById(order);
|
|
|
+ //数量超出
|
|
|
+ if (countRow == 0) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* @desc : 销售出库编辑
|
|
|
* @date : 2024/3/25 16:25
|
|
|
* @author : 寇珊珊
|
|
|
@@ -793,6 +828,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
outbound.setOutId(outboundVO.getOutId());
|
|
|
outbound.setOutQty(sumQty);
|
|
|
outbound.setOutAmt(sumAmt);
|
|
|
+ outbound.setAnnexPaths(outboundVO.getAnnexPaths());
|
|
|
//修改
|
|
|
outboundMapper.update(outbound,
|
|
|
new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
|
|
|
@@ -841,7 +877,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
- //region 入库中编辑
|
|
|
+ //region 出库中编辑
|
|
|
if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundVO.getOutStatus()) ||
|
|
|
Constant.OutStatus.DAICHUKU.getName().equals(outboundVO.getOutStatus())) {
|
|
|
//region 修改明细
|
|
|
@@ -861,8 +897,9 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
|
|
|
OutboundItem outboundItem = new OutboundItem();
|
|
|
outboundItem.setItemId(outboundItemResponse.getItemId());
|
|
|
- outboundItem.setOutingQty(outboundItemResponse.getOutingQty());
|
|
|
- outboundItem.setOutingAmt(outboundItemResponse.getOutingAmt());
|
|
|
+ outboundItem.setOutingQty(outboundItemVO.getOutingQty());
|
|
|
+ outboundItem.setOutingAmt(outboundItemVO.getOutingAmt());
|
|
|
+ outboundItem.setWhId(outboundItemVO.getWhId());
|
|
|
//修改
|
|
|
outboundItemMapper.update(outboundItem,
|
|
|
new UpdateWrapper<OutboundItem>().lambda()
|
|
|
@@ -959,6 +996,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
outbound.setOutId(outboundVO.getOutId());
|
|
|
outbound.setOutingQty(sumQty);
|
|
|
outbound.setOutingAmt(sumAmt);
|
|
|
+ outbound.setAnnexPaths(outboundVO.getAnnexPaths());
|
|
|
//修改
|
|
|
outboundMapper.update(outbound,
|
|
|
new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
|
|
|
@@ -990,82 +1028,142 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
Map<String, List<OutboundItemVO>> delOrderOutItemVOListMap = deleteItemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getFromId));
|
|
|
//出库明细汇总循环
|
|
|
for (String fromId : orderOutItemVOListMap.keySet()) {
|
|
|
- //出库明细删除汇总循环
|
|
|
- for (String delFromId : delOrderOutItemVOListMap.keySet()) {
|
|
|
- //新建出库明细来源Id = 删除出库明细来源Id
|
|
|
- if (fromId.equals(delFromId)) {
|
|
|
- //region 提取新建分组后的明细
|
|
|
- List<OutboundItemVO> orderOutItemVOListGroup = orderOutItemVOListMap.get(fromId);
|
|
|
- //分组后的明细 出库数量和金额总和
|
|
|
- BigDecimal orderSumQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal orderSumAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- //分组后的明细 原出库数量和金额总和
|
|
|
- BigDecimal updateOrderOutQty = BigDecimal.ZERO;
|
|
|
- BigDecimal updateOrderOutAmt = BigDecimal.ZERO;
|
|
|
- BigDecimal updateOrderOutingQty = BigDecimal.ZERO;
|
|
|
- BigDecimal updateOrderOutingAmt = BigDecimal.ZERO;
|
|
|
- //已出库
|
|
|
- if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
- updateOrderOutQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- updateOrderOutAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- }
|
|
|
- //出库中
|
|
|
- else {
|
|
|
- updateOrderOutingQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- updateOrderOutingAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- }
|
|
|
- //endregion
|
|
|
+ //有需要删除的修改数据
|
|
|
+ if(delOrderOutItemVOListMap!=null && delOrderOutItemVOListMap.keySet().size()>0){
|
|
|
+ //出库明细删除汇总循环
|
|
|
+ for (String delFromId : delOrderOutItemVOListMap.keySet()) {
|
|
|
+ //新建出库明细来源Id = 删除出库明细来源Id
|
|
|
+ if (fromId.equals(delFromId)) {
|
|
|
+
|
|
|
+ //region 提取新建分组后的明细
|
|
|
+ List<OutboundItemVO> orderOutItemVOListGroup = orderOutItemVOListMap.get(fromId);
|
|
|
+ //分组后的明细 出库数量和金额总和
|
|
|
+ BigDecimal orderSumQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal orderSumAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //分组后的明细 原出库数量和金额总和
|
|
|
+ BigDecimal updateOrderOutQty = BigDecimal.ZERO;
|
|
|
+ BigDecimal updateOrderOutAmt = BigDecimal.ZERO;
|
|
|
+ BigDecimal updateOrderOutingQty = BigDecimal.ZERO;
|
|
|
+ BigDecimal updateOrderOutingAmt = BigDecimal.ZERO;
|
|
|
+ //已出库
|
|
|
+ if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
+ updateOrderOutQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ updateOrderOutAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ //出库中
|
|
|
+ else {
|
|
|
+ updateOrderOutingQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ updateOrderOutingAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
|
|
|
- //region 提取删除分组后的明细
|
|
|
- List<OutboundItemVO> delOrderOutItemVOListGroup = delOrderOutItemVOListMap.get(delFromId);
|
|
|
- BigDecimal orderDelOutQty = BigDecimal.ZERO;
|
|
|
- BigDecimal orderDelOutAmt = BigDecimal.ZERO;
|
|
|
- //已出库
|
|
|
- if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
- orderDelOutQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- orderDelOutAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- }
|
|
|
- //出库中
|
|
|
- else if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
- orderDelOutQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- orderDelOutAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- }
|
|
|
- //endregion
|
|
|
+ //region 提取删除分组后的明细
|
|
|
+ List<OutboundItemVO> delOrderOutItemVOListGroup = delOrderOutItemVOListMap.get(delFromId);
|
|
|
+ BigDecimal orderDelOutQty = BigDecimal.ZERO;
|
|
|
+ BigDecimal orderDelOutAmt = BigDecimal.ZERO;
|
|
|
+ //已出库
|
|
|
+ if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
+ orderDelOutQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ orderDelOutAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ //出库中
|
|
|
+ else if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
+ orderDelOutQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ orderDelOutAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
|
|
|
- //region 反写订单数据
|
|
|
- //根据id查询
|
|
|
- OrderResponse orderResponse = orderMapper.selectById(fromId);
|
|
|
- Order order = new Order();
|
|
|
- order.setOrderId(fromId);
|
|
|
- //已出库
|
|
|
- if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
- order.setOutQty(updateOrderOutQty.negate().add(orderSumQty).subtract(orderDelOutQty));
|
|
|
- order.setOutAmt(updateOrderOutAmt.negate().add(orderSumAmt).subtract(orderDelOutAmt));
|
|
|
- order.setOutingQty(orderDelOutQty);
|
|
|
- order.setOutingAmt(orderDelOutAmt);
|
|
|
- //出库状态
|
|
|
- String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
|
|
|
- orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
|
|
|
- order.setOutStatus(outStatus);
|
|
|
- }
|
|
|
- //出库中
|
|
|
- else if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
- order.setOutingQty(updateOrderOutingQty.negate().add(orderSumQty).subtract(orderDelOutQty));
|
|
|
- order.setOutingAmt(updateOrderOutingAmt.negate().add(orderSumQty).subtract(orderDelOutAmt));
|
|
|
- //出库状态
|
|
|
- String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
|
|
|
- orderResponse.getOutQty(), orderResponse.getSumQuantity());
|
|
|
- order.setOutStatus(outStatus);
|
|
|
- }
|
|
|
- //修改
|
|
|
- int countRow = orderMapper.updateById(order);
|
|
|
- //数量超出
|
|
|
- if (countRow == 0) {
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
|
|
|
+ //region 反写订单数据
|
|
|
+ //根据id查询
|
|
|
+ OrderResponse orderResponse = orderMapper.selectById(fromId);
|
|
|
+ Order order = new Order();
|
|
|
+ order.setOrderId(fromId);
|
|
|
+ //已出库
|
|
|
+ if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
+ order.setOutQty(updateOrderOutQty.negate().add(orderSumQty).subtract(orderDelOutQty));
|
|
|
+ order.setOutAmt(updateOrderOutAmt.negate().add(orderSumAmt).subtract(orderDelOutAmt));
|
|
|
+ order.setOutingQty(orderDelOutQty);
|
|
|
+ order.setOutingAmt(orderDelOutAmt);
|
|
|
+ //出库状态
|
|
|
+ String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
|
|
|
+ orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
|
|
|
+ order.setOutStatus(outStatus);
|
|
|
+ }
|
|
|
+ //出库中
|
|
|
+ else if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
+ order.setOutingQty(updateOrderOutingQty.negate().add(orderSumQty).subtract(orderDelOutQty));
|
|
|
+ order.setOutingAmt(updateOrderOutingAmt.negate().add(orderSumQty).subtract(orderDelOutAmt));
|
|
|
+ //出库状态
|
|
|
+ String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
|
|
|
+ orderResponse.getOutQty(), orderResponse.getSumQuantity());
|
|
|
+ order.setOutStatus(outStatus);
|
|
|
+ }
|
|
|
+ //修改
|
|
|
+ int countRow = orderMapper.updateById(order);
|
|
|
+ //数量超出
|
|
|
+ if (countRow == 0) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
}
|
|
|
- //endregion
|
|
|
}
|
|
|
}
|
|
|
+ //没有需要删除的修改数据
|
|
|
+ else{
|
|
|
+
|
|
|
+ //region 提取新建分组后的明细
|
|
|
+ List<OutboundItemVO> orderOutItemVOListGroup = orderOutItemVOListMap.get(fromId);
|
|
|
+ //分组后的明细 出库数量和金额总和
|
|
|
+ BigDecimal orderSumQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal orderSumAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //分组后的明细 原出库数量和金额总和
|
|
|
+ BigDecimal updateOrderOutQty = BigDecimal.ZERO;
|
|
|
+ BigDecimal updateOrderOutAmt = BigDecimal.ZERO;
|
|
|
+ BigDecimal updateOrderOutingQty = BigDecimal.ZERO;
|
|
|
+ BigDecimal updateOrderOutingAmt = BigDecimal.ZERO;
|
|
|
+ //已出库
|
|
|
+ if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
+ updateOrderOutQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ updateOrderOutAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ //出库中
|
|
|
+ else {
|
|
|
+ updateOrderOutingQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ updateOrderOutingAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ //region 反写订单数据
|
|
|
+ //根据id查询
|
|
|
+ OrderResponse orderResponse = orderMapper.selectById(fromId);
|
|
|
+ Order order = new Order();
|
|
|
+ order.setOrderId(fromId);
|
|
|
+ //已出库
|
|
|
+ if (Constant.OutStatus.YICHUKU.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
+ order.setOutQty(updateOrderOutQty.negate().add(orderSumQty));
|
|
|
+ order.setOutAmt(updateOrderOutAmt.negate().add(orderSumAmt));
|
|
|
+ //出库状态
|
|
|
+ String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
|
|
|
+ orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
|
|
|
+ order.setOutStatus(outStatus);
|
|
|
+ }
|
|
|
+ //出库中
|
|
|
+ else if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundResponse.getOutStatus())) {
|
|
|
+ order.setOutingQty(updateOrderOutingQty.negate().add(orderSumQty));
|
|
|
+ order.setOutingAmt(updateOrderOutingAmt.negate().add(orderSumQty));
|
|
|
+ //出库状态
|
|
|
+ String outStatus = this.setOutStatus(orderResponse.getOutingQty().add(order.getOutingQty()),
|
|
|
+ orderResponse.getOutQty(), orderResponse.getSumQuantity());
|
|
|
+ order.setOutStatus(outStatus);
|
|
|
+ }
|
|
|
+ //修改
|
|
|
+ int countRow = orderMapper.updateById(order);
|
|
|
+ //数量超出
|
|
|
+ if (countRow == 0) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1241,6 +1339,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
Map<String, List<OutboundItemResponse>> orderOutItemListMap = itemList.stream().collect(Collectors.groupingBy(OutboundItemResponse::getFromId));
|
|
|
//出库明细汇总循环
|
|
|
for (String fromId : orderOutItemListMap.keySet()) {
|
|
|
+
|
|
|
//region 提取新建分组后的明细
|
|
|
//分组后的明细 原出库数量和金额总和
|
|
|
List<OutboundItemResponse> orderOutItemListGroup = orderOutItemListMap.get(fromId);
|
|
|
@@ -1542,51 +1641,88 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
Map<String, List<OutboundItemVO>> delOrderOutItemVOListMap = deleteItemList.stream().collect(Collectors.groupingBy(OutboundItemVO::getFromId));
|
|
|
//出库明细汇总循环
|
|
|
for (String fromId : orderOutItemVOListMap.keySet()) {
|
|
|
- //出库明细删除汇总循环
|
|
|
- for (String delFromId : delOrderOutItemVOListMap.keySet()) {
|
|
|
- //新建出库明细来源Id = 删除出库明细来源Id
|
|
|
- if (fromId.equals(delFromId)) {
|
|
|
- //region 提取新建分组后的明细
|
|
|
- List<OutboundItemVO> orderOutItemVOListGroup = orderOutItemVOListMap.get(fromId);
|
|
|
- //分组后的明细 出库数量和金额总和
|
|
|
- BigDecimal orderSumQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal orderSumAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- //分组后的明细 原出库数量和金额总和
|
|
|
- BigDecimal updateOrderOutingQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal updateOrderOutingAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- //endregion
|
|
|
+ //有需要删除的办理数据
|
|
|
+ if (delOrderOutItemVOListMap != null && delOrderOutItemVOListMap.keySet().size() > 0) {
|
|
|
+ //出库明细删除汇总循环
|
|
|
+ for (String delFromId : delOrderOutItemVOListMap.keySet()) {
|
|
|
+ //新建出库明细来源Id = 删除出库明细来源Id
|
|
|
+ if (fromId.equals(delFromId)) {
|
|
|
+ //region 提取新建分组后的明细
|
|
|
+ List<OutboundItemVO> orderOutItemVOListGroup = orderOutItemVOListMap.get(fromId);
|
|
|
+ //分组后的明细 出库数量和金额总和
|
|
|
+ BigDecimal orderSumQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal orderSumAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //分组后的明细 原出库数量和金额总和
|
|
|
+ BigDecimal updateOrderOutingQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal updateOrderOutingAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //endregion
|
|
|
|
|
|
- //region 提取删除分组后的明细
|
|
|
- List<OutboundItemVO> delOrderOutItemVOListGroup = delOrderOutItemVOListMap.get(delFromId);
|
|
|
- BigDecimal orderDelOutingQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal orderDelOutingAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal orderDelOutQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal orderDelOutAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- //endregion
|
|
|
+ //region 提取删除分组后的明细
|
|
|
+ List<OutboundItemVO> delOrderOutItemVOListGroup = delOrderOutItemVOListMap.get(delFromId);
|
|
|
+ BigDecimal orderDelOutingQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal orderDelOutingAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal orderDelOutQty = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal orderDelOutAmt = delOrderOutItemVOListGroup.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //endregion
|
|
|
|
|
|
- //region 反写订单数据
|
|
|
- //根据id查询
|
|
|
- OrderResponse orderResponse = orderMapper.selectById(fromId);
|
|
|
- //赋值(这里重写了更新方法,数量在更新方法中有数据库院士数量+本次数量)
|
|
|
- Order order = new Order();
|
|
|
- order.setOrderId(fromId);
|
|
|
- order.setOutQty(orderSumQty.subtract(orderDelOutQty));
|
|
|
- order.setOutAmt(orderSumAmt.subtract(orderDelOutAmt));
|
|
|
- order.setOutingQty((updateOrderOutingQty.add(orderDelOutingQty)).negate());
|
|
|
- order.setOutingAmt((updateOrderOutingAmt.add(orderDelOutingAmt)).negate());
|
|
|
- //出库状态
|
|
|
- String orderOutStatus = this.setOutStatus(orderResponse.getOutingQty().subtract(orderSumQty).add(orderDelOutQty),
|
|
|
- orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
|
|
|
- order.setOutStatus(orderOutStatus);
|
|
|
- //修改
|
|
|
- int countRow = orderMapper.updateById(order);
|
|
|
- //数量超出
|
|
|
- if (countRow == 0) {
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
|
|
|
+ //region 反写订单数据
|
|
|
+ //根据id查询
|
|
|
+ OrderResponse orderResponse = orderMapper.selectById(fromId);
|
|
|
+ //赋值(这里重写了更新方法,数量在更新方法中有数据库院士数量+本次数量)
|
|
|
+ Order order = new Order();
|
|
|
+ order.setOrderId(fromId);
|
|
|
+ order.setOutQty(orderSumQty.subtract(orderDelOutQty));
|
|
|
+ order.setOutAmt(orderSumAmt.subtract(orderDelOutAmt));
|
|
|
+ order.setOutingQty((updateOrderOutingQty.add(orderDelOutingQty)).negate());
|
|
|
+ order.setOutingAmt((updateOrderOutingAmt.add(orderDelOutingAmt)).negate());
|
|
|
+ //出库状态
|
|
|
+ String orderOutStatus = this.setOutStatus(orderResponse.getOutingQty().subtract(orderSumQty).add(orderDelOutQty),
|
|
|
+ orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
|
|
|
+ order.setOutStatus(orderOutStatus);
|
|
|
+ //修改
|
|
|
+ int countRow = orderMapper.updateById(order);
|
|
|
+ //数量超出
|
|
|
+ if (countRow == 0) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
}
|
|
|
- //endregion
|
|
|
}
|
|
|
}
|
|
|
+ //没有需要删除的办理数据
|
|
|
+ else {
|
|
|
+ //region 提取新建分组后的明细
|
|
|
+ List<OutboundItemVO> orderOutItemVOListGroup = orderOutItemVOListMap.get(fromId);
|
|
|
+ //分组后的明细 出库数量和金额总和
|
|
|
+ BigDecimal orderSumQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal orderSumAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //分组后的明细 原出库数量和金额总和
|
|
|
+ BigDecimal updateOrderOutingQty = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal updateOrderOutingAmt = orderOutItemVOListGroup.stream().map(OutboundItemVO::getUpdateOrderOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ //region 反写订单数据
|
|
|
+ //根据id查询
|
|
|
+ OrderResponse orderResponse = orderMapper.selectById(fromId);
|
|
|
+ //赋值(这里重写了更新方法,数量在更新方法中有数据库院士数量+本次数量)
|
|
|
+ Order order = new Order();
|
|
|
+ order.setOrderId(fromId);
|
|
|
+ order.setOutQty(orderSumQty);
|
|
|
+ order.setOutAmt(orderSumAmt);
|
|
|
+ order.setOutingQty(updateOrderOutingQty.negate());
|
|
|
+ order.setOutingAmt(updateOrderOutingAmt.negate());
|
|
|
+ //出库状态
|
|
|
+ String orderOutStatus = this.setOutStatus(orderResponse.getOutingQty().subtract(orderSumQty),
|
|
|
+ orderResponse.getOutQty().add(order.getOutQty()), orderResponse.getSumQuantity());
|
|
|
+ order.setOutStatus(orderOutStatus);
|
|
|
+ //修改
|
|
|
+ int countRow = orderMapper.updateById(order);
|
|
|
+ //数量超出
|
|
|
+ if (countRow == 0) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1786,8 +1922,8 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
public String setOutStatus(BigDecimal intoingQty, BigDecimal intoQty, BigDecimal sumQty) {
|
|
|
//出库状态
|
|
|
String outStatus = null;
|
|
|
- //出库中+已出库 小于 总数 或者 出库中数量小于等于订单总数量
|
|
|
- if (intoingQty.compareTo(sumQty) <= 0 && intoingQty.add(intoQty).compareTo(sumQty) <= 0 ) {
|
|
|
+ //出库中小于等于总数,已出库小于总数,并且出库中+已出库大于0
|
|
|
+ if(intoingQty.compareTo(sumQty)<=0 && intoQty.compareTo(sumQty) < 0 && intoingQty.add(intoQty).compareTo(BigDecimal.ZERO) > 0 ){
|
|
|
//出库中
|
|
|
outStatus = Constant.OutStatus.CHUKUZHONG.getName();
|
|
|
}
|