DeviceController.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package com.ruoyi.iot.controller;
  2. import com.alibaba.fastjson2.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5. import com.ruoyi.common.annotation.Anonymous;
  6. import com.ruoyi.common.core.domain.AjaxResult;
  7. import com.ruoyi.common.core.domain.model.LoginUser;
  8. import com.ruoyi.iot.domain.TDevicePlan;
  9. import com.ruoyi.iot.domain.WeitiandiDeviceInfo;
  10. import com.ruoyi.iot.entity.param.DeviceParam;
  11. import com.ruoyi.iot.queue.MsgQueue;
  12. import com.ruoyi.iot.service.*;
  13. import com.ruoyi.iot.transdata.RpcResult;
  14. import com.ruoyi.iot.transdata.entity.MainBoard;
  15. import io.swagger.annotations.ApiImplicitParam;
  16. import io.swagger.annotations.ApiImplicitParams;
  17. import io.swagger.annotations.ApiOperation;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.*;
  21. import java.text.SimpleDateFormat;
  22. import java.util.Date;
  23. import static com.ruoyi.common.utils.SecurityUtils.getLoginUser;
  24. @Slf4j
  25. @RestController
  26. @RequestMapping("/device")
  27. public class DeviceController {
  28. @Autowired
  29. private ITDevicePlanService itDevicePlanService;
  30. @Autowired
  31. private ITDeviceRecordService itDeviceRecordService;
  32. @Autowired
  33. private ITChargeRecordService itChargeRecordService;
  34. @Autowired
  35. private DeviceControlerService deviceControlerService;
  36. @Autowired
  37. private IWeitiandiDeviceInfoService iWeitiandiDeviceInfoService;
  38. @Autowired
  39. private MsgQueue msgQueue;
  40. @GetMapping("/testrpc")
  41. @Anonymous
  42. public RpcResult testRpc(){
  43. return null;
  44. }
  45. @PostMapping("/getDeviceInfo")
  46. @ApiOperation("获取设备详情")
  47. public AjaxResult getDeviceInfo(@RequestParam("qrcode") String qrcode){
  48. Long userId = getLoginUser().getUserId();
  49. WeitiandiDeviceInfo deviceInfoByQrcode = iWeitiandiDeviceInfoService.getDeviceInfoByQrcode(qrcode, userId);
  50. return AjaxResult.success(deviceInfoByQrcode);
  51. }
  52. @PostMapping("/sendPortDetailCmd")
  53. @ApiOperation("发送获取端口详情CMD")
  54. public AjaxResult sendPortDetailCmd (@RequestBody DeviceParam deviceParam) {
  55. deviceControlerService.sendPortDetailCmd(deviceParam);
  56. Date date = new Date();
  57. SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
  58. return AjaxResult.success(sdf.format(date));
  59. }
  60. @PostMapping("/getPortDetail")
  61. @ApiOperation("根据设备编号查询设备详情")
  62. public AjaxResult getPortDetail (@RequestBody DeviceParam deviceParam) {
  63. JSONObject portDetail = itDeviceRecordService.getPortDetail(deviceParam);
  64. return AjaxResult.success(portDetail);
  65. }
  66. @PostMapping("/startCharge")
  67. public AjaxResult startCharge(@RequestBody DeviceParam deviceParam) {
  68. // 对电流值进行处理
  69. LoginUser loginUser = getLoginUser();
  70. Long userId = loginUser.getUserId();
  71. itChargeRecordService.startCharge(deviceParam.getDeviceId(),deviceParam.getCcid(),userId,deviceParam.getPort());
  72. return AjaxResult.success();
  73. }
  74. @PostMapping("/stopCharge")
  75. public AjaxResult stopCharge(@RequestBody DeviceParam deviceParam) {
  76. // 对电流值进行处理
  77. deviceControlerService.stopCharge(deviceParam.getDeviceId(),deviceParam.getCcid(),deviceParam.getPort());
  78. return AjaxResult.success();
  79. }
  80. /**
  81. * 1.在开始充电后,需要做一个定时任务检测是否结束充电
  82. *
  83. * 2.在普通情况下 检查枪是否变动 暂定 感觉是枪口连上了 才有
  84. * @return
  85. */
  86. @PostMapping("/statusChange")
  87. public AjaxResult checkStatusChange(@RequestBody DeviceParam deviceParam){
  88. JSONObject object = itDeviceRecordService.checkStatus(deviceParam);
  89. return AjaxResult.success(object);
  90. }
  91. @PostMapping("/setCurrent")
  92. public AjaxResult setCurrent(@RequestBody DeviceParam deviceParam,@RequestParam("current") Integer current) {
  93. MainBoard mainBoard = new MainBoard();
  94. mainBoard.setMaxCurrent(current);
  95. String deviceId = deviceParam.getDeviceId();
  96. String ccid = deviceParam.getCcid();
  97. deviceControlerService.setMainBoard(deviceId,ccid,mainBoard);
  98. return AjaxResult.success(current);
  99. }
  100. @PostMapping("/sendMainboardCmd")
  101. public AjaxResult sendMainboardCmd(@RequestBody DeviceParam deviceParam) {
  102. deviceControlerService.getMainBoard(deviceParam.getDeviceId(),deviceParam.getCcid());
  103. Date date = new Date();
  104. SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
  105. return AjaxResult.success(sdf.format(date));
  106. }
  107. @PostMapping("/getMainboardConfig")
  108. public AjaxResult getMainboardConfig(@RequestBody DeviceParam deviceParam) {
  109. JSONObject mainboardConfig = itDeviceRecordService.getMainboardConfig(deviceParam);
  110. return AjaxResult.success(mainboardConfig);
  111. }
  112. @PostMapping("/resetMainboard")
  113. public AjaxResult resetMainboard(@RequestBody DeviceParam deviceParam) {
  114. // 恢复默认配置
  115. deviceControlerService.reset(deviceParam.getDeviceId(),deviceParam.getCcid());
  116. return AjaxResult.success();
  117. }
  118. @PostMapping("/restartMainboard")
  119. public AjaxResult restartMainboard(@RequestBody DeviceParam deviceParam) {
  120. // 重启充电桩
  121. deviceControlerService.restart(deviceParam.getDeviceId(),deviceParam.getCcid());
  122. return AjaxResult.success();
  123. }
  124. @RequestMapping("/addMsg")
  125. public String addMsg(@RequestParam("msg") String msg){
  126. msgQueue.add(msg);
  127. return "ok";
  128. }
  129. @RequestMapping("/getPlanInfo")
  130. public AjaxResult getPlanInfo(String deviceId,String port){
  131. Long userId = getLoginUser().getUserId();
  132. TDevicePlan tDevicePlan = itDevicePlanService.getPlanInfo(deviceId,port,userId);
  133. return AjaxResult.success(tDevicePlan);
  134. }
  135. @RequestMapping("/cancelPlan/{id}")
  136. public RpcResult cancelPlan(@PathVariable("id") Long planId){
  137. RpcResult rpcResult = itDevicePlanService.cancelPlan(planId);
  138. return rpcResult;
  139. }
  140. }