123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- package com.steerinfo.dil.service.impl;
- import com.steerinfo.dil.feign.AmsFeign;
- import com.steerinfo.dil.mapper.RmsOilTypeMapper;
- import com.steerinfo.dil.model.RmsOilType;
- import com.steerinfo.dil.util.DataChange;
- import com.steerinfo.framework.mapper.IBaseMapper;
- import com.steerinfo.framework.service.impl.BaseServiceImpl;
- import com.steerinfo.dil.model.RmsOilPrice;
- import com.steerinfo.dil.mapper.RmsOilPriceMapper;
- import com.steerinfo.dil.service.IRmsOilPriceService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.Date;
- import java.math.BigDecimal;
- import java.util.List;
- import java.util.Map;
- /**
- * RmsOilPricea服务实现:
- * @author generator
- * @version 1.0-SNAPSHORT 2021-11-23 05:01
- * 类描述
- * 修订历史:
- * 日期:2021-11-23
- * 作者:generator
- * 参考:
- * 描述:RmsOilPricea服务实现
- * @see null
- * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
- */
- @Service(value = "rmsOilPriceService")
- public class RmsOilPriceServiceImpl implements IRmsOilPriceService {
- @Autowired
- private RmsOilPriceMapper rmsOilPriceMapper;
- @Autowired
- private AmsFeign amsFeign;
- @Autowired
- private RmsOilTypeMapper rmsOilTypeMapper;
- @Override
- //展示油价,该操作还有一些元素未明,框计算报错,但能通过测试,bug排除第二优先级
- public List<Map<String, Object>> getOilPriceList(Map<String, Object> mapVal) {
- List<Map<String, Object>> oilPriceList = rmsOilPriceMapper.getOilPriceList(mapVal);
- BigDecimal num = new BigDecimal(100);
- for (Map<String, Object> map : oilPriceList) {
- BigDecimal floatingScale = DataChange.dataToBigDecimal(map.get("floatingScale"));
- map.put("floatingScale", floatingScale.multiply(num) + "%");
- }
- return oilPriceList;
- }
- @Override
- //更新油价,还需要改改,排查bug第一优先级
- public int updateOilPrice(RmsOilPrice rmsOilPrice) {
- rmsOilPrice.setUpdateUsername("admin");
- rmsOilPrice.setUpdateTime(new Date());
- //油价联动
- amsFeign.batchUpdateTransportPriceByOilPrice1();
- return this.rmsOilPriceMapper.updateByPrimaryKeySelective(rmsOilPrice);
- }
- //根据Id删除油价,该操作通过测试,排查第三优先级
- @Override
- public Object deleteOilPrice(BigDecimal id) {
- RmsOilPrice rmsOilPrice = new RmsOilPrice();
- rmsOilPrice.setPriceId(id);
- rmsOilPrice.setDeleted(new BigDecimal(1));
- return this.rmsOilPriceMapper.updateByPrimaryKeySelective(rmsOilPrice) ;
- }
- //根据Id查询油价
- @Override
- public List<Map<String, Object>> getOilPriceById(BigDecimal id) {
- return this.rmsOilPriceMapper.getOilPriceById(id);
- }
- //批量修改油价
- // amsFeign.batchUpdateTransportPriceByOilPrice1();
- /**
- * 新增油价
- * @Author TXF
- * @Date 2022/1/19 17:09
- * @param map
- * @return
- **/
- @Transactional
- @Override
- public int insertOilPrice(Map<String,Object> map) {
- RmsOilPrice rmsOilPrice = new RmsOilPrice();
- rmsOilPrice.setPriceId(rmsOilPriceMapper.selectOilPriceId());
- //获取油品ID、油价日期、油价
- BigDecimal oilNameId = DataChange.dataToBigDecimal(map.get("oilNameId"));
- rmsOilPrice.setPriceOilName(oilNameId);
- 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);
- if(mesMap != null){
- BigDecimal lastPrice = DataChange.dataToBigDecimal(mesMap.get("priceValue"));
- BigDecimal subtract = priceValue.subtract(lastPrice); //当前油价减去上一次油价
- rmsOilPrice.setFloatingScale(subtract.divide(lastPrice, 4,BigDecimal.ROUND_HALF_UP)); //四舍五入
- }
- //如果新增的油价是启用的则关闭之前的已启用的
- 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);
- }
- //设置启用状态
- rmsOilPrice.setPriceStatus(new BigDecimal(0));
- }else {
- //否则设置停用状态
- rmsOilPrice.setPriceStatus(new BigDecimal(1));
- }
- rmsOilPrice.setInsertUsername("admin");
- rmsOilPrice.setInsertTime(new Date());
- rmsOilPrice.setDeleted(new BigDecimal(0));
- return rmsOilPriceMapper.insertSelective(rmsOilPrice);
- }
- /**
- * 添加油品名称
- * @Author TXF
- * @Date 2022/1/19 17:11
- * @param oilTypeName
- * @return
- **/
- public int addOilType(String oilTypeName){
- RmsOilType rmsOilType = new RmsOilType();
- Integer maxId = rmsOilTypeMapper.selectMaxId();
- rmsOilType.setOilTypeId(new BigDecimal(maxId==null?1:maxId));
- rmsOilType.setOilTypeName(oilTypeName);
- rmsOilType.setDeleted(new BigDecimal(0));
- rmsOilType.setInsertTime(new Date());
- rmsOilType.setInsertUsername("admin");
- return rmsOilTypeMapper.insertSelective(rmsOilType);
- }
- }
|