旅行社网站的建设开题报告,wordpress弹窗登陆,江苏省网站备案注销,前端项目文末获取源码#xff0c;项目编号#xff1a; S 081 。 \color{red}{文末获取源码#xff0c;项目编号#xff1a;S081。} 文末获取源码#xff0c;项目编号#xff1a;S081。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗… 文末获取源码项目编号 S 081 。 \color{red}{文末获取源码项目编号S081。} 文末获取源码项目编号S081。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要
1.1 项目介绍
基于JAVAVueSpringBootMySQL的实验室耗材管理系统包含了耗材档案模块、耗材入库模块、耗材出库模块、耗材申请模块、耗材审核模块和耗材图表模块还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块实验室耗材管理系统基于角色的访问控制给管理员和耗材管理专员使用可将权限精确到按钮级别您可以自定义角色并分配权限系统适合设计精确的权限约束需求。
1.2 项目录屏 源码下载 二、功能模块
2.1 耗材档案模块
实验室耗材管理系统的耗材档案模块是用来管理和维护实验室中所有耗材的信息的模块。它可以帮助实验室管理人员有效地记录和跟踪实验室中的耗材信息包括耗材的名称、规格、型号、供应商、采购日期、有效期、存放位置等。
实验室管理人员可以通过耗材档案模块将新购买的耗材信息录入系统中包括耗材的基本信息和相关属性。实验室管理人员可以根据耗材的各种属性进行查询快速定位和查找需要的耗材信息。耗材档案模块可以记录耗材的采购日期、供应商信息以及入库数量等帮助管理人员对耗材进行合理的入库管理。当实验室需要使用某种耗材时管理人员可以通过耗材档案模块进行出库操作记录出库数量和使用目的等信息。
耗材档案模块可以实时统计和更新实验室中各种耗材的库存情况提醒管理人员及时进行补充采购。当某种耗材过期或损坏无法使用时可以通过耗材档案模块进行报废管理记录报废原因和处理方式等信息。通过耗材档案模块实验室管理人员可以更加方便地管理和控制实验室中的耗材提高耗材的利用率和管理效率。
2.2 耗材入库模块
实验室耗材管理系统的耗材入库模块是用来记录和管理实验室中新购买的耗材入库信息的模块。实验室管理人员可以通过耗材入库模块将新购买的耗材信息录入系统中。包括耗材的名称、规格、型号、供应商、采购日期、有效期等基本信息。录入耗材信息时还可以添加附加属性如物料编号、批次号、条形码等。在录入耗材信息的同时管理人员需要填写入库数量。系统会自动计算并更新库存数量方便管理人员实时掌握实验室中各种耗材的库存情况。
耗材入库模块通常也包含供应商管理功能可以记录供应商的联系信息、合作情况和评价等。在入库时管理人员可以选择已经建立的供应商并关联相应的耗材采购信息。耗材入库模块一般会生成入库单用于记录每次耗材入库的详细信息包括入库日期、供应商、采购单号、入库人等。管理人员可以根据入库单进行查询和统计方便日后追溯和审核。有些实验室可能需要对入库的耗材进行质检。耗材入库模块可以提供相应的功能管理人员可以记录质检结果、质检人员和质检日期等信息确保入库的耗材符合实验室的质量要求。通过耗材入库模块实验室管理人员可以方便地记录和管理实验室中新购买的耗材信息及时更新库存数量提高耗材管理的效率和准确性。
2.3 耗材出库模块
实验室耗材管理系统的耗材出库模块是用来记录和管理实验室中耗材的出库信息的模块。实验室管理人员可以通过耗材出库模块根据耗材的名称、规格、型号等信息进行查询,快速定位需要出库的耗材。管理人员可以通过耗材出库模块进行耗材的出库操作。在出库时,需要填写出库数量以及使用目的等相关信息。同时,系统会自动更新库存数量,确保库存信息的准确性。耗材出库模块一般会生成出库单,记录每次耗材出库的详细信息,包括出库日期、出库人、领用单位等。这些信息可以用于后续的追溯和审核。
耗材出库模块可以记录每次耗材的使用记录,包括使用人、使用日期、使用目的等。这样可以方便实验室管理人员对耗材的使用情况进行统计和分析。在耗材出库模块中,可以设置库存预警功能。当某种耗材的库存数量低于预设阈值时,系统会自动生成提醒通知,以便管理人员及时进行补充采购。通过耗材出库模块,实验室管理人员可以方便地记录和管理实验室中耗材的出库信息,及时更新库存数量,提高耗材管理的效率和准确性。
2.4 耗材申请模块
实验室耗材管理系统的耗材申请模块是用来方便实验室人员提交耗材申请并进行审批流程的模块。实验室内的人员可以通过耗材申请模块提交耗材的申请。在申请时,需要填写所需耗材的名称、数量、用途等相关信息。耗材申请模块一般会设计审批流程,包括申请人、审批人、审批顺序等。申请人提交耗材申请后,相应的审批人会收到通知,进行审批操作。系统会记录每个审批环节的处理情况,以便后续查询和追溯。耗材申请模块会根据用户的权限设置不同的审批权限。只有具有相应权限的人员才能进行审批操作,确保审批过程的安全性和准确性。
耗材申请模块会记录每次耗材申请的详细信息,包括申请日期、申请人、审批状态等。管理人员可以通过查询功能查看和统计申请记录,方便管理和掌握实验室内的耗材使用情况。耗材申请模块会通过系统消息或邮件等方式通知相关人员的申请状态和审批结果,提高沟通效率和及时性。通过耗材申请模块,实验室内的人员可以方便地提交耗材申请并进行审批流程,提高申请的准确性和效率。同时,管理人员可以更好地掌握和管理实验室的耗材使用情况。
2.5 耗材审核模块
实验室耗材管理系统的耗材审核模块是该系统中的一个重要部分用于对实验室耗材的采购申请进行审核和管理。实验室成员可以通过系统向耗材审核模块提交耗材采购申请包括所需耗材的名称、规格、数量、用途等信息。申请提交后会自动生成一个申请单。申请单会经过一定的审核流程根据实验室的设定可以包括多级审核。审核人员可以对申请单进行审核、审批以及驳回操作。审核人员可以查看申请单的详细信息包括耗材的具体需求和用途。
系统会记录每一次审核的结果和审核人的意见以便后续查询和审计。审核记录可在系统中进行查看和导出方便实验室管理人员进行数据分析和监控。系统可以通过邮件、短信等方式向相关人员发送审核结果的通知提醒实验室成员耗材采购申请的进展情况。审核通过的耗材采购申请可以自动更新实验室的耗材库存信息方便实验室管理人员进行库存管理和统计。
通过耗材审核模块实验室可以实现对耗材采购申请的规范化、集中化管理提高审核效率减少人工操作和错误确保实验室耗材的合理使用和供应链管理的准确性。 三、系统展示 四、核心代码
4.1 查询耗材品类
ApiOperation(value 查询耗材品类)
RequestMapping(value /getByPage, method RequestMethod.GET)
public ResultIPageAssetsType getByPage(ModelAttribute AssetsType assetsType, ModelAttribute PageVo page, RequestParam(required false) String natureType) {QueryWrapperAssetsType qw new QueryWrapperAssetsType();if(StrUtil.isNotBlank(natureType)) {if(natureType.equals(1)){qw.eq(nature, 固定资产);}else{qw.eq(nature, 耗材);}}if(!ZwzNullUtils.isNull(assetsType.getNature())) {qw.eq(nature, assetsType.getNature());}if(!ZwzNullUtils.isNull(assetsType.getAssetName())) {qw.like(asset_name, assetsType.getAssetName());}return new ResultUtilIPageAssetsType().setData(iAssetsTypeService.page(PageUtil.initMpPage(page),qw));
}4.2 查询资产出库清单
ApiOperation(value 查询资产出库清单)
RequestMapping(value /getByPage, method RequestMethod.GET)
public ResultIPageWarehouseOut getByPage(ModelAttribute WarehouseOut warehouseOut, ModelAttribute PageVo page){QueryWrapperWarehouseOut qw new QueryWrapperWarehouseOut();if(!ZwzNullUtils.isNull(warehouseOut.getNature())) {qw.eq(nature, warehouseOut.getNature());}if(!ZwzNullUtils.isNull(warehouseOut.getAssetName())) {qw.like(asset_name, warehouseOut.getAssetName());}if(!ZwzNullUtils.isNull(warehouseOut.getRecipients())) {qw.like(recipients, warehouseOut.getRecipients());}IPageWarehouseOut data iWarehouseOutService.page(PageUtil.initMpPage(page),qw);for (WarehouseOut wh : data.getRecords()) {AssetsType assetsType iAssetsTypeService.getById(wh.getAssetId());double existnumber Double.parseDouble(assetsType.getExistingNumber()) Double.parseDouble(wh.getNumber());wh.setExistNumber( existnumber);}return new ResultUtilIPageWarehouseOut().setData(data);
}4.3 资产出库
ApiOperation(value 资产出库)
RequestMapping(value /insertOrUpdate, method RequestMethod.POST)
public ResultWarehouseOut saveOrUpdate(WarehouseOut warehouseOut){WarehouseOut oldWarehouseOut iWarehouseOutService.getById(warehouseOut.getId());double oldNumber 0.0;if(oldWarehouseOut ! null){oldNumber Double.parseDouble(oldWarehouseOut.getNumber());}// outNumber 要出库的数量double outNumber Double.parseDouble(warehouseOut.getNumber());AssetsType oldAssetsType iAssetsTypeService.getById(warehouseOut.getAssetId());if(oldAssetsType ! null){// newNumber 出库后还有的数量 仓库原本还有的数量 - 出库单的出库数量 原有出库单的出库数量Double newNumber Double.parseDouble(oldAssetsType.getExistingNumber()) - outNumber oldNumber;if(newNumber 0){oldAssetsType.setExistingNumber(newNumber );iAssetsTypeService.saveOrUpdate(oldAssetsType);}else{return ResultUtil.error(手慢啦!库存不足!);}}if(ZwzNullUtils.isNull(warehouseOut.getId())) {warehouseOut.setAuditStatus(0);warehouseOut.setAuditTime();}if(iWarehouseOutService.saveOrUpdate(warehouseOut)){return new ResultUtilWarehouseOut().setData(warehouseOut);}return ResultUtil.error();
}4.4 查询入库单
ApiOperation(value 查询资产入库清单)
RequestMapping(value /getByPage, method RequestMethod.GET)
public ResultIPageWarehousing getByPage(ModelAttribute Warehousing warehousing, ModelAttribute PageVo page){QueryWrapperWarehousing qw new QueryWrapperWarehousing();if(!ZwzNullUtils.isNull(warehousing.getNature())) {qw.eq(nature, warehousing.getNature());}if(!ZwzNullUtils.isNull(warehousing.getAssetName())) {qw.like(asset_name, warehousing.getAssetName());}if(!ZwzNullUtils.isNull(warehousing.getInvoice())) {qw.like(invoice, warehousing.getInvoice());}return new ResultUtilIPageWarehousing().setData(iWarehousingService.page(PageUtil.initMpPage(page),qw));
}4.5 资产入库
ApiOperation(value 资产入库)
RequestMapping(value /insertOrUpdate, method RequestMethod.POST)
public ResultWarehousing insertOrUpdate(Warehousing warehousing){Warehousing oldWarehousing iWarehousingService.getById(warehousing.getId());double oldNumber 0.0;if(oldWarehousing ! null){oldNumber oldWarehousing.getNumber() null ? 0.0 : Double.parseDouble(oldWarehousing.getNumber());}// 入库,更新库存AssetsType assetsType iAssetsTypeServicel.getById(warehousing.getAssetId());if(assetsType ! null){// number 现在仓库总数量 该入库单现增加数量 - 该入库单原有增加数量double number Double.parseDouble(assetsType.getNumber()) Double.parseDouble(warehousing.getNumber()) - oldNumber;assetsType.setNumber(number );assetsType.setTotalPrice((Double.parseDouble(assetsType.getUnitPrice()) * number) );// existNumber 现在仓库存在数量 该入库单现增加数量 - 该入库单原有增加数量double existNumber Double.parseDouble(assetsType.getExistingNumber()) Double.parseDouble(warehousing.getNumber()) - oldNumber;if(existNumber 0) {return ResultUtil.error(入库数量大于已出库数量!);}assetsType.setExistingNumber(existNumber );iAssetsTypeServicel.saveOrUpdate(assetsType);}if(iWarehousingService.saveOrUpdate(warehousing)){return new ResultUtilWarehousing().setData(warehousing);}return ResultUtil.error();
}五、免责说明
本项目仅供个人学习使用商用授权请联系博主否则后果自负。博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权拥有最终解释权。如有问题欢迎在仓库 Issue 留言看到后会第一时间回复相关意见会酌情考虑但没有一定被采纳的承诺或保证。
下载本系统代码或使用本系统的用户必须同意以下内容否则请勿下载
出于自愿而使用/开发本软件了解使用本软件的风险且同意自己承担使用本软件的风险。利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关博主对此不承担任何责任。在任何情况下对于因使用或无法使用本软件而导致的任何难以合理预估的损失包括但不仅限于商业利润损失、业务中断与业务信息丢失博主概不承担任何责任。必须了解使用本软件的风险博主不承诺提供一对一的技术支持、使用担保也不承担任何因本软件而产生的难以预料的问题的相关责任。