cl
2024-07-12 997e697edaf59893248bc2467223058b221a4de2
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -123,7 +123,7 @@
                        if (ObjectUtil.isNotNull(value1)){
                            String cellCode = value1.toString();
                            //反馈电芯ocv检测结果
                            boolean b = OCVResultFeedBack(thoroughfare, device,cellCode);
                            boolean b = OCVResultFeedBack(thoroughfare, device,cellCode);//对替换电芯校验
                            //四个电芯的状态
                            if (b){
                                scanResult = 11;
@@ -146,7 +146,7 @@
                    //1:告知MES托盘已到站,请求下发进站状态
                    if (Constants.OP030.equals(device)){
                        //反馈电芯ocv检测结果
                        boolean b = OCVResultFeedBack(thoroughfare, device);
                        boolean b = OCVResultFeedBack(thoroughfare, device);//进站对4个电芯校验
                        //四个电芯的状态
                        if (b){
                            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(11).build());
@@ -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对象
@@ -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 = "";
@@ -507,18 +504,28 @@
                CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                    //插入参数采集表
                    daParamCollectionService.insertBatch(collectionList);
                    //如果220工位,进行报工
                    if("M1OP220".equals(device)) {
                        RestfulService.getWorkReportResultFeedback(moduleCode, "M1OP220", format.format(new Date()));
                    }
                    //上传到工厂mes
                    ParentVO parentVO = new ParentVO();
                    parentVO.setStationCode(device);//工位
                    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);
                    log.info("执行工厂MES方法start,工位号{} 传入数据:{}",device ,parentVO);
                    HttpResponse execute = HttpRequest.post(Constants.FACTORY_EMS_UAT_RUL+"deviceResultFeedback").body(JSONUtil.toJsonStr(parentVO)).execute();
                    HttpResponse execute = HttpRequest.post(Constants.FACTORY_EMS_UAT_GET_RUL+"deviceResultFeedback").body(JSONUtil.toJsonStr(parentVO)).execute();
                    log.info("执行工厂MES方法end,工位号{} 返回数据:{}",device,execute.body());
                });
@@ -531,13 +538,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
@@ -758,7 +764,7 @@
                            parentVO.setCheckList(mesChildList);//参数
                            //CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                            log.info("执行工厂MES方法start,传入数据:{}",parentVO);
                            HttpResponse execute = HttpRequest.post(Constants.FACTORY_EMS_UAT_RUL+"deviceResultFeedback").body(JSONUtil.toJsonStr(parentVO)).execute();
                            HttpResponse execute = HttpRequest.post(Constants.FACTORY_EMS_UAT_GET_RUL+"deviceResultFeedback").body(JSONUtil.toJsonStr(parentVO)).execute();
                            log.info("执行工厂MES方法end,返回数据:{}",execute.body());
                        }
                    }
@@ -898,5 +904,29 @@
        return flag;
    }
    /**
     * AMES报工结果回传
     * @param productNum
     * @param stationCode
     * @param confirmTime
     * @return
     */
    //{"code":"success","data":{"productNum":"LCV123456P0600036","stationCode":"1HZ01","resultCode":"S","resultText":"报工成功"},"message":"API调用成功"}
    public static String getWorkReportResultFeedback(String productNum,String stationCode,String confirmTime)
    {
        String result = "";
        try {
            String url = Constants.FACTORY_EMS_UAT_GET_RUL + "workReportResultFeedback?siteCode="+Constants.FACTORY_EMS_SITE_CODE+"&stationCode="+stationCode+"&productNum="+productNum+"&confirmTime="+confirmTime;
            HttpResponse response = HttpRequest.get(url).execute();
            HttpRequest httpRequest = HttpRequest.get(url);
            result =  response.body();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            return result;
        }
    }
}