Vue+SpringBoot打造电子元器件管理系统(附源码文档)

news2024/12/25 9:14:10

作者主页:Designer 小郑
作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。

在这里插入图片描述

  • 一、摘要
  • 二、研究内容
  • 三、界面展示
    • 3.1 登录&注册&主页
    • 3.2 元器件单位模块
    • 3.3 元器件仓库模块
    • 3.4 元器件供应商模块
    • 3.5 元器件品类模块
    • 3.6 元器件明细模块
    • 3.7 元器件类型模块
    • 3.8 元器件采购模块
    • 3.9 元器件领用模块
    • 3.10 系统基础模块
  • 四、总结、配套文档和源码下载

一、摘要

电子元器件是高校电子实验室进行实验的必备物品,随着电子元器件的种类不断增多,人工管理的方式容易出现错误,对实验室管理员的体验感也不是很好,所以需要开发一套电子元器件管理系统实现对电子元器件的数字化管理需求,其中包括对电子元器件档案的管理和采购入库、学生领用的管理,提高了生产效率,在电子元器件行业数字化转型的背景下,电子元器件系统的建设和应用也具有重要的现实意义和应用价值。本文采用Java等技术构建了电子元器件管理系统的开发环境,完成了电子元器件管理系统的设计研发。最后,针对现有电子元器件系统的不足,提出了优化用户界面、加强数据安全、改进报告系统等改进措施。

二、研究内容

电子元器件管理系统包含元器件单位模块、元器件仓库模块、元器供应商模块、元器件品类模块、元器件明细模块、元器件采购模块、元器件采购审核模块、元器件领用模块、学生元器件申请模块、我的申请模块、申请审核模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块 ,电子元器件管理系统基于角色的访问控制,可将权限精确到按钮级别,适合设计精确的权限约束需求。

电子元器件管理系统的主要任务是电子元器件综合管理、综合规划、合理采购、保持正确管理、科学管理和及时更新。充分利用电子元器件的使用效率及其最佳效益。提高教育质量,加强实验室电子元器件管理,为此电子元器件管理系统应包括以下功能。

  1. 元器件类型模块,实现对元器件类型的增加、删除、编辑和模拟查询,要求实时统计系统中元器件类型的件数。
  2. 元器件档案模块,实现对元器件档案的增加、删除、编辑和模拟查询,要求支持元器件图片的上传和预览。
  3. 元器件采购模块,实现对元器件的采购,采购需要审核,仓管员采购完成后可一键入库,库存回写元器件档案模块。
  4. 用户档案管理,实现对终端用户数据的维护,包括姓名、手机号、头像等数据,员工可自己修改密码。
  5. 角色管理,采用基于角色的访问控制,对于管理员、仓管员分配不同的菜单权限。
  6. 日志管理,用户对元器件相关模块的操作数据需要自动化记录,管理员可在后台查询,日志需要包括操作人、操作时间和操作的内容。

根据项目要求,元器件模块前端采用Vue.js实现,系统后端要求采用springBoot实现,采用mybatisPlus读写数据库,数据库采用MySQL,采用Redis中间件作为数据缓存,最终实现电子元器件管理系统的设计、开发和测试。

前端:Vue 2.7.10

后端:Spring Boot 3.1.10

数据库:MySQL 8.0.31

在这里插入图片描述

  • 元器件类型模块
    元器件类型的研究意义在于,它对电子元器件行业的产品开发和市场竞争具有重要影响。首先,根据元器件的类型,市场需求、价格、利润率等方面存在差异,通过研究消费者的购买行为和偏好,以及市场竞争和趋势,可以确定公司应该开发什么类型的元器件,并制定适当的产品规划和定价策略。对零件类型的研究也可以帮助公司了解市场的多样性和可变性,并很好地适应市场需求和趋势。例如,新兴的消费市场,一个特殊群体的消费需求,都需要用不同类型的零件来满足。因此,通过持续的零件类型研究,企业可以抓住市场机遇,不断创新和优化产品,提高市场份额和品牌知名度。

  • 元器件仓库模块
    元器件仓库模块的研究意义在于对企业的元器件管理和物流效率产生重要影响。首先,元器件仓库是企业储存、储存和配送元器件的重要部门。通过研究元器件仓库的设计、布局和管理策略,可以优化元器件仓库的运营流程,提高元器件的存储密度和运输效率,降低运营成本。元器件仓库模块还帮助公司跟踪元器件供应链信息,更好地了解元器件市场趋势和库存状况。例如,通过元器件编码系统、RFID设备等技术手段,实现元器件的小型化管理和跟踪,以确保元器件的来源和质量可追溯,从而为企业的采购计划和库存管理提供参考依据。

  • 元器件档案模块
    研究组件元器件档案的意义在于,在企业的元器件管理和决策中发挥着重要作用。首先,元器件包含有关零件的基本信息,例如零件名称、型号、规格、制造商和性能参数。通过建立完善的元器件档案,对元器件进行分类、分类和管理,可以提高元器件管理的效率和准确性。例如,通过分析元器件库存数据,可以确定哪些元器件需要增加采购,哪些零件需要减少库存,以及采购路线是否需要优化,从而降低采购成本,提高元器件库存周转率。

  • 元器件采购模块
    元器件是电子产品的基本元器件,包括电阻器、电容器、晶体管、集成电路等。没有这些元器件,就无法制造出完整的电子产品。因此,企业需要采购元器件,以保证生产和销售的正常运行。元器件采购是保证生产的必要条件。当公司缺乏所需的零件时,可能会影响产品的速度和质量,甚至导致生产线停工。因此,及时采购必要的元器件是维持生产运行的必要措施,元器件采购也有助于公司降低生产成本。通过考虑元器件价格、质量和供应路线等因素,公司可以选择更经济、高效和稳定的元器件来源,并降低不必要的成本。元器件采购也是企业市场竞争力的一个重要因素。在竞争激烈的市场环境中,企业需要不断优化元器件采购策略,提高产品质量和性能,降低生产成本,实现可持续发展目标。

  • 元器件领用模块
    元器件的领用意义在于它在企业元器件管理和成本管理中具有重要作用。首先,元器件领用系统的实施可以有效监控元器件库存的流向,及时发现库存异常和损失,提高元器件管理的效率和准确性,还可以帮助公司管理元器件成本。通过比较每个部门或工人收到的元器件的数量和质量,可以避免由于过度使用或滥用元器件而造成的浪费和不必要的成本支出,此外,元器件数据的统计和分析可以优化零件采购计划,进一步降低零件成本。元器件领用模块带来了很多的效率和便利。

三、界面展示

3.1 登录&注册&主页

在这里插入图片描述
在这里插入图片描述

@RequestMapping(value = "/regist", method = RequestMethod.POST)
@ApiOperation(value = "注册用户")
public Result<Object> regist(@Valid User u){
    u.setEmail(u.getMobile() + "@qq.com");
    QueryWrapper<User> userQw = new QueryWrapper<>();
    userQw.and(wrapper -> wrapper.eq("username", u.getUsername()).or().eq("mobile",u.getMobile()));
    if(iUserService.count(userQw) > 0L) {
        return ResultUtil.error("登录账号/手机号重复");
    }
    String encryptPass = new BCryptPasswordEncoder().encode(u.getPassword());
    u.setPassword(encryptPass).setType(0);
    iUserService.saveOrUpdate(u);
    QueryWrapper<Role> roleQw = new QueryWrapper<>();
    roleQw.eq("default_role",true);
    List<Role> roleList = iRoleService.list(roleQw);
    if(roleList.size() > 0){
        for(Role role : roleList) {
            iUserRoleService.saveOrUpdate(new UserRole().setUserId(u.getId()).setRoleId(role.getId()));
        }
    }
    return ResultUtil.data(u);
}

在这里插入图片描述

3.2 元器件单位模块

在这里插入图片描述

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询元器件计量单位")
public Result<IPage<AdminAssetUnit>> getByPage(@ModelAttribute AdminAssetUnit unit, @ModelAttribute PageVo page) {
    QueryWrapper<AdminAssetUnit> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(unit.getName())) {
        qw.like("name",unit.getName());
    }
    if(!ZwzNullUtils.isNull(unit.getBm())) {
        qw.like("bm",unit.getBm());
    }
    return new ResultUtil<IPage<AdminAssetUnit>>().setData(iAdminAssetUnitService.page(PageUtil.initMpPage(page),qw));
}

在这里插入图片描述

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增元器件计量单位")
public Result<AdminAssetUnit> insert(AdminAssetUnit adminAssetUnit){
    int number = (int)iAdminAssetUnitService.count() + 1;
    adminAssetUnit.setBm("DW" + number);
    if(iAdminAssetUnitService.saveOrUpdate(adminAssetUnit)){
        return new ResultUtil<AdminAssetUnit>().setData(adminAssetUnit);
    }
    return ResultUtil.error();
}

@RequestMapping(value = "/update", method = RequestMethod.POST)
@ApiOperation(value = "编辑元器件计量单位")
public Result<AdminAssetUnit> update(AdminAssetUnit adminAssetUnit){
    if(iAdminAssetUnitService.saveOrUpdate(adminAssetUnit)){
        return new ResultUtil<AdminAssetUnit>().setData(adminAssetUnit);
    }
    return ResultUtil.error();
}

@RequestMapping(value = "/delByIds", method = RequestMethod.POST)
@ApiOperation(value = "删除元器件计量单位")
public Result<Object> delAllByIds(@RequestParam String[] ids){
    for(String id : ids){
        iAdminAssetUnitService.removeById(id);
    }
    return ResultUtil.success();
}

3.3 元器件仓库模块

在这里插入图片描述

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询元器件仓库档案")
public Result<IPage<AdminAssetWare>> getByPage(@ModelAttribute AdminAssetWare ware, @ModelAttribute PageVo page){
    QueryWrapper<AdminAssetWare> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(ware.getName())) {
        qw.like("name",ware.getName());
    }
    if(!ZwzNullUtils.isNull(ware.getAddress())) {
        qw.like("address",ware.getAddress());
    }
    if(!ZwzNullUtils.isNull(ware.getAdminName())) {
        qw.and(wrapper -> wrapper.eq("admin_name", ware.getAdminName()).or().eq("department",ware.getAdminName()));
    }
    IPage<AdminAssetWare> data =  iAdminAssetWareService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<AdminAssetWare>>().setData(data);
}

在这里插入图片描述

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增元器件仓库档案")
public Result<AdminAssetWare> insert(AdminAssetWare adminAssetWare){
    if(!Objects.equals(1,adminAssetWare.getAttributionType())) {
        adminAssetWare.setAttributionType(0);
        QueryWrapper<User> qw = new QueryWrapper<>();
        qw.eq("nickname",adminAssetWare.getAdminName());
        qw.eq("status","0");
        List<User> rosterUserList = iUserService.list(qw);
        if(rosterUserList.size() < 1) {
            return ResultUtil.error("仓管员不存在或离职");
        }
        adminAssetWare.setJobNumber(rosterUserList.get(0).getUsername());
    }
    // 判断名称重复
    QueryWrapper<AdminAssetWare> qw = new QueryWrapper<>();
    qw.eq("name",adminAssetWare.getName());
    if(iAdminAssetWareService.count(qw) > 0L) {
        return ResultUtil.error(adminAssetWare.getName() + "仓库已存在,不能重复添加");
    }
    iAdminAssetWareService.saveOrUpdate(adminAssetWare);
    return ResultUtil.success();
}

3.4 元器件供应商模块

在这里插入图片描述

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询元器件供应商")
public Result<IPage<AdminAssetSupplier>> getByPage(@ModelAttribute AdminAssetSupplier supplier, @ModelAttribute PageVo page){
    QueryWrapper<AdminAssetSupplier> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(supplier.getName())) {
        qw.like("name",supplier.getName());
    }
    if(!ZwzNullUtils.isNull(supplier.getType())) {
        qw.like("type",supplier.getType());
    }
    if(!ZwzNullUtils.isNull(supplier.getAddress())) {
        qw.like("address",supplier.getAddress());
    }
    return new ResultUtil<IPage<AdminAssetSupplier>>().setData(iAdminAssetSupplierService.page(PageUtil.initMpPage(page),qw));
}

在这里插入图片描述

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增元器件供应商")
public Result<AdminAssetSupplier> insert(AdminAssetSupplier adminAssetSupplier){
    iAdminAssetSupplierService.saveOrUpdate(adminAssetSupplier);
    return ResultUtil.success();
}

@RequestMapping(value = "/update", method = RequestMethod.POST)
@ApiOperation(value = "编辑元器件供应商")
public Result<AdminAssetSupplier> update(AdminAssetSupplier adminAssetSupplier){
    iAdminAssetSupplierService.saveOrUpdate(adminAssetSupplier);
    return ResultUtil.success();
}

@RequestMapping(value = "/delByIds", method = RequestMethod.POST)
@ApiOperation(value = "删除元器件供应商")
public Result<Object> delByIds(@RequestParam String[] ids){
    for(String id : ids){
        iAdminAssetSupplierService.removeById(id);
    }
    return ResultUtil.success();
}

3.5 元器件品类模块

在这里插入图片描述

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询元器件品类")
public Result<IPage<AdminAsset>> getByPage(@ModelAttribute AdminAsset asset, @ModelAttribute PageVo page) {
    QueryWrapper<AdminAsset> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(asset.getType())) {
        qw.eq("type",asset.getType());
    }
    if(!ZwzNullUtils.isNull(asset.getType2())) {
        qw.eq("type2",asset.getType2());
    }
    if(!ZwzNullUtils.isNull(asset.getCode())) {
        qw.like("code",asset.getCode());
    }
    if(!ZwzNullUtils.isNull(asset.getName())) {
        qw.like("name",asset.getName());
    }
    if(!ZwzNullUtils.isNull(asset.getGg())) {
        qw.like("gg",asset.getGg());
    }
    IPage<AdminAsset> data = iAdminAssetService.page(PageUtil.initMpPage(page),qw);
    for (AdminAsset vo : data.getRecords()) {
        QueryWrapper<AdminAssets> itemQw = new QueryWrapper<>();
        itemQw.eq("asset_id",vo.getId());
        itemQw.eq("status",0);
        vo.setCount(iAdminAssetsService.count(itemQw));
    }
    return new ResultUtil<IPage<AdminAsset>>().setData(data);
}

在这里插入图片描述

@RequestMapping(value = "/fastInsert", method = RequestMethod.POST)
@ApiOperation(value = "快速新增元器件品类")
public Result<AdminAsset> fastInsert(@RequestParam String name,@RequestParam String type,@RequestParam String type2,@RequestParam String modal){
    QueryWrapper<AdminAsset> qw = new QueryWrapper<>();
    qw.eq("name",name);
    qw.eq("xh",modal);
    if(iAdminAssetService.count(qw) > 0) {
        return ResultUtil.error("元器件品类已存在,无需重复添加");
    }
    AdminAsset as = new AdminAsset();
    as.setName(name);
    as.setType(type);
    as.setType2(type2);
    as.setGg("");
    as.setXh(modal);
    as.setJldw("个");
    as.setXsj(BigDecimal.ZERO);
    as.setImageUrl("");
    as.setRemark("");
    iAdminAssetService.saveOrUpdate(as);
    return new ResultUtil<AdminAsset>().setData(as);
}

3.6 元器件明细模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.7 元器件类型模块

在这里插入图片描述
在这里插入图片描述

3.8 元器件采购模块

在这里插入图片描述

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询元器件采购")
public Result<IPage<AdminAssetsBuy>> getByPage(@ModelAttribute AdminAssetsBuy buy, @ModelAttribute PageVo page) {
    QueryWrapper<AdminAssetsBuy> qw = new QueryWrapper<>();
    qw.eq("user_id",securityUtil.getCurrUser().getId());
    if(!ZwzNullUtils.isNull(buy.getName())) {
        qw.like("name",buy.getName());
    }
    if(!ZwzNullUtils.isNull(buy.getReason())) {
        qw.like("reason",buy.getReason());
    }
    IPage<AdminAssetsBuy> data = iAdminAssetsBuyService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<AdminAssetsBuy>>().setData(data);
}

在这里插入图片描述
在这里插入图片描述

@RequestMapping(value = "/submitData", method = RequestMethod.POST)
@ApiOperation(value = "提交元器件采购")
public Result<Object> submitData(@RequestParam String[] ids,@RequestParam String reason,@RequestParam String supplierId){
    AdminAssetSupplier supplier = iAdminAssetSupplierService.getById(supplierId);
    if(supplier == null) {
        return ResultUtil.error("供应商不存在");
    }
    List<AdminAssetsBuy> voList = new ArrayList<>();
    for(String id : ids){
        AdminAssetsBuy buy = iAdminAssetsBuyService.getById(id);
        if(buy == null) {
            return ResultUtil.error("id = " + id + "不存在");
        }
        if(Objects.equals(0,buy.getSubmitFlag())) {
            voList.add(buy);
        }
    }
    for (AdminAssetsBuy vo : voList) {
        vo.setSubmitFlag(1);
        vo.setOpen(supplier.getOpen());
        vo.setPushName(supplier.getUserName());
        vo.setCode(supplier.getCode());
        vo.setRise(supplier.getRise());
        vo.setSupplierId(supplier.getId());
        vo.setSupplierName(supplier.getName());
        iAdminAssetsBuyService.saveOrUpdate(vo);
    }
    return ResultUtil.success();
}

在这里插入图片描述
在这里插入图片描述

@RequestMapping(value = "/auditData", method = RequestMethod.POST)
@ApiOperation(value = "审核元器件采购")
public Result<Object> auditData(@RequestParam String[] ids,@RequestParam int status){
    for(String id : ids){
        AdminAssetsBuy buy = iAdminAssetsBuyService.getById(id);
        if(buy == null || !Objects.equals(0,buy.getAuditFlag())) {
            continue;
        }
        User user = iUserService.getById(buy.getUserId());
        if(user == null) {
            continue;
        }
        buy.setAuditFlag(status);
        // 通过
        if(Objects.equals(1,status)) {
            buy.setQuantity2(buy.getQuantity());
        }
        iAdminAssetsBuyService.saveOrUpdate(buy);
    }
    return ResultUtil.success();
}

在这里插入图片描述

@RequestMapping(value = "/inWare", method = RequestMethod.POST)
@ApiOperation(value = "入库元器件采购")
public Result<Object> inWare(@RequestParam String id,@RequestParam int quantity,@RequestParam String date,@RequestParam String warehouse){
    AdminAssetsBuy buy = iAdminAssetsBuyService.getById(id);
    if(buy == null) {
        return ResultUtil.error("采购单不存在");
    }
    AdminAssetWare ware = iAdminAssetWareService.getById(warehouse);
    if(ware == null) {
        return ResultUtil.error("仓库不存在");
    }
    if(ZwzNullUtils.isNull(date)) {
        date = DateUtil.today();
    }
    QueryWrapper<AdminAssets> qw = new QueryWrapper<>();
    qw.eq("asset_id",buy.getAssetId());
    Long assetsCount = iAdminAssetsService.count(qw);
    for(int i = 1 ; i <= quantity; i ++) {
        AdminAssets adminAssets = new AdminAssets();
        adminAssets.setName(buy.getName());
        adminAssets.setModel(buy.getModel());
        adminAssets.setAssetId(buy.getAssetId());
        adminAssets.setCode("ZC" + buy.getAssetCode() + String.format("%04d", assetsCount + i));
        adminAssets.setUnit(buy.getUnit());
        adminAssets.setBuyUser(buy.getUserName());
        adminAssets.setBuyNumber(buy.getId());
        adminAssets.setBuyDate(date);
        adminAssets.setWarehouse(ware.getId());
        adminAssets.setWarehouseName(ware.getName());
        adminAssets.setGiveType(0);
        adminAssets.setGiveId("");
        adminAssets.setGiveName("");
        adminAssets.setOutFlag(0);
        adminAssets.setOutWork("");
        adminAssets.setOutTime("");
        adminAssets.setStatus(0);
        adminAssets.setDestroyName("");
        adminAssets.setDestroyTime("");
        adminAssets.setApplyFlag(0);
        adminAssets.setApplyUser("");
        adminAssets.setApplyTime("");
        iAdminAssetsService.saveOrUpdate(adminAssets);
    }
    if(BigDecimal.valueOf(quantity).compareTo(buy.getQuantity())< 0) {
        buy.setQuantity2(buy.getQuantity2().subtract(BigDecimal.valueOf(quantity)));
        buy.setWareFlag(1);
    } else {
        buy.setQuantity2(BigDecimal.ZERO);
        buy.setWareFlag(2);
    }
    iAdminAssetsBuyService.saveOrUpdate(buy);
    return ResultUtil.success();
}

3.9 元器件领用模块

在这里插入图片描述

@RequestMapping(value = "/apply", method = RequestMethod.POST)
@ApiOperation(value = "申请元器件")
public Result<Object> apply(@RequestParam String id){
    User user = securityUtil.getCurrUser();
    AdminAssets asset = iAdminAssetsService.getById(id);
    if(asset == null) {
        return ResultUtil.error("元器件不存在");
    }
    if(!Objects.equals(0,asset.getOutFlag())) {
        return ResultUtil.error("手慢啦!元器件已被" + asset.getGiveName() + "领用,请刷新");
    }
    asset.setApplyFlag(1);
    asset.setApplyUser(user.getNickname());
    asset.setApplyTime(DateUtil.now());
    iAdminAssetsService.saveOrUpdate(asset);
    return ResultUtil.success();
}

在这里插入图片描述

3.10 系统基础模块

用户管理模块如下图所示。
在这里插入图片描述
部门管理模块如下图所示。
在这里插入图片描述
文件管理模块如下图所示。
在这里插入图片描述
角色权限管理模块如下图所示。
在这里插入图片描述
日志管理模块如下图所示。
在这里插入图片描述
个人中心模块如下图所示。
在这里插入图片描述

四、总结、配套文档和源码下载

在电子元件管理系统的开发中,第一步是确定元件系统的功能需求和设计概念的进展。完成对组件企业的业务流程和数据模型的分析,确定需要实现的系统的管理目标和数据结构,然后选择技术平台和开发工具的进展。

选择Java等技术平台,构建系统开发环境,开始系统开发和测试。然后完成系统的开发和测试进度,根据系统的功能需求和设计理念,完成系统主要功能模块的开发和检测,进行基础调优和性能测试,最终完成现有系统。

针对不足,制定了改进建议,从用户界面、数据安全、报告系统等方面进行改进,以提高系统的易用性、稳定性和数据质量,从而使企业的管理决策更加完整,并提供准确的数据支持。在未来,将对开发电子元器件管理系统的更多模块进行开发和实现。

配套文档预览地址

项目源码和文档自助下载:项目源码文档
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/622626.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSRS rdlc报表 七 安装及配置报表服务

开发环境 vs2022 sqlserver 2019 参考文档&#xff1a;安装 SQL Server Reporting Services - SQL Server Reporting Services (SSRS) | Microsoft Learn 配置 URL (Configuration Manager) - SQL Server Reporting Services (SSRS) | Microsoft Learn 如果你在安装数据库的…

基于html+css的图展示114

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

chatgpt赋能python:Python与Kafka的对接方法介绍

Python与Kafka的对接方法介绍 Kafka作为一种高吞吐量的分布式消息系统&#xff0c;近年来在数据处理、大数据分析以及实时流计算等领域得到了广泛的应用&#xff0c;成为了数据处理和分析领域中的标配。而Python作为一种简单易学、功能强大的编程语言&#xff0c;也因其在数据…

学习WooCommerce跨境电商社交媒体营销

WooCommerce 长期以来一直为电子商务店主提供多样化的服务。大约 500 万家商店啓用安装了免费的 WooCommerce 插件。 官方 WooCommerce 插件从 WordPress.org 下载了161,908,802次&#xff0c;并且还在增加。 超过5,106,506 个网站正在使用 WooCommerce。 本文网址: https…

pytorch相关报错【报错】

AttributeError: cannot assign module before Module.init() call 原因&#xff1a;自定义类中缺少supre()函数 解决 KeyError: tensor(1) 报错原因&#xff1a;tensor不能作为字典的键 解决&#xff1a;转化为numpy x torch.tensor([1,2,3]) y {1:1,2:2,3:3} z [y[i]…

提交arxiv的格式调整与流程

提交arxiv的格式调整与流程 进入arxiv网站&#xff08;注册或登录&#xff09;: https://arxiv.org/ 点击发布submission 上传本地资源&#xff0c;完成以下步骤&#xff1a; 许可证一般需要选&#xff1a; 这个表示最小的利益冲突&#xff0c;因为我们最后肯定希望publi…

如何在项目中优雅的抛出异常,这些知识佬们还记得嘛

前言&#xff1a; 本篇文章主要讲解Java中的几种异常关键字和异常类相关知识。该专栏比较适合刚入坑Java的小白以及准备秋招的大佬阅读。 如果文章有什么需要改进的地方欢迎大佬提出&#xff0c;对大佬有帮助希望可以支持下哦~ 小威在此先感谢各位小伙伴儿了&#x1f601; 以…

lua编程——air724二次开发之点亮led教程

一.硬件 硬件型号&#xff1a;银尔达 Core-Air724模块&#xff1b; 杜邦线若干&#xff1b; micro Usb线&#xff1b; USB转TTL工具&#xff1b; 杜邦线用于电源(12V/1A)和TTL信号连接&#xff0c;micro Usb用于下载和调试。 硬件资源&#xff0c;如下图&#xff1a; 二.软件 u…

❤️最详细的Python学习路线-图文不废话

当谈论学习Python编程时&#xff0c;有许多不同的途径和资源可供选择。为了帮助你建立起一个学习Python的有效路线&#xff0c;下面是一个包含基本步骤和关键资源的建议。请注意&#xff0c;这只是一个指南&#xff0c;你可以根据自己的兴趣和学习风格进行调整。 ❝ 以下时间不…

推荐对象转换解决方案:MapStruct

1、什么是MapStruct 1.1 JavaBean 的困扰 对于代码中 JavaBean之间的转换&#xff0c; 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的 JavaBean 之间的相互转化&#xff0c; 非常的影响观感&#xff0c;却又不得不存在。我后来想的一个办法就是通过反射&a…

Django新手必看:从入门到精通Web应用开发①【文末送书三本】

Django新手必看&#xff1a;从入门到精通Web应用开发① 1. Django是什么1.2 Django的由来1.3 Django的命名1.4 Django的版本发布1.5 Django框架的特点 2 Django的设计模式2.1 MVC设计模式2.2 MTV设计模式 3 Django安装与配置3.1 Python支持版本&#xff1a;3.2 Django 3.2与4.1…

Filter设计模式,责任链模式一如既往的妙

场景1&#xff1a; 每种Filter进行某种处理&#xff0c;将各个Filter连在一起形成一个FilterChain。当需要往FilterChain中加入新的Filter&#xff0c;或者改变各个Filter的处理顺序时&#xff0c;可以方便的扩展。 1个接口&#xff1a; public interface Filter {public Str…

前端技术搭建拼图小游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了俄罗斯方块游戏&#xff0c;今天还是继续按照我们原定的节奏来带领大家完成一个拼图游戏&#xff0c;功能也比较简单简单&#xff…

chatgpt赋能python:Python数组:如何使用Python将数据存入数组中

Python数组&#xff1a;如何使用Python将数据存入数组中 Python是一个非常强大的高级编程语言&#xff0c;在人工智能、数据科学和机器学习等领域有广泛应用。Python允许将数据存储在不同的数据结构中&#xff0c;其中&#xff0c;数组是最常用的。 在这篇文章中&#xff0c;…

卡尔曼滤波与组合导航原理(一)滤波的基本概念、递推最小二乘

文章目录 一、滤波的基本概念1、传统数字滤波器2、现代控制中的状态观测器3、最优估计的含义4、温度估计的例子1.问题描述2.分析 二、递推最小二乘 课程链接&#xff1a;https://www.bilibili.com/video/BV11K411J7gp/?p1 参考书目&#xff1a;《捷联惯导算法与组合导航原理》…

微信小程序nodejs+vue+uniapp大学体育场馆场地预约系统

开发语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;VScode 本文以nodejs为开发技术&#xff0c;一开始&#xff0c;本文就对系统内谈到的基本知识&#xff0c;从整体上进行了描述&#xff0c…

人事管理项目-部门数据删除

人事管理项目-部门数据删除 后端实现前端实现 Spring Boot是一个框架&#xff0c;一种全新的编程规范&#xff0c;它的产生简化了框架的使用&#xff0c;所谓简化是指简化了Spring众多框架中所需的大量且烦琐的配置文件&#xff0c;所以Spring Boot是一个服务于框架的框架&…

Netty之Channel解读

目录 channel 的主要作用 ChannelFuture CloseFuture 为什么要异步关闭 channel 的主要作用 close() 可以用来关闭 channelcloseFuture() 用来处理 channel 的关闭 sync 方法作用是同步等待 channel 关闭而 addListener 方法是异步等待 channel 关闭pipeline() 方法添加处理…

使用CodeAnt查找并修复IDE中的开源漏洞与许可证合规问题

不断加快的开发步伐正在将软件安全的责任转移到开发人员的桌面上&#xff0c;但是处理在下游构建和测试中检测到的安全问题可能是非常具有破坏性的。直至报告漏洞的时候&#xff0c;开发人员已经转移到他们的下一个任务。为了修复问题&#xff0c;他们必须中断正在做的事情&…

【OpenAI】Python:基于 Gym-CarRacing 的自动驾驶项目(4) | 车辆控制功能的实现

猛戳&#xff01;跟哥们一起玩蛇啊 &#x1f449; 《一起玩蛇》&#x1f40d; ​ &#x1f4ad; 写在前面&#xff1a;本篇是关于多伦多大学自动驾驶专业项目的博客。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2D 物…