刘光辉
昨天 bb638871a7fb692d80f1b7a758f991dc0879002c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package jnpf.flowable.controller;
 
import cn.hutool.core.collection.CollUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jnpf.base.ActionResult;
import jnpf.base.Pagination;
import jnpf.base.entity.AiEntity;
import jnpf.constant.MsgCode;
import jnpf.flowable.model.templatenode.TemplateNodeCrFrom;
import jnpf.flowable.model.xml.FlowXmlUtil;
import jnpf.flowable.util.ServiceUtil;
import jnpf.model.ai.AiFlowModel;
import jnpf.model.ai.AiModel;
import jnpf.model.ai.SendAiMessage;
import jnpf.util.AiLimitUtil;
import jnpf.util.JsonUtil;
import jnpf.util.UserProvider;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.List;
 
 
/**
 * 流程评论
 *
 * @author JNPF开发平台组
 * @version V3.1.0
 * @copyright 引迈信息技术有限公司
 */
@Tag(name = "流程ai", description = "ai")
@RestController
@RequestMapping("/ai")
@RequiredArgsConstructor
public class WorkFlowAiController {
 
 
    private final  ServiceUtil serviceUtil;
 
    @Operation(summary = "ai生成流程")
    @Parameter(name = "keyword", description = "需求描述")
    @PostMapping
    public ActionResult<Object> workFlowAi(@RequestBody Pagination pagination) {
        AiEntity aDefault = serviceUtil.getDefault();
        AiModel model = JsonUtil.getJsonToBean(aDefault, AiModel.class);
        TemplateNodeCrFrom form = new TemplateNodeCrFrom();
        form.setSortCode(0L);
        if (!AiLimitUtil.tryAcquire(UserProvider.getLoginId())) {
            return ActionResult.fail(MsgCode.SYS182.get());
        }
        List<AiFlowModel> aiFlowModel = SendAiMessage.getFlowXml(pagination.getKeyword(), model);
        if (CollUtil.isNotEmpty(aiFlowModel)) {
           String formXml = FlowXmlUtil.getWorkFlowAi(aiFlowModel);
            form.setFlowXml(formXml);
        }
        return ActionResult.success(form);
    }
}