当前位置: 首页 > news >正文

WMS仓库管理系统库位功能

后端

using Infrastructure.Attribute;
using Model.Dto.WarehouseManagement;
using Model.Page;
using Model.WarehouseManagement;
using Repository;
using Service.Interface.WarehouseManagement;
using SqlSugar;namespace Service.WarehouseManagement
{[AppService(ServiceType = typeof(IRegionService), ServiceLifetime = LifeTime.Transient)]public class RegionService : BaseService<Region>, IRegionService{public int AddRegion(Region region, string userName){region.Create_by = userName;region.Create_time = DateTime.Now;region.WarehouseName = Context.Queryable<Warehouse>().First(it => it.WarehouseId == region.WarehouseId).WarehouseName;return Insert(region);}public int DeleteRegion(long regionId){return Delete(regionId);}public int EidtRegion(Region region, string userName){region.Update_by = userName;region.Update_time = DateTime.Now;region.WarehouseName = Context.Queryable<Warehouse>().First(it => it.WarehouseId == region.WarehouseId).WarehouseName;return Update(region);}public PagedInfo<Region> GetAllRegions(RegionQueryDto regionQueryDto){var expression = Expressionable.Create<Region>().AndIF(!string.IsNullOrEmpty(regionQueryDto.WarehouseName), region => region.WarehouseName.Contains(regionQueryDto.WarehouseName)).AndIF(!string.IsNullOrEmpty(regionQueryDto.RegionName), region => region.RegionName.Contains(regionQueryDto.RegionName)).AndIF(regionQueryDto.RegionProperty != null, region => region.RegionProperty == regionQueryDto.RegionProperty);return Queryable().Where(expression.ToExpression()).ToPage(regionQueryDto);}public List<Region> GetAllRegions(){return Queryable().ToList();}public Region GetRegion(long regionId){return Queryable().Where(it => it.RegionId == regionId).First();}public bool IsOtherUse(long regionId){return Context.Queryable<Location>().Where(it => it.RegionId == regionId).Any();}}
}

 控制器Controllers

using Common;
using Infrastructure.Attribute;
using Infrastructure.Extensions;
using Model.Dto.WarehouseManagement;
using Model.Enums;
using Model.WarehouseManagement;
using Service.Interface.WarehouseManagement;
using WMS.WebApi.Filters;
using Mapster;
using Microsoft.AspNetCore.Mvc;namespace WMS.WebApi.Controllers.WarehouseManagement
{/// <summary>/// 库区控制器/// </summary>[Verify][Route("/warehousemanagement/region")][ApiExplorerSettings(GroupName = "wm")]public class RegionController : BaseController{private IRegionService regionService;private IWarehouseService warehouseService;public RegionController(IRegionService regionService, IWarehouseService warehouseService){this.regionService = regionService;this.warehouseService = warehouseService;}/// <summary>/// 分页查询所有数据/// </summary>/// <param name="regionQueryDto"></param>/// <returns></returns>[HttpGet]public IActionResult GetAll([FromQuery] RegionQueryDto regionQueryDto){var result = regionService.GetAllRegions(regionQueryDto);return SUCCESS(result);}/// <summary>/// 获取仓库选项/// </summary>/// <returns></returns>[HttpGet("options")]public IActionResult GetWarehouseOptions(){var result = warehouseService.GetAllWarehouses().Select(it => new { it.WarehouseId, it.WarehouseName }).ToList();return SUCCESS(result);}/// <summary>/// 格局id获取库区信息/// </summary>/// <param name="id"></param>/// <returns></returns>[HttpGet("get/{id:long}")]public IActionResult GetRegion(long id){var result = regionService.GetRegion(id);return SUCCESS(result);}/// <summary>/// 新增库区信息/// </summary>/// <param name="regionDto"></param>/// <returns></returns>[HttpPost("add")][Log(Title = "新增库区信息", BusinessType = BusinessType.INSERT)]public IActionResult AddRegion([FromBody] RegionDto regionDto){var region = regionDto.Adapt<Region>();var username = HttpContext.GetName();var result = regionService.AddRegion(region, username);return SUCCESS(result);}/// <summary>/// 编辑库区信息/// </summary>/// <param name="id"></param>/// <param name="regionDto"></param>/// <returns></returns>[HttpPost("edit/{id:long}")][Log(Title = "编辑库区信息", BusinessType = BusinessType.UPDATE)]public IActionResult EditRegion(long id, [FromBody] RegionDto regionDto){var region = regionDto.Adapt<Region>();region.RegionId = id;var username = HttpContext.GetName();var result = regionService.EidtRegion(region, username);return SUCCESS(result);}/// <summary>/// 删除库区信息/// </summary>/// <param name="id"></param>/// <returns></returns>[HttpDelete("delete/{id:long}")][Log(Title = "删除库区信息", BusinessType = BusinessType.DELETE)]public IActionResult DeleteRegion(long id){var result= regionService.DeleteRegion(id);return SUCCESS(result);}/// <summary>/// 导出库区信息/// </summary>/// <returns></returns>[HttpGet("export")][Log(Title = "导出库区信息", BusinessType = BusinessType.EXPORT)]public IActionResult RegionExport(){var regions = regionService.GetAllRegions();var regionExcelDtos = regions.Select(it => it.Adapt<RegionExcelDto>()).ToList();var result = ExcelHelper.ExportExcelMini(regionExcelDtos, "region", "库区信息");return ExportExcel(result.Item2, result.Item1);}}
}

前端VUE

<template>
    <div class="app-container">
        <!-- 搜索功能 -->
        <el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true">
            <el-form-item label="仓库名称" prop="warehouseName">
                <el-input v-model="queryParams.warehouseName" placeholder="请输入供仓库名称" clearable style="width: 160px" />
            </el-form-item>
            <el-form-item label="库区名称" prop="regionName">
                <el-input v-model="queryParams.regionName" placeholder="请输入库区名称" clearable style="width: 160px" />
            </el-form-item>
            <el-form-item label="库区类型" prop="regionProperty">
                <el-select v-model="queryParams.regionProperty" placeholder="选择库区类型" style="width: 160px">
                    <el-option v-for="(item, index) in regionPropertyOptions" :key="index" :label="item" :value="index" />
                </el-select>
            </el-form-item>
            <el-form-item label="创建时间">
                <el-date-picker v-model="dateRange" style="width: 300px" type="daterange" range-separator="-"
                    start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" icon="search" @click="handleQuery">搜索</el-button>
                <el-button icon="refresh" @click="resetQuery">重置</el-button>
            </el-form-item>
        </el-form>

        <!-- 工具栏 -->
        <el-row :gutter="10">
            <el-col :span="1.5">
                <el-button type="primary" plain icon="plus" @click="handleAdd">新增</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="warning" plain icon="download" @click="handleExport">导出</el-button>
            </el-col>
            <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
        </el-row>

        <!-- 表格 -->
        <el-table v-loading="loading" :data="regionList" highlight-current-row>
            <el-table-column label="仓库名称" prop="warehouseName" v-if="columns.showColumn('warehouseName')" />
            <el-table-column label="库区名称" prop="regionName" v-if="columns.showColumn('regionName')" />
            <el-table-column label="库区类型" prop="regionProperty" v-if="columns.showColumn('regionProperty')">
                <template #default="scope">
                    <span>{{ regionPropertyOptions[scope.row.regionProperty] }}</span>
                </template>
            </el-table-column>
            <el-table-column label="创建人" prop="createBy" v-if="columns.showColumn('createBy')" />
            <el-table-column label="创建时间" prop="createTime" v-if="columns.showColumn('createTime')" />
            <el-table-column label="是否有效" prop="isValid" v-if="columns.showColumn('isValid')">
                <template #default="scope">
                    <el-tag v-if="scope.row.isValid === 1" type="success">是</el-tag>
                    <el-tag v-else type="danger">否</el-tag>
                </template>
            </el-table-column>

            <!-- 操作行 -->
            <el-table-column label="操作" align="center" width="120" v-if="columns.showColumn('operate')">
                <template #default="scope">
                    <div>
                        <el-button text icon="edit" title="编辑" @click.stop="handleUpdate(scope.row)">
                        </el-button>
                        <el-button text icon="delete" title="删除" @click.stop="handleDelete(scope.row)">
                        </el-button>
                    </div>
                </template>
            </el-table-column>
        </el-table>

        <!-- 分页栏 -->
        <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
            v-model:limit="queryParams.pageSize" @pagination="getList" />

        <!-- 对话框 -->
        <el-dialog :title="title" v-model="open" width="350px" :show-close="false" :draggable="true">
            <el-form :model="form" :rules="rules" ref="regionRef" label-width="80px">
                <el-form-item label="仓库名称" prop="warehouseId">
                    <el-select v-model="form.warehouseId" placeholder="请选择仓库">
                        <el-option v-for="item in warehouseOptions" :key="item.warehouseId" :label="item.warehouseName"
                            :value="item.warehouseId" style="width: 200px;" />
                    </el-select>
                </el-form-item>
                <el-form-item label="库区名称" prop="regionName">
                    <el-input v-model="form.regionName" placeholder="请输入库区名称" style="width: 218.4px;" />
                </el-form-item>
                <el-form-item label="库区类型" prop="regionProperty">
                    <el-select v-model="form.regionProperty" placeholder="选择库区类型">
                        <el-option v-for="(item, index) in regionPropertyOptions" :key="index" :label="item" :value="index"
                            style="width: 200px;" />
                    </el-select>
                </el-form-item>
                <el-form-item label="是否有效" prop="isValid">
                    <el-switch v-model="form.isValid" :active-value="1" :inactive-value="0" />
                </el-form-item>
            </el-form>

            <template #footer>
                <el-button text @click="cancel">取消</el-button>
                <el-button type="primary" @click="submitForm">提交</el-button>
            </template>
        </el-dialog>

    </div>
</template>

<script setup>
import { getAllInfo, getOptions, addInfo, editInfo, deleteInfo, getInfo, exportAllInfo } from '@/api/warehousManagement/region';

// 总条数
const total = ref(0)
// 展示搜索界面
const showSearch = ref(false)
// 加载...
const loading = ref(true)
// 库区列表
const regionList = ref([])
// 库区类型
const regionPropertyOptions = ["拣货区", "备货区", "收货区", "退货区", "次品区", "存货区"]
//仓库选项列表
const warehouseOptions = ref([])
// 展示对话框
const open = ref(false)
// 对话框标题
const title = ref('')
// 时间范围
const dateRange = ref([])
// 数据
const data = reactive({
    form: {},
    queryParams: {
        pageNum: 1,
        pageSize: 10,
        warehouseName: undefined,
        regionName: undefined,
        regionProperty: undefined
    },
    rules: {
        warehouseId: [{ required: true, message: '仓库名称不能为空', trigger: 'blur' }],
        regionName: [{ required: true, message: '库区名称不能为空', trigger: 'blur' }],
        regionProperty: [{ required: true, message: '库区类型不能为空', trigger: 'blur' }]
    }
})
// 列显隐信息
const columns = ref([
    { key: 0, label: `仓库名称`, visible: true, prop: 'warehouseName' },
    { key: 1, label: `库区名称`, visible: true, prop: 'regionName' },
    { key: 2, label: `库区类型`, visible: true, prop: 'regionProperty' },
    { key: 3, label: `创建人`, visible: false, prop: 'createBy' },
    { key: 4, label: `创建时间`, visible: false, prop: 'createTime' },
    { key: 5, label: `是否有效`, visible: true, prop: 'isValid' },
    { key: 6, label: `操作`, visible: true, prop: 'operate' }
])
// 表单、搜索参数、规则
const { form, queryParams, rules } = toRefs(data)
// 当时实例
const { proxy } = getCurrentInstance()

/**
 * 重置操作表单
 */
function reset() {
    form.value = {
        warehouseId: undefined,
        regionName: undefined,
        regionProperty: undefined,
        isValid: undefined
    }
    proxy.resetForm('regionRef')
}

/**
 * 获取列表
 */
function getList() {
    loading.value = true
    let params = proxy.addDateRange(queryParams.value, dateRange.value)
    getAllInfo(params).then(res => {
        loading.value = false
        regionList.value = res.data.result
        total.value = res.data.totalNum
    })
    getOptions().then(res => {
        warehouseOptions.value = res.data
    })
}

/**
 * 搜索按钮操作
 */
function handleQuery() {
    queryParams.pageNum = 1
    getList()
}

/**
 * 重置按钮操作
 */
function resetQuery() {
    dateRange.value = []
    proxy.resetForm('queryRef')
    handleQuery()
}

/**
 * 新增按钮操作
 */
function handleAdd() {
    reset()
    open.value = true
    title.value = "新增库位信息"
}

/**
 * 导出按钮操作 
 */
function handleExport() {
    proxy
        .$modal
        .confirm('是否确认导出所有库位信息数据项?', '警告', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
        })
        .then(async () => {
            await exportAllInfo()
        })
}

/**
 * 提交按钮
 */
function submitForm() {
    proxy.$refs['regionRef'].validate((valid) => {
        if (valid) {
            if (form.value.regionId != undefined) {
                editInfo(form.value.regionId, form.value).then(res => {
                    proxy.$modal.msgSuccess('修改成功')
                    open.value = false
                    getList()
                })
            } else {
                addInfo(form.value).then(res => {
                    proxy.$modal.msgSuccess('新增成功')
                    open.value = false
                    getList()
                })
            }
        }
    })
}

/**
 * 取消按钮
 */
function cancel() {
    open.value = false
    reset()
}

/**
 * 修改按钮操作 
 * @param {行数据} row 
 */
function handleUpdate(row) {
    reset()
    const regionId = row.regionId
    getInfo(regionId).then(response => {
        form.value = response.data
        open.value = true
        title.value = '修改库位信息'
    })
    open.value = true
}

/**
 * 删除按钮操作
 * @param {行数据} row 
 */
function handleDelete(row) {
    const regionId = row.regionId
    proxy
        .$modal
        .confirm('是否确认删除"' + row.regionName + '"的数据项?')
        .then(() => {
            return deleteInfo(regionId)
        })
        .then(() => {
            getList()
            proxy.$modal.msgSuccess('删除成功')
        })
        .catch(() => { })
}

getList()
</script>

<style></style>

相关文章:

WMS仓库管理系统库位功能

后端 &#xfeff;using Infrastructure.Attribute; using Model.Dto.WarehouseManagement; using Model.Page; using Model.WarehouseManagement; using Repository; using Service.Interface.WarehouseManagement; using SqlSugar;namespace Service.WarehouseManagement {[…...

vue2组件通信中的一些拓展(props,emit,ref父子双向传参)

说明 我上一篇文章中基本对vue所有的数据通信方法进行了一个整理归纳。 其实我并没有像传统的那样去罗列,比如父传子有props,ref,子传父为emit,兄弟用$bus等等。 因为在我的实际练习和业务开发中,props,emit,ref等可以实现父子数据互传,这里就涉及一个比较重要的编程思维,函…...

Flink1.17 DataStream API

目录 一.执行环境&#xff08;Execution Environment&#xff09; 1.1 创建执行环境 1.2 执行模式 1.3 触发程序执行 二.源算子&#xff08;Source&#xff09; 2.1 从集合中读取数据 2.2 从文件读取数据 2.3 从 RabbitMQ 中读取数据 2.4 从数据生成器读取数据 2.5 …...

数据结构中树、森林 与 二叉树的转换

1 树转换为 二叉树 将树转换成二叉树的步骤是&#xff1a; 加线。在所有的兄弟结点之间加一条线。去线。对于树中的每个结点&#xff0c;只保留它与第一个孩子结点的连线&#xff0c;删除该结点其他孩子结点之间的连线。调整。以树的根结点为轴心&#xff0c;将整个树顺时针旋…...

力扣labuladong——一刷day43

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣257. 二叉树的所有路径二、力扣129. 求根节点到叶节点数字之和三、力扣199. 二叉树的右视图四、力扣662. 二叉树最大宽度 前言 一般来说&#xff0c;如…...

MapApp 地图应用

1. 简述 1.1 重点 1&#xff09;更好地理解 MVVM 架构 2&#xff09;更轻松地使用 SwiftUI 框架、对齐、动画和转换 1.2 资源下载地址: Swiftful-Thinking:https://www.swiftful-thinking.com/downloads 1.3 项目结构图: 1.4 图片、颜色资源文件图: 1.5 启动图片配置图: 2. Mo…...

Java之反射获取和赋值字段

在Java中&#xff0c;反射能够使得代码更加通用&#xff0c;往往用于工具类中。 但常常我们在获取或者赋值反射的属性时&#xff0c;会出现没有赋值成功的结果&#xff0c;往往是由于这个属性在父级中而导致的&#xff0c;这个时候我们就不能用getDeclaredField方法单独获取字段…...

ckplayer自己定义风格播放器的开发记录

CKplayer是一款基于Flash和HTML5技术的开源视频播放器&#xff0c;支持多种格式的音视频播放&#xff0c;并且具有优秀的兼容性和扩展性。 它不仅可以在网页上播放本地或者网络上的视频&#xff0c;还可以通过代码嵌入到网页中&#xff0c;实现更加个性化的播放效果。CKplayer…...

全网最全Django面试题整理(一)

Django 中的 MTV 是什么意思&#xff1f; 在Django中&#xff0c;MTV指的是“Model-Template-View”&#xff0c;而不是常见的MVC&#xff08;Model-View-Controller&#xff09;架构。Django的设计理念是基于MTV的 Model&#xff08;模型&#xff09; 模型代表数据存取层&am…...

vue统一登录

说明&#xff1a; 统一登录其实就是前端去判断Url地址的token 之后如果有token未过期就直接跳转到首页。 说到浏览器输入url地址&#xff0c;那从浏览器输入地址一共发生了几件事大致如下&#xff1a; DNS解析域名&#xff0c;获取IP地址 --》 建立TCP连接&#xff08;三次握…...

MVSNet论文笔记

MVSNet论文笔记 摘要1 引言2 相关基础2.1 多视图立体视觉重建&#xff08;MVS Reconstruction&#xff09;2.2 基于学习的立体视觉&#xff08;Learned Stereo&#xff09;2.3 基于学习的多视图的立体视觉&#xff08;Learned MVS&#xff09; 3 MVSNet3.1 网络架构3.2 提取图片…...

大型 APP 的性能优化思路

做客户端开发都基本都做过性能优化&#xff0c;比如提升自己所负责的业务的速度或流畅性&#xff0c;优化内存占用等等。但是大部分开发者所做的性能优化可能都是针对中小型 APP 的&#xff0c;大型 APP 的性能优化经验并不会太多&#xff0c;毕竟大型 APP 就只有那么几个&…...

K8S配置资源管理

这里写目录标题 K8S配置资源管理一.Secret1.介绍2.Secret 有四种类型3.创建 Secret4.使用方式 二.ConfigMap1.介绍2.创建 ConfigMap3.Pod 中使用 ConfigMap4.用 ConfigMap 设置命令行参数5.通过数据卷插件使用ConfigMap6.ConfigMap 的热更新7.ConfigMap 更新后滚动更新 Pod K8S…...

Redis 的集群模式实现高可用

来源&#xff1a;Redis高可用&#xff1a;武林秘籍存在集群里&#xff0c;那稳了~ (qq.com) 1. 引言 前面我们已经聊过 Redis 的主从同步&#xff08;复制&#xff09;和哨兵机制&#xff0c;这期我们来聊 Redis 的集群模式。 但是在超大规模的互联网应用中&#xff0c;业务规…...

21、嵌套路由实战操作

1、创建内嵌子路由&#xff0c;你需要添加一个vue文件&#xff0c;同时添加一个与该文件同名的目录用来存放子视图组件。 2、在父组件&#xff08;.vue&#xff09;内增加用于显示子视图内容 新建文件 pages\index_id.vue 生成的对应路由 {path: "/",component: _…...

WPF 控件的缩放和移动

WPF 控件的缩放和移动 1.页面代码 <ContentControl ClipToBounds"True" Cursor"SizeAll"><Viewboxx:Name"viewbox"MouseDown"viewbox_MouseDown"MouseMove"viewbox_MouseMove"MouseWheel"Viewbox_MouseWhee…...

Python and和or的优先级实例比较

Python and和or的优先级 and和or都是Python的逻辑运算符&#xff0c;都为保留字。通常情况下&#xff0c;在没有括号影响&#xff0c;and和or的优先级中and在代码的逻辑运算过程中会相对优先一些&#xff0c;及在同一行的Python代码中&#xff0c;and会优先与or执行。下面将通…...

数据结构与算法编程题2

逆置线性表&#xff0c;使空间复杂度为 O(1) #include <iostream> using namespace std;typedef int ElemType; #define Maxsize 100 #define OK 1 #define ERROR 0 typedef struct SqList {ElemType data[Maxsize];int length; }SqList;void Init_SqList(SqList& …...

Java开发者的Python快速进修指南:控制之if-else和循环技巧

简单介绍 在我们今天的学习中&#xff0c;让我们简要了解一下Python的控制流程。考虑到我们作为有着丰富Java开发经验的程序员&#xff0c;我们将跳过一些基础概念&#xff0c;如变量和数据类型。如果遇到不熟悉的内容&#xff0c;可以随时查阅文档。但在编写程序或逻辑时&…...

二进制部署k8s集群-过程中的问题总结(接上篇的部署)

1、kube-apiserver部署过程中的问题 kube-apiserver.conf配置文件更改 2、calico的下载地址 curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O 这里如果kubernetes的节点服务器为多网卡配置会产生报错 修改calino.yaml配置文件 解决方法&#xff1a; 调…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...