|
@@ -49,7 +49,7 @@ public class RmsOilPriceServiceImpl implements IRmsOilPriceService {
|
|
|
BigDecimal num = new BigDecimal(100);
|
|
|
for (Map<String, Object> map : oilPriceList) {
|
|
|
BigDecimal floatingScale = DataChange.dataToBigDecimal(map.get("floatingScale"));
|
|
|
- map.put("floatingScale", floatingScale.multiply(num) + "%");
|
|
|
+ map.put("floatingScale", floatingScale.multiply(num).setScale(2, BigDecimal.ROUND_HALF_UP) + "%");
|
|
|
}
|
|
|
return oilPriceList;
|
|
|
}
|
|
@@ -62,12 +62,17 @@ public class RmsOilPriceServiceImpl implements IRmsOilPriceService {
|
|
|
* @param id
|
|
|
* @return
|
|
|
**/
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
public int updateOilPrice(Integer id) {
|
|
|
RmsOilPrice rmsOilPrice = new RmsOilPrice();
|
|
|
+ //查询该启用油价的信息
|
|
|
Map<String, Object> mesMap = rmsOilPriceMapper.getOilPriceById(new BigDecimal(id));
|
|
|
if(DataChange.dataToBigDecimal(mesMap.get("priceStatus")).intValue() == 0){
|
|
|
return 0;
|
|
|
+ }else{
|
|
|
+ //通过油品信息关闭该油品所有正在启用的油价
|
|
|
+ rmsOilPriceMapper.closeLastOilPrice(mesMap);
|
|
|
}
|
|
|
rmsOilPrice.setId(new BigDecimal(id));
|
|
|
rmsOilPrice.setUpdateTime(new Date());
|
|
@@ -83,9 +88,7 @@ public class RmsOilPriceServiceImpl implements IRmsOilPriceService {
|
|
|
//如果是已经启用的则不能删除
|
|
|
Map<String, Object> mesMap = rmsOilPriceMapper.getOilPriceById(id);
|
|
|
BigDecimal priceStatus = DataChange.dataToBigDecimal(mesMap.get("priceStatus"));
|
|
|
- if(priceStatus.intValue() != 1){
|
|
|
- return 0;
|
|
|
- }
|
|
|
+ if(priceStatus.intValue() != 1) return 0;
|
|
|
RmsOilPrice rmsOilPrice = new RmsOilPrice();
|
|
|
rmsOilPrice.setPriceId(id);
|
|
|
rmsOilPrice.setDeleted(new BigDecimal(1));
|
|
@@ -115,13 +118,13 @@ public class RmsOilPriceServiceImpl implements IRmsOilPriceService {
|
|
|
rmsOilPrice.setPriceId(rmsOilPriceMapper.selectOilPriceId());
|
|
|
|
|
|
//获取油品ID、油价日期、油价
|
|
|
- BigDecimal oilNameId = DataChange.dataToBigDecimal(map.get("oilNameId"));
|
|
|
- rmsOilPrice.setPriceOilTypeId(oilNameId);
|
|
|
+ BigDecimal oilTypeId = DataChange.dataToBigDecimal(map.get("oilNameId"));
|
|
|
+ rmsOilPrice.setPriceOilTypeId(oilTypeId);
|
|
|
rmsOilPrice.setPriceDate(new Date((long) map.get("priceDate")));
|
|
|
BigDecimal priceValue = DataChange.dataToBigDecimal(map.get("priceValue"));
|
|
|
rmsOilPrice.setPriceValue(priceValue);
|
|
|
//根据油品ID获取上一次油价价格计算油价浮动
|
|
|
- Map<String, Object> mesMap = rmsOilPriceMapper.getLastOilPrice(oilNameId);
|
|
|
+ Map<String, Object> mesMap = rmsOilPriceMapper.getLastOilPrice(oilTypeId);
|
|
|
BigDecimal n = null; //浮动比例
|
|
|
if(mesMap != null){
|
|
|
BigDecimal lastPrice = DataChange.dataToBigDecimal(mesMap.get("priceValue"));
|
|
@@ -129,20 +132,18 @@ public class RmsOilPriceServiceImpl implements IRmsOilPriceService {
|
|
|
n = subtract.divide(lastPrice, 4,BigDecimal.ROUND_HALF_UP);
|
|
|
rmsOilPrice.setFloatingScale(n); //四舍五入
|
|
|
}
|
|
|
- //如果新增的油价是启用的则关闭之前的已启用的
|
|
|
+ //如果新增的油价是启用的则关闭该油品之前的已启用的
|
|
|
Boolean priceStatus = (Boolean) map.get("priceStatus");
|
|
|
if(priceStatus){
|
|
|
if(mesMap != null){
|
|
|
- RmsOilPrice rmsOilPrice2 = new RmsOilPrice();
|
|
|
- rmsOilPrice2.setPriceStatus(new BigDecimal(1));
|
|
|
- rmsOilPrice2.setPriceId(DataChange.dataToBigDecimal(mesMap.get("priceId")));
|
|
|
- rmsOilPriceMapper.updateByPrimaryKeySelective(rmsOilPrice2);
|
|
|
+ map.put("oilTypeId", oilTypeId);
|
|
|
+ rmsOilPriceMapper.closeLastOilPrice(map);
|
|
|
}
|
|
|
//设置启用状态
|
|
|
rmsOilPrice.setPriceStatus(new BigDecimal(0));
|
|
|
//批量修改油价
|
|
|
Map<String, Object> updateMesMap = new HashMap<>();
|
|
|
- updateMesMap.put("oilTypeId",oilNameId);
|
|
|
+ updateMesMap.put("oilTypeId",oilTypeId);
|
|
|
updateMesMap.put("newOilPrice", priceValue);
|
|
|
amsFeign.batchUpdateTransportPriceByOilPrice1(updateMesMap);
|
|
|
}else {
|