qfrjava
2025-04-18 138da57697484c7b80fca19487a855fbe6808084
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package com.smtaiserver.smtaiserver.scheduledTasks;
 
import com.smtaiserver.smtaiserver.core.SMTAIServerApp;
import com.smtaiserver.smtaiserver.core.SMTAIServerRequest;
import com.smtaiserver.smtaiserver.database.SMTDatabase;
import com.smtaiserver.smtaiserver.javaai.llm.core.SMTLLMConnect;
import com.smtaiserver.smtaiserver.javaai.qwen.agent.SMTQwenAgent;
import com.smtservlet.util.Json;
import java.util.Calendar;
import java.util.Date;
import lombok.extern.log4j.Log4j2;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Component;
 
/**
 * 这个类是:
 *
 * @author: adeng
 * @date: 2025/4/17 17:03
 * @version: 1.0
 */
@Log4j2
@Component
public class checkForTicketStatusChanges {
  private static final Logger _logger = LogManager.getLogger(checkForTicketStatusChanges.class);
 
  /**
   * 工单状态转变为 已接单
   *
   * @throws Exception
   */
  //  @Scheduled(cron = "0/10 * * * * ?")
  public void execCheckForTicketStatusChangesByOrdersTaken() throws Exception {
    _logger.info("start checkForTicketStatusChanges task");
    SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
    Date date = new Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.MINUTE, -5);
    Date time = cal.getTime();
 
    try {
      SMTDatabase.DBRecords dbRecords =
          db.querySQL(
              "select order_id from work_order_list where is_notify =? and  status_update_time > ? and stepstatus =1",
              new Object[] {"N", time});
 
      _logger.info("查询到状态为已接单的工单的数量:{}", dbRecords.getRowCount());
      for (SMTDatabase.DBRecord rec : dbRecords.getRecords()) {
        String agentId =
            (String)
                SMTAIServerApp.getApp()
                    .getGlobalConfig(
                        "work_order.workflow_agent_re", "status_changes_received_order");
 
        Json jsonArgs = Json.object("question", "", "order_id", rec.getString("order_id"));
 
        SMTQwenAgent agent = SMTAIServerApp.getApp().getQwenAgentManager().getAgentById(agentId);
        if (agent == null) throw new Exception("can't find agent : " + agentId);
        SMTLLMConnect llm = SMTAIServerApp.getApp().allocLLMConnect(null);
 
        SMTAIServerRequest _tranReq = new SMTAIServerRequest();
        agent.callAgents("/", jsonArgs, llm, "", _tranReq);
      }
 
    } catch (Exception e) {
      _logger.error("checkForTicketStatusChanges error", e);
    }
  }
 
  /**
   * 工单状态转变为 已完成
   *
   * @throws Exception
   */
  //  @Scheduled(cron = "0/10 * * * * ?")
  public void execCheckForTicketStatusChangesByFinish() throws Exception {
    _logger.info("start checkForTicketStatusChanges task");
    SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
    Date date = new Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.MINUTE, -5);
    Date time = cal.getTime();
 
    try {
      SMTDatabase.DBRecords dbRecords =
          db.querySQL(
              "select order_id from work_order_list where is_notify =? and  status_update_time > ? and stepstatus =4",
              new Object[] {"N", time});
 
      _logger.info("查询到状态为已完成的工单的数量:{}", dbRecords.getRowCount());
      for (SMTDatabase.DBRecord rec : dbRecords.getRecords()) {
        String agentId =
            (String)
                SMTAIServerApp.getApp()
                    .getGlobalConfig(
                        "work_order.workflow_agent_finish", "status_changes_received_order");
        Json jsonArgs = Json.object("question", "", "order_id", rec.getString("order_id"));
 
        SMTQwenAgent agent = SMTAIServerApp.getApp().getQwenAgentManager().getAgentById(agentId);
        if (agent == null) throw new Exception("can't find agent : " + agentId);
        SMTLLMConnect llm = SMTAIServerApp.getApp().allocLLMConnect(null);
 
        SMTAIServerRequest _tranReq = new SMTAIServerRequest();
        agent.callAgents("/", jsonArgs, llm, "", _tranReq);
      }
 
    } catch (Exception e) {
      _logger.error("checkForTicketStatusChanges error", e);
    }
  }
}