cl
2024-09-06 e0391b17f64e4c79f7b1d4ffa2963772c2ebed52
jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
@@ -265,15 +265,12 @@
    @Override
    public void saveCampaignTimeParameters(DaParamCollection daParamCollection) {
//        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
//                .eq(BsFormulaChildInfo::getProcessesCode, daParamCollection.getLocationCode())
//                .eq(BsFormulaChildInfo::getSpareField4, "1")
//        );
        BsFormulaChildInfo childInfo = daParamCollection.getFormulaChildEntity();
        if(StringUtils.isNotBlank(childInfo.getResults())){
            if(!childInfo.getResults().equals("OK")){
                try {
                    miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(22).build());
                    miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("MOZU1."+daParamCollection.getLocationCode()+".RecordDataDone").value(22).build());
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
@@ -281,35 +278,16 @@
            }
        }else {
            try {
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(22).build());
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("MOZU1."+daParamCollection.getLocationCode()+".RecordDataDone").value(22).build());
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            return;
        }
//        BsFormulaChildInfo bsFormulaChildInfo = new BsFormulaChildInfo();
//        bsFormulaChildInfo.setProcessesCode(daParamCollection.getLocationCode());
//        bsFormulaChildInfo.setProductCode(daParamCollection.getProductCode());
//        bsFormulaChildInfo.setSpareField4("1");
//        List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(bsFormulaChildInfo);
        String result = childInfo.getResults();
        if(result != null && !result.isEmpty()){
            try {
//                //更新参数采集配置表
//                DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
//                daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
//                daCollectionParamConf.setCollectParameterId("OUTT");
//                List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
//                DaParamCollection saveData = new DaParamCollection();
//                saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
//                saveData.setProductCode(daParamCollection.getProductCode());
//                saveData.setLocationCode(daParamCollection.getLocationCode());
//                saveData.setSfcCode(daParamCollection.getProductBarcode());
//                saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
//                saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
//                saveData.setCollectionTime(new Date());
//                saveData.setParamValue(DateUtil.formatDateTime(new Date()));
//                daParamCollectionMapper.insertDaParamCollection(saveData);
                //增加过站记录
                DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
@@ -324,40 +302,42 @@
                boolean save = daPassingStationCollectionService.save(daPassingStationCollection);
                //添加基础参数
                this.manualWorkstationsAddBasicParameters(daParamCollection);
//                this.manualWorkstationsAddBasicParameters(daParamCollection);
//                //更新过站记录表出站时间
//                DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
//                daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo());
//                daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode());
//                List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
//                daPassingStationCollections.get(0).setOutboundTime(new Date());
//                int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
//                OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode());
                //半自动工位,先将自动数据保存到数据库
                this.saveParameters(daParamCollection);
                //给opc发21
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
                if(daParamCollection.getLocationCode().equals("OP240")){
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("MOZU1."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
                if(daParamCollection.getLocationCode().equals("M1OP100-1") || daParamCollection.getLocationCode().equals("M1OP100-2") ){
                    try{
                        //更新工单状态为已执行
                        LambdaUpdateWrapper<OmProductionOrdeInfo> updateWrapper = new LambdaUpdateWrapper<>();
                        updateWrapper.set(OmProductionOrdeInfo::getOrderStatus,"3");
                        updateWrapper.eq(OmProductionOrdeInfo::getProductNum,daParamCollection.getProductBarcode());
                        omProductionOrdeInfoService.update(new OmProductionOrdeInfo(),updateWrapper);
                        //上传工厂MES报工
                        CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                            logger.info("OP230报工开始-工厂MES异步方法");
                            String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), "OP230", format.format(new Date()));
                            logger.info("OP100报工开始-工厂MES异步方法");
                            String stationCode = "M1P100";//因为上层系统只支持6位,所有报工工位为M1P100
                            //String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), stationCode, format.format(new Date()));
                            String reportResult = OPCUaSubscription.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), stationCode, format.format(new Date()));
                            JSONObject jsonObject = new JSONObject(reportResult);
                            String code = jsonObject.getStr("code");
                            if("success".equals(code)){
                                //如果成功,执行报工成功方法,修改是否报工为1,添加报工时间
                                omProductionOrdeInfoService.updateOrderByProductNum("1",daParamCollection.getProductBarcode(),"OP230");
                                omProductionOrdeInfoService.updateOrderByProductNum("1",daParamCollection.getProductBarcode(),daParamCollection.getLocationCode());
                            }else{
                                //解析工厂mes返回结果,如果失败,执行报工失败方法,修改是否报工为2,添加报工时间
                                omProductionOrdeInfoService.updateOrderByProductNum("2",daParamCollection.getProductBarcode(),"OP230");
                                omProductionOrdeInfoService.updateOrderByProductNum("2",daParamCollection.getProductBarcode(),daParamCollection.getLocationCode());
                            }
                            logger.info("OP230报工结束-工厂MES异步方法{}"+reportResult);
                            logger.info("OP100报工结束-工厂MES异步方法{}"+reportResult);
                        });
                    }catch (Exception e){
                        System.out.println(e.getMessage());
                    }
//                    RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(),"OP230",format.format(new Date()));
                }
@@ -367,6 +347,62 @@
        }
    }
    //半自动工位,先将自动数据保存到数据库
    public void saveParameters(DaParamCollection daParamCollection) {
        //添加自动工位参数数据
        //查询参数配置表
        List<DaCollectionParamConf> list = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
                .eq(DaCollectionParamConf::getProcessesCode, daParamCollection.getLocationCode())//工位
                .eq(DaCollectionParamConf::getWhetherToCollect, Constants.ONE)//是否采集
        );//类型
        List<String> collectAddressList = list.stream()
                .map(DaCollectionParamConf::getGatherAddress).collect(Collectors.toList());
        List<ReadWriteEntity> paramCollectionList = null;//模组 参数值
        try {
            paramCollectionList = miloService.readFromOpcUa(collectAddressList);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        if (CollUtil.isNotEmpty(paramCollectionList)) {
            List<DaParamCollection> saveParamList = new ArrayList<>();//封装参数采集list
            List<DaParamCollectionTemp> saveParamListTemp = new ArrayList<>();//封装参数采集list
            for (int i = 0; i < paramCollectionList.size(); i++) {
                DaParamCollection collection = new DaParamCollection();
                collection.setSfcCode(daParamCollection.getProductBarcode());//模组码
                collection.setParamCode(list.get(i).getCollectParameterId());//参数编码
                collection.setParamName(list.get(i).getCollectParameterName());//参数名称
                String paramValue = "";
                if (ObjectUtil.isNotNull(paramCollectionList.get(i).getValue())) {
                    paramValue = paramCollectionList.get(i).getValue().toString();//参数值
                }
                collection.setParamValue(paramValue);//参数值
                collection.setLocationCode(daParamCollection.getLocationCode());//工位
                collection.setCollectionTime(new Date());//采集时间
                saveParamList.add(collection);//封装参数采集list
                DaParamCollectionTemp collectionTemp = new DaParamCollectionTemp();
                collectionTemp.setSfcCode(daParamCollection.getProductBarcode());//模组码
                collectionTemp.setParamCode(list.get(i).getCollectParameterId());//参数编码
                collectionTemp.setParamName(list.get(i).getCollectParameterName());//参数名称
                if (ObjectUtil.isNotNull(paramCollectionList.get(i).getValue())) {
                    paramValue = paramCollectionList.get(i).getValue().toString();//参数值
                }
                collectionTemp.setParamValue(paramValue);//参数值
                collectionTemp.setLocationCode(daParamCollection.getLocationCode());//工位
                collectionTemp.setCollectionTime(new Date());//采集时间
                saveParamListTemp.add(collectionTemp);//封装参数采集list
            }
            //插入参数采集表
            daParamCollectionService.insertBatch(saveParamList);
            //插入参数采集表
            daParamCollectionTempService.insertBatch(saveParamListTemp);
        }
    }
    @Override
    public void insertBatch(List<DaParamCollection> confList){
        try{
@@ -446,11 +482,7 @@
        daPassingStationCollections.get(0).setOutboundTime(new Date());
        int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
//                OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode());
        //给opc发21
        try {
//            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
            String strA = daParamCollection.getLocationCode();
            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strA+".RecordDataDone").value(21).build());
        } catch (Exception e) {
@@ -513,8 +545,6 @@
    public void pushGeelycvMesFeedback(String packID, String stationCode) {
        logger.info("进入人工工位推送工厂MES数据方法-pushGeelycvMesFeedback-工位{}-pack码{}",stationCode,packID);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
//        String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
        String totalResult = "0";
        List<DaParamCollectionTemp> paramList = daParamCollectionTempService.list(new LambdaQueryWrapper<DaParamCollectionTemp>().eq(DaParamCollectionTemp::getSfcCode, packID).eq(DaParamCollectionTemp::getLocationCode, stationCode));
        if(paramList.size() > 0){
@@ -544,7 +574,7 @@
//                    childVO.setItemType("3");
//                }
                if(paramConfOne!=null){
                    childVO.setItemType(paramConfOne.getSpareField1());
                    childVO.setItemType(paramConfOne.getItemType());
                    childVO.setItemText(paramConfOne.getCollectParameterName());
                }else {
                    childVO.setItemType("3");
@@ -568,10 +598,9 @@
            parentVO.setCheckList(listChildVo);
            try{
                CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                    logger.info("开始执行异步方法");
                    HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
                    logger.info("异步方法执行结束");
                    logger.info("手动工位传工厂MES异步方法{}"+execute.body());
                    logger.info("手动工位传工厂MES异步方法start,工位号{},入参{}",stationCode,parentVO.toString());
                    HttpResponse execute = HttpRequest.post(Constants.FACTORY_EMS_UAT_GET_RUL+"deviceResultFeedback").body(JSONUtil.toJsonStr(parentVO)).execute();
                    logger.info("手动工位传工厂MES异步方法end工位号{},出参{}",stationCode,execute.body());
                    DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
                    daParamCollectionTemp.setSfcCode(packID);
@@ -599,14 +628,12 @@
    public void automaticWorkstationPushGeelycvMesFeedback(String packID, String stationCode,List<DaParamCollection> paramList) {
        logger.info("进入工位{}-工厂MES推送数据方法automaticWorkstationPushGeelycvMesFeedback",stationCode);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
        String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
        String totalResult = "0";
        if(paramList.size() > 0){
        if(!paramList.isEmpty()){
            logger.info("进入工位{}-拼数据",stationCode);
            ParentVO parentVO = new ParentVO();
            parentVO.setSiteCode("3983");
            parentVO.setRecordId(String.valueOf(Instant.now().toEpochMilli()));
            parentVO.setRecordId(UUID.randomUUID().toString());
            parentVO.setStationCode(stationCode);
            parentVO.setProductNum(packID);
            parentVO.setTotalResult("1");
@@ -656,7 +683,7 @@
            try{
                CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                    logger.info("开始执行异步方法");
                    HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
                    HttpResponse execute = HttpRequest.post(Constants.FACTORY_EMS_UAT_GET_RUL+"deviceResultFeedback").body(JSONUtil.toJsonStr(parentVO)).execute();
                    System.out.println(execute.body());
                    logger.info("异步方法执行结束");
                    logger.info("自动工位传工厂MES异步方法{}"+execute.body());