Commit 9c2482dc authored by caotao's avatar caotao

1.按月统计里程接口增加筛选、异常轨迹接口增加筛选。

2.增加车辆告警相关功能代码。 3.车辆当月里程导出里程规范
parent 5421f63a
......@@ -10,6 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
......
......@@ -1415,14 +1415,14 @@ public class CarController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/getCarEquipStateInfo", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "车辆统计-获取设备状态信息", notes = "车辆统计-获取设备状态信息")
public Page<CarEquipStateInfoDto> getCarEquipStateInfo() {
return iCarService.getCarEquipStateInfo();
public Page<CarEquipStateInfoDto> getCarEquipStateInfo(@RequestParam(required = false) String keyWord,@RequestParam String flag) {
return iCarService.getCarEquipStateInfo(keyWord);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/getCarEquipAlarmInfoDto", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "车辆统计-获取设备告警信息", notes = "车辆统计-获取设备告警信息")
public Page<CarEquipAlarmInfoDto> getCarEquipAlarmInfoDto(@RequestParam(required = false) String keyWord) {
public Page<CarEquipAlarmInfoDto> getCarEquipAlarmInfoDto(@RequestParam(required = false) String keyWord,@RequestParam String flag) {
return iCarService.getCarEquipAlarmInfoDto(keyWord);
}
......@@ -1475,8 +1475,13 @@ public class CarController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/getCarWarningRecord", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "车辆统计-获取超速信息", notes = "车辆统计-获取超速信息")
public Page<CarSpeedWarningRecord> getCarWarningRecord(@RequestParam(required = false) String keyWord) {
public Page<CarSpeedWarningRecord> getCarWarningRecord(@RequestParam(required = false) String keyWord,@RequestParam String flag) {
return iCarService.getCarWarningRecord(keyWord);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/getBizOrgName", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "车辆统计-获取归属单位下拉框值", notes = "车辆统计-获取归属单位下拉框值")
public List<Map<String,String>> getBizOrgName(@RequestParam(required = false) String keyWord) {
return iCarService.getBizOrgName();
}
}
......@@ -22,4 +22,6 @@ public class CarExportDto {
@Excel(name = "里程数(km)")
private String totalTravel;
private String totalTravelValue;
}
......@@ -18,10 +18,7 @@ import com.yeejoin.equipmanage.common.vo.*;
import com.yeejoin.equipmanage.dto.*;
import javassist.compiler.ast.Keyword;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
/**
* 消防车信息 服务类
......@@ -197,7 +194,7 @@ public interface ICarService extends IService<Car> {
// 获取车辆归属单位总数
Map<String,Integer> getCountOfCarBelongCompany();
List<ChartIntegerDto> getCarCategoryInfo() ;
Page<CarEquipStateInfoDto> getCarEquipStateInfo();
Page<CarEquipStateInfoDto> getCarEquipStateInfo(String keyWord);
Page<CarEquipAlarmInfoDto> getCarEquipAlarmInfoDto(String keyWord);
List<ChartIntegerDto>getCarBelongAreaInfo() ;
Page<CarAreaInfoDto> getCarAreaInfo(String areaName ) ;
......@@ -206,6 +203,8 @@ public interface ICarService extends IService<Car> {
ZZChartsDto getCarMileageInfoByMothOFDay(String iotCode);
Page<CarExceptionDto> getCarExcepitonTrack(Integer type,String keyWord);
Page<CarSpeedWarningRecord> getCarWarningRecord(String keyWord);
List<Map<String,String>> getBizOrgName();
/**
* 查询车辆启动状态,赋码
*/
......
......@@ -68,6 +68,7 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.Collator;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
......@@ -84,6 +85,15 @@ import java.util.stream.Collectors;
@Service
public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarService {
private final String CAR_START_INDEX_KEY = "FireCar_Start";
@Autowired
protected HttpServletRequest request;
@Autowired
EquipmentSpecificMapper equipmentSpecificMapper;
@Autowired
WlCarSpeedWaringRecordMapper wlCarSpeedWaringRecordMapper;
@Autowired
ISyncDataService syncDataService;
@Autowired
private EquipmentCategoryMapper equipmentCategoryMapper;
private List<Consumer<LossParams>> lossHandlers;
......@@ -123,8 +133,6 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
@Autowired
private WarehouseStructureMapper warehouseStructureMapper;
@Autowired
protected HttpServletRequest request;
@Autowired
private IEquipmentService iEquipmentService;
@Autowired
private IUploadFileService iUploadFileService;
......@@ -137,51 +145,31 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
private IManufacturerInfoService iManufacturerInfoService;
@Autowired
private IJournalService journalService;
@Autowired
EquipmentSpecificMapper equipmentSpecificMapper;
@Autowired
WlCarSpeedWaringRecordMapper wlCarSpeedWaringRecordMapper;
@Autowired
private RemoteSecurityService remoteSecurityService;
@Autowired
private ICarPropertyService carPropertyService;
@Autowired
ISyncDataService syncDataService;
@Autowired
private IEquipmentDetailService iEquipmentDetailService;
@Autowired
private IEquipmentCategoryService iEquipmentCategoryService;
@Autowired
private CarPropertyMapper carPropertyMapper;
@Value("${equip.dict.car-state}")
private String carState;
@Value("${equip.dict.name-key}")
private String nameKeys;
@Value("${systemctl.sync.switch}")
private Boolean syncSwitch;
@Value("${equip.car.alarmBattery}")
private Integer carEquipAlarmBatteryNumber;
@Value("${equip.car.maxTravel}")
private Double carMaxTravel;
@Autowired
@Lazy
private IWlCarMileageService iWlCarMileageService;
private final String CAR_START_INDEX_KEY = "FireCar_Start";
@Value("${car.max.speed:100}")
private Integer CAR_MAX_SPEED;
private Integer CAR_MAX_SPEED;
/**
* 当前登录用户信息
......@@ -404,193 +392,6 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
return result;
}
class LossParams {
private Long carId;
private Long lossStateId;
private List<ExtinguishantLossRequest> extinguishants;
private Car car;
private Map<Long, StockDetail> details;
private List<ExtinguishantOnCar> extinguishantOnCar;
/**
* 记录明细账id,用户更新搜索
*/
private Set<Long> stockDetailIds;
/**
* 损耗单
*/
private WastageBill bill;
public LossParams(Long carId, List<ExtinguishantLossRequest> extinguishants) {
this.carId = carId;
this.extinguishants = extinguishants;
setStockDetailIds(new HashSet<>());
}
public StockDetail getDetailById(Long id) {
return details.get(id);
}
public Long getCarId() {
return carId;
}
public void setCarId(Long carId) {
this.carId = carId;
}
public List<ExtinguishantLossRequest> getExtinguishants() {
return extinguishants;
}
public void setExtinguishants(List<ExtinguishantLossRequest> extinguishants) {
this.extinguishants = extinguishants;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public Map<Long, StockDetail> getDetails() {
return details;
}
public void setDetails(Map<Long, StockDetail> details) {
this.details = details;
}
public List<ExtinguishantOnCar> getExtinguishantOnCar() {
return extinguishantOnCar;
}
public void setExtinguishantOnCar(List<ExtinguishantOnCar> extinguishantOnCar) {
this.extinguishantOnCar = extinguishantOnCar;
}
public WastageBill getBill() {
return bill;
}
public void setBill(WastageBill bill) {
this.bill = bill;
}
private Double equalLossCountHandler(ExtinguishantOnCar ex, Double lossCount) throws Exception {
try {
StockDetail stockDetail = getDetailById(ex.getStockDetailId());
stockDetail.setStatus(EquipStatusEnum.LOSS.getCode().toString());
stockDetail.setId(null);
stockDetailMapper.insert(stockDetail);
addStockDetailId(stockDetail.getId());
// 查询库存
Stock stock = stockMapper.selectById(stockDetail.getStockId());
stock.setAmount(stock.getAmount() - lossCount);
stockMapper.updateById(stock);
// 删除
extinguishantOnCarMapper.deleteById(ex.getId());
// 损耗清单详情
WastageBillDetail detail = new WastageBillDetail();
detail.setAmount(BigDecimal.valueOf(lossCount));
detail.setStockDetailId(stockDetail.getId());
detail.setWastageBillId(bill.getId());
wastageBillDetailMapper.insert(detail);
journalMapper.insert(createJournal(ex, stockDetail.getId(), null));
return 0d;
} catch (Exception e) {
throw e;
}
}
private Double greaterThanLossCountHandler(ExtinguishantOnCar ex, Double lossCount) throws Exception {
try {
StockDetail stockDetail = getDetailById(ex.getStockDetailId());
if (stockDetail == null) {
return 0d;
}
stockDetail.setAmount(stockDetail.getAmount() - lossCount);
stockDetailMapper.updateById(stockDetail);
addStockDetailId(stockDetail.getId());
StockDetail stockDetailClone = new StockDetail();
BeanUtils.copyProperties(stockDetail, stockDetailClone);
stockDetailClone.setId(null);
stockDetailClone.setAmount(lossCount);
stockDetailClone.setStatus(EquipStatusEnum.LOSS.getCode().toString());
stockDetailMapper.insert(stockDetailClone);
addStockDetailId(stockDetailClone.getId());
Stock stock = stockMapper.selectById(stockDetail.getStockId());
stock.setAmount(stock.getAmount() - lossCount);
stockMapper.updateById(stock);
ex.setAmount(ex.getAmount() - lossCount);
extinguishantOnCarMapper.updateById(ex);
// 损耗清单详情
WastageBillDetail detail = new WastageBillDetail();
detail.setAmount(BigDecimal.valueOf(lossCount));
detail.setStockDetailId(stockDetailClone.getId());
detail.setWastageBillId(bill.getId());
wastageBillDetailMapper.insert(detail);
journalMapper.insert(createJournal(ex, stockDetailClone.getId(), lossCount));
return 0d;
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public Journal createJournal(ExtinguishantOnCar e, Long stockDetailId, Double amount) {
Journal journal = new Journal();
Double lossAmount = (null != amount) ? amount : e.getAmount();
Long lossStockDetailId = (null != stockDetailId) ? stockDetailId : e.getStockDetailId();
journal.setAmount(lossAmount);
journal.setCarId(getCarId());
journal.setEquipmentDetailId(e.getEquipmentDetailId());
journal.setUserId(Long.valueOf(getUser().getUserId()));
// 查询EquipmentDetail
EquipmentDetail equipmentDetail = equipmentDetailMapper
.selectById(getDetailById(e.getStockDetailId()).getEquipmentDetailId());
Equipment equipment = iEquipmentService.getById(equipmentDetail.getEquipmentId());
Unit unit = unitMapper.selectById(equipment.getUnitId());
journal.setRemark(String.format("【%s】在车牌号为【%s】的车辆上,损耗了【%.2f】%s【%s】", getUser().getRealName(),
getCar().getCarNum(), lossAmount, unit.getName(), equipmentDetail.getName()));
journal.setOrgCode(getCar().getOrgCode());
journal.setStockDetailId(lossStockDetailId);
journal.setState(getLossStateId().toString());
return journal;
}
public Set<Long> getStockDetailIds() {
return stockDetailIds;
}
public void setStockDetailIds(Set<Long> stockDetailIds) {
this.stockDetailIds = stockDetailIds;
}
public void addStockDetailId(Long id) {
stockDetailIds.add(id);
}
public Long getLossStateId() {
return lossStateId;
}
public void setLossStateId(Long lossStateId) {
this.lossStateId = lossStateId;
}
}
@PostConstruct
public void init() {
if (null == loadingHandlers) {
......@@ -617,7 +418,7 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
loadingHandlers.add(this::destocking);
// loadingHandlers.add((p) ->
// loadingHandlers.add((p) ->
// AsynUtils.run(p.getStockDetailIds(), iRemoteSearchServer::updateStockDetails));
}
if (null == lossHandlers) {
......@@ -765,146 +566,39 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
return result;
}
class LoadingParams {
private Long carId;
private String loadingId;
@Override
public void loadingEquipment(OnBoardEquipment equipment, AgencyUserModel user) {
List<Equip> eqs = generate(equipment);
try {
eqs.forEach(eq -> {
StockDetail detail = getEligibleStockDetail(eq);
if (null == detail) {
throw new RuntimeException("二维码为【" + eq.getQrCode() + "】的装备库存量不足!");
}
updateStockDetail(detail, equipment.getType(), null, null);
loading(detail, eq);
generateJournal(detail, eq, equipment.getType(), user, null);
});
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
private List<ExtinguishantRequeset> extinguishants;
}
private Car car;
private Map<Long, StockDetail> details;
private Set<Long> stockDetailIds;
public LoadingParams(Long carId, List<ExtinguishantRequeset> extinguishants) {
this.carId = carId;
this.extinguishants = extinguishants;
setStockDetailIds(new HashSet<>());
}
public ExtinguishantOnCar create(ExtinguishantRequeset r, StockDetail detail) {
ExtinguishantOnCar extinguishantOnCar = new ExtinguishantOnCar();
extinguishantOnCar.setCarId(carId);
extinguishantOnCar.setAmount(r.getAmount());
extinguishantOnCar.setStockDetailId(detail.getId());
extinguishantOnCar.setEquipmentDetailId(getDetailById(r.getStockDetailId()).getEquipmentDetailId());
return extinguishantOnCar;
}
public Journal createJournal(ExtinguishantRequeset r, Long stockDetailId) {
// 查询EquipmentDetail
EquipmentDetail equipmentDetail = equipmentDetailMapper
.selectById(getDetailById(r.getStockDetailId()).getEquipmentDetailId());
Equipment equipment = iEquipmentService.getById(equipmentDetail.getEquipmentId());
Unit unit = unitMapper.selectById(equipment.getUnitId());
Journal journal = new Journal();
journal.setAmount(r.getAmount());
journal.setCarId(getCarId());
journal.setEquipmentDetailId(getDetailById(r.getStockDetailId()).getEquipmentDetailId());
journal.setUserId(Long.valueOf(getUser().getUserId()));
journal.setWarehouseStructureId(getDetailById(r.getStockDetailId()).getWarehouseStructureId());
journal.setRemark(String.format("【%s】向车牌号为【%s】的车辆上,装载了【%.2f】%s【%s】", getUser().getRealName(),
getCar().getCarNum(), r.getAmount(), unit.getName(), equipmentDetail.getName()));
journal.setOrgCode(getCar().getOrgCode());
journal.setStockDetailId(stockDetailId);
journal.setState(getLoadingId());
return journal;
}
public StockDetail getDetailById(Long id) {
return details.get(id);
}
public Long getCarId() {
return carId;
}
public void setCarId(Long carId) {
this.carId = carId;
}
public List<ExtinguishantRequeset> getExtinguishants() {
return extinguishants;
}
public void setExtinguishants(List<ExtinguishantRequeset> extinguishants) {
this.extinguishants = extinguishants;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public Map<Long, StockDetail> getDetails() {
return details;
}
public void setDetails(Map<Long, StockDetail> details) {
this.details = details;
}
public Set<Long> getStockDetailIds() {
return stockDetailIds;
}
public void setStockDetailIds(Set<Long> stockDetailIds) {
this.stockDetailIds = stockDetailIds;
}
public void addStockDetailId(Long id) {
stockDetailIds.add(id);
}
public String getLoadingId() {
return loadingId;
}
public void setLoadingId(String loadingId) {
this.loadingId = loadingId;
}
}
@Override
public void loadingEquipment(OnBoardEquipment equipment, AgencyUserModel user) {
List<Equip> eqs = generate(equipment);
try {
eqs.forEach(eq -> {
StockDetail detail = getEligibleStockDetail(eq);
if (null == detail) {
throw new RuntimeException("二维码为【" + eq.getQrCode() + "】的装备库存量不足!");
}
updateStockDetail(detail, equipment.getType(), null, null);
loading(detail, eq);
generateJournal(detail, eq, equipment.getType(), user, null);
});
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
private void loading(StockDetail detail, Equip eq) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("qr_code", detail.getQrCode());
EquipmentSpecific equipmentSpecific = equipmentSpecificMapper.selectOne(queryWrapper);
EquipmentOnCar equipmentOnCar = new EquipmentOnCar();
equipmentOnCar.setCarId(eq.getCarId());
equipmentOnCar.setStockDetailId(detail.getId());
equipmentOnCar.setAmount(eq.getAmount());
equipmentOnCar.setEquipmentDetailId(eq.getEquipmentDetailId());
if (equipmentSpecific != null) {
equipmentOnCar.setEquipmentSpecificId(equipmentSpecific.getId());
}
equipmentOnCarMapper.insert(equipmentOnCar);
}
private void loading(StockDetail detail, Equip eq) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("qr_code", detail.getQrCode());
EquipmentSpecific equipmentSpecific = equipmentSpecificMapper.selectOne(queryWrapper);
EquipmentOnCar equipmentOnCar = new EquipmentOnCar();
equipmentOnCar.setCarId(eq.getCarId());
equipmentOnCar.setStockDetailId(detail.getId());
equipmentOnCar.setAmount(eq.getAmount());
equipmentOnCar.setEquipmentDetailId(eq.getEquipmentDetailId());
if (equipmentSpecific != null) {
equipmentOnCar.setEquipmentSpecificId(equipmentSpecific.getId());
}
equipmentOnCarMapper.insert(equipmentOnCar);
}
private void generateJournal(StockDetail detail, Equip eq, String type, AgencyUserModel user, Long shelfCellId) {
OnBoardEquipmentEnum typeEnum = OnBoardEquipmentEnum.getEnum(type);
......@@ -1380,7 +1074,7 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
if (!ObjectUtils.isEmpty(car.getIotCode())) {
Double monthTravel=0.0;
Double monthTravel = 0.0;
Double totalTravel = 0.0;
String currentYearAndMonth = DateUtil.format(new Date(), "yyyy-MM");
LambdaQueryWrapper<WlCarMileage> wrapper = new LambdaQueryWrapper<WlCarMileage>();
......@@ -1389,18 +1083,18 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
wrapper.isNotNull(WlCarMileage::getEndTime);
wrapper.isNotNull(WlCarMileage::getStartTime);
// .ge("travel", 0.5)
List<WlCarMileage> list = iWlCarMileageService.list(wrapper);
List<WlCarMileage> list = iWlCarMileageService.list(wrapper);
for (WlCarMileage wl : list) {
//判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回
if (!ObjectUtils.isEmpty(wl.getTakeTime()) && !ObjectUtils.isEmpty(wl.getTravel()) && ((wl.getTravel() / (wl.getTakeTime() / 3600000.0)) < CAR_MAX_SPEED)) {
if (!ObjectUtils.isEmpty(wl.getTakeTime()) && !ObjectUtils.isEmpty(wl.getTravel()) && ((wl.getTravel() / (wl.getTakeTime() / 3600000.0)) < CAR_MAX_SPEED)) {
totalTravel += wl.getTravel();
if(DateUtil.format(wl.getStartTime(),"yyyy-MM").equals(currentYearAndMonth)){
if (DateUtil.format(wl.getStartTime(), "yyyy-MM").equals(currentYearAndMonth)) {
monthTravel += wl.getTravel();
}
}
}
car.setTotalTravel(Double.valueOf(String.format("%.1f",totalTravel)));
car.setMonthTravel(Double.valueOf(String.format("%.1f",monthTravel)));
car.setTotalTravel(Double.valueOf(String.format("%.1f", totalTravel)));
car.setMonthTravel(Double.valueOf(String.format("%.1f", monthTravel)));
WlCarMileage last = iWlCarMileageService
.getOne(new LambdaQueryWrapper<WlCarMileage>().eq(WlCarMileage::getIotCode, car.getIotCode())
.orderByDesc(WlCarMileage::getEndTime).last("limit 1"));
......@@ -1607,7 +1301,6 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
return carMapper.getCarStateInfoByCarNum(carNum);
}
@Override
public CarForUE4VO getCarDetailByCarNumToThreeDimensional(Long carId, String orgCode) {
CarForUE4VO carForUE4VO = new CarForUE4VO();
......@@ -1641,7 +1334,6 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
return carForUE4VO;
}
@Override
public Page<CarInfoDto> equipmentCarList(Page<CarInfoDto> pag, Long teamId, String name, String code, Long id, Boolean isNo) {
......@@ -1749,14 +1441,12 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
return page;
}
@Override
public List<Car> location() {
List<Car> list = this.list();
return list;
}
@Override
public Map<String, Integer> getCountOfCar() {
Map<String, Integer> map = new HashMap<>();
......@@ -1788,7 +1478,7 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public Page<CarEquipStateInfoDto> getCarEquipStateInfo() {
public Page<CarEquipStateInfoDto> getCarEquipStateInfo(String keyWord) {
// BasicTableDataDto basicTableDataDto = new BasicTableDataDto();
// List<ColModel> colModels = new ArrayList<>();
// colModels.add(new ColModel("carNum","车牌号"));
......@@ -1796,19 +1486,39 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
// colModels.add(new ColModel("equipState","设备状态"));
// colModels.add(new ColModel("extra2","设备电量"));
Page<CarEquipStateInfoDto> page = new Page<>();
List<CarEquipStateInfoDto> list = carMapper.getCarEquipStateInfo();
if (list.size() > 0) {
list.forEach(carEquipStateInfoDto -> {
if (carEquipStateInfoDto.getExtra2() != null) {
carEquipStateInfoDto.setEquipState("开机");
carEquipStateInfoDto.setExtra2(carEquipStateInfoDto.getExtra2() + "%");
} else {
carEquipStateInfoDto.setEquipState("关机");
carEquipStateInfoDto.setExtra2("未上报");
}
});
List<CarEquipStateInfoDto> result = new ArrayList<>();
List<Car> list = this.list();
if (StringUtils.isNotEmpty(keyWord)) {
list = list.stream().filter(car -> car.getBizOrgName().contains(keyWord)).collect(Collectors.toList());
}
page.setRecords(list);
list = list.stream().sorted(Comparator.comparing(Car::getExtra2, Comparator.comparingDouble(Double::valueOf)).reversed()).collect(Collectors.toList());
for (int i = 0; i < list.size(); i++) {
Car car = list.get(i);
CarEquipStateInfoDto carEquipStateInfoDto = new CarEquipStateInfoDto();
carEquipStateInfoDto.setCarNum(car.getCarNum());
carEquipStateInfoDto.setBizOrgName(car.getBizOrgName());
if (car.getExtra2() != null) {
carEquipStateInfoDto.setEquipState("开机");
carEquipStateInfoDto.setExtra2(car.getExtra2() + "%");
} else {
carEquipStateInfoDto.setEquipState("关机");
carEquipStateInfoDto.setExtra2("未上报");
}
result.add(carEquipStateInfoDto);
}
// List<CarEquipStateInfoDto> list = carMapper.getCarEquipStateInfo();
//// if (list.size() > 0) {
//// list.forEach(carEquipStateInfoDto -> {
//// if (carEquipStateInfoDto.getExtra2() != null) {
//// carEquipStateInfoDto.setEquipState("开机");
//// carEquipStateInfoDto.setExtra2(carEquipStateInfoDto.getExtra2() + "%");
//// } else {
//// carEquipStateInfoDto.setEquipState("关机");
//// carEquipStateInfoDto.setExtra2("未上报");
//// }
//// });
//// }
page.setRecords(result);
page.setTotal(list.size());
page.setCurrent(1);
page.setSize(10);
......@@ -1822,16 +1532,17 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
@Override
public Page<CarEquipAlarmInfoDto> getCarEquipAlarmInfoDto(String keyWord) {
Page<CarEquipAlarmInfoDto> page = new Page<>();
List<Car> list =this.list().stream().filter(car -> Integer.valueOf(car.getExtra2())< carEquipAlarmBatteryNumber).collect(Collectors.toList());
if(StringUtils.isNotEmpty(keyWord)){
list=list.stream().filter(car -> car.getBizOrgName().contains(keyWord)||car.getOwnership().contains(keyWord)).collect(Collectors.toList());
List<Car> list = this.list().stream().filter(car -> Integer.valueOf(car.getExtra2()) < carEquipAlarmBatteryNumber).collect(Collectors.toList());
if (StringUtils.isNotEmpty(keyWord)) {
list = list.stream().filter(car -> car.getBizOrgName().contains(keyWord)).collect(Collectors.toList());
}
List<CarEquipAlarmInfoDto> carEquipAlarmInfoDtoList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
CarEquipAlarmInfoDto carEquipAlarmInfoDto=new CarEquipAlarmInfoDto();
CarEquipAlarmInfoDto carEquipAlarmInfoDto = new CarEquipAlarmInfoDto();
carEquipAlarmInfoDto.setCarNum(list.get(i).getCarNum());
carEquipAlarmInfoDto.setNo(i+1);
carEquipAlarmInfoDto.setAlarmMessage("该设备电量低于"+carEquipAlarmBatteryNumber+"%!");
carEquipAlarmInfoDto.setNo(i + 1);
carEquipAlarmInfoDto.setAlarmMessage("该设备电量低于" + carEquipAlarmBatteryNumber + "%!");
carEquipAlarmInfoDtoList.add(carEquipAlarmInfoDto);
}
page.setRecords(carEquipAlarmInfoDtoList);
page.setTotal(list.size());
......@@ -1862,26 +1573,26 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public Page<CarAreaInfoDto> getCarAreaInfo( String areaName) {
public Page<CarAreaInfoDto> getCarAreaInfo(String areaName) {
Page<CarAreaInfoDto> page = new Page<>();
List<CarAreaInfoDto> list = new ArrayList<>();
CompanyModel companyModelArea= Privilege.companyClient.queryByCompanyName(areaName).getResult();
if(companyModelArea!=null){
FeignClientResult<java.util.Collection<CompanyModel>> de = Privilege.companyClient.querySubAgencyTree(companyModelArea.getSequenceNbr());
//如果是公司则获取所有片区
ArrayList<CompanyModel> companyModels = (ArrayList<CompanyModel>) de.getResult();
if (companyModels.size() >0 ) {
for (int i = 0; i < companyModels.size(); i++) {
CompanyModel companyModel = companyModels.get(i);
CarAreaInfoDto carAreaInfoDto = new CarAreaInfoDto();
Integer count = this.count(new QueryWrapper<Car>().like("biz_org_code", companyModel.getOrgCode()));
carAreaInfoDto.setNo(i+1);
carAreaInfoDto.setName(companyModel.getCompanyName());
carAreaInfoDto.setCountOfCar(count);
list.add(carAreaInfoDto);
}
}
}
CompanyModel companyModelArea = Privilege.companyClient.queryByCompanyName(areaName).getResult();
if (companyModelArea != null) {
FeignClientResult<java.util.Collection<CompanyModel>> de = Privilege.companyClient.querySubAgencyTree(companyModelArea.getSequenceNbr());
//如果是公司则获取所有片区
ArrayList<CompanyModel> companyModels = (ArrayList<CompanyModel>) de.getResult();
if (companyModels.size() > 0) {
for (int i = 0; i < companyModels.size(); i++) {
CompanyModel companyModel = companyModels.get(i);
CarAreaInfoDto carAreaInfoDto = new CarAreaInfoDto();
Integer count = this.count(new QueryWrapper<Car>().like("biz_org_code", companyModel.getOrgCode()));
carAreaInfoDto.setNo(i + 1);
carAreaInfoDto.setName(companyModel.getCompanyName());
carAreaInfoDto.setCountOfCar(count);
list.add(carAreaInfoDto);
}
}
}
page.setRecords(list);
page.setTotal(list.size());
page.setCurrent(1);
......@@ -1890,17 +1601,17 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public BasicTableDataDto getCarMileageInfoByMoth(String date,Integer current,Integer pageSize,String keyWord) {
public BasicTableDataDto getCarMileageInfoByMoth(String date, Integer current, Integer pageSize, String keyWord) {
BasicTableDataDto basicTableDataDto = new BasicTableDataDto();
List<ColModel> colModels = new ArrayList<>();
colModels.add(new ColModel("carNum","车牌号"));
colModels.add(new ColModel("carCode","编号"));
colModels.add(new ColModel("bizOrgName","所属单位"));
colModels.add(new ColModel("total","当月里程"));
colModels.add(new ColModel("carNum", "车牌号"));
colModels.add(new ColModel("carCode", "编号"));
colModels.add(new ColModel("bizOrgName", "所属单位"));
colModels.add(new ColModel("total", "当月里程"));
List<MileageDto> mileageDtoList = new ArrayList<>();
List<Car> list = this.list();
if(StringUtils.isNotEmpty(keyWord)){
list=list.stream().filter(car -> car.getBizOrgName().contains(keyWord)||car.getOwnership().contains(keyWord)).collect(Collectors.toList());
if (StringUtils.isNotEmpty(keyWord)) {
list = list.stream().filter(car -> car.getBizOrgName().contains(keyWord)).collect(Collectors.toList());
}
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
......@@ -1915,33 +1626,33 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
// mileageDto.setTotalTravel((totalTravel / carMaxTravel) * 100);
mileageDto.setTotalTravel(totalTravel);
} else {
totalTravel= 0.0;
totalTravel = 0.0;
mileageDto.setTotalTravel(totalTravel);
}
mileageDto.setTotal(String.format("%.1f",totalTravel)+"KM");
mileageDto.setTotal(String.format("%.1f", totalTravel) + "KM");
mileageDtoList.add(mileageDto);
}
}
mileageDtoList = mileageDtoList.stream().sorted(Comparator.comparing(MileageDto::getTotalTravel).reversed()).collect(Collectors.toList());
Integer from=(current-1)*pageSize>mileageDtoList.size()?mileageDtoList.size():(current-1)*pageSize;
Integer to=current*pageSize>mileageDtoList.size()?mileageDtoList.size():current*pageSize;
DataGridMock mypageDto=new DataGridMock(current,mileageDtoList.size(),true,current,mileageDtoList.subList(from,to));
Integer from = (current - 1) * pageSize > mileageDtoList.size() ? mileageDtoList.size() : (current - 1) * pageSize;
Integer to = current * pageSize > mileageDtoList.size() ? mileageDtoList.size() : current * pageSize;
DataGridMock mypageDto = new DataGridMock(current, mileageDtoList.size(), true, current, mileageDtoList.subList(from, to));
basicTableDataDto.setDataGridMock(mypageDto);
basicTableDataDto.setColModel(colModels);
return basicTableDataDto;
}
@Override
public List<CarExportDto> exportCarMileageInfoByMoth(String date,String keyWord) {
public List<CarExportDto> exportCarMileageInfoByMoth(String date, String keyWord) {
List<CarExportDto> carExportDtos = new ArrayList<>();
List<Car> list = this.list();
if(StringUtils.isNotEmpty(keyWord)){
list=list.stream().filter(car -> car.getBizOrgName().contains(keyWord)||car.getOwnership().contains(keyWord)).collect(Collectors.toList());
if (StringUtils.isNotEmpty(keyWord)) {
list = list.stream().filter(car -> car.getBizOrgName().contains(keyWord)).collect(Collectors.toList());
}
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
CarExportDto carExportDto = new CarExportDto();
Car car = list.get(i);
Car car = list.get(i);
Double totalTravel = iWlCarMileageService.getTotalTravelByIotCodeAndDate(date, car.getIotCode());
carExportDto.setCode(car.getRemark());
carExportDto.setCarNumber(car.getCarNum());
......@@ -1950,21 +1661,23 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
carExportDto.setOrgName(car.getBizOrgName());
carExportDto.setStandard(car.getStandard());
carExportDto.setDisplacement(car.getDisplacement());
if(totalTravel!=null){
carExportDto.setTotalTravel(String.format("%.1f",totalTravel)+"KM");
}else {
carExportDto.setTotalTravel("0.0KM");
if (totalTravel != null) {
carExportDto.setTotalTravel(String.format("%.1f", totalTravel) + "KM");
carExportDto.setTotalTravelValue(String.format("%.1f", totalTravel));
} else {
carExportDto.setTotalTravel("0KM");
carExportDto.setTotalTravelValue("0.0");
}
carExportDtos.add(carExportDto);
}
}
Collections.sort(carExportDtos,(e1,e2)->Double.valueOf(e2.getTotalTravel()).compareTo(Double.valueOf(e1.getTotalTravel())));
Collections.sort(carExportDtos, (e1, e2) -> Double.valueOf(e2.getTotalTravelValue()).compareTo(Double.valueOf(e1.getTotalTravelValue())));
return carExportDtos;
}
@Override
public ZZChartsDto getCarMileageInfoByMothOFDay(String iotCode) {
ZZChartsDto zzChartsDto = new ZZChartsDto();
ZZChartsDto zzChartsDto = new ZZChartsDto();
//X轴数据
List<String> x = new ArrayList<>();
// Y轴数据
......@@ -1976,10 +1689,10 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
calendar.set(Calendar.YEAR, Integer.parseInt(dates[0]));
calendar.set(Calendar.MONTH, Integer.parseInt(dates[1]));
for (int i = 0; i < calendar.getActualMaximum(Calendar.DATE); i++) {
String dateStr = i < 9 ? dates[1]+ "-0" + (i + 1) : dates[1] + "-" + (i + 1);
String dateStr = i < 9 ? dates[1] + "-0" + (i + 1) : dates[1] + "-" + (i + 1);
Double totalTravel = iWlCarMileageService.getTotalTravelByIotCodeAndDate(dateStr, datas[1]);
if (totalTravel == null) {
totalTravel = 0.0;
totalTravel = 0.0;
}
x.add(dateStr);
y.add(totalTravel);
......@@ -1990,22 +1703,22 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public Page<CarExceptionDto> getCarExcepitonTrack(Integer type,String keyWord) {
public Page<CarExceptionDto> getCarExcepitonTrack(Integer type, String keyWord) {
Page<CarExceptionDto> page = new Page<>();
List<CarExceptionDto> carExceptionDtos = new ArrayList<>();
LocalDate localDate = LocalDate.now(ZoneId.of("+8"));
String startDate = localDate.plusDays(-1).toString();
String endDate = localDate.plusDays((0- type)).toString();
String endDate = localDate.plusDays((0 - type)).toString();
List<Car> list = this.list();
if(StringUtils.isNotEmpty(keyWord)){
list=list.stream().filter(car -> car.getBizOrgName().contains(keyWord)||car.getOwnership().contains(keyWord)).collect(Collectors.toList());
if (StringUtils.isNotEmpty(keyWord)) {
list = list.stream().filter(car -> car.getBizOrgName().contains(keyWord)).collect(Collectors.toList());
}
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
CarExceptionDto carExceptionDto = new CarExceptionDto();
Car car = list.get(i);
Double totalTravel = iWlCarMileageService.getTotalTravelByIotCodeAndDateProd(startDate,endDate,list.get(i).getIotCode());
if (!(totalTravel != null && totalTravel> 0.0)) {
Double totalTravel = iWlCarMileageService.getTotalTravelByIotCodeAndDateProd(startDate, endDate, list.get(i).getIotCode());
if (!(totalTravel != null && totalTravel > 0.0)) {
carExceptionDto.setCarId(String.valueOf(car.getId()));
carExceptionDto.setCarNumber(car.getCarNum());
carExceptionDto.setBelongStation(car.getBizOrgName());
......@@ -2025,13 +1738,13 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
Page<CarSpeedWarningRecord> carSpeedWarningRecordPage = new Page<>();
Date date = new Date();
String endTime = DateUtil.format(date, DatePattern.NORM_DATETIME_FORMAT);
date = DateUtil.offsetDay(date,-15);
date = DateUtil.offsetDay(date, -15);
String startTime = DateUtil.format(date, DatePattern.NORM_DATETIME_FORMAT);
List<CarSpeedWarningRecord> list = wlCarSpeedWaringRecordMapper.selectList(new QueryWrapper<CarSpeedWarningRecord>().ge("waring_date",startTime).le("waring_date",endTime));
if(StringUtils.isNotEmpty(keyWord)){
list=list.stream().filter(carSpeedWarningRecord -> carSpeedWarningRecord.getBizOrgName().contains(keyWord)||carSpeedWarningRecord.getOwnership().contains(keyWord)).collect(Collectors.toList());
List<CarSpeedWarningRecord> list = wlCarSpeedWaringRecordMapper.selectList(new QueryWrapper<CarSpeedWarningRecord>().ge("waring_date", startTime).le("waring_date", endTime));
if (StringUtils.isNotEmpty(keyWord)) {
list = list.stream().filter(carSpeedWarningRecord -> carSpeedWarningRecord.getBizOrgName().contains(keyWord) || carSpeedWarningRecord.getOwnership().contains(keyWord)).collect(Collectors.toList());
}
Collections.sort(list,(e1,e2)->e2.getOverSpeed().compareTo(e1.getOverSpeed()));
Collections.sort(list, (e1, e2) -> e2.getOverSpeed().compareTo(e1.getOverSpeed()));
carSpeedWarningRecordPage.setRecords(list);
carSpeedWarningRecordPage.setTotal(list.size());
carSpeedWarningRecordPage.setSize(1);
......@@ -2040,6 +1753,22 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public List<Map<String, String>> getBizOrgName() {
List<Map<String, String>> result = new ArrayList<>();
List<Car> cars = this.list(new QueryWrapper<Car>().groupBy("biz_org_name"));
List<String> orgNames = cars.stream().map(car -> car.getBizOrgName()).collect(Collectors.toList());
Comparator comparator = Collator.getInstance(Locale.CHINA);
Collections.sort(orgNames, (p1, p2) -> comparator.compare(p1, p2));
for (int i = 0; i < orgNames.size(); i++) {
Map<String, String> item = new HashMap<>();
item.put("text", orgNames.get(i));
item.put("value", orgNames.get(i));
result.add(item);
}
return result;
}
@Override
public List<Map<String, String>> updateCarStartStatus() {
return carPropertyMapper.selectIndexByTime(CAR_START_INDEX_KEY);
}
......@@ -2051,4 +1780,298 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
carMapper.updateStatusByIds(carIds, status);
}
}
class LossParams {
private Long carId;
private Long lossStateId;
private List<ExtinguishantLossRequest> extinguishants;
private Car car;
private Map<Long, StockDetail> details;
private List<ExtinguishantOnCar> extinguishantOnCar;
/**
* 记录明细账id,用户更新搜索
*/
private Set<Long> stockDetailIds;
/**
* 损耗单
*/
private WastageBill bill;
public LossParams(Long carId, List<ExtinguishantLossRequest> extinguishants) {
this.carId = carId;
this.extinguishants = extinguishants;
setStockDetailIds(new HashSet<>());
}
public StockDetail getDetailById(Long id) {
return details.get(id);
}
public Long getCarId() {
return carId;
}
public void setCarId(Long carId) {
this.carId = carId;
}
public List<ExtinguishantLossRequest> getExtinguishants() {
return extinguishants;
}
public void setExtinguishants(List<ExtinguishantLossRequest> extinguishants) {
this.extinguishants = extinguishants;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public Map<Long, StockDetail> getDetails() {
return details;
}
public void setDetails(Map<Long, StockDetail> details) {
this.details = details;
}
public List<ExtinguishantOnCar> getExtinguishantOnCar() {
return extinguishantOnCar;
}
public void setExtinguishantOnCar(List<ExtinguishantOnCar> extinguishantOnCar) {
this.extinguishantOnCar = extinguishantOnCar;
}
public WastageBill getBill() {
return bill;
}
public void setBill(WastageBill bill) {
this.bill = bill;
}
private Double equalLossCountHandler(ExtinguishantOnCar ex, Double lossCount) throws Exception {
try {
StockDetail stockDetail = getDetailById(ex.getStockDetailId());
stockDetail.setStatus(EquipStatusEnum.LOSS.getCode().toString());
stockDetail.setId(null);
stockDetailMapper.insert(stockDetail);
addStockDetailId(stockDetail.getId());
// 查询库存
Stock stock = stockMapper.selectById(stockDetail.getStockId());
stock.setAmount(stock.getAmount() - lossCount);
stockMapper.updateById(stock);
// 删除
extinguishantOnCarMapper.deleteById(ex.getId());
// 损耗清单详情
WastageBillDetail detail = new WastageBillDetail();
detail.setAmount(BigDecimal.valueOf(lossCount));
detail.setStockDetailId(stockDetail.getId());
detail.setWastageBillId(bill.getId());
wastageBillDetailMapper.insert(detail);
journalMapper.insert(createJournal(ex, stockDetail.getId(), null));
return 0d;
} catch (Exception e) {
throw e;
}
}
private Double greaterThanLossCountHandler(ExtinguishantOnCar ex, Double lossCount) throws Exception {
try {
StockDetail stockDetail = getDetailById(ex.getStockDetailId());
if (stockDetail == null) {
return 0d;
}
stockDetail.setAmount(stockDetail.getAmount() - lossCount);
stockDetailMapper.updateById(stockDetail);
addStockDetailId(stockDetail.getId());
StockDetail stockDetailClone = new StockDetail();
BeanUtils.copyProperties(stockDetail, stockDetailClone);
stockDetailClone.setId(null);
stockDetailClone.setAmount(lossCount);
stockDetailClone.setStatus(EquipStatusEnum.LOSS.getCode().toString());
stockDetailMapper.insert(stockDetailClone);
addStockDetailId(stockDetailClone.getId());
Stock stock = stockMapper.selectById(stockDetail.getStockId());
stock.setAmount(stock.getAmount() - lossCount);
stockMapper.updateById(stock);
ex.setAmount(ex.getAmount() - lossCount);
extinguishantOnCarMapper.updateById(ex);
// 损耗清单详情
WastageBillDetail detail = new WastageBillDetail();
detail.setAmount(BigDecimal.valueOf(lossCount));
detail.setStockDetailId(stockDetailClone.getId());
detail.setWastageBillId(bill.getId());
wastageBillDetailMapper.insert(detail);
journalMapper.insert(createJournal(ex, stockDetailClone.getId(), lossCount));
return 0d;
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public Journal createJournal(ExtinguishantOnCar e, Long stockDetailId, Double amount) {
Journal journal = new Journal();
Double lossAmount = (null != amount) ? amount : e.getAmount();
Long lossStockDetailId = (null != stockDetailId) ? stockDetailId : e.getStockDetailId();
journal.setAmount(lossAmount);
journal.setCarId(getCarId());
journal.setEquipmentDetailId(e.getEquipmentDetailId());
journal.setUserId(Long.valueOf(getUser().getUserId()));
// 查询EquipmentDetail
EquipmentDetail equipmentDetail = equipmentDetailMapper
.selectById(getDetailById(e.getStockDetailId()).getEquipmentDetailId());
Equipment equipment = iEquipmentService.getById(equipmentDetail.getEquipmentId());
Unit unit = unitMapper.selectById(equipment.getUnitId());
journal.setRemark(String.format("【%s】在车牌号为【%s】的车辆上,损耗了【%.2f】%s【%s】", getUser().getRealName(),
getCar().getCarNum(), lossAmount, unit.getName(), equipmentDetail.getName()));
journal.setOrgCode(getCar().getOrgCode());
journal.setStockDetailId(lossStockDetailId);
journal.setState(getLossStateId().toString());
return journal;
}
public Set<Long> getStockDetailIds() {
return stockDetailIds;
}
public void setStockDetailIds(Set<Long> stockDetailIds) {
this.stockDetailIds = stockDetailIds;
}
public void addStockDetailId(Long id) {
stockDetailIds.add(id);
}
public Long getLossStateId() {
return lossStateId;
}
public void setLossStateId(Long lossStateId) {
this.lossStateId = lossStateId;
}
}
class LoadingParams {
private Long carId;
private String loadingId;
private List<ExtinguishantRequeset> extinguishants;
private Car car;
private Map<Long, StockDetail> details;
private Set<Long> stockDetailIds;
public LoadingParams(Long carId, List<ExtinguishantRequeset> extinguishants) {
this.carId = carId;
this.extinguishants = extinguishants;
setStockDetailIds(new HashSet<>());
}
public ExtinguishantOnCar create(ExtinguishantRequeset r, StockDetail detail) {
ExtinguishantOnCar extinguishantOnCar = new ExtinguishantOnCar();
extinguishantOnCar.setCarId(carId);
extinguishantOnCar.setAmount(r.getAmount());
extinguishantOnCar.setStockDetailId(detail.getId());
extinguishantOnCar.setEquipmentDetailId(getDetailById(r.getStockDetailId()).getEquipmentDetailId());
return extinguishantOnCar;
}
public Journal createJournal(ExtinguishantRequeset r, Long stockDetailId) {
// 查询EquipmentDetail
EquipmentDetail equipmentDetail = equipmentDetailMapper
.selectById(getDetailById(r.getStockDetailId()).getEquipmentDetailId());
Equipment equipment = iEquipmentService.getById(equipmentDetail.getEquipmentId());
Unit unit = unitMapper.selectById(equipment.getUnitId());
Journal journal = new Journal();
journal.setAmount(r.getAmount());
journal.setCarId(getCarId());
journal.setEquipmentDetailId(getDetailById(r.getStockDetailId()).getEquipmentDetailId());
journal.setUserId(Long.valueOf(getUser().getUserId()));
journal.setWarehouseStructureId(getDetailById(r.getStockDetailId()).getWarehouseStructureId());
journal.setRemark(String.format("【%s】向车牌号为【%s】的车辆上,装载了【%.2f】%s【%s】", getUser().getRealName(),
getCar().getCarNum(), r.getAmount(), unit.getName(), equipmentDetail.getName()));
journal.setOrgCode(getCar().getOrgCode());
journal.setStockDetailId(stockDetailId);
journal.setState(getLoadingId());
return journal;
}
public StockDetail getDetailById(Long id) {
return details.get(id);
}
public Long getCarId() {
return carId;
}
public void setCarId(Long carId) {
this.carId = carId;
}
public List<ExtinguishantRequeset> getExtinguishants() {
return extinguishants;
}
public void setExtinguishants(List<ExtinguishantRequeset> extinguishants) {
this.extinguishants = extinguishants;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public Map<Long, StockDetail> getDetails() {
return details;
}
public void setDetails(Map<Long, StockDetail> details) {
this.details = details;
}
public Set<Long> getStockDetailIds() {
return stockDetailIds;
}
public void setStockDetailIds(Set<Long> stockDetailIds) {
this.stockDetailIds = stockDetailIds;
}
public void addStockDetailId(Long id) {
stockDetailIds.add(id);
}
public String getLoadingId() {
return loadingId;
}
public void setLoadingId(String loadingId) {
this.loadingId = loadingId;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment