| | |
| | | import cn.hutool.db.Db; |
| | | import cn.hutool.http.HttpRequest; |
| | | import cn.hutool.http.HttpResponse; |
| | | import cn.hutool.json.JSONObject; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.google.gson.Gson; |
| | | import com.jcdm.common.core.domain.AjaxResult; |
| | | import com.jcdm.common.utils.DateUtils; |
| | | import com.jcdm.common.utils.SecurityUtils; |
| | | import com.jcdm.common.utils.StringUtils; |
| | | import com.jcdm.framework.websocket.WebSocketUsers; |
| | | import com.jcdm.main.bs.formula.service.IBsFormulaInfoService; |
| | | import com.jcdm.main.bs.formula.service.impl.BsFormulaInfoServiceImpl; |
| | | import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo; |
| | |
| | | import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; |
| | | import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper; |
| | | import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; |
| | | import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo; |
| | | import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService; |
| | | import com.jcdm.main.plcserver.sub.OPCUaSubscription; |
| | | import com.jcdm.main.restful.factoryMes.service.RestfulService; |
| | | import com.jcdm.main.restful.qingYan.doman.ChildVO; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.websocket.Session; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.Instant; |
| | | import java.util.*; |
| | |
| | | @Autowired |
| | | private IDaParamCollectionTempService daParamCollectionTempService; |
| | | |
| | | @Autowired |
| | | private IOmProductionOrdeInfoService omProductionOrdeInfoService; |
| | | |
| | | @Autowired |
| | | private IDaPassingStationCollectionService daPassingStationCollectionService; |
| | | |
| | | public SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | Map<String, Session> map = WebSocketUsers.getUsers(); |
| | | |
| | | |
| | | /** |
| | | * 查询设备产品过程参数采集 |
| | |
| | | daParamCollectionTemp.setSfcCode(daParamCollection.getProductBarcode()); |
| | | daParamCollectionTemp.setLocationCode(daParamCollection.getLocationCode()); |
| | | daParamCollectionTemp.setProductCode(daParamCollection.getProductCode()); |
| | | daParamCollectionTemp.setWorkOrderNo(daParamCollection.getWorkOrderNo()); |
| | | daParamCollectionTempService.save(daParamCollectionTemp); |
| | | } |
| | | } |
| | |
| | | |
| | | @Override |
| | | public void saveCampaignTimeParameters(DaParamCollection daParamCollection) { |
| | | List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>() |
| | | .eq(BsFormulaChildInfo::getProcessesCode, daParamCollection.getLocationCode()) |
| | | .eq(BsFormulaChildInfo::getSpareField4, "1") |
| | | ); |
| | | if(StringUtils.isNotBlank(list.get(0).getResults())){ |
| | | if(!list.get(0).getResults().equals("OK")){ |
| | | // 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()); |
| | | } catch (Exception 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 = bsFormulaChildInfos.get(0).getResults(); |
| | | // 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); |
| | | // //更新参数采集配置表 |
| | | // 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(); |
| | | daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo()); |
| | | daPassingStationCollection.setSfcCode(daParamCollection.getProductBarcode()); |
| | | daPassingStationCollection.setProductCode(daParamCollection.getProductCode()); |
| | | daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode()); |
| | | List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection); |
| | | daPassingStationCollections.get(0).setOutboundTime(new Date()); |
| | | int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0)); |
| | | daPassingStationCollection.setInboundTime(daParamCollection.getInboundTime()); |
| | | daPassingStationCollection.setOutboundTime(new Date()); |
| | | daPassingStationCollection.setCreateTime(new Date()); |
| | | daPassingStationCollection.setOutRsSign("1"); |
| | | boolean save = daPassingStationCollectionService.save(daPassingStationCollection); |
| | | |
| | | //添加基础参数 |
| | | 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()); |
| | | |
| | | //给opc发21 |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build()); |
| | | if(daParamCollection.getLocationCode().equals("OP240")){ |
| | | RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(),"OP230",format.format(new Date())); |
| | | if(daParamCollection.getLocationCode().equals("POP240")){ |
| | | try{ |
| | | CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { |
| | | logger.info("OP230报工开始-工厂MES异步方法"); |
| | | String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), "POP230", format.format(new Date())); |
| | | JSONObject jsonObject = new JSONObject(reportResult); |
| | | String code = jsonObject.getStr("code"); |
| | | if("success".equals(code)){ |
| | | //如果成功,执行报工成功方法,修改是否报工为1,添加报工时间 |
| | | omProductionOrdeInfoService.updateOrderByProductNum("1",daParamCollection.getProductBarcode(),"POP230"); |
| | | }else{ |
| | | //解析工厂mes返回结果,如果失败,执行报工失败方法,修改是否报工为2,添加报工时间 |
| | | omProductionOrdeInfoService.updateOrderByProductNum("2",daParamCollection.getProductBarcode(),"POP230"); |
| | | } |
| | | logger.info("OP230报工结束-工厂MES异步方法{}"+reportResult); |
| | | }); |
| | | }catch (Exception e){ |
| | | System.out.println(e.getMessage()); |
| | | } |
| | | // RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(),"OP230",format.format(new Date())); |
| | | } |
| | | if(daParamCollection.getLocationCode().equals("POP430")){ |
| | | this.enterWeighing(daParamCollection); |
| | | } |
| | | |
| | | |
| | | |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public void jrmSaveCampaignTimeParameters(DaParamCollection daParamCollection) { |
| | | 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(); |
| | | daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo()); |
| | | daPassingStationCollection.setSfcCode(daParamCollection.getProductBarcode()); |
| | | daPassingStationCollection.setProductCode(daParamCollection.getProductCode()); |
| | | daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode()); |
| | | List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection); |
| | | daPassingStationCollections.get(0).setOutboundTime(new Date()); |
| | | int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0)); |
| | | daPassingStationCollection.setInboundTime(daParamCollection.getInboundTime()); |
| | | daPassingStationCollection.setOutboundTime(new Date()); |
| | | daPassingStationCollection.setCreateTime(new Date()); |
| | | daPassingStationCollection.setOutRsSign("1"); |
| | | boolean save = daPassingStationCollectionService.save(daPassingStationCollection); |
| | | |
| | | // OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode()); |
| | | //添加基础参数 |
| | | this.manualWorkstationsAddBasicParameters(daParamCollection); |
| | | |
| | | //给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()); |
| | | String str = daParamCollection.getLocationCode(); |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+str+".RecordDataDone").value(21).build()); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | |
| | | parentVO.setTotalResult("1"); |
| | | List<ChildVO> listChildVo = new ArrayList<>(); |
| | | |
| | | String productModel = "PE01B"; |
| | | OmProductionOrdeInfo orderOne = omProductionOrdeInfoService.getOne(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum, packID)); |
| | | productModel = orderOne.getProductCode(); |
| | | |
| | | for (DaParamCollectionTemp daParamCollection : paramList) { |
| | | ChildVO childVO = new ChildVO(); |
| | | childVO.setItemCode(daParamCollection.getParamCode()); |
| | | // BsFormulaChildInfo childOne = bsFormulaChildInfoService.getOne(new LambdaQueryWrapper<BsFormulaChildInfo>().eq(BsFormulaChildInfo::getParamCode, daParamCollection.getParamCode())); |
| | | // DaCollectionParamConf paramConfOne = daCollectionParamConfService.getOne(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode())); |
| | | List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode())); |
| | | List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>() |
| | | .eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()) |
| | | .eq(DaCollectionParamConf::getProductModel, productModel) |
| | | ); |
| | | DaCollectionParamConf paramConfOne = paramConfOneList.get(0); |
| | | // if(childOne!=null){ |
| | | // String operationType = childOne.getOperationType(); |
| | | // if(operationType.equals("1")){ |
| | | // childVO.setItemType("2"); |
| | | // }else if(operationType.equals("2")){ |
| | | // childVO.setItemType("1"); |
| | | // } |
| | | // }else { |
| | | // childVO.setItemType("3"); |
| | | // } |
| | | if(paramConfOne!=null){ |
| | | childVO.setItemType(paramConfOne.getSpareField1()); |
| | | childVO.setItemText(paramConfOne.getCollectParameterName()); |
| | |
| | | parentVO.setCheckList(listChildVo); |
| | | try{ |
| | | CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { |
| | | logger.info("开始执行异步方法"); |
| | | logger.info("工位{}---开始执行异步方法---pack码是{}"+stationCode,packID); |
| | | HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); |
| | | logger.info("异步方法执行结束"); |
| | | logger.info("手动工位传工厂MES异步方法{}"+execute.body()); |
| | | List<Long> idsList = paramList.stream().map(DaParamCollectionTemp::getId).collect(Collectors.toList()); |
| | | Long[] array = idsList.toArray(new Long[0]); |
| | | int i = daParamCollectionTempService.deleteDaParamCollectionTempByIds(array); |
| | | logger.info("工位{}---异步方法执行结束---pack码是{}"+stationCode,packID); |
| | | logger.info("手动工位{}传工厂入参VO{}---pack码是{}" + stationCode,new Gson().toJson(parentVO),packID); |
| | | logger.info("手动工位{}传工厂MES异步方法{}---pack码是{}"+stationCode,execute.body(),packID); |
| | | |
| | | DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp(); |
| | | daParamCollectionTemp.setSfcCode(packID); |
| | | daParamCollectionTemp.setLocationCode(stationCode); |
| | | int i = daParamCollectionTempService.deleteDaParamCollectionTempBySfcCodeAndLocationCode(daParamCollectionTemp); |
| | | logger.info("删除临时表数据条数{}-工位{}-pack码{}",i,stationCode,packID); |
| | | }); |
| | | }catch (Exception e){ |
| | | System.out.println(e.getMessage()); |
| | | } |
| | | // HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); |
| | | |
| | | // System.out.println(execute.body()); |
| | | System.out.println("-----------------------"+totalResult); |
| | | logger.info("结束人工工位推送工厂MES数据方法-pushGeelycvMesFeedback-工位{}-pack码{}",stationCode,packID); |
| | | } |
| | | |
| | |
| | | parentVO.setTotalResult("1"); |
| | | List<ChildVO> listChildVo = new ArrayList<>(); |
| | | |
| | | // String productModel = "PE01B"; |
| | | // OmProductionOrdeInfo orderOne = omProductionOrdeInfoService.getOne(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum, packID)); |
| | | // productModel = orderOne.getProductCode(); |
| | | |
| | | for (DaParamCollection daParamCollection : paramList) { |
| | | ChildVO childVO = new ChildVO(); |
| | | childVO.setItemCode(daParamCollection.getParamCode()); |
| | | // BsFormulaChildInfo childOne = bsFormulaChildInfoService.getOne(new LambdaQueryWrapper<BsFormulaChildInfo>().eq(BsFormulaChildInfo::getParamCode, daParamCollection.getParamCode())); |
| | | // DaCollectionParamConf paramConfOne = daCollectionParamConfService.getOne(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode())); |
| | | List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode())); |
| | | List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>() |
| | | .eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()) |
| | | .eq(DaCollectionParamConf::getProductModel, "PE01B") |
| | | ); |
| | | DaCollectionParamConf paramConfOne = paramConfOneList.get(0); |
| | | // if(childOne!=null){ |
| | | // String operationType = childOne.getOperationType(); |
| | | // if(operationType.equals("1")){ |
| | | // childVO.setItemType("2"); |
| | | // }else if(operationType.equals("2")){ |
| | | // childVO.setItemType("1"); |
| | | // } |
| | | // }else { |
| | | // childVO.setItemType("3"); |
| | | // } |
| | | if(paramConfOne!=null){ |
| | | childVO.setItemType(paramConfOne.getSpareField1()); |
| | | childVO.setItemText(paramConfOne.getCollectParameterName()); |
| | |
| | | logger.info("进入工位{}-工厂MES推送数据方法HttpResponseSend",stationCode); |
| | | try{ |
| | | CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { |
| | | logger.info("开始执行异步方法"); |
| | | logger.info("工位{}---自动工位开始执行异步方法---pack码是{}"+stationCode,packID); |
| | | HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); |
| | | System.out.println(execute.body()); |
| | | logger.info("异步方法执行结束"); |
| | | logger.info("自动工位传工厂MES异步方法{}"+execute.body()); |
| | | logger.info("工位{}---自动工位异步方法执行结束---pack码是{}"+stationCode,packID); |
| | | logger.info("自动工位{}传工厂入参VO{}" + stationCode,new Gson().toJson(parentVO)); |
| | | logger.info("自动工位{}传工厂MES异步方法返回{}"+stationCode,execute.body()); |
| | | }); |
| | | }catch (Exception e){ |
| | | System.out.println(e.getMessage()); |
| | | } |
| | | // HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); |
| | | logger.info("结束工位{}-工厂MES推送数据方法HttpResponseSend",stationCode); |
| | | System.out.println("-----------------------"+totalResult); |
| | | } |
| | | logger.info("结束工位{}-工厂MES推送数据方法automaticWorkstationPushGeelycvMesFeedback",stationCode); |
| | | } |
| | |
| | | @Override |
| | | public void enterWeighing(DaParamCollection daParamCollection) { |
| | | String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback"; |
| | | long timestampMillis = Instant.now().toEpochMilli(); |
| | | ParentVO parentVO = new ParentVO(); |
| | | ChildVO childVO = new ChildVO(); |
| | | List<ChildVO> childVOList = new ArrayList<>(); |
| | | childVO.setItemCode("PWD_PW"); |
| | | childVO.setItemType("3"); |
| | | childVO.setItemText("Pack重量值"); |
| | | childVO.setItemValue(daParamCollection.getWeightValue()); |
| | | childVO.setCheckTime(format.format(new Date())); |
| | | childVO.setCheckResult("1"); |
| | | childVOList.add(childVO); |
| | | parentVO.setSiteCode("3983"); |
| | | parentVO.setRecordId(""+timestampMillis); |
| | | parentVO.setStationCode("OP500"); |
| | | parentVO.setProductNum(daParamCollection.getSfcCode()); |
| | | parentVO.setTotalResult("1"); |
| | | parentVO.setCheckList(childVOList); |
| | | HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); |
| | | // try{ |
| | | // CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { |
| | | // logger.info("开始执行异步方法"); |
| | | // HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); |
| | | // System.out.println(execute.body()); |
| | | // logger.info("异步方法执行结束"); |
| | | // logger.info("称重异步方法{}",execute.body()); |
| | | // }); |
| | | // }catch (Exception e){ |
| | | // System.out.println(e.getMessage()); |
| | | // } |
| | | RestfulService.getWorkReportResultFeedback(daParamCollection.getSfcCode(),"OP500",format.format(new Date())); |
| | | // String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback"; |
| | | try{ |
| | | daParamCollection.setWeightValue(getRandomNumberBetween(312.5, 313.5)); |
| | | Object recordDataDone = miloService.readFromOpcUa("PACK" + "." + daParamCollection.getLocationCode() + ".weight").getValue(); |
| | | if(ObjectUtil.isNotNull(recordDataDone)){ |
| | | daParamCollection.setWeightValue(recordDataDone.toString()); |
| | | } |
| | | long timestampMillis = Instant.now().toEpochMilli(); |
| | | ParentVO parentVO = new ParentVO(); |
| | | ChildVO childVO = new ChildVO(); |
| | | List<ChildVO> childVOList = new ArrayList<>(); |
| | | childVO.setItemCode("PWD_PW"); |
| | | childVO.setItemType("3"); |
| | | childVO.setItemText("Pack重量值"); |
| | | childVO.setItemValue(daParamCollection.getWeightValue()); |
| | | childVO.setCheckTime(format.format(new Date())); |
| | | childVO.setCheckResult("1"); |
| | | childVOList.add(childVO); |
| | | parentVO.setSiteCode("3983"); |
| | | parentVO.setRecordId(""+timestampMillis); |
| | | parentVO.setStationCode("POP430"); |
| | | parentVO.setProductNum(daParamCollection.getProductBarcode()); |
| | | parentVO.setTotalResult("1"); |
| | | parentVO.setCheckList(childVOList); |
| | | CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { |
| | | logger.info("POP430报工开始-工厂MES异步方法"); |
| | | HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); |
| | | logger.info("称重430返回结果"+execute.body()); |
| | | String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), "POP430", format.format(new Date())); |
| | | JSONObject jsonObject = new JSONObject(reportResult); |
| | | String code = jsonObject.getStr("code"); |
| | | String resultCode = jsonObject.getJSONObject("data").getStr("resultCode"); |
| | | if("success".equals(code)&&"S".equals(resultCode)){ |
| | | //如果成功,执行报工成功方法,修改是否报工为1,添加报工时间 |
| | | WebSocketUsers.sendMessageToUserByText(map.get("POP430"), "reportSuccess"); |
| | | omProductionOrdeInfoService.updateOrderByProductNum("1",daParamCollection.getProductBarcode(),"POP430"); |
| | | }else{ |
| | | WebSocketUsers.sendMessageToUserByText(map.get("POP430"), "reportError"); |
| | | //解析工厂mes返回结果,如果失败,执行报工失败方法,修改是否报工为2,添加报工时间 |
| | | omProductionOrdeInfoService.updateOrderByProductNum("2",daParamCollection.getProductBarcode(),"POP430"); |
| | | } |
| | | logger.info("OP430报工结束-工厂MES异步方法{}"+reportResult); |
| | | }); |
| | | }catch (Exception e){ |
| | | WebSocketUsers.sendMessageToUserByText(map.get("POP430"), "reportError"); |
| | | System.out.println(e.getMessage()); |
| | | } |
| | | // HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); |
| | | // RestfulService.getWorkReportResultFeedback(daParamCollection.getSfcCode(),"POP430",format.format(new Date())); |
| | | } |
| | | |
| | | @Override |
| | | public void manualWorkstationsAddBasicParameters(DaParamCollection daParamCollection) { |
| | | // 假设这是从数据库或其他地方获取的参数数据 |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("GC", "南浔工厂"); |
| | | map.put("CXBH", "Pack线"); |
| | | map.put("SBBH", "设备001"); |
| | | map.put("YGBH", SecurityUtils.getUsername()); |
| | | map.put("GDBH", daParamCollection.getWorkOrderNo()); |
| | | map.put("CPXH", daParamCollection.getProductCode()); |
| | | map.put("INT", format.format(daParamCollection.getInboundTime())); |
| | | map.put("OUTT",format.format(new Date())); |
| | | |
| | | map.forEach((key, value) -> { |
| | | DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf(); |
| | | daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode()); |
| | | daCollectionParamConf.setCollectParameterId(key); |
| | | 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(value); |
| | | daParamCollectionMapper.insertDaParamCollection(saveData); |
| | | |
| | | DaParamCollectionTemp saveDataTemp = new DaParamCollectionTemp(); |
| | | saveDataTemp.setWorkOrderNo(daParamCollection.getWorkOrderNo()); |
| | | saveDataTemp.setProductCode(daParamCollection.getProductCode()); |
| | | saveDataTemp.setLocationCode(daParamCollection.getLocationCode()); |
| | | saveDataTemp.setSfcCode(daParamCollection.getProductBarcode()); |
| | | saveDataTemp.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId()); |
| | | saveDataTemp.setParamName(daCollectionParamConfs.get(0).getCollectParameterName()); |
| | | saveDataTemp.setCollectionTime(new Date()); |
| | | saveDataTemp.setParamValue(value); |
| | | daParamCollectionTempService.save(saveDataTemp); |
| | | |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void preInstallOut(DaParamCollection daParamCollection) { |
| | | String locationCode = daParamCollection.getLocationCode(); |
| | | //增加过站记录 |
| | | DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection(); |
| | | daPassingStationCollection.setSfcCode(daParamCollection.getProductBarcode()); |
| | | daPassingStationCollection.setLocationCode(locationCode); |
| | | daPassingStationCollection.setInboundTime(daParamCollection.getInboundTime()); |
| | | daPassingStationCollection.setOutboundTime(new Date()); |
| | | daPassingStationCollection.setCreateTime(new Date()); |
| | | daPassingStationCollection.setOutRsSign("1"); |
| | | boolean save = daPassingStationCollectionService.save(daPassingStationCollection); |
| | | //添加基础参数 |
| | | this.manualWorkstationsAddBasicParameters(daParamCollection); |
| | | |
| | | try { |
| | | String str = "PACK."+locationCode+".RecordDataDone"; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(21).build()); |
| | | logger.info("预装工位写入OPC成功,工位:{},值{}",str,21); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public AjaxResult addRepairTighteningData(DaParamCollection daParamCollection) { |
| | | try { |
| | | String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback"; |
| | | // String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback"; |
| | | String processesCode = daParamCollection.getLocationCode(); |
| | | |
| | | long timestampMillis = Instant.now().toEpochMilli(); |
| | | ParentVO parentVO = new ParentVO(); |
| | | List<ChildVO> childVOList = new ArrayList<>(); |
| | | parentVO.setSiteCode("3983"); |
| | | parentVO.setRecordId(""+timestampMillis); |
| | | parentVO.setStationCode(processesCode); |
| | | parentVO.setProductNum(daParamCollection.getSfcCode()); |
| | | parentVO.setTotalResult("1"); |
| | | parentVO.setCheckList(childVOList); |
| | | |
| | | String screwNumber = daParamCollection.getScrewNumber(); |
| | | String torque = daParamCollection.getTorque(); |
| | | String angle = daParamCollection.getAngle(); |
| | | String torqueResult = daParamCollection.getTorqueResult(); |
| | | String angleResult = daParamCollection.getAngleResult(); |
| | | |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("POP320","模组"); |
| | | map.put("POP400","箱盖"); |
| | | |
| | | List<String> nameLikeString = new ArrayList<>(); |
| | | nameLikeString.add(map.get(processesCode)+"拧紧最终扭矩"); |
| | | nameLikeString.add(map.get(processesCode)+"拧紧最终角度"); |
| | | nameLikeString.add(map.get(processesCode)+"拧紧最终扭矩是否在范围内"); |
| | | nameLikeString.add(map.get(processesCode)+"拧紧最终角度是否在范围内"); |
| | | |
| | | if(screwNumber.contains(",")){ |
| | | String[] screwNumberSplit = screwNumber.split(","); |
| | | String[] torqueSplit = torque.split(","); |
| | | String[] angleSplit = angle.split(","); |
| | | String[] torqueResultSplit = torqueResult.split(","); |
| | | String[] angleResultSplit = angleResult.split(","); |
| | | |
| | | List<String[]> dataList = new ArrayList<String[]>(); |
| | | dataList.add(torqueSplit); |
| | | dataList.add(angleSplit); |
| | | dataList.add(torqueResultSplit); |
| | | dataList.add(angleResultSplit); |
| | | |
| | | for (int k = 0; k < nameLikeString.size(); k++) { |
| | | for (int i = 0; i < screwNumberSplit.length; i++) { |
| | | String s1 = nameLikeString.get(k)+screwNumberSplit[i]; |
| | | List<DaCollectionParamConf> confList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>() |
| | | .eq(DaCollectionParamConf::getProcessesCode, processesCode) |
| | | .eq(DaCollectionParamConf::getCollectParameterName, s1) |
| | | ); |
| | | DaCollectionParamConf daCollectionParamConf = confList.get(0); |
| | | ChildVO childVO = new ChildVO(); |
| | | childVO.setItemCode(daCollectionParamConf.getCollectParameterId()); |
| | | childVO.setItemType(daCollectionParamConf.getSpareField1()); |
| | | childVO.setItemText(daCollectionParamConf.getCollectParameterName()); |
| | | String itemValue = dataList.get(k)[i]; |
| | | childVO.setItemValue(itemValue); |
| | | childVO.setCheckTime(format.format(new Date())); |
| | | childVO.setCheckResult("1"); |
| | | childVOList.add(childVO); |
| | | } |
| | | } |
| | | }else { |
| | | List<String> dataList = new ArrayList<>(); |
| | | dataList.add(torque); |
| | | dataList.add(angle); |
| | | dataList.add(torqueResult); |
| | | dataList.add(angleResult); |
| | | for (int k = 0; k < nameLikeString.size(); k++) { |
| | | String collectParameterName = nameLikeString.get(k)+screwNumber; |
| | | List<DaCollectionParamConf> confList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>() |
| | | .eq(DaCollectionParamConf::getProcessesCode, processesCode) |
| | | .eq(DaCollectionParamConf::getCollectParameterName, collectParameterName) |
| | | ); |
| | | DaCollectionParamConf daCollectionParamConf = confList.get(0); |
| | | ChildVO childVO = new ChildVO(); |
| | | childVO.setItemCode(daCollectionParamConf.getCollectParameterId()); |
| | | childVO.setItemType(daCollectionParamConf.getSpareField1()); |
| | | childVO.setItemText(daCollectionParamConf.getCollectParameterName()); |
| | | String itemValue = dataList.get(k); |
| | | childVO.setItemValue(itemValue); |
| | | childVO.setCheckTime(format.format(new Date())); |
| | | childVO.setCheckResult("1"); |
| | | childVOList.add(childVO); |
| | | } |
| | | } |
| | | |
| | | System.out.println(childVOList); |
| | | logger.info("工位{}-----------返修数据上传入参vo:{}",processesCode,new Gson().toJson(parentVO)); |
| | | HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); |
| | | logger.info("工位{}-----------返修数据上传结果:{}",processesCode,execute.body()); |
| | | return AjaxResult.success("上传成功"); |
| | | }catch (Exception e){ |
| | | return AjaxResult.error("上传失败,参数不对请检查!"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void jrmPushGeelycvMesFeedback(String packID, String stationCode, String productCode) { |
| | | 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){ |
| | | ParentVO parentVO = new ParentVO(); |
| | | parentVO.setSiteCode("3983"); |
| | | parentVO.setRecordId(String.valueOf(Instant.now().toEpochMilli())); |
| | | parentVO.setStationCode(stationCode); |
| | | parentVO.setProductNum(packID); |
| | | parentVO.setTotalResult("1"); |
| | | List<ChildVO> listChildVo = new ArrayList<>(); |
| | | |
| | | for (DaParamCollectionTemp daParamCollection : paramList) { |
| | | ChildVO childVO = new ChildVO(); |
| | | childVO.setItemCode(daParamCollection.getParamCode()); |
| | | List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>() |
| | | .eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()) |
| | | .eq(DaCollectionParamConf::getProductModel, productCode) |
| | | ); |
| | | DaCollectionParamConf paramConfOne = paramConfOneList.get(0); |
| | | if(paramConfOne!=null){ |
| | | childVO.setItemType(paramConfOne.getSpareField1()); |
| | | childVO.setItemText(paramConfOne.getCollectParameterName()); |
| | | }else { |
| | | childVO.setItemType("3"); |
| | | childVO.setItemText(""); |
| | | } |
| | | childVO.setItemValue(daParamCollection.getParamValue()); |
| | | |
| | | if(daParamCollection.getParamValue().equals("1")){ |
| | | childVO.setCheckResult("1"); |
| | | }else if(daParamCollection.getParamValue().equals("2")){ |
| | | childVO.setCheckResult("0"); |
| | | parentVO.setTotalResult("0"); |
| | | totalResult = "1"; |
| | | }else { |
| | | childVO.setCheckResult("1"); |
| | | } |
| | | childVO.setCheckTime(format.format(daParamCollection.getCollectionTime())); |
| | | listChildVo.add(childVO); |
| | | |
| | | } |
| | | parentVO.setCheckList(listChildVo); |
| | | try{ |
| | | CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { |
| | | logger.info("工位{}---开始执行异步方法---pack码是{}"+stationCode,packID); |
| | | HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); |
| | | logger.info("工位{}---异步方法执行结束---pack码是{}"+stationCode,packID); |
| | | logger.info("手动工位{}传工厂入参VO{}---pack码是{}" + stationCode,new Gson().toJson(parentVO),packID); |
| | | logger.info("手动工位{}传工厂MES异步方法{}---pack码是{}"+stationCode,execute.body(),packID); |
| | | |
| | | DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp(); |
| | | daParamCollectionTemp.setSfcCode(packID); |
| | | daParamCollectionTemp.setLocationCode(stationCode); |
| | | int i = daParamCollectionTempService.deleteDaParamCollectionTempBySfcCodeAndLocationCode(daParamCollectionTemp); |
| | | logger.info("删除临时表数据条数{}-工位{}-pack码{}",i,stationCode,packID); |
| | | }); |
| | | }catch (Exception e){ |
| | | System.out.println(e.getMessage()); |
| | | } |
| | | logger.info("结束人工工位推送工厂MES数据方法-pushGeelycvMesFeedback-工位{}-pack码{}",stationCode,packID); |
| | | } |
| | | } |
| | | |
| | | public static String getRandomNumberBetween(double min, double max) { |
| | | return String.format("%.1f",min + (Math.random() * (max - min))); |
| | | } |
| | | |
| | | |
| | | } |