package com.steerinfo.dil.service.impl; import com.steerinfo.dil.mapper.AmsContractTransportPriceMapper; import com.steerinfo.dil.model.AmsContractTransportPrice; import com.steerinfo.dil.service.IAmsContractTransportPriceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; /** * @Description: * @Author:HuJianGuo * @GreateTime:2021/9/3 16:58 * @Version:V2.0 */ @Service public class AmsContractTransportPriceServiceImpl implements IAmsContractTransportPriceService { @Autowired AmsContractTransportPriceMapper amsContractTransportPriceMapper; /** * 得到最大id * @return */ @Override public BigDecimal selectMaxId() { return amsContractTransportPriceMapper.selectTransportId(); } /** * 展示所有水运单价信息 * @param mapValue * @return */ @Override public List> getShipPriceList(Map mapValue) { return amsContractTransportPriceMapper.getShipPriceList(mapValue); } /** * 新增水运单价 * @param amsContractTransportPrice * @return */ @Override public int insertShip(AmsContractTransportPrice amsContractTransportPrice) { BigDecimal priceId = selectMaxId(); amsContractTransportPrice.setPriceId(priceId); // 设置常规字段 amsContractTransportPrice.setInsertUsername("admin"); amsContractTransportPrice.setInsertTime(new Date()); amsContractTransportPrice.setType(new BigDecimal(3)); amsContractTransportPrice.setUpdateTime(new Date()); amsContractTransportPrice.setUpdateUsername("admin"); amsContractTransportPrice.setInsertUpdateRemark("无"); amsContractTransportPrice.setDeleted(new BigDecimal(0)); return amsContractTransportPriceMapper.insertSelective(amsContractTransportPrice); } /** * 新增汽运单价 * @param amsContractTransportPrice * @return */ @Override public int insertTruck(AmsContractTransportPrice amsContractTransportPrice) { BigDecimal priceId = selectMaxId(); amsContractTransportPrice.setPriceId(priceId); // 设置常规字段 amsContractTransportPrice.setInsertUsername("admin"); amsContractTransportPrice.setInsertTime(new Date()); amsContractTransportPrice.setType(new BigDecimal(4)); amsContractTransportPrice.setUpdateTime(new Date()); amsContractTransportPrice.setUpdateUsername("admin"); amsContractTransportPrice.setInsertUpdateRemark("无"); amsContractTransportPrice.setDeleted(new BigDecimal(0)); return amsContractTransportPriceMapper.insertSelective(amsContractTransportPrice); } /** * 逻辑删除 * @param priceId * @return */ @Override public int delete(BigDecimal priceId) { AmsContractTransportPrice amsContractTransportPrice = amsContractTransportPriceMapper.selectByPrimaryKey(priceId); amsContractTransportPrice.setDeleted(new BigDecimal(1)); return amsContractTransportPriceMapper.updateByPrimaryKeySelective(amsContractTransportPrice); } /** * 修改 * @param amsContractTransportPrice * @return */ @Override public int updateByPrimaryKeySelective(AmsContractTransportPrice amsContractTransportPrice) { amsContractTransportPrice.setUpdateTime(new Date()); return amsContractTransportPriceMapper.updateByPrimaryKeySelective(amsContractTransportPrice); } /** * 获得托运人id * @return */ @Override public List> getShipperId() { return amsContractTransportPriceMapper.getShipperId(); } /** * 获得承运商id * @return */ @Override public List> getCarrierId() { return amsContractTransportPriceMapper.getCarrierId(); } /** * 获得船运运力id * @return */ @Override public List> getCapacityId() { return amsContractTransportPriceMapper.getCapacityId(); } /** * 获得汽运运力id * @return */ @Override public List> getTruckCapacityId() { return amsContractTransportPriceMapper.getTruckCapacityId(); } /** * 获得物资id * @return */ @Override public List> getMaterialId() { return amsContractTransportPriceMapper.getMaterialId(); } /** * 获得运输线路id * @return */ @Override public List> getLineId() { return amsContractTransportPriceMapper.getLineId(); } /** * 获取采购汽运单价信息 * @param map * @return */ @Override public List> getAmsContractTransportPrice(Map map) { return amsContractTransportPriceMapper.getTruckPriceList(map); } /** * 得到地址下拉框 * @return */ @Override public List> getAddressDeliveryAddress() { return amsContractTransportPriceMapper.getAddressDeliveryAddress(); } /** * 通过主键获取渲染 * @param priceId * @return */ @Override public List> selectByPriceId(BigDecimal priceId) { return amsContractTransportPriceMapper.selectByPriceId(priceId); } /** * 得到油价 * @return */ @Override public List> getOriginAndNowOilPrice() { return amsContractTransportPriceMapper.getOriginAndNowOilPrice(); } /** * 通过油价修改汽运单价 * @return */ @Override public int batchUpdateTransportPriceByOilPrice() { //获取所有油价信息 List> originAndNowOilPrice = amsContractTransportPriceMapper.getOriginAndNowOilPrice(); //原油价 BigDecimal originOilPrice = new BigDecimal("1"); //现油价 BigDecimal nowOilPrice = new BigDecimal("0"); for (int i = 0; i < 2; i++) { if(i==0){ nowOilPrice = (BigDecimal) originAndNowOilPrice.get(i).get("priceValue"); }else if(i==1){ originOilPrice = (BigDecimal) originAndNowOilPrice.get(i).get("priceValue"); } } //油价变动率 Double updateOilPrice = nowOilPrice.doubleValue()/originOilPrice.doubleValue()-1; //获取原运价和吨公里数 List> priceValueAndPriceTonKilometer = amsContractTransportPriceMapper.getPriceValueAndPriceTonKilometer(); if(updateOilPrice>0.05||updateOilPrice<-0.05){ return amsContractTransportPriceMapper.batchUpdateTransportPriceByOilPrice(updateOilPrice); } return 0; } /** * 得到汽运单价 * @return */ @Override public List> getPriceValueAndPriceTonKilometer() { return amsContractTransportPriceMapper.getPriceValueAndPriceTonKilometer(); } /** * 修改渲染 * @param priceId * @return */ @Override public List> selectPriceToUpdate(BigDecimal priceId) { return amsContractTransportPriceMapper.selectPriceToUpdate(priceId); } }