OutInfo.java 4.1 KB
package com.myproject.bean.update.qisda;

import com.myproject.bean.BaseMongoBean;
import org.springframework.data.annotation.Transient;

import java.util.*;
import java.util.concurrent.ConcurrentHashMap;

/**
 * DN单信息
 */
public class OutInfo extends BaseMongoBean {

    public OutInfo(){

    }

    public OutInfo(OutItem outItem){
        this.action = outItem.getAction();
        this.hSerial = outItem.gethSerial();
        this.so = outItem.getSo();
        this.refno = outItem.getRefno();
        this.sdate = outItem.getSdate();
        this.mdate = outItem.getMdate();
    }

    /**
     * 动作(首盘,分盘,补料盘,急料,指定料,单独出库)
     */
    private String action;
    /**
     * 需求单号
     */
    private String hSerial;

    /**
     * 工单
     */
    private String so;

    /**
     * 备料单号
     */
    private String refno;

    /**
     * 建议出仓时间
     */
    private Date sdate;

    /**
     * 必须出仓日期
     */
    private Date mdate;

    /**
     * 任务数量
     */
    private int taskNum;

    /**
     * 状态为0表示未执行过, 1=未完成, 2=已完成
     */
    private int status = 0;

    /**
     * 出仓料盘数量
     */
    private int outReelNum;

    /**
     * 任务完成数量(放上料架)
     */
    private int taskFinishNum;

    @Transient
    private List<OutItem> outItems = new ArrayList<>();

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

    public String gethSerial() {
        return hSerial;
    }

    public void sethSerial(String hSerial) {
        this.hSerial = hSerial;
    }

    public Date getMdate() {
        return mdate;
    }

    public void setMdate(Date mdate) {
        this.mdate = mdate;
    }

    public String getRefno() {
        return refno;
    }

    public void setRefno(String refno) {
        this.refno = refno;
    }

    public Date getSdate() {
        return sdate;
    }

    public void setSdate(Date sdate) {
        this.sdate = sdate;
    }

    public String getSo() {
        return so;
    }

    public void setSo(String so) {
        this.so = so;
    }

    public int getOutReelNum() {
        return outReelNum;
    }

    public void setOutReelNum(int outReelNum) {
        this.outReelNum = outReelNum;
    }

    public int getTaskNum() {
        return taskNum;
    }

    public void setTaskNum(int taskNum) {
        this.taskNum = taskNum;
    }

    public List<OutItem> getOutItems() {
        return outItems;
    }

    public void setOutItems(List<OutItem> outItems) {
        this.outItems = outItems;
    }

    public void addOutItem(OutItem outItem){
        outItems.add(outItem);
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public boolean isNew(){
        return this.status <= 0;
    }

    /**
     * 分盘需求单
     */
    public boolean isReelCutAction(){
        return getAction().contains("分盘");
    }

    /**
     * 紧急料或指定料或单独出库料
     * @return
     */
    public boolean isUrgentAction(){
        return getAction().contains("急料") || getAction().contains("指定料") || getAction().contains("单独出库");
    }

    /**
     * 首盘需求单
     */
    public boolean isFirstReelAction(){
        return getAction().contains("首盘");
    }

    public int getTaskFinishNum() {
        return taskFinishNum;
    }

    public void setTaskFinishNum(int taskFinishNum) {
        this.taskFinishNum = taskFinishNum;
    }

    /**
     * 获取出库顺序,第一个为F,中间的为M,最后一个为L
     */
    public String getOutLatest(){
        if(outReelNum == 1){
            return "F";
        }
        if(outReelNum >= taskNum){
            return "L";
        }
        return "M";
    }

    public String getShelfLatest(){
        if(taskFinishNum == 1){
            return "F";
        }
        if(taskFinishNum >= taskNum){
            return "L";
        }
        return "M";
    }
}