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") @ExcelColumn(name="主键") private Integer id; @ApiModelProperty(value = "创建人编码", example = "1") @ExcelColumn(name="创建人编码") private Integer creator; @ApiModelProperty(value = "创建时间") @ExcelColumn(name="创建时间") private Date createDate; @ApiModelProperty(value = "更新人编码", example = "1") @ExcelColumn(name="更新人编码") private Integer editor; @ApiModelProperty(value = "更新时间") @ExcelColumn(name="更新时间") private Date editDate; @ApiModelProperty(value = "是否删除0否 1是", example = "1") @ExcelColumn(name="是否删除0否 1是") private Integer isdeleted; @ApiModelProperty(value = "名称") @ExcelColumn(name="名称") private String name; @ApiModelProperty(value = "备注") @ExcelColumn(name="备注") private String remark; @ApiModelProperty(value = "状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 已过号 12取消(WMS)" , example = "1") @ExcelColumn(name="状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 已过号 12取消(WMS)") private Integer status; @ApiModelProperty(value = "车辆进入状态 0不在 1进入 " , example = "1") @ExcelColumn(name="车辆进入状态 0不在 1进入 ") private Integer inOut; @ApiModelProperty(value = "排序码", example = "1") @ExcelColumn(name="排序码") private Integer sortnum; @ApiModelProperty(value = "作业单号") @ExcelColumn(name="作业单号") private String code; @ApiModelProperty(value = "作业唯一标识(承运单号)") @ExcelColumn(name="作业唯一标识(承运单号)") private String billCode; @ApiModelProperty(value = "司机编码", example = "1") @ExcelColumn(name="司机编码") private Integer driverId; @ApiModelProperty(value = "司机姓名") @ExcelColumn(name="司机姓名") private String driverName; @ApiModelProperty(value = "车牌号") @ExcelColumn(name="车牌号") private String plateNum; @ApiModelProperty(value = "司机手机号") @ExcelColumn(name="司机手机号") private String drivierPhone; @ApiModelProperty(value = "签到时间") @ExcelColumn(name="签到时间") private Date signDate; @ApiModelProperty(value = "签到方式 0app签到 1扫码签到 2后台签到", example = "1") @ExcelColumn(name="签到方式 0app签到 1扫码签到 2后台签到") private Integer singType; @ApiModelProperty(value = "通知WMS作业绑定月台时间") @ExcelColumn(name="通知WMS作业绑定月台时间") private Date wmsSendDate; @ApiModelProperty(value = "通知WMS作业绑定月台状态 0待通知 1通知成功 2通知失败", example = "1") @ExcelColumn(name="通知WMS作业绑定月台状态 0待通知 1通知成功 2通知失败") private Integer wmsSendStatus; @ApiModelProperty(value = "通知WMS作业绑定月台編碼", example = "1") @ExcelColumn(name="通知WMS作业绑定月台編碼") private String wmsSendPlatformCode; @ApiModelProperty(value = "通知WMS作业绑定月台备注", example = "1") @ExcelColumn(name="通知WMS作业绑定月台备注") private String wmsSendInfo; @ApiModelProperty(value = "通知WMS作业绑定月台次数", example = "1") @ExcelColumn(name="通知WMS作业绑定月台次数") private Integer wmsSendNum; @ApiModelProperty(value = "签到距离(米)", example = "1") @ExcelColumn(name="签到距离(米)") private BigDecimal signDistance; @ApiModelProperty(value = "作业月台名称集合,多个使用英文逗号隔开") @ExcelColumn(name="作业月台名称集合,多个使用英文逗号隔开") private String platformNames; @ApiModelProperty(value = "作业月台编码集合,多个使用英文逗号隔开") @ExcelColumn(name="作业月台编码集合,多个使用英文逗号隔开") private String platforms; @ApiModelProperty(value = "最近分配月台编码(关联platform)", example = "1") @ExcelColumn(name="最近分配月台编码(关联platform)") private Integer platformId; @ApiModelProperty(value = "月台分组编码(关联platform_group)", example = "1") @ExcelColumn(name="月台分组编码(关联platform_group)") private Integer platformGroupId; @ApiModelProperty(value = "通知入园等待时间") @ExcelColumn(name="通知入园等待时间") private Date inwaitDate; @ApiModelProperty(value = "通知入园等待操作人编码", example = "1") @ExcelColumn(name="通知入园等待操作人编码") private Integer inwaitUserId; @ApiModelProperty(value = "叫号时间") @ExcelColumn(name="叫号时间") private Date callDate; @ApiModelProperty(value = "叫号人编码", example = "1") @ExcelColumn(name="叫号人编码") private Integer callUserId; @ApiModelProperty(value = "叫号备注") @ExcelColumn(name="叫号备注") private String callInfo; @ApiModelProperty(value = "开始作业时间") @ExcelColumn(name="开始作业时间") private Date startDate; @ApiModelProperty(value = "作业完成时间(最终时间)") @ExcelColumn(name="作业完成时间(最终时间)") private Date doneDate; @ApiModelProperty(value = "异常挂起时间") @ExcelColumn(name="异常挂起时间") private Date errorDate; @ApiModelProperty(value = "异常挂起人编码", example = "1") @ExcelColumn(name="异常挂起人编码") private Integer errorUserId; @ApiModelProperty(value = "异常挂起备注") @ExcelColumn(name="异常挂起备注") private String errorInfo; @ApiModelProperty(value = "月台转交时间") @ExcelColumn(name="月台转交时间") private Date transPlatformDate; @ApiModelProperty(value = "月台转交处理人", example = "1") @ExcelColumn(name="月台转交处理人") private Integer transPlatformUserId; @ApiModelProperty(value = "月台转交备注") @ExcelColumn(name="月台转交备注") private String transPlatformInfo; @ApiModelProperty(value = "车辆进厂时间") @ExcelColumn(name="车辆进厂时间") private Date inDate; @ApiModelProperty(value = "车辆离厂时间") @ExcelColumn(name="车辆离厂时间") private Date outDate; @ApiModelProperty(value = "离厂方式 0自动离厂 1手动离场", example = "1") @ExcelColumn(name="离厂方式 0自动离厂 1手动离场") private Integer outType; @ApiModelProperty(value = "车辆离厂下发状态 0待下发 1下发中 2下发成功 3下发失败", example = "1") @ExcelColumn(name="车辆离厂下发状态 0待下发 1下发中 2下发成功 3下发失败") private Integer outHkstatus; @ApiModelProperty(value = "车辆离厂下发时间") @ExcelColumn(name="车辆离厂下发时间") private Date outHkdate; @ApiModelProperty(value = "车辆离厂下发备注") @ExcelColumn(name="车辆离厂下发备注") private String outHkinfo; @ApiModelProperty(value = "离场下发操作人", example = "1") @ExcelColumn(name="离场下发操作人") private Integer outUserId; @ApiModelProperty(value = "车辆进厂下发状态 0待下发 1下发中 2下发成功 3下发失败", example = "1") @ExcelColumn(name="车辆进厂下发状态 0待下发 1下发中 2下发成功 3下发失败") private Integer inHkstatus; @ApiModelProperty(value = "车辆进厂下发备注") @ExcelColumn(name="车辆进厂下发备注") private String nHkinfo; @ApiModelProperty(value = "车辆进厂下发时间") @ExcelColumn(name="车辆进厂下发时间") private Date inHkdate; @ApiModelProperty(value = "作业类型 0自有车卸货 1自有车装货 2外协车卸货 3外协车装货 4市公司外协车卸货", example = "1") @ExcelColumn(name="作业类型 0自有车卸货 1自有车装货 2外协车卸货 3外协车装货 4市公司外协车卸货") private Integer type; @ApiModelProperty(value = "前车牌号") @ExcelColumn(name="前车牌号") private String carCodeFront; @ApiModelProperty(value = "后车牌号") @ExcelColumn(name="后车牌号") private String carCodeBack; @ApiModelProperty(value = "司机所属部门编码", example = "1") @ExcelColumn(name="司机所属部门编码") private Integer companyId; @ApiModelProperty(value = "司机所属部门名称路径") @ExcelColumn(name="司机所属部门名称路径") private String companyNamePath; @ApiModelProperty(value = "作废时间") @ExcelColumn(name="作废时间") private Date cancelDate; @ApiModelProperty(value = "作废处理人编码", example = "1") @ExcelColumn(name="作废处理人编码") private Integer cancelUserId; @ApiModelProperty(value = "作为处理备注") @ExcelColumn(name="作为处理备注") private String cancelInfo; @ApiModelProperty(value = "入园事由") @ExcelColumn(name="入园事由") private String reason; @ApiModelProperty(value = "合同号") @ExcelColumn(name="合同号") private String contractNum; @ApiModelProperty(value = "预计到场时间") @ExcelColumn(name="预计到场时间") private Date arriveDate; @ApiModelProperty(value = "入库类型 0整托盘 1件烟", example = "1") @ExcelColumn(name="入库类型 0整托盘 1件烟") private Integer inType; @ApiModelProperty(value = "总运输量", example = "1") @ExcelColumn(name="总运输量") private BigDecimal totalNum; @ApiModelProperty(value = "确认任务时间") @ExcelColumn(name="确认任务时间") private Date confirmTaskDate; @ApiModelProperty(value = "签到序号", example = "1") @ExcelColumn(name="签到序号") 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 = "预计等待时间", 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 platformName ; @ApiModelProperty(value = "是否超时:0=是;1=否", example = "1") @TableField(exist = false) private Integer isTimeOut; @ApiModelProperty(value = "作业量" ,hidden = true) @TableField(exist = false) private BigDecimal workNum ; @ApiModelProperty(value = "WMS任务时间") @TableField(exist = false) 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 = "承运商") @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 = "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 = "开始作业时间起") @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date beginWorkDateStart; @ApiModelProperty(value = "开始作业时间止") @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date beginWorkDateEnd; @ApiModelProperty(value = "创建时间起") @TableField(exist = false) private Date createDateStart; @ApiModelProperty(value = "创建时间止") @TableField(exist = false) private Date createDateEnd; @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 = "作业类型查询 多个以,分割") @TableField(exist = false) private String queryType; @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())){ this.setOptTime(this.getSignDate().getTime()); }else if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())){ this.setOptTime(this.getInwaitDate().getTime()); }else if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){ this.setOptTime(this.getCallDate().getTime()); }else if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ this.setOptTime(this.getStartDate().getTime()); } } }