| 
														
															@@ -16,6 +16,8 @@ import org.springframework.stereotype.Service; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.transaction.annotation.Transactional; 
														 | 
														
														 | 
														
															 import org.springframework.transaction.annotation.Transactional; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.math.BigDecimal; 
														 | 
														
														 | 
														
															 import java.math.BigDecimal; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import java.text.ParseException; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import java.text.SimpleDateFormat; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.Date; 
														 | 
														
														 | 
														
															 import java.util.Date; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.List; 
														 | 
														
														 | 
														
															 import java.util.List; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.Map; 
														 | 
														
														 | 
														
															 import java.util.Map; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -206,7 +208,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      */ 
														 | 
														
														 | 
														
															      */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Override 
														 | 
														
														 | 
														
															     @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Transactional 
														 | 
														
														 | 
														
															     @Transactional 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    public int batchUpdateTransportPriceByOilPrice(Map<String,Object> map) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public int batchUpdateTransportPriceByOilPrice(Map<String,Object> map){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //正数的判断条件 
														 | 
														
														 | 
														
															         //正数的判断条件 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         String flag= (String) map.get("flag"); 
														 | 
														
														 | 
														
															         String flag= (String) map.get("flag"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //运输单价变化的条数 
														 | 
														
														 | 
														
															         //运输单价变化的条数 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -218,21 +220,26 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //根据油品名称ID和非历史油价筛选出符合条件的运价合集 
														 | 
														
														 | 
														
															         //根据油品名称ID和非历史油价筛选出符合条件的运价合集 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<Map<String, Object>> PriceValueList = amsContractTruckPriceMapper.getPriceValueList(oilTypeId); 
														 | 
														
														 | 
														
															         List<Map<String, Object>> PriceValueList = amsContractTruckPriceMapper.getPriceValueList(oilTypeId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         for (Map<String, Object> stringObjectMap : PriceValueList) { 
														 | 
														
														 | 
														
															         for (Map<String, Object> stringObjectMap : PriceValueList) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            stringObjectMap.put("priceDate",map.get("priceDate")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //获取该条单价的原油价基准 
														 | 
														
														 | 
														
															             //获取该条单价的原油价基准 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             BigDecimal oilpriceBase = DataChange.dataToBigDecimal(stringObjectMap.get("oilpriceBase")); 
														 | 
														
														 | 
														
															             BigDecimal oilpriceBase = DataChange.dataToBigDecimal(stringObjectMap.get("oilpriceBase")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //获取该条单价的油价变化率阈值 
														 | 
														
														 | 
														
															             //获取该条单价的油价变化率阈值 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             BigDecimal oilpriceChangeThreshold = DataChange.dataToBigDecimal(stringObjectMap.get("oilpriceChangeThreshold")); 
														 | 
														
														 | 
														
															             BigDecimal oilpriceChangeThreshold = DataChange.dataToBigDecimal(stringObjectMap.get("oilpriceChangeThreshold")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            //计算油价变化率,公式:n=(当前油价-基数)÷基数×100% 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            BigDecimal n = (newOilPrice.subtract(oilpriceBase)).divide(oilpriceBase,4,4); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            //计算油价变化率,公式:n=(当前油价-基数)÷基数×100%   (9.06-8.26)/8.26 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            BigDecimal n = (oilpriceBase.subtract(newOilPrice)).divide(newOilPrice,4,4); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //若油价变化率超过该条单价的油价变化率阈值,修改原单价为历史数据,新增一条单价 
														 | 
														
														 | 
														
															             //若油价变化率超过该条单价的油价变化率阈值,修改原单价为历史数据,新增一条单价 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if(n.abs().doubleValue()>oilpriceChangeThreshold.doubleValue()){ 
														 | 
														
														 | 
														
															             if(n.abs().doubleValue()>oilpriceChangeThreshold.doubleValue()){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //加一个判断(如果数据为正数则需要二次判断,如果数据为负数则直接生效) 
														 | 
														
														 | 
														
															                 //加一个判断(如果数据为正数则需要二次判断,如果数据为负数则直接生效) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if(newOilPrice.compareTo(oilpriceBase)==-1){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    //直接降低油价 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    i+=addANewAmsContractTransportPrice(stringObjectMap,n,newOilPrice); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                }else if (newOilPrice.compareTo(oilpriceBase)==1 && "1".equals(flag)){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    //加上两个判断之后 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    i+=addANewAmsContractTransportPrice(stringObjectMap,n,newOilPrice); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                try{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if(newOilPrice.compareTo(oilpriceBase)==-1){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        //直接降低油价 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        i+=addANewAmsContractTransportPrice(stringObjectMap,n,newOilPrice); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }else if (newOilPrice.compareTo(oilpriceBase)==1 && "1".equals(flag)){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        //加上两个判断之后 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        i+=addANewAmsContractTransportPrice(stringObjectMap,n,newOilPrice); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                }catch (Exception e){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    e.printStackTrace(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -272,7 +279,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @throws Exception 
														 | 
														
														 | 
														
															      * @throws Exception 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      */ 
														 | 
														
														 | 
														
															      */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Transactional 
														 | 
														
														 | 
														
															     @Transactional 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    public int addANewAmsContractTransportPrice(Map<String, Object> stringObjectMap,BigDecimal n,BigDecimal newOilPrice){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public int addANewAmsContractTransportPrice(Map<String, Object> stringObjectMap,BigDecimal n,BigDecimal newOilPrice) throws ParseException { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //定义将要改变的执行价 
														 | 
														
														 | 
														
															         //定义将要改变的执行价 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         BigDecimal nowPriceValue; 
														 | 
														
														 | 
														
															         BigDecimal nowPriceValue; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //存储原运输单价实绩对象 
														 | 
														
														 | 
														
															         //存储原运输单价实绩对象 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -291,7 +298,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         BigDecimal i = amsContractTruckPriceMapper.selectMaxId(); 
														 | 
														
														 | 
														
															         BigDecimal i = amsContractTruckPriceMapper.selectMaxId(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         amsContractTransportPrice.setPriceId(i); 
														 | 
														
														 | 
														
															         amsContractTransportPrice.setPriceId(i); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //生成执行日期 
														 | 
														
														 | 
														
															         //生成执行日期 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        amsContractTransportPrice.setPriceDate(new Date()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        amsContractTransportPrice.setPriceDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse((String) stringObjectMap.get("priceDate"))); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //常规字段 
														 | 
														
														 | 
														
															         //常规字段 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         amsContractTransportPrice.setInsertUsername("admin"); 
														 | 
														
														 | 
														
															         amsContractTransportPrice.setInsertUsername("admin"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         amsContractTransportPrice.setInsertTime(new Date()); 
														 | 
														
														 | 
														
															         amsContractTransportPrice.setInsertTime(new Date()); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -340,13 +347,14 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         try { 
														 | 
														
														 | 
														
															         try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             nowPriceValue = UpdatePureBenzenePriceValueByOilPrice(n.toString(),amsContractTransportPrice.getPriceValue(),formulaId); 
														 | 
														
														 | 
														
															             nowPriceValue = UpdatePureBenzenePriceValueByOilPrice(n.toString(),amsContractTransportPrice.getPriceValue(),formulaId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //保留两位小数 
														 | 
														
														 | 
														
															             //保留两位小数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            nowPriceValue = nowPriceValue.divide(new BigDecimal(1),2,4); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nowPriceValue = nowPriceValue.divide(new BigDecimal(1),3,0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //调整纯苯运价 
														 | 
														
														 | 
														
															             //调整纯苯运价 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             amsContractTransportPrice.setPriceValue(nowPriceValue); 
														 | 
														
														 | 
														
															             amsContractTransportPrice.setPriceValue(nowPriceValue); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //修改基准油价 
														 | 
														
														 | 
														
															             //修改基准油价 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             amsContractTransportPrice.setOilpriceBase(newOilPrice); 
														 | 
														
														 | 
														
															             amsContractTransportPrice.setOilpriceBase(newOilPrice); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } catch (Exception e) { 
														 | 
														
														 | 
														
															         } catch (Exception e) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             e.printStackTrace(); 
														 | 
														
														 | 
														
															             e.printStackTrace(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return 0; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //新增数据 
														 | 
														
														 | 
														
															         //新增数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         int insert = amsContractTruckPriceMapper.insert(amsContractTransportPrice); 
														 | 
														
														 | 
														
															         int insert = amsContractTruckPriceMapper.insert(amsContractTransportPrice); 
														 |