SpringBoot+Vue打造资产出入库管理系统(二)

简介: SpringBoot+Vue打造资产出入库管理系统

资产入库模块

有了资产类型之后,用户就可以维护资产的入库情况。入库模块也是对固定资产和耗材做了区分,资产入库模块的主界面如下图所示。

用户可以根据资产名称、发票单号进行模拟查询,搜索栏在顶部左侧,如下图所示。

资产入库单实体类的字段明细如下:

字段名称 数据类型 长度 字段含义 备注
Id Varchar 255 唯一标识 非空,主键
assetId Varchar 255 资产ID 非空,外键
assetName Varchar 255 资产名称 非空
invoice Varchar 255 发票单号 非空
model Varchar 15 型号 非空
unitPrice BigDecimal 15 单价 非空
nature Varchar 15 性质 非空
number BigDecimal 15 入库数量 非空
remarks Varchar 255 备注

用户可以对某个资产进行入库操作,点击顶部的添加按钮,进入到资产入库界面,如下图所示。

其中第一个输入表单为资产,这是一个选择器组件,使用View UI的 Drawer 抽屉实现,选择器的界面如下图所示,资产的数据来源是资产类型模块。

资产选择器的前端组件代码如下所示。

<Button @click="assetModalVisible=true" :icon="icon">{{text}}</Button>
<Drawer title="选择固定资产" closable v-model="assetModalVisible" width="800" draggable>
    <Form ref="searchUserForm" :model="searchUserForm" inline :label-width="55">
        <Form-item label="资产名称" prop="houseNumber">
            <Input type="text" v-model="searchUserForm.houseNumber" clearable placeholder="请输入资产名称" style="width: 200px" />
        </Form-item>
        <Form-item style="margin-left:-35px;" class="br">
            <Button @click="handleSearchUser" type="primary" icon="ios-search">搜索</Button>
            <Button @click="handleResetUser">重置</Button>
        </Form-item>
    </Form>
    <Table :loading="userLoading" border :columns="userColumns" :data="userData" @on-row-click="changeSelect" style="margin: 2vh 0;"></Table>
    <Row type="flex" justify="end">
        <Page :current="searchUserForm.pageNumber" :total="totalUser" :page-size="searchUserForm.pageSize" @on-change="changeUserPage" @on-page-size-change="changeUserPageSize" :page-size-opts="[10,20,50]" size="small" show-total show-elevator show-sizer transfer></Page>
    </Row>
</Drawer>

用户只需输入入库数量,资产的型号、单价、总价都会自动回显、计算,简化入库人员的录入工作。

资产领用出库模块

资产类型和资产入库模块之后,就是资产出库了,资产出库的概念就是中小企业内部员工的领用操作,资产出库的主界面如下图所示。

员工也可以查询自己的出库领用,如下图所示。

资产出库领用单实体类的字段明细如下:

字段名称 数据类型 长度 字段含义 备注
Id Varchar 255 唯一标识 非空,主键
assetId Varchar 255 资产ID 非空,外键
assetName Varchar 255 资产名称 非空
recipients Varchar 255 领用人 非空
recipientsId Varchar 255 领用人ID 非空,外键
model Varchar 15 型号 非空
unitPrice BigDecimal 15 单价 非空
nature Varchar 15 性质 非空
number BigDecimal 15 入库数量 非空
auditStatus Integer 15 出库审核状态 非空
auditTime Varchar 255 出库审核时间 非空
remarks Varchar 255 备注

用户点击出库模块的添加按钮,即可进入出库模块,用户需要选择资产、领用人和出库的数量,还可以选填备注信息,如下图所示。

员工也可以自己申请领用,在员工的申请领用界面中,没有领用人字段,即领用人就是自己,操作界面如下图所示。

新增出库单后,资产类型的现有数量不会随之减少,而是等到出库审核通过后才会变少,新增出库单的核心代码如下所示。

@SystemLog(about = "新增资产出库单", type = LogType.DATA_CENTER,doType = "ASSET-OUT-03")
@ApiOperation(value = "新增资产出库单")
@RequestMapping(value = "/insert", method = RequestMethod.POST)
public Result<WarehouseOut> insert(WarehouseOut warehouseOut){
    warehouseOut.setAuditStatus(0);
    warehouseOut.setAuditTime("");
    boolean saveFlag = saveAssetNumber(warehouseOut, false);
    if(!saveFlag) {
        return ResultUtil.error("手慢啦!库存不足!");
    }
    if(ZwzNullUtils.isNull(warehouseOut.getRecipientsId())) {
        User currUser = securityUtil.getCurrUser();
        warehouseOut.setRecipientsId(currUser.getId());
        warehouseOut.setRecipients(currUser.getNickname());
    }
    if(iWarehouseOutService.saveOrUpdate(warehouseOut)){
        return new ResultUtil<WarehouseOut>().setData(warehouseOut);
    }
    return ResultUtil.error();
}

资产出库审核模块

当仓管员或用户提交了资产出库申请后,会自动生成一个审核单,送到资产出库审核模块,资产出库审核模块的主界面如下图所示。

用户可以查询到资产审核单,可以对资产审核单进行“审核通过”和“审核驳回”操作,审核通过后,资产类型的现有数量会随之减少,审核驳回后现有数量不会变化。用户也可以根据资产名称和领用人进行模拟搜索。

资产出库审核的接口代码如下所示。

@ApiOperation(value = "审核资产出库单")
@RequestMapping(value = "/returnFx", method = RequestMethod.GET)
public Result<Object> returnFx(@RequestParam String id,@RequestParam Integer message){
    WarehouseOut wo = iWarehouseOutService.getById(id);
    if(wo == null) {
        return ResultUtil.error("出库单不存在");
    }
    if(Objects.equals(1,message)) {
        boolean saveFlag = saveAssetNumber(wo,true);
        if(!saveFlag) {
            return ResultUtil.error("手慢啦!库存不足!");
        }
    }
    wo.setAuditStatus(message);
    wo.setAuditTime(DateUtil.now());
    iWarehouseOutService.saveOrUpdate(wo);
    return ResultUtil.success();
}
@ApiOperation(value = "资产出库出库处理")
private boolean saveAssetNumber(WarehouseOut warehouseOut,Boolean saveFlag) {
    WarehouseOut oldWarehouseOut = iWarehouseOutService.getById(warehouseOut.getId());
    BigDecimal oldNumber = BigDecimal.ZERO;
    if(oldWarehouseOut != null){
        oldNumber = oldWarehouseOut.getNumber();
    }
    // outNumber 要出库的数量
    BigDecimal outNumber = warehouseOut.getNumber();
    AssetsType oldAssetsType = iAssetsTypeService.getById(warehouseOut.getAssetId());
    if(oldAssetsType != null){
        // newNumber 出库后还有的数量 = 仓库原本还有的数量 - 出库单的出库数量
        BigDecimal newNumber = oldAssetsType.getExistingNumber().subtract(outNumber);
        if(newNumber.compareTo(BigDecimal.ZERO) > -1){
            if(saveFlag) {
                oldAssetsType.setExistingNumber(newNumber);
                iAssetsTypeService.saveOrUpdate(oldAssetsType);
            }
        }else{
            return false;
        }
    }
    return true;
}

基于Vue和SpringBoot的资产出入库管理系统还有四张静态图表,使用Antv图表进行开发,如下所示。

项目总结

本软件是基于Vue和SpringBoot的资产出入库管理系统,包含了系统基础模块、资产类型维护、资产入库、资产领用出库、资产出库审核这五个功能模块。

免责声明

  • 本项目开源,仅供个人学习使用,转发 / 商用授权请联系作者,否则后果自负
  • 作者拥有本软件构建后的应用系统全部内容所有权及独立的知识产权(软件著作权登记号:2022SR1338865)。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复。相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码的用户,必须同意以下内容,否则请勿下载

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和作者无关,作者对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),作者概不承担任何责任。
  4. 必须了解使用本软件的风险,作者不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
相关文章
|
16天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
94 62
|
7天前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
28 1
|
14天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
32 2
|
16天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
12天前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
28 0
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
137 1
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
145 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
2月前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
223 1
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
214 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用
【10月更文挑战第8天】本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,通过 Spring Initializr 创建并配置 Spring Boot 项目,实现后端 API 和安全配置。接着,使用 Ant Design Pro Vue 脚手架创建前端项目,配置动态路由和菜单,并创建相应的页面组件。最后,通过具体实践心得,分享了版本兼容性、安全性、性能调优等注意事项,帮助读者快速搭建高效且易维护的应用框架。
39 3