自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wangbing1125的博客

专注企业信息化领域

  • 博客(300)
  • 收藏
  • 关注

原创 开发指南118-背景渐变特效

创建的是背景图像,不是颜色值,为了保持兼容,可以给个颜色值。上章讲了标签字体,本章讲标题栏背景特效:渐变。

2025-05-23 19:11:57 252

原创 开发指南117-文字阴影特效

标题行标签可以通过阴影增加效果,最核心的是text-shadow。h-shadow:必需。v-shadow:必需。

2025-05-23 16:45:40 302

原创 开发指南116-font-size: 0的使用

第一行</span><span>第二行</span><span>第三行

2025-05-19 22:28:52 322

原创 CSS的padding属性设置探讨

可以设置4个值:如padding: 10px 20px 30px 40px;表示元素的上部内边距是10像素,右侧内边距是20像素,下部内边距是30像素,左侧内边距是40像素。可以设置2个值:如padding: 10px 20px;这表示元素的上部和下部内边距是10像素,左侧和右侧内边距是20像素。可以设置1个值: 如padding: 5px;表示元素的上、右、下、左四个方向的内边距都是5像素。程序员只能选择padding: 10px 20px 30px 40px;padding属性有很多中设置方法。

2025-05-19 16:12:30 384

原创 开发指南115-CSS中选择器关系

可以用选择器1 选择器2(中间用空格分隔)来表达,也可以在大括号里通过包含关系来表达。注意css本身并不支持嵌套的写法,是scss等提供的扩展能力。举例:input[type="text"]举例::not(button)选择器1 > 选择器2(中间用>分隔)举例 .a > .b。举例 .a + .b。

2025-05-18 14:51:50 242

原创 开发指南114-使用el-avatar显示照片

原以为设置el-avatar的fit属性就能搞定,根本就不起作用。4、垂直方向,调整img相对el-avatar(是个span)顶部对齐。5、水平方向,调整img相对el-avatar(是个span)居中对齐。关键点:/deep/ .el-avatar img 用这个定位img。2、按照片比例,设el-avatar内部img大小,如50*65。6、调整el-avatar的背景色和照片背景色一致。1、设置el-avatar大小,例如55*55。1、el-avatar默认是个方形的。3、fit属性用fill!

2025-05-17 11:12:21 230

原创 开发指南113-BLOB等字段的处理

访问数据库有很多中框架,千里马平台访问数据库选择了JPA(Java Persistence API)搭配Hibernate。这个框架下,如何处理BLOB这种类型的字段呢?(Character Large Object)类型,对应JAVA类的属性为byte[]和String。仅仅多个@Lob注解,和其他字段处理模式完全相同,简直爽歪歪。(Binary Large Object)或。(Large Object)注解。

2025-05-17 09:00:48 239

原创 开发指南112-样式的优先级别

当多个class属性中的样式规则发生冲突时,将根据选择器的权重和样式规则在CSS文件中的定义顺序来决定应用的样式。权重相同的情况下,后定义的规则将覆盖先前的规则。important声明的样式规则都会覆盖其他相同选择器的样式规则。‌3、类选择器、属性选择器、伪类选择器‌:这些选择器定义的样式优先级较低。‌4、元素选择器、通配符选择器‌:这些选择器定义的样式具有最低的优先级。‌2、ID选择器‌:通过ID选择器指定的样式,其优先级仅次于内联样式。‌1、内联样式‌:style属性中定义的样式,具有最高的优先级。

2025-05-14 23:17:56 456

原创 mysql的一个缺点

sql[0]报的错。在oracle sqlserver里都没有错。核心问题是mysql不允许在update的where语句里出现要更新的表。针对这种情况只能先把值取出来,然后在执行。

2025-05-14 21:16:02 565

原创 window server 2012安装sql server2008 r2

打开服务器管理器->添加角色和功能->选择Web 服务(IIS)->添加.NET Framework3.5。执行sql server2008 r2安装目录下的setup。只能先搞这个了,F*微软,自家软件不让正常安装。装个软件,搞不懂为啥绕这么多弯。选择运行程序而不获取帮助。

2025-05-12 22:14:13 205

原创 平台介绍-开放API接口-IO说明

这也就是为什么平台强调要把dto层单独拿出来做单独工程,封装成独立jar的原因。这样dto可以共享到很多对方。if (SUCCESS == this.getStatus()) {// 通讯成功。最核心的技术是从SDKHttpResponse解析出真正需要的DTO结构。IO遵循平台内部API规范,接口入参出参和内部用是完全一样的。@Operation(summary = "获取人员信息")} else { // 通讯失败。SDK和服务端通讯引用的是。

2025-05-04 12:20:27 457

原创 平台介绍-开放API接口-鉴权

基本方式是客户端对body进行HmacSHA256 加密处理,然后将结果存入Content-MD5头中,服务器端收到请求后,做同样处理,然后验证是否一致。但是现实情况是,组织内部已经建立了很多系统,是不能一次性替代的,只能先搭起平台,然后逐步开始替换。其中的核心问题是鉴权。服务器端校验原理,从请求头里获取应用ID,查询后台登记信息,找到对应的AppSecret,对信息进行同样的处理,最后验证签名是否一样。签名计算是鉴权的核心,它可以确保是由AppID对应的客户端发起的,且发起内容在传输过程中没有被篡改。

2025-05-02 09:00:41 404

原创 final关键字带来的问题

/ 这里输出了测试数据。去掉final再编译EsignConfig、TemplateService才是希望的效果。EsignConfig编译了两套,一套测试,一套正式。但是正式系统始终访问的是测试的参数。private static String eSignHost=“****”直接给出了具体值!// 这里输出的正式数据。

2025-04-18 20:00:52 310

原创 开发指南111-关闭所有打开的子窗口

门户系统是通过window.open通过单点登录的模式打开子系统的,这就要求门户系统退出时,关闭所有打开的子系统。// 检查窗口是否已关闭,避免在已关闭的窗口上调用close方法导致错误。allChildWindows:[], //所有子窗口。

2025-04-06 19:45:54 158

原创 开发语言漫谈-groovy

groovy是一门脚本语言,在前期的脚本语言中简单介绍了下。现在再深入介绍下,因为它是本平台上选用的脚本语言。我们知道平台后台的业务开发语言是Java,开发人员都熟悉Java。那么使用groovy就是自然而然的事情,因为groovy最大特点就是和Java兼容。这两者就是绝配,完美解决了paas平台的核心问题。那些之前花了大成本自定义一门语言,自己开发webide引擎的厂商哭晕在厕所。比如你还在吭哧吭哧自己编码,别人早已使用AI编程,效率高了不知多少倍。你在努力跑步的同时,别人早已做上了汽车。

2025-03-22 13:12:24 576

原创 开发指南110-平台脚本语言

平台的业务功能总的来说由微服务提供的接口来支撑,接口的开发语言业务类的使用Java,大数据库、AI等 用python,这些我们称之为重开发。平台及其应用提供了标准的接口供平台至少的业务 模块。如果用户需要定制业务,可以更改标准接口,也可以新增新接口。除了上述途径,平台还提供我们称之为轻开发的能力,就是使用平台脚本。和他们不同,我们自己不造新轮子,而是选用成熟的方案。由于和Java的高度融合,平台脚本语言我们采用groovy。当然,平台后台也提供了切片编程来进行扩展,但是推荐的方式还是居于平台脚本来实现。

2025-03-20 06:57:33 192

原创 开发指南109-工作流节点功能

定义一个流程时,节点上的功能可以用固定功能实现也可以用流程驱动功能实现,一般看业务的复杂度。例如审批功能多半使用流程驱动功能,因为只是简单的点同意或退回,填写审批意见即可。(当然使用流程驱动功能也可以实现,只是需要在关联动作中编写复杂的业务逻辑,预期这样不如使用固定功能)固定功能是开发人员开发的,在sys_functions定义的功能,简单说就是菜单上显示的功能。流程驱动功能是实施人员配置出的,没有在sys_functions定义,也不出现在菜单上。总之固定功能由开发人员实现,流程驱动功能由实施人员实现。

2025-03-16 15:57:17 163

原创 开发指南108-工作流

是多个功能的流转关系,每个节点都可以完成对应工作,而不是简单的给出审批意见。入职流程例如先人事专员办理登记,然后到行政办理办公用品领取,到保险岗位办理保险增员,最后信息部门开通账号等等。但是也有相同的部分,例如配置流程节点完毕后的动作。业务流没有统一的表单,表单在对应的功能里定义,是具体功能的一部分,不在流程定义里完成。相关的概念有工作流、审批流、业务流等等,市面上每个系统都有不同的解释。的特点是同一个审批单的流转,审批节点没有修改功能,只是给出审批意见。工作流包含审批流和业务流,是个统称。

2025-03-14 16:39:49 152

原创 用AI检查代码

我们平台将走上这样路线:人工提需求->AI自动产生代码->人工复核->热上线。集成一个AI学习平台的开发知识,利用平台的技术来开发新应用。最近程序员遇到一个古怪问题,一个div的滚动条死活出不来,怎么看都没有问题。AI可能对所谓的低代码平台产生冲击:AI很难学会所谓的拖拽编程,但是可以轻松的生成真正的代码。像这样的问题,人工确实很难发现。AI确实已经非常强大。

2025-03-11 06:45:14 184

原创 开发指南107-谷歌内核浏览器滚动条设置

*---------- 美化谷歌浏览器滚动条 结束-----------*//* ------美化谷歌浏览器滚动条 开始-----------*/其中最复杂的部分是定义滚动条两端的箭头。

2025-03-09 19:34:41 747

原创 开发指南106-Stream API实例

开发指南089-Stream API只是介绍了原理,没有实例,应广大程序员之约,整理下典型场景。通过JPA访问数据库返回的用户列表List<UserInfo >userList。3、转为userId为Key,实体为Value的Map。========持续更新中=========如下为简化版实体类UserInfo。2、转为userId的字符串List。1、转为userId的字符串数组。

2025-03-02 10:08:58 348

原创 开发指南105-自驱型待办

平台实现原理是当刷新待办时,先查询下要办的业务,然后和他人发过过来的待办聚合一起返回。自驱待办的原理是自己去查下还有那些事件要处理,而不是他人发送过来的待办。平台上的待办为两种:他们提交的和自驱产生的。由各个业务微服务来决定如何做。

2025-03-02 09:03:56 216

原创 接口返回结构的命名问题

data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']平台上大屏组件是基于datav的,基本思路是后台按前端要求组装返回值。这个工程中发现一个问题。name: '第一周',name: '销售额',前端居然有两个返回xAxis,xaxis。结果到前端,返回自动变成了xaxis!

2025-03-01 08:36:35 336

原创 开发指南104-后台启动脚本

其中chcp 65001 保证控制台不显示中文乱码。无关闭脚本,直接关闭控制台即可。title ***服务。

2025-02-23 13:47:42 189

原创 开发指南103-jpa的find**/get**全解

在dao层可以通过定义find**/get**函数,通过名字直接绑定数据库字段。2.get**是延迟加载,在真正访问返回的代理对象的属性之前,它不访问数据库。find则立即执行,将返回到数据库中的一行映射到实际的某个对象。由于这种写法返回的是完整实体,而不是具体字段值,并不实用,本平台不使用。1.get**方法查询不到数据抛出异常,find**方法查询不到数据则返回null。根据以上特性,平台中规定全部使用find**。GreaterThanEqual  大于等于。StartingWith  以某开头。

2025-02-23 00:02:25 289

原创 开发指南102-datav的使用

datav的设计有个问题,各个类型的图数据结构不同。如果让前端做数据转换会很麻烦。所以要求后端返回前端所需结构。xaxis.setName(year + "年度");title.setText("标题");a.setName("名称");title.setText("标题");yaxis.setName("场次");a.setValue(数据);while (遍历组装数据){引入DavaV for vue。无需关心格式,都由后台来处理。main.js中新增。

2025-02-21 10:53:00 768

原创 开发指南101-拖动排序

后台接口一般处理方案,就是生成一段批处理sql,就是按newsortDataString的id顺序进行赋值操作,例如第一个赋值001,依次类推。<el-table-column align="center" label="排序" width="80">用el-table展示数据,最后一列显示拖动图标。其实拖动图标只是起个提示作用。newsortDataString为拖动后id的序列串,将这个串返回后台接口调整顺序即可。label="名称"

2025-02-15 09:28:13 685

原创 开发指南100-左右区域可拖动

</div> --这是左侧区域。平台上大量这样的界面:左侧机构树,右侧详细情况列表。<div class="list" ref="list">

2025-02-15 08:57:14 315

原创 开发指南099-同时传递文件和参数

平台后台接口一般情况下要求传递一个json对象(对应后台需要一个继承RequestInfo的dto类),某些情况下需要同时传递文件和参数,该如何处理呢?url:store.getters.QLMConfig.qlm_gateway_url+'/接口地址',这里的file是文件,来自于el-upload组件。dtoString转为需要dto类即可。@PostMapping("/接口地址")dto就是平台要求的json对象。

2025-02-11 14:27:07 274

原创 开发指南098-logback-spring.xml说明

日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。标签明确指定日志级别,那么它将继承其父包或类的日志级别。如果一直向上继承都没有找到明确的日志级别,那么最终将使用。这个配置文件默认是在jar包的ROOT-INF\classes目录下,正常不需要修改。标签指定了某个具体的包或类的日志级别,那么这个包或类下的日志将按照该。不停服务的情况下,动态修改。标签指定的级别进行输出,而不受。标签指定的日志级别。

2025-02-10 16:27:26 344

原创 开发指南097-数据库兼容-字符串相加

各数据库字符串相加语法完全不同,mysql用concat函数,oracle用||操作符号,sqlserver用+操作,平台希望用一套代码兼容所有数据库。会根据数据库链接判断出数据库类型。// 使用concat。

2025-02-07 15:33:10 406

原创 开发指南096-固化与变化

客户的需求虽然千变万化,基本上还是可以分为公用需求和私有需求的。2、如果各项目有私有功能,直接做在service的工程里。也就是先复制一个service工程,然后私有的东西都加到这个工程里。service为最后封装的微服务,平台的service没有其他东西,只是调用公用jar。当然maven库可以是生态圈的公用maven,也可以是购买平台的用户的私有maven。公用组件是统一管理的,只有版本不同,不区分项目。按目录分开,公共组件,标准功能在预先定义好的目录里。私有的东西另外的目录。

2025-02-07 15:25:44 239

原创 开发指南095-treeid的使用

平台上有很多树型数据,典型的如机构树。业务上常常有这样的要求,例如人员管理中,点击左侧机构树的某个节点,要求查询其所有子、孙子...机构的人员。一般的解决方案如下:从当前节点开始递归,获取所有子、孙子节点的id,然后使用id字符串列表去查询人员。这种方案的效率明细比较低,尤其是大型集团公司,机构层面比较多,每层机构数量比较大的情况。例如A机构treeid为001 则子机构1treeid为001001,子机构2treeid为001002。维护人员数据时,需要同时维护其机构ID和机构对应的treeid。

2025-02-04 18:13:30 245

原创 开发指南094-in语句的处理

一般情况下是这样处理跨库关联(不一定是sql库,也可能非sql库):前端通过一个微服务接口获取关键字字符串,‘A’,'B','C'...然后作为参数调用另一个服务。这时该服务就不可避免使用in语句了。但是数据库这边对in的参数数量有限制,而且测试表明,拆分成多个or,比直接用in要快。微服务架构下,提倡数据库分布,也就是按照业务把数据库分成多个;同时提倡一个微服务只链接一个数据库。这种情况下跨库关联就成了一个问题。尽管从性能考虑不提倡in语句,但是也没有特别好的方法。

2025-02-04 07:21:50 503

原创 开发指南093-平台底层技术网站

======持续更新中======

2025-02-01 21:20:36 307

原创 SQLServer删除表失败

今天程序执行失败,查日志是一个表删除失败。到企业管理器执行删除,报错如下。回到程序里执行对应功能,通过。找到对应的spid 如54。然后执行 kill 54。

2025-01-22 14:02:48 291

原创 开发指南092-各类数据库驱动maven地址

oracle中央仓库没有,自己弄到自己私仓去吧,例如。

2025-01-21 11:05:29 229

原创 平台介绍-开发理念

有了代码管理机制(SVN、Git),现在不用的代码,就不要保留了,坚决从当前工程中删除。否则会淹没了有用信息。企业内部信息化系统经常需要改来改去,很多系统甚至运行了很多年,经手的人换了一波又一波。按平台规定的方案解决类似问题,例如excel的文件导出,就必须按平台提供的模式来处理。一件事件往往有很多中方式来解决,为了维护方便、学习成本低,就必须按规定的模式写。版本冲突是个很头疼的事,往往会出很多莫名其妙的问题,问题是你很难判断谁和谁冲突。一个超大型平台,要对接和兼容很多控件、插件,兼容性的要求大于先进性。

2025-01-18 19:35:45 430

原创 Delete `␍`eslintprettier/prettier

在千里马平台中,不会采用这种理念,而是强迫采用一种方案!这样才能所有人共同维护一个大型项目,否则就会百花齐放,越来越乱。配置时傻眼了,网上说是.prettierrc文件,但是项目目录里没有。只有prettier.config.js文件。设计者费了好大精力来支持多种格式,表面上是照顾不同喜好的人,但是也容易造成困惑。知道这是因为回车符号的问题:linuxwindow对文件行尾的定义不同所致。解决方案也简单,就是配置endOfLine参数为"auto"。对应格式分为json、yaml和js格式。

2025-01-18 19:15:36 472

原创 npm ERR! code CERT_HAS_EXPIRED

这个是原始地址 npm config set registry https://registry.npmjs.org 速度比较慢。靠就是执行install报的错,你要我通过install来解决这个问题。可见大多数人都是转发,从不自己试试。第三个是清npm缓存.npm cache clean --force。我们之前好好的,怎么会这样?询问了下开发,最近做了什么修改。第二个是看系统时间。这个基本上都不会错。很不幸看到这个提示。

2025-01-16 10:42:40 495

linux下平台的安装与部署说明

linux下平台的安装与部署说明

2024-03-04

千里马运行平台安装与部署(window)

window下平台的安装与部署说明

2024-03-03

千里马平台技术路线说明书

千里马平台技术路线说明书

2024-02-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除