From 023fb213fdd9b70d0343589d4f64b552a696ce7f Mon Sep 17 00:00:00 2001 From: gallonyin Date: Thu, 26 Jan 2023 10:25:38 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=88=87=E6=8D=A2=E4=BC=81=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../worktool/model/WeworkMessageBean.java | 2 ++ .../org/yameida/worktool/service/MyLooper.kt | 3 ++ .../worktool/service/WeworkController.kt | 11 ++++++ .../worktool/service/WeworkOperationImpl.kt | 35 +++++++++++++++++++ 4 files changed, 51 insertions(+) diff --git a/app/src/main/java/org/yameida/worktool/model/WeworkMessageBean.java b/app/src/main/java/org/yameida/worktool/model/WeworkMessageBean.java index 94e6911..09ce2e2 100644 --- a/app/src/main/java/org/yameida/worktool/model/WeworkMessageBean.java +++ b/app/src/main/java/org/yameida/worktool/model/WeworkMessageBean.java @@ -36,6 +36,7 @@ public class WeworkMessageBean { * 从外部群添加好友 ADD_FRIEND_BY_GROUP * 添加待办 ADD_NEED_DEAL * 打卡 CLOCK_IN + * 切换企业 SWITCH_CORP *

* 非操作类型 300 * 机器人普通日志记录 ROBOT_LOG @@ -74,6 +75,7 @@ public class WeworkMessageBean { public static final int ADD_FRIEND_BY_GROUP = 220; public static final int ADD_NEED_DEAL = 221; public static final int CLOCK_IN = 222; + public static final int SWITCH_CORP = 223; public static final int ROBOT_LOG = 301; public static final int ROBOT_ERROR_LOG = 302; diff --git a/app/src/main/java/org/yameida/worktool/service/MyLooper.kt b/app/src/main/java/org/yameida/worktool/service/MyLooper.kt index 95d0c0e..efa53ca 100644 --- a/app/src/main/java/org/yameida/worktool/service/MyLooper.kt +++ b/app/src/main/java/org/yameida/worktool/service/MyLooper.kt @@ -169,6 +169,9 @@ object MyLooper { WeworkMessageBean.CLOCK_IN -> { WeworkController.clockIn(message) } + WeworkMessageBean.SWITCH_CORP -> { + WeworkController.switchCorp(message) + } WeworkMessageBean.SHOW_GROUP_INFO -> { WeworkController.showGroupInfo(message) } diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkController.kt b/app/src/main/java/org/yameida/worktool/service/WeworkController.kt index cf49961..b80a727 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkController.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkController.kt @@ -230,6 +230,17 @@ object WeworkController { return WeworkOperationImpl.clockIn(message) } + /** + * 切换企业 + * @see WeworkMessageBean.SWITCH_CORP + * @param message#objectName 企业名称 + */ + @RequestMapping + fun switchCorp(message: WeworkMessageBean): Boolean { + LogUtils.d("switchCorp(): ${message.objectName}") + return WeworkOperationImpl.switchCorp(message, message.objectName) + } + /** * 推送微盘图片 * @see WeworkMessageBean.PUSH_MICRO_DISK_IMAGE diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt index b31713a..f091331 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt @@ -1001,6 +1001,41 @@ object WeworkOperationImpl { } } + /** + * 切换企业 + * @see WeworkMessageBean.SWITCH_CORP + * @param objectName 企业名称 + */ + fun switchCorp(message: WeworkMessageBean, objectName: String): Boolean { + val startTime = System.currentTimeMillis() + goHomeTab("消息") + val firstTv = AccessibilityUtil.findAllByClazz(getRoot(), Views.TextView) + .firstOrNull { it.text == null } + AccessibilityUtil.performClick(firstTv, retry = false) + sleep(Constant.CHANGE_PAGE_INTERVAL) + val listviewList = AccessibilityUtil.findAllOnceByClazz(getRoot(), Views.RecyclerView, Views.ListView, Views.ViewGroup) + .filter { it.childCount >= 2 } + val listview = listviewList.firstOrNull() + if (listview != null) { + val tvCorp = AccessibilityUtil.findOnceByText(listview, objectName, exact = true) + if (tvCorp != null) { + LogUtils.d("找到目标企业: $objectName") + AccessibilityUtil.performClick(tvCorp) + goHome() + return true + } else { + LogUtils.e("未找到目标企业: $objectName") + uploadCommandResult(message, ExecCallbackBean.ERROR_TARGET, "未找到目标企业: $objectName", startTime) + goHome() + return false + } + } else { + LogUtils.e("未找到企业列表: $objectName") + uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未找到企业列表: $objectName", startTime) + return false + } + } + /** * 展示群信息 * @see WeworkMessageBean.SHOW_GROUP_INFO