wuyouming666
2024-04-24 ee04d1ab881479ae30c8d5600d29ac56b70f751e
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
@@ -11,6 +11,7 @@
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
import com.mes.downstorage.mapper.DownStorageCageMapper;
import com.mes.downstorage.service.DownStorageCageDetailsService;
import com.mes.downstorage.service.DownStorageCageService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
@@ -38,10 +39,11 @@
    @Autowired
    private GlassInfoService glassInfoService;
    @Autowired
    private DownStorageCageService downStorageCageService;
    @Autowired
    private DownGlassTaskService downGlassTaskService;
    @Autowired
    private DownStorageCageDetailsService downStorageCageDetailsService;
    @Override
    public List<Map> gettask(){
        downStorageCageMapper.selectList(null);
@@ -65,20 +67,17 @@
    }
//    @Override
//    public List<Map> getCacheOut(int start, int end) {
//        log.info(" 根据传入的工位查询符合按照顺序和大小出片的小片");
//        List<Map> map = downStorageCageMapper.selectJoinList(
//                Map.class, new MPJQueryWrapper<DownStorageCageDetails>()
//                        .select("escd.*")
//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
//                        .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
//                        .isNotNull("escd.slot")
//                        .between("dw.workstation_id", start, end)
//                        .orderByAsc("escd.tempering_layout_id, escd.tempering_feed_sequence")
//        );
//        return map;
//    }
    @Override
    public List<Map> selectCacheEmpty(){
        return baseMapper.selectJoinList(
                Map.class,new MPJQueryWrapper<DownStorageCage>().selectAll(DownStorageCage.class)
                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
                        .leftJoin("down_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
                        .isNull("escd.slot")
        );
    }
@@ -196,22 +195,24 @@
    }
//    @Override
//    public List<DownStorageCageDetails> Out() {
//        log.info("单片情况   根据传入的工位查询符合按照大小出片的小片");
//
//
//        return  downStorageCageMapper.selectJoinList(
//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
//                        .select("escd.*")
//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
//                        .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
//                        .isNotNull("escd.slot")
//
//                        .orderByDesc("escd.width")
//                        .orderByDesc("escd.height")
//        );
//    }
@@ -235,6 +236,21 @@
    }
    public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell,String taskType ) {
        DownGlassTask downGlassTask = new DownGlassTask();
        downGlassTask.setId(glassInfo.getId());
        downGlassTask.setStartCell(startCell);
        downGlassTask.setTaskType(taskType);
        downGlassTask.setEndCell(endCell);
        downGlassTask.setWidth(glassInfo.getWidth());
        downGlassTask.setHeight(glassInfo.getHeight());
        downGlassTask.setFilmsid(String.valueOf(glassInfo.getFilmsid()));
        downGlassTask.setThickness(glassInfo.getThickness());
        downGlassTask.setFlowCardId(glassInfo.getFlowCardId());
        return downGlassTask;
    }
    @Override
    public boolean processInto(String Number) {
@@ -246,7 +262,12 @@
        if (GlassInfo != null) {
            //同找到同流程卡附近空格
            List<DownStorageCageDetails> list = getIsExistIntoCacheByflowcardid(GlassInfo.getFlowcardId(),  GlassInfo.getWidth());
            if (list.size() > 0) {
            List<Map> selectCacheEmpty=selectCacheEmpty();
            //            list<Map> list=selectCacheEmpty();
//            list<Map> = downStorageCageService.selectCacheEmpty();
            if (selectCacheEmpty.size() > 0) {
                //存在空格
                //1.生成任务:  起始位置0   结束位置this.slot  任务类型 1   (进片任务)
                //2.回复 1进片
@@ -285,10 +306,11 @@
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        List<DownStorageCageDetails> list = getCacheOut(1, 5);
        List<DownStorageCageDetails> list2 = getCacheOut(6, 10);
        List<DownStorageCageDetails> list3 = getCacheOut(1, 10);
        List<DownStorageCageDetails> list = downStorageCageDetailsService.CacheOut(1, 5);
        List<DownStorageCageDetails> list2 = downStorageCageDetailsService.CacheOut(6, 10);
        List<DownStorageCageDetails> list3 = downStorageCageDetailsService.CacheOut(1, 10);
        //自动绑定架子
@@ -303,16 +325,8 @@
//                selectInfo.insertCacheTask(item3.getGlassId() + "", "0", endcell, "2", item3.getWidth(), item3.getHeight(), item3.getFilmsid(), item3.getThickness(), item3.getFlowCardId());
                DownGlassTask downGlassTask = new DownGlassTask();
                downGlassTask.setId(item3.getId()); // 设置玻璃ID
                downGlassTask.setStartCell("0");
                downGlassTask.setEndCell(endcell);
                downGlassTask.setTaskType("2");
                downGlassTask.setWidth(item3.getWidth()); // 设置玻璃宽度
                downGlassTask.setHeight(item3.getHeight()); // 设置玻璃高度
                downGlassTask.setFilmsid(item3.getFilmsid()+""); // 设置膜ID
                downGlassTask.setThickness(item3.getThickness()); // 设置玻璃厚度
                downGlassTask.setFlowCardId(item3.getFlowCardId()); // 设置流程卡号
                DownGlassTask downGlassTask =createDownGlassTask(item3,"0",endcell,"2");
                downGlassTaskService.insertCacheTask(downGlassTask);
                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
@@ -321,22 +335,14 @@
        }
        //同时请求 优先后端出片
        else if (!list3.isEmpty()) {
            DownStorageCageDetails item3 = list3.get(0);
        //如果同时前后端都空闲 优先后端出片并且优先满架
        else if (!list2.isEmpty()) {
            DownStorageCageDetails item3 = list2.get(0);
            String endcell = "11";
            String SendEndcell = "1";
            // selectInfo.insertCacheTask(item3.getGlassId() + "", "0", endcell, "2", item3.getWidth(), item3.getHeight(), item3.getFilmsid(), item3.getThickness(), item3.getFlowCardId());
            DownGlassTask downGlassTask = new DownGlassTask();
            downGlassTask.setId(item3.getId()); // 设置玻璃ID
            downGlassTask.setStartCell("0");
            downGlassTask.setEndCell(endcell);
            downGlassTask.setTaskType("2");
            downGlassTask.setWidth(item3.getWidth()); // 设置玻璃宽度
            downGlassTask.setHeight(item3.getHeight()); // 设置玻璃高度
            downGlassTask.setFilmsid(item3.getFilmsid()+""); // 设置膜ID
            downGlassTask.setThickness(item3.getThickness()); // 设置玻璃厚度
            downGlassTask.setFlowCardId(item3.getFlowCardId()); // 设置流程卡号
            DownGlassTask downGlassTask =createDownGlassTask(item3,"0",endcell,"2");
            downGlassTaskService.insertCacheTask(downGlassTask);
            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
@@ -350,37 +356,19 @@
            // 出到 G06
            //selectInfo.insertCacheTask(item.getGlassId() + "", "0", "06", "2", item.getWidth(), item.getHeight(), item.getFilmsid(), item.getThickness(), item.getFlowCardId());
            DownGlassTask downGlassTask = new DownGlassTask();
            downGlassTask.setId(item.getId()); // 设置玻璃ID
            downGlassTask.setStartCell("0");
            downGlassTask.setEndCell("06");
            downGlassTask.setTaskType("2");
            downGlassTask.setWidth(item.getWidth()); // 设置玻璃宽度
            downGlassTask.setHeight(item.getHeight()); // 设置玻璃高度
            downGlassTask.setFilmsid(item.getFilmsid()+""); // 设置膜ID
            downGlassTask.setThickness(item.getThickness()); // 设置玻璃厚度
            downGlassTask.setFlowCardId(item.getFlowCardId()); // 设置流程卡号
            downGlassTaskService.insertCacheTask(downGlassTask);
            DownGlassTask downGlassTask =createDownGlassTask(item,"0","06","2");
            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
            return true;
            // 按照顺序符合后端出片
            // 按照大小符合后端出片
        } else if (!list2.isEmpty()) {
            DownStorageCageDetails item2 = list2.get(0);
            // 出到 G11
            // selectInfo.insertCacheTask(item2.getGlassId() + "", "0", "11", "2", item2.getWidth(), item2.getHeight(), item2.getFilmsid(), item2.getThickness(), item2.getFlowCardId());
            DownGlassTask downGlassTask = new DownGlassTask();
            downGlassTask.setId(item2.getId()); // 设置玻璃ID
            downGlassTask.setStartCell("0");
            downGlassTask.setEndCell("11");
            downGlassTask.setTaskType("2");
            downGlassTask.setWidth(item2.getWidth()); // 设置玻璃宽度
            downGlassTask.setHeight(item2.getHeight()); // 设置玻璃高度
            downGlassTask.setFilmsid(item2.getFilmsid()+""); // 设置膜ID
            downGlassTask.setThickness(item2.getThickness()); // 设置玻璃厚度
            downGlassTask.setFlowCardId(item2.getFlowCardId()); // 设置流程卡号
            DownGlassTask downGlassTask =createDownGlassTask(item2,"0","11","2");
            downGlassTaskService.insertCacheTask(downGlassTask);
            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");