CaseFusionController.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package com.fdkankan.fusion.controller;
  2. import com.fdkankan.fusion.aop.PushJm;
  3. import com.fdkankan.fusion.common.ResultCode;
  4. import com.fdkankan.fusion.common.ResultData;
  5. import com.fdkankan.fusion.entity.CaseFusion;
  6. import com.fdkankan.fusion.entity.FusionNum;
  7. import com.fdkankan.fusion.entity.Model;
  8. import com.fdkankan.fusion.entity.ScenePlus;
  9. import com.fdkankan.fusion.exception.BusinessException;
  10. import com.fdkankan.fusion.request.FusionParam;
  11. import com.fdkankan.fusion.response.CaseFusionVo;
  12. import com.fdkankan.fusion.response.SceneVo;
  13. import com.fdkankan.fusion.service.*;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.BeanUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import java.util.ArrayList;
  19. import java.util.Arrays;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.stream.Collectors;
  23. /**
  24. * <p>
  25. * 前端控制器
  26. * </p>
  27. *
  28. * @author
  29. * @since 2022-08-04
  30. */
  31. @RestController
  32. @RequestMapping("/caseFusion")
  33. public class CaseFusionController extends BaseController{
  34. @Autowired
  35. ICaseFusionService caseFusionService;
  36. @Autowired
  37. IFusionNumService fusionNumService;
  38. @Autowired
  39. IFusionMeterService fusionMeterService;
  40. @Autowired
  41. ICaseTagPointService caseTagPointService;
  42. @Autowired
  43. IModelService modelService;
  44. @Autowired
  45. IScenePlusService scenePlusService;
  46. @GetMapping("/list")
  47. public ResultData allList(@RequestParam(required = false) Integer caseId){
  48. return ResultData.ok(fusionNumService.getListByCaseId(caseId,null));
  49. }
  50. @GetMapping("/info")
  51. public ResultData info(@RequestParam(required = false) Integer fusionId){
  52. CaseFusion caseFusion = caseFusionService.getById(fusionId);
  53. if(caseFusion == null){
  54. throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
  55. }
  56. CaseFusionVo vo = new CaseFusionVo();
  57. BeanUtils.copyProperties(caseFusion,vo);
  58. List<SceneVo> sceneVos = new ArrayList<>();
  59. List<FusionNum> fusionNumList = fusionNumService.getByFusionId(fusionId);
  60. List<Integer> modelIds = fusionNumList.stream().map(FusionNum::getModelId).collect(Collectors.toList());
  61. List<Model> listByModelIds = modelService.getListByModelIds(modelIds);
  62. List<String> numList = listByModelIds.stream().filter(e -> e.getNum() != null).map(Model::getNum).collect(Collectors.toList());
  63. List<ScenePlus> scenePlusList = scenePlusService.getByNumList(numList);
  64. HashMap<String,ScenePlus> map = new HashMap<>();
  65. scenePlusList.stream().forEach(e -> map.put(e.getNum(),e));
  66. for (Model model : listByModelIds) {
  67. SceneVo sceneVo = new SceneVo();
  68. BeanUtils.copyProperties(model,sceneVo);
  69. ScenePlus scenePlus = map.get(model.getNum());
  70. if(model.getNum() != null && scenePlus != null){
  71. BeanUtils.copyProperties(scenePlus,sceneVo);
  72. sceneVo.setStatus(scenePlus.getSceneStatus() == -2 ? 2:scenePlus.getSceneStatus());
  73. sceneVo.setName(scenePlus.getTitle());
  74. sceneVo.setSceneName(scenePlus.getTitle());
  75. }
  76. if(model.getNum() == null){
  77. sceneVo.setStatus(2);
  78. }
  79. sceneVos.add(sceneVo);
  80. }
  81. vo.setSceneVoList(sceneVos);
  82. return ResultData.ok(vo);
  83. }
  84. @PostMapping("/add")
  85. @PushJm(event_content = "添加模型")
  86. public ResultData add(@RequestBody FusionParam param){
  87. if( param.getFusionId() == null || StringUtils.isNotBlank(param.getNum())){
  88. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  89. }
  90. ScenePlus scenePlus = scenePlusService.getByNum(param.getNum());
  91. if(scenePlus == null){
  92. throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
  93. }
  94. return ResultData.ok(fusionNumService.add(param,scenePlus));
  95. }
  96. /**
  97. * 修改模型相关信息
  98. */
  99. @PostMapping("/update")
  100. @PushJm(event_content = "修改模型")
  101. public ResultData update(@RequestBody FusionParam param){
  102. fusionNumService.updateModel(param);
  103. return ResultData.ok();
  104. }
  105. @PostMapping("/delete")
  106. @PushJm(event_content = "删除模型")
  107. public ResultData delete(@RequestBody FusionParam param){
  108. if(param.getFusionNumId() == null){
  109. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  110. }
  111. fusionNumService.deleteById(param.getFusionNumId());
  112. return ResultData.ok();
  113. }
  114. }