package com.zt.life.modules.mainPart.taskReliability.controller; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.XML; import com.fasterxml.jackson.databind.ObjectMapper; import com.zt.common.annotation.LogOperation; import com.zt.common.servlet.Result; import com.zt.common.validator.AssertUtils; import com.zt.common.validator.ValidatorUtils; import com.zt.common.validator.group.DefaultGroup; import com.zt.common.validator.group.UpdateGroup; import com.zt.life.modules.mainPart.async.PythonLib; import com.zt.life.modules.mainPart.taskReliability.dto.*; import com.zt.life.modules.mainPart.taskReliability.model.CurveParam; import com.zt.life.modules.mainPart.taskReliability.model.SimulatAssess; import com.zt.life.modules.mainPart.taskReliability.model.Task; import com.zt.life.modules.mainPart.taskReliability.model.TimeDiagram; import com.zt.life.modules.mainPart.taskReliability.service.SimulatAssessService; import com.zt.life.modules.mainPart.taskReliability.service.TaskService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.*; /** * simulat_assess * * @author zt generator * @since 1.0.0 2024-03-20 */ @RestController @RequestMapping("/taskReliability/SimulatAssess/") @Api(tags = "simulat_assess") public class SimulatAssessController { private static final Logger logger = LoggerFactory.getLogger(SimulatAssessController.class); @Autowired private RedisTemplate redisTemplate; @Autowired private PythonLib pythonLib; @Autowired private TaskService taskService; @Autowired private SimulatAssessService simulatAssessService; @GetMapping("{id}") @ApiOperation("信息") public Result get(@PathVariable("id") Long id) { SimulatAssess data = simulatAssessService.get(id); return Result.ok(data); } @GetMapping("getSimulatList") @ApiOperation("信息") public Result> getSimulatList(Long taskModelId) { List data = simulatAssessService.getList(taskModelId); return Result.ok(data); } @GetMapping("getSimulatParams") @ApiOperation("信息") public Result getSimulatParams(Long id, Long taskModelId) { SimulatAssess data = simulatAssessService.getParams(id, taskModelId); return Result.ok(data); } @PostMapping("analyze") public Result analyze(@RequestBody SimulatAssess simulatAssess) { //效验数据 // Result result = pythonLib.callPython(simulatAssess); Result result = simulatAssessService.simulate(simulatAssess); return result; } @PostMapping("getResultXML") public Result getResultXML(@RequestBody SimulatAssess simulatAssess) { SimulaDataDto data = simulatAssessService.getResultXML(simulatAssess); return Result.ok(data); } @PostMapping("getResultData") public Result getData(@RequestBody SimulatAssess simulatAssess) { SimulaDataDto data = simulatAssessService.getResultData(simulatAssess); return Result.ok(data); } @GetMapping("getStatus") public Result getTimeDiagram(Long productId, Long taskId, Long fzId) { String data = simulatAssessService.getTimeDiagram(productId, taskId, fzId); return Result.ok(data); } @GetMapping("getDiagram") @ApiOperation("查询流程图") @LogOperation("查询流程图") public Result getDiagram(String projectId, String diagramId, String showType, String isShow, String digramParams, String majorId, Integer winWidth, Integer winHeight) throws Exception { if (StringUtils.isBlank(diagramId)) diagramId = projectId; TimeDiagram diagram = simulatAssessService.getDiagram(projectId, diagramId, showType, isShow, digramParams, majorId, winWidth, winHeight); return Result.ok(diagram); } @PutMapping("saveDiagram") @ApiOperation("查询流程图") @LogOperation("查询流程图") public Result saveDiagram(@RequestBody TimeDiagram diagram) { // 效验数据 //ValidatorUtils.validateEntity(project.getProject(), UpdateGroup.class, DefaultGroup.class); if (diagram.getConfigChange() == null) diagram.setConfigChange(0); diagram.setSaveStatus(2); simulatAssessService.updateDiagram(diagram); //simulatAssessService.combineDiagram(diagram); return Result.ok(); } @GetMapping("getCalcProgress") public Result getCalcProgress(Long taskId) { String key = taskId.toString() + simulatAssessService.RELIA_SIM_TASK_TYPE_PROGRESS; String progress = (String) redisTemplate.opsForValue().get(key); if (progress == null) progress = "0"; if (Objects.equals(progress, "100")) { simulatAssessService.deleteSimInfoInRedis(taskId); } return Result.ok(progress); } @GetMapping("ReliabilityWeakness") public Result> getReliabilityWeakness(Long fzId, Long taskId, Long productId) { List data = simulatAssessService.getReliabilityWeakness(fzId, taskId, productId); return Result.ok(data); } @GetMapping("SchemeCompar") public Result SchemeCompar(@RequestParam("taskList[]") String[] taskList,Long showProductId) { SchemeComparDto data = simulatAssessService.SchemeCompar(taskList,showProductId); return Result.ok(data); } @PutMapping @ApiOperation("修改") @LogOperation("修改") public Result update(@RequestBody SimulatAssess simulatAssess) { //效验数据 ValidatorUtils.validateEntity(simulatAssess, UpdateGroup.class, DefaultGroup.class); simulatAssessService.update(simulatAssess); return Result.ok(); } @DeleteMapping @ApiOperation("删除") @LogOperation("删除") public Result delete(@RequestBody Long[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); simulatAssessService.delete(ids); return Result.ok(); } }