根据车辆型号自动生成车辆编号

article/2025/8/8 10:11:47
开发工具与关键技术:Visual Studio 2015   linq 正则
作者:孙水兵
撰写时间:2019年6月26

一、 功能
根据不同的类型的车辆型号,生成以车辆型号开头的车辆编号。
二、 达到的效果
用户选择了车辆型号之后,将对应的车辆编号填入车辆编号对应的input文本框中。
三、 代码
HTML代码
HTML代码很简单,大致就是两个input标签和label标签即可。

JS代码
由于我这里选择车辆型号用的方法是双击车辆型号input框,原来的模态框隐藏,弹出车辆型号的模态框。车辆型号的模态框中含有车辆型号的表格。而双击表中的一行数据就可以选中对应车辆型号并回填到车辆型号的input框中。因此我在车辆型号的表格上的监听事件上根据车辆型号来自动生成车辆编号的JS代码。
在车辆型号表的监听事件中获取到车辆型号,然后用post提交将车辆型号传入控制器,然后用PassengerCode接收控制器传过来的车辆编号。然后将车辆编号返回到车辆编号的input框中。然后让车辆型号的模态框隐藏,原来的模态框显示。

 layuiTable.on('rowDouble(tabModelOfCar)', function (obj) {var ModelOfCar = obj.data.ModelOfCar; $.post("/BusinessManagement/StationInformation/ReturnPassengerCode", { ModelOfCar: ModelOfCar }, function (PassengerCode) {$("#PassengerCarCode").val(PassengerCode);})$("#OpenTabModelOfCar").modal('hide'); $("#PassengerCarModal").modal({ backdrop: 'static', keybord: false });})

控制器代码
一、从数据库获取到对应车型的编号最大的车辆编号
首先、先声明一个方法并接受控制器传递过来的车辆型号。声明一个string类型为空的变量returnPassengerCode用来接收返回页面的车辆编号并返回给页面。然后利用linq从数据库中的车辆表中查询出数据。在查询的时候利用group…by…在根据车辆表中的车辆型号ID来分组。然后查询出车辆型号的ID和其对应的车辆编号最大即车辆ID最大的数据。这里是根据车辆型号的ID来分组的,而key属性:返回进行分组的关键字段的值;所以这里的tbModalOfCar.Key指的就是车辆表车辆型号ID。分组之后根据车辆ID倒序排序并且第一条数据就是车辆ID最大的对应得数据。然后在从刚才查出来的数据并且连接车型表查询出车辆型号等于页面传递过来的车辆型号的数据,然后判断刚才查出来的数据的条数是否大于0,如果等于0,就说明数据库中不存在该车型对应得车辆编号,因此直接用车辆型号来拼接“00001”即可。如果大于0,就说明数据库中存在该车型对应的车辆编号。声明两个int类型的编号用来接收foreach循坏的车辆型号ID和车辆型号的长度。然后根据车辆型号ID从第一次查询出来的数据中查询出对用车辆型号的车辆编号。
在这里插入图片描述
二、处理查询出来的车辆编号并返回最后的车辆编号
根据上面查询出来的车辆型号的长度在刚才查询出来的车辆编号中利用Substring来提取出除了车辆型号的其他数据并用变量passengerCodeEnd来接收。然后利用正则提取出passengerCodeEnd的每一个数字并分别用变量来接收这些数字。返回的车辆编号的构成大致为车辆编号+五个相对应得数字。因此要来分别判断这五个数字,如果最后一个数字小于9,则说明车辆编号+1之后倒数第二位不会变,但是如果最后一个数字等于9并且倒数第二个数字小于9,说明车辆编号+1之后改变的数字是倒数第二个数字,然后会变得数字自增,等于9的数字为0即可,后面的一次类推。
在这里插入图片描述
代码

 public ActionResult ReturnPassengerCode(string ModelOfCar){string returnPassengerCode = "";try{var PassengerCodeType = from tbPassengerCar in myModals.SYS_PassengerCargroup tbPassengerCar by tbPassengerCar.ModelOfCarID into tbModalOfCarselect new{ModelIfCarID = tbModalOfCar.Key,PassengerCode = tbModalOfCar.OrderByDescending(m => m.PassengerCarID).FirstOrDefault().PassengerCarCode,};var selectModelOfCar = (from tbPassengerCodeType in PassengerCodeTypejoin tbModeOfCar in myModals.SYS_ModelOfCar on tbPassengerCodeType.ModelIfCarID equals tbModeOfCar.ModelOfCarIDwhere tbModeOfCar.ModelOfCar == ModelOfCarselect tbModeOfCar).ToList();if (selectModelOfCar.Count>0){int ModelOfCarID = 0;int ModelOfCarLength = 0;foreach (var item in selectModelOfCar){ModelOfCarID = item.ModelOfCarID;ModelOfCarLength = item.ModelOfCar.Length;}var PassengerCode = (from tbPassengerCodeType in PassengerCodeTypewhere tbPassengerCodeType.ModelIfCarID == ModelOfCarIDselect tbPassengerCodeType.PassengerCode).Single();string passengerCodeEnd = PassengerCode.Substring(ModelOfCarLength);MatchCollection passengerCode = Regex.Matches(passengerCodeEnd, "\\d{1}");int LastPassengerCode = Convert.ToInt32(passengerCode[4].Value);int FourPassengerCode = Convert.ToInt32(passengerCode[3].Value);int ThreePassengerCode = Convert.ToInt32(passengerCode[2].Value);int TwoPassengerCode = Convert.ToInt32(passengerCode[1].Value);int FirstPassengerCode = Convert.ToInt32(passengerCode[0].Value);if (LastPassengerCode < 9){LastPassengerCode++;returnPassengerCode = ModelOfCar + FirstPassengerCode + TwoPassengerCode + ThreePassengerCode + FourPassengerCode + LastPassengerCode;}else if (FourPassengerCode < 9 && LastPassengerCode == 9){LastPassengerCode = 0;FourPassengerCode++;returnPassengerCode = ModelOfCar + FirstPassengerCode + TwoPassengerCode + ThreePassengerCode + FourPassengerCode + LastPassengerCode;}else if (ThreePassengerCode < 9 && FourPassengerCode == 9 && LastPassengerCode == 9){LastPassengerCode = 0;FourPassengerCode = 0;ThreePassengerCode++;returnPassengerCode = ModelOfCar + FirstPassengerCode + TwoPassengerCode + ThreePassengerCode + FourPassengerCode + LastPassengerCode;}else if (TwoPassengerCode < 9 && ThreePassengerCode == 9 && LastPassengerCode == 9 && FourPassengerCode == 9){LastPassengerCode = 0;FourPassengerCode = 0;ThreePassengerCode = 0;TwoPassengerCode++;returnPassengerCode = ModelOfCar + FirstPassengerCode + TwoPassengerCode + ThreePassengerCode + FourPassengerCode + LastPassengerCode;}else if (FirstPassengerCode < 9 && TwoPassengerCode == 9 && ThreePassengerCode == 9 && LastPassengerCode == 9 && FourPassengerCode == 9) {LastPassengerCode = 0;FourPassengerCode = 0;ThreePassengerCode = 0;TwoPassengerCode = 0;FirstPassengerCode++;returnPassengerCode = ModelOfCar + FirstPassengerCode + TwoPassengerCode + ThreePassengerCode + FourPassengerCode + LastPassengerCode;}else{return Content("每一类车型最多只能添加到99999条数据");}}else{returnPassengerCode = ModelOfCar + "00001";}}catch (Exception e){return Content("数据异常!");}return Json(returnPassengerCode,JsonRequestBehavior.AllowGet);}

http://chatgpt.dhexx.cn/article/w6LNPwDE.shtml

相关文章

【路径规划】基于遗传算法求解多车多类型车辆的车辆路径优化问题附matlab代码

1 内容介绍 多车辆多路线的交通路线优化涉及到排序问题,是一个N-P难题,高效精确的算法存在的可能性不大.提出了基于遗传算法的求解方法,给出了实例来证明如何利用遗传算法解决多车辆多路线的优化问题.结果证明,一般情况下利用遗传算法对于多车辆多路线的行车路线优化能得到一组…

机动车登记信息代码

原链接&#xff1a;机动车登记信息代 搜索结果本栏目用于收集和整理行业相关标准&#xff0c;如机械行业&#xff0c;化工行业等。http://www.gb99.cn/e/search/result/?searchid76243针对其中第七项车辆信息牌照代码如下&#xff1a;

利用低代码平台进行车辆管理,为交通行业添砖加瓦

概要&#xff1a;本文介绍了交通行业车辆管理的重要性&#xff0c;并详细阐述了基于低代码平台设计的车辆管理系统的优势。通过快速开发、易于维护、增加灵活性、提高数据可靠性、降低成本以及实时监控等多个方面&#xff0c;这种车辆管理系统可以帮助企业提高效率和降低成本&a…

(c++课程设计)简单车辆管理系统(有五种类型的车辆)代码+报告

关于这个课程设计 &#xff0c;差点没把我头发愁没。 好了其实本质还是东拼西凑&#xff0c;编程能力没怎么长进&#xff0c;花里胡哨的东西却学了不少&#xff08;不是&#xff09; 万恶的学院&#xff0c;虽然要求三人一组&#xff0c;但是却分一二三类&#xff0c;三个人代…

什么是车辆识别代码(VIN)

车辆识别代码(VIN),VIN是英文Vehicle Identification Number(车辆识别码)的缩写。因为ASE标准规定:VIN码由17位字符组成,所以俗称十七位码。正确解读VIN码,对于我们正确地识别车型,以致进行正确地诊断和维修都是十分重要的。车辆识别代码根据国家车辆管理标准确定,包…

Eigen学习笔记1:在VS2015下Eigen(矩阵变换)的配置

一、Eigen简介 Eigen是一个高层次的C 库&#xff0c;有效支持线性代数&#xff0c;矩阵和矢量运算&#xff0c;数值分析及其相关的算法。 Eigen适用范围广&#xff0c;支持包括固定大小、任意大小的所有矩阵操作&#xff0c;甚至是稀疏矩阵&#xff1b;支持所有标准的数值类型&…

鲁鹏老师三维重建课程之单视图重建

配置Json环境 使用Jsoncpp包中的.cpp和 .h文件 解压上面下载的 Jsoncpp 文件&#xff0c;把 jsoncpp-src-0.5.0文件拷贝到工程目录下&#xff0c; 将 jsoncpp-src-0.5.0\jsoncpp-src-0.5.0\include\json 和 jsoncpp-src-0.5.0\jsoncpp-src-0.5.0\src\lib_json 目录里的文…

常用 Linux 软件汇总!很全,但不敢说最全

点击下方公众号「关注」和「星标」 回复“1024”获取独家整理的学习资料&#xff01; 音频 Airtime - Airtime 是一款用于调度和远程站点管理的开放广播软件 Ardour - 在 Linux 上录音&#xff0c;编辑&#xff0c;和混音 Audacious - 开源音频播放器&#xff0c;按你想要的方式…

RoadMap:面向自动驾驶视觉定位的轻量级语义地图(ICRA2021)

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 标题&#xff1a;RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving 作者&#xff1a;Tong Qin, Yuxin Zheng, Tongqing Chen, Yilun Chen, and Qing Su 来源&#…

计算机图形学作业( 三):使用openGL画一个立方体,并实现平移、旋转和放缩变换

计算机图形学作业( 三):使用openGL画一个立方体,并实现平移、旋转和放缩变换 题目引入GLM库画立方体模型、观察和投影修改着色器立方体的顶点深度测试立方体变换平移旋转放缩渲染管线的理解代码题目 引入GLM库 利用 openGL 进行 3D 绘图需要用到大量的数学矩阵运算,而 Op…

一文掌握基于深度学习的自动驾驶小车开发(Pytorch实现,含完整数据和源码,树莓派+神经计算棒)

目录 一 . 基本介绍 二、模拟平台安装和基本使用 三、基于OpenCV的自动驾驶控制 3.1基于HSV空间的特定颜色区域提取 3.2基于canny算子的边缘轮廓提取 3.3感兴趣区域定位 3.4基于霍夫变换的线段检测 3.5动作控制&#xff1a;转向角 四、基于深度学习的自动驾驶控制 4.…

OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)

&#xfeff;&#xfeff; 实验平台&#xff1a;win7&#xff0c;VS2010 先上结果截图&#xff08;文章最后下载程序&#xff0c;解压后直接运行BIN文件夹下的EXE程序&#xff09;&#xff1a; a.鼠标拖拽旋转物体&#xff0c;类似于OGRE中的“OgreBites::CameraStyle::CS_ORB…

Python-WingIde各种调试方法

一、 本地从IDE启动文件调试 主要步骤:设置断点,F5开始调试 二、 本地从IDE外启动文件调试 1.) 从WingIDE的安装目录(默认C:\Program Files (x86)\Wing IDE 6.0)复制wingdbstub.py到被调试代码所在目录 2.) 代码中添加importwingdbstub 3.) IDE左下角设置如图 4.) 在…

图形处理单元(GPU)的演进

CPU 和 GPU 好久没有更新了&#xff0c;最近在阅读 CUDA 相关的一些论文&#xff0c;因为都是碎片化阅读&#xff0c;容易导致读过后&#xff0c;可能过一段时间又忘记掉&#xff0c;所以决定抽时间翻译翻译阅读的论文&#xff0c;一方面增强自己记忆&#xff0c;一方面与大家共…

图形学 光栅化 matlab 源代码

实验二&#xff1a;直线的光栅化算法 DDA Bresenham 实验三&#xff1a;圆的光栅化算法 编程实现两种中点画圆算法&#xff0c;第2种算法利用二阶差分方法&#xff1b; 实验四&#xff1a;多边形扫描转换算法 4.1对多边形扫描线填充算法进行简要描述&#xff0c;并给出多边形扫…

图形学入门合集1

Games101作业0 1虚拟机的使用 1.1虚拟机的安装 这里我们使用 Oracle VM VirtualBox 虚拟机。如果你使用 Windows 系统&#xff0c;你可以直接下载[链接](https://download.virtualbo%20%09%09x.org/virtualbox/6.1.4/VirtualBox-6.1.4-136177-Win.exe)&#xff0c;下载完成后…

Recorder︱图像特征检测及提取算法、基本属性、匹配方法

在做图像的研究&#xff0c;发现对图像本质、内核以及可以提取的特征方式一点儿都不懂&#xff0c;赶紧补补课。 . 一、图像常用属性 本节指的是一般来说&#xff0c;图像处理的一些角度&#xff0c;也是根据一些美图软件最为关注的一些图像属性&#xff1a; 基本属性&#…

视觉SLAM十四讲学习笔记-第三讲-相似、仿射、射影变换和eigen程序、可视化演示

专栏系列文章如下&#xff1a; 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第三讲-旋转矩阵和E…

多视图几何三维重建实战系列之MVSNet

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 1. 概述 MVS是一种从具有一定重叠度的多视图视角中恢复场景的稠密结构的技术&#xff0c;传统方法利用几何、光学一致性构造匹配代价&#xff0c;进行匹配代价累积&#xff0c;再估计深度值。虽然传统方法有较…

一文搞懂NSCT(Nonsubsampled Contourlet)变换,matlab程序实现并讲解NSCT_TOOLBOX的使用方法

文章目录 一、前言二、NSCT理论背景三、NSCT图像表述3.1 图像变换综述3.2 非下采样的金字塔分解3.2 非下采样的方向滤波器组分解 四、NSCT的matlab程序实现五、总结5.1 NSCT现存不足5.2 致谢 一、前言 在这篇文章中我将从图像分解领域的发展方面为大家讲解NSCT的出现背景和实现…