目录
项目概述:
该项目是一个对农产品的生产、销售、运输、库存等环节有效的信息化管理。涵盖了企业运营的多个环节,包括pc端系统管理、销售管理、采购管理、仓库管理、财务管理等模块的开发。
农业供应链系统需求分析:
系统管理模块
涵盖用户、角色、菜单及部门等多维度的管理功能。
销售管理模块:
实现商品信息的全面维护,包括商品的上下架操作、用户下单流程、结算与付款功能、订单取消及确认收货机制,以及商品评价系统。
采购管理模块:
支持填写请购单、领导审批流程、以及采购商品的验收入库等环节。
仓库管理模块:
维护农作物和生产工具的相关信息,实现仓库发货和出库操作,并提供出入库的详细记录,同时支持导出功能。
财务管理模块:
能够记录每一笔入账和支出,并生成统计财务报表,以支持企业的财务决策和分析。
功能实现:
-
系统管理模块:
- 设计用户、角色、菜单和部门的数据模型,并建立相应的数据库表结构如下如所示:
- 实现用户注册、登录和权限验证功能,确保系统的安全性和稳定性。
- 开发角色和菜单管理功能,方便管理员对用户权限进行灵活配置。
- 实现部门管理功能,支持部门的创建、修改和删除操作。
绿佳农业供应链系统采用了基于角色的访问控制(RBAC)模型,通过用户、角色和菜单等基本元素进行权限控制。权限认证使用了JSON Web Token(JWT)技术,确保了用户身份的安全性和保密性。通过该模块,管理员可以方便地管理用户、角色和菜单,并配置相应的权限,,以实现不同用户的不同操作权限。
#region JWT校验
//读取配置文件 JWT
builder.Services.Configure<JwtOption>(builder.Configuration.GetSection("JwtOption"));
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(opt =>
{
var JwtOption = builder.Configuration.GetSection("JwtOption").Get<JwtOption>();
byte[] keyBytes = Encoding.UTF8.GetBytes(JwtOption.SecurityKey);
var secKey = new SymmetricSecurityKey(keyBytes);
opt.TokenValidationParameters = new()
{
ValidateIssuer = false,
ValidateAudience = false,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
IssuerSigningKey = secKey
};
});
#endregion
-
销售管理模块:
- 设计商品数据模型,并建立商品数据库表,包括商品的基本信息、价格、库存等字段。
- 开发商品信息维护功能,支持商品的添加、修改和删除操作。
- 实现商品上下架功能,可以通过修改商品状态来控制商品的可见性。
- 开发用户下单流程,包括将商品加入购物车、生成订单、选择配送方式等。
/// <summary> /// 客户下单 /// </summary> /// <param name="shoppingCar"></param> /// <param name="userId"></param> /// <param name="msg"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> public bool PlaceOrder(List<CreateProductInfoDTO> shoppingCar, string userId, out string msg, out string orderidd) { // TODO 用户下单的订单详情productId 保存产品id string orderId = "LVJs"+DateTime.Now.Ticks.ToString().Substring(0,10); //创建销售订单orderdetail int j = 0; int k = 0; decimal totolaMoney = 0; decimal money = 0; using (var transent = db.Database.BeginTransaction()) { for (int i = 0; i < shoppingCar.Count; i++) { // 下单时 新增 SKU码 SoOrderDetail orderDetail = new SoOrderDetail() { Id = Guid.NewGuid().ToString(), OrderId = orderId, ProductId = shoppingCar[i].Id, ProductNum = (int)shoppingCar[i].Num, InventoryCode = shoppingCar[i].InventoryCode, ProductPrices = (decimal)shoppingCar[i].Price, IsEvaluate = false, CreateTime= DateTime.Now }; //订单总额 money = (int)shoppingCar[i].Num * (decimal)shoppingCar[i].Price; totolaMoney += money; db.SoOrderDetails.Add(orderDetail); if (db.SaveChanges() > 0) { j++; } } //生成销售订单 salerorder SoSaleOrder soSaleOrder = new SoSaleOrder() { Id = Guid.NewGuid().ToString(), OrderId = orderId, CreateTime = DateTime.Now, Creator = userId, PayStatus = OP.ORDER_STATUS_UNPAID,//未付款 LogisticsStatus = OP.LOGISTICS_STATUS_TOBE_SHIPPED,//未发货 Logistics = "暂无", Money = totolaMoney, }; db.SoSaleOrders.Add(soSaleOrder); int count = db.SaveChanges(); if (j == shoppingCar.Count && count > 0) { transent.Commit(); msg = MSG.OPERATION_SUCCEEDED; orderidd = orderId; return true; } else { transent.Rollback(); msg = MSG.OPERATION_FILED; orderidd = null; return false; } } }
- 集成支付接口,支持多种支付方式,如支付宝、微信支付等。
- 实现订单取消、确认收货和商品评价功能,完善购物流程。
-
采购管理模块:
- 设计请购单数据模型,并建立相应的数据库表结构。
- 开发填写请购单功能,支持选择需要采购的商品和填写采购数量等信息。
- 实现领导审批流程,可以通过系统通知或邮件提醒领导审批请购单。
- 开发采购验收入库功能,记录采购商品的详细信息,并更新库存状态。
-
仓库管理模块:
- 设计农作物和生产工具的数据模型,并建立相应的数据库表结构。
- 开发信息维护功能,支持农作物和生产工具的添加、修改和删除操作。
- 实现仓库发货和出库功能,可以通过扫描条形码或手动输入商品信息来完成出库操作。
- 记录出入库详细信息,包括操作时间、操作人员、商品数量等,并支持导出功能。
导出出入库记录:
/// <summary>
/// excel文件导出
/// </summary>
/// <returns></returns>
public byte[] DonwLoadExcel()
{
{
string path = @"D:\test\demo.xlsx";
FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
//工作簿对象
IWorkbook workbook = new XSSFWorkbook();
//创建sheet表
ISheet sheet = workbook.CreateSheet();
#region 表头
//创建表头行
IRow rowHead = sheet.CreateRow(0);
//创建格子1
ICell cellHead1 = rowHead.CreateCell(0);
//给格子写内容
cellHead1.SetCellValue("农作物名称");
//创建格子2
ICell cellHead2 = rowHead.CreateCell(1);
//给格子写内容
cellHead2.SetCellValue("数量");
//创建格子2
ICell cellHead3 = rowHead.CreateCell(2);
//给格子写内容
cellHead3.SetCellValue("操作类型");
//创建格子2
ICell cellHead4 = rowHead.CreateCell(3);
//给格子写内容
cellHead4.SetCellValue("经手人");
//创建格子2
ICell cellHead5 = rowHead.CreateCell(4);
//给格子写内容
cellHead5.SetCellValue("操作时间");
#endregion
//查询数据库
var cropInfos = (from c in db.InvCropInfos
join ca in db.InvCropRecords
on c.Id equals ca.CropId
join u in db.SysUserInfos
on ca.Creator equals u.Id
select new
{
ca.Num,
c.CropName,
ca.OperationType,
ca.CreateTime,
c.Quality,
c.LeadTime,
u.RealName
}).ToList();
for (int i = 0; i < cropInfos.Count; i++)
{
//创建行
IRow row = sheet.CreateRow(i + 1);
//创建格子1
ICell cell1 = row.CreateCell(0);
//给格子写内容
cell1.SetCellValue(cropInfos[i].CropName);
//创建格子2
ICell cell2 = row.CreateCell(1);
//给格子写内容
cell2.SetCellValue(cropInfos[i].Num);
//创建格子2
ICell cell3 = row.CreateCell(2);
//给格子写内容
cell3.SetCellValue(cropInfos[i].OperationType);
//创建格子2
ICell cell4 = row.CreateCell(3);
//给格子写内容
cell4.SetCellValue(cropInfos[i].RealName);
//创建格子2
ICell cell5 = row.CreateCell(4);
//给格子写内容
cell5.SetCellValue(cropInfos[i].CreateTime.ToShortDateString());
}
try
{
// 把excel内容写进文件流里面
workbook.Write(fs);
// 读文件到字节数组
byte[] data = File.ReadAllBytes(path);
return data;
}
catch (Exception ex)
{
// 打印或处理异常
Console.WriteLine(ex.Message);
return null;
}
}
}
}
-
财务管理模块:
- 设计入账和支出的数据模型,并建立相应的数据库表结构。
- 开发记录每一笔入账和支出的功能,确保财务数据的准确性和完整性。
- 实现统计财务报表功能,可以根据时间范围、收支类型等条件生成相应的财务报表。
- 集成财务分析工具,帮助企业对财务数据进行深入分析,为决策提供支持。
财务管理模块是绿佳农业供应链系统的关键部分之一,支持对每一笔入账和支出记录的详细记录和统计财务报表的生成。通过该模块,企业可以全面掌握财务状况,及时发现和解决财务问题。同时,与销售和采购模块的集成使得财务数据能够及时更新,方便企业进行财务分析和决策。
总之,绿佳农业供应链系统是一个全面覆盖农业供应链各个环节的综合平台。通过该系统的应用,企业可以提高运营效率、降低成本、增强市场竞争力并实现可持续发展。