|  | @@ -587,7 +587,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                  Date minDate = warehousebillsitemsList.get(0).getfBsdate();
 | 
	
		
			
				|  |  |                  for (int i = 0; i < totalCount; i++) {
 | 
	
		
			
				|  |  |                      Date date = warehousebillsitemsList.get(i).getfBsdate();
 | 
	
		
			
				|  |  | -                    if (minDate.before(date)) {
 | 
	
		
			
				|  |  | +                    if (minDate.after(date)) {
 | 
	
		
			
				|  |  |                          minDate = date;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
	
		
			
				|  | @@ -711,6 +711,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                  tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        //查询删除的仓储费收费信息
 | 
	
		
			
				|  |  | +        List<Long> longs = tWarehousebillsfeesMapper.selectTWarehousebillsfeesSrcId(fPid);
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(longs)){
 | 
	
		
			
				|  |  | +            int i = tWarehousebillsitemsMapper.updatefStorageFeeDeadline(fPid, longs);
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +            int i = tWarehousebillsitemsMapper.updatefStorageFeeDeadlinefPid(fPid);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
 | 
	
		
			
				|  |  |          warehousebillsitems.setfPid(fPid);
 | 
	
		
			
				|  |  |          map.put("warehouseBills", tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId()));
 | 
	
	
		
			
				|  | @@ -3671,6 +3678,117 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |          map.put("itemsList", itemsList);
 | 
	
		
			
				|  |  |          return map;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 批量生成计算仓储费信息
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param warehouseBills
 | 
	
		
			
				|  |  | +     * @param mapItem
 | 
	
		
			
				|  |  | +     * @param loginUser
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public Map<String, Object> getWarehouseItemsList(TWarehouseBills warehouseBills, List<Map<String, Object>> mapItem, LoginUser loginUser) {
 | 
	
		
			
				|  |  | +        Map<String, Object> map = new HashMap<>();
 | 
	
		
			
				|  |  | +        long feeId = 0L;
 | 
	
		
			
				|  |  | +        BigDecimal sumAmt = new BigDecimal(0);
 | 
	
		
			
				|  |  | +        List<TWarehousebillsfees> itemsList = new ArrayList<>();
 | 
	
		
			
				|  |  | +        List<SysDictData> taxRate = sysDictDataMapper.selectDictDataByType("tax_rate");
 | 
	
		
			
				|  |  | +        for (Map<String, Object> item : mapItem) {
 | 
	
		
			
				|  |  | +            if (StringUtils.isNull(item.get("fBillingway"))) {
 | 
	
		
			
				|  |  | +                map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到库存总账的计费单位,请确认");
 | 
	
		
			
				|  |  | +                return map;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            Date fBsdate = (Date) item.get("fBsdate");
 | 
	
		
			
				|  |  | +            long fCorpid = warehouseBills.getfCorpid();
 | 
	
		
			
				|  |  | +            String fBilltype = (String) item.get("fBilltype");
 | 
	
		
			
				|  |  | +            long fGoodsid = Long.parseLong((String) item.get("fTypeid"));
 | 
	
		
			
				|  |  | +            long fId = Long.valueOf(String.valueOf(item.get("fId"))).longValue();
 | 
	
		
			
				|  |  | +            // 累计计费天数
 | 
	
		
			
				|  |  | +            long accumulatedDays = DateUtils.getDateDay((Date) item.get("fChargedate"), (Date) item.get("fOriginalbilldate"));
 | 
	
		
			
				|  |  | +            // 库存天数
 | 
	
		
			
				|  |  | +            long fInventoryDays = 0L;
 | 
	
		
			
				|  |  | +            // 要计费天数
 | 
	
		
			
				|  |  | +            long fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
 | 
	
		
			
				|  |  | +            if ("SJCK".equals(fBilltype)) {
 | 
	
		
			
				|  |  | +                fInventoryDays = DateUtils.getDateDay(fBsdate, (Date) item.get("fOriginalbilldate"));
 | 
	
		
			
				|  |  | +                fBillingDays = fInventoryDays;
 | 
	
		
			
				|  |  | +            } else if ("HQZY".equals(fBilltype)) {
 | 
	
		
			
				|  |  | +                fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), fBsdate);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fChargedate"));
 | 
	
		
			
				|  |  | +                fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            /*if ("KCZZ".equals(fBilltype)) {
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                fInventoryDays = Long.valueOf(String.valueOf(item.get("fBillingDays")));
 | 
	
		
			
				|  |  | +            }*/
 | 
	
		
			
				|  |  | +            Long dictLabel = Long.valueOf(String.valueOf(item.get("fBillingway")));
 | 
	
		
			
				|  |  | +            BigDecimal fQty = acquiredQuantity(item, dictLabel);
 | 
	
		
			
				|  |  | +            if (fQty.equals(BigDecimal.ZERO)) {
 | 
	
		
			
				|  |  | +                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  | +                return AjaxResult.error("单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到计费单位,请确认");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            // 计算仓储费明细
 | 
	
		
			
				|  |  | +            Map<String, Object> objectMap = tWarehouseAgreementService.getCarryingCost(fCorpid, fGoodsid, fBillingDays, dictLabel, fQty, accumulatedDays);
 | 
	
		
			
				|  |  | +            if (StringUtils.isNull(objectMap)) {
 | 
	
		
			
				|  |  | +                map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到仓储费协议,请确认");
 | 
	
		
			
				|  |  | +                return map;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            String mblno = "";
 | 
	
		
			
				|  |  | +            if (StringUtils.isNotNull(item.get("fMblno"))) {
 | 
	
		
			
				|  |  | +                mblno = item.get("fMblno").toString();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            String remark = objectMap.get("remark").toString();
 | 
	
		
			
				|  |  | +            feeId = Long.valueOf(String.valueOf(objectMap.get("feeId"))).longValue();
 | 
	
		
			
				|  |  | +            BigDecimal amt = (BigDecimal) objectMap.get("amt");
 | 
	
		
			
				|  |  | +            map.put("feeId", feeId);
 | 
	
		
			
				|  |  | +            map.put("itemFeeId", objectMap.get("feeId"));
 | 
	
		
			
				|  |  | +            sumAmt = sumAmt.add(amt).setScale(2, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +            TWarehousebillsfees fees = new TWarehousebillsfees();
 | 
	
		
			
				|  |  | +            fees.setfFeeid(feeId);
 | 
	
		
			
				|  |  | +            fees.setfDc("D");
 | 
	
		
			
				|  |  | +            fees.setfAmt(amt);
 | 
	
		
			
				|  |  | +            fees.setSrcId(fId);
 | 
	
		
			
				|  |  | +            fees.setfMblno(mblno);
 | 
	
		
			
				|  |  | +            fees.setRemark(remark);
 | 
	
		
			
				|  |  | +            fees.setfFeeunitid(2L);
 | 
	
		
			
				|  |  | +            fees.setfAmount(sumAmt);
 | 
	
		
			
				|  |  | +            fees.setfBillstatus(2L);
 | 
	
		
			
				|  |  | +            fees.setfCurrency("RMB");
 | 
	
		
			
				|  |  | +            fees.setfBsdate(fBsdate);
 | 
	
		
			
				|  |  | +            fees.setfBillingQty(fQty);
 | 
	
		
			
				|  |  | +            fees.setfUnitprice(sumAmt);
 | 
	
		
			
				|  |  | +            fees.setfBilltype(fBilltype);
 | 
	
		
			
				|  |  | +            fees.setfBillingDays(fBillingDays);
 | 
	
		
			
				|  |  | +            fees.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +            fees.setfQty(new BigDecimal(1));
 | 
	
		
			
				|  |  | +            fees.setfPid(warehouseBills.getfId());
 | 
	
		
			
				|  |  | +            fees.setfInventoryDays(fInventoryDays);
 | 
	
		
			
				|  |  | +            fees.setfExrate(new BigDecimal(1));
 | 
	
		
			
				|  |  | +            fees.setfCorpid(warehouseBills.getfCorpid());
 | 
	
		
			
				|  |  | +            fees.setfMarks(item.get("fMarks").toString());
 | 
	
		
			
				|  |  | +            fees.setSrcBillNo((String) item.get("fBillno"));
 | 
	
		
			
				|  |  | +            fees.setfChargedate((Date) item.get("fChargedate"));
 | 
	
		
			
				|  |  | +            fees.setCreateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  | +            fees.setfProductName(item.get("fGoodsids").toString());
 | 
	
		
			
				|  |  | +            if ("SJCK".equals(fBilltype)) {
 | 
	
		
			
				|  |  | +                fees.setfBillingDeadline(fBsdate);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                fees.setfBillingDeadline(warehouseBills.getfBillingDeadline());
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            fees.setfTaxrate(new BigDecimal(taxRate.get(0).getDictValue()));
 | 
	
		
			
				|  |  | +            fees.setfOriginalbilldate((Date) item.get("fOriginalbilldate"));
 | 
	
		
			
				|  |  | +            fees.setfBillingway(Long.valueOf(String.valueOf(item.get("fBillingway"))).longValue());
 | 
	
		
			
				|  |  | +            //tWarehousebillsfeesMapper.insertTWarehousebillsfees(fees);
 | 
	
		
			
				|  |  | +            itemsList.add(fees);
 | 
	
		
			
				|  |  | +            TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
 | 
	
		
			
				|  |  | +            /*warehousebillsitems.setfId(fId);
 | 
	
		
			
				|  |  | +            warehousebillsitems.setfStorageFeeDeadline(fBsdate);
 | 
	
		
			
				|  |  | +            int i = tWarehousebillsitemsMapper.updateTWarehousebillsitems(warehousebillsitems);*/
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        map.put("sumAmt", sumAmt);
 | 
	
		
			
				|  |  | +        map.put("itemsList", itemsList);
 | 
	
		
			
				|  |  | +        return map;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 新增库存费计算
 | 
	
	
		
			
				|  | @@ -3755,6 +3873,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | +    @Transactional
 | 
	
		
			
				|  |  |      public AjaxResult calculateStorageFeesList(List<TWarehouseBills> tWarehouseBillsList, LoginUser loginUser, String billsType) {
 | 
	
		
			
				|  |  |          if (CollectionUtils.isEmpty(tWarehouseBillsList)){
 | 
	
		
			
				|  |  |              return AjaxResult.error("请输入筛选条件,再计算仓储费");
 | 
	
	
		
			
				|  | @@ -3765,7 +3884,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                  return AjaxResult.error("请选择客户信息");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              long fPid = 0L;
 | 
	
		
			
				|  |  | -            if (StringUtils.isNull(tWarehouseBills.getfId())) {
 | 
	
		
			
				|  |  | +            /*if (StringUtils.isNull(tWarehouseBills.getfId())) {
 | 
	
		
			
				|  |  |                  // 生成流水号
 | 
	
		
			
				|  |  |                  Date time = new Date();
 | 
	
		
			
				|  |  |                  String billNo = billnoSerialServiceImpl.getSerialNumber("JSCCF", time);
 | 
	
	
		
			
				|  | @@ -3777,16 +3896,16 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                  tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
 | 
	
		
			
				|  |  |                  tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  |                  tWarehouseBills.setCreateTime(new Date());
 | 
	
		
			
				|  |  | -                tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
 | 
	
		
			
				|  |  | -                fPid = tWarehouseBills.getfId();
 | 
	
		
			
				|  |  | +                //tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
 | 
	
		
			
				|  |  | +                //fPid = tWarehouseBills.getfId();
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  | -                tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
 | 
	
		
			
				|  |  | -                tWarehousebillsitemsMapper.deleteByFPid(tWarehouseBills.getfId());
 | 
	
		
			
				|  |  | +                //tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
 | 
	
		
			
				|  |  | +                //tWarehousebillsitemsMapper.deleteByFPid(tWarehouseBills.getfId());
 | 
	
		
			
				|  |  |                  tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  |                  tWarehouseBills.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | -                tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
 | 
	
		
			
				|  |  | -                fPid = tWarehouseBills.getfId();
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +                //tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
 | 
	
		
			
				|  |  | +                //fPid = tWarehouseBills.getfId();
 | 
	
		
			
				|  |  | +            }*/
 | 
	
		
			
				|  |  |              // 计划物资明细
 | 
	
		
			
				|  |  |              List<TWarehousebillsfees> itemsList = new ArrayList<>();
 | 
	
		
			
				|  |  |              BigDecimal bigDecimal = new BigDecimal(0);
 | 
	
	
		
			
				|  | @@ -3798,14 +3917,14 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |              // 查询 出库 货转的库存明细
 | 
	
		
			
				|  |  |              List<Map<String, Object>> warehousebillsitemsList = tWarehousebillsitemsMapper.selectStorageFeeItemList(tWarehouseBills);
 | 
	
		
			
				|  |  |              if (warehousebillsitemsList.size() != 0) {
 | 
	
		
			
				|  |  | -                Map<String, Object> mapItem = getWarehouseItems(tWarehouseBills, warehousebillsitemsList, loginUser);
 | 
	
		
			
				|  |  | +                Map<String, Object> mapItem = getWarehouseItemsList(tWarehouseBills, warehousebillsitemsList, loginUser);
 | 
	
		
			
				|  |  |                  if (mapItem.containsKey("error")) {
 | 
	
		
			
				|  |  |                      TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  |                      return AjaxResult.error((String) mapItem.get("error"));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  itemsList = (List<TWarehousebillsfees>) mapItem.get("itemsList");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            List<Map<String, Object>> tWhgenlegs = tWhgenlegMapper.selectStorageFeeItemList(tWarehouseBills);
 | 
	
		
			
				|  |  | +            /*List<Map<String, Object>> tWhgenlegs = tWhgenlegMapper.selectStorageFeeItemList(tWarehouseBills);
 | 
	
		
			
				|  |  |              if (tWhgenlegs.size() != 0) {
 | 
	
		
			
				|  |  |                  Map<String, Object> mapItem = getWarehouseItems(tWarehouseBills, tWhgenlegs, loginUser);
 | 
	
		
			
				|  |  |                  if (mapItem.containsKey("error")) {
 | 
	
	
		
			
				|  | @@ -3818,7 +3937,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                          itemsList.add(ite);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +            }*/
 | 
	
		
			
				|  |  |              TFees tFees = new TFees();
 | 
	
		
			
				|  |  |              tFees.setfStatus("2");
 | 
	
		
			
				|  |  |              tFees.setDelFlag("0");
 | 
	
	
		
			
				|  | @@ -4014,7 +4133,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                  tWarehousebills.setfBsdeptid(loginUser.getUser().getDeptId());
 | 
	
		
			
				|  |  |                  tWarehousebills.setCreateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  |                  tWarehousebills.setCreateTime(new Date());
 | 
	
		
			
				|  |  | -                tWarehousebills.setfBilltype(chargeInsert.getBillsType());
 | 
	
		
			
				|  |  | +                tWarehousebills.setfBilltype(billsType);
 | 
	
		
			
				|  |  |                  tWarehouseBillsMapper.insertTWarehousebills(tWarehousebills);
 | 
	
		
			
				|  |  |                  fPid = tWarehousebills.getfId();
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -4057,7 +4176,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                      // 存储委托方(货权方)
 | 
	
		
			
				|  |  |                      auditItems.setRefno1(tWarehousebills.getfCorpid() + "");
 | 
	
		
			
				|  |  |                      // 存储业务类型(业务类型)
 | 
	
		
			
				|  |  | -                    auditItems.setRefno2(tWarehousebills.getfBilltype());
 | 
	
		
			
				|  |  | +                    auditItems.setRefno2(billsType);
 | 
	
		
			
				|  |  |                      // 存储提单号(提单号)
 | 
	
		
			
				|  |  |                      auditItems.setRefno3(tWarehousebills.getfMblno());
 | 
	
		
			
				|  |  |                      auditItems.setSendUserId(loginUser.getUser().getUserId());
 |