APP下载

基于Android的农产品质量安全移动监管执法系统开发与应用

2018-05-28程涛魏榕馨陈慧琴吴优高薛扬朱思勇赵明明

电脑知识与技术 2018年9期
关键词:服务端执法检查公告

程涛 魏榕馨 陈慧琴 吴优 高薛扬 朱思勇 赵明明

摘要:为了提高农产品质量安全监管工作效率,根据泰州市农产品质量安全监管机构的实际需求,以泰州市农产品质量安全监管平台为系统支撑,通过功能分析和关键技术研究,设计和开发了基于Android的移动智能终端软件。终端软件作为监管平台向移动客户端的延伸,监管人员可以使用该软件查看辖区内生产基地信息和农产品质量检测信息、实时登记监管巡查情况、蓝牙打印执法文书等。

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)09-0234-03

Abstract:To improve the quality and safety supervision work efficiency of agricultural products, according to the actual needs of regulators and Taizhou agricultural products quality and safety supervision platform, we analyzed functions and research on the key technologies,then designed and developed the intelligent mobile terminal software based on the Android. Terminal software is the extension of monitoring platform to the mobile client, regulators could use the software to view production base information and agricultural products quality inspection information within the jurisdiction, register inspection timely, print law enforcement documents by Bluetooth,etc.

Key words:Android; mobile internet;agricultural products quality safety; software engineering; supervision; enforcement

农产品质量安全移动监管,是指农产品质量安全监管机构工作人员基于4G、WIFI、蓝牙等移动互联网络,通过Android移动智能终端,在任何时刻、任何地点准确跟踪掌握实时的农产品质量安全状况,获取和记录相关信息,对生产经销过程、农业投入品使用、农药残留等进行有效控制,完成对农产品质量安全的全面监管和移动执法,从源头上保障舌尖上的安全。

1 需求分析

根据实地调研和与目标用户交流讨论,通过流程图描述了监管工作人员浏览基础信息、巡查登记、执法检查、行政处罚、执法文书蓝牙打印的一系列过程,如图1所示。

与业务流程相对应,系统需要包含下列功能:

1)基础信息浏览。监管工作人员登录后,可以查看服务器端提供的所有的新闻动态的详细内容;进入通知公告可查看近期的公告标题并可以点击进入查看详细内容;可以查看辖区内生产基地的详细信息;可以查看农贸市场、批发市场、生产基地等受检对象的详细信息;可以查看辖区内监管工作队伍的详细信息。

2)检测数据查询:可以查看家庭农场、专业合作社、农产品公司等形式生产基地的农药残留自检数据,同时可以查看到辖区内本级监管机构和下级监管机构对生产基地、农贸市场、批发市场进行农药残留抽检的数据,并且可以根据条件进行查询。

3)巡查登记:用于执法人员执法后输入巡查对象、检查员、检查项目、检查结果等信息以及可以拍照取证。照片功能可以用手机拍照立刻获取或从手机相册提取,GPS定位系统让准确定位到监管工作的地址,提高监管工作的准确度。

4)行政执法:包括执法检查和行政处罚。执法对象包括了对农业投入品企业、种植业、畜禽养殖业、水产养殖业等受检对象的检查,当执法检查中发现违法问题时,进行行政处罚登记。执法检查和行政处罚的内容通过移动终端登记到服务端的数据库中。

5)蓝牙打印:当巡查登记、执法检查和行政处罚的工作内容已经写入到服务器中,通过移动终端可以浏览其工作列表和详细信息,并且可以通过蓝牙模块连接到蓝牙打印机实现实地快速打印执法文书,有效地提高工作效率。

2 系统设计

2.1 功能模块

根据需求分析,农产品质安全移动监管软件里面是含有新闻动态、通知公告、基地信息、被检单位、基地自检、监测信息、监管队伍、巡查登记、行政执法9个一级功能模块,如图2所示。为了满足需求还添加系统登录、扫码功能,同时增加了执法检查、行政处罚、蓝牙打印、电子地图等二、三级模块。

2.2 系统框架

整个系统采用Client/Server模式,其中Android客户端软件作为Client,采用JavaEE开发的泰州市农产品质量安全监管平台作为Server。Server面向Client开放接口,提供数据读取和写入服务,采用Struts2框架设计,分为控制器层、业务逻辑层、DAO层、持久化对象PO层。Android客户端通过服务端的控制器层与服务端连接,当有数据请求时,首先通过控制器层,再依次通过业务逻辑层、DAO层、持久化对象PO,然后与数据库服务器进行数据交互。

Android客户端采用MVC模式进行分层。其中Model层负责创建实体类,将网络连接层传输的数据进行封装,实体类包括基地信息、市场自检、监管队伍等;Logic层负责业务逻辑处理,作为MVC模式中的Controller层,获取返回给调用者的对象,对其进行赋值;UI层作为MVC模式中的View层,负责数据在界面上正确显示,通过Activity加载UI界面和Logic层返回的数据;在移动互联的网络状态下,网络连接层通过Apache HttpClient和HttpURLConnection类向服务端发送数据请求和数据交互,数据交互格式是JSON格式。整個系统框架如图3所示。

3 具体实现

3.1 服务端

以“通知公告”模块里面的“通知公告列表”为例,通知公告列表接口面向Android客户端的请求提供通知公告标题和序号,设计和开发步骤如下:

(1)在实体层创建PublicInfoVO类,表示通知公告内容实体类,与数据表的字段一致;

(2)在PspIndexDao.xml文件中注册访问数据库中通知公告数据表的代码,如下所示:

SELECT RowID, Title, Pub_Column, User_Name, Pub_Date, Pic_Pass, Top_flag, ROW_NUMBER() OVER (ORDER BY rowid) AS RowNumber from Info_Public

where (Pub_Column =$typeId$ AND public_info_status=1 AND CityId=20) Order by Top_flag DESC, Pub_Date DESC

(3)在DAO层创建List getTopTopicByScType1(Map params)方法,使用getSqlMapClient().queryForList方法用于对PspIndexDao.xml文件的操作;

(4)创建List getTopTopicByTaizhouCityType1(int typeId, Integer i)方法;

(5)在Serivce层创建List getTopTopicByTaizhouCityType1(int typeId, Integer i)方法;

(6)在Action层获得List news后,将news的id和title获取,封装成JSONArray,通过java.io.PrintWriter.write方法返回给移动终端。

3.2 Android客户端

3.2.1 “通知公告”功能模块

以“通知公告”模块为例在Android端进行设计和开发:

(1)新建接口IbaseTraceLogic,用于有关农产品质量安全信息处理逻辑的接口,包含有读取数据的所有抽象方法,用BaseTraceLogic类实现IbaseTraceLogic接口,并实现其中所有的方法。

(2)完善BaseTraceLogic的sendForNews( )方法,方法体是BaseTraceInfoManager类的sendForNews(IhttpListener iHttpListener)方法。同时采用匿名内部类的方式实现IhttpListener接口,作为sendForNews的参数,作用是HTTP监听器,服务器返回结果会组装成Response对象并通过onResult()方法回调给调用者;

(3)BaseTraceInfoManager类sendForNews方法参数完成后,执行其方法体,代码如下:

HashMap sendData = new HashMap();

super.send(ACTION_NEWS, sendData, iHttpListener);

(4)調用BaseTraceInfoManager类的父类HttpManager的send(final int action, final HashMap sendData, final IHttpListener httpListener)方法,action是请求标识,不同请求定义不同的标识。通过action的值ACTION_NEWS和sendData的判断,得到serverUrl的值,即接口地址:http://www.js-apqt.com/jmob/jmob_main.action;

(5)在HttpConnector中,通过URL类的openConnection方法打开服务端提供的通知公告列表接口,赋给HttpURLConnection类型的对象httpConn,通过其getInputStream( )获得InputStream对象,服务端返回数据;

(6)在HttpManager的parserResult(int action, Response response)中,对HttpConnector.connect(request)返回的Response进行解析,其实质为解析JSON数据;

(7)在ServerDataParser类的parseNews方法中,将返回数据根据字段进行封装成News类的对象,然后装入到ArrayList集合中;

(8)在BaseTraceLogic类中,将集合数据赋给msg.obj,再通过sendMessage将msg对象赋给调用者的主线程;

(9)在调用者NewsActivity中,获取到数据后转换成通知公告列表数据适配器NewsAdapter,使用ListView获取到布局文件中的显示列表lv_base,界面显示了通知公告列表;

(10)在通知公告列表上注册setOnItemClickListener监听器,封装意图Intent对象,对象内容中包括跳转到的通知公告详细内容类NewsDetailActivity、通知公告列表的id;

(11)在NewsDetailActivity中,使用mIBaseTraceLogic.sendForNewsDetail(id)方法,获得访问通知公告详细内容的数据并且显示在布局文件上,其步骤跟上面类似。

3.2.2 “行政执法”功能模块

农产品质量安全监管工作登记类模块包括了巡查登记、行政执法2个模块,其中行政执法又包括了执法检查和行政处罚2个子模块。下面以执法检查模块为例进行开发。

(1)获取activity_camera_trace.xml布局文件和里面的控件;

(2)为检查对象的查询按钮注册监听器,当单击时跳转到CheckAddrActivity中,该Activity为显示辖区内所有的受检单位,使用startActivityForResult方法回调获取到的受检单位;

(3)为巡检员的查询按钮注册监听器,当单击时跳转到PersonNameActivity中,该Activity为显示监管机构的执法工作人员,使用startActivityForResult方法回调获取到的巡检员;

(4)为拍照按鈕注册监听器,当单击时跳出对话框,可以选择“拍摄”和“相册”功能,构造对话框极其点击条目的效果实现代码如下;

AlertDialog dlg = new AlertDialog.Builder(CameraTraceActivity.this).setTitle("选择图片").setItems(items, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,int item) {

if(item==1){ //使用手机即时拍照方式

Intent getImageByCamera= new Intent("android.media.action.IMAGE_CAPTURE");

startActivityForResult(getImageByCamera, CAMERA_SUCCESS); }

else{ //获取手机相册已有图片

Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);

getImage.addCategory(Intent.CATEGORY_OPENABLE);

getImage.setType("image/*");

startActivityForResult(getImage, PICTURE_SUCCESS);

} } }).create();

dlg.show( );

(5)采用子线程将获取到的图片先传送到服务端,采用开源框架xUtils;

(6)在登记界面上手动输入检查项目、检查结果,获取到GPS定位地址、服务端返回的图片地址后,对提交按钮注册监听器,用来将这些数据提交给服务端。

4 软件运行和应用情况

以泰州市农产品质量安全监管平台为系统支撑,采用了Struts2、iBatis等框架,提出了轻量级网络传输JSON格式,研究了服务端数据交换接口的设计与实现方法,建立了MVC模式分层开发的方案,开发了泰州市农产品质量安全移动监管执法智能终端软件。泰州市农产品质量安全监管机构实际应用效果表明,通过Android终端进行移动监管,软件获得的农产品质量信息真实准确,监管执法登记工作快速方便,有效地提高了监管效率和效果。

参考文献:

[1] 陈长喜,许晓华.基于物联网的肉鸡可追溯与监管平台设计与应用[J].农业工程学报,2017(5):224-231.

[2] 陈熔,俞彤.基于APP的农产品质量安全监管平台的设计与开发[J].江苏农业科学,2017(12):171-173.

[3] 白红武,孙爱东,陈军,等.基于物联网的农产品质量安全溯源系统[J].江苏农业学报,2013(02).

猜你喜欢

服务端执法检查公告
“六个精准” 扎实做好执法检查“前半篇文章”
京津冀三地将首次开展联合执法检查
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
沪深一周重要公告
沪深一周重要公告
沪深一周重要公告
沪深一周重要公告
在Windows Server 2008上创建应用
2013—2017年市人大常委会执法检查项目汇总