Просмотр исходного кода

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-server-mdm

changhaoning 1 год назад
Родитель
Сommit
39a1f1b47e

+ 20 - 10
src/main/java/com/dk/mdm/service/ivt/inventory/InventoryService.java

@@ -218,7 +218,8 @@ public class InventoryService extends BaseService<Inventory> {
                 throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SKU_IS_NULL.getMessage());
             }
             //存货ID
-            if (inventoryBatchVO.getInvId() == null || "".equals(inventoryBatchVO.getInvId())) {
+            if (Constant.InventoryType.OUTBOUND .equals(inventoryBatchVO.getInventoryType())
+                    && ( inventoryBatchVO.getInvId() == null || "".equals(inventoryBatchVO.getInvId()))) {
                 throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getMessage());
             }
             //仓库ID
@@ -600,10 +601,12 @@ public class InventoryService extends BaseService<Inventory> {
                             inOutRecordVO.setPriceInto(outboundItemCostResponses.get(0).getCostPrice());
                             //金额
                             inOutRecordVO.setIntoAmt(outboundItemCostResponses.get(0).getCostPrice().multiply(inOutRecordVO.getIntoQty()).abs());
-                        } else {
-                            //当前销售退货单无法获取源出库单数据
-                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UNABLE_TO_OBTAIN_SOURCE_DATA.getMessage());
                         }
+                        //todo 2024年5月31日16:00:21 编辑的情况 先删后加  所以此处查不到数据 在删除的时候赋值
+//                        else {
+//                            //当前销售退货单无法获取源出库单数据
+//                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UNABLE_TO_OBTAIN_SOURCE_DATA.getMessage());
+//                        }
                     }
                     //endregion
 
@@ -632,6 +635,7 @@ public class InventoryService extends BaseService<Inventory> {
                 }
                 //region  库存存在
                 else {
+                    //todo 2024年5月31日16:00:21 编辑的情况 先删后加  所以此处查不到数据 在删除的时候赋值
                     //region  根据源出库单明细Id 去出库成本里去查价格
                     if (inOutRecordVO.getSOutItemId() != null) {
                         List<OutboundItemCostResponse> outboundItemCostResponses = outboundItemCostMapper.selectByCond(new OutboundItemCostQuery().setOutItemId(inOutRecordVO.getSOutItemId()));
@@ -641,10 +645,12 @@ public class InventoryService extends BaseService<Inventory> {
                             //金额
                             inOutRecordVO.setIntoAmt(outboundItemCostResponses.get(0).getCostPrice().multiply(inOutRecordVO.getIntoQty()).abs());
 
-                        } else {
-                            //当前销售退货单无法获取源出库单数据
-                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UNABLE_TO_OBTAIN_SOURCE_DATA.getMessage());
                         }
+                        //todo 2024年5月31日16:00:21 编辑的情况 先删后加  所以此处查不到数据 在删除的时候赋值
+//                        else {
+//                            //当前销售退货单无法获取源出库单数据
+//                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UNABLE_TO_OBTAIN_SOURCE_DATA.getMessage());
+//                        }
                     }
                     //endregion
 
@@ -694,7 +700,7 @@ public class InventoryService extends BaseService<Inventory> {
     )
     public void operatingUpdateInventory(List<InOutRecordVO> inOutRecordVOList) {
         //先删后加
-        this.deleteInventory(inOutRecordVOList);
+        inOutRecordVOList = this.deleteInventory(inOutRecordVOList);
         //新建
         inOutRecordVOList = this.operatingInsertInventory(inOutRecordVOList);
         //入库
@@ -1099,7 +1105,7 @@ public class InventoryService extends BaseService<Inventory> {
     @Transactional(
             rollbackFor = {Exception.class}
     )
-    public void deleteInventory(List<InOutRecordVO> inOutRecordVOList) {
+    public List<InOutRecordVO> deleteInventory(List<InOutRecordVO> inOutRecordVOList) {
         for (InOutRecordVO inOutRecordVO : inOutRecordVOList) {
             //region  校验库存  根据sku,仓库,非标号查询
             InventoryResponse inventoryResponse = inventoryMapper.selectByOther(new InventoryQuery()
@@ -1157,6 +1163,10 @@ public class InventoryService extends BaseService<Inventory> {
                     inventoryBatch.setCostAmt(inventoryBatchResponse.getInvQty().multiply(outboundItemCostResponse.getCostPrice()));
                     inventoryBatchMapper.updateAmtAndQty(inventoryBatch);
                 }
+                //出库单价
+                inOutRecordVO.setPriceInto(outboundItemCostResponses.get(0).getCostPrice());
+                //金额
+                inOutRecordVO.setIntoAmt(outboundItemCostResponses.get(0).getCostPrice().multiply(inOutRecordVO.getIntoQty()).abs());
             }
             //endregion
 
@@ -1186,8 +1196,8 @@ public class InventoryService extends BaseService<Inventory> {
                 outboundItemCostMapper.deleteData(inOutRecordVO.getBiznisItemId());
             }
             //endregion
-
         }
+        return inOutRecordVOList;
     }
 
     /**

+ 9 - 4
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleOrderService.java

@@ -718,15 +718,20 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 this.deleteOutsideGoodsInto(outboundVO, outsideGoods);
                 //新建外协品生产外协入库单
                 this.insertOutsideGoodsInto(outboundVO, outsideGoods);
-                List<OutboundItemVO> delOutsideGoods = outboundVO.getDeleteItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
-                //删除外协品生产外协入库单
-                this.deleteOutsideGoodsInto(outboundVO, delOutsideGoods);
+                if(outboundVO.getDeleteItemList() != null){
+                    List<OutboundItemVO> delOutsideGoods = outboundVO.getDeleteItemList().stream().filter(it -> it.getSkuId() == null).collect(Collectors.toList());
+                    //删除外协品生产外协入库单
+                    this.deleteOutsideGoodsInto(outboundVO, delOutsideGoods);
+                }
                 //endregion
 
                 //region 修改库存
                 //筛选出skuId不为空的 走库存
                 List<OutboundItemVO> invList = outboundVO.getItemList().stream().filter(it -> it.getSkuId() != null).collect(Collectors.toList());
-                List<OutboundItemVO> invDelList = outboundVO.getDeleteItemList().stream().filter(it -> it.getSkuId() != null).collect(Collectors.toList());
+                List<OutboundItemVO> invDelList = null;
+                if(outboundVO.getDeleteItemList() != null){
+                    invDelList = outboundVO.getDeleteItemList().stream().filter(it -> it.getSkuId() != null).collect(Collectors.toList());
+                }
                 if ((invList != null && invList.size() > 0) || (invDelList != null && invDelList.size() > 0)) {
                     Map<String, Object> invMap = new HashMap<>();
                     invMap.put("outDetail", invList);

+ 12 - 9
src/main/java/com/dk/mdm/service/sale/OrderService.java

@@ -405,18 +405,21 @@ public class OrderService extends BaseService<Order> {
         // 转化实体
         Order order = orderConvert.convertToPo(orderVO);
         //删除的
-        List<OrderItemVO> deleteOrderItemVOList = orderVO.getDeleteItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
-        if (deleteOrderItemVOList.size() > 0) {
-            for (OrderItemVO orderItemVO : deleteOrderItemVOList) {
-                orderItemForUpdate = orderItemMapper.selectByIdForUpdate(orderItemVO.getItemId());
-                // 非待出库单据不能删除
-                if (!Constant.OutStatus.DAICHUKU.getName().equals(orderItemForUpdate.getOutStatus())) {
-                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.NO_WAIT_INTO.getMessage());
-                } else {
-                    orderItemMapper.deleteById(orderItemVO.getItemId());
+        if(orderVO.getDeleteItemList() != null){
+            List<OrderItemVO> deleteOrderItemVOList = orderVO.getDeleteItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
+            if (deleteOrderItemVOList.size() > 0) {
+                for (OrderItemVO orderItemVO : deleteOrderItemVOList) {
+                    orderItemForUpdate = orderItemMapper.selectByIdForUpdate(orderItemVO.getItemId());
+                    // 非待出库单据不能删除
+                    if (!Constant.OutStatus.DAICHUKU.getName().equals(orderItemForUpdate.getOutStatus())) {
+                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.NO_WAIT_INTO.getMessage());
+                    } else {
+                        orderItemMapper.deleteById(orderItemVO.getItemId());
+                    }
                 }
             }
         }
+
         // 新增的
         List<OrderItemVO> insertOrderItemVOList = orderVO.getItemList().stream().filter(it -> it.getItemId() == null).collect(Collectors.toList());
         for (OrderItemVO orderItemVO : insertOrderItemVOList) {