✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
文末获取项目下载方式
一、项目背景介绍:
当前,中学的化学实验教学越来越重视,为了让学生对化学有更深刻的了解,必须要进行大量的化学实验。然而,由于耗材数量众多,很难有效地管理。因此,研发一个中学化学实验室耗材管理系统显得十分必要。
这个系统可以帮助学校有效地管理实验室耗材的数量,从而提高实验的效率和质量。它可以实现对耗材的自动化管理,包括耗材的入库、出库、分配和回收。同时,它还可以管理预约和使用历史记录,方便管理人员对耗材的使用情况进行监控和评估。
这个系统的开发将使中学的化学实验教学更加高效、科学,更好地满足学生的需求。
二、项目技术简介:
三、系统功能模块介绍:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SHTYPlMo-1676475266252)(https://code-graden-server-dev.oss-cn-beijing.aliyuncs.com/2023-02-14/81618abe-9212-4ca5-8ebd-f68838b70ed6_448c8ed74497e28966c2cd53b72bc5d.png)]
四、数据库设计:
‘非常规耗材申请表’(apply)
| 字段名 | 类型 | 默认值 | 列注释 |
| --------- | ------------- | ------ | ------ |
| id | bigint | NULL | 主键ID |
| user_id | bigint | NULL | 用户ID |
| consumables_id | bigint | NULL | 非常规耗材ID |
| create_date | datetime | NULL | 创建时间 |
| updata_date | datetime | NULL | 更新时间 |
| apply_date | datetime | NULL | 申请时间 |
| status | bigint | NULL | 申请状态(select)(search)[0:申请中,1:通过,2:驳回,3:完成] |
‘常规器材预约表’(appointment)
| 字段名 | 类型 | 默认值 | 列注释 |
| --------- | ------------- | ------ | ------ |
| id | bigint | NULL | 主键ID |
| user_id | bigint | NULL | 用户ID |
| equipment_id | bigint | NULL | 常规器材ID |
| appointment_date | datetime | NULL | 预约时间 |
| create_date | datetime | NULL | 创建时间 |
| updata_date | datetime | NULL | 更新时间 |
| status | tinyint | NULL | 器材状态(select)(search)[0:预约中,1:完成] |
‘非常规耗材信息表’(consumables)
| 字段名 | 类型 | 默认值 | 列注释 |
| --------- | ------------- | ------ | ------ |
| id | bigint | NULL | 主键ID |
| type_id | bigint | NULL | 非常规耗材类型(select)(search) |
| name | varchar | NULL | 非常规耗材名称(search) |
| price | bigint | NULL | 价格(search) |
| remark | varchar | NULL | 备注(search) |
| create_date | datetime | NULL | 入库时间 |
| updata_date | datetime | NULL | 更新时间 |
| delete_date | datetime | NULL | 出库时间 |
| status | tinyint | NULL | 非常规耗材状态(select)(search)[0:冻结,1:正常] |
| img | varchar | NULL | 头像(img) |
‘非常规耗材类型表’(consumables_type)
| 字段名 | 类型 | 默认值 | 列注释 |
| --------- | ------------- | ------ | ------ |
| id | bigint | NULL | 主键ID |
| name | varchar | NULL | 非常规耗材类型名称(search) |
| create_date | datetime | NULL | 创建时间 |
| updata_date | datetime | NULL | 更新时间 |
‘常规器材信息表’(equipment)
| 字段名 | 类型 | 默认值 | 列注释 |
| --------- | ------------- | ------ | ------ |
| id | bigint | NULL | 主键ID |
| type_id | bigint | NULL | 常规器材类型(select)(search) |
| name | varchar | NULL | 常规器材名称(search) |
| price | bigint | NULL | 价格(search) |
| remark | varchar | NULL | 备注(search) |
| create_date | datetime | NULL | 入库时间 |
| updata_date | datetime | NULL | 更新时间 |
| delete_date | datetime | NULL | 出库时间 |
| status | tinyint | NULL | 状态(select)(search)[0:冻结,1:正常] |
| img | varchar | NULL | 头像(img) |
‘常规器材类型表’(equipment_type)
| 字段名 | 类型 | 默认值 | 列注释 |
| --------- | ------------- | ------ | ------ |
| id | bigint | NULL | 主键ID |
| name | varchar | NULL | 常规器材类型名称(search) |
| create_date | datetime | NULL | 创建时间 |
| updata_date | datetime | NULL | 更新时间 |
‘用户信息表’(user)
| 字段名 | 类型 | 默认值 | 列注释 |
| --------- | ------------- | ------ | ------ |
| id | bigint | NULL | 主键ID |
| user_name | varchar | NULL | 用户名(search) |
| pass_word | varchar | NULL | 密码 |
| real_name | varchar | NULL | 真实姓名(search) |
| role | tinyint | NULL | 角色(select)(search)[0:后台管理员,1:前端用户] |
| status | tinyint | NULL | 状态(select)(search)[0:冻结,1:正常] |
| img | varchar | NULL | 头像(img) |
| create_date | datetime | NULL | 创建时间 |
| updata_date | datetime | NULL | 更新时间 |
五、功能模块:
非常规耗材申请:非常规耗材申请界面可以根据非常规耗材的名称对处于申请中的非常规耗材信息进行搜索,并且可以添加新的非常规耗材使用申请、修改处于申请中的非常规耗材申请、删除申请中的申请信息 此处无法查询、修改、删除已经被管理员处理过的数据,因已经处理过的数据再进行修改删除的话则不符合实际的业务场景
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5uowDNJw-1676475266253)(https://code-graden-server-dev.oss-cn-beijing.aliyuncs.com/2023-02-13/e80b9a79-bc31-4a95-85d4-f8ab47991b6e_微信图片_20230213202148.png)]
常规器材预约:常规器材预约界面可以根据常规器材的名称对处于预约中的常规器材信息进行搜索,并且可以添加新的常规器材使用预约、修改处于预约中的常规器材预约、删除预约中的预约请信息 此处无法查询、修改、删除已经被管理员处理过的数据,因已经处理过的数据再进行修改删除的话则不符合实际的业务场景
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J1l8bcc5-1676475266254)(https://code-graden-server-dev.oss-cn-beijing.aliyuncs.com/2023-02-13/e5c7e35c-5d9f-4976-824c-4f41309d0aab_微信图片_202302132021481.png)]
非常规耗材申请记录:非常规耗材申请记录界面可以查看历史非常规耗材的申请记录,此处的非常规耗材的申请记录是指已经被管理员处理过的数据,在界面上可以根据非常规耗材的耗材名称进行搜索
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gIRXuc3j-1676475266267)(https://code-graden-server-dev.oss-cn-beijing.aliyuncs.com/2023-02-13/588fb919-3de1-43a7-8978-18147c6b05c0_微信图片_202302132021482.png)]
用户与管理员登录:管理员和用户可以分别在对于的界面中进行登录
六、代码示例:
@GetMapping("/all/consumablesType")
public ReturnMsg allConsumablesType() {
List<BaseSelectEntity> list = new ArrayList<>();
List<ConsumablesTypeDTO> dtos = consumablesTypeService.list();
for (ConsumablesTypeDTO dto : dtos) {
BaseSelectEntity baseSelectEntity = new BaseSelectEntity();
baseSelectEntity.setKey(dto.getId());
baseSelectEntity.setValue(dto.getName());
list.add(baseSelectEntity);
}
return ReturnMsg.ok(list);
}
@Override
protected void beforeUpdate(ConsumablesDTO entity) throws Exception {
if(entity.getStatus() != null && entity.getStatus() == 0){
entity.setDeleteDate(new Date());
}
entity.setUpdataDate(new Date());
super.beforeUpdate(entity);
}
/**
* 默认分页查询
* @param equipmentDTO
* @return
*/
@PostMapping("/page")
public ReturnMsg page(@RequestBody EquipmentDTO equipmentDTO) {
return ReturnMsg.ok(baseService.basePage(equipmentDTO));
}
@GetMapping("/all/equipmentType")
public ReturnMsg allEquipmentType() {
List<BaseSelectEntity> list = new ArrayList<>();
List<EquipmentTypeDTO> dtos = equipmentTypeService.list();
for (EquipmentTypeDTO dto : dtos) {
BaseSelectEntity baseSelectEntity = new BaseSelectEntity();
baseSelectEntity.setKey(dto.getId());
baseSelectEntity.setValue(dto.getName());
list.add(baseSelectEntity);
}
return ReturnMsg.ok(list);
}
@Override
protected void beforeSave(ConsumablesDTO entity) throws Exception {
if(entity.getStatus() != null && entity.getStatus() == 0){
entity.setDeleteDate(new Date());
}
entity.setCreateDate(new Date());
entity.setUpdataDate(new Date());
super.beforeSave(entity);
}
@PostMapping("/admin")
public ReturnMsg manageLoginAdmin(@RequestBody Map<String, String> param) {
if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {
return ReturnMsg.error("用户名或密码错误!");
}
UserDTO userDTO = new UserDTO();
userDTO.setUserName(param.get("username"));
userDTO.setPassWord(param.get("password"));
userDTO.setRole(0);
userDTO.setStatus(1);
QueryWrapper<UserDTO> userDTOQueryWrapper = new QueryWrapper<>(userDTO);
userDTOQueryWrapper.last("limit 1");
UserDTO adminDTOS = userService.getOne(userDTOQueryWrapper);
if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");
Map<String, Object> map = new HashMap<>();
map.put("avatar", StrUtil.isNotBlank(adminDTOS.getImg()) ? adminDTOS.getImg() : "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
map.put("introduction", adminDTOS.getRealName() + ",你好!");
map.put("name", adminDTOS.getRealName());
map.put("roles", Arrays.asList("admin"));
map.put("userinfo", adminDTOS);
Map<String, String> returnMap = new HashMap<>();
String uuid = UUID.randomUUID().toString();
returnMap.put("token", uuid);
userInfoMap.put(uuid, JSON.toJSONString(map));
return ReturnMsg.ok(returnMap);
}
七、项目总结:
当前,中学化学实验室耗材管理系统是一个有前途和潜力的项目,旨在解决中学化学实验室耗材管理问题。
该系统分为管理员模块和用户模块,管理员模块负责系统用户管理、管理员用户登录、用户账号分配、用户预约管理、常规器材管理、非常规耗材管理、常规器材分类管理、非常规耗材分类分类管理、采购信息管理(入库出库)、废料回收管理等功能;用户模块提供用户登录、常规器材预约、非常规耗材申请、历史记录查询等功能。
本项目通过使用高效的数据存储结构和算法,以及稳健的架构设计,来保证系统的可靠性和灵活性。通过详细的测试,我们可以确保系统能够满足用户的需求,并且满足软件质量标准。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看获取联系方式
链接点击直达:下载链接