| | |
| | | public class RotatingRackServiceImpl extends ServiceImpl<RotatingRackMapper, RotatingRack> implements RotatingRackService { |
| | | |
| | | private static final Logger log = LoggerFactory.getLogger(RotatingRackServiceImpl.class); |
| | | private static final String BASE_API_URL = "http://172.17.58.75/api/Robot"; |
| | | private static final String BASE_API_URL = "http://10.3.58.110/api/Robot"; |
| | | |
| | | @Autowired |
| | | private RotatingRackMapper rotatingRackMapper; |
| | |
| | | |
| | | if (!erpSendSuccess) { |
| | | // ERP发送失败,保存到本地数据库,并标记为发送失败 |
| | | log.warn("发送数据到ERP失败,任务数据将保存到本地数据库。任务ID: {}", rotatingRack.getId()); |
| | | log.warn("发送数据到ERP失败,任务数据保存到数据库。任务ID: {}", rotatingRack.getId()); |
| | | rotatingRack.setErpSentStatus(2); // 标记为发送失败 |
| | | rotatingRackMapper.insert(rotatingRack); |
| | | return false; |
| | | } |
| | | |
| | | // 发送成功,标记为已发送 |
| | | rotatingRack.setErpSentStatus(1); |
| | | rotatingRackMapper.insert(rotatingRack); |
| | | // 发送成功,直接返回true,不保存到数据库 |
| | | return true; |
| | | } catch (Exception e) { |
| | | log.error("完成任务处理失败: {}", e.getMessage(), e); |
| | | // 发生异常时也保存到本地数据库 |
| | | // 发生异常时保存到本地数据库 |
| | | try { |
| | | rotatingRack.setErpSentStatus(2); // 标记为发送失败 |
| | | rotatingRackMapper.insert(rotatingRack); |
| | |
| | | private boolean sendToERP(Map<String, Object> data) { |
| | | try { |
| | | // 设置API地址 |
| | | String erpUrl = "http://172.17.58.75/api/Robot/Insert"; |
| | | // String erpUrl = "https://0f1b83b5-7a9b-4ac7-9ca0-fcda13725a04.mock.pstmn.io/sendData"; |
| | | String erpUrl = "http://10.3.58.110/api/Robot/Insert"; |
| | | |
| | | |
| | | // 使用ObjectMapper手动序列化JSON |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | |
| | | HttpEntity<String> requestEntity = new HttpEntity<>(jsonData, headers); |
| | | |
| | | // 记录发送的数据,帮助调试 |
| | | log.info("准备发送数据到ERP: {}", jsonData); |
| | | //log.info("准备发送数据到ERP: {}", jsonData); |
| | | |
| | | // 发送POST请求 |
| | | ResponseEntity<String> response = restTemplate.postForEntity(erpUrl, requestEntity, String.class); |
| | | |
| | | // 检查响应状态码 |
| | | if (response.getStatusCode() == HttpStatus.OK) { |
| | | log.info("数据成功发送到ERP,响应内容:{}", response.getBody()); |
| | | //log.info("数据成功发送到ERP,响应内容:{}", response.getBody()); |
| | | return true; |
| | | } else { |
| | | log.error("ERP接口返回非成功状态码:{}, 响应内容: {}", response.getStatusCode(), response.getBody()); |
| | |
| | | List<RotatingRack> failedRecords = rotatingRackMapper.selectList(queryWrapper); |
| | | |
| | | if (failedRecords.isEmpty()) { |
| | | log.info("没有需要重试发送的数据"); |
| | | //log.info("没有需要重试发送的数据"); |
| | | return; |
| | | } |
| | | |