| | |
| | | |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.Objects; |
| | | |
| | | import lombok.extern.log4j.Log4j2; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | |
| | | @Log4j2 |
| | | @Component |
| | | public class checkForTicketStatusChanges { |
| | | private static final Logger _logger = LogManager.getLogger(checkForTicketStatusChanges.class); |
| | | 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"); |
| | | |
| | | try |
| | | { |
| | | Date date = new Date(); |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | cal.add(Calendar.MINUTE, -5); |
| | | Date time = cal.getTime(); |
| | | |
| | | _logger.info("aaaaaaaaaaaaaa : " + SMTAIServerApp.getApp().getSystemDatasourceUsgae()); |
| | | |
| | | try(SMTDatabase db = SMTAIServerApp.getApp().allocDatabase()) |
| | | { |
| | | 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); |
| | | } |
| | | } |
| | | _logger.info("bbbbbbbbbbbbbbbbbbb : " + SMTAIServerApp.getApp().getSystemDatasourceUsgae()); |
| | | } |
| | | catch (Exception e) { |
| | | _logger.error("checkForTicketStatusChanges error", e); |
| | | } |
| | | } |
| | | public void execCheckForTicketStatusChanges() throws Exception { |
| | | String result = (String) SMTAIServerApp.getApp().getGlobalConfig("work_order.inner_order", null); |
| | | if (Objects.equals(result, "N")) { |
| | | return; |
| | | } |
| | | _logger.info("start execCheckForTicketStatusChanges task"); |
| | | try { |
| | | Date date = new Date(); |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | cal.add(Calendar.MINUTE, -5); |
| | | Date time = cal.getTime(); |
| | | |
| | | /** |
| | | * 工单状态转变为 已完成 |
| | | * |
| | | * @throws Exception |
| | | */ |
| | | @Scheduled(cron = "0/10 * * * * ?") |
| | | public void execCheckForTicketStatusChangesByFinish() throws Exception { |
| | | _logger.info("start checkForTicketStatusChanges task"); |
| | | try |
| | | { |
| | | Date date = new Date(); |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | cal.add(Calendar.MINUTE, -5); |
| | | Date time = cal.getTime(); |
| | | |
| | | try(SMTDatabase db = SMTAIServerApp.getApp().allocDatabase()) |
| | | { |
| | | 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); |
| | | } |
| | | } |
| | | try (SMTDatabase db = SMTAIServerApp.getApp().allocDatabase()) { |
| | | SMTDatabase.DBRecords dbRecords = |
| | | db.querySQL( |
| | | "select order_id, stepstatus from work_order_list where is_notify = ? and status_update_time > ? and stepstatus in (1, 4)", |
| | | new Object[]{"N", time}); |
| | | |
| | | _logger.info("查询到状态为【已接单 或 已完成】的工单数量:{}", dbRecords.getRowCount()); |
| | | |
| | | for (SMTDatabase.DBRecord rec : dbRecords.getRecords()) { |
| | | String orderId = rec.getString("order_id"); |
| | | int stepstatus = rec.getInteger("stepstatus"); |
| | | |
| | | String configKey; |
| | | switch (stepstatus) { |
| | | case 1: |
| | | configKey = "work_order.workflow_agent_re"; |
| | | break; |
| | | case 4: |
| | | configKey = "work_order.workflow_agent_finish"; |
| | | break; |
| | | default: |
| | | _logger.warn("不支持的stepstatus: {}", stepstatus); |
| | | continue; |
| | | } |
| | | |
| | | String agentId = (String) SMTAIServerApp.getApp().getGlobalConfig(configKey, "status_changes_received_order"); |
| | | |
| | | SMTQwenAgent agent = SMTAIServerApp.getApp().getQwenAgentManager().getAgentById(agentId); |
| | | if (agent == null) { |
| | | _logger.error("找不到Agent: {}", agentId); |
| | | continue; |
| | | } |
| | | |
| | | Json jsonArgs = Json.object("question", "", "order_id", orderId); |
| | | SMTLLMConnect llm = SMTAIServerApp.getApp().allocLLMConnect(null); |
| | | SMTAIServerRequest _tranReq = new SMTAIServerRequest(); |
| | | agent.callAgents("/", jsonArgs, llm, "", _tranReq); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | _logger.error("execCheckForTicketStatusChanges error", e); |
| | | } |
| | | } |
| | | |
| | | } |