作者主页:Designer 小郑 作者简介:浙江某公司软件工程师,负责开发管理公司OA、CRM业务系统,全栈领域优质创作者,CSDN学院、蓝桥云课认证讲师,开发过20余个前后端分离实战项目,主要发展方向为Vue、SpringBoot、微信小程序,期待你我共同成长! 主打方向:Vue、SpringBoot、微信小程序 项目ID:A22011 文末获取源码

本项目是基于 Vue 和 Spring Boot 的公司货物订单管理系统,包括了用户档案、客户档案、货物订单、订单条目、商品档案、供应商档案、系统日志、数据字典、修改密码、个人中心等基本功能。本系统主要面向中小贸易公司管理货物订单所用,降低仓管员的工作量,提高货物订单的运维水平。



Vue:Vue 是构建前端界面的核心框架,本系统采用 2.6.14 版本。
View UI:基于 Vue.js2.0 的组件库,本系统采用 4.7.0 版本。
Spring Boot:构建系统核心逻辑的后端框架,本系统采用 2.7.4 版本。
MyBatis / MyBatis Plus:后端连接数据库的框架,本系统采用 3.5.2 版本。
MySQL:本项目的主数据库,本系统采用 8.0.30 版本。
Redis:本系统采用基于 Windows 版本的 Redis,用于图形验证码和用户菜单权限的临时存储,采用了 5.0.14.1 版本。
VsCode:项目前端的开发工具,使用版本为 1.68.0。
IntelliJ IDEA :项目后端的开发工具,使用版本为 2022.2.2。
Jdk:Java 的开发环境,使用版本为 17.0.4.1。
Maven:后端项目的打包工具,使用版本为 3.6.2。
NodeJs:前端项目的开发环境,使用版本为 16.13.0。
用户可使用账号 + 密码 + 图形验证码的方式进行登录,如下图所示。

如果用户没有账号,也可以根据手机号、姓名、密码和图形验证码进行注册,如下图所示。

用户登录成功后,默认进入主页,如下图所示。

当然不同的用户拥有不同的菜单权限,实验室耗材智能运维系统采用基于角色的访问控制模式,采用同学们可以自定义角色,再分配指定的菜单权限,如下图所示。

公司管理员可以在这里维护商品的数据,商品就是客户向公司购买的产品,比如生活类产品(双面胶等)、食品类产品(果冻、方便面等),如下图所示。

新增商品的操作界面如下图所示。

用户可以选择一定数量的耗材,点击删除按钮,进行删除,系统会给与二次确认弹框,如下图所示。

供应商是贸易公司的上游客户,管理员可以对供应商进行增删改查操作,主界面如下图所示。

管理员可以新增供应商,需要填入公司名称、地址、联系人、电话等数据,如下图所示。

管理员可以对供应商的数据进行修改,包括公司名称、地址、联系人、电话等数据,如下图所示。

管理员可以点击每一行数据的红色删除按钮,触发二次确认弹框,再点击确认即可完成供应商删除,如下图所示。

客户是贸易公司的营销对象,管理员可以对客户数据进行增删改查操作,如下图所示。

管理员可以新增客户档案,需要填入客户姓名、身份证号码、联系电话、客户性别,选填备注,如下图所示。

管理员可以编辑 CRM 档案,维护客户的各类数据,如姓名、身份证号码、联系电话等,如下图所示。

货物订单是客户向公司下单后的结果,管理员可以对货物订单进行增删改查操作,订单模块的主界面如下图所示。

业务员可以在这里下订单,即新增贸易订单,如下图所示。

若商品存在质量问题,业务员可以点击主界面的条目维护按钮,申请退货,如下图所示。

业务也可以添加订单的明细数据,完成商品选择和数量输入,点击添加条目按钮即可,如下图所示。

公司管理员管理员工,在这里维护,如下图所示。

公司货物订单管理系统的所有文件都在这里维护,如下图所示。

用户的指定操作(后端代码匹配)可以自动化记录日志,汇总在日志模块,如下图所示。

用户可以修改自己的密码,如下图所示。

用户可以在个人门户中编辑自己的信息,如下图所示。

系统还支持 ANTV 图表,同学们可以根据自己需要,进行二次开发。




公司货物订单管理系统的投入作用,可以帮助中小贸易公司实现办公自动化,替代掉 Excel 维护的方法,提高货物订单的管理效率。
公司货物订单管理系统基于 Vue 和 SpringBoot 开发,包含了用户档案、客户档案、货物订单、订单条目、商品档案、供应商档案、系统日志、数据字典、修改密码、个人中心功能,面向中小贸易公司管理货物订单,降低仓管员的工作量,提高货物订单的运维水平。
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "a_order")
@TableName("a_order")
@ApiModel(value = "订单信息")
public class Order extends ZwzBaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "订单编号")
private String code;
@ApiModelProperty(value = "订单状态")
private String status;
@ApiModelProperty(value = "订单总价")
private BigDecimal sumMoney;
@ApiModelProperty(value = "订单生成日期")
private String date;
@ApiModelProperty(value = "操作人员")
private String userName;
@ApiModelProperty(value = "订单客户ID")
private String customerId;
@ApiModelProperty(value = "订单客户姓名")
private String customerName;
@ApiModelProperty(value = "收货人")
private String inName;
@ApiModelProperty(value = "收货电话")
private String inMobile;
@ApiModelProperty(value = "付款人")
private String outName;
@ApiModelProperty(value = "付款电话")
private String outMobile;
@ApiModelProperty(value = "备注")
private String remark;
@Transient
@TableField(exist=false)
@ApiModelProperty(value = "条目列表")
private List<OrderItem> itemList;
}@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增贸易单")
public Result<Order> insert(Order order) {
if(ZwzNullUtils.isNull(order.getCustomerId())) {
return ResultUtil.error("订单客户不能为空");
}
Customer customer = iCustomerService.getById(order.getCustomerId());
if(customer == null) {
return ResultUtil.error("订单客户已被删除");
}
User currUser = securityUtil.getCurrUser();
order.setUserName(currUser.getNickname());
order.setCustomerName(customer.getName());
order.setDate(DateUtil.today());
order.setCode(IdUtil.getSnowflake(1, 1).nextId() + "");
iOrderService.saveOrUpdate(order);
return new ResultUtil<Order>().setData(order);
}@RequestMapping(value = "/inOrder", method = RequestMethod.POST)
@ApiOperation(value = "新增条目单")
public Result<Object> inOrder(@RequestParam String orderId,@RequestParam String commodityId,@RequestParam float number){
Order order = iOrderService.getById(orderId);
if(order == null) {
return ResultUtil.error("订单不存在");
}
Commodity commodity = iCommodityService.getById(commodityId);
if(commodity == null) {
return ResultUtil.error("商品不存在");
}
OrderItem item = new OrderItem();
item.setCode(IdUtil.getSnowflake(1, 1).nextId() + "");
item.setCommodityId(commodity.getId());
item.setCommodityName(commodity.getName());
item.setUnit(commodity.getUnit());
item.setMoney(commodity.getMoney());
item.setDiscount(commodity.getDiscount());
item.setNumber(BigDecimal.valueOf(number));
item.setOrderId(orderId);
iOrderItemService.saveOrUpdate(item);
// 计算总订单金额
calOrderSumNumber(order);
return ResultUtil.success();
}