zhangyuewww 2 vuotta sitten
vanhempi
commit
2d79c5b7ab

+ 25 - 7
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CargoTitleDetailsServiceImpl.java

@@ -109,15 +109,33 @@ public class CargoTitleDetailsServiceImpl extends ServiceImpl<CargoTitleDetailsM
         cargoTitleDetails.setRelationReceiveNo(relationReceiveNo);
         List<WarehousingOrder> warehousingOrderList = cargoTitleDetails.getWarehousingOrderList();
         if (!CollectionUtils.isEmpty(warehousingOrderList)){
+            Double weight =cargoTitleDetails.getTransferOutWeight();
             for (WarehousingOrder warehousingOrder:warehousingOrderList){
-                //转出重量
-                warehousingOrder.setTransferOutWeight(warehousingOrder.getSurplusWeight());
-                warehousingOrder.setSurplusWeight(0d);
-                warehousingOrder.setTransferOutNo(transferOutNo);
-                if("1".equals(cargoTitleDetails.getRedeemFlag())){
-                    warehousingOrder.setRedeemFlag("赎");
+                //转出重量大于入库单剩余重量
+                if (weight >= warehousingOrder.getSurplusWeight()) {
+                    weight = weight - warehousingOrder.getSurplusWeight();
+                    //转出重量
+                    warehousingOrder.setTransferOutWeight(warehousingOrder.getSurplusWeight());
+                    warehousingOrder.setSurplusWeight(0d);
+                    warehousingOrder.setTransferOutNo(transferOutNo);
+                    if ("1".equals(cargoTitleDetails.getRedeemFlag())) {
+                        warehousingOrder.setRedeemFlag("赎");
+                    }
+                    warehousingOrderService.updateById(warehousingOrder);
+                } else if (weight > 0) {
+                    Double weightTmp = weight - warehousingOrder.getSurplusWeight();
+                    //部分转出
+                    warehousingOrder.setTransferOutWeight(weight);
+                    warehousingOrder.setSurplusWeight(warehousingOrder.getSurplusWeight()-weight);
+                    warehousingOrder.setTransferOutNo(transferOutNo);
+                    if ("1".equals(cargoTitleDetails.getRedeemFlag())) {
+                        warehousingOrder.setRedeemFlag("赎");
+                    }
+                    warehousingOrderService.updateById(warehousingOrder);
+                    weight = weightTmp;
+                } else {
+                    break;
                 }
-                warehousingOrderService.updateById(warehousingOrder);
             }
             ContractManagementInfo contractManagementInfo=contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
                     .eq("comp_id",cargoTitleDetails.getCompId())