如何使用ssm实现基于JavaEE的智能实时疫情监管服务平台的设计与实现

250 篇文章 0 订阅
149 篇文章 0 订阅

@TOC

ssm534基于JavaEE的智能实时疫情监管服务平台的设计与实现+jsp

第1章 绪论

1.1 研究背景

互联网时代不仅仅是通过各种各样的电脑进行网络连接的时代,也包含了移动终端连接互联网进行复杂处理的一些事情。传统的互联网时代一般泛指就是PC端,也就是电脑互联网时代,但是最近几十年,是移动互联网时代,是向下一步互联网时代过度的一个重要时代,下一个互联网时代叫物联网,而移动互联网就是一个风口,是当前社会的主流风向。目前移动互联网大行其道,人人都手中拿着智能机,手机手机,手不离机,如果开发一个用在手机上的程序软件,那是多么的符合潮流,符合管理者和客户的理想。本次就是开发智能实时疫情监管服务平台管理员可以管理所有用户信息和基础信息,统计用户健康信息,指挥调度,管理确诊人数,管理感染者,系统管理等。信息员主要采集用户健康信息,问题上报,问题处理,查看管理员发布的各种信息。用户主要可以查看自己的健康信息采集信息,查看自己的数据分析,查看和统计确诊人数和感染者人数。

1.2 研究现状

当微软操作系统占领了多半江山,目前不分年龄和种族,使用频率最高,覆盖面积最广。使用人群使用的大多数都是微软系统。而微软又不遗余力的更新Windows版本,从微软对Windows的市场定位来讲,Windows的未来不仅仅是一个操作系统,而是让所有人都拥抱Windows,建立一个属于Windows的互联网生态圈。目前各大行业,各种类型的软件阵地转移到了Windows平台上,包含一些带商城的免费管理系统,或者一些带广告的免费应用,还有好多游戏之类的应用。尤其是经过疫情涌现的互联网办公,学校的互联网教学等,都不断的刷新人们对于互联网的认知。

1.3 目的和意义

从经济成本考虑,手机的价格比较亲民,对于不是必须在电脑上办公的人员来讲,手机上如果能解决事情就更方便了。

从使用便利角度上讲,用手机上的应用处理业务,不用考虑网线是否存在,不用考虑位置是否变化,依托无处不在的手机信号就可以在任何有信号的地方处理事务,这是多么的方便和使用,不限制时间,不限制地点,高山平原山谷都可以作为使用的地点而不影响使用的效果。

从操作角度上讲,手机的操作先天性的高于电脑的操作,因为电脑适合处理复杂的操作,而手机就是为了简化操作而生的,方便高效操作简单。

此次开发这个智能实时疫情监管服务平台,不仅仅满足用户的需要,也能跟上时代的发展风向,从技术的角度还是用户的角度上进行开发都是很有意义的。

1.4 论文研究内容

论文设计的结构也是依照程序开发的流程进展的,也涉及到功能需求分析,功能设计与实现,程序测试等流程。

绪论:讲解课题的背景与意义,展示论文结构。

程序开发技术:讲解程序运用到的工具与技术知识。

系统分析:讲解程序的功能需求与开发可行性问题。

系统设计:讲解程序的功能与数据库的设计。

系统实现:讲解程序功能与界面实现。

系统测试:讲解程序的功能测试。

第2章 程序开发技术

2.1 MySQL数据库

为了更容易理解MySQL数据库,接下来就对其具备的主要特征进行描述。

(1)首选MySQL数据库也是为了节省开发资金,因为网络上对MySQL的源码都已进行了公开展示,开发者根据程序开发需要可以进行下载,并做一些改动就可以使用在程序中,可以推动开发者开发此程序的开发进度。

(2)SQL数据语言在MySQL里面也同样适用

(3)MySQL不仅可以支持多种编程语言,比如在校期间学到的C语言,Java语言,以及课后接触的PHP语言,C++语言等编程语言,它都能很好的支持,而且MySQL的安装与使用还不挑剔使用平台。

(4)MySQL可以支持具有千万条数据记录的数据库,电脑操作系统在进行首次安装或者是重装时,可以根据需要选择安装32位或64位操作系统,这两种操作系统对表文件的支持力度不一样,32位的操作系统最多可以存放4GB的表文件,64位操作系统最多可以存放8TB的表文件。

(5)MySQL数据库可以通过GPL协议进行个性化定制,需要开发者自己对数据库的源代码进行修改,以此开发出属于自己的MySQL。

2.2 Java语言

程序开发语言有很多,但是截至目前,Java语言在IT领域内,仍然是最被认可,以及被广泛运用的编写语言之一,因此在选择此程序的编写语言上,果断选择这门编程语言进行程序开发。可以说经过了这么多年的发展,Java语言不仅在Web开发领域有了突出性贡献,而且在大数据开发领域以及Windows开发领域都得到了广泛运用。由于Java语言拥有较强的扩展性能,并且表现出的稳定性能,让其成为大型后端系统开发语言首选,现如今,Java语言也成为了一种常用的互联网平台的解决方案。

作为一种源码在网络上开源的面向对象的程序开发Java语言,由它开发完成的程序是不可能直接运行在各大平台的,Java程序的运行,需要在操作平台上配置其运行的环境,包括数据库软件与Java程序开发软件等工具的安装与配置。在Win7,Win10或其它操作平台上配置Java程序运行环境,只要环境配置成功,Java程序都可以运行起来。

2.3 SSM框架简介

本课题程序开发使用到的框架技术,英文名称缩写是SSM,在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等,作为一个课题程序采用SSH框架也可以,SSM框架也可以,SpringMVC也可以。SSH框架是属于重量级别的框架,配置繁琐,不够灵活,修改程序需要修改好多个文件,并且运行起来也占用内存较高,CPU使用率相对也高,SpringMVC是Spring开发的一套MVC架构,更灵活更好用,SSM框架取中间值,既没有SSH臃肿,也没有SpringMVC简化,属于中间级别的,在配置过程和使用过程中更能编写和理解。MyBatis框架取代Hibernate框架是因为它更灵活,不需要完全在框架里操作,它在数据操作上可以写出更灵活的代码,它的性能也比Hibernate框架更稳定。总的来说,使用SSM框架是通过综合考虑而使用的,网上有很多的使用教程和心得体会,而且SSM又是这么的流行,用SSM框架开发是顺其自然的。

第3章 系统分析

在进行系统分析之前,需要从网络上或者是图书馆的开发类书籍中收集大量的资料,因为这个环节也是帮助即将开发的程序软件制定一套最优的方案,一旦确定了程序软件需要具备的功能,就意味着接下来的工作和任务都是围绕着这个方案执行的,所以系统分析需要对程序功能反复进行思考和研究。

3.1可行性分析

开发一款系统软件之前,用户都会思考这个软件程序值不值得去开发,把开发软件过程中可能涉及到的问题罗列出来,并一个个分析解决,以此来确定开发这款程序软件是否有必要,这样的分析方法也能帮助用户降低损失,不至于开发者开发进度进行到一半之后,突然遇到问题就放弃对软件的开发,到那时,资金损失,人力投入等方面就损耗太大了。

3.1.1技术可行性分析

此次开发程序使用到的开发工具有:MySQL等工具,使用的开发语言是Java,选择的开发工具和开发语言都是在大学课堂接触并学习过,后期因为自己也比较感兴趣,所以也通过网络渠道,或借助图书馆的开发类书籍进行过软件开发知识的系统学习,让自己有了一定的知识积累,加上自己在校期间也独立开发过一些软件作品,也积累了一定的开发经验,所以这次毕设作品的制作在技术上无须担忧过多。

3.1.2经济可行性分析

目前的信息时代,对信息的管理趋于高效化,便捷化,这也是计算机大力普及所带来的便利,此程序软件在设备选用上,依靠的是比较大众的电脑设备,对电脑的配置没有过多要求,一般学校的计算机机房的电脑都可以满足程序开发需求,另外,开发出此款程序,让信息处理变得高效率,其所带来的高效益是远超程序开发的低成本的,因此程序开发的资金投入是可以忽略不计的。

3.1.3操作可行性分析

程序软件的操作界面是符合大众审美的需求,功能模块的布局也是类似于社会上同种类型的软件,因此使用者操作该软件可以无需培训就上手。加上现在计算机入驻各家各户,大部分人的计算机操作水平都比较高,这样的局面也表明开发出来的程序在操作性问题上也是不用担心的。

综合上面的可行性论证,基本可以确定程序开发完全可行。

3.2系统运行环境

程序经过编码可以实现对程序设计的功能。但是编码实现时需要一定的配置环境,包括了电脑上的硬件环境,也包括在电脑操作系统上安装的软件环境。

硬件环境:一台可以正常使用并能够上网的笔记本或者是电脑,电脑内存最低要求4个G,电脑的中央处理器可以配置i5CPU。

软件环境:运用的微软操作系统是比较稳定的win7旗舰版系统,采用比较熟练的360安全浏览器,并在此系统上通过浏览器下载安装好MySQL软件等。

3.3系统流程分析

分析程序的流程,涉及到程序的整体操作流程,通过分析与设计,绘制的程序操作流程图见下图。此程序为了确保安全,会让使用者通过登录模块验证信息,符合要求的使用者才有权限操作程序。

图3-1 程序操作流程图

程序处理数据会涉及到数据的录入环节,绘制的添加流程见下图。程序录入数据过程中,始终与数据库保持同步。

图3-2 信息添加流程图

程序里面的数据也会出现错误,因此就有相应的修改数据的功能,绘制的程序修改流程见下图。此过程也是跟后台数据库进行数据同步显示。

图3-3信息修改流程图

程序数据存放于数据仓库,有时也会涉及到数据删除,此过程对应的流程图见下图。数据信息被删除之后,数据库里面也就没有了该数据信息了。

图3-4 信息删除流程图

第4章 系统设计

4.1 系统设计的原则

在系统设计过程中,也需要遵循相应的设计原则,这些设计原则可以帮助设计者在短时间内设计出符合设计规范的设计方案。设计原则主要有可靠性,安全性,可定制化,可扩展性,可维护性,可升级性以及客户体验等原则。下面就对这些原则进行简要阐述。

可靠性:一个软件是否可靠决定了其是否被用户使用,设计不可靠的软件,用户很容易就遗弃;

安全性:程序软件承担了信息的保存与管理等事务,安全性不足的软件会导致使用者承担巨大的损失;所以系统安全也是需要考虑进入的;

可定制化:市场环境从来都不是一直固定不变,面对客户群体的改变,以及使用环境的改变,市场需求的改变等因素,程序软件也要易于调整以适应各种变化;

可扩展性:程序软件在运行使用期间,也需要及时引进当下的新技术来进行系统优化,主要就是在系统功能层面,系统性能层面上进行相应的扩展,只有这样才能让系统在实际生活中继续占有市场;

可维护性:程序软件的维护需要一定量的资金,不管是排除现有程序错误,还是变更软件的现有需求,都需要在软件技术上投入一定资金,所以易于维护的软件程序就可以降低技术层面的资金消耗;

可升级性:程序软件的投入使用,会面临用户数量增多的情况,用户对软件的使用率也会提升,所以系统面临这种情况,仍然需要通过升级保持性能的合理,这样才能够适应市场;

客户体验:设计出来的程序软件在界面上不能够太复杂,要遵循界面设计的原理设计出简单,方便操作的功能操作界面,让用户易于接受软件,并乐于使用软件提供的功能。

4.2 功能结构设计

有管理员,用户,信息员三个角色。

管理员可以管理所有用户信息和基础信息,统计用户健康信息,指挥调度,管理确诊人数,管理感染者,系统管理等。

信息员主要采集用户健康信息,问题上报,问题处理,查看管理员发布的各种信息。

用户主要可以查看自己的健康信息采集信息,查看自己的数据分析,查看和统计确诊人数和感染者人数。

图4-2 管理员功能结构图

4.3 数据库设计

与功能结构设计一样,数据库设计也是程序开发不可避免的设计环节,数据库设计最主要的目的就是帮助运行程序存储相应的数据信息。数据库设计包含的内容有数据表结构的设计,也包含了数据库E-R图的设计。

4.3.1 数据库E-R图

在绘制E-R图之前,先要找出数据库的实体,明确各个实体具有的属性,比如用户信息这个实体,它具备的属性包括了用户的姓名属性,用户的密码属性,用户的创建时间属性等,所以明确了用户这个实体,以及用户实体具备的属性之后,就需要根据这些信息绘制用户实体对应的实体属性图了。绘制软件选用当下认可度高,使用范围广,操作便利的微软旗下的Visio工具。

(1)管理员实体属性图通过Visio工具绘制,绘制结果展示如下:

图4-4 管理员实体属性图

(2)用户实体属性图通过Visio工具绘制,绘制结果展示如下:

图4-5 用户实体属性图

(3)信息员实体属性图通过Visio工具绘制,绘制结果展示如下:

图4-6 信息员实体属性图

4.3.2 数据库表结构

在进行这部分设计之前,需要明白和掌握数据类型以及各个数据类型的长度范围等知识,因为在一张具体的数据表中,为了方便理解,这里就举个简单的例子。比如用户信息表,这个表格的字段就是用户这个实体具备的属性,这时就需要对字段进行数据类型,以及字段长度的设置,也要设置一个主键来作为用户信息表的唯一标识。这些都是数据库表结构设计需要完成的内容。根据智能实时疫情监管服务平台的功能设计以及数据库设计要求,展示该系统的数据表结构。

1通知新闻表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3titleString标题
4introductionString简介
5pictureString图片
6contentString内容

2确诊人数表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3bianhaoString编号
4biaotiString标题
5leibieString类别
6quezhenrenshuInteger确诊人数
7dengjishijiandate登记时间
8beizhuString备注

3数据分析表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3fenxibianhaoString分析编号
4yonghuzhanghaoString用户账号
5yonghuxingmingString用户姓名
6xingbieString性别
7tiwenString体温
8suozaidiString所在地
9jiankangmaString健康码
10jiezhongyimiaoString接种疫苗
11yimiaozhongleiString疫苗种类
12jiezhongshijianString接种时间
13jiezhongzhenshuString接种针数
14hesuanjianceString核酸检测
15jianceshijianString检测时间
16jiancejieguoString检测结果
17fengxiandiquString风险地区
18shentizhuangtaiString身体状态
19dengjiriqiString登记日期
20fenxishijiandatetime分析时间
21fenxixinxiString分析信息
22fenxineirongString分析内容

4指挥调度表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3diaodubianhaoString调度编号
4xinxiyuanzhanghaoString信息员账号
5xinxiyuanxingmingString信息员姓名
6xinxiyuandianhuaString信息员电话
7fabushijiandatetime发布时间
8renwubiaotiString任务标题
9fengmianString封面
10renwuneirongString任务内容

5菜单表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3menujsonString菜单

6管理员表

序号列名数据类型说明允许空
1IdIntid
2usernameString用户名
3passwordString密码
4roleString角色
5addtimeDate新增时间

7感染者表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3bianhaoString编号
4biaotiString标题
5leixingString类型
6shijiandate时间
7beizhuString备注

8问题上报表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3shangbaobianhaoString上报编号
4shangbaorenshuInteger上报人数
5zhengzhuangmiaoshuString症状描述
6shangbaoshijiandate上报时间
7xiangqingString详情
8xinxiyuanzhanghaoString信息员账号
9xinxiyuanxingmingString信息员姓名
10fengmianString封面
11sfshString是否审核
12shhfString审核回复

9问题处理表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3chulibianhaoString处理编号
4shangbaorenshuInteger上报人数
5zhengzhuangmiaoshuString症状描述
6chulishijiandate处理时间
7chulixiangqingString处理详情
8xinxiyuanzhanghaoString信息员账号
9xinxiyuanxingmingString信息员姓名
10fengmianString封面

10信息员表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3xinxiyuanzhanghaoString信息员账号
4mimaString密码
5xinxiyuanxingmingString信息员姓名
6xingbieString性别
7xinxiyuandianhuaString信息员电话
8touxiangString头像

11用户表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3yonghuzhanghaoString用户账号
4mimaString密码
5yonghuxingmingString用户姓名
6xingbieString性别
7lianxifangshiString联系方式
8touxiangString头像

12健康信息采集表

序号列名数据类型说明允许空
1IdIntid
2addtimeDate创建时间
3yonghuzhanghaoString用户账号
4yonghuxingmingString用户姓名
5xingbieString性别
6tiwenString体温
7suozaidiString所在地
8jiankangmaString健康码
9jiezhongyimiaoString接种疫苗
10yimiaozhongleiString疫苗种类
11jiezhongshijiandate接种时间
12jiezhongzhenshuString接种针数
13hesuanjianceString核酸检测
14jianceshijiandate检测时间
15jiancejieguoString检测结果
16fengxiandiquString风险地区
17shentizhuangtaiString身体状态
18dengjiriqidate登记日期
19buchongshuomingString补充说明
20xinxiyuanzhanghaoString信息员账号
21xinxiyuanxingmingString信息员姓名

第5章 系统实现

系统实现这个章节的内容主要还是展示系统的功能界面设计效果,在实现系统基本功能,比如修改,比如添加,比如删除等管理功能的同时,也显示出系统各个功能的界面实现效果,该部分内容一方面与前面提到的系统分析,系统设计的内容相呼应,另一方面也是一个实际成果的展示。

5.1管理员功能实现

5.1.1 用户管理

管理员可以对用户信息进行添加,修改,删除,查询操作。

图5-1 用户管理页面

5.1.2 信息员管理

管理员可以对信息员信息进行添加,修改,删除,查询操作。

图5-2 信息员管理页面

5.1.3 指挥调度管理

管理员可以对指挥调度信息进行添加,修改,删除,查询操作。

图5-3 指挥调度信息管理页面

5.1.4 确诊人数管理

管理员对确诊人数信息进行添加,修改,删除,查询操作。

图5-4 确诊人数管理页面

5.2 信息员功能实现

5.2.1 健康信息采集管理

信息员可以对用户的健康信息采集进行添加,修改,删除,查询,数据分析操作。

图5-5 健康信息采集管理页面

5.2.2 问题上报管理

信息员对问题上报信息进行添加,修改,删除,查询操作。

图5-6 问题上报管理页面

5.3 用户功能实现

5.3.1 通知新闻

用户可以在首页查看通知新闻信息。

图5-7 通知新闻页面

5.2.4 健康信息采集

用户在后台登录可以查看自己的健康信息采集信息。

图5-8 健康信息采集页面

GanranzheServiceImpl.java
package com.service.impl;

import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.utils.PageUtils;
import com.utils.Query;


import com.dao.GanranzheDao;
import com.entity.GanranzheEntity;
import com.service.GanranzheService;
import com.entity.vo.GanranzheVO;
import com.entity.view.GanranzheView;

@Service("ganranzheService")
public class GanranzheServiceImpl extends ServiceImpl<GanranzheDao, GanranzheEntity> implements GanranzheService {


    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<GanranzheEntity> page = this.selectPage(
                new Query<GanranzheEntity>(params).getPage(),
                new EntityWrapper<GanranzheEntity>()
        );
        return new PageUtils(page);
    }
    
    @Override
	public PageUtils queryPage(Map<String, Object> params, Wrapper<GanranzheEntity> wrapper) {
		  Page<GanranzheView> page =new Query<GanranzheView>(params).getPage();
	        page.setRecords(baseMapper.selectListView(page,wrapper));
	    	PageUtils pageUtil = new PageUtils(page);
	    	return pageUtil;
 	}
    
    @Override
	public List<GanranzheVO> selectListVO(Wrapper<GanranzheEntity> wrapper) {
 		return baseMapper.selectListVO(wrapper);
	}
	
	@Override
	public GanranzheVO selectVO(Wrapper<GanranzheEntity> wrapper) {
 		return baseMapper.selectVO(wrapper);
	}
	
	@Override
	public List<GanranzheView> selectListView(Wrapper<GanranzheEntity> wrapper) {
		return baseMapper.selectListView(wrapper);
	}

	@Override
	public GanranzheView selectView(Wrapper<GanranzheEntity> wrapper) {
		return baseMapper.selectView(wrapper);
	}

    @Override
    public List<Map<String, Object>> selectValue(Map<String, Object> params, Wrapper<GanranzheEntity> wrapper) {
        return baseMapper.selectValue(params, wrapper);
    }

    @Override
    public List<Map<String, Object>> selectTimeStatValue(Map<String, Object> params, Wrapper<GanranzheEntity> wrapper) {
        return baseMapper.selectTimeStatValue(params, wrapper);
    }
    
    @Override
    public List<Map<String, Object>> selectGroup(Map<String, Object> params, Wrapper<GanranzheEntity> wrapper) {
        return baseMapper.selectGroup(params, wrapper);
    }

}

WentichuliController.java
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.format.annotation.DateTimeFormat;
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.WentichuliEntity;
import com.entity.view.WentichuliView;

import com.service.WentichuliService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;

/**
 * 问题处理
 * 后端接口
 * @author 
 * @email 
 * @date 2022-04-08 23:57:11
 */
@RestController
@RequestMapping("/wentichuli")
public class WentichuliController {
    @Autowired
    private WentichuliService wentichuliService;



    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,WentichuliEntity wentichuli, 
		HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xinxiyuan")) {
			wentichuli.setXinxiyuanzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<WentichuliEntity> ew = new EntityWrapper<WentichuliEntity>();
    	PageUtils page = wentichuliService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, wentichuli), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,WentichuliEntity wentichuli, 
		HttpServletRequest request){
        EntityWrapper<WentichuliEntity> ew = new EntityWrapper<WentichuliEntity>();
    	PageUtils page = wentichuliService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, wentichuli), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( WentichuliEntity wentichuli){
       	EntityWrapper<WentichuliEntity> ew = new EntityWrapper<WentichuliEntity>();
      	ew.allEq(MPUtil.allEQMapPre( wentichuli, "wentichuli")); 
        return R.ok().put("data", wentichuliService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(WentichuliEntity wentichuli){
        EntityWrapper< WentichuliEntity> ew = new EntityWrapper< WentichuliEntity>();
 		ew.allEq(MPUtil.allEQMapPre( wentichuli, "wentichuli")); 
		WentichuliView wentichuliView =  wentichuliService.selectView(ew);
		return R.ok("查询问题处理成功").put("data", wentichuliView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        WentichuliEntity wentichuli = wentichuliService.selectById(id);
        return R.ok().put("data", wentichuli);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        WentichuliEntity wentichuli = wentichuliService.selectById(id);
        return R.ok().put("data", wentichuli);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody WentichuliEntity wentichuli, HttpServletRequest request){
    	wentichuli.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(wentichuli);

        wentichuliService.insert(wentichuli);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody WentichuliEntity wentichuli, HttpServletRequest request){
    	wentichuli.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(wentichuli);

        wentichuliService.insert(wentichuli);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody WentichuliEntity wentichuli, HttpServletRequest request){
        //ValidatorUtils.validateEntity(wentichuli);
        wentichuliService.updateById(wentichuli);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        wentichuliService.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<WentichuliEntity> wrapper = new EntityWrapper<WentichuliEntity>();
		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("xinxiyuan")) {
			wrapper.eq("xinxiyuanzhanghao", (String)request.getSession().getAttribute("username"));
		}

		int count = wentichuliService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	





}

WentichuliServiceImpl.java
package com.service.impl;

import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.utils.PageUtils;
import com.utils.Query;


import com.dao.WentichuliDao;
import com.entity.WentichuliEntity;
import com.service.WentichuliService;
import com.entity.vo.WentichuliVO;
import com.entity.view.WentichuliView;

@Service("wentichuliService")
public class WentichuliServiceImpl extends ServiceImpl<WentichuliDao, WentichuliEntity> implements WentichuliService {


    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<WentichuliEntity> page = this.selectPage(
                new Query<WentichuliEntity>(params).getPage(),
                new EntityWrapper<WentichuliEntity>()
        );
        return new PageUtils(page);
    }
    
    @Override
	public PageUtils queryPage(Map<String, Object> params, Wrapper<WentichuliEntity> wrapper) {
		  Page<WentichuliView> page =new Query<WentichuliView>(params).getPage();
	        page.setRecords(baseMapper.selectListView(page,wrapper));
	    	PageUtils pageUtil = new PageUtils(page);
	    	return pageUtil;
 	}
    
    @Override
	public List<WentichuliVO> selectListVO(Wrapper<WentichuliEntity> wrapper) {
 		return baseMapper.selectListVO(wrapper);
	}
	
	@Override
	public WentichuliVO selectVO(Wrapper<WentichuliEntity> wrapper) {
 		return baseMapper.selectVO(wrapper);
	}
	
	@Override
	public List<WentichuliView> selectListView(Wrapper<WentichuliEntity> wrapper) {
		return baseMapper.selectListView(wrapper);
	}

	@Override
	public WentichuliView selectView(Wrapper<WentichuliEntity> wrapper) {
		return baseMapper.selectView(wrapper);
	}


}

声明

本博客适用于广泛的学术和教育用途,包括但不限于个人学习、开发设计,产品设计。仅供学习参考,旨在为读者提供深入理解和学术研究的材料。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值