|  | @@ -174,6 +174,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |      private TAddressMapper tAddressMapper;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private TCntrtrackingMapper tCntrtrackingMapper;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private TCtnpriceItemsMapper tCtnpriceItemsMapper;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private static final Logger log = LoggerFactory.getLogger(AddressUtils.class);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -899,6 +901,66 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        //获取海运费ID
 | 
	
		
			
				|  |  | +        TFees tFees = tFeesMapper.selectTFeesByFName("海运费");
 | 
	
		
			
				|  |  | +        if (tFees == null){
 | 
	
		
			
				|  |  | +            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  | +            return AjaxResult.error("费用信息中缺少海运费请维护");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //获取计价单位ID
 | 
	
		
			
				|  |  | +        String dictValue = sysDictDataMapper.selectDictValue("data_unitfees", "箱量");
 | 
	
		
			
				|  |  | +        if (StringUtils.isEmpty(dictValue)){
 | 
	
		
			
				|  |  | +            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  | +            return AjaxResult.error("计价单位中缺少箱量请维护");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //结算方式
 | 
	
		
			
				|  |  | +        String fSrcType = sysDictDataMapper.selectDictValue("data_stltype_type", "月结");
 | 
	
		
			
				|  |  | +        if (StringUtils.isEmpty(dictValue)){
 | 
	
		
			
				|  |  | +            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  | +            return AjaxResult.error("结算方式中缺少月结请维护");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //业务类型
 | 
	
		
			
				|  |  | +        String fBusinessType = sysDictDataMapper.selectDictValue("data_billType", "内贸");
 | 
	
		
			
				|  |  | +        if (StringUtils.isEmpty(dictValue)){
 | 
	
		
			
				|  |  | +            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  | +            return AjaxResult.error("业务类型中缺少内贸请维护");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //获取航次对应的运价
 | 
	
		
			
				|  |  | +        List<TCtnpriceItems> tCtnpriceItems = tCtnpriceItemsMapper.selectItemMeaasge(warehouseBills.getfVoyid(), tWarehousebillsCntrs.get(0).getfCntrid());
 | 
	
		
			
				|  |  | +        TVoyage voyage = tVoyageMapper.selectTVoyageByFid(warehouseBills.getfVoyid());
 | 
	
		
			
				|  |  | +        //生成运价费用
 | 
	
		
			
				|  |  | +        TWarehousebillsfees wbDr = new TWarehousebillsfees();
 | 
	
		
			
				|  |  | +        wbDr.setfPid(warehouseBills.getfId());//主表ID
 | 
	
		
			
				|  |  | +        wbDr.setfCorpid(clientFid);//客户ID
 | 
	
		
			
				|  |  | +        wbDr.setfFeeid(tFees.getfId());//费用ID
 | 
	
		
			
				|  |  | +        wbDr.setfFeeunitid(Long.valueOf(dictValue));//计价单位
 | 
	
		
			
				|  |  | +        wbDr.setfQty(new BigDecimal(tWarehousebillsCntrs.get(0).getfCntrcount()));//数量
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(tCtnpriceItems)){
 | 
	
		
			
				|  |  | +            wbDr.setfUnitprice(tCtnpriceItems.get(0).getfPrice());//单价
 | 
	
		
			
				|  |  | +            wbDr.setfAmount(tCtnpriceItems.get(0).getfPrice().multiply(new BigDecimal(tWarehousebillsCntrs.get(0).getfCntrcount())));//金额
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +            wbDr.setfUnitprice(new BigDecimal(0));//单价
 | 
	
		
			
				|  |  | +            wbDr.setfAmount(new BigDecimal(0));//金额
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        wbDr.setfCurrency("RMB");//币别
 | 
	
		
			
				|  |  | +        wbDr.setfExrate(new BigDecimal(1));//汇率
 | 
	
		
			
				|  |  | +        wbDr.setfTaxrate(new BigDecimal(0));//税率
 | 
	
		
			
				|  |  | +        wbDr.setfDc("D");//收付
 | 
	
		
			
				|  |  | +        wbDr.setfStltypeid(Long.valueOf(fSrcType));//结算方式
 | 
	
		
			
				|  |  | +        wbDr.setRemark(voyage.getfNo());//备注 航次名
 | 
	
		
			
				|  |  | +        wbDr.setfSrcTypeId(2L);//来源订舱
 | 
	
		
			
				|  |  | +        wbDr.setfBilltype(billsType);
 | 
	
		
			
				|  |  | +        wbDr.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +        wbDr.setSrcBillNo(warehouseBills.getfBillno());
 | 
	
		
			
				|  |  | +        wbDr.setCreateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  | +        wbDr.setfBusinessType(fBusinessType);//业务类型
 | 
	
		
			
				|  |  | +        //wbDr.setfChargedate(warehouseBills.getfChargedate());
 | 
	
		
			
				|  |  | +        //wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
 | 
	
		
			
				|  |  | +        if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
 | 
	
		
			
				|  |  | +            wbDr.setfBsdate(warehouseBills.getfBsdate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
 | 
	
		
			
				|  |  | +        map.put("TWarehousebillsfees", wbDr);
 | 
	
		
			
				|  |  |          if (isApprove) {
 | 
	
		
			
				|  |  |              AuditItems auditItems = new AuditItems();
 | 
	
		
			
				|  |  |              auditItems.setLevelId(0L);
 | 
	
	
		
			
				|  | @@ -2421,17 +2483,23 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          List<TWarehouseBills> warehouseBillsList = tWarehouseBillsMapper.webVersionOrderById(warehouseBills);
 | 
	
		
			
				|  |  |          map.put("tWarehouseBills", warehouseBillsList.get(0));
 | 
	
		
			
				|  |  | +        int cntritemsfPid = tWarehousebillsCntritemsMapper.deleteTWarehousebillsCntritemsfPid(warehouseBills.getfId());
 | 
	
		
			
				|  |  |          if (StringUtils.isNotEmpty(tWarehousebillsCntritems)) {
 | 
	
		
			
				|  |  |              JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntritems);
 | 
	
		
			
				|  |  |              List<TWarehousebillsCntritems> tWarehousebillsCntritemsList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntritems.class);
 | 
	
		
			
				|  |  |              if (CollectionUtils.isNotEmpty(tWarehousebillsCntritemsList)) {
 | 
	
		
			
				|  |  | -                int cntritemsfPid = tWarehousebillsCntritemsMapper.deleteTWarehousebillsCntritemsfPid(warehouseBills.getfId());
 | 
	
		
			
				|  |  |                  for (TWarehousebillsCntritems warehousebillsCntritems : tWarehousebillsCntritemsList) {
 | 
	
		
			
				|  |  | +                    TWarehousebillsCntr warehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(warehouseBills.getfId());
 | 
	
		
			
				|  |  | +                    AjaxResult ajaxResult = this.judgeBoxPile(warehousebillsCntritems, warehousebillsCntr.getfCntrid());
 | 
	
		
			
				|  |  | +                    String code = ajaxResult.get("code").toString();
 | 
	
		
			
				|  |  | +                    if ("500".equals(code)) {
 | 
	
		
			
				|  |  | +                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  | +                        return ajaxResult;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                      warehousebillsCntritems.setfPid(warehouseBills.getfId());
 | 
	
		
			
				|  |  |                      warehousebillsCntritems.setCreateTime(DateUtils.getNowDate());
 | 
	
		
			
				|  |  |                      warehousebillsCntritems.setCreateBy(SecurityUtils.getUsername());
 | 
	
		
			
				|  |  |                      int cntr = tWarehousebillsCntritemsMapper.insertTWarehousebillsCntritems(warehousebillsCntritems);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              map.put("tWarehousebillsCntritemsList", tWarehousebillsCntritemsList);
 |