simulation-backend/src/main/java/com/hivekion/baseData/service/impl/TblShipFuelServiceImpl.java
2025-08-07 19:14:03 +08:00

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);
}
}