软件外包服务岗前技能训练(二)之农业供应链系统

目录

项目概述:

农业供应链系统需求分析:

系统管理模块

销售管理模块:

采购管理模块:

仓库管理模块:

财务管理模块:

功能实现:

系统管理模块:

销售管理模块:

采购管理模块:

仓库管理模块:

财务管理模块:


项目概述:

该项目是一个对农产品的生产、销售、运输、库存等环节有效的信息化管理。涵盖了企业运营的多个环节,包括pc端系统管理、销售管理、采购管理、仓库管理、财务管理等模块的开发。

农业供应链系统需求分析:

系统管理模块

涵盖用户、角色、菜单及部门等多维度的管理功能。

销售管理模块:

实现商品信息的全面维护,包括商品的上下架操作、用户下单流程、结算与付款功能、订单取消及确认收货机制,以及商品评价系统。

采购管理模块:

支持填写请购单、领导审批流程、以及采购商品的验收入库等环节。

仓库管理模块:

维护农作物和生产工具的相关信息,实现仓库发货和出库操作,并提供出入库的详细记录,同时支持导出功能。

财务管理模块:

能够记录每一笔入账和支出,并生成统计财务报表,以支持企业的财务决策和分析。

功能实现:

  1. 系统管理模块:

    • 设计用户、角色、菜单和部门的数据模型,并建立相应的数据库表结构如下如所示:
    • 实现用户注册、登录和权限验证功能,确保系统的安全性和稳定性。
    • 开发角色和菜单管理功能,方便管理员对用户权限进行灵活配置。
    • 实现部门管理功能,支持部门的创建、修改和删除操作。

绿佳农业供应链系统采用了基于角色的访问控制(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
  1. 销售管理模块:

    • 设计商品数据模型,并建立商品数据库表,包括商品的基本信息、价格、库存等字段。
    • 开发商品信息维护功能,支持商品的添加、修改和删除操作。
    • 实现商品上下架功能,可以通过修改商品状态来控制商品的可见性。
    • 开发用户下单流程,包括将商品加入购物车、生成订单、选择配送方式等。
       /// <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;
                      }
                  }
      
              }
    • 集成支付接口,支持多种支付方式,如支付宝、微信支付等。
    • 实现订单取消、确认收货和商品评价功能,完善购物流程。
  2. 采购管理模块:

    • 设计请购单数据模型,并建立相应的数据库表结构。
    • 开发填写请购单功能,支持选择需要采购的商品和填写采购数量等信息。
    • 实现领导审批流程,可以通过系统通知或邮件提醒领导审批请购单。
    • 开发采购验收入库功能,记录采购商品的详细信息,并更新库存状态。
  3. 仓库管理模块:

    • 设计农作物和生产工具的数据模型,并建立相应的数据库表结构。
    • 开发信息维护功能,支持农作物和生产工具的添加、修改和删除操作。
    • 实现仓库发货和出库功能,可以通过扫描条形码或手动输入商品信息来完成出库操作。
    • 记录出入库详细信息,包括操作时间、操作人员、商品数量等,并支持导出功能。

导出出入库记录:

/// <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;
                }
            }
        }

    }
  1. 财务管理模块:

    • 设计入账和支出的数据模型,并建立相应的数据库表结构。
    • 开发记录每一笔入账和支出的功能,确保财务数据的准确性和完整性。
    • 实现统计财务报表功能,可以根据时间范围、收支类型等条件生成相应的财务报表。
    • 集成财务分析工具,帮助企业对财务数据进行深入分析,为决策提供支持。

财务管理模块是绿佳农业供应链系统的关键部分之一,支持对每一笔入账和支出记录的详细记录和统计财务报表的生成。通过该模块,企业可以全面掌握财务状况,及时发现和解决财务问题。同时,与销售和采购模块的集成使得财务数据能够及时更新,方便企业进行财务分析和决策。

总之,绿佳农业供应链系统是一个全面覆盖农业供应链各个环节的综合平台。通过该系统的应用,企业可以提高运营效率、降低成本、增强市场竞争力并实现可持续发展。

  • 24
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
软件外包人员管理办法csdn是一套用于管理及监督软件外包人员工作的规章制度。在软件外包行业中,外包人员扮演着重要的角色,因此需要一套科学合理的管理办法,以确保项目的顺利进行。 首先,软件外包人员管理办法csdn应明确外包人员的职责和权益。外包人员应根据项目需求和合同约定,承担相应的任务和工作内容。同时,他们应享有合理的工作条件和权益保障,如工作时间、薪资待遇和福利待遇等。 其次,办法应建立外包人员的考核评价机制。通过制定明确的指标,定期对外包人员的工作进行绩效评估,以评价其工作质量和效率。同时,评价结果应作为绩效考核和奖惩的依据,激励外包人员提高工作表现。 此外,应制定合理的外包人员培训及发展规划。软件外包行业发展迅速,外包人员需要不断学习和更新知识,以适应市场的需求。因此,管理办法应规定相关培训计划和资源,并支持外包人员的学习和发展,提升其专业技能和综合能力。 还应建立沟通交流机制。软件外包项目通常由多个团队合作完成,因此需要建立高效的沟通渠道,促进信息共享和协作。管理办法应规定团队成员之间的沟通要求和频率,以及沟通工具和方式,以提高团队协作效率。 最后,软件外包人员管理办法csdn还应包括外包合同的签订、履约和违约纠纷的解决等方面的规定,确保外包项目的顺利进行和风险控制。 软件外包人员管理办法csdn的实施,将有助于提高外包人员的工作效率和质量,促进软件外包项目的成功实施,同时也能提升整个软件外包行业的发展水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值