package com.zt.life.modules.mainPart.taskReliability.controller; import com.zt.common.annotation.LogOperation; import com.zt.common.constant.Constant; import com.zt.common.annotation.QueryParam; import com.zt.common.db.query.QueryFilter; import com.zt.common.servlet.Result; import com.zt.common.servlet.PageResult; import com.zt.common.validator.AssertUtils; import com.zt.common.validator.ValidatorUtils; import com.zt.common.validator.group.AddGroup; 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.model.ModelLine; import com.zt.life.modules.mainPart.taskReliability.model.ModelRbd; import com.zt.life.modules.mainPart.taskReliability.service.ModelLineService; import com.zt.life.modules.mainPart.taskReliability.service.ModelRbdNodeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import java.util.Date; /** * model_line * * @author zt generator * @since 1.0.0 2024-02-28 */ @RestController @RequestMapping("/taskReliability/ModelLine/") @Api(tags = "model_line") public class ModelLineController { private static final String URL_REPLACE_STR = "URL_PREFIX_URL"; private static final String TOKEN_REPLACE_STR = "MY_TOKEN_MY"; private static final String TIMESTAMP_REPLACE_STR = "MY_TIMESTAMP_MY"; private static final String TOKEN_REPLACE_REGEX = "token=[0-9a-zA-Z]+&"; private static final String TIMESTAMP_REPLACE_REGEX = "&t=[0-9]+"; @Autowired private ModelLineService modelLineService; @Autowired private ModelRbdNodeService modelRbdNodeService; @GetMapping("page") @ApiOperation("分页") @ApiImplicitParams({ @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT), @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), }) public PageResult page(@ApiIgnore @QueryParam QueryFilter queryFilter) { return PageResult.ok(modelLineService.page(queryFilter)); } @GetMapping("{id}") @ApiOperation("信息") public Result get(@PathVariable("id") Long id) { ModelLine data = modelLineService.get(id); return Result.ok(data); } @GetMapping("getDiagram") @ApiOperation("信息") public Result getDiagram(Long modelId, String urlPref, String token) { ModelRbd data = modelLineService.getDiagram(modelId); if (data.getContent() != null) { data.setContent(data.getContent().replace(URL_REPLACE_STR, urlPref)); data.setContent(data.getContent().replace(TOKEN_REPLACE_STR, "token="+token+"&")); data.setContent(data.getContent().replace(TIMESTAMP_REPLACE_STR, "&t="+(new Date()).getTime())); } return Result.ok(data); } @PostMapping @ApiOperation("新增") @LogOperation("新增") public Result insert(@RequestBody ModelRbd modelRbd) { //效验数据 ValidatorUtils.validateEntity(modelRbd, AddGroup.class, DefaultGroup.class); modelRbd.setContent(modelRbd.getContent().replace(modelRbd.getUrlPref(), URL_REPLACE_STR)); modelRbd.setContent(modelRbd.getContent().replaceAll(TOKEN_REPLACE_REGEX, TOKEN_REPLACE_STR)); modelRbd.setContent(modelRbd.getContent().replaceAll(TIMESTAMP_REPLACE_REGEX, TIMESTAMP_REPLACE_STR)); modelRbdNodeService.saveNodeArr(modelRbd); modelLineService.insert(modelRbd); return Result.ok(); } @PutMapping @ApiOperation("修改") @LogOperation("修改") public Result update(@RequestBody ModelRbd modelRbd) { //效验数据 ValidatorUtils.validateEntity(modelRbd, UpdateGroup.class, DefaultGroup.class); modelRbd.setContent(modelRbd.getContent().replace(modelRbd.getUrlPref(), URL_REPLACE_STR)); modelRbd.setContent(modelRbd.getContent().replaceAll(TOKEN_REPLACE_REGEX, TOKEN_REPLACE_STR)); modelRbd.setContent(modelRbd.getContent().replaceAll(TIMESTAMP_REPLACE_REGEX, TIMESTAMP_REPLACE_STR)); modelRbdNodeService.saveNodeArr(modelRbd); modelLineService.update(modelRbd); return Result.ok(); } @DeleteMapping @ApiOperation("删除") @LogOperation("删除") public Result delete(@RequestBody Long[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); modelLineService.delete(ids); return Result.ok(); } @PostMapping("analyze") @ApiOperation("解析") @LogOperation("解析") public Result analyze(@RequestBody ModelRbd modelRbd) { update(modelRbd); boolean result = modelLineService.analyze(modelRbd); return result ? Result.ok() : Result.error("解析失败"); } @PostMapping("layout") @ApiOperation("自动排版") @LogOperation("自动排版") public Result layout(@RequestBody ModelRbd modelRbd) { boolean result = modelLineService.layout(modelRbd); return result ? Result.ok(modelRbd) : Result.error("自动排版失败"); } }