| 
					
				 | 
			
			
				@@ -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); 
			 |