RyTask.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package com.ruoyi.quartz.task;
  2. import cn.hutool.http.HttpUtil;
  3. import com.alibaba.fastjson2.JSON;
  4. import com.ruoyi.business.domain.BizDevice;
  5. import com.ruoyi.business.mapper.BizDeviceMapper;
  6. import com.ruoyi.business.mapper.ZAssayMapper;
  7. import com.ruoyi.business.mapper.ZAssayResultMapper;
  8. import com.ruoyi.common.utils.DateUtils;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.apache.commons.collections4.CollectionUtils;
  11. import org.springframework.beans.BeanUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Component;
  14. import com.ruoyi.common.utils.StringUtils;
  15. import java.util.Collection;
  16. import java.util.Date;
  17. import java.util.List;
  18. import java.util.Optional;
  19. import static com.ruoyi.common.constant.Constants.HTTP_GET_TIME_OUT_MILLION_SECONDS;
  20. import static com.ruoyi.common.constant.Constants.SQL_SERVER_REMOTE_INTERFACE_ADDR;
  21. /**
  22. * 定时任务调度测试
  23. *
  24. * @author ruoyi
  25. */
  26. @Component("ryTask")
  27. @Slf4j
  28. public class RyTask
  29. {
  30. public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
  31. {
  32. System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
  33. }
  34. public void ryParams(String params)
  35. {
  36. System.out.println("执行有参方法:" + params);
  37. }
  38. public void ryNoParams()
  39. {
  40. System.out.println("执行无参方法");
  41. }
  42. @Autowired
  43. private BizDeviceMapper bizDeviceMapper;
  44. @Autowired
  45. private ZAssayMapper assayMapper;
  46. @Autowired
  47. private ZAssayResultMapper assayResultMapper;
  48. /**
  49. *
  50. * 同步化验设备的状态
  51. */
  52. public void syncDevice(){
  53. //获取本地的所有设备信息
  54. List<BizDevice> bizDevices = this.bizDeviceMapper.selectBizDeviceList(null);
  55. if(CollectionUtils.isEmpty(bizDevices)){
  56. log.error("同步设备信息的时候,没有查询到本地的设备信息,无法同步");
  57. return;
  58. }
  59. //获取SqlServer数据库的设备实时信息
  60. String result;
  61. List<BizDevice> remoteList;
  62. try {
  63. result = HttpUtil.get(SQL_SERVER_REMOTE_INTERFACE_ADDR + "/bizDeviceList", HTTP_GET_TIME_OUT_MILLION_SECONDS);
  64. log.info("调用同步设备接口返回的结果为{}", result);
  65. remoteList = JSON.parseArray(result, BizDevice.class);
  66. } catch (Exception e) {
  67. throw new RuntimeException("调用同步设备接口异常,异常信息为:" + e.getMessage());
  68. }
  69. log.info("调用同步设备接口转换完对象以后,获取到的需要同步的数据为{}", JSON.toJSONString(remoteList));
  70. if(CollectionUtils.isEmpty(remoteList)){
  71. log.error("同步设备信息的时候,没有查询到SqlServer数据库的设备信息,无法同步");
  72. return;
  73. }
  74. //匹配数据 更新状态
  75. for (BizDevice bizDevice : bizDevices) {
  76. //使用设备编号进行匹配
  77. String deviceNo = bizDevice.getDeviceNo();
  78. Optional<BizDevice> optional = remoteList.stream().filter(r -> r.getDeviceNo().equals(deviceNo)).findAny();
  79. if(optional.isPresent()){
  80. BizDevice bizDeviceNew = optional.get();
  81. //只需要更新化验状态即可
  82. bizDevice.setAssayStatus(bizDeviceNew.getAssayStatus());
  83. bizDevice.setAssayTime(bizDeviceNew.getAssayTime());
  84. bizDevice.setUpdateBy("task-job");
  85. bizDevice.setUpdateTime(DateUtils.getNowDate());
  86. this.bizDeviceMapper.updateBizDevice(bizDevice);
  87. }else {
  88. log.error("通过设备编号{}去匹配SqlServer设备数据时,没有查询到", deviceNo);
  89. }
  90. }
  91. }
  92. /**
  93. * 定时任务 同步化验信息
  94. */
  95. public void syncAssay(){
  96. log.info("进入了定时任务:同步化验信息逻辑处理");
  97. //获取同步的最新的ID
  98. Long id = this.assayMapper.selectMaxId();
  99. //查询待同步的数据
  100. //同步数据并插入到数据库
  101. }
  102. /**
  103. * 定时任务 同步化验结果明细信息
  104. */
  105. public void syncAssayResult(){
  106. log.info("进入了定时任务:同步化验结果明细信息逻辑处理");
  107. //获取同步的最新的ID
  108. Long id = this.assayResultMapper.selectMaxId();
  109. //查询待同步的数据
  110. //同步数据并插入到数据库
  111. }
  112. }