You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

151 lines
5.6 KiB

2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
  1. package com.iflytop.sgs.app.controller;
  2. import cn.hutool.json.JSONUtil;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.iflytop.sgs.app.model.bo.status.device.DeviceState;
  5. import com.iflytop.sgs.app.model.dto.PauseCraftsDto;
  6. import com.iflytop.sgs.app.model.dto.ResumeCraftsDTO;
  7. import com.iflytop.sgs.app.model.dto.StartCraftsDTO;
  8. import com.iflytop.sgs.app.model.dto.StopCraftsDTO;
  9. import com.iflytop.sgs.app.model.entity.CraftMonitor;
  10. import com.iflytop.sgs.app.model.entity.Crafts;
  11. import com.iflytop.sgs.app.model.vo.CraftMonitorVO;
  12. import com.iflytop.sgs.app.model.vo.SetCraftsVO;
  13. import com.iflytop.sgs.app.service.api.CraftsService;
  14. import com.iflytop.sgs.app.service.device.DeviceStateService;
  15. import com.iflytop.sgs.common.base.BasePageQuery;
  16. import com.iflytop.sgs.common.result.PageResult;
  17. import com.iflytop.sgs.common.result.Result;
  18. import com.iflytop.sgs.common.result.ResultCode;
  19. import io.swagger.v3.oas.annotations.Operation;
  20. import io.swagger.v3.oas.annotations.Parameter;
  21. import io.swagger.v3.oas.annotations.tags.Tag;
  22. import jakarta.validation.Valid;
  23. import lombok.RequiredArgsConstructor;
  24. import lombok.extern.slf4j.Slf4j;
  25. import org.springframework.validation.annotation.Validated;
  26. import org.springframework.web.bind.annotation.*;
  27. import java.util.List;
  28. @Tag(name = "工艺管理")
  29. @RestController
  30. @RequestMapping("/api/crafts")
  31. @RequiredArgsConstructor
  32. @Slf4j
  33. @Validated
  34. public class CraftsController {
  35. private final CraftsService craftsService;
  36. private final DeviceStateService deviceStateService;
  37. @Operation(summary = "根据矿石id获取工艺列表")
  38. @GetMapping("/list")
  39. public PageResult<Crafts> getPage(BasePageQuery pageQuery) {
  40. IPage<Crafts > result = craftsService.getPage(pageQuery);
  41. return PageResult.success(result);
  42. }
  43. @Operation(summary = "添加新工艺")
  44. @PostMapping("")
  45. public Result<String> add(@Valid @RequestBody Crafts crafts) {
  46. Crafts existingCrafts = craftsService.findByName(crafts.getName());
  47. if (existingCrafts == null) {
  48. boolean isSuccess = craftsService.save(crafts);
  49. if (isSuccess) {
  50. return Result.success();
  51. }
  52. } else {
  53. return Result.failed(ResultCode.DATA_ALREADY_EXISTS);
  54. }
  55. return Result.failed();
  56. }
  57. @Operation(summary = "更新工艺")
  58. @PutMapping("")
  59. public Result<String> updateCrafts(@Valid @RequestBody Crafts crafts) {
  60. boolean isSuccess = craftsService.updateById(crafts);
  61. if (isSuccess) {
  62. return Result.success();
  63. }
  64. return Result.failed();
  65. }
  66. @Operation(summary = "删除工艺")
  67. @DeleteMapping("/{ids}")
  68. public Result<String> delete(@Parameter(description = "工艺ID,多个以英文逗号(,)分割") @PathVariable String ids) {
  69. boolean isSuccess = craftsService.deleteCrafts(ids);
  70. if (isSuccess) {
  71. return Result.success();
  72. }
  73. return Result.failed();
  74. }
  75. @Operation(summary = "开始执行工艺")
  76. @PostMapping("/start")
  77. public Result<SetCraftsVO> startCrafts(@Valid @RequestBody StartCraftsDTO startCraftsDTO) {
  78. return Result.success(craftsService.startCrafts(startCraftsDTO));
  79. }
  80. @Operation(summary = "暂停执行工艺")
  81. @PostMapping("/pause")
  82. public Result<String> pauseCrafts(@Valid @RequestBody PauseCraftsDto pauseCraftsDto) {
  83. craftsService.pauseCrafts(pauseCraftsDto.getHeatId());
  84. return Result.success();
  85. }
  86. @Operation(summary = "恢复执行工艺")
  87. @PostMapping("/resume")
  88. public Result<String> resumeCrafts(@Valid @RequestBody ResumeCraftsDTO resumeCraftsDto) {
  89. craftsService.resumeCrafts(resumeCraftsDto.getHeatId());
  90. return Result.success();
  91. }
  92. @Operation(summary = "停止执行工艺")
  93. @PostMapping("/stop")
  94. public Result<String> stopCrafts(@Valid @RequestBody StopCraftsDTO stopCraftsDto) {
  95. craftsService.stopCrafts(stopCraftsDto.getHeatId());
  96. return Result.success();
  97. }
  98. @Operation(summary = "异常工艺删除")
  99. @DeleteMapping("/remove")
  100. public Result<String> removeMonitor(Long monitorId) {
  101. craftsService.removeMonitor(monitorId);
  102. return Result.success();
  103. }
  104. @Operation(summary = "异常工艺恢复")
  105. @PostMapping("/restart")
  106. public Result<SetCraftsVO> restartCrafts(@Valid @RequestBody StartCraftsDTO startCraftsDTO) {
  107. return Result.success();
  108. // return Result.success(craftsService.startCrafts(startCraftsDTO));
  109. }
  110. @Operation(summary = "获取异常工艺列表")
  111. @GetMapping("/monitor/list")
  112. public Result<List<CraftMonitorVO>> getMonitorList() {
  113. List<CraftMonitorVO> craftsDoingList = craftsService.getMonitorList();
  114. return Result.success(craftsDoingList);
  115. }
  116. @Operation(summary = "是否需要恢复异常工艺")
  117. @GetMapping("/restore")
  118. public Result<String> restore(@Parameter boolean isRestore) {
  119. if (isRestore) {
  120. CraftMonitor craftMonitor = craftsService.getOneOrderByTime();
  121. if (craftMonitor != null) {
  122. String deviceStateStr = craftMonitor.getDeviceState();
  123. DeviceState deviceStateRecord = JSONUtil.toBean(deviceStateStr, DeviceState.class);
  124. DeviceState deviceState = deviceStateService.getDeviceState();
  125. deviceState.setTrays(deviceStateRecord.getTrays());
  126. deviceState.setHeatModule(deviceStateRecord.getHeatModule());
  127. }
  128. } else {
  129. craftsService.removeAllMonitor();
  130. }
  131. return Result.success();
  132. }
  133. }