| 
					
				 | 
			
			
				@@ -3242,55 +3242,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 根据仓库主表id 更新对应明细表状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param fPid 仓库主表id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @return 结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public AjaxResult storageFeeFollow(Long fPid, long fettle) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (StringUtils.isNull(fPid)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return AjaxResult.error("仓库更新状态未找到主表信息,请与管理员联系"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        int warehouseUpdateResult = tWarehouseBillsMapper.warehouseFollowUpdate(fPid, fettle, new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (warehouseUpdateResult <= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return AjaxResult.error("更新库存明细状态失败,请联系管理员"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        warehousebillsfees.setfPid(fPid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<TWarehousebillsfees> warehousebillsfeesList = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (TWarehousebillsfees wareItem : warehousebillsfeesList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isNull(wareItem.getSrcId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ("KCZZ".equals(wareItem.getfBilltype())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                TWhgenleg tWhgenleg = tWhgenlegMapper.selectTWhgenlegById(wareItem.getSrcId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                tWhgenleg.setfChargedate(DateUtils.dateAdd(wareItem.getfBillingDeadline(), 1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                int i = tWhgenlegMapper.updateTWhgenleg(tWhgenleg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (i <= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return AjaxResult.error("更新库存费用状态失败,请联系管理员"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wareItem.getSrcId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                tWarehousebillsitems.setfChargedate(DateUtils.dateAdd(wareItem.getfBillingDeadline(), 1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if ("SJCK".equals(wareItem.getfBilltype())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    tWarehousebillsitems.setfStorageFeeDeadline(wareItem.getfBillingDeadline()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        int feesUpdateResult = tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(fPid, fettle, new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (feesUpdateResult <= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return AjaxResult.error("更新库存费用状态失败,请联系管理员"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return AjaxResult.success(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 入库确认 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param warehouseBills      主表 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4905,24 +4856,92 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 auditItems.setTimes(tWarehousebills.getfTimes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String code = approvalFlow.get("code").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//                Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("500".equals(code)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return approvalFlow; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                AjaxResult ajaxResult = storageFeeFollow(fPid, 6L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String code = ajaxResult.get("code").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//                Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if ("500".equals(code)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return ajaxResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                approvedStorageFee(fPid, 6L, new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return AjaxResult.success(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return AjaxResult.success(tWarehousebills); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     *  计算仓储费审核通过 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param warehouseId   主表id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param fettle   状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param date   审核时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void approvedStorageFee(Long warehouseId, Long fettle, Date date) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(warehouseId, fettle, date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 查出主表数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (Objects.isNull(warehouseBills)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new WarehouseException("未找到仓储信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(warehouseBills.getfId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isEmpty(feesList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new WarehouseException("未找到需要跟新的费用信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 过滤出明细信息查询是否存在已计算仓储费 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> ids = feesList.stream().map(TWarehousebillsfees::getSrcId).distinct().collect(toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (tWarehousebillsitemsMapper.selectIsCalculateStorageFeesByIds(ids) > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new WarehouseException("计算费用中存在已计算仓储费信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (TWarehousebillsfees fees : feesList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            storageFeeUpdateItem(warehouseBills, fees); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 计算仓储费计算更新出库货转信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param warehouseBills 主表信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param fees           仓储费信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void storageFeeUpdateItem(TWarehouseBills warehouseBills, TWarehousebillsfees fees) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Date chargeDate = DateUtils.addDays(fees.getfBillingDeadline(), 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 如果是库存总帐 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (WarehouseTypeEnum.KCZZ.getType().equals(fees.getfBilltype())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TWhgenleg whgenleg = new TWhgenleg(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            whgenleg.setfId(fees.getSrcId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            whgenleg.setfChargedate(chargeDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tWhgenlegMapper.updateTWhgenleg(whgenleg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 如果计算之前信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!fees.getfBillingDeadline().after(warehouseBills.getUpdateTime())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 查询时间区间内的仓储业务明细信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> timeList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                timeList.add(DateUtils.dateToString(DateUtils.dateConversionMin(fees.getfBillingDeadline()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                timeList.add(DateUtils.dateToString(DateUtils.dateConversionMax(warehouseBills.getUpdateTime()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                warehouseBills.setItemBsDateList(timeList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<TWarehousebillsitems> warehousebillsitemsList = tWarehousebillsitemsMapper.selectListByCorpId(warehouseBills); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 过滤出出库、货转,更新对应仓储费计费日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<TWarehousebillsitems> itemList = warehousebillsitemsList.stream().filter(li -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        li.getfBilltype().equals(WarehouseTypeEnum.SJCK.getType()) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                li.getfBilltype().equals(WarehouseTypeEnum.HQZY.getType())).collect(toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (CollectionUtils.isNotEmpty(itemList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    itemList.forEach(li -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        li.setfChargedate(chargeDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        li.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        tWarehousebillsitemsMapper.updateTWarehousebillsitems(li); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TWarehousebillsitems billsItem = new TWarehousebillsitems(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            billsItem.setfId(fees.getSrcId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            billsItem.setfChargedate(chargeDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ("SJCK".equals(fees.getfBilltype())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                billsItem.setfStorageFeeDeadline(fees.getfBillingDeadline()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                billsItem.setIsCalculateStorageFees(WarehouseTypeEnum.CALCULATE.getType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tWarehousebillsitemsMapper.updateTWarehousebillsitems(billsItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult insertStorageFeeList(List<StorageChargeInsert> storageChargeInsert, LoginUser loginUser, String billsType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (CollectionUtils.isEmpty(storageChargeInsert)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5023,13 +5042,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return approvalFlow; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    AjaxResult ajaxResult = storageFeeFollow(fPid, 6L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    String code = ajaxResult.get("code").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//                Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if ("500".equals(code)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return ajaxResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    approvedStorageFee(fPid, 6L, new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return AjaxResult.success(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |