package com.billion.main.api; 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.billion.common.core.domain.entity.SysDictData; import com.billion.framework.websocket.WebSocketUsers; import com.billion.main.api.domain.*; import com.billion.main.api.service.IWorkOrdersInfoService; import com.billion.main.bs.domain.BsFormulaChildInfo; import com.billion.main.da.domain.DaFailRecord; import com.billion.main.da.service.IDaFailRecordService; import com.billion.main.plc.constant.Constants; import com.billion.system.service.ISysDictDataService; import com.billion.system.service.ISysDictTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.websocket.Session; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("/dmMes") public class RestfulAPI { Map map = WebSocketUsers.getUsers(); @Autowired private IWorkOrdersInfoService iWorkOrdersInfoService; @Autowired private IDaFailRecordService failRecordService; @Autowired private ISysDictDataService dictDataService; @Autowired private ISysDictTypeService dictTypeService; public static final String getQualityData = "IP地址/CollectQualityData"; /** * 接收工单信息 * 1、工厂MES调用接收工单接口,将工单信息发送给产线MES * 2、产线MES将接收到的工单信息存入到工单表和BOM表 */ @GetMapping("/receiveWorkOrdersInfo") public ApiResponse receiveWorkOrdersInfo(@RequestBody WorkOrdersInfo workOrdersInfo) { try { // 调用service层保存数据 boolean saveResult = iWorkOrdersInfoService.saveWorkOrders(workOrdersInfo); // 构建响应数据 ApiResponse response = new ApiResponse(); List dataList = new ArrayList<>(); ApiResponse.ResponseData responseData = new ApiResponse.ResponseData(); if (saveResult) { response.setCode("success"); response.setMessage("API调用成功"); responseData.setProductionID(workOrdersInfo.getProductionID()); responseData.setResultCode("S"); responseData.setResultText("采集完成"); } else { response.setCode("fail"); response.setMessage("API调用失败"); responseData.setProductionID(workOrdersInfo.getProductionID()); responseData.setResultCode("F"); responseData.setResultText("采集失败"); } dataList.add(responseData); response.setData(dataList); return response; } catch (Exception e) { // 异常处理 ApiResponse response = new ApiResponse(); response.setCode("fail"); response.setMessage("API调用失败"); List dataList = new ArrayList<>(); ApiResponse.ResponseData responseData = new ApiResponse.ResponseData(); responseData.setProductionID(workOrdersInfo.getProductionID()); responseData.setResultCode("F"); responseData.setResultText("采集失败"); dataList.add(responseData); response.setData(dataList); return response; } } @PostMapping("/postSy") public Object postSy(){ WebSocketUsers.sendMessageToUserByText(map.get("IGBT"), "测试推送"); return "234"; } @PostMapping("/sendWebSocket") public void sendWebSocket(@RequestBody BsFormulaChildInfo bsFormulaChildInfo) { WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), bsFormulaChildInfo.getResults()); } public void updateFailRecordRetryCount(DaFailRecord failRecord){ failRecord.setRetryCount(failRecord.getRetryCount()+1); boolean b = failRecordService.saveOrUpdate(failRecord); System.out.println(b); } }