| 
					
				 | 
			
			
				@@ -3,15 +3,13 @@ package com.steerinfo.dil.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.druid.support.json.JSONUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.steerinfo.dil.feign.JoinFeign; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.steerinfo.dil.feign.OtmsFeign; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.steerinfo.dil.feign.RmsFeign; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.steerinfo.dil.feign.TmsTruckFeign; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.steerinfo.dil.feign.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.steerinfo.dil.mapper.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.steerinfo.dil.model.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.steerinfo.dil.service.IAmsSaleOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.steerinfo.dil.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.poi.ss.formula.functions.T; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.scheduling.annotation.Scheduled; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -106,6 +104,12 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     EasFluMakeDateUtil easFluMakeDateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    EASCapacityTestUtil easCapacityTestUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    BmstruckFeign bmstruckFeign; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return amsSaleOrderMapper.getSaleOrderInfo(map); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -902,17 +906,18 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //校验结束,上传金蝶 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pushCarNumberToEas(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 得到车序号表主键 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 得到承运商 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 查询到车序号的单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //BigDecimal priceId = amsSaleOrderMapper.getOrderPrice(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BigDecimal priceId = amsSaleOrderMapper.getOrderPrice(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 得到详细地址id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BigDecimal placeId = amsSaleOrderMapper.getPlaceId(saleOrderMaterialId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal priceId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 如果详细地址匹配不到单价,则匹配省市县内最高的一条单价(只给非自提的进行匹配) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (placeId != null && selfMention.equals("否")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 如果已经设置单价则不覆盖,详细地址匹配不到单价,则匹配省市县内最高的一条单价(只给非自提的进行匹配) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (priceId == null && placeId != null && selfMention.equals("否")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  priceId = amsSaleOrderMapper.getPriceIdByPlaceId(placeId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 运输线路id 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1682,6 +1687,17 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 amsSaleOrderMaterial.setSaleShippingAddressId((BigDecimal) placeIdList.get(0).get("placeId")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //修改单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String,Object> data=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<Map<String,Object>> mapList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mapValue.put("priceId",DataChange.dataToBigDecimal(amsSaleOrderMaterialMapper.getPriceByPlace(addressid2))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mapList.add(mapValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data.put("mapList",mapList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bmstruckFeign.updateBatchDetailsOrder(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String addressids=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         addressids =addressid1+","+addressid2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         amsSaleOrderMaterial.setShippingAddressIds(addressids); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1973,6 +1989,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             mapValue.put("result",1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pushCarNumberToEas(mapValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return mapValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Integer isCheckGps = amsSaleOrderMapper.getDispachSwitch(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1998,6 +2015,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pushCarNumberToEas(mapValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal capacityTel = omstruckOrderMapper.getCapacityTel(capacityNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (capacityTel.compareTo(BigDecimal.ZERO)!=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             mapValue.put("capacityTel",capacityTel); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2170,18 +2188,22 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ((loadIdList == null || loadIdList.size() == 0) && orderStatus == 5) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //判断该分录对应净重有没有出来 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int netWeightCount = amsSaleMaterialMapper.getSaleMaterialWeight(mapValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //判断关闭分录是否为最后一拼 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int asmMaterialCount = amsSaleMaterialMapper.getSaleMaterialDelete(saleOrderMaterialId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (asmMaterialCount > 1 && orderStatus == 5) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (asmMaterialCount > 1 && orderStatus == 5 && netWeightCount == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 删除实绩表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Map<String, Object> loadMap = loadIdList.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Map<String, Object> weightMap = weightIdList.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 BigDecimal loadId = (BigDecimal) loadMap.get("loadId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 BigDecimal weightId = (BigDecimal) weightMap.get("weightId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                result += amsSaleMaterialMapper.deleteLoadResult(loadId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                result += amsSaleMaterialMapper.deleteWeightResult(weightId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                result += amsSaleMaterialMapper.deleteWmspOutResult(mapValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }else if(asmMaterialCount <= 1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int i = amsSaleMaterialMapper.deleteWeightResult(weightId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(i != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    result += amsSaleMaterialMapper.deleteLoadResult(loadId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    result += amsSaleMaterialMapper.deleteWmspOutResult(mapValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else if(asmMaterialCount <= 1 && netWeightCount == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //关闭运输订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 OmstruckOrder omstruckOrder = new OmstruckOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderId)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2192,7 +2214,9 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        result += amsSaleMaterialMapper.updateOrderMaterialToClose(mapValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(netWeightCount == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result += amsSaleMaterialMapper.updateOrderMaterialToClose(mapValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2801,5 +2825,43 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         getEasPrimaryIds(Map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 推送车牌号给金蝶 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int pushCarNumberToEas(Map<String, Object> map) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 调用EAS接口将车牌号传给金蝶 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Map<String,Object>> mapList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mapList.add(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String,Object> input = joinFeign.findCarNumberByOrderList(mapList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Object> totalMap = easCapacityTestUtil.getTotalMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        totalMap.put("input",input); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        System.out.println(totalMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String json = JSONUtils.toJSONString(totalMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        System.out.println(json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String,Object> s = joinFeign.pushCarNumberToEas(totalMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (s == null || s.size() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new Exception("登录金蝶失败!请重试派车!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                JSONObject result = new JSONObject(s); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //如果status不为1,抛出异常 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(!result.getJSONObject("res").getString("status").equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    throw new Exception("上传金蝶失败!请重试派车:"+result.getJSONObject("requestException").getString("message")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //只抛出自定义异常 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(e.getMessage().contains("Exception")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    throw new Exception("上传金蝶失败!请重试派车!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    throw new Exception(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |