cl
2024-07-12 069a9b2f61470d063124fba757f25cf7ef49a32f
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -199,7 +199,7 @@
                        }else{
                            result = savePassingStation(thoroughfare, device,cellCodeList);//保存过站
                            if(result == 21) {
                                result = saveParamCollection(thoroughfare, device,cellCodeList);//保存参数,发送工厂MES
                                result = saveParamCollection(device,cellCodeList);//保存参数,发送工厂MES
                            }
                        }
                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(result).build());
@@ -214,10 +214,18 @@
                            result = 23;
                        }else{
                            String moduleCode = modulCodeObjcet.toString();
                            result = savePassingStation(thoroughfare, device,moduleCode);//保存过站
                            if(result == 21) {
                                result = saveParamCollection(thoroughfare, device,moduleCode);//保存参数,发送工厂MES
                            Object stationStatusObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".StationStatus").getValue();//站状态地址
                            if (ObjectUtil.isNotNull(stationStatusObjcet)){
                                String stationStatus = stationStatusObjcet.toString();
                                result = savePassingStation(thoroughfare, device,moduleCode,stationStatus);//保存过站
                                if(result == 21) {
                                    result = saveParamCollection(device,moduleCode,stationStatus);//保存参数,发送工厂MES
                                }
                            }else{
                                result = 23;
                                log.info("读取到工位{}StationStatus数据:{},返回RecordDataDone的值为{}",device,"IS NULL!",result);
                            }
                        }
                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(result).build());
                        log.info("写入到工位{}的RecordDataDone数据:{}",device,result);
@@ -267,6 +275,8 @@
        try {
            // 查询最新的工单信息
            OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder();
            log.info("请求工厂MES工单:入参device{},materialCode:{}", device, materialCode);
            String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "M1OP100",materialCode);
            JSONObject jsonObject = new JSONObject(orderJsonString);
            // 从JSONObject中获取data对象
@@ -292,8 +302,8 @@
                WebSocketUsers.sendMessageToUserByText(map.get(device), dataObject.getStr("productNum"));
                //写PLC
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MES_ModuleCode").value(dataObject.getStr("productNum")).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MES_WorkOrderNumber").value(dataObject.getStr("productionOrderNum")).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ModuleCode").value(dataObject.getStr("productNum")).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(dataObject.getStr("productionOrderNum")).build());
            }
        } catch (Exception e) {
@@ -339,10 +349,11 @@
     * @param thoroughfare 通道
     * @param device 工位
     * @param moduleCode 模组号
     * @param stationStatus 站状态
     * @return list
     * @throws Exception e
     */
    private static Integer savePassingStation(String thoroughfare, String device,String moduleCode){
    private static Integer savePassingStation(String thoroughfare, String device,String moduleCode,String stationStatus){
        Integer result = 21;
        try {
@@ -354,20 +365,6 @@
            }else{
                result = 23;
                log.info("读取到工位{}的StartTime数据:{},返回RecordDataDone的值为{}",device,"IS NULL!",result);
                return result;
            }
            //读工站状态
            String stationStatus = Constants.PASS;
            ReadWriteEntity stationStatusRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StationStatus");//站状态地址
            if (ObjectUtil.isNotNull(stationStatusRead.getValue())){
                String string = stationStatusRead.getValue().toString();
                if (Constants.TWO.equals(string)){
                    stationStatus = Constants.UN_PASS;
                }
            }else{
                result = 23;
                log.info("读取到工位{}StationStatus数据:{},返回RecordDataDone的值为{}",device,"IS NULL!",result);
                return result;
            }
@@ -452,13 +449,13 @@
    /**
     * 保存参数数据和发送工厂MES
     * @param thoroughfare 通道
     * @param device 工位
     * @param moduleCode 模组号
     * @param stationStatus 站状态
     * @return list
     * @throws Exception e
     */
    private static Integer saveParamCollection(String thoroughfare, String device,String moduleCode){
    private static Integer saveParamCollection(String device,String moduleCode,String stationStatus){
        Integer result = 21;//返回结果
        String sendMes = "";
@@ -513,7 +510,11 @@
                    parentVO.setSiteCode("3983");
                    parentVO.setRecordId(UUID.randomUUID().toString());
                    parentVO.setTotalResult("1");
                    if("2".equals(stationStatus)){
                        parentVO.setTotalResult("0");
                    }else {
                        parentVO.setTotalResult("1");
                    }
                    parentVO.setProductNum(moduleCode);
                    parentVO.setCheckList(mesList);
@@ -531,13 +532,12 @@
    /**
     * 保存参数数据和发送工厂MES
     * @param thoroughfare 通道
     * @param device 工位
     * @param cellCodeList 电芯码集合
     * @return list
     * @throws Exception e
     */
    private static Integer saveParamCollection(String thoroughfare, String device,List<String> cellCodeList){
    private static Integer saveParamCollection(String device,List<String> cellCodeList){
        Integer result = 21;//返回结果
        List<ChildVO> mesChildList1 = new ArrayList<>();//封装给工厂MES发送的childlist1
        List<ChildVO> mesChildList2 = new ArrayList<>();//封装给工厂MES发送的childlist2