| 
														
															@@ -15,8 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.stereotype.Service; 
														 | 
														
														 | 
														
															 import org.springframework.stereotype.Service; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.transaction.annotation.Transactional; 
														 | 
														
														 | 
														
															 import org.springframework.transaction.annotation.Transactional; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import java.lang.reflect.Array; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.math.BigDecimal; 
														 | 
														
														 | 
														
															 import java.math.BigDecimal; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import java.math.RoundingMode; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.text.ParseException; 
														 | 
														
														 | 
														
															 import java.text.ParseException; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.text.SimpleDateFormat; 
														 | 
														
														 | 
														
															 import java.text.SimpleDateFormat; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.*; 
														 | 
														
														 | 
														
															 import java.util.*; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -53,6 +53,9 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Autowired 
														 | 
														
														 | 
														
															     @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private RmsLineNodePointMapper rmsLineNodePointMapper; 
														 | 
														
														 | 
														
															     private RmsLineNodePointMapper rmsLineNodePointMapper; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    AmsContractTruckPriceServiceImpl amsContractTruckPriceService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * 新增汽运单价 
														 | 
														
														 | 
														
															      * 新增汽运单价 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @Author zzd 
														 | 
														
														 | 
														
															      * @Author zzd 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -161,9 +164,9 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //修改地址 
														 | 
														
														 | 
														
															         //修改地址 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         amsContractTruckPriceMapper.updateaddressDeliveryAddress(map); 
														 | 
														
														 | 
														
															         amsContractTruckPriceMapper.updateaddressDeliveryAddress(map); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //修改运价 
														 | 
														
														 | 
														
															         //修改运价 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        amsContractTruckPriceMapper.updatePriceValue(map); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        amsContractTruckPriceService.updatePriceValue(map); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //修改运输距离 
														 | 
														
														 | 
														
															         //修改运输距离 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        amsContractTruckPriceMapper.updateHaulDistance(map); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //amsContractTruckPriceMapper.updateHaulDistance(map); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //根据地址查询出单价表大部分值 
														 | 
														
														 | 
														
															         //根据地址查询出单价表大部分值 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         AmsContractTransportPrice amsContractTransportPrice = amsContractTruckPriceMapper.getOnePriceMap(map); 
														 | 
														
														 | 
														
															         AmsContractTransportPrice amsContractTransportPrice = amsContractTruckPriceMapper.getOnePriceMap(map); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //修改的时间 
														 | 
														
														 | 
														
															         //修改的时间 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -237,6 +240,14 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Override 
														 | 
														
														 | 
														
															     @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public int updatePriceValue(Map<String,Object> map) { 
														 | 
														
														 | 
														
															     public int updatePriceValue(Map<String,Object> map) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        BigDecimal haulDistance = DataChange.dataToBigDecimal(map.get("haulDistance")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        BigDecimal priceValue = DataChange.dataToBigDecimal(map.get("priceValue")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (haulDistance!=null&&haulDistance.compareTo(BigDecimal.ZERO)!=0){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            BigDecimal priceTonKilometer = amsContractTruckPriceService.calculationPriceTonKilometerNew(haulDistance, priceValue); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            map.put("priceTonKilometer",priceTonKilometer); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return amsContractTruckPriceMapper.updatePriceValueNew(map); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return amsContractTruckPriceMapper.updatePriceValue(map); 
														 | 
														
														 | 
														
															         return amsContractTruckPriceMapper.updatePriceValue(map); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -329,7 +340,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      */ 
														 | 
														
														 | 
														
															      */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Override 
														 | 
														
														 | 
														
															     @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Transactional 
														 | 
														
														 | 
														
															     @Transactional 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    public int batchUpdateTransportPriceByOilPrice(Map<String,Object> map){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public synchronized int batchUpdateTransportPriceByOilPrice(Map<String,Object> map){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //正数的判断条件 
														 | 
														
														 | 
														
															         //正数的判断条件 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         String flag= (String) map.get("flag"); 
														 | 
														
														 | 
														
															         String flag= (String) map.get("flag"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //运输单价变化的条数 
														 | 
														
														 | 
														
															         //运输单价变化的条数 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -351,9 +362,12 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }else{ 
														 | 
														
														 | 
														
															                 }else{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     //判断省市区(镇),拿到关联的中标数据 
														 | 
														
														 | 
														
															                     //判断省市区(镇),拿到关联的中标数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     Map<String, Object> zb = amsContractTruckPriceMapper.selectByPlaceId(DataChange.dataToBigDecimal(stringObjectMap.get("placeId"))); 
														 | 
														
														 | 
														
															                     Map<String, Object> zb = amsContractTruckPriceMapper.selectByPlaceId(DataChange.dataToBigDecimal(stringObjectMap.get("placeId"))); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if(zb == null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        continue; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     BigDecimal zbDistance = DataChange.dataToBigDecimal(zb.get("haulDistance")); 
														 | 
														
														 | 
														
															                     BigDecimal zbDistance = DataChange.dataToBigDecimal(zb.get("haulDistance")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     BigDecimal distance = DataChange.dataToBigDecimal(stringObjectMap.get("haulDistance")); 
														 | 
														
														 | 
														
															                     BigDecimal distance = DataChange.dataToBigDecimal(stringObjectMap.get("haulDistance")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if (zbDistance.intValue()!=0 && distance.intValue()!=0){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if (zbDistance != null && distance != null && zbDistance.intValue()!=0 && distance.intValue()!=0){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         BigDecimal subtract = zbDistance.subtract(distance); 
														 | 
														
														 | 
														
															                         BigDecimal subtract = zbDistance.subtract(distance); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if (subtract.intValue()>10 || subtract.intValue()<-10){ 
														 | 
														
														 | 
														
															                         if (subtract.intValue()>10 || subtract.intValue()<-10){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             //大于正负10km重新计算价格 
														 | 
														
														 | 
														
															                             //大于正负10km重新计算价格 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -375,7 +389,9 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //获取该条单价的油价变化率阈值 
														 | 
														
														 | 
														
															             //获取该条单价的油价变化率阈值 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             BigDecimal oilpriceChangeThreshold = DataChange.dataToBigDecimal(stringObjectMap.get("oilpriceChangeThreshold")); 
														 | 
														
														 | 
														
															             BigDecimal oilpriceChangeThreshold = DataChange.dataToBigDecimal(stringObjectMap.get("oilpriceChangeThreshold")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //计算油价变化率,公式:n=(当前油价-基数)÷基数×100%   (9.06-8.26)/8.26 
														 | 
														
														 | 
														
															             //计算油价变化率,公式:n=(当前油价-基数)÷基数×100%   (9.06-8.26)/8.26 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            BigDecimal n = (oilpriceBase.subtract(newOilPrice)).divide(newOilPrice,4,4); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            BigDecimal n = (newOilPrice.subtract(oilpriceBase)).divide(oilpriceBase,4,4); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            System.out.println(n); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            //return i; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //若油价变化率超过该条单价的油价变化率阈值,修改原单价为历史数据,新增一条单价 
														 | 
														
														 | 
														
															             //若油价变化率超过该条单价的油价变化率阈值,修改原单价为历史数据,新增一条单价 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if(n.abs().doubleValue()>oilpriceChangeThreshold.doubleValue()){ 
														 | 
														
														 | 
														
															             if(n.abs().doubleValue()>oilpriceChangeThreshold.doubleValue()){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //加一个判断(如果数据为正数则需要二次判断,如果数据为负数则直接生效) 
														 | 
														
														 | 
														
															                 //加一个判断(如果数据为正数则需要二次判断,如果数据为负数则直接生效) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -445,6 +461,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         AmsContractTransportPrice amsContractTransportPrice = amsContractTruckPriceMapper.selectByPrimaryKey(priceId); 
														 | 
														
														 | 
														
															         AmsContractTransportPrice amsContractTransportPrice = amsContractTruckPriceMapper.selectByPrimaryKey(priceId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //生成主键 
														 | 
														
														 | 
														
															         //生成主键 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         BigDecimal i = amsContractTruckPriceMapper.selectMaxId(); 
														 | 
														
														 | 
														
															         BigDecimal i = amsContractTruckPriceMapper.selectMaxId(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //如果是钢材的单价那么就需要改变吨公里 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         amsContractTransportPrice.setPriceId(i); 
														 | 
														
														 | 
														
															         amsContractTransportPrice.setPriceId(i); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //生成执行日期 
														 | 
														
														 | 
														
															         //生成执行日期 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         amsContractTransportPrice.setPriceDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse((String) stringObjectMap.get("priceDate"))); 
														 | 
														
														 | 
														
															         amsContractTransportPrice.setPriceDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse((String) stringObjectMap.get("priceDate"))); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -505,6 +522,10 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             e.printStackTrace(); 
														 | 
														
														 | 
														
															             e.printStackTrace(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             return 0; 
														 | 
														
														 | 
														
															             return 0; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if(amsContractTransportPrice.getType().compareTo(new BigDecimal(1)) == 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            BigDecimal newOldPriceTonKilometer = amsContractTransportPrice.getPriceValue().divide(amsContractTransportPrice.getHaulDistance(),4, RoundingMode.HALF_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            amsContractTransportPrice.setPriceTonKilometer(newOldPriceTonKilometer); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //新增数据 
														 | 
														
														 | 
														
															         //新增数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         int insert = amsContractTruckPriceMapper.insert(amsContractTransportPrice); 
														 | 
														
														 | 
														
															         int insert = amsContractTruckPriceMapper.insert(amsContractTransportPrice); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return insert; 
														 | 
														
														 | 
														
															         return insert; 
														 |