项目介绍
随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,居住证申报系统被用户普遍使用,为方便用户能够可以随时进行居住证申报系统的数据信息管理,特开发了基于居住证申报系统的管理系统。
居住证申报系统的设计主要是对系统所要实现的功能进行详细考虑,确定所要实现的功能后进行界面的设计,在这中间还要考虑如何可以更好的将功能及页面进行很好的结合,方便用户可以很容易明了的找到自己所需要的信息,还有系统平台后期的可操作性,通过对信息内容的详细了解进行技术的开发。
居住证申报系统的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与居住证申报系统管理的实际需求相结合,讨论了基于居住证申报系统管理的使用。
开发环境
编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,微信开发者工具,jdk1.8,maven
支持定做:java/php/python/android/小程序vue/爬虫/c#/asp.net
系统实现
5.1群众用户客户端功能实现
群众用户注册通过注册窗口,进行在线填写自己的用户账号、真实姓名、性别等,信息编辑完成后核对信息无误后进行选择注册,系统核对群众用户所输入的账号信息是否准确,核对信息准确无误后系统进入到操作界面。
群众用户通过登录进入到系统操作界面后,可以根据需求对首页、公告栏、我的等模块进行管理维护操作。
如图5-1所示。
图5-1群众用户注册界面图
群众用户登录通过账号、密码行页面,进入到居住证申报系统主界面,进入到操作界面,进行相对应操作,如图5-2所示。
图5-2群众用户登录界面图
群众用户首页页面可以查看首页、公告栏、我的等信息,进行提交操作,如图5-3所示。
图5-3首页界面图
群众用户进入公告栏页面可以填写公告标题、封面图片、发布日期、发布人等信息,进行提交操作,如图5-4所示。
图5-4公告栏界面图
群众用户进入我的页面可以填写居住证登记、回执单、领证信息等信息,进行提交操作,如图5-5-所示。
图5-5我的界面图
群众用户进入用户信息页面可以填写用户账号、真实姓名、性别、年龄、照片等信息,进行保存、退出登录操作,如图5-6-所示。
图5-6用户信息界面图
群众用户进入居住证登记页面可以填写申报编号、用户账号、真实姓名、性别、年龄、出生日期、民族、身份证、照片、所在户籍、政治面貌、联系电话、户主、与户主关系等信息,进行提交操作,如图5-7-所示。
图5-7居住证登记界面图
5.2警方客户端功能实现
警方登录通过账号、密码行页面,进入到居住证申报系统主界面,进入到操作界面,进行相对应操作,如图5-8所示。
图5-8警方登录界面图
警方首页页面可以查看首页、公告栏、我的等信息,进行提交操作,如图5-9所示。
图5-9首页界面图
警方进入居住证登记页面可以填写申报编号、用户账号、真实姓名、性别、年龄、出生日期、民族、身份证、照片、所在户籍、政治面貌、联系电话、户主、与户主关系、申报时间、审核回复等信息,进行回执单、预约领证、审核操作,如图5-10所示。
图5-10居住证登记界面图
警方进入回执单页面可以填写用户账号、真实姓名、性别、年龄、照片、联系电话、工号、回执内容、回执时间等信息,进行提交操作,如图5-11-所示。
图5-11回执单界面图
警方进入领证信息页面可以填写用户账号、真实姓名、申报时间、领证时间、领证地点、说明、工号、警察姓名等信息,进行提交操作,如图5-12-所示。
图5-12领证信息界面图
5.3管理员服务端功能实现
管理员通过居住证申报系统进行确认,管理员进入到居住证申报系统主界面,管理员进入到操作界面,通过登录窗口进行在线填写自己的用户名和密码、角色进行登录,登录成功后进入到系统操作界面进行相应信息的获取,如图5-13所示。
图5-13管理员登录主界面图
管理员进入到界面,通过界面的任务大厅,登录成功后进入到系统可以进行查看首页、个人中心、群众用户管理、警方管理、居住证登记管理、回执单管理、领证信息管理、公告栏管理、系统管理等功能模块,进行相对应操作,如图5-14所示。
图5-14管理员功能界面图
管理员点击进入警方管理页面可以查看工号、警察姓名、性别、年龄、联系电话、照片等信息,进行详情、修改、删除操作,如图5-15示。
图5-15警方管理界面图
管理员进入居住证登记管理界面,通过界面的任务大厅,登录成功后进入到系统可以进行查看申报编号、用户账号、真实姓名、性别、年龄、出生日期、民族、身份证、照片、所在户籍、政治面貌、联系电话、户主、与户主关系、申报时间、审核回复、审核状态等信息,进行详情、修改、删除操作,如图5-16所示。
图5-16居住证登记管理界面图
管理员进入到回执单管理界面,通过界面的任务大厅,登录成功后进入到系统可以查看用户账号、真实姓名、性别、年龄、照片、联系电话、工号、回执内容、回执时间等信息,进行详情、修改、删除操作,如图5-17所示。
图5-17回执单管理界面图
管理员进入到领证信息管理界面,通过界面的任务大厅,登录成功后进入到系统可以查看用户账号、真实姓名、申报时间、领证时间、领证地点、说明、工号、警察姓名等信息,进行详情、修改、删除操作,如图5-18所示。
图5-18领证信息管理界面图
管理员进入到公告栏管理界面,通过界面的任务大厅,登录成功后进入到系统可以查看公告标题、封面图片、发布日期、发布人等信息,进行详情、修改、删除操作,如图5-19所示。
图5-19公告栏管理界面图
轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图5-20所示。
图5-20轮播图管理界面图
核心代码
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.LingzhengxinxiEntity;
import com.entity.view.LingzhengxinxiView;
import com.service.LingzhengxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
* 领证信息
* 后端接口
* @author
* @email
* @date
*/
@RestController
@RequestMapping("ngzhengxinxi")
public class LingzhengxinxiController {
@Autowired
private LingzhengxinxiService lingzhengxinxiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,LingzhengxinxiEntity lingzhengxinxi, HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("qunzhongyonghu")) {
lingzhengxinxi.setYonghuzhanghao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("jingfang")) {
lingzhengxinxi.setGonghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<LingzhengxinxiEntity> ew = new EntityWrapper<LingzhengxinxiEntity>();
PageUtils page = lingzhengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, lingzhengxinxi), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("st")
public R list(@RequestParam Map<String, Object> params,LingzhengxinxiEntity lingzhengxinxi, HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("qunzhongyonghu")) {
lingzhengxinxi.setYonghuzhanghao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("jingfang")) {
lingzhengxinxi.setGonghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<LingzhengxinxiEntity> ew = new EntityWrapper<LingzhengxinxiEntity>();
PageUtils page = lingzhengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, lingzhengxinxi), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("sts")
public R list( LingzhengxinxiEntity lingzhengxinxi){
EntityWrapper<LingzhengxinxiEntity> ew = new EntityWrapper<LingzhengxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( lingzhengxinxi, "lingzhengxinxi"));
return R.ok().put("data", lingzhengxinxiService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(LingzhengxinxiEntity lingzhengxinxi){
EntityWrapper< LingzhengxinxiEntity> ew = new EntityWrapper< LingzhengxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( lingzhengxinxi, "lingzhengxinxi"));
LingzhengxinxiView lingzhengxinxiView = lingzhengxinxiService.selectView(ew);
return R.ok("查询领证信息成功").put("data", lingzhengxinxiView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
LingzhengxinxiEntity lingzhengxinxi = lingzhengxinxiService.selectById(id);
return R.ok().put("data", lingzhengxinxi);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
LingzhengxinxiEntity lingzhengxinxi = lingzhengxinxiService.selectById(id);
return R.ok().put("data", lingzhengxinxi);
}
/**
* 后端保存
*/
@RequestMapping("ve")
public R save(@RequestBody LingzhengxinxiEntity lingzhengxinxi, HttpServletRequest request){
lingzhengxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(lingzhengxinxi);
lingzhengxinxiService.insert(lingzhengxinxi);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody LingzhengxinxiEntity lingzhengxinxi, HttpServletRequest request){
lingzhengxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(lingzhengxinxi);
lingzhengxinxi.setUserid((Long)request.getSession().getAttribute("userId"));
lingzhengxinxiService.insert(lingzhengxinxi);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody LingzhengxinxiEntity lingzhengxinxi, HttpServletRequest request){
//ValidatorUtils.validateEntity(lingzhengxinxi);
lingzhengxinxiService.updateById(lingzhengxinxi);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
lingzhengxinxiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<LingzhengxinxiEntity> wrapper = new EntityWrapper<LingzhengxinxiEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("qunzhongyonghu")) {
wrapper.eq("yonghuzhanghao", (String)request.getSession().getAttribute("username"));
}
if(tableName.equals("jingfang")) {
wrapper.eq("gonghao", (String)request.getSession().getAttribute("username"));
}
int count = lingzhengxinxiService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
论文参考
目 录
摘 要 I
Abstract II
第一章 绪 论 1
1.1选题背景 2
1.2研究现状 3
1.3研究内容 4
第二章 开发工具及关键技术介绍 5
2.1微信开发者工具 6
2.2小程序框架以及目录结构介绍 8
2.3 JAVA技术 8
2.4 Mysql数据库 8
2.5 SSM框架 8
第三章 系统分析 10
3.1需求分析 10
3.2可行性分析 10
3.2.1技术可行性:技术背景 11
3.2.2经济可行性 11
3.2.3操作可行性: 11
3.3性能分析 11
3.4系统操作流程 12
3.4.1管理员登录流程 12
3.4.2信息添加流程 12
3.4.3信息删除流程 13
第四章 系统设计与实现 15
4.1系统架构设计 15
4.2开发流程设计 15
4.3数据库设计 16
4.3.1实体ER图 16
4.3.2数据表 18
第五章 系统实现 21
5.1 群众用户客户端功能实现 24
5.2 警方客户端功能实现 24
5.3 管理员服务端功能实现 24
第六章 系统的测试 27
6.1 测试目的 27
6.2 测试方案设计 27
6.2.1 测试策略 27
6.2.2 测试分析 28
6.3 测试结果 28
结 论 29
参考文献 30
致 谢 31