|  | @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  |  import com.ruoyi.basicData.domain.*;
 | 
	
		
			
				|  |  |  import com.ruoyi.basicData.mapper.*;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.AjaxResult;
 | 
	
		
			
				|  |  | +import com.ruoyi.common.core.domain.entity.SysDictData;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.entity.SysUser;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.model.LoginUser;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.utils.DateUtils;
 | 
	
	
		
			
				|  | @@ -13,6 +14,7 @@ import com.ruoyi.common.utils.StringUtils;
 | 
	
		
			
				|  |  |  import com.ruoyi.reportManagement.domain.TWhgenleg;
 | 
	
		
			
				|  |  |  import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
 | 
	
		
			
				|  |  |  import com.ruoyi.system.mapper.SysDeptMapper;
 | 
	
		
			
				|  |  | +import com.ruoyi.system.mapper.SysDictDataMapper;
 | 
	
		
			
				|  |  |  import com.ruoyi.system.mapper.SysUserMapper;
 | 
	
		
			
				|  |  |  import com.ruoyi.warehouseBusiness.domain.*;
 | 
	
		
			
				|  |  |  import com.ruoyi.warehouseBusiness.mapper.*;
 | 
	
	
		
			
				|  | @@ -59,6 +61,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |      private TWarehouseMapper tWarehouseMapper;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  | +    private SysDictDataMapper sysDictDataMapper;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  |      private TWarehouseAreaMapper tWarehouseAreaMapper;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
	
		
			
				|  | @@ -406,11 +411,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                      wbItem.setfPid(fPid);
 | 
	
		
			
				|  |  |                      wbItem.setCreateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  |                      wbItem.setCreateTime(new Date());
 | 
	
		
			
				|  |  | -                    wbItem.setfBillstatus("10");
 | 
	
		
			
				|  |  | +                    wbItem.setfBillstatus(10L);
 | 
	
		
			
				|  |  |                      tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
 | 
	
		
			
				|  |  |                      if(!billsType.equals("HQZY")){
 | 
	
		
			
				|  |  |                          // 添加状态log
 | 
	
		
			
				|  |  | -                        insertTWarehousebillsLog(wbItem, 10l,loginUser);
 | 
	
		
			
				|  |  | +                        insertTWarehousebillsLog(wbItem, 10L,loginUser);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  tWarehousebillsitemsList.add(wbItem);
 | 
	
	
		
			
				|  | @@ -514,12 +519,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              int num = 0;
 | 
	
		
			
				|  |  |              if (StringUtils.isNotNull(item.getfId())) {
 | 
	
		
			
				|  |  | -                item.setfBillstatus("40");
 | 
	
		
			
				|  |  | +                item.setfBillstatus(40L);
 | 
	
		
			
				|  |  |                  item.setUpdateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  |                  item.setUpdateTime(new Date());
 | 
	
		
			
				|  |  |                  num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
 | 
	
		
			
				|  |  |                  // 添加状态log
 | 
	
		
			
				|  |  | -                insertTWarehousebillsLog(item,40l,loginUser);
 | 
	
		
			
				|  |  | +                insertTWarehousebillsLog(item,40L,loginUser);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if (num <= 0) {
 | 
	
		
			
				|  |  |                  TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
	
		
			
				|  | @@ -661,14 +666,14 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |              i++;
 | 
	
		
			
				|  |  |              int num = 0;
 | 
	
		
			
				|  |  |              if (StringUtils.isNotNull(wbItem.getfId())) {
 | 
	
		
			
				|  |  | -                wbItem.setfBillstatus("40");
 | 
	
		
			
				|  |  | +                wbItem.setfBillstatus(40L);
 | 
	
		
			
				|  |  |                  wbItem.setfBsdate(tWarehouseBills.getfBsdate());
 | 
	
		
			
				|  |  |                  wbItem.setUpdateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  |                  wbItem.setUpdateTime(new Date());
 | 
	
		
			
				|  |  |                  num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(wbItem);
 | 
	
		
			
				|  |  |                  if("SJCK".equals(billsType)){
 | 
	
		
			
				|  |  |                      // 添加状态log
 | 
	
		
			
				|  |  | -                    insertTWarehousebillsLog(wbItem,40l,loginUser);
 | 
	
		
			
				|  |  | +                    insertTWarehousebillsLog(wbItem,40L,loginUser);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if (num <= 0) {
 | 
	
	
		
			
				|  | @@ -687,7 +692,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    public AjaxResult waitWarehousing(String warehouseBills, String warehousebillsitems, LoginUser loginUser, String status,String billtystatus) {
 | 
	
		
			
				|  |  | +    public AjaxResult waitWarehousing(String warehouseBills, String warehousebillsitems, LoginUser loginUser, Long status,String billtystatus) {
 | 
	
		
			
				|  |  |          Map<String, Object> map = new HashMap<>();
 | 
	
		
			
				|  |  |          if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
 | 
	
		
			
				|  |  |              return AjaxResult.error("未找到主表信息");
 | 
	
	
		
			
				|  | @@ -722,7 +727,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                  item.setUpdateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  |                  num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
 | 
	
		
			
				|  |  |                  // 添加状态log
 | 
	
		
			
				|  |  | -                insertTWarehousebillsLog(item,Long.parseLong(status),loginUser);
 | 
	
		
			
				|  |  | +                insertTWarehousebillsLog(item,status,loginUser);
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  item.setfPid(tWarehouseBills.getfId());
 | 
	
		
			
				|  |  |                  item.setfBillno(tWarehouseBills.getfBillno());
 | 
	
	
		
			
				|  | @@ -732,7 +737,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                  num = tWarehousebillsitemsMapper.insertTWarehousebillsitems(item);
 | 
	
		
			
				|  |  |                  // 添加状态log
 | 
	
		
			
				|  |  |                  insertTWarehousebillsLog(item,10L,loginUser);
 | 
	
		
			
				|  |  | -                insertTWarehousebillsLog(item,Long.parseLong(status),loginUser);
 | 
	
		
			
				|  |  | +                insertTWarehousebillsLog(item,status,loginUser);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if (num <= 0) {
 | 
	
		
			
				|  |  |                  TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
	
		
			
				|  | @@ -745,6 +750,302 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |          return AjaxResult.success("成功", map);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 新增库存费计算
 | 
	
		
			
				|  |  | +     * @param tWarehouseBills   主表的查询条件
 | 
	
		
			
				|  |  | +     * @param loginUser         登录用户
 | 
	
		
			
				|  |  | +     * @param billsType         状态
 | 
	
		
			
				|  |  | +     * @return  结果
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    @Transactional
 | 
	
		
			
				|  |  | +    public AjaxResult calculateStorageFees(TWarehouseBills tWarehouseBills, LoginUser loginUser, String billsType) {
 | 
	
		
			
				|  |  | +        if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
 | 
	
		
			
				|  |  | +            return AjaxResult.error("请选择客户信息");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        long fPid = 0L;
 | 
	
		
			
				|  |  | +        if (StringUtils.isNull(tWarehouseBills.getfId())) {
 | 
	
		
			
				|  |  | +            tWarehouseBills.setfBilltype(billsType);
 | 
	
		
			
				|  |  | +            tWarehouseBills.setfBillstatus(6L);
 | 
	
		
			
				|  |  | +            tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
 | 
	
		
			
				|  |  | +            tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  | +            tWarehouseBills.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +            tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
 | 
	
		
			
				|  |  | +            fPid = tWarehouseBills.getfId();
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            fPid = tWarehouseBills.getfId();
 | 
	
		
			
				|  |  | +            tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  | +            tWarehouseBills.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +            tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
 | 
	
		
			
				|  |  | +            tWarehousebillsfeesMapper.deleteByFPid(fPid);
 | 
	
		
			
				|  |  | +            tWarehousebillsitemsMapper.deleteByFPid(fPid);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 应收费用明细
 | 
	
		
			
				|  |  | +        List<TWarehousebillsfees> warehousebillsfeesList = new ArrayList<>();
 | 
	
		
			
				|  |  | +        // 计划物资明细
 | 
	
		
			
				|  |  | +        List<TWarehousebillsitems> itemsList = new ArrayList<>();
 | 
	
		
			
				|  |  | +        BigDecimal bigDecimal = new BigDecimal(0);
 | 
	
		
			
				|  |  | +        Map<String, Object> map = new HashMap<>();
 | 
	
		
			
				|  |  | +        // 库存明细id
 | 
	
		
			
				|  |  | +        long itemFeeId = 0;
 | 
	
		
			
				|  |  | +        // 库存总账id
 | 
	
		
			
				|  |  | +        long whgenlegFeeId = 0;
 | 
	
		
			
				|  |  | +        // 计费单位
 | 
	
		
			
				|  |  | +        long feeUnitid = 1;
 | 
	
		
			
				|  |  | +        // 查询 出库 货转的库存明细
 | 
	
		
			
				|  |  | +        List<TWarehousebillsitems> warehousebillsitemsList = tWarehousebillsitemsMapper.selectStorageFeeItemList(tWarehouseBills);
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotNull(warehousebillsitemsList)) {
 | 
	
		
			
				|  |  | +            // 出库货转的金额总和
 | 
	
		
			
				|  |  | +            BigDecimal sumAmt = new BigDecimal(0);
 | 
	
		
			
				|  |  | +            long fCorpid = tWarehouseBills.getfCorpid();
 | 
	
		
			
				|  |  | +            for (TWarehousebillsitems item : warehousebillsitemsList) {
 | 
	
		
			
				|  |  | +                if (StringUtils.isNull(item.getfBillingway())) {
 | 
	
		
			
				|  |  | +                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  | +                    return AjaxResult.error("未找到库存总账的计费单位,请确认");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                TGoods tGoods = tGoodsMapper.selectTGoodsById(item.getfGoodsid());
 | 
	
		
			
				|  |  | +                long fGoodsid = tGoods.getfTypeid();
 | 
	
		
			
				|  |  | +                long dateDay = DateUtils.getDateDay(tWarehouseBills.getfBillingDeadline(), item.getfChargedate());
 | 
	
		
			
				|  |  | +                long fInventoryDays = DateUtils.getDateDay(tWarehouseBills.getfBillingDeadline(), item.getfOriginalbilldate());
 | 
	
		
			
				|  |  | +                Long dictLabel = item.getfBillingway();
 | 
	
		
			
				|  |  | +                BigDecimal fQty = this.acquiredQuantity(item, dictLabel);
 | 
	
		
			
				|  |  | +                if (fQty.compareTo(bigDecimal) == 0) {
 | 
	
		
			
				|  |  | +                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  | +                    return AjaxResult.error("未找到计费单位,请确认");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                // 计算仓储费明细
 | 
	
		
			
				|  |  | +                Map<String, Object> objectMap = tWarehouseAgreementService.getCarryingCost(fCorpid, fGoodsid, dateDay, dictLabel, fQty , fInventoryDays);
 | 
	
		
			
				|  |  | +                itemFeeId = (long)objectMap.get("feeId");
 | 
	
		
			
				|  |  | +                BigDecimal amt = (BigDecimal) objectMap.get("amt");
 | 
	
		
			
				|  |  | +                sumAmt = sumAmt.add(amt);
 | 
	
		
			
				|  |  | +                item.setfAmt(amt);
 | 
	
		
			
				|  |  | +                item.setfBillingQty(fQty);
 | 
	
		
			
				|  |  | +                item.setfInventoryDays(fInventoryDays);
 | 
	
		
			
				|  |  | +                item.setfBillstatus(50L);
 | 
	
		
			
				|  |  | +                item.setfChargedate(tWarehouseBills.getfBillingDeadline());
 | 
	
		
			
				|  |  | +                item.setfBillingDeadline(tWarehouseBills.getfBillingDeadline());
 | 
	
		
			
				|  |  | +                item.setUpdateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  | +                item.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +                item.setfId(null);
 | 
	
		
			
				|  |  | +                item.setfPid(fPid);
 | 
	
		
			
				|  |  | +                tWarehousebillsitemsMapper.insertTWarehousebillsitems(item);
 | 
	
		
			
				|  |  | +                itemsList.add(item);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            TWarehousebillsfees fees = new TWarehousebillsfees();
 | 
	
		
			
				|  |  | +            fees.setfPid(fPid);
 | 
	
		
			
				|  |  | +            fees.setfFeeid(itemFeeId);
 | 
	
		
			
				|  |  | +            fees.setfCorpid(tWarehouseBills.getfCorpid());
 | 
	
		
			
				|  |  | +//            fees.setfFeeUnitid(feeUnitid);
 | 
	
		
			
				|  |  | +            fees.setfQty(new BigDecimal(1));
 | 
	
		
			
				|  |  | +            fees.setfUnitprice(sumAmt);
 | 
	
		
			
				|  |  | +            fees.setfAmount(sumAmt);
 | 
	
		
			
				|  |  | +            fees.setfExrate(new BigDecimal(1));
 | 
	
		
			
				|  |  | +            fees.setfCurrency("RMB");
 | 
	
		
			
				|  |  | +            List<SysDictData> taxRate = sysDictDataMapper.selectDictDataByType("tax_rate");
 | 
	
		
			
				|  |  | +            fees.setfDc("D");
 | 
	
		
			
				|  |  | +            fees.setfTaxrate(new BigDecimal(taxRate.get(0).getDictValue()));
 | 
	
		
			
				|  |  | +            fees.setCreateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  | +            fees.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +            tWarehousebillsfeesMapper.insertTWarehousebillsfees(fees);
 | 
	
		
			
				|  |  | +            warehousebillsfeesList.add(fees);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        List<TWhgenleg> tWhgenlegs = tWhgenlegMapper.selectStorageFeeItemList(tWarehouseBills);
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotNull(tWhgenlegs)) {
 | 
	
		
			
				|  |  | +            // 出库货转的金额总和
 | 
	
		
			
				|  |  | +            BigDecimal sumAmt = new BigDecimal(0);
 | 
	
		
			
				|  |  | +            for (TWhgenleg wg : tWhgenlegs) {
 | 
	
		
			
				|  |  | +                TGoods tGoods = tGoodsMapper.selectTGoodsById(wg.getfGoodsid());
 | 
	
		
			
				|  |  | +                long fGoodsid = tGoods.getfTypeid();
 | 
	
		
			
				|  |  | +                long dateDay = DateUtils.getDateDay(tWarehouseBills.getfBillingDeadline(), wg.getfChargedate());
 | 
	
		
			
				|  |  | +                long fInventoryDays = DateUtils.getDateDay(tWarehouseBills.getfBillingDeadline(), wg.getfOriginalbilldate());
 | 
	
		
			
				|  |  | +                wg.setfChargedate(tWarehouseBills.getfBillingDeadline());
 | 
	
		
			
				|  |  | +                long dictLabel = wg.getfBillingway();
 | 
	
		
			
				|  |  | +                BigDecimal fQty = this.getInventoryQuantity(wg, dictLabel);
 | 
	
		
			
				|  |  | +                if (fQty.compareTo(bigDecimal) == 0) {
 | 
	
		
			
				|  |  | +                    return AjaxResult.error("未找到计费单位,请确认");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                // 计算仓储费明细
 | 
	
		
			
				|  |  | +                Map<String, Object> objectMap = tWarehouseAgreementService.getCarryingCost(wg.getfCorpid(), fGoodsid, dateDay, dictLabel, fQty , fInventoryDays);
 | 
	
		
			
				|  |  | +                whgenlegFeeId = (long)objectMap.get("feeId");
 | 
	
		
			
				|  |  | +                BigDecimal amt = (BigDecimal) objectMap.get("amt");
 | 
	
		
			
				|  |  | +                sumAmt = sumAmt.add(amt);
 | 
	
		
			
				|  |  | +                TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfPid(fPid);
 | 
	
		
			
				|  |  | +                // 仓库总账
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfBilltype("CKZZ");
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfBillno(wg.getfOriginalbillno());
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfGoodsid(wg.getfGoodsid());
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfOriginalbilldate(wg.getfOriginalbilldate());
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfBillingway(wg.getfBillingway());
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfBillingQty(fQty);
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfChargedate(wg.getfChargedate());
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfBillingDeadline(tWarehouseBills.getfBillingDeadline());
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfBillingDays(dateDay);
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfAmt(amt);
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setCreateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +                tWarehousebillsitems.setfBillstatus(50L);
 | 
	
		
			
				|  |  | +                tWarehousebillsitemsMapper.insertTWarehousebillsitems(tWarehousebillsitems);
 | 
	
		
			
				|  |  | +                itemsList.add(tWarehousebillsitems);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            TWarehousebillsfees fees = new TWarehousebillsfees();
 | 
	
		
			
				|  |  | +            fees.setfPid(fPid);
 | 
	
		
			
				|  |  | +            fees.setfFeeid(whgenlegFeeId);
 | 
	
		
			
				|  |  | +            fees.setfCorpid(tWarehouseBills.getfCorpid());
 | 
	
		
			
				|  |  | +//        fees.setfFeeUnitid(feeUnitid);
 | 
	
		
			
				|  |  | +            fees.setfQty(new BigDecimal(1));
 | 
	
		
			
				|  |  | +            fees.setfUnitprice(sumAmt);
 | 
	
		
			
				|  |  | +            fees.setfAmount(sumAmt);
 | 
	
		
			
				|  |  | +            fees.setfExrate(new BigDecimal(1));
 | 
	
		
			
				|  |  | +            fees.setfCurrency("RMB");
 | 
	
		
			
				|  |  | +            List<SysDictData> taxRate = sysDictDataMapper.selectDictDataByType("tax_rate");
 | 
	
		
			
				|  |  | +            fees.setfDc("D");
 | 
	
		
			
				|  |  | +            fees.setfTaxrate(new BigDecimal(taxRate.get(0).getDictValue()));
 | 
	
		
			
				|  |  | +            fees.setCreateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  | +            fees.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +            tWarehousebillsfeesMapper.insertTWarehousebillsfees(fees);
 | 
	
		
			
				|  |  | +            warehousebillsfeesList.add(fees);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        TGoods tGoods = new TGoods();
 | 
	
		
			
				|  |  | +        tGoods.setfStatus("0");
 | 
	
		
			
				|  |  | +        tGoods.setDelFlag("0");
 | 
	
		
			
				|  |  | +        List<TGoods> goods = tGoodsMapper.selectTGoodsList(tGoods);
 | 
	
		
			
				|  |  | +        TFees tFees = new TFees();
 | 
	
		
			
				|  |  | +        tFees.setfStatus("0");
 | 
	
		
			
				|  |  | +        tFees.setDelFlag("0");
 | 
	
		
			
				|  |  | +        List<TFees> feesList = tFeesMapper.selectTFeesList(tFees);
 | 
	
		
			
				|  |  | +        map.put("goodsList", goods);
 | 
	
		
			
				|  |  | +        map.put("feesList", feesList);
 | 
	
		
			
				|  |  | +        map.put("warehouseItemList", itemsList);
 | 
	
		
			
				|  |  | +        map.put("warehouseFeesList", warehousebillsfeesList);
 | 
	
		
			
				|  |  | +        return AjaxResult.success(map);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 仓储费计算提交以及暂存
 | 
	
		
			
				|  |  | +     * @param warehouseBills
 | 
	
		
			
				|  |  | +     * @param warehouseItems
 | 
	
		
			
				|  |  | +     * @param warehouseFees
 | 
	
		
			
				|  |  | +     * @param loginUser
 | 
	
		
			
				|  |  | +     * @param billsType
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    @Transactional
 | 
	
		
			
				|  |  | +    public AjaxResult insertStorageFee(String warehouseBills, String warehouseItems, String warehouseFees, LoginUser loginUser, String billsType) {
 | 
	
		
			
				|  |  | +        TWarehouseBills tWarehousebills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
 | 
	
		
			
				|  |  | +        long fPid = 0L;
 | 
	
		
			
				|  |  | +        Long billstatus = tWarehousebills.getfBillstatus();
 | 
	
		
			
				|  |  | +        if (billstatus.equals(6L) && (StringUtils.isNull(warehouseItems) || "[]".equals(warehouseItems))) {
 | 
	
		
			
				|  |  | +            return AjaxResult.error("未找到计费物资明细无法提交");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (billstatus.equals(6L) && (StringUtils.isNull(warehouseFees) || "[]".equals(warehouseFees))) {
 | 
	
		
			
				|  |  | +            return AjaxResult.error("未找到应收款明细无法提交");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotNull(tWarehousebills.getfId())) {
 | 
	
		
			
				|  |  | +            fPid = tWarehousebills.getfId();
 | 
	
		
			
				|  |  | +            tWarehousebills.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +            tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  | +            tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
 | 
	
		
			
				|  |  | +            tWarehousebillsfeesMapper.deleteByFPid(fPid);
 | 
	
		
			
				|  |  | +            tWarehousebillsitemsMapper.deleteByFPid(fPid);
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            tWarehousebills.setCreateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  | +            tWarehousebills.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +            tWarehousebills.setfBilltype(billsType);
 | 
	
		
			
				|  |  | +            tWarehouseBillsMapper.insertTWarehousebills(tWarehousebills);
 | 
	
		
			
				|  |  | +            fPid = tWarehousebills.getfId();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotNull(warehouseItems) && !"[]".equals(warehouseItems)) {
 | 
	
		
			
				|  |  | +            JSONArray warehouseJSON = JSONArray.parseArray(warehouseItems);
 | 
	
		
			
				|  |  | +            List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
 | 
	
		
			
				|  |  | +            for (TWarehousebillsitems item : warehousebillsitemsList) {
 | 
	
		
			
				|  |  | +                item.setfId(null);
 | 
	
		
			
				|  |  | +                item.setfPid(fPid);
 | 
	
		
			
				|  |  | +                item.setfBilltype(billsType);
 | 
	
		
			
				|  |  | +                item.setfBillstatus(billstatus);
 | 
	
		
			
				|  |  | +                tWarehousebillsitemsMapper.insertTWarehousebillsitems(item);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotNull(warehouseFees) && !"[]".equals(warehouseFees)) {
 | 
	
		
			
				|  |  | +            JSONArray feesJSON = JSONArray.parseArray(warehouseFees);
 | 
	
		
			
				|  |  | +            List<TWarehousebillsfees> warehousebillsfeesList = JSONObject.parseArray(feesJSON.toJSONString(), TWarehousebillsfees.class);
 | 
	
		
			
				|  |  | +            for (TWarehousebillsfees fees : warehousebillsfeesList) {
 | 
	
		
			
				|  |  | +                fees.setfId(null);
 | 
	
		
			
				|  |  | +                fees.setfPid(fPid);
 | 
	
		
			
				|  |  | +                fees.setfDc("D");
 | 
	
		
			
				|  |  | +                fees.setfBillstatus(billstatus);
 | 
	
		
			
				|  |  | +                tWarehousebillsfeesMapper.insertTWarehousebillsfees(fees);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return AjaxResult.success();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     *  根据不同计费单位获取不同 计算库存明细数量
 | 
	
		
			
				|  |  | +     * @param item      库存明细
 | 
	
		
			
				|  |  | +     * @param dictLabel 计费单位
 | 
	
		
			
				|  |  | +     * @return 结果
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public BigDecimal acquiredQuantity (TWarehousebillsitems item, Long dictLabel) {
 | 
	
		
			
				|  |  | +        BigDecimal fQty = new BigDecimal(0);
 | 
	
		
			
				|  |  | +        // 件数
 | 
	
		
			
				|  |  | +        long boxNum = 1;
 | 
	
		
			
				|  |  | +        // 毛重
 | 
	
		
			
				|  |  | +        long grossWeight = 2;
 | 
	
		
			
				|  |  | +        // 净重
 | 
	
		
			
				|  |  | +        long netWeight = 3;
 | 
	
		
			
				|  |  | +        // 尺码
 | 
	
		
			
				|  |  | +        long size = 4;
 | 
	
		
			
				|  |  | +        // 尺码
 | 
	
		
			
				|  |  | +        long fixed = 5;
 | 
	
		
			
				|  |  | +        if (dictLabel.equals(boxNum)) {
 | 
	
		
			
				|  |  | +            fQty = new BigDecimal(item.getfQty());
 | 
	
		
			
				|  |  | +        } else if (dictLabel.equals(grossWeight)) {
 | 
	
		
			
				|  |  | +            fQty = item.getfGrossweight();
 | 
	
		
			
				|  |  | +        } else if (dictLabel.equals(netWeight)) {
 | 
	
		
			
				|  |  | +            fQty = item.getfNetweight();
 | 
	
		
			
				|  |  | +        } else if (dictLabel.equals(size)) {
 | 
	
		
			
				|  |  | +            fQty = item.getfVolumn();
 | 
	
		
			
				|  |  | +        } else if (dictLabel.equals(fixed)){
 | 
	
		
			
				|  |  | +            fQty = new BigDecimal(1);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return fQty;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     *  根据不同计费单位获取不同 计算库存总账数量
 | 
	
		
			
				|  |  | +     * @param whegen    库存总账
 | 
	
		
			
				|  |  | +     * @param dictLabel 计费单位
 | 
	
		
			
				|  |  | +     * @return 结果
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public BigDecimal getInventoryQuantity (TWhgenleg whegen, Long dictLabel) {
 | 
	
		
			
				|  |  | +        BigDecimal fQty = new BigDecimal(0);
 | 
	
		
			
				|  |  | +        // 件数
 | 
	
		
			
				|  |  | +        long boxNum = 1;
 | 
	
		
			
				|  |  | +        // 毛重
 | 
	
		
			
				|  |  | +        long grossWeight = 2;
 | 
	
		
			
				|  |  | +        // 净重
 | 
	
		
			
				|  |  | +        long netWeight = 3;
 | 
	
		
			
				|  |  | +        // 尺码
 | 
	
		
			
				|  |  | +        long size = 4;
 | 
	
		
			
				|  |  | +        // 尺码
 | 
	
		
			
				|  |  | +        long fixed = 5;
 | 
	
		
			
				|  |  | +        if (dictLabel.equals(boxNum)) {
 | 
	
		
			
				|  |  | +            fQty = new BigDecimal(whegen.getfQtyblc());
 | 
	
		
			
				|  |  | +        } else if (dictLabel.equals(grossWeight)) {
 | 
	
		
			
				|  |  | +            fQty = whegen.getfGrossweightblc();
 | 
	
		
			
				|  |  | +        } else if (dictLabel.equals(netWeight)) {
 | 
	
		
			
				|  |  | +            fQty = whegen.getfNetweightc();
 | 
	
		
			
				|  |  | +        } else if (dictLabel.equals(size)) {
 | 
	
		
			
				|  |  | +            fQty = whegen.getfVolumnblc();
 | 
	
		
			
				|  |  | +        } else if (dictLabel.equals(fixed)){
 | 
	
		
			
				|  |  | +            fQty = new BigDecimal(1);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return fQty;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      // 入库 收费明细 校验
 | 
	
		
			
				|  |  |      public Long check(BigDecimal number, BigDecimal unitPrice) {
 | 
	
		
			
				|  |  |          BigDecimal result1 = number.multiply(unitPrice);
 | 
	
	
		
			
				|  | @@ -818,7 +1119,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |          // 修改主表信息
 | 
	
		
			
				|  |  |          tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  |          tWarehousebills.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | -        tWarehousebills.setfBillstatus("3"); //撤销状态
 | 
	
		
			
				|  |  | +        tWarehousebills.setfBillstatus(3L); //撤销状态
 | 
	
		
			
				|  |  |          tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
 | 
	
		
			
				|  |  |          // 查询库存明细从表数据
 | 
	
		
			
				|  |  |          TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
 | 
	
	
		
			
				|  | @@ -968,7 +1269,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                      updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  i++;
 | 
	
		
			
				|  |  | -                wb.setfBillstatus("1");
 | 
	
		
			
				|  |  | +                wb.setfBillstatus(1L);
 | 
	
		
			
				|  |  |                  wb.setUpdateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  |                  wb.setUpdateTime(new Date());
 | 
	
		
			
				|  |  |                  if (tWarehousebillsitemsMapper.updateTWarehousebillsitems(wb) <= 0) {
 | 
	
	
		
			
				|  | @@ -992,7 +1293,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |          tWarehousebillsitems.setfPid(warehouseBill.getfId());
 | 
	
		
			
				|  |  |          List<TWarehousebillsitems> warehousebillsitemsList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
 | 
	
		
			
				|  |  |          for (TWarehousebillsitems item : warehousebillsitemsList1) {
 | 
	
		
			
				|  |  | -             if (item.getfBillstatus().equals("40") | item.getfBillstatus().equals("90")) {
 | 
	
		
			
				|  |  | +             if (item.getfBillstatus().equals(40L) | item.getfBillstatus().equals(90L)) {
 | 
	
		
			
				|  |  |                  Stored++;
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  notInStorage++;
 | 
	
	
		
			
				|  | @@ -1003,11 +1304,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |          TWarehouseBills warehouseBill1 = new TWarehouseBills();
 | 
	
		
			
				|  |  |          warehouseBill1.setfId(warehouseBill.getfId());
 | 
	
		
			
				|  |  |          if (Objects.equals(Stored, 0)) { // 未入库
 | 
	
		
			
				|  |  | -            warehouseBill1.setfItemsStatus("1");
 | 
	
		
			
				|  |  | +            warehouseBill1.setfItemsStatus(1L);
 | 
	
		
			
				|  |  |          } else if (Objects.equals(notInStorage, 0)) { // 已入库
 | 
	
		
			
				|  |  | -            warehouseBill1.setfItemsStatus("6");
 | 
	
		
			
				|  |  | +            warehouseBill1.setfItemsStatus(6L);
 | 
	
		
			
				|  |  |          } else { // 有已入库、有未入库
 | 
	
		
			
				|  |  | -            warehouseBill1.setfItemsStatus("2");
 | 
	
		
			
				|  |  | +            warehouseBill1.setfItemsStatus(2L);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          tWarehouseBillsMapper.updateTWarehousebills(warehouseBill1);
 | 
	
		
			
				|  |  |      }
 |