设计内容
结合用户的使用需求,本系统采用运用较为广泛的Java语言,SpringBoot框架,Vue框架等关键技术,并在idea开发平台上设计与研发常规应急物资管理系统。同时,使用MySQL数据库,设计实体-联系图和数据表格,用于更好的存储和管理数据信息的数据仓库。通过使用关键技术研发本系统,并根据需求分析得出用户的主要需求,设计与实现本系统的功能模块。再通过系统测试,主要是功能测试,对系统进行纠错和改进,完善系统的不足之处,使得最后设计出的系统更能够符合使用者的需求。
设计方法及技术路线
本系统基于B/S结构模式,采用idea开发环境,建模工具Visio,以及关系型数据库MySQL。常规应急物资管理系统采用前后端分离的模式进行开发。前端开发负责页面的编写及数据的渲染。后端开发负责提供API(接口)。前后端采用指定的API接口进行交互。开发本系统具体的技术路线如下:
(1)熟练掌握并使用Microsoft Office Visio建模工具,绘制系统相关的工作流程图,实体联系图等。
(2)学习并熟识MySQL数据库的使用,设计系统相关的数据库信息,将其转换为MySQL数据库能够识别和存储的表格形式。
(3)学习并熟识idea开发平台和插件的使用,在平台运行和调试Java代码,并运用tomcat服务器将系统发布到web浏览器中。
(4)运用Java构架来开发系统,设计系统的具体功能模块,完成系统界面的布局,实现系统的优化。
(5)学习并运用功能测试方法,对系统的主要功能进行测试,进一步修改和完善系统的功能模块设计。
预期成果:
本常规应急物资管理系统的主要分为管理员角色和用户角色,主要设计的功能包括注册登录管理、密码信息管理、用户信息管理、物资信息管理等模块。
注册登录管理:使用本系统需要打开浏览器,输入相应的网址,如果用户是首次使用本系统,需要进行注册操作,注册操作需要填写个人身份信息,输入符合要求的密码,确定使用,即完成了注册操作。注册完成后,输入用户的账号和密码,只有账号和密码都正确的情况下,才能成功的登录本系统,并且实现本系统的相关功能操作。
密码信息管理:方便用户对个人的密码信息进行管理,用户通过输入原始密码,再输入新密码,然后再次输入新密码,点击确定即可完成对个人账户密码的修改。通过定时的更新个人账户密码信息,保障个人资料信息的安全。
用户信息管理:方便管理用户对相关的用户信息进行管理,管理用户可以查看到用户编号、姓名、性别、年龄、学历等信息,管理用户可以选择修改、删除相关的用户信息记录。管理用户也可以通过填写用户编号、登录密码、用户名称等信息,添加某位用户信息。
物资信息管理:方便管理用户对相关的物资信息进行管理,管理用户可以查看到物资编号、名称、图片、库存等信息,管理用户可以选择修改、删除相关的物资信息记录。管理用户也可以通过填写物资编号、名称、图片、库存等信息,添加某条物资信息。
本功能模块的核心代码如下:
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
usersService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UsersEntity user = usersService.selectById(id);
return R.ok().put("data", user);
}
本功能模块的核心代码如下:
/**
* 健康打卡后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody DakaEntity daka, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,daka:{}",this.getClass().getName(),daka.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
// else if("用户".equals(role))
// daka.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
//根据字段查询是否有相同数据
Wrapper<DakaEntity> queryWrapper = new EntityWrapper<DakaEntity>()
.notIn("id",daka.getId())
.andNew()
.eq("yonghu_id", daka.getYonghuId())
.eq("insert_time", new SimpleDateFormat("yyyy-MM-dd").format(daka.getInsertTime()))
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
DakaEntity dakaEntity = dakaService.selectOne(queryWrapper);
if(dakaEntity==null){
dakaService.updateById(daka);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}