付费内容点击下载链接,会自动复制提取码哦~
您只有支付购买后才能查看该内容!

基于SpringBoot+Vue的常规应急物资管理系统

【推广有利】

【适用人群】

  • 实践技能提升:为计算机专业学生提供实际项目经验,帮助他们将理论知识应用于真实场景,增强实践能力。
  • 深入理解开发流程:为软件开发初学者提供全面的项目开发流程介绍,帮助他们掌握各个环节的关键要素,从而打下扎实的基础。
  • 增强竞争力:通过参与项目,求职者能够提升自己的技能和经验,增加在求职市场中的竞争力,使他们在面试中更具优势。
  • 拓展研究视野:为技术研究参考者提供丰富的资源,帮助他们了解最新的技术趋势和研究方向,从而拓宽技术视野。
  • 互动学习平台:创建一个互动交流的社区,鼓励学生和开发者分享经验、提出问题,从而共同进步和成长。
  • 个性化发展指导:为参与者提供针对性的反馈和指导,帮助他们在职业发展和技术研究中做出更明智的选择。

【相关技术】

  • 编程语言:Java
  • 开发框架:SpringBoot
  • 数据库:MySQL
  • 前端技术:Vue2.0
  • 工具与平台:IntelliJ IDEA

【关于退换货】

  • 特别说明:本项目为项目学习作品,不涉及实际产品销售,因商品的可复制性,因此不涉及退换货事宜。编写代码不易,请仔细阅读项目描述后再选购,介意者慎拍,多谢谅解。

【关于售后】

  • 技术支持:承诺所有项目均可正常运行,若项目启动中出现问题,可以联系在线客服,我们将尽快回复并提供支持。

【免责声明】

  • 原创与引用声明:所有项目均为个人或团队原创,部分内容可能引用自第三方资源。
  • 版权声明:项目中的第三方库及资源均遵循相应的开源协议,任何商业使用需获得授权。
  • 责任声明:项目仅供学习和研究使用,因使用本项目造成的任何损失,作者不承担任何法律责任。

【相关文档】

【相关材料】

image-20240831134249364

【主要功能】

管理员首页

通过设计的首页功能模块,管理用户可以成功登录系统,并且选择点击相关的功能模块按钮,操作和实现自己所需要的功能,管理员首页解饿设计如图所示。

img

本功能模块的核心代码如下:

/**

​ * 登录

​ */

​ @IgnoreAuth

​ @PostMapping(value = "/login")

​ public R login(String username, String password, String captcha, HttpServletRequest request) {

​ UsersEntity user = usersService.selectOne(new EntityWrapper().eq("username", username));

​ if(user==null || !user.getPassword().equals(password)) {

​ return R.error("账号或密码不正确");

​ }

​ String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());

​ R r = R.ok();

​ r.put("token", token);

​ r.put("role",user.getRole());

​ r.put("userId",user.getId());

​ return r;

​ }

/**

* 列表

*/

@RequestMapping("/page")

public R page(@RequestParam Map<String, Object> params,UsersEntity user){

​ EntityWrapper ew = new EntityWrapper();

PageUtils page = usersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));

​ return R.ok().put("data", page);

}

个人中心

通过设计的个人中心功能模块,管理用户可以选择修改账号密码,查看个人资料信息,通过不定期的对个人账户密码进行更新,保障个人信息安全,修改密码界面设计如图5-1所示,个人信息界面设计如图所示。

img

img

本功能模块的核心代码如下:

/**

* 密码重置

*/

@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);

}

健康打卡管理

通过设计的健康打卡管理功能模块,管理用户可以管理相关的健康打卡信息记录,比如进行查看健康打卡的详细信息,修改健康打卡的日期信息,删除已经失效的健康打卡信息记录等操作,健康打卡管理界面设计如图所示。

img

本功能模块的核心代码如下:

/**

* 健康打卡后端修改

*/

@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 queryWrapper = new EntityWrapper()

​ .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,"表中有相同数据");

​ }

}

基础数据管理

通过设计的基础数据管理功能模块,管理用户可以管理相关的物资类型信息记录,比如进行查看物资类型的详细信息,修改物资类型的名称信息,删除已经失效的物资类型信息记录等操作,物资类型管理界面设计如图所示。

img

本功能模块的核心代码如下:

/**

* 基础数据后端修改

*/

@RequestMapping("/update")

public R update(@RequestBody DictionaryEntity dictionary, HttpServletRequest request){

​ logger.debug("update方法:,,Controller:{},,dictionary:{}",this.getClass().getName(),dictionary.toString());

​ String role = String.valueOf(request.getSession().getAttribute("role"));

// if(false)

// return R.error(511,"永远不会进入");

​ //根据字段查询是否有相同数据

​ Wrapper queryWrapper = new EntityWrapper()

​ .notIn("id",dictionary.getId())

​ .eq("dic_code", dictionary.getDicCode())

​ .eq("index_name", dictionary.getIndexName())

​ ;

​ if(dictionary.getDicCode().contains("_erji_types")){

​ queryWrapper.eq("super_id",dictionary.getSuperId());

​ }

​ logger.info("sql语句:"+queryWrapper.getSqlSegment());

​ DictionaryEntity dictionaryEntity = dictionaryService.selectOne(queryWrapper);

​ if(dictionaryEntity==null){

​ dictionaryService.updateById(dictionary);//根据id更新

​ //如果字典表修改数据的话,把数据再重新查出,放入监听器中

​ List dictionaryEntities = dictionaryService.selectList(new EntityWrapper());

​ ServletContext servletContext = request.getServletContext();

​ Map<String, Map<Integer,String>> map = new HashMap<>();

​ for(DictionaryEntity d :dictionaryEntities){

​ Map<Integer, String> m = map.get(d.getDicCode());

​ if(m ==null || m.isEmpty()){

​ m = new HashMap<>();

​ }

​ m.put(d.getCodeIndex(),d.getIndexName());

​ map.put(d.getDicCode(),m);

​ }

​ servletContext.setAttribute("dictionaryMap",map);

​ return R.ok();

​ }else {

​ return R.error(511,"表中有相同数据");

​ }

}

物资管理

通过设计的物资管理功能模块,管理用户可以管理相关的物资信息记录,比如进行查看物资的详细信息,修改物资的库存信息,删除已经失效的物资信息记录等操作,物资管理界面设计如图所示。

img

本功能模块的核心代码如下:

/**

* 物资后端修改

*/

@RequestMapping("/update")

public R update(@RequestBody WuziEntity wuzi, HttpServletRequest request){

​ logger.debug("update方法:,,Controller:{},,wuzi:{}",this.getClass().getName(),wuzi.toString());

​ String role = String.valueOf(request.getSession().getAttribute("role"));

// if(false)

// return R.error(511,"永远不会进入");

​ //根据字段查询是否有相同数据

​ Wrapper queryWrapper = new EntityWrapper()

​ .notIn("id",wuzi.getId())

​ .andNew()

​ .eq("wuzi_name", wuzi.getWuziName())

​ .eq("wuzi_types", wuzi.getWuziTypes())

​ .eq("wuzi_kucun_number", wuzi.getWuziKucunNumber())

​ .eq("wuzi_danwei", wuzi.getWuziDanwei())

​ .eq("wuzi_delete", wuzi.getWuziDelete())

​ ;

​ logger.info("sql语句:"+queryWrapper.getSqlSegment());

​ WuziEntity wuziEntity = wuziService.selectOne(queryWrapper);

​ if("".equals(wuzi.getWuziPhoto()) || "null".equals(wuzi.getWuziPhoto())){

​ wuzi.setWuziPhoto(null);

​ }

​ if(wuziEntity==null){

​ wuziService.updateById(wuzi);//根据id更新

​ return R.ok();

​ }else {

​ return R.error(511,"表中有相同数据");

​ }

}

物资申请管理

通过设计的物资申请管理功能模块,管理用户可以管理相关的物资申请信息记录,比如进行查看物资申请的详细信息,修改物资的申请时间信息,删除已经失效的物资申请信息记录等操作,物资申请管理界面设计如图所示。

img

图物资申请管理界面

本功能模块的核心代码如下:

/**

* 物资申请后端保存

*/

@RequestMapping("/save")

public R save(@RequestBody WuzishenqingEntity wuzishenqing, HttpServletRequest request){

​ logger.debug("save方法:,,Controller:{},,wuzishenqing:{}",this.getClass().getName(),wuzishenqing.toString());

​ String role = String.valueOf(request.getSession().getAttribute("role"));

​ if(false)

​ return R.error(511,"永远不会进入");

​ else if("用户".equals(role))

​ wuzishenqing.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

​ wuzishenqing.setInsertTime(new Date());

​ wuzishenqing.setWuzishenqingYesnoTypes(1);

​ wuzishenqing.setCreateTime(new Date());

​ wuzishenqingService.insert(wuzishenqing);

​ return R.ok();

}

/**

* 物资申请后端修改

*/

@RequestMapping("/update")

public R update(@RequestBody WuzishenqingEntity wuzishenqing, HttpServletRequest request){

​ logger.debug("update方法:,,Controller:{},,wuzishenqing:{}",this.getClass().getName(),wuzishenqing.toString());

​ wuzishenqingService.updateById(wuzishenqing);//根据id更新

​ return R.ok();

}

物资运输管理

通过设计的物资运输管理功能模块,管理用户可以管理相关的物资运输信息记录,比如进行查看物资运输的详细信息,修改物资运输的当前状态信息,删除已经失效的物资运输信息记录等操作,物资运输管理界面设计如图所示。

img

本功能模块的核心代码如下:

/**

* 物资运输后端保存

*/

@RequestMapping("/save")

public R save(@RequestBody WuziyunshuEntity wuziyunshu, HttpServletRequest request){

​ logger.debug("save方法:,,Controller:{},,wuziyunshu:{}",this.getClass().getName(),wuziyunshu.toString());

​ String role = String.valueOf(request.getSession().getAttribute("role"));

​ if(false)

​ return R.error(511,"永远不会进入");

​ wuziyunshu.setUpdateTime(new Date());

​ wuziyunshu.setInsertTime(new Date());

​ wuziyunshu.setCreateTime(new Date());

​ wuziyunshuService.insert(wuziyunshu);

​ return R.ok();

}

/**

* 物资运输后端修改

*/

@RequestMapping("/update")

public R update(@RequestBody WuziyunshuEntity wuziyunshu, HttpServletRequest request){

​ logger.debug("update方法:,,Controller:{},,wuziyunshu:{}",this.getClass().getName(),wuziyunshu.toString());

​ wuziyunshu.setUpdateTime(new Date());

​ wuziyunshuService.updateById(wuziyunshu);//根据id更新

​ return R.ok();

}

用户管理

通过设计的用户管理功能模块,管理用户可以管理相关的用户信息资料,比如进行查看用户的详细资料,修改用户的联系方式,删除已经注销的用户信息记录等操作,用户管理界面设计如图所示。

img

本功能模块的核心代码如下:

/**

* 用户后端修改

*/

@RequestMapping("/update")

public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request){

​ logger.debug("update方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());

​ String role = String.valueOf(request.getSession().getAttribute("role"));

// if(false)

// return R.error(511,"永远不会进入");

​ //根据字段查询是否有相同数据

​ Wrapper queryWrapper = new EntityWrapper()

​ .notIn("id",yonghu.getId())

​ .andNew()

​ .eq("username", yonghu.getUsername())

​ .or()

​ .eq("yonghu_phone", yonghu.getYonghuPhone())

​ .or()

​ .eq("yonghu_id_number", yonghu.getYonghuIdNumber())

​ ;

​ logger.info("sql语句:"+queryWrapper.getSqlSegment());

​ YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);

​ if("".equals(yonghu.getYonghuPhoto()) || "null".equals(yonghu.getYonghuPhoto())){

​ yonghu.setYonghuPhoto(null);

​ }

​ if(yonghuEntity==null){

​ yonghuService.updateById(yonghu);//根据id更新

​ return R.ok();

​ }else {

​ return R.error(511,"账户或者用户手机号或者用户身份证号已经被使用");

​ }

}

部门管理

通过设计的部门管理功能模块,管理用户可以管理相关的部门信息记录,比如进行查看部门的详细信息,修改部门的职责信息,删除已经失效的部门信息记录等操作,部门管理界面设计如图所示。

img

本功能模块的核心代码如下:

/**

* 部门后端修改

*/

@RequestMapping("/update")

public R update(@RequestBody BumenEntity bumen, HttpServletRequest request){

​ logger.debug("update方法:,,Controller:{},,bumen:{}",this.getClass().getName(),bumen.toString());

​ String role = String.valueOf(request.getSession().getAttribute("role"));

// if(false)

// return R.error(511,"永远不会进入");

​ //根据字段查询是否有相同数据

​ Wrapper queryWrapper = new EntityWrapper()

​ .notIn("id",bumen.getId())

​ .andNew()

​ .eq("bumen_name", bumen.getBumenName())

​ .eq("bumen_zhize", bumen.getBumenZhize())

​ .eq("bumen_number", bumen.getBumenNumber())

​ ;

​ logger.info("sql语句:"+queryWrapper.getSqlSegment());

​ BumenEntity bumenEntity = bumenService.selectOne(queryWrapper);

​ if(bumenEntity==null){

​ bumenService.updateById(bumen);//根据id更新

​ return R.ok();

​ }else {

​ return R.error(511,"表中有相同数据");

​ }

}

用户首页

通过设计的首页功能模块,管理用户可以成功登录系统,并且选择点击相关的功能模块按钮,操作和实现自己所需要的功能,管理员首页解饿设计如图所示。

img

本功能模块的核心代码如下:

/**

* 首页后端保存

*/

@RequestMapping("/save")

public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request){

​ logger.debug("save方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());

​ String role = String.valueOf(request.getSession().getAttribute("role"));

​ if(false)

​ return R.error(511,"永远不会进入");

​ Wrapper queryWrapper = new EntityWrapper()

​ .eq("username", yonghu.getUsername())

​ .or()

​ .eq("yonghu_phone", yonghu.getYonghuPhone())

​ .or()

​ .eq("yonghu_id_number", yonghu.getYonghuIdNumber())

​ ;

logger.info("sql语句:"+queryWrapper.getSqlSegment());

​ YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);

​ if(yonghuEntity==null){

​ yonghu.setCreateTime(new Date());

​ yonghu.setPassword("123456");

​ yonghuService.insert(yonghu);

​ return R.ok();

​ }else {

​ return R.error(511,"账户或者用户手机号或者用户身份证号已经被使用");

​ }

}

个人中心

通过设计的个人中心管理功能模块,用户可以选择查看个人资料信息,选择更新个人相关的资料信息记录;也可以选择修改账号密码,通过不定期的对个人账户密码进行更新,保障个人信息安全,修改密码界面设计如图5-11所示,个人信息界面设计如图所示。

img

img

本功能模块的核心代码如下:

//查询是否重复

​ //账户

​ List yonghuEntities_username = yonghuService.selectList(new EntityWrapper().in("username", seachFields.get("username")));

​ if(yonghuEntities_username.size() >0 ){

​ ArrayList repeatFields = new ArrayList<>();

​ for(YonghuEntity s:yonghuEntities_username){

​ repeatFields.add(s.getUsername());

​ }

​ return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());

​ }

​ //用户手机号

​ List yonghuEntities_yonghuPhone = yonghuService.selectList(new EntityWrapper().in("yonghu_phone", seachFields.get("yonghuPhone")));

​ if(yonghuEntities_yonghuPhone.size() >0 ){

​ ArrayList repeatFields = new ArrayList<>();

​ for(YonghuEntity s:yonghuEntities_yonghuPhone){

​ repeatFields.add(s.getYonghuPhone());

​ }

​ return R.error(511,"数据库的该表中的 [用户手机号] 字段已经存在 存在数据为:"+repeatFields.toString());

​ }

​ //用户身份证号

​ List yonghuEntities_yonghuIdNumber = yonghuService.selectList(new EntityWrapper().in("yonghu_id_number", seachFields.get("yonghuIdNumber")));

​ if(yonghuEntities_yonghuIdNumber.size() >0 ){

​ ArrayList repeatFields = new ArrayList<>();

​ for(YonghuEntity s:yonghuEntities_yonghuIdNumber){

​ repeatFields.add(s.getYonghuIdNumber());

​ }

​ return R.error(511,"数据库的该表中的 [用户身份证号] 字段已经存在 存在数据为:"+repeatFields.toString());

​ }

​ yonghuService.insertBatch(yonghuList);

​ return R.ok();

​ }

健康打卡管理

通过设计的健康打卡管理功能模块,用户可以管理相关的健康打卡信息记录,比如进行查看健康打卡的详细信息,修改健康打卡的日期信息,删除已经失效的健康打卡信息记录等操作,健康打卡管理界面设计如图所示。

img

本功能模块的核心代码如下:

/**

* 健康打卡后端详情

*/

@RequestMapping("/info/{id}")

public R info(@PathVariable("id") Long id, HttpServletRequest request){

​ logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);

​ DakaEntity daka = dakaService.selectById(id);

​ if(daka !=null){

​ //entity转view

​ DakaView view = new DakaView();

​ BeanUtils.copyProperties( daka , view );//把实体数据重构到view中

​ //级联表

​ YonghuEntity yonghu = yonghuService.selectById(daka.getYonghuId());

​ if(yonghu != null){

​ BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段

​ view.setYonghuId(yonghu.getId());

​ }

​ //修改对应字典表字段

​ dictionaryService.dictionaryConvert(view, request);

​ return R.ok().put("data", view);

​ }else {

​ return R.error(511,"查不到数据");

​ }

}

物资管理

通过设计的物资管理功能模块,管理用户可以查看相关的物资信息记录,可以查到物资名称、物资图片、物资类型、物资库存等详细信息,物资管理界面设计如图所示。

img

本功能模块的核心代码如下:

/**

* 物资后端详情

*/

@RequestMapping("/info/{id}")

public R info(@PathVariable("id") Long id, HttpServletRequest request){

​ logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);

​ WuziEntity wuzi = wuziService.selectById(id);

​ if(wuzi !=null){

​ //entity转view

​ WuziView view = new WuziView();

​ BeanUtils.copyProperties( wuzi , view );//把实体数据重构到view中

​ //修改对应字典表字段

​ dictionaryService.dictionaryConvert(view, request);

​ return R.ok().put("data", view);

​ }else {

​ return R.error(511,"查不到数据");

​ }

}

物资申请管理

通过设计的物资申请管理功能模块,用户可以管理相关的物资申请信息记录,比如进行查看物资申请的详细信息,新增相关的物资申请信息记录,物资申请管理界面设计如图所示。

img

本功能模块的核心代码如下:

/**

* 物资申请后端详情

*/

@RequestMapping("/info/{id}")

public R info(@PathVariable("id") Long id, HttpServletRequest request){

​ logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);

​ WuzishenqingEntity wuzishenqing = wuzishenqingService.selectById(id);

​ if(wuzishenqing !=null){

​ //entity转view

​ WuzishenqingView view = new WuzishenqingView();

​ BeanUtils.copyProperties( wuzishenqing , view );//把实体数据重构到view中

​ //级联表

​ WuziEntity wuzi = wuziService.selectById(wuzishenqing.getWuziId());

​ if(wuzi != null){

​ BeanUtils.copyProperties( wuzi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段

​ view.setWuziId(wuzi.getId());

​ }

​ //级联表

​ YonghuEntity yonghu = yonghuService.selectById(wuzishenqing.getYonghuId());

​ if(yonghu != null){

​ BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段

​ view.setYonghuId(yonghu.getId());

​ }

​ //修改对应字典表字段

​ dictionaryService.dictionaryConvert(view, request);

​ return R.ok().put("data", view);

​ }else {

​ return R.error(511,"查不到数据");

​ }

}

物资运输管理

通过设计的物资运输管理功能模块,用户可以查看相关的物资运输信息记录,比如查到物资名称、物资图片、单位、运输数量、当前状态等详细信息,物资运输管理界面设计如图所示。

img

图物资运输管理界面

本功能模块的核心代码如下:

/**

* 物资运输后端详情

*/

@RequestMapping("/info/{id}")

public R info(@PathVariable("id") Long id, HttpServletRequest request){

​ logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);

​ WuziyunshuEntity wuziyunshu = wuziyunshuService.selectById(id);

​ if(wuziyunshu !=null){

​ //entity转view

​ WuziyunshuView view = new WuziyunshuView();

​ BeanUtils.copyProperties( wuziyunshu , view );//把实体数据重构到view中

​ //级联表

​ WuziEntity wuzi = wuziService.selectById(wuziyunshu.getWuziId());

​ if(wuzi != null){

​ BeanUtils.copyProperties( wuzi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段

​ view.setWuziId(wuzi.getId());

​ }

​ //修改对应字典表字段

​ dictionaryService.dictionaryConvert(view, request);

​ return R.ok().put("data", view);

​ }else {

​ return R.error(511,"查不到数据");

​ }

}