SubmitThread.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.gzlh.bus;
  2. import cn.hutool.core.util.StrUtil;
  3. import cn.hutool.extra.spring.SpringUtil;
  4. import cn.hutool.http.HttpResponse;
  5. import cn.hutool.http.HttpUtil;
  6. import cn.hutool.json.JSONObject;
  7. import cn.hutool.json.JSONUtil;
  8. import com.gzlh.config.ModuleEnum;
  9. import com.gzlh.config.SystemObject;
  10. import com.gzlh.device.led.utils.LedOptions;
  11. import com.gzlh.device.plc.event.PLCEvent;
  12. import com.gzlh.entity.CommandBO;
  13. import com.gzlh.entity.ReqBO;
  14. import com.gzlh.utils.DeviceCache;
  15. import com.gzlh.utils.WordHandlerUtils;
  16. import lombok.extern.slf4j.Slf4j;
  17. @Slf4j
  18. public class SubmitThread implements Runnable{
  19. @Override
  20. public void run() {
  21. String api = SysConfig.managerSetting.getServerUrl() + "/open/submit";
  22. ReqBO reqBO=EventDataManager.getCacheData();
  23. String bodyParams = JSONUtil.toJsonStr(reqBO);
  24. if (StrUtil.isEmpty(bodyParams)
  25. || ChannelCacheManager.checkExit(reqBO.getCarNo())
  26. ||!ChannelCacheManager.stateEnable(SysConfig.channelSetting.getChannelCode())) {
  27. return;
  28. }
  29. ChannelCacheManager.addCache(reqBO.getCarNo());
  30. log.info("Req:{}", bodyParams);
  31. EventBus eventBus = SpringUtil.getBean(EventBus.class);
  32. try (HttpResponse response = HttpUtil.createPost(api).body(WordHandlerUtils.AESEncrypt(bodyParams)).execute()) {
  33. log.info("提交通道数据-返回结果:{}", response.body());
  34. if (response.getStatus() == 200) {
  35. String body = response.body();
  36. JSONObject jsonObject = JSONUtil.parseObj(body);
  37. // 返回数据解密
  38. String data = WordHandlerUtils.AESDecrypt(jsonObject.get("data").toString());
  39. log.info("data:{}", data);
  40. CommandBO commandBO = JSONUtil.toBean(data, CommandBO.class);
  41. LedOptions options = new LedOptions().setLine("04").setShowType("00");
  42. if (jsonObject.getInt("code") == 200) {
  43. log.info("抬杆放行============");
  44. eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.RAILING_RISE);
  45. options.setColor("02");
  46. if (ModuleEnum.LED_MODULE.getModuleEn().equalsIgnoreCase(commandBO.getCommand().getModule())) {
  47. SystemObject.ledFactory.handler(SysConfig.serialSetting.getLed().getBrand())
  48. .sendMsg(commandBO.getCommand().getExtra(), options);
  49. }
  50. } else {
  51. options.setColor("01");
  52. if (ModuleEnum.LED_MODULE.getModuleEn().equalsIgnoreCase(commandBO.getCommand().getModule())) {
  53. SystemObject.ledFactory.handler(SysConfig.serialSetting.getLed().getBrand())
  54. .sendMsg(commandBO.getCommand().getExtra(), options);
  55. } else {
  56. eventBus.startEvent(commandBO.getCommand().getModule() + "." + commandBO.getCommand().getCommand());
  57. }
  58. if (SysConfig.channelSetting.getChannelType() == 1) {
  59. eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.CHECK_ADMIN_FAILED);
  60. }
  61. }
  62. } else {
  63. eventBus.startEvent(ModuleEnum.PLC_MODULE.getModuleEn() + "." + PLCEvent.SUBMIT_TIMEOUT);
  64. }
  65. }
  66. // 重置记录的设备触发时间
  67. DeviceCache.resetTimeMap();
  68. }
  69. }