|
@@ -15,8 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.lang.reflect.Array;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
@@ -53,6 +53,9 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
|
|
|
@Autowired
|
|
|
private RmsLineNodePointMapper rmsLineNodePointMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ AmsContractTruckPriceServiceImpl amsContractTruckPriceService;
|
|
|
+
|
|
|
|
|
|
* 新增汽运单价
|
|
|
* @Author zzd
|
|
@@ -161,9 +164,9 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
|
|
|
|
|
|
amsContractTruckPriceMapper.updateaddressDeliveryAddress(map);
|
|
|
|
|
|
- amsContractTruckPriceMapper.updatePriceValue(map);
|
|
|
+ amsContractTruckPriceService.updatePriceValue(map);
|
|
|
|
|
|
- amsContractTruckPriceMapper.updateHaulDistance(map);
|
|
|
+
|
|
|
|
|
|
AmsContractTransportPrice amsContractTransportPrice = amsContractTruckPriceMapper.getOnePriceMap(map);
|
|
|
|
|
@@ -237,6 +240,14 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
|
|
|
|
|
|
@Override
|
|
|
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);
|
|
|
}
|
|
|
|
|
@@ -329,7 +340,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public int batchUpdateTransportPriceByOilPrice(Map<String,Object> map){
|
|
|
+ public synchronized int batchUpdateTransportPriceByOilPrice(Map<String,Object> map){
|
|
|
|
|
|
String flag= (String) map.get("flag");
|
|
|
|
|
@@ -351,9 +362,12 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
|
|
|
}else{
|
|
|
|
|
|
Map<String, Object> zb = amsContractTruckPriceMapper.selectByPlaceId(DataChange.dataToBigDecimal(stringObjectMap.get("placeId")));
|
|
|
+ if(zb == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
BigDecimal zbDistance = DataChange.dataToBigDecimal(zb.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);
|
|
|
if (subtract.intValue()>10 || subtract.intValue()<-10){
|
|
|
|
|
@@ -375,7 +389,9 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
|
|
|
|
|
|
BigDecimal oilpriceChangeThreshold = DataChange.dataToBigDecimal(stringObjectMap.get("oilpriceChangeThreshold"));
|
|
|
|
|
|
- BigDecimal n = (oilpriceBase.subtract(newOilPrice)).divide(newOilPrice,4,4);
|
|
|
+ BigDecimal n = (newOilPrice.subtract(oilpriceBase)).divide(oilpriceBase,4,4);
|
|
|
+ System.out.println(n);
|
|
|
+
|
|
|
|
|
|
if(n.abs().doubleValue()>oilpriceChangeThreshold.doubleValue()){
|
|
|
|
|
@@ -445,6 +461,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
|
|
|
AmsContractTransportPrice amsContractTransportPrice = amsContractTruckPriceMapper.selectByPrimaryKey(priceId);
|
|
|
|
|
|
BigDecimal i = amsContractTruckPriceMapper.selectMaxId();
|
|
|
+
|
|
|
amsContractTransportPrice.setPriceId(i);
|
|
|
|
|
|
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();
|
|
|
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);
|
|
|
return insert;
|