AbstractPage.java 3.96 KB
package cn.csbr.app.gui.page;

import cn.csbr.app.gui.page.useAndBackTab.*;
import cn.csbr.app.hardware.HFbwcabinet.HFbwcabinetApi;
import cn.csbr.app.model.InboundItem;
import cn.csbr.app.model.RfidDataModel;
import cn.csbr.app.service.TabUseBackService;
import javafx.scene.Node;
import javafx.stage.Stage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;

import javax.annotation.PostConstruct;
import java.util.List;
import java.util.Map;

/**
 * 其他page的基类
 */
public abstract class AbstractPage implements Page {
    private String title;
    private Node content;
    @Autowired
    private CustomWindowDemo customWindowDemo;

    @Autowired
    private TabUseBackService tabUseBackService;
    @Autowired
    private ErorrTabPage erorrTabPage;
    @Autowired
    private UseTabPage useTabPage;

    @Autowired
    private BackTabPage backTabPage;

    @Autowired
    private InboundTabPage inboundTabPage;

    @Autowired
    private UseConSumeTabPage useconsumeTabPage;

    @Override
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    @Override
    public Node getContent() {
        return content;
    }

    public void setContent(Node content) {
        this.content = content;
    }

    @Override
    @PostConstruct
    public void init() {
        if (content == null) {
            Node content = constructNode();
            this.content = content;
        }
    }

    abstract protected Node constructNode();

    public void clearInbounds() {
        useTabPage.clearInboundItems();
        backTabPage.clearInboundItems();
        inboundTabPage.clearInboundItems();
    }
    //弹窗显示取还货物信息
    public void popup(Stage stage) {
        customWindowDemo.start(stage);
    }

    public void clearInbounduses() {
        useconsumeTabPage.clearInboundItems();
    }
    public void closeWindow()
    {
        customWindowDemo.closeWindow();
    }
    private static Logger logger = LoggerFactory.getLogger(HFbwcabinetApi.class);
    //获取到超时未还货弹窗的tab页数据
    public synchronized void getUseBackTabData(String time) {
        //得到取还货物列表

        //  String cubeGuid = rfidDataModel.getCabinetCd();

        List<InboundItem> userBackMap = tabUseBackService.queryretruntime(time);

        inboundTabPage2.ActionDoData(userBackMap,"A-01");
        for(int i=0;i<400;i++){
            userBackMap.remove(0);
        }
        useTabPage2.ActionDoData(userBackMap,"A-01");

    };
    @Autowired
    private InboundTabPage2 inboundTabPage2;
    @Autowired
    private UseTabPage2 useTabPage2;
    //获取到取还弹窗的tab页数据
    public synchronized void getUseBackTabData(RfidDataModel rfidDataModel, String rfidData) {
        //得到取还货物列表

        String cubeGuid = rfidDataModel.getCabinetCd();

        Map<String,List<InboundItem>> userBackMap = tabUseBackService.queryTabInboundItem(rfidDataModel, rfidData.substring(0,rfidData.length()-1));
        inboundTabPage.ActionDoData(userBackMap.get("inboundList"),cubeGuid);
        useTabPage.ActionDoData(userBackMap.get("useList"),cubeGuid);
        backTabPage.ActionDoData(userBackMap.get("backList"),cubeGuid);
        erorrTabPage.ActionDoData(userBackMap.get("erorrlist"),"异常");
    };

    //更新状态为已确认
    public void updateIsSure() {
        List<InboundItem> list = useTabPage.getInboundItems();
        list.addAll(backTabPage.getInboundItems());
        if(CollectionUtils.isEmpty(list)) {
            System.out.println("框中数据为空");
            return;
        }
        tabUseBackService.updateTabInboundItemIssure(list);
    }

    //保存取还记录到statement表,默认未确认
    public void saveInboundData() {
        useTabPage.markComplete();
        backTabPage.markComplete();
        inboundTabPage.markComplete();
    }

}