91 lines
3.6 KiB
Java
91 lines
3.6 KiB
Java
package com.hivekion.baseData.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.hivekion.baseData.domain.TblFuel;
|
|
import com.hivekion.baseData.domain.TblFuelVo.TblFuelViewVo;
|
|
import com.hivekion.baseData.domain.TblPropulsionVo.TblPropulsionViewVo;
|
|
import com.hivekion.baseData.domain.TblShipFuel;
|
|
import com.hivekion.baseData.domain.TblShipVo.TblShipFuelAddInputVo;
|
|
import com.hivekion.baseData.mapper.TblFuelMapper;
|
|
import com.hivekion.baseData.mapper.TblShipFuelMapper;
|
|
import com.hivekion.baseData.service.ITblShipFuelService;
|
|
import com.hivekion.baseData.service.ITblShipPropulsionService;
|
|
import com.hivekion.common.exception.BusinessException;
|
|
import com.hivekion.dicData.service.IDicFuelTypeService;
|
|
import java.util.ArrayList;
|
|
import java.util.Comparator;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
public class TblShipFuelServiceImpl extends ServiceImpl<TblShipFuelMapper, TblShipFuel> implements
|
|
ITblShipFuelService {
|
|
|
|
@Autowired
|
|
private TblFuelMapper fuelMapper;
|
|
@Autowired
|
|
private IDicFuelTypeService fuelTypeService;
|
|
@Autowired
|
|
private ITblShipPropulsionService propulsionService;
|
|
|
|
@Override
|
|
public List<TblFuelViewVo> getList(String Guid) {
|
|
LambdaQueryWrapper<TblShipFuel> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(TblShipFuel::getGuid, Guid);
|
|
List<TblShipFuel> list = this.list(wrapper);
|
|
List<TblFuelViewVo> result = new ArrayList<>();
|
|
for (TblShipFuel Fuels : list) {
|
|
TblFuel tblFuel = fuelMapper.selectById(Fuels.getComponentId());
|
|
TblFuelViewVo vo = new TblFuelViewVo();
|
|
BeanUtils.copyProperties(tblFuel, vo);
|
|
vo.setType(fuelTypeService.getName(tblFuel.getType()));
|
|
result.add(vo);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
@Override
|
|
public boolean remove(String Guid, String ComponentGuid, Integer status,
|
|
Integer ComponentNumber) {
|
|
if (status == 0) {
|
|
LambdaQueryWrapper<TblShipFuel> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(TblShipFuel::getGuid, Guid);
|
|
wrapper.eq(TblShipFuel::getComponentGuid, ComponentGuid);
|
|
// wrapper.eq(TblShipFuel::getComponentNumber, ComponentNumber);
|
|
return this.remove(wrapper);
|
|
} else {
|
|
LambdaQueryWrapper<TblShipFuel> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(TblShipFuel::getGuid, Guid);
|
|
return this.remove(wrapper);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean add(TblShipFuelAddInputVo vo) {
|
|
TblShipFuel fuel = new TblShipFuel();
|
|
LambdaQueryWrapper<TblShipFuel> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(TblShipFuel::getId, vo.getId());
|
|
BeanUtils.copyProperties(vo, fuel);
|
|
List<TblShipFuel> list = this.list(wrapper).stream()
|
|
.sorted(Comparator.comparing(TblShipFuel::getComponentNumber)).collect(Collectors.toList());
|
|
if (list.size() != 0) {
|
|
fuel.setComponentNumber(list.get(list.size() - 1).getComponentNumber() + 1);
|
|
} else {
|
|
fuel.setComponentNumber(1);
|
|
}
|
|
fuel.setGuid("dataship-" + String.format("%16d", vo.getId()).replace(" ", "0"));
|
|
fuel.setComponentGuid(
|
|
"datafuel-" + String.format("%16d", vo.getComponentId()).replace(" ", "0"));
|
|
List<TblPropulsionViewVo> propulsionList = propulsionService.getList(fuel.getGuid());
|
|
if (propulsionList == null) {
|
|
throw new BusinessException(500, "请先添加对应的推进系统");
|
|
}
|
|
|
|
return this.save(fuel);
|
|
}
|
|
}
|