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 = "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 = "开始作业时间起") 
 | 
    @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()); 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |