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);
|
}
|
}
|
}
|