GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

编程开发 --- 安卓全自动接单

 

需求:

客户需要做一个纯手机接单的app,电脑接单也可以实现只是政策要求手机接单。因为晚上时常会遗忘订单,导致客户绩效考核。

解决思路:

既然是手机接单就有两种方法。root法和免root的无障碍法,root法有工具task app,免root有工具 一触即发app和自动精灵等等,我个人认为一触即发简单上手快推荐。

一触即发的条件判断有,截图法和控件查找法,开始我用控件法,但是app是uniapp开发的混合app,不能存在安卓控件的说法。因此只能使用截图法。

难点:

如果只是判断后点击那还简单,但是除了正常接单流程外还有一些异常要处理,下面一一列举

接单app和客户app需要持久化保活,在我之前的文章有处理办法。

网络不稳定导致的白色屏幕,这算是一种异常。可以通过铃声提醒的方式解决。

token会6小时后过期,过期后要么重新登录,要么自动续期。如果自动续期,需要重新编写app太复杂。这里采用重新登陆的方法,但是重新登陆需要短信验证码,因此引入新的问题,一触即发如何读取短信验证码。我的处理思路是,在检测到登陆超时,自动点击发送验证码,在接收验证码的手机上安装监听指定短信的app并转发给中间服务器,中间服务器临时保存验证码并提供获取验证码接口, 一触即发app发送请求获取验证码并填入app登陆。

细节:

我们先说一触即发脚本,在使用前需要在app里开启权限,开启无障碍、忽略电池优化,悬浮窗,所有的权限管理,在设置里显示 识图显示矩形,上键停止脚本

//在一触即发导入脚本即可使用,这里在一个脚本处理了两个app,思路就是截图判断是否在某一页或者是订单,是的话点击即可,包含异常处理
//打开 铁塔aiot app并处理接单
//定义两个变量
变量 永真变量 = 真;
变量 验证码 = "";
//开始循环接单
判断循环首 永真变量 = true
        打开应用("com.chinatower.powerservice");
        随机延时(5000,5000);
        弹出提示("开始查找aiot订单");
        //这里判断是否是接单的页面,依据是特征图片
        如果 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_ADBA2F4708FDE61B5248F2B5A19A239E.dddbbb,精确度:80 ,null) 则 
                弹出提示("找到工单模块,管理工单");
//点击接单模块
                点击(222,855,1);
                点击(222,855,1);
                随机延时(10000,10000);
                //检查有没有订单;
                如果 屏幕中是否包含文字("暂无内容" ,'node' ,null) 则 
                        弹出提示("暂无内容");
                        返回键();
                        //登录异常判断;
                        如果 屏幕中是否包含文字("登录超时" ,'node' ,null) 或 屏幕中是否包含文字("账号验证" ,'node' ,null) 则 
                                弹出提示("登录异常处理");
                                判断循环首 永真变量 = true
                                        震动(长)();
                                        铃声提示();
                                        弹出提示("请重新登录");
                                        关闭应用("com.chinatower.powerservice");
//因为关闭方法不起作用只能三个返回表示关闭app
                                        返回键();
                                        返回键();
                                        返回键();
//                                        任务键();
                                        打开应用("com.chinatower.powerservice");
                                        弹出提示("正在输入密码");
                                        //删除登录;
                                        点击(960,726,1);
                                        输入文字(280,754,"guokai1");
                                        //删除密码;
                                        点击(889,873,1);
                                        输入文字(304,879,"82212991@Lbb520");
                                        //同意协议;
                                        点击(89,2307,1);
                                        //点击登录;
                                        点击(549,1393,1);
                                        随机延时(3000,3000);
                                        //发送验证码;
                                        点击(882,916,1);
                                        随机延时(5000,5000);
                                        验证码 = 网页访问("http://125.75.111.54:9002/api/sms/latest" ,'GET' ,header:{} ,data:{});
                                        验证码 = 取文本中间("{验证码}","验证码","");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        输入文字(361,926,"{验证码}");
                                        //登录;
                                        点击(515,1413,1);
                                        如果 屏幕中是否包含文字("设备汇总" ,'node' ,null) 或 屏幕中是否包含文字("常用功能" ,'node' ,null) 或 屏幕中是否包含文字("修改密码" ,'node' ,null) 或 屏幕中是否包含文字("待办工单" ,'node' ,null) 则 
                                                弹出提示("登录成功进入接单");
                                                退出循环;
                                        否则
//                                                //;
                                                弹出提示("登录失败重新登录");


                                        结束 如果
                                判断循环尾
                        否则
                                弹出提示("未检测到登录异常,尝试接单");


                        结束 如果                否则
                        弹出提示("发现工单");
                        //登录异常判断;
                        如果 屏幕中是否包含文字("登录超时" ,'node' ,null) 或 屏幕中是否包含文字("账号验证" ,'node' ,null) 则 
                                弹出提示("登录异常处理");
                                判断循环首 永真变量 = true
                                        震动(长)();
                                        铃声提示();
                                        弹出提示("请重新登录");
                                        关闭应用("com.chinatower.powerservice");
                                        返回键();
                                        返回键();
                                        返回键();
//                                        任务键();
                                        打开应用("com.chinatower.powerservice");
                                        弹出提示("正在输入密码");
                                        //删除登录;
                                        点击(960,726,1);
                                        输入文字(280,754,"guokai1");
                                        //删除密码;
                                        点击(889,873,1);
                                        输入文字(304,879,"82212991@Lbb520");
                                        //同意协议;
                                        点击(89,2307,1);
                                        //点击登录;
                                        点击(549,1393,1);
                                        随机延时(3000,3000);
                                        //发送验证码;
                                        点击(882,916,1);
                                        随机延时(5000,5000);
                                        验证码 = 网页访问("http://125.75.111.54:9002/api/sms/latest" ,'GET' ,header:{} ,data:{});
                                        验证码 = 取文本中间("{验证码}","验证码","");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        输入文字(361,926,"{验证码}");
                                        //登录;
                                        点击(515,1413,1);
                                        如果 屏幕中是否包含文字("设备汇总" ,'node' ,null) 或 屏幕中是否包含文字("常用功能" ,'node' ,null) 或 屏幕中是否包含文字("修改密码" ,'node' ,null) 或 屏幕中是否包含文字("待办工单" ,'node' ,null) 则 
                                                弹出提示("登录成功进入接单");
                                                退出循环;
                                        否则
//                                                //;
                                                弹出提示("登录失败重新登录");


                                        结束 如果
                                判断循环尾
                        否则
                                弹出提示("未检测到登录异常,尝试接单");


                        结束 如果                        
                        随机延时(5000,5000);
                        //进入订单;
                        点击图片("/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_5561A0D3E52614D9F9D6371B196D921B_copy_copy_copy.dddbbb",精确度: 80,null,false);
                        点击(508,530,1);
                        点击(467,512,1);
//                        点击(375,256,1);
                        随机延时(3000,3000);
                        //接单;
                        点击图片("/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_D354F18F6107B973B80B39984C35A4E0.dddbbb",精确度: 55,null,false);
                        点击(547,2307,1);
                        //接单;
//                        点击(368,1244,1);
                        //确定;
                        点击图片("/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_1B6BF0D4DD8304905281333C863850C3.dddbbb",精确度: 80,null,false);
                        点击(684,1424,1);
                        //确定;
//                        点击(455,754,1);
                        返回键();
//                        点击图片("/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_E22206D6CB4ECE772D26A7CE5E21A5FF.dddbbb",精确度: 80,null,false);
                        点击(255,840,1);
                        点击(502,560,1);


                结束 如果        否则
                弹出提示("未找到");
                点击(138,2268,1);
                返回键();
                //登录异常判断;
                如果 屏幕中是否包含文字("登录超时" ,'node' ,null) 或 屏幕中是否包含文字("账号验证" ,'node' ,null) 则 
                        弹出提示("登录异常处理");
                        判断循环首 永真变量 = true
                                震动(长)();
                                铃声提示();
                                弹出提示("请重新登录");
                                关闭应用("com.chinatower.powerservice");
                                返回键();
                                返回键();
                                返回键();
//                                任务键();
                                打开应用("com.chinatower.powerservice");
                                弹出提示("正在输入密码");
                                //删除登录;
                                点击(960,726,1);
                                输入文字(280,754,"guokai1");
                                //删除密码;
                                点击(889,873,1);
                                输入文字(304,879,"82212991@Lbb520");
                                //同意协议;
                                点击(89,2307,1);
                                //点击登录;
                                点击(549,1393,1);
                                随机延时(3000,3000);
                                //发送验证码;
                                点击(882,916,1);
                                随机延时(5000,5000);
                                验证码 = 网页访问("http://125.75.111.54:9002/api/sms/latest" ,'GET' ,header:{} ,data:{});
                                验证码 = 取文本中间("{验证码}","验证码","");
                                弹出提示("成功获取验证码{验证码}");
                                弹出提示("成功获取验证码{验证码}");
                                弹出提示("成功获取验证码{验证码}");
                                弹出提示("成功获取验证码{验证码}");
                                输入文字(361,926,"{验证码}");
                                //登录;
                                点击(515,1413,1);
                                如果 屏幕中是否包含文字("设备汇总" ,'node' ,null) 或 屏幕中是否包含文字("常用功能" ,'node' ,null) 或 屏幕中是否包含文字("修改密码" ,'node' ,null) 或 屏幕中是否包含文字("待办工单" ,'node' ,null) 则 
                                        弹出提示("登录成功进入接单");
                                        退出循环;
                                否则
//                                        //;
                                        弹出提示("登录失败重新登录");


                                结束 如果
                        判断循环尾
                否则
                        弹出提示("未检测到登录异常,尝试接单");


                结束 如果

        结束 如果        随机延时(5000,5000);
//处理铁塔新网管app
        打开应用("com.chinatower.energymonitor");
        随机延时(5000,5000);
        弹出提示("开始查找网管订单");
        如果 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_2C97C45A842E917408B9666466501638.dddbbb,精确度:91 ,null) 则 
                弹出提示("找到工单模块,管理工单");
                弹出提示("找到工单模块,管理工单");
                随机延时(6000,6000);
//                点击图片("/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_86BA010D78C5584204EDB769C5C22F38.dddbbb",精确度: 80,null,false);
                点击(279,827,1);
//                点击图片("/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_9D13BC164F494F7A9CF33E51C67877B7.dddbbb",精确度: 50,null,false);
                //检查有没有订单;
                如果 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_E597066365DD74373F2834FCF8BD242D.dddbbb,精确度:100 ,null) 或 屏幕中是否包含文字("暂无内容" ,'node' ,null) 则 
                        弹出提示("暂无内容");
                        //暂无;
                        返回键();
                        //登录异常判断;
                        如果 屏幕中是否包含文字("登录超时" ,'node' ,null) 或 屏幕中是否包含文字("记住密码" ,'node' ,null) 或 屏幕中是否包含文字("您的登录状态已过期" ,'node' ,null) 或 屏幕中是否包含文字("获取验证码" ,'node' ,null) 则 
                                弹出提示("登录异常处理");
                                判断循环首 永真变量 = true
                                        震动(长)();
                                        铃声提示();
                                        弹出提示("请重新登录");
                                        关闭应用("com.chinatower.energymonitor");
                                        返回键();
                                        返回键();
                                        返回键();
//                                        任务键();
                                        打开应用("com.chinatower.energymonitor");
                                        弹出提示("正在输入密码");
                                        //进入账号;
                                        点击(230,714,1);
                                        //删除账号;
                                        点击(937,703,1);
                                        输入文字(237,727,"guokai1");
                                        //进入密码;
                                        点击(318,929,1);
                                        //删除密码;
                                        点击(877,898,1);
                                        输入文字(328,928,"82212991@Lbb520");
                                        //同意协议;
                                        点击(86,2307,1);
                                        //点击登录;
                                        点击(556,1379,1);
                                        点击(792,903,1);
                                        点击文字("获取验证码",'node',null,false);
                                        随机延时(5000,5000);
                                        验证码 = 网页访问("http://125.75.111.54:9002/api/sms/latest" ,'GET' ,header:{} ,data:{});
                                        验证码 = 取文本中间("{验证码}","验证码:","");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        输入文字(303,921,"{验证码}");
                                        //正式登录;
                                        点击(507,1248,1);
                                        如果 屏幕中是否包含文字("设备汇总" ,'node' ,null) 或 屏幕中是否包含文字("常用功能" ,'node' ,null) 或 屏幕中是否包含文字("修改密码" ,'node' ,null) 或 屏幕中是否包含文字("待办工单" ,'node' ,null) 则 
                                                弹出提示("登录成功进入接单");
                                                退出循环;
                                        否则
//                                                //;
                                                弹出提示("登录失败重新登录");


                                        结束 如果
                                判断循环尾
                        否则
                                弹出提示("未检测到登录异常,尝试接单");


                        结束 如果                否则
                        随机延时(5000,5000);
                        //判断是否有单;
                        如果 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_695B9FA0C04A43180E293D54E4C6B9F7.dddbbb,精确度:80 ,null) 则 
                                //如果没有代办,则进行语音提示,用户重新登录;
                                随机延时(5000,5000);
//                                如果 屏幕中是否包含文字("登录超时" ,'node' ,null) 或 屏幕中是否包含文字("您的登录状态已过期" ,'node' ,null) 或 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_E59F283A11FDE68C8F860D293DA1464B.dddbbb,精确度:80 ,null) 则 
                                        弹出提示("异常处理");
                                        判断循环首 永真变量 = true
                                                震动(长)();
                                                铃声提示();
                                                弹出提示("请重新登录");
                                                如果 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_7D02EA11322C5FFF2151EB4269873D33.dddbbb,精确度:80 ,null) 且 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_92139E94017B0A1680B46CDAA6B52671.dddbbb,精确度:80 ,null) 且 屏幕中是否包含文字("设备汇总" ,'node' ,null) 则 
                                                        退出循环;
                                                否则


                                                结束 如果
                                        判断循环尾
                                否则


                                结束 如果                                //登录异常判断;
                                如果 屏幕中是否包含文字("登录超时" ,'node' ,null) 或 屏幕中是否包含文字("记住密码" ,'node' ,null) 或 屏幕中是否包含文字("您的登录状态已过期" ,'node' ,null) 或 屏幕中是否包含文字("获取验证码" ,'node' ,null) 则 
                                        弹出提示("登录异常处理");
                                        判断循环首 永真变量 = true
                                                震动(长)();
                                                铃声提示();
                                                弹出提示("请重新登录");
                                                关闭应用("com.chinatower.energymonitor");
                                                返回键();
                                                返回键();
                                                返回键();
//                                                任务键();
                                                打开应用("com.chinatower.energymonitor");
                                                弹出提示("正在输入密码");
                                                //进入账号;
                                                点击(230,714,1);
                                                //删除账号;
                                                点击(937,703,1);
                                                输入文字(237,727,"guokai1");
                                                //进入密码;
                                                点击(318,929,1);
                                                //删除密码;
                                                点击(877,898,1);
                                                输入文字(328,928,"82212991@Lbb520");
                                                //同意协议;
                                                点击(86,2307,1);
                                                //点击登录;
                                                点击(556,1379,1);
                                                点击(792,903,1);
                                                点击文字("获取验证码",'node',null,false);
                                                随机延时(5000,5000);
                                                验证码 = 网页访问("http://125.75.111.54:9002/api/sms/latest" ,'GET' ,header:{} ,data:{});
                                                验证码 = 取文本中间("{验证码}","验证码:","");
                                                弹出提示("成功获取验证码{验证码}");
                                                弹出提示("成功获取验证码{验证码}");
                                                弹出提示("成功获取验证码{验证码}");
                                                弹出提示("成功获取验证码{验证码}");
                                                输入文字(303,921,"{验证码}");
                                                //正式登录;
                                                点击(507,1248,1);
                                                如果 屏幕中是否包含文字("设备汇总" ,'node' ,null) 或 屏幕中是否包含文字("常用功能" ,'node' ,null) 或 屏幕中是否包含文字("修改密码" ,'node' ,null) 或 屏幕中是否包含文字("待办工单" ,'node' ,null) 则 
                                                        弹出提示("登录成功进入接单");
                                                        退出循环;
                                                否则
//                                                        //;
                                                        弹出提示("登录失败重新登录");


                                                结束 如果
                                        判断循环尾
                                否则
                                        弹出提示("未检测到登录异常,尝试接单");


                                结束 如果                                弹出提示("发现工单");
                                //进入订单;
                                点击图片("/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_5561A0D3E52614D9F9D6371B196D921B_copy_copy_copy.dddbbb",精确度: 84,null,false);
                                点击(484,483,1);
                                滑动([{手势: &手势1,time: 789}],false);
                                滑动([{手势: &手势1,time: 1326}],false);
                                //接单;
                                点击图片("/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_EDF06D95AE95876317FB3C557B35399C_copy_copy_copy_copy.dddbbb",精确度: 80,null,false);
                                点击(518,2281,1);
                                //确定;
                                点击图片("/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_9920D481D731BDCF0293B1FFE2BD528F_copy_copy.dddbbb",精确度: 80,null,false);
                                返回键();
                        否则
                                //登录异常处理;
//                                打开应用("com.chinatower.energymonitor");
//                                判断循环首 永真变量 = true
                                        铃声提示();
                                        震动(长)();
                                        弹出提示("请重新登录");
                                        如果 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_BEFCAB3735BC5271347D245290F22261.dddbbb,精确度:80 ,null) 则 
                                                退出循环;

                                        结束 如果                                        如果 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_BC254EAC6CA641960C1E3D004394ED30.dddbbb,精确度:80 ,null) 则 
                                                退出循环;
                                        否则


                                        结束 如果                                        如果 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_F403337EC41FD824B66F859F342663D7.dddbbb,精确度:80 ,null) 则 
                                                退出循环;

                                        结束 如果                                        如果 屏幕中是否包含图片(/storage/emulated/0/YiChuJiFaProject/workSpaceImage/img_E0332EC3573B2E895156835F0A6AB702.dddbbb,精确度:80 ,null) 则 
                                                退出循环;

                                        结束 如果
                                判断循环尾
                                //白屏检测;
                                判断循环首 永真变量 = true
                                        震动(长)();
                                        铃声提示();
                                        弹出提示("请重新登录");
                                        关闭应用("com.chinatower.energymonitor");
                                        返回键();
                                        返回键();
                                        返回键();
//                                        任务键();
                                        打开应用("com.chinatower.energymonitor");
                                        弹出提示("正在输入密码");
                                        //进入账号;
                                        点击(230,714,1);
                                        //删除账号;
                                        点击(937,703,1);
                                        输入文字(237,727,"guokai1");
                                        //进入密码;
                                        点击(318,929,1);
                                        //删除密码;
                                        点击(877,898,1);
                                        输入文字(328,928,"82212991@Lbb520");
                                        //同意协议;
                                        点击(86,2307,1);
                                        //点击登录;
                                        点击(556,1379,1);
                                        点击(792,903,1);
                                        点击文字("获取验证码",'node',null,false);
                                        随机延时(5000,5000);
                                        验证码 = 网页访问("http://125.75.111.54:9002/api/sms/latest" ,'GET' ,header:{} ,data:{});
                                        验证码 = 取文本中间("{验证码}","验证码:","");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        弹出提示("成功获取验证码{验证码}");
                                        输入文字(303,921,"{验证码}");
                                        //正式登录;
                                        点击(507,1248,1);
                                        如果 屏幕中是否包含文字("设备汇总" ,'node' ,null) 或 屏幕中是否包含文字("常用功能" ,'node' ,null) 或 屏幕中是否包含文字("修改密码" ,'node' ,null) 或 屏幕中是否包含文字("待办工单" ,'node' ,null) 则 
                                                弹出提示("登录成功进入接单");
                                                退出循环;
                                        否则
//                                                //;
                                                弹出提示("登录失败重新登录,下一次循环");


                                        结束 如果
                                判断循环尾


                        结束 如果

                结束 如果        否则
                弹出提示("未找到模块");
                铃声提示();
                点击(159,2249,1);
                点击(138,2268,1);
                //防止接单界面出现白屏,后卡住;
                返回键();
                //登录异常判断;
                如果 屏幕中是否包含文字("登录超时" ,'node' ,null) 或 屏幕中是否包含文字("记住密码" ,'node' ,null) 或 屏幕中是否包含文字("您的登录状态已过期" ,'node' ,null) 或 屏幕中是否包含文字("获取验证码" ,'node' ,null) 则 
                        弹出提示("登录异常处理");
                        判断循环首 永真变量 = true
                                震动(长)();
                                铃声提示();
                                弹出提示("请重新登录");
                                关闭应用("com.chinatower.energymonitor");
                                返回键();
                                返回键();
                                返回键();
//                                任务键();
                                打开应用("com.chinatower.energymonitor");
                                弹出提示("正在输入密码");
                                //进入账号;
                                点击(230,714,1);
                                //删除账号;
                                点击(937,703,1);
                                输入文字(237,727,"guokai1");
                                //进入密码;
                                点击(318,929,1);
                                //删除密码;
                                点击(877,898,1);
                                输入文字(328,928,"82212991@Lbb520");
                                //同意协议;
                                点击(86,2307,1);
                                //点击登录;
                                点击(556,1379,1);
                                点击(792,903,1);
                                点击文字("获取验证码",'node',null,false);
                                随机延时(5000,5000);
                                验证码 = 网页访问("http://125.75.111.54:9002/api/sms/latest" ,'GET' ,header:{} ,data:{});
                                验证码 = 取文本中间("{验证码}","验证码:","");
                                弹出提示("成功获取验证码{验证码}");
                                弹出提示("成功获取验证码{验证码}");
                                弹出提示("成功获取验证码{验证码}");
                                弹出提示("成功获取验证码{验证码}");
                                输入文字(303,921,"{验证码}");
                                //正式登录;
                                点击(507,1248,1);
                                如果 屏幕中是否包含文字("设备汇总" ,'node' ,null) 或 屏幕中是否包含文字("常用功能" ,'node' ,null) 或 屏幕中是否包含文字("修改密码" ,'node' ,null) 或 屏幕中是否包含文字("待办工单" ,'node' ,null) 则 
                                        弹出提示("登录成功进入接单");
                                        退出循环;
                                否则
//                                        //;
                                        弹出提示("登录失败重新登录");


                                结束 如果
                        判断循环尾
                否则
                        弹出提示("未检测到登录异常,尝试接单");


                结束 如果

        结束 如果        随机延时(5000,5000);

判断循环尾

 

 

服务器端使用springboot,代码如下、

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>demo</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Spring Boot Starter Web 包含了 Spring MVC 和内嵌的 Tomcat -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Spring Boot Starter Data JPA 提供了对 Spring Data 和 JPA 的支持 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.persistence/persistence-api -->
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0</version>
        </dependency>

        <!-- H2 Database,一个内存数据库,用于快速开发和测试 -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

 

 

application.properties

# H2 ?????
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

# ????? H2 ???
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

server.port=9002

 

 

package com.example.demo;


import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
        import org.springframework.boot.autoconfigure.domain.EntityScan;

@SpringBootApplication
@EntityScan(basePackages = "com.example.demo") // 指定实体类的扫描路径
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

 

 

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/sms")
public class SmsController {

    @Autowired
    private SmsRepository smsRepository;

    @PostMapping
    public void receiveSms( SmsRequest smsRequest) {
        SmsEntity smsEntity = new SmsEntity();
        smsEntity.setPhoneNumber(smsRequest.getPhoneNumber());
        smsEntity.setMessage(smsRequest.getMessage());
        smsRepository.save(smsEntity);
    }

    @GetMapping("/latest")
    public SmsEntity getLatestSms() {
        // 从数据库中获取最新的一条短信
        return smsRepository.findFirstByOrderByIdDesc().orElse(null);
    }

    
    @GetMapping("/all")
    public List<SmsEntity> getAllSms() {
        // 从数据库中获取所有短信
        return smsRepository.findAll();
    }
}

 

 

package com.example.demo;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class SmsEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    private String phoneNumber;
    private String message;

    // getters and setters

}

 

 

package com.example.demo;

import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;

public interface SmsRepository extends JpaRepository<SmsEntity, Long> {
    Optional<SmsEntity> findFirstByOrderByIdDesc(); // 更新这里
}

 

 

package com.example.demo;

public class SmsRequest {

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getMessage() {
    }

    public void setMessage(String message) {
        this.message = message;
    }

    private String phoneNumber;
    private String message;

    // getters and setters
}

 

安卓转发短信的实现

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <!-- 宣告应用使用的硬件特性,这里声明了对电话功能的需求,但设置为非必需 -->
    <uses-feature
        android:name="android.hardware.telephony"
        android:required="false" />

    <!-- 宣告应用所需的权限 -->
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 注意:上面的 INTERNET 权限只需要声明一次 -->

    <application
        <!-- 定义应用的网络安全配置 -->
        android:networkSecurityConfig="@xml/network_security_config"
        <!-- 允许应用进行备份 -->
        android:allowBackup="true"
        <!-- 定义数据提取规则 -->
        android:dataExtractionRules="@xml/data_extraction_rules"
        <!-- 定义完整备份内容规则 -->
        android:fullBackupContent="@xml/backup_rules"
        <!-- 设置应用图标 -->
        android:icon="@mipmap/ic_launcher"
        <!-- 设置应用标签 -->
        android:label="@string/app_name"
        <!-- 设置圆形应用图标 -->
        android:roundIcon="@mipmap/ic_launcher_round"
        <!-- 设置应用支持从右到左的布局 -->
        android:supportsRtl="true"
        <!-- 设置应用主题 -->
        android:theme="@style/Theme.MyApplication"
        <!-- 定义目标 API 版本,这里设置为 31 -->
        tools:targetApi="31">

        <!-- 定义应用的主 Activity,会在启动时被调用 -->
        <activity
            android:name=".MainActivity"
            <!-- 定义 Activity 是否可以被其他应用组件访问 -->
            android:exported="true">
            <intent-filter>
                <!-- 定义 Activity 接收的主要动作 -->
                <action android:name="android.intent.action.MAIN" />

                <!-- 定义 Activity 接收的主要类别 -->
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- 定义短信接收器,用于接收短信 -->
        <receiver android:name=".SmsReceiver"
            <!-- 定义接收器是否可以被其他应用组件访问 -->
            android:exported="true">
            <intent-filter>
                <!-- 定义接收器接收的主要动作 -->
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>

        <!-- 定义后台服务,用于处理短信 -->
        <service android:name=".SmsService" />
    </application>

</manifest>

 

 

// 包名,这里表示该文件属于com.example.myapplication包
package com.example.myapplication;

// 导入必要的 Android 类
import android.content.Intent;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.Switch;
import androidx.appcompat.app.AppCompatActivity;

// MainActivity 类,继承自 AppCompatActivity 类
public class MainActivity extends AppCompatActivity {

    // 声明 Switch 类型的成员变量 smsSwitch
    private Switch smsSwitch;

    // 在 Activity 创建时调用的方法
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // 调用父类的 onCreate 方法
        super.onCreate(savedInstanceState);
        // 设置当前 Activity 使用的布局文件
        setContentView(R.layout.activity_main);

        // 通过布局文件中定义的 ID 获取 Switch 控件的实例
        smsSwitch = findViewById(R.id.smsSwitch);

        // 为 Switch 控件设置状态变更监听器
        smsSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            // 在 Switch 状态发生变化时调用的方法
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // 判断 Switch 的状态是否为选中
                if (isChecked) {
                    // 如果选中,启动 SmsService 服务
                    startService(new Intent(MainActivity.this, SmsService.class));
                } else {
                    // 如果未选中,停止 SmsService 服务
                    stopService(new Intent(MainActivity.this, SmsService.class));
                }
            }
        });
    }
}

 

 

package com.example.myapplication;

// SmsService.java

import android.app.Service;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.util.Log;

// SmsService.java
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.telephony.SmsMessage;
// SmsService.java
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.telephony.SmsMessage;

// SmsService.java
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.telephony.SmsMessage;

public class SmsService extends Service {

    private SmsReceiver smsReceiver;

    @Override
    public void onCreate() {
        super.onCreate();
        smsReceiver = new SmsReceiver();

        // 创建一个 IntentFilter 对象并添加接收的 action
        IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");

        // 注册广播接收器
        registerReceiver(smsReceiver, intentFilter);
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // 处理服务启动命令
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        // 在服务销毁时取消注册广播接收器
        unregisterReceiver(smsReceiver);
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

 

 

// 包名,这里表示该文件属于com.example.myapplication包
package com.example.myapplication;

// 导入必要的 Android 类
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import android.os.AsyncTask;

// SmsReceiver 类,继承自 BroadcastReceiver 类
public class SmsReceiver extends BroadcastReceiver {

    // 重写 BroadcastReceiver 的 onReceive 方法,用于接收短信广播
    @Override
    public void onReceive(Context context, Intent intent) {
        // 获取广播中的附加数据
        Bundle bundle = intent.getExtras();

        // 检查附加数据是否为空
        if (bundle != null) {
            // 获取短信数据数组
            Object[] pdus = (Object[]) bundle.get("pdus");

            // 检查短信数据数组是否为空
            if (pdus != null) {
                // 遍历短信数据数组
                for (Object pdu : pdus) {
                    // 将每个数据转换为 SmsMessage 对象
                    SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
                    // 获取短信发送者的号码
                    String sender = smsMessage.getDisplayOriginatingAddress();
                    // 获取短信内容
                    String message = smsMessage.getDisplayMessageBody();

                    // 检查短信内容是否包含 "铁塔" 字符串
                    if (message.contains("铁塔")) {
                        // 如果包含,则将短信信息传递给后台服务处理
                        sendSmsToServer(context, sender, message);
                    }
                }
            }
        }
    }

    // 将短信信息传递给后台服务处理的方法
    private void sendSmsToServer(Context context, String sender, String message) {
        // 创建异步任务对象,并执行异步任务
        new SendSmsTask(context).execute(sender, message);
    }

    // 异步任务类,用于在后台处理网络请求
    private static class SendSmsTask extends AsyncTask<String, Void, Void> {
        // 上下文对象
        private Context context;

        // 构造方法,用于初始化上下文对象
        SendSmsTask(Context context) {
            this.context = context;
        }

        // 在后台执行网络请求的方法
        @Override
        protected Void doInBackground(String... params) {
            try {
                // 构建要发送的数据
                Map<String, String> postData = new HashMap<>();
                postData.put("phoneNumber", params[0]);
                postData.put("message", params[1]);

                // 构建服务器地址
                URL url = new URL("http://125.75.111.54:9002/api/sms"); // 替换为你的服务器地址

                // 打开连接
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("POST");
                connection.setDoOutput(true);
                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

                // 将数据写入请求体
                OutputStream os = connection.getOutputStream();
                os.write(getPostDataString(postData).getBytes("UTF-8"));
                os.flush();
                os.close();

                // 获取服务器响应
                int responseCode = connection.getResponseCode();

                // 检查服务器响应状态
                if (responseCode == HttpURLConnection.HTTP_OK) {
                    // 服务器成功接收数据
                    publishProgress();  // 更新 UI
                } else {
                    // 服务器返回错误
                    publishProgress();  // 更新 UI
                }

            } catch (Exception e) {
                e.printStackTrace();
                publishProgress();  // 更新 UI
            }

            return null;
        }

        // 在 UI 线程中更新 UI,例如显示 Toast 提示用户
        @Override
        protected void onProgressUpdate(Void... values) {
            Toast.makeText(context, "短信内容发送成功", Toast.LENGTH_SHORT).show();
        }

        // 将 Map 中的数据转换为 POST 请求的数据格式
        private static String getPostDataString(Map<String, String> params) {
            StringBuilder result = new StringBuilder();
            boolean first = true;
            for (Map.Entry<String, String> entry : params.entrySet()) {
                if (first) {
                    first = false;
                } else {
                    result.append("&");
                }
                result.append(entry.getKey()).append("=").append(entry.getValue());
            }
            return result.toString();
        }
    }
}

 

 

AIOT

 

9:59 更新token
11.29 过期
1.30小时过期

1.预登录
POST /auth/checkPassword HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwMjYxODUsInVzZXJJZCI6MTE0MzYsImp0aSI6Ijg2YzcxODM0LTdjNWMtNDc4OC04OTFiLThlYmRjYTYxNmVmZiIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.Cs2eZbwRgAzLZyN_sCFT2TIEnW9GoYU9GqFxvSiL4Hvo-WVYYxfAIYUY_MWbPH3WnWesac2G3tlS4-pwoLwO6Aornx0jrnF1NlF2zLHd2_7ADIxo19D9-7jwpVnSQ2F8ckbq9_Yfbm0lPRBrrYSTCNXxb4fM858u93BC8XiLeJOrhfGSLi4g_FZ8uTCgsPy9EsHofB_3no6iUEQhdD_wTVPjymXclgrfGhEJZvCiRc9iyol-OKXpwRKZVVIwo2tMs1i3WPppV4ov5h-iywqpPtGGNSEXKa4Irc99lDSondwF1qZ0-Qkk_F0l7H4vamIPZTYSbhaWkxhKDxJyVc2gxA
Accept: application/json
Expires: 0
Pragma: no-cache
Cache-control: no-cache, no-store, must-revalidate
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Content-Type: application/json
Content-Length: 102
Host: energy-iot.chinatowercom.cn:18080
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: HWWAFSESID=ca6b373d7b927af047; HWWAFSESTIME=1695276865004

{"username":"guokai1","password":"Abc@2023","uuid":"5cf8e076ee904940bdf0153268c2ac46","loginType":"2"}

{
  "code": 200,
  "msg": "15709482489",
  "time": 1700731012629
}

2.获取验证码

2.登录
POST /auth/login HTTP/1.1
Accept: application/json
Expires: 0
Pragma: no-cache
Cache-control: no-cache, no-store, must-revalidate
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Content-Type: application/json
Content-Length: 658
Host: energy-iot.chinatowercom.cn:18080
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: HWWAFSESID=ca6b373d7b927af047; HWWAFSESTIME=1695276865004

{"username":"F0lffGiMJIKHXg6KRzzaXn8F58cYMPpfAnLQh+OrRomgNGhAqXrEdF5Cz353K3pPZrjr0haE06DjR7X2DNQj+JsmGYRwPkAuTezlG37U2WoC93ZgWEtZEJ68yMObMO6xKTVYYAZj3R2flBS6+AEfxDQRg8IAMqXCh/P0+0AYqjM=","password":"cqagTxLSDoXqS+h+rY9wtVA2CBthbldA2ADSfYyvKL2WhhpFSAgmf05KTbd27noSMNgSC94+Yn5uEvqx5qYEo9yvF68qnKtTgw6Yv7uW2ARqS6zidOxiFHFocZ68hgPCGSxWcLnP5NLLjPCIzapDQwcaEZLwk+iA/+Cb/mE7ppo=","code":"173761","phoneNumber":"15709482489","uuid":"dbffa412f1e946f59a676e16a0471ad9","loginType":"2","appId":"R1MNhPyxt4+b/yYzDXdc7q/JpUz8Mt/xW/7WnkUdPXTyh3Ai0Tn4ST8d7rQkXaVkSvGvvV+rRnl8mRMrFagVBfLjvE3aEW+q8S/pKPlVBsWl0QNDShViqKk+M4ylfydwchLF4Kv0lCICSMQ5l9hu9TwKYeCYE4C9tdgTqfbjZjQ="}

{
  "code": 200,
  "msg": "登录成功!",
  "time": 1700790509652,
  "data": {
    "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwODY1MDksInVzZXJJZCI6MTE0MzYsImp0aSI6ImMyNmExMjM0LWJkNGYtNDI2NS05ODU4LWU5NDA5OTQzYjI4ZCIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.ZW72sbWZrZt-don7QPD_D4PJOTc01sTJgmc_5VFDWgVhk_s6LIy7M3vDQj4SvOqAnxHe6B7sPwXdiSNaPw7y8QAU9IuzAdji8KTTrNSSjbnBi-lnRy244Or6C3rBtx7k-HG5s_QBbAYGDPg6PiXsW-itfytKPMqeTAssCJYAEjWCkyrmXfunLvNaYUtEBiXbaU9iQllPS-ZUl6RQYorDSm0MoJDx9cTC_UDrVBP3d2CFHggz3zMDVzKez7jPv4XvcE7zBt45DtxpwgGqXBn5PCl3JBXxpMjsE9IVuSwV_YYbtK-BsLwdKY7SAGXq5jEkf0OnCzmpkP_PSgTuiXHimw",
    "token_type": "bearer",
    "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJhdGkiOiJjMjZhMTIzNC1iZDRmLTQyNjUtOTg1OC1lOTQwOTk0M2IyOGQiLCJleHAiOjE3MDMzODI1MDksInVzZXJJZCI6MTE0MzYsImp0aSI6IjE1OTA5MDc4LTVkY2UtNGE3My1hMGUyLTBmMTVmYmZiNzM3MSIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.qMYgP85dj-wefVYNkHkE6CEHz-tACStXTLx4Zp1gjswoBiF0J8HnG0Nv-zdEBGgeHU0bROaKYS7Fd97yuhzsNW6QKy95mwtqNKhH7kilNSD9e66eitXnxW1FKtYBLGSncd8uzGsXkBY5ogsFPLqgcqnOBP8Gkic_WZKnQRM21dfFkzd6lUrRJKai6eHH4jtAlylNg-xDrHCPldH-1BPstptSuDdG4c_NLgY_5sXN3yayOQdES5F0A59nEJ3I2ijH90bR94dcuuJLA5OwMD0K-br4EFNgtJfxlKOPFQ1IvcXqMJSY61FQhGpecLqXjrATiKLMMJVMaUzaqhC4Da-QKA",
    "expires_in": 1295999,
    "scope": "all",
    "user_name": "app_manage|guokai1",
    "userId": 11436,
    "jti": "c26a1234-bd4f-4265-9858-e9409943b28d"
  }
}

获取个人信息
GET /admin/base/getInfo HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwMjcwMjIsInVzZXJJZCI6MTE0MzYsImp0aSI6IjcwOTljYjk3LWJjNDktNDQ3YS05MTYyLWFiZDc4ZWZiYzk4ZCIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.Khg3yCzUzFmzRZ8RTImZMlKnSAslgA8RKN-XaHnA9Obvlz0t1dlmcTJ5ZOif4vpJ6dObuGHsvKtGVIyzxxFOVW5H77_j42QBJn2vfIM547fwGB59mz4TWt0cyWKMhVHNtLyK7aTkh1YX7ifS407NKaH13awFygpYKmOEF5O6FHEM3IKsvG3CAODo9AnCgRG1KBypfjWP650AKURDtIjrxeRcUXq54Z0C3rShvk9TDEcxW8x5nOO9Y8ppjVXVi6BmQZUOBIF6pfws6gTLXYHT-C_vZwykD4JJmod5yNX6_G745A4IMnj_oxeKvmIEV7LEn2VsZQWuklrQ03NkzEDHww
Accept: application/json,text/plain
Expires: 0
Pragma: no-cache
Cache-control: no-cache, no-store, must-revalidate
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Host: energy-iot.chinatowercom.cn:18080
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: HWWAFSESID=ca6b373d7b927af047; HWWAFSESTIME=1695276865004

{
  "msg": "操作成功",
  "childDeptIdList": [
    "620500",
    "620502",
    "620503",
    "620521",
    "620522",
    "620523",
    "620524",
    "620525"
  ],
  "code": 200,
  "userDeptTreeList": [
    {
      "children": [
        {
          "id": "620502",
          "label": "秦州区",
          "pid": "620500"
        },
        {
          "id": "620503",
          "label": "麦积区",
          "pid": "620500"
        },
        {
          "id": "620521",
          "label": "清水县",
          "pid": "620500"
        },
        {
          "id": "620522",
          "label": "秦安县",
          "pid": "620500"
        },
        {
          "id": "620523",
          "label": "甘谷县",
          "pid": "620500"
        },
        {
          "id": "620524",
          "label": "武山县",
          "pid": "620500"
        },
        {
          "id": "620525",
          "label": "张家川回族自治县",
          "pid": "620500"
        }
      ],
      "id": "620500",
      "label": "天水市分公司",
      "pid": "620000"
    }
  ],
  "permissions": [
    "app:device:info",
    "app:workOrder:orderReceipt",
    "export:export:list",
    "app:alarm:sendOrder",
    "app:home:data",
    "resource:station:networkAccess",
    "resource:device:changeStatus",
    "app:device:list",
    "inspection:task:submit",
    "app:alarm:detail",
    "app:version:newest",
    "resource:station:deviceBind",
    "resource:station:detail",
    "inspection:task:complete",
    "app:notice:list",
    "resource:device:list",
    "app:station:list",
    "workorder:workOrder:orderReceipt",
    "export:export:status",
    "app:reportWorkOrder:list",
    "resource:pointMonitor:list",
    "app:tank:list",
    "export:export:save",
    "inspection:task:feedback",
    "app:workOrder:orderReceive",
    "resource:deviceLog:query",
    "app:station:info",
    "app:home:countOrderNum",
    "app:monitor:data",
    "export:export:cancel",
    "operationMonitor:workorder:workOrderInfo",
    "workorder:workOrder:orderReceive",
    "app:workOrder:page",
    "workOrder:notice:save",
    "export:export:download",
    "resource:deviceLog:list",
    "system:download:show",
    "inspection:task:start",
    "resource:device:devInfo",
    "app:file:upload",
    "inspection:obj:detail",
    "app:workOrder:detail"
  ],
  "roles": [
    "M_MAINTAIN"
  ],
  "deptInfo": {
    "ancestors": "000000,100000,620000,620500",
    "children": [],
    "deptId": "620500",
    "deptLevel": "4",
    "deptName": "天水市分公司",
    "parentId": "620000",
    "status": "0"
  },
  "user": {
    "admin": false,
    "clientId": [],
    "createBy": "zhoutianwei",
    "createTime": "2023-09-20 15:45:56",
    "delFlag": "0",
    "dept": {
      "$ref": "$.deptInfo"
    },
    "deptId": "620500",
    "email": "1870194664@qq.com",
    "firstLogin": true,
    "loginDate": "2023-11-23 17:17:02",
    "loginFailNum": 0,
    "pageNum": 0,
    "pageSize": 0,
    "personAffiliation": "甘通服",
    "personAffiliationName": "甘通服",
    "phonenumber": "15709482489",
    "realName": "郭凯",
    "roles": [
      {
        "admin": false,
        "businessType": "0,1,2,4,7,6,8",
        "dataScope": "4",
        "flag": false,
        "roleId": 998921,
        "roleKey": "M_MAINTAIN",
        "roleName": "代维",
        "roleSort": "10",
        "status": "0"
      }
    ],
    "sex": "0",
    "status": "0",
    "updateTime": "2023-11-23 17:17:02",
    "userId": 11436,
    "userName": "guokai1",
    "userType": "M"
  }
}

获取告警
GET /app/workBench/home HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwMjcwMjIsInVzZXJJZCI6MTE0MzYsImp0aSI6IjcwOTljYjk3LWJjNDktNDQ3YS05MTYyLWFiZDc4ZWZiYzk4ZCIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.Khg3yCzUzFmzRZ8RTImZMlKnSAslgA8RKN-XaHnA9Obvlz0t1dlmcTJ5ZOif4vpJ6dObuGHsvKtGVIyzxxFOVW5H77_j42QBJn2vfIM547fwGB59mz4TWt0cyWKMhVHNtLyK7aTkh1YX7ifS407NKaH13awFygpYKmOEF5O6FHEM3IKsvG3CAODo9AnCgRG1KBypfjWP650AKURDtIjrxeRcUXq54Z0C3rShvk9TDEcxW8x5nOO9Y8ppjVXVi6BmQZUOBIF6pfws6gTLXYHT-C_vZwykD4JJmod5yNX6_G745A4IMnj_oxeKvmIEV7LEn2VsZQWuklrQ03NkzEDHww
Accept: application/json,text/plain
Expires: 0
Pragma: no-cache
Cache-control: no-cache, no-store, must-revalidate
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Host: energy-iot.chinatowercom.cn:18080
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: HWWAFSESID=ca6b373d7b927af047; HWWAFSESTIME=1695276865004

{
  "code": 200,
  "msg": "请求成功",
  "time": 1700731025857,
  "data": {
    "disposeOrderNum": {
      "urgencyOrderNum": 0,
      "orderNum": 0
    },
    "reportOrderNum": {
      "toDoCompletedNum": 0,
      "completedNum": 0
    },
    "archiveOrderNum": {
      "urgencyOrderNum": 346,
      "orderNum": 352
    },
    "repairOrderNum": {
      "urgencyOrderNum": 0,
      "orderNum": 0
    },
    "inspectionTask": {
      "inspectionTaskNum": 38
    }
  }
}

获取订单数
POST /app/workOrder/countOrderNum HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwMjcwMjIsInVzZXJJZCI6MTE0MzYsImp0aSI6IjcwOTljYjk3LWJjNDktNDQ3YS05MTYyLWFiZDc4ZWZiYzk4ZCIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.Khg3yCzUzFmzRZ8RTImZMlKnSAslgA8RKN-XaHnA9Obvlz0t1dlmcTJ5ZOif4vpJ6dObuGHsvKtGVIyzxxFOVW5H77_j42QBJn2vfIM547fwGB59mz4TWt0cyWKMhVHNtLyK7aTkh1YX7ifS407NKaH13awFygpYKmOEF5O6FHEM3IKsvG3CAODo9AnCgRG1KBypfjWP650AKURDtIjrxeRcUXq54Z0C3rShvk9TDEcxW8x5nOO9Y8ppjVXVi6BmQZUOBIF6pfws6gTLXYHT-C_vZwykD4JJmod5yNX6_G745A4IMnj_oxeKvmIEV7LEn2VsZQWuklrQ03NkzEDHww
Accept: application/json
Expires: 0
Pragma: no-cache
Cache-control: no-cache, no-store, must-revalidate
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Content-Type: application/json
Content-Length: 22
Host: energy-iot.chinatowercom.cn:18080
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: HWWAFSESID=ca6b373d7b927af047; HWWAFSESTIME=1695276865004

{"workOrderStatus":""}

{
  "code": 200,
  "msg": "请求成功",
  "time": 1700731057094,
  "data": {
    "workOrderNum": {
      "urgencyOrderNum": 0,
      "orderNum": 0
    }
  }
}

获取订单列表
POST /app/workOrder/page HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwMzI0MjcsInVzZXJJZCI6MTE0MzYsImp0aSI6ImExZjRjYjRmLTRiOTgtNGZkOC1hN2M4LTllZTgyMDYwOTYzZiIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.PJut2eWFykKB672wnerdfTojKwm5HAf8W511EJtk56SsTCNhHB3JDJtt4R55QZmfGzJJ5meec5PJ94YTgSF8UoX43Yua1nWchGZpz4G2io5Ikr-tnObTRzNj66HyoJDrKaypfFoMvu2PeiNrvVr6UHW6NZpwl6CXrPSZN-ZAw4q4qDxHYd3yUsNeQ518ZTg1_ThVh5QV-thVP46W_AL05bLL2AZfc9ZaNDmYlzuGi7vzPqT_6qJDn7ToNTwqzDJ5bYlnt5qNrhuEUUNVeSE8xUHhC0L9_DwgpWFUIEcrX8rfWplvn4zay9T_wReiEJsE9jDbiPkKOSW6JH4VhPbYKg
Accept: application/json
Expires: 0
Pragma: no-cache
Cache-control: no-cache, no-store, must-revalidate
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Content-Type: application/json
Content-Length: 54
Host: energy-iot.chinatowercom.cn:18080
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: HWWAFSESID=ca6b373d7b927af047; HWWAFSESTIME=1695276865004

{"workOrderStatus":"ACCEPT","pageSize":10,"pageNum":1}

刷新token
POST /auth/refreshToken HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwNzcwMTUsInVzZXJJZCI6MTE0MzYsImp0aSI6IjEwNDlhMTViLTk2NmEtNGJlNi04NmExLTJlMzc5MGMxMzNlZCIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.ZG9v4VoBqEGI3Kr5Bl2t_IpAGl-1n6msMj6bO479xzjyN6_vVjgQ-_9BXC_oIOHIGAkVmkueKzOP-s3RRGIzMbUPfd7wSBkFW8IDa0t3z0VKtfwMI8NXjqki8SAmst463EWSSHI3tmFeavpkS5DLM9W4nlYxH9osEp1BbH8CdKokRtPyZvN-t1jld27AjGpkKB4XvAoj7ME9DvzuNkFvhP28Ytoe3gWNbOlpLNZqfMZBu6GK9l-4gXYvXHrXXLN85mo6gJjB8n7ZaBCffg7b_iCM9OJ_7SsXd2Pb_apjVSYTWkHTr0rW0snwuMYP6X9UnQiZN0RaZZCtonNAuA2y4Q
Accept: application/json
Expires: 0
Pragma: no-cache
Cache-control: no-cache, no-store, must-revalidate
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Content-Type: application/json
Content-Length: 1475
Host: energy-iot.chinatowercom.cn:18080
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: HWWAFSESID=ca6b373d7b927af047; HWWAFSESTIME=1695276865004

{"appId":"oSUJ/blwj5N41au/lklHhrdktgURQUeJ53X+g7P6svOYuK394XhDMwNWS6WUMiI1RP6OlgUkgjr33TJzSNCfnCkY5+0tWjLov8GMhUXHciPMWlpTTvvVuHpJjqOdXaNJu65deIf0EHXMcFm1Ped+Ega0EJkiMFPbJx5ui6VJzNo=","refreshToken":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJhdGkiOiIxMDQ5YTE1Yi05NjZhLTRiZTYtODZhMS0yZTM3OTBjMTMzZWQiLCJleHAiOjE3MDMzNzMwMTUsInVzZXJJZCI6MTE0MzYsImp0aSI6IjBmMDVmYjJlLWU1ODUtNDc1ZS05NTBiLWE2ZjNkZjUzZmIxMSIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.ax6jSEYUelBwZnOlGl7g383HgDpMos_yJfqxLxseC6_8zbiA8APVHFlRGl9IQ5fbKdcc9TSxpdjhB0V6dPWF-XjAwUT8A1W9AcDyz5GKEn4GozrkWLy1pIYclCNcdL9TGpggvvFREYwKHGvVK8SXepi-8JXiv13bwpASl8hoOJxMNHUubA_1JzoXHzBX_0OWx8tnfZWpWRc1aIEwH4wGoF93ZXfEwYqLFgnBvkUrWjJ_kPKjAUEW3cwCPVar8EJA-3ljtTnCFbzga4FkX0mS2_NAgFgWu8GSDskqsdgsOBdE2PXhBiazJXVcKRYVOA-FUYfH5tK0qwAkOCsPI-mclg","accessToken":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwNzcwMTUsInVzZXJJZCI6MTE0MzYsImp0aSI6IjEwNDlhMTViLTk2NmEtNGJlNi04NmExLTJlMzc5MGMxMzNlZCIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.ZG9v4VoBqEGI3Kr5Bl2t_IpAGl-1n6msMj6bO479xzjyN6_vVjgQ-_9BXC_oIOHIGAkVmkueKzOP-s3RRGIzMbUPfd7wSBkFW8IDa0t3z0VKtfwMI8NXjqki8SAmst463EWSSHI3tmFeavpkS5DLM9W4nlYxH9osEp1BbH8CdKokRtPyZvN-t1jld27AjGpkKB4XvAoj7ME9DvzuNkFvhP28Ytoe3gWNbOlpLNZqfMZBu6GK9l-4gXYvXHrXXLN85mo6gJjB8n7ZaBCffg7b_iCM9OJ_7SsXd2Pb_apjVSYTWkHTr0rW0snwuMYP6X9UnQiZN0RaZZCtonNAuA2y4Q"}

{
  "code": 200,
  "msg": "刷新token成功!",
  "time": 1700786722975,
  "data": {
    "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwODI3MjIsInVzZXJJZCI6MTE0MzYsImp0aSI6IjU2M2M2ODc2LTFkMmQtNDMxMS1iMjgxLWRmYzkyYmM4ODZhZiIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.FyY0pPiz3_GOwqD82ufgt5US4jtX1nIXKtw-yIk2npN0lvtVuVHKoo0RB9sPxOrRMpgXD8NM5vN1XULV01NpB484_Le8VL30wOZZ_bgwHsPYJF5Gh8ruYmtWob4rrBJ997Ik_cLeXuazI641MBGMdLKiAut-o3cnPZiBzZXqML14GdqgB89nmr_0Fru2qty8CTjDcdCO6cda_oOYPo5c4GkumxaYW4Lb9sBafsCqsS5G6yBQVzqCuA3PLqlXCI_tgLSssA8Cl3Mp9NpwgmSxeMoAibZy2WToABuEjd0tO0mpiSnA3Iz1DpAgw_OcWYDt1S8A5TOBldAfnm5bbQEwdw",
    "token_type": "bearer",
    "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJhdGkiOiI1NjNjNjg3Ni0xZDJkLTQzMTEtYjI4MS1kZmM5MmJjODg2YWYiLCJleHAiOjE3MDMzNzMwMTUsInVzZXJJZCI6MTE0MzYsImp0aSI6IjBmMDVmYjJlLWU1ODUtNDc1ZS05NTBiLWE2ZjNkZjUzZmIxMSIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.H0S13hpj6ocQV3WS_dVf9Wi_V43rJRpUsa1nhhli2LoUFuTA3rMaL6pxCb-vWEP-iOcpRtTphiYrCLCuvLE7X7bCe2xvPVVwIiB7UTW1TXgLQRWLGaZDRZNSygKd0io7rcvWtoqv2xlbOgpHlWaq1Z_VUSdt_xp2sbF3hhmXpb13wCEeGGwlAIFDTdHollvbES9OrwTNc17v7St-FDTsk0xzg80V5d-WjfSIg_B8w8KngAmlSVQ3EWBJ0SoB27BuQGH7m05IG_ACo42-gmdrPJXYPUELwYcRZm7e7sAeKVGbEWEN2uAS4d9yIKIxK4B2pi85LfzQbMBnYOLN6ukxEQ",
    "expires_in": 1295999,
    "scope": "all",
    "user_name": "app_manage|guokai1",
    "userId": 11436,
    "jti": "563c6876-1d2d-4311-b281-dfc92bc886af"
  }
}


获取桶配置
POST /admin/system/config/base/selectObsByKeys HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwMjcwMjIsInVzZXJJZCI6MTE0MzYsImp0aSI6IjcwOTljYjk3LWJjNDktNDQ3YS05MTYyLWFiZDc4ZWZiYzk4ZCIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.Khg3yCzUzFmzRZ8RTImZMlKnSAslgA8RKN-XaHnA9Obvlz0t1dlmcTJ5ZOif4vpJ6dObuGHsvKtGVIyzxxFOVW5H77_j42QBJn2vfIM547fwGB59mz4TWt0cyWKMhVHNtLyK7aTkh1YX7ifS407NKaH13awFygpYKmOEF5O6FHEM3IKsvG3CAODo9AnCgRG1KBypfjWP650AKURDtIjrxeRcUXq54Z0C3rShvk9TDEcxW8x5nOO9Y8ppjVXVi6BmQZUOBIF6pfws6gTLXYHT-C_vZwykD4JJmod5yNX6_G745A4IMnj_oxeKvmIEV7LEn2VsZQWuklrQ03NkzEDHww
Accept: application/json
Expires: 0
Pragma: no-cache
Cache-control: no-cache, no-store, must-revalidate
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Content-Type: application/json
Content-Length: 22
Host: energy-iot.chinatowercom.cn:18080
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: HWWAFSESID=ca6b373d7b927af047; HWWAFSESTIME=1695276865004

{"configKey":"obsKey"}

{
  "code": 200,
  "data": {
    "endPoint": "obs.cn-north-4.myhuaweicloud.com",
    "sk": "CBntLlYhpEwrnxkTXoLigkJEaQIqBLdyeVZYYo2vJfsCzVgk2jZk2jF9dY8qAILm",
    "ak": "CwhMi/CtoliDRXzR/3FdBGQUSEghLoQD+nJi2STb49U\u003d",
    "timesTamp": "1700731023174"
  },
  "msg": "请求成功",
  "time": 1700731023174
} 





POST /app/version/newest HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6ImFwcF9tYW5hZ2V8Z3Vva2FpMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3MDIwMjcwMjIsInVzZXJJZCI6MTE0MzYsImp0aSI6IjcwOTljYjk3LWJjNDktNDQ3YS05MTYyLWFiZDc4ZWZiYzk4ZCIsImNsaWVudF9pZCI6ImFwcF9tYW5hZ2UifQ.Khg3yCzUzFmzRZ8RTImZMlKnSAslgA8RKN-XaHnA9Obvlz0t1dlmcTJ5ZOif4vpJ6dObuGHsvKtGVIyzxxFOVW5H77_j42QBJn2vfIM547fwGB59mz4TWt0cyWKMhVHNtLyK7aTkh1YX7ifS407NKaH13awFygpYKmOEF5O6FHEM3IKsvG3CAODo9AnCgRG1KBypfjWP650AKURDtIjrxeRcUXq54Z0C3rShvk9TDEcxW8x5nOO9Y8ppjVXVi6BmQZUOBIF6pfws6gTLXYHT-C_vZwykD4JJmod5yNX6_G745A4IMnj_oxeKvmIEV7LEn2VsZQWuklrQ03NkzEDHww
Accept: application/json
Expires: 0
Pragma: no-cache
Cache-control: no-cache, no-store, must-revalidate
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Content-Type: application/json
Content-Length: 29
Host: energy-iot.chinatowercom.cn:18080
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: HWWAFSESID=ca6b373d7b927af047; HWWAFSESTIME=1695276865004

{"appCode":"monitor_Android"}

{
  "code": 200,
  "msg": "请求成功",
  "time": 1700731023565,
  "data": {
    "appCode": "安卓",
    "appName": "监控APP",
    "appVersion": "1.7.0",
    "fileId": "c1ec80ef39384b1d8c71b7ef060c55a9",
    "isForceUpgrade": "是",
    "upgradeUrl": "https://sc-aiot-obs.obs.cn-north-4.myhuaweicloud.com:443/download/02afccafb8e5857fa9134e9be05e62bb/907a60522cfd4e40c3f7b1de38e34a11/1e370302bfb1911edce5ff5fd59073e5e85c1200d3bf109347455c02e85c00b5/sc1.7.0.apk"
  }
}

 

 

网管流量

网站使用了华为云、云waf和elb
Host: jywgappthw.chinatowercom.cn:9000
authorization: Bearer ac72443b-493e-400b-8662-5d33c6b5993b(用户身份验证id,每登录一次变一次)
 "app": "com.chinatower.energymonitor",
通过解包我们知道公钥,这里我们只有公钥没有私钥,使用jsencry第三方组件,加密后的结果一致变化,也是难点,但是一直使用就密码也没有问题
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCub8oxsFOYDr+5g6g3YaJviU/19MAwM4zci3xcdPunIMoVkUm9PwDH6w0GqQ7+Qhw07A6vsv6kY6poWTTumF2+boWVDCsrkxrk6fcrrX1eHMWmdEsi89xV75NKmFkTHecETVV5/dNS2vy8HGPch9Vn4xr8uUn1MLe6ybCoogrDKQIDAQAB
未正常登录状态
{
    "error": "access_denied",
    "error_description": "Access is denied"
}
token超时原因有过期,别人登陆
 
登出
GET /auth/token/logout

预登录获取token(如果没有退出登录,一直是这个token,与密码加密方式无关,如果在登录状态下发这个包会导致登录失效)
POST /auth/oauth/token?grant_type=pwd&code=undefined
Authorization: Basic YXBwOjEyMzQ1Ng==
user-agent: Mozilla/51.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Host: jywgappthw.chinatowercom.cn:9000

username=IMuF8VL6cJFviGP/2RzaGSEDrd//lW+2nlaUtx3ogkXAO59RLDj2KXQgUoFuyVWPMDBHZpOtOlN6ymj5nmnTKVO17lgi2Q6hg23Bg51qS8gQ8E3nUv98oGbL5jvLpbXUAxE6fDvHAstBhgmkkAhBdiwI7zmisd2AvodRJ2U19Hs=
&
password=GllrJp0QU7iPNHAOm3uJRnkFAK+4+TNeyoUULDcy2PTQ/AEhUlAVfE+vQ7U5Iv93a23NHUCJBrLkheormhpQVhNapiJfQYypifT1iHxP8Ke5fWIkY6Sr0hIgVRXIbx3ZMHGkVCVkq51P4II/WCpbGcBz0+6PXLZp5BaZb7G729c=

 

 

{
"access_token": "5968289b-d901-433b-989a-421b5dea8f48",
"token_type": "bearer",
"refresh_token": "56dd151b-37b9-4d24-ba25-a6944ed4fef5",
"expires_in": 172725,  //默认初始化值是172799,在第一次登陆时获取,如果不退出账号或刷新就一直减少
"scope": "all",
"usertype": "I",
"user_id": "91c7750eadc144948ba558fc367c9c8d",
"unit_id": "0100070",
"username": "guokai1"
}




刷新token逻辑(所谓刷新就是更新access_token和超时时间,更新后还可以在使用不用重新登录,使用新的token即可)
https://jywgappthw.chinatowercom.cn:9000/auth/oauth/token?grant_type=refresh_token&code=undefined&refresh_token=dffcb059-0ec0-476a-b7ab-c571262d7a1c
Authorization: Basic YXBwOjEyMzQ1Ng==

{
"access_token": "5968289b-d901-433b-989a-421b5dea8f48",
"token_type": "bearer",
"refresh_token": "56dd151b-37b9-4d24-ba25-a6944ed4fef5",
"expires_in": 172799,
"scope": "all",
"usertype": "I",
"user_id": "91c7750eadc144948ba558fc367c9c8d",
"unit_id": "0100070",
"username": "guokai1"
}


获取手机号
GET /auth/sms/getPhoneNum HTTP/1.1
authorization: Bearer 8758805f-cf24-4e43-ad8c-a661e76c206f
accept: application/json,text/plain
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Host: jywgappthw.chinatowercom.cn:9000
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: HWWAFSESTIME=1700640428416; HWWAFSESID=c73cd769587199306f

发送短信验证码(依据用户验证id)

GET /auth/sms/sendCode HTTP/1.1
authorization: Bearer c142abb9-a04e-49c9-9399-01f0a49d5edd
user-agent: Mozilla/5.0 (Linux; Android 11; 2112123AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)
Host: jywgappthw.chinatowercom.cn:9000application/x-www-form-urlencoded;charset=UTF-8
{
    "code": 200,
    "msg": null,
    "data": "15709482489",
    "success": true
}



登录
POST /auth/oauth/token?grant_type=sms
Authorization: Basic YXBwOjEyMzQ1Ng==
username=IMuF8VL6cJFviGP/2RzaGSEDrd//lW+2nlaUtx3ogkXAO59RLDj2KXQgUoFuyVWPMDBHZpOtOlN6ymj5nmnTKVO17lgi2Q6hg23Bg51qS8gQ8E3nUv98oGbL5jvLpbXUAxE6fDvHAstBhgmkkAhBdiwI7zmisd2AvodRJ2U19Hs=
&
password=GllrJp0QU7iPNHAOm3uJRnkFAK+4+TNeyoUULDcy2PTQ/AEhUlAVfE+vQ7U5Iv93a23NHUCJBrLkheormhpQVhNapiJfQYypifT1iHxP8Ke5fWIkY6Sr0hIgVRXIbx3ZMHGkVCVkq51P4II/WCpbGcBz0+6PXLZp5BaZb7G729c=
smscode=
scope=all

{
"access_token": "5968289b-d901-433b-989a-421b5dea8f48",
"token_type": "bearer",
"refresh_token": "56dd151b-37b9-4d24-ba25-a6944ed4fef5",
"expires_in": 171426,
"scope": "all",
"usertype": "I",
"user_id": "91c7750eadc144948ba558fc367c9c8d",
"unit_id": "0100070",
"username": "guokai1"
}



修改密码
POST /user/user/modifyPassword
{"oldPwd":"qKdyRXMgMKlScLF9qLbppnpvgZJxck9380nsIGsawoY+mX6rbQoFV966EqRC0BatXc9T4ckoZOb7VT+2rk98RJp8oNmtynIfXLeB/0lg6MlK4co+E99buBxCl6H1bD2ZKs3tuB+qexFsMh0WZ441F3l4XWZjkpbXfKuHAIx/FtE=","newPwd":"MJnpCi01bVoMdrdQHYdcV0FklpJHe326a1SK0rIHTCzfNSeyxUJFyvQ+NaVX0x/F0zm02QBK5CynT6nzjOp3q6uz3fFi8YYpKu3487cDzb5tOXzDjvXRYZZd/rJO5tMuUukzW7/LXB7lMLCYsB2Y5afFe2qYUA7pkmcZMGk5xtE="}

获取版本
GET /auth/version/getVersionMsg?appFlag=android
{"code":200,"msg":null,"data":{"appVersion":"1.0.9","appIsUpdate":"Y","appUrl":"https://sc-nyzywg-obs.obs.cn-north-4.myhuaweicloud.com:443/appVerison/2023-07-24/1H647A8S800038012E0A00001A7947B0.apk","appIsInform":"Y","appInfo":"版本1.0.9","appAccessUrl":"https://sc-nyzywg-obs.obs.cn-north-4.myhuaweicloud.com:443/appVersion/uploadAppForNewEnv.html"},"success":true}
{
    "code": 200,
    "msg": null,
    "data": {
        "appVersion": "1.0.10",
        "appIsUpdate": "Y",
        "appUrl": "https://sc-nyzywg-obs.obs.cn-north-4.myhuaweicloud.com:443/appVerison/2023-10-24/1HDEN67P300235012E0A00008BBB124E.apk",
        "appIsInform": "Y",
        "appInfo": "请更新至最新版本!",
        "appAccessUrl": "https://sc-nyzywg-obs.obs.cn-north-4.myhuaweicloud.com:443/appVersion/uploadAppForNewEnv.html"
    },
    "success": true
}


获取图片验证码(因为后台是若以,获取了但是没有使用)
GET /code

获取用户(在登录后发送用于展示)
GET /user/user/getCurrentUser HTTP/1.1

{
    "code": 200,
    "msg": null,
    "data": {
        "userid": "91c7750eadc144948ba558fc367c9c8d",
        "username": "guokai1",
        "roleId": "0100070",
        "usertype": "I",
        "orgid": "0100070",
        "orgname": "天水分公司",
        "mobilephone": "15709482489",
        "officephone": null,
        "email": null,
        "leaderid": null,
        "leadername": null
    },
    "success": true
}






查询订单列表
POST /workorder/bill/getBillList/
accept: application/json
{"userId":"91c7750eadc144948ba558fc367c9c8d","roleId":"0100070","billType":"REVERT","pageNumber":1,"pageSize":10,"billStatus":"","areaId":"","businessType":"3","beginTimeType":"","cityId":"","provId":"","stationCode":"","stationName":"","deviceName":"","deviceCode":"","billSn":""}

{"userId":"91c7750eadc144948ba558fc367c9c8d","roleId":"0100070","billType":"ACCEPT","pageNumber":1,"pageSize":10,"billStatus":"","areaId":"","businessType":"","beginTimeType":"","cityId":"","provId":"","stationCode":"","stationName":"","deviceName":"","deviceCode":"","billSn":""}

{"code":200,"msg":"查询成功!","data":{"total":-1,"list":[{"billId":"24230592","billSn":"FS-0098360-001-20231122-068541","taskid":null,"dispatchTime":"2023-11-22 16:18:58","isTemperature":null,"faultType":"DEVICE_ALARM","issign":null,"stationName":null,"billTitle":"5柜门充电电源告警:交流输入欠压","business_type":null,"businessType":"换电","regionId":"0108750","createTime":"2023-11-22 16:18:58","createInfo":null,"billStatus":"ACCEPT","billIsOverTime":"N","stationId":null,"revertTime":null,"alarmActiveCount":"1","faultsyslevel":"2","handlerTime":"建单时间:2023-11-22 16:18:58","replytime":null},{"billId":"24230663","billSn":"FS-0098360-001-20231122-068601","taskid":null,"dispatchTime":"2023-11-22 16:30:04","isTemperature":null,"faultType":"DEVICE_ALARM","issign":null,"stationName":null,"billTitle":"开多仓告警","business_type":null,"businessType":"换电","regionId":"0108750","createTime":"2023-11-22 16:30:04","createInfo":null,"billStatus":"ACCEPT","billIsOverTime":"N","stationId":null,"revertTime":null,"alarmActiveCount":"1","faultsyslevel":"2","handlerTime":"建单时间:2023-11-22 16:30:04","replytime":null}],"pageNum":1,"pageSize":10,"size":2,"startRow":1,"endRow":2,"pages":1,"prePage":0,"nextPage":0,"isFirstPage":true,"isLastPage":true,"hasPreviousPage":false,"hasNextPage":false,"navigatePages":8,"navigatepageNums":[1],"navigateFirstPage":1,"navigateLastPage":1,"firstPage":1,"lastPage":1},"success":true}
查询历史
POST /workorder/bill/getBillList/
{"code":200,"msg":"查询成功!","data":{"total":-1,"list":[{"billId":"7645202","billSn":"FS-62-001-20210427-011697","taskid":null,"dispatchTime":"2021-04-27 16:36:00","isTemperature":null,"faultType":"OTHER","issign":null,"stationName":null,"billTitle":"电池故障","business_type":null,"businessType":"综合用电","regionId":"0108749","createTime":"2021-04-27 16:36:00","createInfo":null,"billStatus":"ARCHIVE","billIsOverTime":"N","stationId":null,"revertTime":"2021-04-27 17:43:23","alarmActiveCount":"0","faultsyslevel":null,"handlerTime":"回单时间:2021-04-27 17:43:23","replytime":"2021-04-27 16:46:07"},{"billId":"13774938","billSn":"FS-62-001-20211211-054949","taskid":null,"dispatchTime":"2021-12-11 08:52:50","isTemperature":null,"faultType":"2002","issign":null,"stationName":null,"billTitle":"电池故障","business_type":null,"businessType":"综合用电","regionId":"0108749","createTime":"2021-12-11 08:52:50","createInfo":null,"billStatus":"ARCHIVE","billIsOverTime":"N","stationId":null,"revertTime":"2021-12-11 09:17:51","alarmActiveCount":"0","faultsyslevel":null,"handlerTime":"回单时间:2021-12-11 09:17:51","replytime":"2021-12-11 08:57:16"},{"billId":"13760036","billSn":"FS-62-001-20211210-050086","taskid":null,"dispatchTime":"2021-12-10 16:16:45","isTemperature":null,"faultType":"2002","issign":null,"stationName":null,"billTitle":"电池故障","business_type":null,"businessType":"综合用电","regionId":"0108749","createTime":"2021-12-10 16:16:45","createInfo":null,"billStatus":"ARCHIVE","billIsOverTime":"N","stationId":null,"revertTime":"2021-12-10 16:42:46","alarmActiveCount":"0","faultsyslevel":null,"handlerTime":"回单时间:2021-12-10 16:42:46","replytime":"2021-12-10 16:20:04"},{"billId":"13265573","billSn":"FS-62-001-20211121-085890","taskid":null,"dispatchTime":"2021-11-21 14:23:57","isTemperature":null,"faultType":"2002","issign":null,"stationName":null,"billTitle":"电池故障","business_type":null,"businessType":"综合用电","regionId":"0108749","createTime":"2021-11-21 14:23:57","createInfo":null,"billStatus":"ARCHIVE","billIsOverTime":"N","stationId":null,"revertTime":"2021-11-21 17:48:49","alarmActiveCount":"0","faultsyslevel":null,"handlerTime":"回单时间:2021-11-21 17:48:49","replytime":"2021-11-21 14:24:36"},{"billId":"13750938","billSn":"FS-62-001-20211210-047095","taskid":null,"dispatchTime":"2021-12-10 09:29:14","isTemperature":null,"faultType":"2002","issign":null,"stationName":null,"billTitle":"电池故障","business_type":null,"businessType":"综合用电","regionId":"0108749","createTime":"2021-12-10 09:29:14","createInfo":null,"billStatus":"ARCHIVE","billIsOverTime":"N","stationId":null,"revertTime":"2021-12-10 10:40:52","alarmActiveCount":"0","faultsyslevel":null,"handlerTime":"回单时间:2021-12-10 10:40:52","replytime":"2021-12-10 09:29:33"},{"billId":"13240253","billSn":"FS-62-001-20211120-077597","taskid":null,"dispatchTime":"2021-11-20 14:43:56","isTemperature":null,"faultType":"2002","issign":null,"stationName":null,"billTitle":"电池故障","business_type":null,"businessType":"综合用电","regionId":"0108749","createTime":"2021-11-20 14:43:56","createInfo":null,"billStatus":"ARCHIVE","billIsOverTime":"N","stationId":null,"revertTime":"2021-11-20 18:05:56","alarmActiveCount":"0","faultsyslevel":null,"handlerTime":"回单时间:2021-11-20 18:05:56","replytime":"2021-11-20 14:46:59"},{"billId":"13291393","billSn":"FS-62-001-20211122-093740","taskid":null,"dispatchTime":"2021-11-22 13:24:58","isTemperature":null,"faultType":"2002","issign":null,"stationName":null,"billTitle":"电池故障","business_type":null,"businessType":"综合用电","regionId":"0108749","createTime":"2021-11-22 13:24:58","createInfo":null,"billStatus":"ARCHIVE","billIsOverTime":"N","stationId":null,"revertTime":"2021-11-22 14:41:53","alarmActiveCount":"0","faultsyslevel":null,"handlerTime":"回单时间:2021-11-22 14:41:53","replytime":"2021-11-22 13:28:53"},{"billId":"13365092","billSn":"FS-62-001-20211125-018704","taskid":null,"dispatchTime":"2021-11-25 09:07:32","isTemperature":null,"faultType":"2002","issign":null,"stationName":null,"billTitle":"电池故障","business_type":null,"businessType":"综合用电","regionId":"0108749","createTime":"2021-11-25 09:07:32","createInfo":null,"billStatus":"ARCHIVE","billIsOverTime":"N","stationId":null,"revertTime":"2021-11-25 09:35:23","alarmActiveCount":"0","faultsyslevel":null,"handlerTime":"回单时间:2021-11-25 09:35:23","replytime":"2021-11-25 09:08:45"},{"billId":"13338622","billSn":"FS-62-001-20211124-006098","taskid":null,"dispatchTime":"2021-11-24 08:57:08","isTemperature":null,"faultType":"2002","issign":null,"stationName":null,"billTitle":"电池故障","business_type":null,"businessType":"综合用电","regionId":"0108749","createTime":"2021-11-24 08:57:08","createInfo":null,"billStatus":"ARCHIVE","billIsOverTime":"N","stationId":null,"revertTime":"2021-11-24 09:51:51","alarmActiveCount":"0","faultsyslevel":null,"handlerTime":"回单时间:2021-11-24 09:51:51","replytime":"2021-11-24 09:01:13"},{"billId":"13338692","billSn":"FS-62-001-20211124-006099","taskid":null,"dispatchTime":"2021-11-24 08:57:33","isTemperature":null,"faultType":"2002","issign":null,"stationName":null,"billTitle":"电池故障","business_type":null,"businessType":"综合用电","regionId":"0108749","createTime":"2021-11-24 08:57:33","createInfo":null,"billStatus":"ARCHIVE","billIsOverTime":"N","stationId":null,"revertTime":"2021-11-24 09:51:37","alarmActiveCount":"0","faultsyslevel":null,"handlerTime":"回单时间:2021-11-24 09:51:37","replytime":"2021-11-24 09:01:13"}],"pageNum":1,"pageSize":10,"size":10,"startRow":1,"endRow":10,"pages":1,"prePage":0,"nextPage":0,"isFirstPage":true,"isLastPage":true,"hasPreviousPage":false,"hasNextPage":false,"navigatePages":8,"navigatepageNums":[1],"navigateFirstPage":1,"navigateLastPage":1,"firstPage":1,"lastPage":1},"success":true}

查询待处理
POST /workorder/bill/getBillList/
{"userId":"91c7750eadc144948ba558fc367c9c8d","roleId":"0100070","billType":"ACCEPT","pageNumber":1,"pageSize":10,"billStatus":"","areaId":"","businessType":"3","beginTimeType":"","cityId":"","provId":"","stationCode":"","stationName":"","deviceName":"","deviceCode":"","billSn":""}
{"code":200,"msg":"查询成功!","data":{"total":-1,"list":[],"pageNum":1,"pageSize":10,"size":0,"startRow":0,"endRow":0,"pages":1,"prePage":0,"nextPage":0,"isFirstPage":true,"isLastPage":true,"hasPreviousPage":false,"hasNextPage":false,"navigatePages":8,"navigatepageNums":[1],"navigateFirstPage":1,"navigateLastPage":1,"firstPage":1,"lastPage":1},"success":true}
修改订单为接单


获取告警
GET /alarm/home/getDevAlarmNum/2/0100070

{"code":200,"msg":null,"data":{"stationNum":[{"stacount":"23","ifright":"stationNum"},{"stacount":"1414","ifright":"alarmNum"}],"devNum":[{"devcount":"730","tablename":"电池(BMS)","name":"TW_PW_BATTERY","count":"1288"},{"devcount":"35","tablename":"换电柜","name":"TW_PW_SWITCH_CABINET","count":"39"}],"devNumWrong":[{"devcount":"466","tablename":"电池(BMS)","name":"TW_PW_BATTERY","count":"690"},{"devcount":"32","tablename":"换电柜","name":"TW_PW_SWITCH_CABINET","count":"36"}],"alarmNum":[{"alarmlevell":"3","alarmcountt":"910"},{"alarmlevell":"4","alarmcountt":"392"},{"alarmlevell":"2","alarmcountt":"1"}]},"success":true}



获取订单详情
POST /workorder/bill/getBillDetail/ 
{"billSn":"FS-0098360-001-20231122-068601","isBillHis":"0"}

{"code":200,"msg":"查询成功","data":{"appModule":"app","equipmentCode":"CHZD12DPC0201106014","equipmentName":"三马路财富阳光甘肃银行1号柜","leaderId":null,"billId":24230663,"billSn":"FS-0098360-001-20231122-068601","billTitle":"开多仓告警","dealCode":null,"nativenetId":"甘肃省","bureauId":"天水市","regionId":"麦积区","createOpen":null,"createTime":null,"createInfo":null,"billIsOverTime":"N","billOvertimes":null,"declarePerson":"系统","declareTelepho":"无","dispatchTime":"2023-11-22 16:30:04","dispatchOpen":"sa","replyTime":null,"revertTime":null,"createLinkInfo":null,"whetherThePower":null,"isstand":null,"isrecovery":null,"canfiled":null,"recoveryTime":null,"delayHour":null,"delayComment":null,"delayType":null,"delaySuccess":null,"delayFailReason":null,"taskId":null,"dealObjectId":null,"billStatus":"ACCEPT","billStatusName":"待接单","businessType":"2","businessName":"换电","lastDealObjectName":null,"dealResult":null,"faultCase":null,"faultRecoverTime":null,"isTemperature":null,"suspendBeginTime":null,"suspendEndTime":null,"faultType":"DEVICE_ALARM","faultInfo":"开多仓告警","faultSrc":"铁塔集团网管","contact":null,"contactMode":null,"testParam":null,"indemnifyTime":null,"customerName":null,"signdate":null,"signuserid":null,"signusername":null,"signlon":null,"signlat":null,"issign":null,"strField1":null,"strField2":null,"strField3":null,"strField4":null,"strField5":null,"strField6":null,"strField7":null,"strField8":null,"alarmIsrecovery":"N","alarmEndTime":null,"faultName":null,"stid":null,"stname":null,"stcode":null,"sttype":null,"sttypeName":null,"stdeviceid":null,"ststatus":null,"ststatusName":null,"stdeliverdate":null,"stlon":null,"stlat":null,"stbaidux":null,"stbaiduy":null,"staddress":null,"stpropertyRight":null,"stpropertyRightName":null,"stpowersupplyway":null,"stpowersupplywayName":null,"stbackuppowernum":null,"stbackuppowernumName":null,"stifgenelec":null,"stareaname":null,"stcountyid":"麦积区","stproprietorKey":null,"stsitesource":null,"stareamanager":null,"stareamanagerName":null,"stmaintenancePerson":null,"stcontact":null,"stcontactTele":null,"stoperators":null,"stoperatorsName":null,"stoperatorsLevel":null,"stoperatorsLevelName":null,"stifrelief":null,"stmaintenancePersonid":null,"stwaittime":null,"stscene":null,"stsceneName":null,"ststandbyPower":null,"ststandbyPowerName":null,"stconfigoilmachine":null,"stconfigoilmachineName":null,"stcellSecurity":null,"stcellSecurityName":null,"stnightShift":null,"stmaintenanceRoompersonid":null,"stmaintenanceRoomperson":null,"stifnightMz":null,"stnightMzRange":null,"stallMzElement":null,"stallMzElementName":null,"stifbuyeletric":null,"deviceId":null,"fsuid":null,"semaphoreId":"0406111001","defineDealResult":null,"defineConfirmTime":null,"defineFaultDuty":null,"defineFaultDutyName":null,"defineFaultLevel":null,"defineFaultLevelName":null,"defineItowerConfirmPeople":null,"defineCarrierConfirmPeople":null,"payorder":null,"gradetype":null,"msid":null,"mssitelevel":null,"msstarttime":null,"msremark":null,"isAreaManager":false,"stprovinceid":"甘肃分公司","stcityid":"天水分公司","billAlarmActive":{"id":"6614A1644C2ED0EB44C8678E1B742903","name":"三马路财富阳光甘肃银行1号柜","code":"CHZD12DPC0201106014","deviceid":"CHZD12DPC0201106014","devicecode":"CHZD12DPC0201106014","devcount":null,"areaid":null,"itowerid":null,"roomid":null,"model":"DPCHDL-ZD[12]Z","type":null,"factory":"DLY","factoryName":"动力源","status":"2","uygur":null,"startusetime":null,"nature":null,"remark":null,"createtime":"2021-05-10 10:28:14","createuserid":"cda34b38298746ff81b1fefdb9ee3349","createuser":null,"updatetime":"2022-05-18 15:38:58","updateuserid":null,"updateuser":null,"tablename":"TW_PW_SWITCH_CABINET","provinceid":"0098360","cityid":"0100070","countyid":"0108750","crewprovinceid":"620000","crewcityid":"620500","crewareaid":"620503","version":null,"servicestimes":0,"servicedate":null,"servicestatus":"1","mainid":null,"rssource":"1","businesstype":"2","clientid":null,"orgid":null,"treeid":null,"roleid":null,"provincename":"甘肃省","cityname":"天水市","countyname":"麦积区","mainname":null,"stacode":null,"netstatus":"4"},"billDevOb":{"id":"6614A1644C2ED0EB44C8678E1B742903","name":"三马路财富阳光甘肃银行1号柜","code":"CHZD12DPC0201106014","deviceid":"CHZD12DPC0201106014","devicecode":"CHZD12DPC0201106014","devcount":null,"areaid":null,"itowerid":null,"roomid":null,"model":"DPCHDL-ZD[12]Z","type":null,"factory":"DLY","factoryName":"动力源","status":"2","uygur":null,"startusetime":null,"nature":null,"remark":null,"createtime":"2021-05-10 10:28:14","createuserid":"cda34b38298746ff81b1fefdb9ee3349","createuser":null,"updatetime":"2022-05-18 15:38:58","updateuserid":null,"updateuser":null,"tablename":"TW_PW_SWITCH_CABINET","provinceid":"0098360","cityid":"0100070","countyid":"0108750","crewprovinceid":"620000","crewcityid":"620500","crewareaid":"620503","version":null,"servicestimes":0,"servicedate":null,"servicestatus":"1","mainid":null,"rssource":"1","businesstype":"2","clientid":null,"orgid":null,"treeid":null,"roleid":null,"provincename":"甘肃省","cityname":"天水市","countyname":"麦积区","mainname":null,"stacode":null,"netstatus":"4"},"stconpersonid":"","lpercent":null,"dpercent":null,"action":[],"revertUser":null,"revertPhone":null,"faultCause":null,"arriveOperDate":null,"dealDesc":null,"pictureAddress":null,"pictures":null,"rdeviceType":"","tmonRevert":null},"success":true}

获取告警详情
POST /workorder/tMonMainbill/getAlarmList/ 
{"faultid":"24230663"}

{"code":200,"msg":null,"data":{"total":1,"rows":[{"id":"19cdf08127444c3d904ffcd1eeb6f4cd","category":null,"objtype":null,"objid":"CHZD12DPC0201106014","objname":"三马路财富阳光甘肃银行1号柜","subobjtype":null,"subobjid":"CHZD12DPC0201106014","subobjname":"三马路财富阳光甘肃银行1号柜","origlevel":null,"alarmlevel":"2","cause":null,"code":null,"detailinfo":"开多仓告警","extrainfo":null,"inserttime":null,"firstalarmtime":null,"lastalarmtime":null,"times":null,"ifconfirm":null,"confirmtime":null,"areaid":null,"confirmperson":null,"alarmtype":null,"userRemark":null,"ifrecover":null,"ifconvertfault":null,"faultid":null,"ifattention":null,"source":"1","alarmname":"开多仓告警","serialno":null,"stationid":null,"mid":null,"firstsystemtime":"2023-11-22 16:28:53","lastsystemtime":"2023-11-22 16:28:53","parentAlarmid":null,"stationstatus":null,"stationservicestatus":null,"confirminfo":null,"dtime":null,"dispachDelaySecond":null,"twResBaseStation":null,"provincename":null,"stationids":null,"fromfirsttime":null,"tofirsttime":null,"areaids":null,"searchAllParam":null,"businesstype":null,"tablename":null,"factory":null,"clientid":null,"clearsystemtime":null,"flgy":null,"cityname":null,"countyname":null,"netstatus":null,"status":null,"devname":null,"devtablename":null,"subdevtablename":null,"iscrossdocking":null,"twstationid":null,"stationname":null,"stationcode":null,"alarmFlag":null,"cleartype":null,"clearperson":null}]},"success":true}

接单
POST /workorder/bill/receiveBill/

{"billsn":"FS-0098360-001-20231122-068601","billId":"24230663","operate":"ACCEPT","remark":"","userId":"3210a67604c443b79f34dc0f77d17d44"}

{"code":200,"msg":"接单成功!","data":null,"success":true}

 

posted on 2023-11-26 19:52  GKLBB  阅读(280)  评论(0)    收藏  举报