package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import com.doumee.core.utils.Constants; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; import java.math.BigDecimal; import java.util.Objects; /** * 月台调度作业信息表 * @author 江蹄蹄 * @date 2024/06/28 10:03 */ @Data @ApiModel("月台调度作业信息表") @TableName("`platform_job`") public class PlatformJob { @TableId(type = IdType.AUTO) @ApiModelProperty(value = "主键", example = "1") private Integer id; @ApiModelProperty(value = "创建人编码", example = "1") private Integer creator; @ApiModelProperty(value = "创建时间") @ExcelColumn(name="创建时间",index = 12, dateFormat = "yyyy-MM-dd hh:mm:ss",width = 10) private Date createDate; @ApiModelProperty(value = "更新人编码", example = "1") private Integer editor; @ApiModelProperty(value = "更新时间") private Date editDate; @ApiModelProperty(value = "是否删除0否 1是", example = "1") private Integer isdeleted; @ApiModelProperty(value = "作业来源:0自建 1wms推送", example = "1") private Integer origin; @ApiModelProperty(value = "名称") private String name; @ApiModelProperty(value = "备注") private String remark; @ApiModelProperty(value = "状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 已过号 12取消(WMS)" , example = "1") @ExcelColumn(name="状态",index =13,width = 6, valueMapping = "0=待确认;1=待签到;2=等待叫号;3=入园等待;4=已叫号;5=作业中;6=作业完成;7=转移中;8=异常挂起;9=已授权离园;10=已离园;11=已过号;12=取消(WMS);") private Integer status; @ApiModelProperty(value = "车辆进入状态 0不在 1进入 " , example = "1") private Integer inOut; @ApiModelProperty(value = "排序码", example = "1") private Integer sortnum; @ApiModelProperty(value = "作业单号") private String code; @ApiModelProperty(value = "作业唯一标识(承运单号)") @ExcelColumn(name="运单号",index = 0,width = 5) private String billCode; @ApiModelProperty(value = "司机编码", example = "1") private Integer driverId; @ApiModelProperty(value = "司机姓名") @ExcelColumn(name="司机姓名",index = 4,width = 6) private String driverName; @ApiModelProperty(value = "车牌号") private String plateNum; @ApiModelProperty(value = "司机手机号") @ExcelColumn(name="司机电话",index = 5,width = 8) private String drivierPhone; @ApiModelProperty(value = "签到时间") @ExcelColumn(name="签到时间",index =7,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) private Date signDate; @ApiModelProperty(value = "签到方式 0app签到 1扫码签到 2后台签到", example = "1") private Integer singType; @ApiModelProperty(value = "通知WMS作业绑定月台时间") private Date wmsSendDate; @ApiModelProperty(value = "通知WMS作业绑定月台状态 0待通知 1通知成功 2通知失败", example = "1") private Integer wmsSendStatus; @ApiModelProperty(value = "通知WMS作业绑定月台編碼", example = "1") private String wmsSendPlatformCode; @ApiModelProperty(value = "通知WMS作业绑定月台备注", example = "1") private String wmsSendInfo; @ApiModelProperty(value = "通知WMS作业绑定月台次数", example = "1") private Integer wmsSendNum; @ApiModelProperty(value = "签到距离(米)", example = "1") private BigDecimal signDistance; @ApiModelProperty(value = "作业月台名称集合,多个使用英文逗号隔开") @ExcelColumn(name="作业月台名称",index =17 ,width = 8) private String platformNames; @ApiModelProperty(value = "作业月台编码集合,多个使用英文逗号隔开") private String platforms; @ApiModelProperty(value = "最近分配月台编码(关联platform)", example = "1") private Integer platformId; @ApiModelProperty(value = "月台分组编码(关联platform_group)", example = "1") private Integer platformGroupId; @ApiModelProperty(value = "通知入园等待时间") private Date inwaitDate; @ApiModelProperty(value = "通知入园等待操作人编码", example = "1") private Integer inwaitUserId; @ApiModelProperty(value = "叫号时间") @ExcelColumn(name="叫号时间",index =8 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) private Date callDate; @ApiModelProperty(value = "叫号人编码", example = "1") private Integer callUserId; @ApiModelProperty(value = "叫号备注") private String callInfo; @ApiModelProperty(value = "开始作业时间") @ExcelColumn(name="开始作业时间",index =9 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) private Date startDate; @ApiModelProperty(value = "作业完成时间(最终时间)") @ExcelColumn(name="作业完成时间",index =10 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) private Date doneDate; @ApiModelProperty(value = "异常挂起时间") private Date errorDate; @ApiModelProperty(value = "异常挂起人编码", example = "1") private Integer errorUserId; @ApiModelProperty(value = "异常挂起备注") private String errorInfo; @ApiModelProperty(value = "月台转交时间") private Date transPlatformDate; @ApiModelProperty(value = "月台转交处理人", example = "1") private Integer transPlatformUserId; @ApiModelProperty(value = "月台转交备注") private String transPlatformInfo; @ApiModelProperty(value = "车辆进厂时间") private Date inDate; @ApiModelProperty(value = "车辆离厂时间") private Date outDate; @ApiModelProperty(value = "离厂方式 0自动离厂 1手动离场", example = "1") private Integer outType; @ApiModelProperty(value = "车辆离厂下发状态 0待下发 1下发中 2下发成功 3下发失败", example = "1") private Integer outHkstatus; @ApiModelProperty(value = "车辆离厂下发时间") private Date outHkdate; @ApiModelProperty(value = "车辆离厂下发备注") private String outHkinfo; @ApiModelProperty(value = "离场下发操作人", example = "1") private Integer outUserId; @ApiModelProperty(value = "车辆进厂下发状态 0待下发 1下发中 2下发成功 3下发失败", example = "1") private Integer inHkstatus; @ApiModelProperty(value = "车辆进厂下发备注") private String nHkinfo; @ApiModelProperty(value = "车辆进厂下发时间") private Date inHkdate; @ApiModelProperty(value = "作业类型 0自有车卸货 1自有车装货 2外协车卸货 3外协车装货 4市公司外协车卸货", example = "1") @ExcelColumn(name="作业类型",index = 15,width = 6,valueMapping = "0=自有车卸货;1=自有车装货;2=外协车卸货;3=外协车装货;4=市公司外协车卸货") private Integer type; @ApiModelProperty(value = "前车牌号") @ExcelColumn(name="前车牌号",index = 2,width = 5) private String carCodeFront; @ApiModelProperty(value = "后车牌号") @ExcelColumn(name="后车牌号",index =3 ,width = 5) private String carCodeBack; @ApiModelProperty(value = "司机所属部门编码", example = "1") private Integer companyId; @ApiModelProperty(value = "司机所属部门名称路径") private String companyNamePath; @ApiModelProperty(value = "作废时间") private Date cancelDate; @ApiModelProperty(value = "作废处理人编码", example = "1") private Integer cancelUserId; @ApiModelProperty(value = "作为处理备注") private String cancelInfo; @ApiModelProperty(value = "入园事由") private String reason; @ApiModelProperty(value = "合同号") private String contractNum; @ApiModelProperty(value = "预计到场时间") private Date arriveDate; @ApiModelProperty(value = "入库类型 0整托盘 1件烟", example = "1") private Integer inType; @ApiModelProperty(value = "总运输量", example = "1") @ExcelColumn(name="总作业量(万支)",index = 1,width = 5) private BigDecimal totalNum; @ApiModelProperty(value = "确认任务时间") @ExcelColumn(name="确认时间",index =6 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) private Date confirmTaskDate; @ApiModelProperty(value = "签到序号", example = "1") private Integer signNum; @ApiModelProperty(value = "最新叫号时间") @TableField(exist = false) private Date newCallDate; @ApiModelProperty(value = "最新开始作业时间") @TableField(exist = false) private Date newStartDate; @ApiModelProperty(value = "前方排队数量", example = "1") @TableField(exist = false) private Integer lineUpNum; @ApiModelProperty(value = "wms运输量", example = "1") @TableField(exist = false) private BigDecimal ioQty; @ApiModelProperty(value = "预计等待时间", example = "1") @TableField(exist = false) private String waitTime; @ApiModelProperty(value = "预计完成时间", example = "1") @TableField(exist = false) private String finishTimeStr; @ApiModelProperty(value = "作业月台编码") @TableField(exist = false) private String platformCode; @ApiModelProperty(value = "作业月台名称") @TableField(exist = false) private String platformName ; @ApiModelProperty(value = "月台空闲文案") @TableField(exist = false) private String ledContent ; @ApiModelProperty(value = "是否超时:1=是;0=否", example = "1") @TableField(exist = false) private Integer isTimeOut; @ApiModelProperty(value = "作业量" ,hidden = true) @TableField(exist = false) private BigDecimal workNum ; @ApiModelProperty(value = "统计量" ,hidden = true) @TableField(exist = false) private Integer countum ; @ApiModelProperty(value = "入园原因主键") @TableField(exist = false) private Integer reasonId ; @ApiModelProperty(value = "WMS任务时间") @TableField(exist = false) @ExcelColumn(name="WMS创建时间",index =18,width = 10) private String ioCreatedate; @ApiModelProperty(value = "离场下发操作人名称", example = "1") @TableField(exist = false) private String outUserName; @ApiModelProperty(value = "wms业务主键") @TableField(exist = false) private Integer wmsId ; @ApiModelProperty(value = "月台组类型:0安泰物流装货 1安泰物流卸货 2市公司卸货") @TableField(exist = false) private Integer groupType ; @ApiModelProperty(value = "承运商") @ExcelColumn(name="运输公司",index = 16,width = 10) @TableField(exist = false) private String carrierName ; @ApiModelProperty(value = "距离签到点距离") @TableField(exist = false) private BigDecimal getDistance; @ApiModelProperty(value = "月台作业效率(万支/小时)", hidden = true) @TableField(exist = false) private BigDecimal workRate; @ApiModelProperty(value = "业务触发时间 时间") @TableField(exist = false) private Long optTime; @ApiModelProperty(value = "已作业时间") @TableField(exist = false) private Long workTime; @ApiModelProperty(value = "作业时长") @TableField(exist = false) @ExcelColumn(name="作业时长",index =11 ,width = 6) private String workTimeStr; @ApiModelProperty(value = "WMS任务信息") @TableField(exist = false) private PlatformWmsJob platformWmsJob; @ApiModelProperty(value = "收货地(目的地)") @TableField(exist = false) private String repertotyAddress; @ApiModelProperty(value = "wms月台编号") @TableField(exist = false) private String platformWmsCode; @ApiModelProperty(value = "叫号类型:1=叫号入园 ; 2=月台叫号 ; 3=排队情况", example = "1") @TableField(exist = false) private Integer callType; @ApiModelProperty(value = "作业类型 0=安泰物流车任务;1=市公司车", example = "1") @TableField(exist = false) private Integer jobType; @ApiModelProperty(value = "状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 已过号 12取消(WMS)", example = "1") @TableField(exist = false) private Integer jobStatus; @ApiModelProperty(value = "开始作业时间起") @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date beginWorkDateStart; @ApiModelProperty(value = "开始时间起") // @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date createDateStart; @ApiModelProperty(value = "开始时间止") @TableField(exist = false) // @JsonFormat(pattern = "yyyy-MM-dd") private Date createDateEnd; @ApiModelProperty(value = "开始作业时间止") @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date beginWorkDateEnd; @ApiModelProperty(value = "完成作业时间起") @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date beginDoneDateStart; @ApiModelProperty(value = "完成作业时间止") @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date beginDoneDateEnd; @ApiModelProperty(value = "月台组名称") @TableField(exist = false) private String platformGroupName ; @ApiModelProperty(value = "月台工作时长" ,hidden = true) @TableField(exist = false) private BigDecimal workTimes ; @ApiModelProperty(value = "市公司车预约记录") @TableField(exist = false) private Integer bookId; @ApiModelProperty(value = "多状态查询 多个以,分割") @TableField(exist = false) private String queryStatus; @ApiModelProperty(value = "多状态查询 多个以,分割") @TableField(exist = false) private String queryStatusForPower; @ApiModelProperty(value = "任务来源") @ExcelColumn(name="任务来源",index =14,valueMapping = "0=WMS获取;1=自主预约;") @TableField(exist = false) private Integer jobForm; @ApiModelProperty(value = "作业类型查询 多个以,分割") @TableField(exist = false) private String queryType; @ApiModelProperty(value = "wms合同号") @TableField(exist = false) private String wmsContractNum; @ApiModelProperty(value = "电子锁状态:0=未上锁 1=部分上锁 2=全部上锁") @TableField(exist = false) private Integer lockStatus; @ApiModelProperty(value = "等待叫号时间(分)") @TableField(exist = false) private Integer worktimeOutAlarmTime; public void dealTime(){ if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey()) || Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey()) ){ return; } if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){ if(this.getSignDate()!=null) this.setOptTime(this.getSignDate().getTime()); }else if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())){ if(this.getInwaitDate()!=null) this.setOptTime(this.getInwaitDate().getTime()); }else if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){ if(this.getCallDate()!=null) this.setOptTime(this.getCallDate().getTime()); }else if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ if(this.getStartDate()!=null) this.setOptTime(this.getStartDate().getTime()); } } }