zhangyuewww 2 سال پیش
والد
کامیت
8f3bced110

+ 59 - 24
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehousingOrderServiceImpl.java

@@ -96,6 +96,8 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
     @Autowired
     private IPaymentManagementService paymentManagementService;
     @Autowired
+    private IQualityInspectionManagementService qualityInspectionManagementService;
+    @Autowired
     private IContractInventoryDistributionService contractInventoryDistributionService;
     @Autowired
     private ICustomerInfoService customerInfoService;
@@ -353,7 +355,16 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                             .ge("settlement_date", beforeDay));
                     WarehousingOrder warehousingOrder = new WarehousingOrder();
                     warehousingOrder.setId(IdGenerator.generateUUID());
+                    Double totalMoisture=0d;
                     for (PaymentManagement paymentManagement : paymentManagementList) {
+                        QualityInspectionManagement qualityInspectionManagement=qualityInspectionManagementService.selectOne(new EntityWrapper<QualityInspectionManagement>()
+                        .eq("relation_id",paymentManagement.getRelationId()));
+                        if (qualityInspectionManagement!=null) {
+                            if (qualityInspectionManagement.getWaterContent()!=null) {
+                                totalMoisture = totalMoisture + Double.valueOf(qualityInspectionManagement.getWaterContent())
+                                        * Double.valueOf(String.valueOf(paymentManagement.getNetWeight() / 1000));
+                            }
+                        }
                         paymentManagement.setOrderId(warehousingOrder.getId());
                         paymentManagementService.updateById(paymentManagement);
                     }
@@ -367,6 +378,9 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                     warehousingOrder.setGoodsName(warehousingOrder1.getGoodsName());
                     warehousingOrder.setInType("收购入库");
                     double weight = (paymentManagementList.stream().mapToDouble(PaymentManagement::getNetWeight).sum()) / 1000;
+                    if (totalMoisture!=0) {
+                        warehousingOrder.setWeightedMoisture(totalMoisture / weight);
+                    }
                     warehousingOrder.setInWarehouseWeight(weight);
                     warehousingOrder.setSurplusWeight(weight);
                     double money = paymentManagementList.stream().mapToDouble(PaymentManagement::getAmountIngPayable).sum();
@@ -437,6 +451,21 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                             .eq("warehouse_name", warehousingOrder1.getWarehouseName())
                             .eq("in_out_type", "采购入库")
                             .ge("in_out_date", beforeDay));
+                    Double totalMoisture=0d;
+                    for (WarehouseInOutInfo warehouseInOutInfo:warehouseInOutInfoList){
+                        QualityInspectionManagement qualityInspectionManagement=qualityInspectionManagementService.selectOne(new EntityWrapper<QualityInspectionManagement>()
+                        .eq("warehouse_in_out_id",warehouseInOutInfo.getId()));
+                        if (qualityInspectionManagement!=null) {
+                            if (qualityInspectionManagement.getWaterContent()!=null) {
+                                totalMoisture = totalMoisture + Double.valueOf(qualityInspectionManagement.getWaterContent())
+                                        * warehouseInOutInfo.getNetWeight();
+                            }
+                            else {
+                                totalMoisture=0d;
+                                break;
+                            }
+                        }
+                    }
                     WarehousingOrder warehousingOrder = new WarehousingOrder();
                     warehousingOrder.setId(IdGenerator.generateUUID());
                     warehousingOrder.setBaseId(warehousingOrder1.getBaseId());
@@ -448,6 +477,9 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                     warehousingOrder.setGoodsName(warehousingOrder1.getGoodsName());
                     warehousingOrder.setContractNo(warehousingOrder1.getContractNo());
                     double weight = warehouseInOutInfoList.stream().mapToDouble(WarehouseInOutInfo::getNetWeight).sum();
+                    if (totalMoisture!=0) {
+                        warehousingOrder.setWeightedMoisture(totalMoisture / weight);
+                    }
                     warehousingOrder.setInWarehouseWeight(weight);
                     Double money = 0d;
                     for (WarehouseInOutInfo warehouseInOutInfo : warehouseInOutInfoList) {
@@ -517,6 +549,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                             warehousingOrder.setAvgCost(warehousingOrder2.getAvgCost());
                             warehousingOrder.setCompId(warehousingOrder1.getCompId());
                             warehousingOrder.setGoodsName(warehousingOrder1.getGoodsName());
+                            warehousingOrder.setWeightedMoisture(warehousingOrder2.getWeightedMoisture());
                             warehousingOrder.setInWarehouseWeight(weight * sourceRelationInfo.getProportion());
                             warehousingOrder.setSurplusWeight(weight * sourceRelationInfo.getProportion());
                             warehousingOrder.setIssuingTime(new Date());
@@ -617,6 +650,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
                             warehousingOrder.setWarehouseName(warehousingOrder1.getWarehouseName());
                             warehousingOrder.setInType("退库");
                             warehousingOrder.setContractNo(warehousingOrder2.getContractNo());
+                            warehousingOrder.setWeightedMoisture(warehousingOrder2.getWeightedMoisture());
                             //取货源入库单成本
                             warehousingOrder.setAvgCost(warehousingOrder2.getAvgCost());
                             warehousingOrder.setCompId(warehousingOrder1.getCompId());
@@ -1735,29 +1769,30 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
     @Override
     public String dryOut(WarehousingOrder warehousingOrder) {
         List<WarehousingOrder> warehousingOrderList=warehousingOrder.getWarehousingOrderList();
-        Double money=0d;
+        Double afterCost=0d;
+        String goodsName=warehousingOrderList.get(0).getGoodsName().replace("(潮粮)", "");
         for (WarehousingOrder warehousingOrder1:warehousingOrderList){
-            money=money+warehousingOrder1.getSurplusWeight()*warehousingOrder1.getAvgCost();
+            afterCost=warehousingOrder1.getSurplusWeight()*warehousingOrder1.getAvgCost()/warehousingOrder1.getAfterWeight();
             warehousingOrder1.setSurplusWeight(0d);
+            warehousingOrder1.setOutWarehouseWeight(warehousingOrder1.getInWarehouseWeight());
             this.updateById(warehousingOrder1);
+            WarehousingOrder warehousingOrder2 = new WarehousingOrder();
+            warehousingOrder2.setId(IdGenerator.generateUUID());
+            warehousingOrder2.setCompId(warehousingOrder1.getCompId());
+            warehousingOrder2.setBaseId(warehousingOrder1.getBaseId());
+            warehousingOrder2.setIdentifyId(warehousingOrder1.getIdentifyId());
+            warehousingOrder2.setContractNo(warehousingOrder1.getContractNo());
+            warehousingOrder2.setMoveTaskNo(warehousingOrder1.getMoveTaskNo());
+            warehousingOrder2.setWarehouseName(warehousingOrder1.getWarehouseName());
+            warehousingOrder2.setInType("折干");
+            warehousingOrder2.setGoodsName(goodsName);
+            warehousingOrder2.setGoodsSource(warehousingOrder1.getGoodsSource());
+            warehousingOrder2.setInWarehouseWeight(warehousingOrder1.getAfterWeight());
+            warehousingOrder2.setSurplusWeight(warehousingOrder1.getAfterWeight());
+            warehousingOrder2.setIssuingTime(new Date());
+            warehousingOrder2.setAvgCost(afterCost);
+            this.insert(warehousingOrder2);
         }
-        Double afterCost=money/warehousingOrder.getAfterWeight();
-        WarehousingOrder warehousingOrder2 = new WarehousingOrder();
-        warehousingOrder2.setId(IdGenerator.generateUUID());
-        warehousingOrder2.setCompId(warehousingOrderList.get(0).getCompId());
-        warehousingOrder2.setBaseId(warehousingOrderList.get(0).getBaseId());
-        warehousingOrder2.setIdentifyId(warehousingOrderList.get(0).getIdentifyId());
-        warehousingOrder2.setContractNo(warehousingOrderList.get(0).getContractNo());
-        warehousingOrder2.setMoveTaskNo(warehousingOrderList.get(0).getMoveTaskNo());
-        warehousingOrder2.setWarehouseName(warehousingOrderList.get(0).getWarehouseName());
-        warehousingOrder2.setInType("折干");
-        warehousingOrder2.setGoodsName(warehousingOrderList.get(0).getGoodsName().replace("(潮粮)", ""));
-        warehousingOrder2.setGoodsSource(warehousingOrderList.get(0).getGoodsSource());
-        warehousingOrder2.setInWarehouseWeight(warehousingOrder.getAfterWeight());
-        warehousingOrder2.setSurplusWeight(warehousingOrder.getAfterWeight());
-        warehousingOrder2.setIssuingTime(new Date());
-        warehousingOrder2.setAvgCost(afterCost);
-        this.insert(warehousingOrder2);
         CommonSysParameter commonSysParameter = commonSysParameterService.selectOne(new EntityWrapper<CommonSysParameter>().eq("const_id", "CON2").eq("const_value", warehousingOrderList.get(0).getGoodsName()));
         //减去被折转的潮粮库存
         WarehousePositionStorageInfo warehousePositionStorageInfo = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
@@ -1787,7 +1822,7 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
         warehouseInOutDetail.setInfoId(warehouseInOutInfo.getId());
         warehouseInOutDetail.setId(IdGenerator.generateUUID());
         warehouseInOutDetailService.insert(warehouseInOutDetail);
-        CommonSysParameter commonSysParameter2 = commonSysParameterService.selectOne(new EntityWrapper<CommonSysParameter>().eq("const_id", "CON2").eq("const_value", warehousingOrder2.getGoodsName()));
+        CommonSysParameter commonSysParameter2 = commonSysParameterService.selectOne(new EntityWrapper<CommonSysParameter>().eq("const_id", "CON2").eq("const_value", goodsName));
         WarehousePositionStorageInfo warehousePositionStorageInfo1 = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
                 .eq("position_id", warehousingOrder.getAfterPositionId())
                 .eq("goods_name_key", commonSysParameter2.getConstKey()));
@@ -1800,18 +1835,18 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
             warehousePositionStorageInfo2.setPositionId(warehousingOrder.getAfterPositionId());
             warehousePositionStorageInfo2.setBinNumber(warehousingOrder.getAfterBinNo());
             warehousePositionStorageInfo2.setGoodsNameKey(commonSysParameter2.getConstKey());
-            warehousePositionStorageInfo2.setGoodsName(warehousingOrder2.getGoodsName());
+            warehousePositionStorageInfo2.setGoodsName(goodsName);
             warehousePositionStorageInfo2.setStorage(warehousingOrder.getAfterWeight());
             warehousePositionStorageInfoService.insert(warehousePositionStorageInfo2);
         }
         WarehouseInOutInfo warehouseInOutInfo1 = new WarehouseInOutInfo();
         warehouseInOutInfo1.setId(IdGenerator.generateUUID());
-        warehouseInOutInfo1.setBaseId(warehousingOrder2.getBaseId());
-        warehouseInOutInfo1.setWarehouseName(warehousingOrder2.getWarehouseName());
+        warehouseInOutInfo1.setBaseId(warehouseInOutInfo.getBaseId());
+        warehouseInOutInfo1.setWarehouseName(warehouseInOutInfo.getWarehouseName());
         warehouseInOutInfo1.setPositionId(warehousingOrder.getAfterPositionId());
         warehouseInOutInfo1.setBinNumber(warehousingOrder.getAfterBinNo());
         warehouseInOutInfo1.setInOutFlag("2");
-        warehouseInOutInfo1.setGoodsName(warehousingOrder2.getGoodsName());
+        warehouseInOutInfo1.setGoodsName(goodsName);
         warehouseInOutInfo1.setGoodsNameKey(commonSysParameter2.getConstKey());
         warehouseInOutInfo1.setNetWeight(warehousingOrder.getAfterWeight());
         warehouseInOutInfo1.setAgent(AuthSecurityUtils.getStaffById(AuthSecurityUtils.getCurrentUserId()).getStaffName());