Commit 07602a7b authored by kang.nie@inzymeits.com's avatar kang.nie@inzymeits.com
Browse files

提交代码

parent e0c7be76
package com.ssi.entity.vo;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class CranePadBindVo {
private int pageIndex;
private int pageSize;
private String craneNo;
private Integer craneType;
}
package com.ssi.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Getter
@Setter
public class DayHourTrend implements Serializable {
@JsonFormat(pattern = "M.d")
private LocalDate date;
private int hour;
public static List<DayHourTrend> fillBlankDay(List<? extends DayHourTrend> list, Class<? extends DayHourTrend> clazz, LocalDateTime startTime, LocalDateTime endTime) throws Exception{
List<DayHourTrend> resList = new ArrayList<>();
LocalDate date = startTime.toLocalDate();
do {
DayHourTrend vo = clazz.newInstance();
vo.setDate(date);
for (int i = 0; i < list.size(); i++) {
DayHourTrend vo1 = list.get(i);
if (date.compareTo(vo1.getDate()) == 0) {
vo = vo1;
break;
}
}
resList.add(vo);
date = date.plusDays(1);
} while (date.compareTo(endTime.toLocalDate()) <= 0);
return resList;
}
public static List<? extends DayHourTrend> fillBlankHour(List<? extends DayHourTrend> list,Class<? extends DayHourTrend> clazz) throws Exception{
List<DayHourTrend> resList = new ArrayList<>();
for (int i = 0; i < 24; i++) {
DayHourTrend vo = null;
for (int j = 0; j < list.size(); j++) {
DayHourTrend vo1 = list.get(j);
if (vo1.getHour() == i) {
vo = vo1;
break;
}
}
if (vo == null) {
vo = clazz.newInstance();
vo.setHour(i);
}
resList.add(vo);
}
return resList;
}
}
package com.ssi.entity.vo;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class KpiCostTimeVo {
private Date startTime;
private Date endTime;
private Integer vehicleTaskLabel;
private Integer containerSize;
private String voyageNo;
private String vin;
private List<String> vins;
private List<Integer> vehicleTaskLabels;
private String portCode;
}
package com.ssi.entity.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @author SunnyHotz
* @PackageName:com.ssi.entity.vo
* @ClassName:LocationVo
* @Description:
* @date 2022/11/1 18:54
*/
@Data
@AllArgsConstructor
public class LocationVo {
private Double lon;
private Double lat;
private String address;
}
package com.ssi.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author ZhangLiYao
* @version 1.0
* @date 2020/8/10 9:46
*/
@Data
public class OperateDataVo implements Serializable {
private BigDecimal travelmile;
private BigDecimal travelTime;
public OperateDataVo(BigDecimal travelmile, BigDecimal travelTime) {
this.travelmile = travelmile;
this.travelTime = travelTime;
}
}
package com.ssi.entity.vo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
@Getter
@Setter
@ToString
public class TaskAnalysisVo extends DayHourTrend implements Serializable {
private int loadContainerNum;
private int unloadContainerNum;
private int handleContainerNum;
private double loadContainerAvgTime;
private double unloadContainerAvgTime;
private double handleContainerAvgTime;
private Long loadContainerTime;
private Long unloadContainerTime;
private Long handleContainerTime;
private String vin;
}
package com.ssi.entity.vo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.util.Date;
@Getter
@Setter
@ToString
public class TaskKPIVo {
private String taskNo;
//VIN
private String vin;
//车辆编号
private String vehicleNum;
//指令等待时间
private String instructionWaitingTime;
//作业准备时间
private String homeworkPreparationTime;
//移动到去箱点时间
private String moveTheBoxTime;
//取箱点等待时间
private String pickingTime;
//箱数量
private String boxQuantity;
}
package com.ssi.entity.vo;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class TaskMileTrendByDayVo extends DayHourTrend {
private double totalWorkMile;
private double totalFreeMile;
}
package com.ssi.entity.vo;
import lombok.*;
import java.util.Date;
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class TaskStatusHistory {
//"vin", "sn", "status","collectTime"
private String vin;
private String sn;
private Integer status;
private Long collectTime;
private String statusDescription;
private String vehicleNum;
private String errorMessage;
private boolean existed = true;
}
package com.ssi.entity.vo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
@Getter
@Setter
@ToString
public class TransportCapacityAnalysisVo {
private BigDecimal transportCapacity;
private int f0to30Num;
private int f30to50Num;
private int f50to70Num;
private int f70to100Num;
public void rangeMatch(int soc){
if(0 <= soc && soc < 30){
f0to30Num++;
}
if(30 <= soc && soc < 50){
f30to50Num++;
}
if(50 <= soc && soc < 70){
f50to70Num++;
}
if(70 <= soc && soc < 100){
f70to100Num++;
}
}
}
package com.ssi.entity.vo;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class UseInfoByVehicleVo {
private String vin;
private String vehicleNum;
private double useRate;
private double time;
private int mile;
private double energyPerMile;
}
package com.ssi.entity.vo;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class VehicleCommandVo{
private String shipName; //船名
@Excel(name = "航次", orderNum = "1", width = 35)
private String voyage; //航次
@Excel(name = "车号", orderNum = "2", width = 35)
private String truckNo; //车号
@Excel(name = "箱号", orderNum = "7", width = 35)
private String cntr; //箱号
@Excel(name = "收到TOS指令时间", orderNum = "8", width = 35)
private String tosTime; //收到TOS指令时间
@Excel(name = "单车到桥下时间", orderNum = "9", width = 35)
private String arriveTime; //单车到桥下时间
@Excel(name = "桥边确认", orderNum = "10", width = 35)
private String shipWorkTime; //桥边确认
@Excel(name = "堆场确认", orderNum = "11", width = 35)
private String cyWorkTime; //堆场确认
@Excel(name = "作业时长", orderNum = "12", width = 35)
private String time; //作业时长
@Excel(name = "船号", orderNum = "3", width = 35)
private String shipNo; //船号
@Excel(name = "作业类型", orderNum = "4", width = 35)
private String queueType; //作业类型
@Excel(name = "尺码", orderNum = "5", width = 35)
private String cntrSizCod; //尺码
@Excel(name = "箱位置", orderNum = "6", width = 35)
private String truckPosition; //箱位置
private String taskNo; //任务编号
}
package com.ssi.entity.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
import java.util.Date;
@Getter
@Setter
@ToString
public class VehicleControlStatusVo {
/**
*
*/
@ApiModelProperty(value = "id")
@TableId(type = IdType.AUTO)
private Long id;
/**
*
*/
@ApiModelProperty(value = "vin")
private String vin;
/**
* 车辆编号
*/
@ApiModelProperty(value = "车辆编号")
private String vehicleNum;
/**
* 禁用标记 ( 1 已禁用 0 未禁用)
*/
@ApiModelProperty(value = "禁用标记 ( 1 已禁用 0 未禁用)")
private Integer status;
/**
* 车型id
*/
@ApiModelProperty(value = "车型id")
private Integer vehicleType;
/**
* 车型名
*/
@ApiModelProperty(value = "车型名")
private String vehicleTypeName;
/**
* 车牌号
*/
@ApiModelProperty(value = "车牌号")
private String plateNo;
/**
* 终端编号
*/
@ApiModelProperty(value = "终端编号")
private String terminalNum;
/**
* 底盘号
*/
@ApiModelProperty(value = "底盘号")
private String chassisNum;
/**
* 总电量
*/
@ApiModelProperty(value = "总电量")
private BigDecimal totalElecQuantity;
/**
* 最低可用soc
*/
@ApiModelProperty(value = "最低可用soc")
private Integer lowestSoc;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 修改时间
*/
@ApiModelProperty(value = "修改时间")
private Date updateTime;
private Integer appControl;
private Integer appActive;
private String appMac;
/**
* 1-紧急停车;2-取消紧停
*/
private Integer emergencyStatus;
/**
* 1:进入自动驾驶,4:结束自动驾驶
*/
private Integer autopilot;
/**
*车辆电量百分比
*/
private Integer soc;
}
package com.ssi.entity.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ssi.entity.VmsTosOrderDailyKpi;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Getter
@Setter
@ToString
public class VehicleKpiVo {
private String vin;
private String vehicleNum;
private String Date;
private int finishedNum;
private int totalNum;
private HourKpi[] kpiArr = new HourKpi[24];
public void fillData(List<HourKpi> list) {
if (CollectionUtils.isNotEmpty(list) && this.vin != null) {
list.forEach(hourKpi -> {
String vin = hourKpi.getVin();
if (this.vin.equals(vin)) {
int hour = hourKpi.getHour();
kpiArr[hour] = hourKpi;
}
});
}
for (int i = 0; i < kpiArr.length; i++) {
if (kpiArr[i] == null) {
kpiArr[i] = new HourKpi(this.vin, i);
}
}
}
/**
* 根据 VmsTosOrderDailyKpi 填充
* @param list
*/
public void fillDataForOrderDailyKpi(List<VmsTosOrderDailyKpi> list) {
if (CollectionUtils.isNotEmpty(list)) {
List<HourKpi> hourKpis = list.stream().map(orderDailyKpi -> {
int containerNum = StringUtils.isNotEmpty(orderDailyKpi.getContainerIds()) ? orderDailyKpi.getContainerIds().split(",").length : 0;
int orderNum = StringUtils.isNotEmpty(orderDailyKpi.getOrderIds()) ? orderDailyKpi.getOrderIds().split(",").length : 0;
int finishedOrderNum = StringUtils.isNotEmpty(orderDailyKpi.getFinishedOrderIds()) ? orderDailyKpi.getFinishedOrderIds().split(",").length : 0;
return new HourKpi(orderDailyKpi.getVin(), orderDailyKpi.getAnalysisHour(), containerNum,
orderNum, finishedOrderNum);
}).collect(Collectors.toList());
fillData(hourKpis);
} else {
fillData(null);
}
}
public Map<String, String> toMap() throws Exception {
Map<String, String> map = BeanUtils.describe(this);
map.remove("kpiArr");
map.remove("class");
for (int i = 0; i < kpiArr.length; i++) {
map.put("hour_" + i, kpiArr[i].finishedOrderNum + "/" + kpiArr[i].orderNum);
totalNum += kpiArr[i].orderNum;
finishedNum += kpiArr[i].finishedOrderNum;
}
map.put("finishRate",finishedNum + "/" + totalNum);
return map;
}
public VehicleKpiVo(String vin, String vehicleNum) {
this.vin = vin;
this.vehicleNum = vehicleNum;
}
public VehicleKpiVo() {
}
@Getter
@Setter
@ToString
public static class HourKpi {
@JsonIgnore
private String vin;
private int hour;
private int containerNum;
private int orderNum;
private int finishedOrderNum;
public HourKpi(String vin, int hour) {
this.vin = vin;
this.hour = hour;
}
public HourKpi(String vin, int hour, int containerNum, int orderNum, int finishedOrderNum) {
this.vin = vin;
this.hour = hour;
this.containerNum = containerNum;
this.orderNum = orderNum;
this.finishedOrderNum = finishedOrderNum;
}
public HourKpi() {
}
}
}
package com.ssi.entity.vo;
import com.ssi.entity.VmsVehicle;
import lombok.Data;
import java.util.Date;
/**
* @author ZhangLiYao
* @version 1.0
* @date 2020/8/27 10:17
*/
@Data
public class VehicleOrderVo extends VmsVehicle {
private Date startTime;
private String taskNo;
private Integer onlineStatus;
private Integer soc;
}
package com.ssi.entity.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* @author ZhangLiYao
* @version 1.0
* @date 2020/7/10 10:18
*/
@Data
@ApiModel(value = "VehicleStatusVo")
public class VehicleStatusVo {
/**
* 车辆总数
*/
@ApiModelProperty(value = "车辆总数")
private Integer vehicleNum;
/**
* 装船中车辆数
*/
@ApiModelProperty(value = "装船中车辆数")
private Integer loadingGoodsNum;
/**
* 卸船中车辆数
*/
@ApiModelProperty(value = "卸船中车辆数")
private Integer unloadingGoodsNum;
/**
* 理货车辆数
*/
@ApiModelProperty(value = "理货车辆数")
private Integer arrangeGoodsNum;
/**
* 停车、空闲车辆数
*/
@ApiModelProperty(value = "停车、空闲车辆数")
private Integer parkNum;
/**
* 充电车辆数
*/
@ApiModelProperty(value = "充电车辆数")
private Integer chargeNum;
/**
* 临时停车车辆数
*/
@ApiModelProperty(value = "临时停车车辆数")
private Integer temporaryParkNum;
/**
* 离线车辆数
*/
@ApiModelProperty(value = "离线车辆数")
private Integer offlineNum;
/**
* 其他任务类型车辆数(大屏用)
*/
@ApiModelProperty(value = "其他任务类型车辆数(大屏用)")
private Integer otherOrdersNum;
/**
* 离线车辆数占比
*/
@ApiModelProperty(value = "离线车辆数占比")
private String offlinePer;
/**
* 装船中车辆占比
*/
@ApiModelProperty(value = "装船中车辆占比")
private String loadingGoodsPer;
/**
* 卸船中车辆占比
*/
@ApiModelProperty(value = "卸船中车辆占比")
private String unloadingGoodsPer;
/**
* 理货车辆占比
*/
@ApiModelProperty(value = "理货车辆占比")
private String arrangeGoodsPer;
/**
* 空闲车辆占比
*/
@ApiModelProperty(value = "空闲车辆占比")
private String parkPer;
/**
* 充电车辆数占比
*/
@ApiModelProperty(value = "充电车辆数占比")
private String chargePer;
/**
* 临时停车车辆数占比
*/
@ApiModelProperty(value = "临时停车车辆数占比")
private String temporaryParkPer;
/**
* 临时停车车辆数占比
*/
@ApiModelProperty(value = "临时停车车辆数占比")
private String otherOrdersPer;
}
package com.ssi.entity.vo;
import com.ssi.entity.VmsTosOrders;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @author ZhangLiYao
* @version 1.0
* @date 2020/7/10 10:18
*/
@Data
@ApiModel(value = "VehicleVo")
public class VehicleVo {
/**
* 异常车辆数
*/
@ApiModelProperty(value = "异常车辆数")
private Integer abnormalNum;
private List<vehicleTemp> vehicleList;
public void setVehicleList(List<vehicleTemp> vehicleTempList) {
this.vehicleList = vehicleTempList;
AtomicInteger abnormalNum = new AtomicInteger(0);
vehicleTempList.parallelStream().forEach(vehicleTemp -> {
if (vehicleTemp.getFaultStatus() == 1 || vehicleTemp.getOnlineStatus() == 1
|| vehicleTemp.getWorkStatus() == 1 || vehicleTemp.getLowEnergyStatus() == 1) {
abnormalNum.incrementAndGet();
}
});
this.abnormalNum = abnormalNum.get();
}
@Data
public class vehicleTemp {
/**
* vin
*/
@ApiModelProperty(value = "vin")
private String vin;
/**
* 车辆编号
*/
@ApiModelProperty(value = "车辆编号")
private String vehicleNum;
/**
* 车辆类型
*/
@ApiModelProperty(value = "车辆类型")
private Integer vehicleType;
/**
* soc
*/
@ApiModelProperty(value = "soc")
private Integer soc;
/**
* 故障状态
*/
@ApiModelProperty(value = "故障状态 1 正常 0 故障")
private Integer faultStatus;
/**
* 故障级别
*/
@ApiModelProperty(value = "故障级别")
private String faultLevel;
/**
* 工作状态
*/
@ApiModelProperty(value = "工作状态 1 运行 0 空闲")
private Integer workStatus;
/**
* 上下线状态
*/
@ApiModelProperty(value = "上下线状态 1 上线 0 下线")
private Integer onlineStatus;
/**
* 是否等待超时
*/
@ApiModelProperty(value = "是否等待超时 1 超时 0 未超时")
private Integer waitOvertimeStatus;
/**
* 是否低电量
*/
@ApiModelProperty(value = "是否低电量 1 是 0 否")
private Integer lowEnergyStatus;
/**
*
* 是否紧急停车
*/
@ApiModelProperty(value = "是否紧急停车 1 是 2 否")
private Integer emergencyType;
/**
* 任务信息
*/
@ApiModelProperty(value = "任务信息")
private VmsTosOrders orderData;
private String orderDescription;
private Map threeConfirmStatus;
public vehicleTemp(Map<String, Object> realDataMap) {
this.vehicleNum = realDataMap.get("vehicleNum") == null ? null : (String) realDataMap.get("vehicleNum");
this.vehicleType = realDataMap.get("vehicleType") == null ? 0 : (Integer) realDataMap.get("vehicleType");
this.vin = realDataMap.get("vin") == null ? null : (String) realDataMap.get("vin");
this.faultStatus = realDataMap.get("equipStatus") == null
? 1 : (Integer) realDataMap.get("equipStatus") == 1 ? 1 : 0;
if (faultStatus == 1) {
this.faultLevel = "一级故障";
}
this.workStatus = realDataMap.get("workStatus") == null ? 0 : (Integer) realDataMap.get("workStatus");
this.onlineStatus = checkOnline(realDataMap.get("state") == null ? 0 : (Integer) realDataMap.get("state")
, (Long) realDataMap.get("collectTime"));
this.waitOvertimeStatus = realDataMap.get("waitOvertimeStatus") == null ? 0 : (Integer) realDataMap.get("waitOvertimeStatus");
this.lowEnergyStatus = realDataMap.get("lowEnergy") == null || realDataMap.get("soc") == null ? 0 : (Integer) realDataMap.get("soc") < (Integer) realDataMap.get("lowEnergy") ? 1 : 0;
}
public vehicleTemp() {
}
}
public static Integer checkOnline(Integer state, Long collectime) {
/** 检查终端状态*/
boolean dataOnline = (collectime != null && System.currentTimeMillis() - collectime < 60000L);
// FIXME: 2020/9/9 暂时不处理采集时间判断上线
// dataOnline = true;
boolean isOnline = dataOnline && state == 1;
return isOnline ? 1 : 0;
}
}
package com.ssi.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.validation.constraints.NotNull;
@Getter
@Setter
@ToString
@Builder
public class VideoMonitorParams {
@ApiModelProperty("sim卡号")
@NotNull(message = "sim不能为空")
private String sim;
@ApiModelProperty("通道号")
@NotNull(message = "通道号不能为空")
private Integer channel;//通道号
@ApiModelProperty("数据类型:0:音视频;1视频")
@NotNull(message = "数据类型不能为空:0:音视频;1视频")
private Integer dataType;
@ApiModelProperty("控制类型:0:开始;1停止")
@NotNull(message = "控制类型不能为空:0:开始;1停止")
private Integer controlType;
@ApiModelProperty("码流类型:0: 标清;1:高清")
@NotNull(message = "码流类型不能为空:0: 标清;1:高清")
private Integer hdType;
}
package com.ssi.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class VmsRoadDeviceVo implements Serializable {
/**
* 设备编号
*/
@ApiModelProperty(value = "设备编号")
private String deviceNum;
/**
* 设备名称
*/
@ApiModelProperty(value = "设备名称")
private String deviceName;
/**
* 设备类型
*/
@ApiModelProperty(value = "设备类型")
private String deviceType;
/**
* 视频播放地址
*/
private String url;
}
package com.ssi.entity.vo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class VmsTosOrdersKPIVo {
private Long startTime;// 开始时间
private Long endTime;// 结束时间
private Integer taskType;// 作业类型
private Integer containerSize;// 集装箱尺寸
private String vin;
private String portCode;// 岸桥编号
}
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