对付公司安全管理的现实问题,大多数企业采取人工加办公赞助软件的办法进行管理,这类办法对付信息的发布和流程、后续的资料整理事情都是非常大的帮助。
但一样平常都还是针对管理职员利用,如果其它用户想要操作须要一步一步进行批准,非常繁芜。
现实公司安全管理事情中短缺一种更为优质、大略的方法路子。
## 1.2课题实现目的和研究意义 时期的发展也为人们提出了更高的哀求,只有不断的学习和发展才可以提高。
目前我们正在科技和网络发展的关键点,网络已实现遍及。
然而还是有大量的企业、机构采取传统的办公办法进行处理事务,当然传统的办法对付小规模的企业、机构来说更为适宜,但想要发展就须要以发展的目光来看待问题。
如果可以采取更科学、省力的办法进行办公将会带来变革。

公司的安全日常管理关系着企业的古迹和发卖、亏损。
企业对商品的订货、退货要严格把关,更要考虑到商品的质量、到期情形。
以往都是由员工人工统计商品情形,企业审核力度不好把控,监督不了商品的实际情形。
如果采取共享的平台,把商品管理的干系卖力职员都结合到一起,起到共同监管的目的就可以办理这类问题。
商品的所有信息都可以由管理员直接管理,其它用户的操作过程也可由干系管理员卖力把控,把其它用户的管理事情实现流程化、清晰化,减少暗箱操作,供应更为透明的事情流程,实现钢铁集团公司安全管理的真正代价。
## 1.3课题研究内容  本系统从公司安全管理的事情出发,包括管理员和分公司、经销商、集团四种权限。
管理员的功能为个人中央、集团管理、商品管理、经销商管理、分公司管理、订货操持表管理、退货操持表管理等,实现系统里信息的全面管控,分公司的功能为个人资料管理和查看商品信息进行订货申请和退货申请。
经销商卖力浏览商品信息和查询订货操持表、退货操持表,集团可以审核订货操持表和退货操持表。
四种权限的用户功能相辅相成,不可短缺,共同帮助钢铁集团公司安全日常运营管理。
本系统实现“放手”、“透明化”管理,使商品的管理更加大略、轻松。
## 1.4论文构造安排 本篇论文的构造分为择要、目录、正文部分、总结、致谢和参考文献。
正文部分为核心。
正文部分分为:

第1章绪论,从课题的开拓背景、现状、目的意义等进行本课题的先容;

权限管理树状图jsp界面钢铁团体公司平安治理体系的构建与实现 GraphQL

第2章系统剖析,从系统的开拓技能、环境、可行性、操作流程等进行系统的详细剖析;

第3章系统设计,从系统的功能图、数据库设计、ER图、数据库表进行系统的设计;

第4章系统实现,紧张先容系统的实现界面和实现内容;

第5章系统测试,讲解紧张功能的测试过程以及测试结果。

第2章 系统剖析 ## 2.1系统开拓中利用干系技能先容 ### 2.1.1Java先容 Java措辞是从C++进行衍生出来的一种新型编程措辞,他保留了c++措辞中很多核心技能,继续了他的面向工具的优点,而且舍弃了很多缺陷,比如在Java措辞中去掉了指针,这样可以减少很多缺点,还去掉了运算符,这样提高了运行处理效率。
还增加了很多优点,添加了垃圾回收功能,提高了代码的利用率,总体来说,Java措辞是一个分布式的、高性能的、多线程的开拓措辞。
Java从开拓之初便是打算作为一个开放性的措辞技能,这就哀求须要有很高的兼容性,首先就须要同样的代码程序可以在不同的打算机上运行,还要支持不同的网络,同时还要看重安全性,方便用户利用。
Java措辞最突出的特点便是面向工具,可以把一个工具当成很多代码状态的物体,然后进行自定义类型进行关联操作,这样进行凑集起来的代码就叫工具,面向工具的方法可以使设计根据的大略,方便管理,还可以减少失落败。
C++最大的一个缺陷便是没有垃圾回收机制,常日在编程的过程中,初始化工具时候系统会自动分配一个内存地址,如果不须要这个工具的时候,系统不能进行自动删除和回收,这样造成了很大的内存摧残浪费蹂躏,导致系统卡顿,会让系统非常的不稳定,严重的话乃至会系统崩溃,而Java措辞便是在这个根本上设置了垃圾回收机制,当一个利用过的工具没有引用的时候,系统可以自动删除,回收内存,这样就可以很好的避免了内存泄露,保障了程序的安全,同时提高了运行效率。
### 2.1.2Mysql数据库先容 Mysql数据库是目前比较盛行的一种开源数据库,可以支持多种编译器进行在线测试,从而担保了代码的可移植性,而且支持多种操作系统有很好的跨平台性,为编程措辞供应所须要的API,可以多线程同时运行,这样有效的减少了内存占用率,提高了利用效率。
运行的过程中还能自动优化sql查询算法,这样使数据查询速率达到了显著的提高,而且Mysql数据库还可以作为一个独立的程序在客户端中单独利用,也可以嵌入到其他程序中搭配一起利用。
Mysql数据库效率非常的高,可以处理上千万条数据,可以同时支持多种不同的数据引擎,而且是开源的软件,不须要支付任何用度,而且可以进行定制,利用GPL协议进行代码修正,开拓属于自己的Mysql系统。
综上所述,Mysql数据库是一个非常受欢迎的一个数据库,体积小,速率快,最主要的还是免费,非常适宜中小型项目的开拓利用。
### 2.1.3B/s架构先容 B/s架构是随着网络快速发展而开拓出来的一种网络框架,跟传统的cs框架最大的差异便是,直接把代码支配到网络做事器中,这样方便了系统的后期开拓和掩护,然后用户可以直接通过浏览器进行代码的访问,不须要额外安装任何的软件客户端,简化了用户的利用。
B/s构造是指Browser/Server构造,意思便是只须要安装一个做事器就行了, 客户端方面紧张便是采取浏览器进行访问,紧张是对传统的c/s架构的一种改进,采取www浏览器技能和其他Script措辞技能,把系统实现须要的代码全部支配到了做事器上面,是一种新型的架构技能,可以直接借助浏览器进行数据访问和数据交互。
最大的优点便是,不须要安装客户端,不受环境影响,可以实时实地的进行访问,其次便是掩护非常的方便。
当然了有优点也有不可避免的缺陷,首先是在访问速率方面,比较受网络的影响,不像C/s架构一样,处理速率非常的快,直接在本机就可以完成数据交互,而B/s须要借助网络才能进行做事器访问,必须担保有顺畅的网络,才能有好的利用体验,其次便是安全性,由于所有数据存储在网络做事器中,比较随意马虎受到攻击,从而造成数据泄露,这是目前B/s架构存在的最大的弊端。
以是说B/s架构适宜一些电子商务类的网站,适宜比较有用户共享交互的,开放性的网站的设计与开拓。
以是我开拓本系统采取B/s架构是非常适宜的,可以达到多人同时登录系统,可以实现信息交互,而且方便随时随地的进行数据访问,而且我对B/s架构开拓比较熟习,以是本系统就采取B/s架构来进行开拓设计。
## 2.2系统可行性剖析 系统的可行性关系着系统开拓的成功和市场,没有经由详细可行性剖析的系统开拓过程会非常困难。
系统可行性从系统的经济方面、操作方面和技能方面进行剖析。
### 2.2.1经济可行性剖析系统开拓所须要的经济紧张在系统的本钱问题、运行问题和掩护问题上。
本系统在开拓中不须要经济的支撑,所须要的开拓软件和设备都是在已有条件上。
本系统在运行里所须要的环境也都为免费就可以下载的。
本系统在后期的掩护上也只须要技能支持就可以完成。
以是本系统在经济可行性上可以通过。
### 2.2.2操作可行性剖析 本系统在开拓中充分调查了所利用用户的操作习气和风格,所有的操作流程也都为大略的流程,在操作中也设置了提醒。
用户在利用本系统时只要按照提示就可以完成,非常大略。
以是本系统在操作可行性上可以通过。
### 2.2.3技能可行性剖析 本系统所须要的技能支持为Java措辞,Mysql数据库,Jsp技能和B/s框架等。
所利用的技能都为开源成熟的技能,也是目前盛行的技能之一。
利用这些技能开拓的系统可以担保系统的前詹性和稳定性、安全性。
以是本系统在技能可性性上可以通过。
## 2.3系统需求剖析 目前打算机、网络技能已进入到各行各业。
企业做为社会的主要组成部分更该当身体力行,公司安全管理里的所有事情都是环绕商品而展开,每件商品的档案信息都非常多,如果采取传统的管理办法非常随意马虎造成混乱,而且对付商品的信息查询非常不便。
对付商品的日期、质量、数据都须要额外的严谨,如果还是采取传统的商品管理办法对用户、商品都做不到百分百的监管,用户的操作也实现不了透明。
以是非常须要新的管理办法涌现。
## 2.4系统性能剖析 系统在设计时也须要把稳系统的性能,一样平常系统的性能方面包括系统的稳定性、安全性、界面设计方面、操作方面、折衷等方面。

本系统在界面设计方面尊重所有的利用权限,多方面参考不同利用权限的利用习气以及风格,综合不同的情形整理出符合大众哀求的系统界面。
做到自己的最大能力;在系统的稳定性、安全性方面采取必要的登录验证,不同权限采取不同的账号和密码。
为了使系统更为稳定采取成熟的开拓环境和技能,在代码编写时尽可能的减少冗余,担保系统的运行效率;在系统的操作流程方面,尽可能的采取大略的流程来实现用户哀求的反馈,当用户提出需求时,可以用最少的步骤进行提问操作;本系统采取数据库和功能界面分开设计,这样可以担保当系统的功能运行出错时不会影响系统里的数据,也就担保了数据的安全。
## 2.5系统功能剖析 系统的功能剖析决定了系统的功能设计,完全详细的系统功能剖析可以使系统的开拓事半功倍。
本系统的功能环绕管理员、分公司、集团、经销商四种权限设计。
根据不同权限的不同需求设计出更符合用户哀求的功能。
本系统中管理员可以管理所有内容,包括利用权限、商品信息、订货操持表、退货操持表信息等。
本钢铁集团公司安全管理系统管理员的用例图如下图2-1所示:

图2-1管理员用例图

分公司用例为商品信息管理、订货操持表管理和退货操持表管理,分公司用例图如下图2-2所示:

图2-2分公司用例图

经销商用例为个人中央管理、商品信息管理、订货操持表管理和退货操持表管理。
经销商用例图如下图2-3所示:

图2-3经销商用例图

集团用例为个人中央、商品信息管理和订货操持表管理、退货操持表管理。
集团用例图如下图2-4所示:

图2-4集团用例图 ## 2.6系统操作流程剖析  信息从如何产生到反馈结果的过程可以称为信息的流程。
剖析好系统的操作流程才可以使系统精确运行不会涌现Bug。
本系统的流程为管理员前辈行登录,登录后管理分公司、集团、经销商的账号、密码等信息。
公司和经销商可以注册登录。
集团由管理员添加。
管理员发布商品信息、分公司提出订货操持表和退货操持表,经销商可以进行查询,集团卖力审核。
当用户操作后,管理员可以在管理员界面立即收到操作后的信息,并且可以进行修正。
本钢铁集团公司安全管理系统的操作流程如下图2-5所示:

图2-5钢铁集团公司安全管理系统操作流程图

第3章 系统设计 ## 3.1系统功能构造设计 系统的功能构造是采取树形图来绘制功能设计。
根据剖析所得,本系统的功能设计为管理员和集团、分公司、经销商四个部分。
管理员为高等角色,可以管理系统里的所有信息,包括不同分类的用户信息。
本钢铁集团公司安全管理系统的功能构造设计图如下图3-1所示:

  图3-1钢铁集团公司安全管理系统功能构造图 ## 3.2数据库设计  数据库为数据的仓库,决定了数据的保存和修正、删除、调用等。
数据库的稳定决定了系统里数据的安全。
本系统采取Mysql数据库,在建立数据库时采取Root用户名。
数据库的建立过程为前辈行数据的ER图设计然后进行数据库表的实现。
### 3.2.1数据ER图设计 数据ER图中记录了关系、实体、属性。
实体与实体的关系决定了数据在调用时的精确与否,实体的属性决定了该实体的内容。
数据ER图的设计同样主要,也是数据库建立的根本。

通过系统中的功能数据剖析,本系统的实体紧张有用户(分公司、集团、经销商)、管理员、商品信息、订货操持表、退操持表信息等。

管理员的ER图中的属性有账号、密码、权限。
管理员ER图如下图3-2所示:

图3-2管理员ER图

分公司的ER图里的属性有账号、名称、编号等,分公司的ER图如下图3-3所示:

图3-3分公司ER图

商品信息的ER图里的属性有名称、品类、规格、价格、材质等,商品的ER图如下图3-4所示:

图3-4商品信息ER图

(4)订货操持表的ER图里的属性有商品名称、数量、是否交货等,订货操持表ER图如下图3-5所示:

图3-5订货操持表ER图

(5)退货操持表信息ER图里的属性有退货单号、天生韶光、商品名称等,退货操持表信息ER图如下图3-6所示:

图3-6退货操持表信息ER图 ### 3.2.2数据库表设计 数据库表是把ER图进行详细化、实体化。
不同的表名下保存着相对应的表信息数据。
在数据库表里记录着数据的主键、外键、数据类型、长度等。
本钢铁集团公司安全管理系统所创建的数据库表有管理员信息表、分公司信息表、商品信息表、订货操持表、退货操持表等。
本钢铁集团公司安全管理系统的数据库表如下表3-1—3-9所示:

表3-1 config

表3-2 dinghuojihuabiao

表3-3 fengongsi

表3-4 jingxiaoshang

表3-5 jituan

表3-6 shangpinxinxi

表3-7 token

表3-8 tuihuojihuabiao

表3-9 users

第4章 系统详细实现## 4.1用户登录功能的详细实现 用户登录界面起到验证身份的浸染,本界面采取图片背景进行设计。
在用户登录界面里设置了程序的名称和用户、密码、权限的文本框。
在文本框下是登录按钮和分公司注册、经销商注册按钮。
用户在信息输入完成后可以利用对应按钮进行相对应的操作。
用户登录功能的实现界面如下图4-1所示:

图4-1用户登录实现界面 ## 4.2管理员权限的功能实现 ### 4.2.1个人中央管理功能的详细实现个人中央管理功能的浸染为修正密码和修正管理员资料。
本功能可以实现管理员资料的更新。
个人中央管理功能的实现界面如下图4-2所示:

图4-2个人中央管理功能的界面实现 ### 4.2.2集团信息管理功能的详细实现 管理员卖力集团信息的录入和管理。
集团信息包括集团地址、代表人等信息,集团的账号和密码则是由本功能进行添加。
管理员查询集团信息的功能实现如下图4-3所示:

图4-3管理员查询集团信息的实现界面 ### 4.2.3商品信息管理功能的详细实现 管理员可以对商品的信息进行管理、审核。
管理员查询商品信息的实现界面如下图4-4所示:

图4-4管理员查询商品信息的实现界面 ### 4.2.4分公司管理功能的详细界面实现 管理员可以对分公司信息进行管理和审核。
管理员查询分公司信息的实现界面如下图4-5所示:

图4-5管理员查询分公司功能的运行界面 ### 4.2.5经销商管理功能的详细实现 管理员可以审核和删除经销商信息,查询经销商功能的界面实现如下图4-6所示:

图4-6管理员查询经销商功能的运行界面 ### 4.2.6订货操持表功能的详细实现 管理员可以查询订货的详情,理解订货的审核情形。
订货操持表功能的实现界面如下图4-7所示:

图4-7管理员查询订货操持表功能的运行界面 ### 4.2.7退货操持表管理功能的实现界面 管理员可以查看和管理退货的操持表信息,实现界面如下图4-8所示:

图4-8管理员查询退货操持表信息功能的实现界面 ## 4.3分公司角色的功能实现 ### 4.3.1商品信息管理功能的实现界面 分公司只能查看商品信息不能修正和删除、添加商品信息。
实现界面如下图4-9所示:

图4-9分公司查询商品信息功能的实现界面 ### 4.3.2订货操持表管理功能的详细实现 分公司卖力订货操持表的申请。
分公司添加订货操持表功能的实现界面如下图4-10所示:

图4-10分公司添加订货操持表功能的运行界面 ### 4.3.3退货操持表管理功能的详细实现 分公司在退货操持表功能里可以添加退货信息和统计退货信息。
分公司添加退货操持表信息功能的实现界面如下图4-11所示:

图4-11添加退货操持表信息功能的运行界面 ## 4.4经销商角色的功能实现 经销商卖力商品信息、订货操持表和退货操持表的信息查询。
实现界面如下图4-12所示:

图4-12经销商角色的功能实现界面 ## 4.5集团角色功能的界面实现 ### 4.5.1商品信息管理功能的详细实现 集团也可以添加和管理商品,集团查询商品信息的实现界面如下图4-13所示:

图4-13集团查询商品信息功能的运行界面 ### 4.5.2订货操持表管理的功能实现 集团卖力审核分公司提出的订货操持表申请,实现界面如下图4-14所示:

图4-14审核订货操持表的功能实现界面 ### 4.5.3退货操持表管理功能的实现界面集团还可以审核退货的操持表信息。
审核退货操持表信息的实现界面如下图4-15所示:

图4-15退货操持表信息的审核界面

第5章 系统测试 # 系统测试的方

ConfigServiceImpl.java

package com.service.impl;import java.util.Map;import org.springframework.stereotype.Service;import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.baomidou.mybatisplus.mapper.Wrapper;import com.baomidou.mybatisplus.plugins.Page;import com.baomidou.mybatisplus.service.impl.ServiceImpl;import com.dao.ConfigDao;import com.entity.ConfigEntity;import com.service.ConfigService;import com.utils.PageUtils;import com.utils.Query;/ 系统用户 /@Service(&#34;configService")public class ConfigServiceImpl extends ServiceImpl<ConfigDao, ConfigEntity> implements ConfigService { @Override public PageUtils queryPage(Map<String, Object> params, Wrapper<ConfigEntity> wrapper) { Page<ConfigEntity> page = this.selectPage( new Query<ConfigEntity>(params).getPage(), wrapper ); return new PageUtils(page); }}MD5Util.java

package com.utils;import cn.hutool.crypto.digest.DigestUtil;public class MD5Util { / @param text明文 @param key密钥 @return 密文 / // 带秘钥加密 public static String md5(String text) { // 加密后的字符串 String md5str = DigestUtil.md5Hex(text); return md5str; }}JingxiaoshangController.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.transaction.annotation.Transactional;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.JingxiaoshangEntity;import com.entity.view.JingxiaoshangView;import com.service.JingxiaoshangService;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-21 15:54:45 /@RestController@RequestMapping("/jingxiaoshang")public class JingxiaoshangController { @Autowired private JingxiaoshangService jingxiaoshangService; @Autowired private TokenService tokenService; / 登录 / @IgnoreAuth @RequestMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { JingxiaoshangEntity user = jingxiaoshangService.selectOne(new EntityWrapper<JingxiaoshangEntity>().eq("jingxiaoshangzhanghao", username)); if(user==null || !user.getMima().equals(password)) { return R.error("账号或密码禁绝确"); } if("否".equals(user.getSfsh())) return R.error("账号已锁定,请联系管理员审核。
"); String token = tokenService.generateToken(user.getId(), username,"jingxiaoshang", "经销商" ); return R.ok().put("token", token); } / 注册 / @IgnoreAuth @RequestMapping("/register") public R register(@RequestBody JingxiaoshangEntity jingxiaoshang){ //ValidatorUtils.validateEntity(jingxiaoshang); JingxiaoshangEntity user = jingxiaoshangService.selectOne(new EntityWrapper<JingxiaoshangEntity>().eq("jingxiaoshangzhanghao", jingxiaoshang.getJingxiaoshangzhanghao())); if(user!=null) { return R.error("注册用户已存在"); } Long uId = new Date().getTime(); jingxiaoshang.setId(uId); jingxiaoshangService.insert(jingxiaoshang); return R.ok(); } / 退出 / @RequestMapping("/logout") public R logout(HttpServletRequest request) { request.getSession().invalidate(); return R.ok("退出成功"); } / 获取用户的session用户信息 / @RequestMapping("/session") public R getCurrUser(HttpServletRequest request){ Long id = (Long)request.getSession().getAttribute("userId"); JingxiaoshangEntity user = jingxiaoshangService.selectById(id); return R.ok().put("data", user); } / 密码重置 / @IgnoreAuth @RequestMapping(value = "/resetPass") public R resetPass(String username, HttpServletRequest request){ JingxiaoshangEntity user = jingxiaoshangService.selectOne(new EntityWrapper<JingxiaoshangEntity>().eq("jingxiaoshangzhanghao", username)); if(user==null) { return R.error("账号不存在"); } user.setMima("123456"); jingxiaoshangService.updateById(user); return R.ok("密码已重置为:123456"); } / 后端列表 / @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,JingxiaoshangEntity jingxiaoshang, HttpServletRequest request){ String tableName = request.getSession().getAttribute("tableName").toString(); if(tableName.equals("fengongsi")) { jingxiaoshang.setFengongsizhanghao((String)request.getSession().getAttribute("username")); } EntityWrapper<JingxiaoshangEntity> ew = new EntityWrapper<JingxiaoshangEntity>(); PageUtils page = jingxiaoshangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jingxiaoshang), params), params)); request.setAttribute("data", page); return R.ok().put("data", page); } / 前端列表 / @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params,JingxiaoshangEntity jingxiaoshang, HttpServletRequest request){ EntityWrapper<JingxiaoshangEntity> ew = new EntityWrapper<JingxiaoshangEntity>(); PageUtils page = jingxiaoshangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jingxiaoshang), params), params)); request.setAttribute("data", page); return R.ok().put("data", page); } / 列表 / @RequestMapping("/lists") public R list( JingxiaoshangEntity jingxiaoshang){ EntityWrapper<JingxiaoshangEntity> ew = new EntityWrapper<JingxiaoshangEntity>(); ew.allEq(MPUtil.allEQMapPre( jingxiaoshang, "jingxiaoshang")); return R.ok().put("data", jingxiaoshangService.selectListView(ew)); } / 查询 / @RequestMapping("/query") public R query(JingxiaoshangEntity jingxiaoshang){ EntityWrapper< JingxiaoshangEntity> ew = new EntityWrapper< JingxiaoshangEntity>(); ew.allEq(MPUtil.allEQMapPre( jingxiaoshang, "jingxiaoshang")); JingxiaoshangView jingxiaoshangView = jingxiaoshangService.selectView(ew); return R.ok("查询经销商成功").put("data", jingxiaoshangView); } / 后端详情 / @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ JingxiaoshangEntity jingxiaoshang = jingxiaoshangService.selectById(id); return R.ok().put("data", jingxiaoshang); } / 前端详情 / @IgnoreAuth @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ JingxiaoshangEntity jingxiaoshang = jingxiaoshangService.selectById(id); return R.ok().put("data", jingxiaoshang); } / 后端保存 / @RequestMapping("/save") public R save(@RequestBody JingxiaoshangEntity jingxiaoshang, HttpServletRequest request){ jingxiaoshang.setId(new Date().getTime()+new Double(Math.floor(Math.random()1000)).longValue()); //ValidatorUtils.validateEntity(jingxiaoshang); JingxiaoshangEntity user = jingxiaoshangService.selectOne(new EntityWrapper<JingxiaoshangEntity>().eq("jingxiaoshangzhanghao", jingxiaoshang.getJingxiaoshangzhanghao())); if(user!=null) { return R.error("用户已存在"); } jingxiaoshang.setId(new Date().getTime()); jingxiaoshangService.insert(jingxiaoshang); return R.ok(); } / 前端保存 / @RequestMapping("/add") public R add(@RequestBody JingxiaoshangEntity jingxiaoshang, HttpServletRequest request){ jingxiaoshang.setId(new Date().getTime()+new Double(Math.floor(Math.random()1000)).longValue()); //ValidatorUtils.validateEntity(jingxiaoshang); JingxiaoshangEntity user = jingxiaoshangService.selectOne(new EntityWrapper<JingxiaoshangEntity>().eq("jingxiaoshangzhanghao", jingxiaoshang.getJingxiaoshangzhanghao())); if(user!=null) { return R.error("用户已存在"); } jingxiaoshang.setId(new Date().getTime()); jingxiaoshangService.insert(jingxiaoshang); return R.ok(); } / 修正 / @RequestMapping("/update") @Transactional public R update(@RequestBody JingxiaoshangEntity jingxiaoshang, HttpServletRequest request){ //ValidatorUtils.validateEntity(jingxiaoshang); jingxiaoshangService.updateById(jingxiaoshang);//全部更新 return R.ok(); } / 删除 / @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ jingxiaoshangService.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<JingxiaoshangEntity> wrapper = new EntityWrapper<JingxiaoshangEntity>(); 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("fengongsi")) { wrapper.eq("fengongsizhanghao", (String)request.getSession().getAttribute("username")); } int count = jingxiaoshangService.selectCount(wrapper); return R.ok().put("count", count); } }
head.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>钢铁集团公司安全管理系统</title> <!-- Fav Icon Link --> <link rel="shortcut icon" type="image/png" href="${pageContext.request.contextPath}/resources/images/fav.png"> <!-- Bootstrap core CSS --> <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/bootstrap.min.css"> <!-- themify icons CSS --> <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/themify-icons.css"> <!-- Animations CSS --> <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/animate.css"> <!-- Main CSS --> <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/styles.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/green.css" id="style_theme"> <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/responsive.css"> <!-- morris charts --> <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/charts/css/morris.css"> <!-- jvectormap --> <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/jquery-jvectormap.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/datatable/dataTables.bootstrap4.min.css"> <script src="${pageContext.request.contextPath}/resources/js/modernizr.min.js"></script>声明

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

java系统设计,毕设辅导