严智鑫
2024-05-10 211cd083bc9fc1871779802650dfe0e607d8ca77
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java
@@ -3,6 +3,7 @@
import cn.hutool.core.date.DateTime;
import cn.hutool.json.JSONObject;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.device.PlcParameterObject;
import com.mes.edgstoragecage.entity.EdgStorageCage;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
@@ -16,6 +17,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -34,40 +36,13 @@
    EdgStorageCageService edgStorageCageService;
    @Autowired
    EdgStorageCageDetailsService edgStorageCageDetailsService;
    @Autowired
    @Resource
    private EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
    private Map<String, String> mapParameter = new HashMap<String, String>();
    private Map<String, String> mapValue = new HashMap<String, String>();
    private Map<String, String> mapType = new HashMap<String, String>();
    private Map<String, Object> mapSettings = new HashMap<String, Object>();
    private void initialize() {
        mapParameter.put("A06_request_word", "DB11.0");   //work
        mapParameter.put("A05_scanning_ID", "DB11.2");
        mapParameter.put("MES_confirmation_word", "DB11.40");
        mapParameter.put("A09_glass_status", "DB11.70");
        //mapParameter.put("A10_glass_status", "DB11.72");
        mapParameter.put("A09_prohibit_film_production", "DB11.74");
        mapParameter.put("A10_prohibit_film_production", "DB11.76");
        mapSettings.put("territoryPoor", 3);
        mapType.put("A06_request_word", "Word");
        mapType.put("A05_scanning_ID", "String");
        mapType.put("MES_confirmation_word", "Word");
        mapType.put("A09_glass_status", "Word");
        //mapType.put("A10_glass_status", "Word");
        mapType.put("A09_prohibit_film_production", "Word");
        mapType.put("A10_prohibit_film_production", "Word");
//        mapValue.put("A06_request_word","1");//请求字
//        mapValue.put("A05_scanning_ID","7");//请求ID
//        mapValue.put("MES_confirmation_word","0");//MES发送字
//        mapValue.put("A09_glass_status","0");//A09玻璃状态
//        mapValue.put("A10_glass_status","0");//A09玻璃状态
//        mapValue.put("A09_prohibit_film_production","0");//A9禁止出片
//        mapValue.put("A10_prohibit_film_production","0");//A10禁止出片
    }
    private void inTo() {
        List<GlassInfo> glassInfos = glassInfoService.selectId(mapValue.get("A05_scanning_ID"));
@@ -93,6 +68,7 @@
                taskCache.setCreateTime(new DateTime());
                edgStorageCageDetailsMapper.updateById(edgStorageCageDetails);
                taskCacheService.insertTaskCache(taskCache);
                S7object.getinstance().plccontrol.WriteWord(mapParameter.get("MES_confirmation_word"), (short)1);
            } else {
                log.info("不存在空格");
            }
@@ -104,20 +80,20 @@
    private void outTo(int line) {
        int endcell = 0;
        EdgStorageCageDetails outEdgStorageCageDetails = new EdgStorageCageDetails();
        TaskCache taskCacheA09 = taskCacheService.selectLastOutCacheInfo("");
        TaskCache taskCacheA10 = taskCacheService.selectLastOutCacheInfo("");
        TaskCache taskCacheA09 = taskCacheService.selectLastOutCacheInfo(2001);
        TaskCache taskCacheA10 = taskCacheService.selectLastOutCacheInfo(2002);
        //两线各自要出的玻璃
        EdgStorageCageDetails glassInfo09 = edgStorageCageDetailsService.selectConformGlass(taskCacheA09.getGlassId(), (int) mapSettings.get("territoryPoor"));
        EdgStorageCageDetails glassInfo10 = edgStorageCageDetailsService.selectConformGlass(taskCacheA10.getGlassId(), (int) mapSettings.get("territoryPoor"));
        //决定线路
        if (line == 1) {
            endcell = 9000;
            endcell = 2001;
            outEdgStorageCageDetails = glassInfo09;
        } else if (line == 2) {
            endcell = 1000;
            endcell = 2002;
            outEdgStorageCageDetails = glassInfo10;
        } else if (line == 3) {
            endcell = 9000;//默认走一号线  优化方向可根据  对比两线速度/两线当前任务情况做
            endcell = 2001;//默认走一号线  优化方向可根据  对比两线速度/两线当前任务情况做
            outEdgStorageCageDetails = glassInfo09;
        }
        if (outEdgStorageCageDetails != null && endcell > 0) {
@@ -129,6 +105,7 @@
            taskCache.setTaskType(2);
            taskCache.setCreateTime(new DateTime());
            taskCacheService.insertTaskCache(taskCache);
            S7object.getinstance().plccontrol.WriteWord(mapParameter.get("MES_confirmation_word"), (short)1);
        }
@@ -137,7 +114,6 @@
    @Override
    public void run() {
        boolean start = true;
        initialize();
        log.info("当前参数值:{}", mapValue);
        while (this != null && start) {
            JSONObject jsonObject = new JSONObject();
@@ -150,18 +126,15 @@
                }
                mapValue.put(key, value);
            }
            S7object.getinstance().plccontrol.WriteWord(S7object.getinstance().PlcMesObject.getPlcParameter("A06_request_word").getAddress(), (short)1);
            try {
                Thread.sleep(1000);
                taskCacheService = WebSocketServer.applicationContext.getBean(TaskCacheService.class);
                glassInfoService = WebSocketServer.applicationContext.getBean(GlassInfoService.class);
                edgStorageCageService = WebSocketServer.applicationContext.getBean(EdgStorageCageService.class);
                edgStorageCageDetailsMapper = WebSocketServer.applicationContext.getBean(EdgStorageCageDetailsMapper.class);
//                initialize();//初始化数据
                if ("0".equals(mapValue.get("A06_request_word"))) {
                if ("0".equals(S7object.getinstance().PlcMesObject.getPlcParameter("A06_request_word"))) {
                    //清除
                    S7object.getinstance().plccontrol.WriteWord(mapParameter.get("MES_confirmation_word"), (short) 0);
                } else if ("1".equals(mapValue.get("A06_request_word")) &&
                        "0".equals(mapValue.get("MES_confirmation_word"))) {
                } else if ("1".equals(S7object.getinstance().PlcMesObject.getPlcParameter("A06_request_word")) &&
                        "0".equals(S7object.getinstance().PlcMesObject.getPlcParameter("MES_confirmation_word"))) {
                    inTo();
                } else if ("2".equals(mapValue.get("A06_request_word")) &&