DNInfo.java 2.7 KB
package com.myproject.bean.update.qisda;

import com.myproject.bean.BaseMongoBean;
import com.myproject.bean.json.LiteOrderItem;
import com.myproject.util.StorageConstants;
import org.springframework.data.annotation.Transient;

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

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

    /**
     * DN单号
     */
    private String dnNo = "";
    /**
     * 状态
     */
    private int status;

    /**
     * 类型,默认是DN单,如果为1说明是Facility收料
     */
    private int type;

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    /**
     * 订单的详细信息
     */
    @Transient
    private Map<String, DNItem> itemMap = new ConcurrentHashMap<>();

    public int getStatus() {
        return status;
    }

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

    public String getDnNo() {
        return dnNo;
    }

    public void setDnNo(String dnNo) {
        this.dnNo = dnNo;
        this.type = 0;
    }

    public void setFacilityInfo(String facility){
        this.dnNo = facility;
        this.type = 1;
    }

    public void updateItem(DNItem item){
        itemMap.put(item.getPn(), item);
    }

    public DNItem getItem(String pn){
        return itemMap.get(pn);
    }

    public List<DNItem> getItems(){
        return new ArrayList<>(itemMap.values());
    }

    public void addItems(Collection<DNItem> items){
        for (DNItem item : items) {
            updateItem(item);
        }
    }

    /**
     * 是否是Facility收料
     */
    public boolean isFacilityIn(){
        return this.type == 1;
    }

    /**
     * 是否是纯入库
     */
    public boolean isCisIn(){
        return dnNo.isEmpty();
    }

    /**
     * DN单收料
     * @return
     */
    public boolean isDNIn(){
        return this.type == 0 && !dnNo.isEmpty();
    }

    public String getFacility(){
        if(dnNo != null && !dnNo.isEmpty()){
            String[] infos = dnNo.split("-");
            if(infos.length == 2){
                return infos[0];
            }
        }
        return "";
    }

    public String getCompany(){
        if(dnNo != null && !dnNo.isEmpty()){
            String[] infos = dnNo.split("-");
            if(infos.length == 2){
                return infos[1];
            }
        }
        return "";
    }

    public String getShowStr(){
        if(isFacilityIn()){
            return "Facility ["+dnNo+"] 收料";
        }else if(isCisIn()){
            return "纯入库";
        }else{
            return "DN单 ["+dnNo+"] 收料";
        }
    }
}