CabinetService.java 2.49 KB
package cn.csbr.app.service;

import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.csbr.app.auth.LoginCabinetActionCallBack;
import cn.csbr.app.config.FxConfigure;
import cn.csbr.app.gui.GUIContext;
import cn.csbr.app.gui.RefreshCallBack;
import cn.csbr.app.hardware.HardWareDll;
import cn.csbr.app.model.LoginUser;
import cn.csbr.springboot.dao.mapper.CabinetMapper;
import cn.csbr.springboot.dao.model.Cabinet;
import tk.mybatis.mapper.entity.Example;

/**
 * 封装 耗材柜查找 。开柜门 以及扫描刷卡信息等操作
 */
@Service
public class CabinetService {
    private static final Logger log = LoggerFactory.getLogger(CabinetService.class);

    @Autowired
    private CabinetMapper cabinetMapper;

    @Autowired
    private FxConfigure fxConfigure;

    @Autowired
    private GUIContext guiContext;

    private List<Cabinet> arrayList;

    /**
     * 有个固定条件就这个柜子的柜子组 查询全部一个柜子组下所有的柜子
     *
     * @return
     */
    public List<Cabinet> queryAllCabinet() {
        if (arrayList == null) {
            Cabinet cabinet = new Cabinet();
            cabinet.setGroupcode(fxConfigure.getCabinetGroupCode());
            arrayList = this.queryCabinetByCondition(cabinet);
        }

        return arrayList;
    }

    /**
     * 有个固定条件就这个柜子的柜子组
     *
     * @param cabinet
     *
     * @return
     */
    public synchronized List<Cabinet> queryCabinetByCondition(Cabinet cabinet) {
        if (cabinet.getGroupcode() == null) {
            cabinet.setGroupcode(fxConfigure.getCabinetGroupCode());
        }
        Example condition = new Example(Cabinet.class);
        condition.createCriteria().andEqualTo("cabinetcode", cabinet.getCabinetcode()).andEqualTo("groupcode", cabinet.getGroupcode())
                 .andEqualTo("storeguid", cabinet.getStoreguid());

        return cabinetMapper.selectByExample(condition);
    }

    public Map<Cabinet, List<String>> scarnAllCabinet(Cabinet cabinet, RefreshCallBack callBack) {
        log.info("==================== 手动条码扫描开始... ====================");

        guiContext.startAllRfid();

        try {
            Thread.sleep(1000); //1000 毫秒,也就是1秒.
        } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
        }
        return null;
    }
}