Browse Source

fix:配置工艺接口返回具体工艺数据

tags/freeze
白凤吉 3 months ago
parent
commit
726277045f
  1. 6
      src/main/java/com/iflytop/gd/app/controller/CraftsController.java
  2. 2
      src/main/java/com/iflytop/gd/app/model/entity/Crafts.java
  3. 20
      src/main/java/com/iflytop/gd/app/model/vo/SetCraftsVO.java
  4. 13
      src/main/java/com/iflytop/gd/app/service/CraftsService.java
  5. 2
      src/main/java/com/iflytop/gd/app/service/OresService.java

6
src/main/java/com/iflytop/gd/app/controller/CraftsController.java

@ -3,6 +3,7 @@ package com.iflytop.gd.app.controller;
import com.iflytop.gd.app.model.dto.*; import com.iflytop.gd.app.model.dto.*;
import com.iflytop.gd.app.model.entity.Crafts; import com.iflytop.gd.app.model.entity.Crafts;
import com.iflytop.gd.app.model.vo.CraftStatusVO; import com.iflytop.gd.app.model.vo.CraftStatusVO;
import com.iflytop.gd.app.model.vo.SetCraftsVO;
import com.iflytop.gd.app.service.CraftsService; import com.iflytop.gd.app.service.CraftsService;
import com.iflytop.gd.common.result.Result; import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.common.result.ResultCode; import com.iflytop.gd.common.result.ResultCode;
@ -76,9 +77,8 @@ public class CraftsController {
@Operation(summary = "配置加热区工艺") @Operation(summary = "配置加热区工艺")
@PostMapping("/set") @PostMapping("/set")
public Result<String> setCrafts(@Valid @RequestBody SetCraftsDTO setCraftsDTO) {
craftsService.setCraft(setCraftsDTO.getCraftId(), setCraftsDTO.getHeatId());
return Result.success();
public Result<SetCraftsVO> setCrafts(@Valid @RequestBody SetCraftsDTO setCraftsDTO) {
return Result.success(craftsService.setCraft(setCraftsDTO.getCraftId(), setCraftsDTO.getHeatId()));
} }

2
src/main/java/com/iflytop/gd/app/model/entity/Crafts.java

@ -16,10 +16,12 @@ import lombok.EqualsAndHashCode;
public class Crafts extends BaseEntity { public class Crafts extends BaseEntity {
@NotNull @NotNull
@NotBlank
@Schema(description = "工艺名称") @Schema(description = "工艺名称")
private String name; private String name;
@NotNull @NotNull
@NotBlank
@Schema(description = "工艺步骤") @Schema(description = "工艺步骤")
private String steps; private String steps;

20
src/main/java/com/iflytop/gd/app/model/vo/SetCraftsVO.java

@ -0,0 +1,20 @@
package com.iflytop.gd.app.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class SetCraftsVO {
@Schema(description = "加热区id")
private String heatId;
@Schema(description = "工艺名称")
private String craftsName;
@Schema(description = "工艺名称")
private Long craftsId;
@Schema(description = "矿石名称")
private String oresName;
@Schema(description = "矿石ID")
private Long oresId;
}

13
src/main/java/com/iflytop/gd/app/service/CraftsService.java

@ -7,7 +7,9 @@ import com.iflytop.gd.app.common.enums.CraftStates;
import com.iflytop.gd.app.core.CraftsContext; import com.iflytop.gd.app.core.CraftsContext;
import com.iflytop.gd.app.mapper.CraftsMapper; import com.iflytop.gd.app.mapper.CraftsMapper;
import com.iflytop.gd.app.model.entity.Crafts; import com.iflytop.gd.app.model.entity.Crafts;
import com.iflytop.gd.app.model.entity.Ores;
import com.iflytop.gd.app.model.vo.CraftStatusVO; import com.iflytop.gd.app.model.vo.CraftStatusVO;
import com.iflytop.gd.app.model.vo.SetCraftsVO;
import com.iflytop.gd.common.exception.AppException; import com.iflytop.gd.common.exception.AppException;
import com.iflytop.gd.common.result.ResultCode; import com.iflytop.gd.common.result.ResultCode;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
@ -32,6 +34,7 @@ public class CraftsService extends ServiceImpl<CraftsMapper, Crafts> {
private final StateMachineFactory<CraftStates, CraftEvents> stateMachineFactory; private final StateMachineFactory<CraftStates, CraftEvents> stateMachineFactory;
private final WebSocketService webSocketService; private final WebSocketService webSocketService;
private final CraftsStepService craftsStepService; private final CraftsStepService craftsStepService;
private final OresService oresService;
private ExecutorService executor; private ExecutorService executor;
private final ConcurrentHashMap<String, CraftsContext> contextMap = new ConcurrentHashMap<>(); private final ConcurrentHashMap<String, CraftsContext> contextMap = new ConcurrentHashMap<>();
@ -45,7 +48,7 @@ public class CraftsService extends ServiceImpl<CraftsMapper, Crafts> {
/** /**
* 配置工艺 * 配置工艺
*/ */
public synchronized void setCraft(Long craftId, String heatId) {
public synchronized SetCraftsVO setCraft(Long craftId, String heatId) {
// 校验已有上下文状态仅允许在 READYSTOPPED FINISHED 状态下重置 // 校验已有上下文状态仅允许在 READYSTOPPED FINISHED 状态下重置
CraftsContext existing = contextMap.get(heatId); CraftsContext existing = contextMap.get(heatId);
if (existing != null) { if (existing != null) {
@ -56,6 +59,7 @@ public class CraftsService extends ServiceImpl<CraftsMapper, Crafts> {
clearCraftContext(heatId); clearCraftContext(heatId);
} }
Crafts craft = this.getById(craftId); Crafts craft = this.getById(craftId);
Ores ores = oresService.getById(craft.getOresId());
CraftsContext ctx = new CraftsContext( CraftsContext ctx = new CraftsContext(
heatId, heatId,
craft, craft,
@ -64,6 +68,13 @@ public class CraftsService extends ServiceImpl<CraftsMapper, Crafts> {
craftsStepService craftsStepService
); );
contextMap.put(heatId, ctx); contextMap.put(heatId, ctx);
SetCraftsVO setCraftsVO = new SetCraftsVO();
setCraftsVO.setHeatId(heatId);
setCraftsVO.setCraftsName(craft.getName());
setCraftsVO.setCraftsId(craft.getId());
setCraftsVO.setOresName(ores.getName());
setCraftsVO.setOresId(ores.getId());
return setCraftsVO;
} }
/** /**

2
src/main/java/com/iflytop/gd/app/service/OresService.java

@ -60,7 +60,9 @@ public class OresService extends ServiceImpl<OresMapper, Ores> {
// 设置该矿石的工艺列表 // 设置该矿石的工艺列表
List<Crafts> crafts = craftsMap.get(ores.getId()); List<Crafts> crafts = craftsMap.get(ores.getId());
if (crafts != null) {
crafts.forEach(c -> c.setSteps(null)); crafts.forEach(c -> c.setSteps(null));
}
oresCraftsListVO.setCraftsList(crafts); oresCraftsListVO.setCraftsList(crafts);
return oresCraftsListVO; return oresCraftsListVO;

Loading…
Cancel
Save