狂魔型代码改造记

[b][size=x-large]功能需求[/size][/b]
统计员工指定月:在职员工数,入职员工数,离职员工数,及前个月的员工数。

[b][size=x-large]原有设计[/size][/b]
■bj_worker:员工表 .
■bj_worker_change:员工入职离职日志表,每次入职离职都会添加一条记录,通过状态区分入离职
●entry_flag: 入职标志
●dimission_flag:离职标志
●change_date:入职或离职日

[b][size=x-large]“狂魔型”代码实现(假设统计月份为2016-10)
[/size][/b]

SELECT
(
(SELECT
COUNT(id)
FROM
bj_worker_change t
WHERE t.change_date <= '20161031'
AND t.entry_flag = 1
AND t.worker_type = b.worker_type
AND t.company_id = b.company_id) -
(SELECT
COUNT(id)
FROM
bj_worker_change t
WHERE t.change_date <= '20161031'
AND t.dimission_flag = 1
AND t.worker_type = b.worker_type
AND t.company_id = b.company_id)
) AS current_month_num,<=当前月在职人数
(SELECT
COUNT(id)
FROM
bj_worker_change t
WHERE t.change_date <= '20161031'
AND t.change_date >= '20161001'
AND t.entry_flag = 1
AND t.worker_type = b.worker_type
AND t.company_id = b.company_id) AS current_add_num,<=本月入职人数
(SELECT
COUNT(id)
FROM
bj_worker_change t
WHERE t.change_date <= '20161031'
AND t.change_date >= '20161001'
AND t.dimission_flag = 1
AND t.worker_type = b.worker_type
AND t.company_id = b.company_id) AS current_js_num,<=本月离职人数
(
(SELECT
COUNT(id)
FROM
bj_worker_change t
WHERE t.change_date <= '20160931'
AND t.entry_flag = 1
AND t.worker_type = b.worker_type
AND t.company_id = b.company_id) -
(SELECT
COUNT(id)
FROM
bj_worker_change t
WHERE t.change_date <= '20160931'
AND t.dimission_flag = 1
AND t.worker_type = b.worker_type
AND t.company_id = b.company_id)
) AS last_month_num <=上月员工人数
FROM
bj_worker_change b


[b][size=x-large]问题分析[/size][/b]

[b][size=large]症状分析[/size][/b]

(1)SQL过于复杂:开发工作量大,容易出错误,后续维护困难;
(2)执行效率过慢:SQL复杂,数据库压力大,执行效率也很慢;

[b][size=large]症结所在[/size][/b]

表结构设计不合理:bj_worker_change是操作流水表,人员入职离职的操作都对应一条记录,入职离职操作引发业务主体(bj_worker)状态变化,即bj_worker的历史工作状态信息,但[color=red][b]原设计中缺失了这张bj_worker历史工作状态表,在获职员工的历史工作状态时就需要实时分析,造成模块代码的复杂及效率的低下[/b][/color]。

[b][size=x-large]解决之道[/size][/b]
[b][size=large]添加bj_worker_duty表,用于记录用户历史在离职日期,结构如下[/size][/b]
bj_worker_duty
●id
●worker_id
●entry_date: 入职日期
●departure_date:离职日期(默认为99999999,当添加离职时更改)
程序需要做相应的改造:
(1)根据bj_woker_change记录,使用程序或存储过程生成bj_worker_change的初始化记录;
(2)在插入bj_worker_change这张表时,同时维护bj_worker_duty表的记录。

[b][size=large]SQL改造如下[/size][/b]
     
SELECT
SUM(CASE WHEN d.`entry_date`<='201610' AND d.`departure_date` >= '201610'
THEN 1 ELSE 0 END) AS current_month_num,
SUM(CASE WHEN d.`entry_date`>='20161000' AND d.`entry_date` <= '20161099'
THEN 1 ELSE 0 END) AS current_add_num,
SUM(CASE WHEN d.`departure_date`>='20161000' AND d.`departure_date` <= '20161099'
THEN 1 ELSE 0 END) AS current_sj_num,
SUM(CASE WHEN d.`entry_date`<='201609' AND d.`departure_date` >= '201609'
THEN 1 ELSE 0 END) AS last_month_num
FROM bj_worker_duty d;
iOS代码自动翻新(混淆)专家.zip iOS代码自动翻新(混淆)专家。.zip,u3d、cocos2dx、iOS代码混淆、自动翻新专家(WHC_ConfuseSoftware)是一款新一代运行在MAC OS平台的App、完美支持Objc和Swift、U3D、Cocos2dx项目代码的自动翻新(混淆)、支持文件夹名称、文件名、修改资源文件hash值、类名、方法名、属性名、添加混淆函数方法体、添加混淆属性、自动调用生成的混淆方法、字符串混淆加密等。。。功能强大而稳定。 立即下载

相关推荐

最新版谷歌浏览器Axure插件(免翻墙)

本文介绍了在Chrome浏览器无法直接打开Axure导出HTML文件的解决方法。由于国内网络限制无法访问Chrome商店,需手动下载安装AxureRP扩展插件(提供百度网盘下载链接)。安装步骤包括:1)启用开发者模式;2)拖拽CRX文件或加载解压文件夹;3)勾选"允许访问文件网址"。同时还提示若浏览器版本过低可能无法正常运行,并给出了浏览器升级方法。该教程详细说明了从插件安装到浏览器升级的完整解决方案。

OldCat先生 2973

一键自动修改和翻新OC源码,解决苹果审核4.3和马甲问题

OC项目文件路径包含代码文件与资源文件如下图。

m0_74760716的博客 1271

中国1986-2024年30米分辨率年最大NDVI数据集:条带修复技术与植被动态监测

本文介绍了中国1986-2024年30米分辨率年最大NDVI数据集的构建,重点阐述了针对Landsat 7 SLC-off故障等问题的条带修复技术。通过应用GapFill等核心算法,该数据集有效修复了数据缺失,为长时间序列的植被动态监测、生态变迁分析和极端气候事件评估提供了高质量、连续可靠的数据基础。

weixin_29200485的博客 167

L2-021. 点赞狂魔

L2-021. 点赞狂魔 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了

nhpper的博客 2227

关键词‖旋变传感器

旋转变压器(以下简称旋变)安装在永磁同步驱动电机的非传动端,其作用是检测转子的位置和速度。目前,通常采采用结构简单、坚固耐用、环境适应性好的磁阻式旋变作为位置传感器。

m0_72345077的博客 2149

转录组分析中的Fastp和FastQC:如何快速检测数据质量并优化流程

本文深入探讨了转录组分析中数据质量控制的核心流程,重点介绍了Fastp和FastQC两款工具的组合应用。FastQC负责对原始测序数据进行全面质量评估,生成可视化报告;Fastp则能一站式完成接头切除、低质量序列过滤、长度筛选等关键质控步骤。文章提供了详细的参数解读、实战脚本和自动化流程构建指南,帮助研究人员快速检测数据质量并优化预处理流程,为下游的差异表达等分析奠定可靠基础。

weixin_28452161的博客 181

Spring基础学习之Spring配置

前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师。 这个Spring基础学习系列是用来记录我学习Spring框架基础知识的全过程 (这个系列是参照B站狂神的Spring5最新教程来写的,由于是之前整理的,但当时没有发布出来,所以有些地方可能有错误,希望大家能够及时指正!) 之后我将会以一天一更的速度更新这个系列,还没有学习Spring5框架的小伙伴可以参照我的博客学习一下;当然

weixin_45301250的博客 319

java 二维码生成及其标签打印

本文主要内容 二维码生成 二维码标签预览及打印 二维码生成 笔者此次的二维码是通过调用第三方接口生成的,具体流程如下: 根据规范要求调用第三方接口,返回二维码下载地址及二维码图片的属性值(图片大小等) 根据返回的值获取二维码下载地址,根据地址下载二维码图片,保存至本地磁盘及记录数据信息 扫描二维码跳转相应地址,显示资产的基本信息 最终生成的二维码如下图所示: 预览并批量打印二维码标签 先...

孙小牟的博客 4941

如何改造老旧代码

重构代码,用Lambda表达式取代匿名类 由于Lambda可以看做是函数式接口的实例,因此,只能将实现了单一抽象方法的匿名类转换为Lambda表达式。 注意事项: ①匿名类和Lambda表达式中的this和super的含义是不同的。在匿名类中,this代表的是类自身,但是在Lambda中,它代表的是包含类。 ②匿名类可以屏蔽包含类的变量,而Lambda表达式不能屏蔽,通俗来讲就是匿名类可以...

狼行千里吃肉 649

23种设计模式-中介者(Mediator)设计模式

软考中级-软件设计师 中介者设计模式

片言可决讼,半纸能缚龙 1863

mjlab & MimicKit 宇树 G1 人形机器人强化学习训练部署

基于mjlab框架训练Unitree G1人形机器人执行双旋踢的示例。参考动作源自Jason Peng的MimicKit项目。数据转换脚本(MimicKit pkl → mjlab csv)完整训练结果与超参数预训练ONNX检查点用于部署实体硬件部署指南⚠️ 免责声明仅用于教育目的。对于因尝试复现此处展示结果而导致的财产损失或人身伤害,我们概不负责。操作硬件时请谨慎行事并保持良好判断力。

2506_90492529的博客 1700

这招可以搞定 console 狂魔!

原文来源于:萌萌哒草头将军;作者:萌萌哒草头将军如有侵权,联系删除。

2401_83384536的博客 721

【DEIM创新改进】独家下采样创新改进篇 | ECCV 2026 | DEIM 引入FSD-Down频域-空间动态下采样,在下采样过程中保留小目标的高频信息、助力小目标检测、遥感小目标检测有效涨点

🔥本文提出了一种名为FSD-Down的频域-空间动态下采样模块,用于改进DEIM网络模型在小目标检测中的性能。FSD-Down通过小波分解显式保留低频语义和高频细节,结合分组卷积、动态通道权重和可学习缩放因子,自适应强化目标边缘与纹理特征。该模块能有效减轻传统下采样造成的频率混叠和细节丢失,提升对小目标、密集目标和低对比度目标的检测能力。实验表明,FSD-Down计算开销可控,在保持实时性的同时显著提升检测精度,特别是在VisDrone和AITODv2数据集上对小目标的检测性能提升显著。

Ai缝合怪、助力小伙伴高效发论文 82

Waymo 新工厂落地密歇根,自动驾驶“改造狂魔”即将上线 ...

Waymo 在凤凰城的自动驾驶打车服务 Waymo One 已经上线一个多月了。有趣的是,这家业内领跑的巨头宣传口集体“哑火”,低调得不行。 最近,Waymo 终于打破沉默,公布了在密歇根建设组装厂来生产自动驾驶汽车的计划。 美国时间本周二(1 月 22 日),已经成军十年的 Waymo(前身是谷歌自动驾驶汽车部门)对外表示,已经拿到了密歇根...

weixin_33966095的博客 126

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【轮子狂魔】轮子的魅力之扩展能力

序言 如果你是第一次看本文,建议先看下前面两篇,否则你可能会一头雾水 【轮子狂魔】序言:有没有那么一种系统架构,它是无所不能的 【轮子狂魔】打造简易无配置的IoC 看过上一篇【轮子狂魔】打造简易无配置的IoC的人,可能会有几个疑问,我统一回答一下吧。 1.你这说是IoC,但感觉不像啊。 首先,我在百度百科里把IoC的概念Copy过来看看。...

ab2518805的博客 142

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ICT界的基建狂魔—上海季冠:借助闪星云平台一天改造150家品牌珠宝店

BACKGROUND 项目背 某珠宝品牌是一家在香港上市的国际知名珠宝公司,专营自有品牌珠宝玉石金饰业务,是集原料采购、生产设计、零售服务的综合性跨国集团,目前在中国、马来西亚、韩国等地共有近3000家连锁店,该品牌创立于1929年,每年销售额达300亿港元,市值逾1000亿港元,聘用员工逾30000人,是知名度非常高且颇具规模的珠宝首饰品牌。在中国繁华的商业街上都能看到某国际知名珠宝品牌店铺的存在,而每一家店铺后面都有闪星云ICT智能管理服务平台在默默地支持着。 DILEMMA ...

JG_ICT的博客 495

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

mc服务器修改地形,把《我的世界》改造的地形放大1万倍,Mojang看了也得竖起大拇指...

在《我的世界》,有一群人,对建造没什么兴趣,也不热衷生存探索,但却专注于改造Minecraft地形。玩家亲切地称呼他们为《我的世界》“地形整容医生”。①网友@r3tired是一位对细节极其敏锐的MC建筑奇才。这是他花费许多心血制作完成的《我的世界》4K地图,他的自定义地形看起来就像鲍伯·罗斯瑰丽的油画。南部是大草原和大峡谷,树木成荫,鲜花遍野,中心是面积较小的峡谷山脉和针叶林生物群系。往北是白茫茫...

weixin_36409041的博客 3166

SSM项目 - Online Music Player(在线音乐播放器)- 前端页面设计 - 细节狂魔

如果存在完全没有学过前端知识的朋友,可以参考这三篇文章。1、前端三剑客之 HTML - JavaEE初阶 - 细节狂魔2、前端三剑客之 CSS - JavaEE初阶 - 细节狂魔3、前端三剑客之 JavaScript - javaEE初阶 - 细节狂魔放心,都是一些非常基础的API,只是带着你扫一下盲。下一篇文章,就是怎么讲项目部署到 云服务器上。

DarkAndGrey的博客 2653

基建狂魔:硬核技术之隔绝厌氧菌的涂料

内容转载自微信公众号:中国科普博览近年间,中国经常被称为“基建狂魔”。一说到这个称号,大家会想到高超的设计师、工程师,想到高效的施工团队,但可能很少有人会想到科学家们。科学家们不是每天都...

刘永鑫的博客——宏基因组公众号 320

JavaEE进阶 - SpringBoot 的 概念、创建和运行 - 细节狂魔

Spring的诞⽣是为了简化Java程序的开发的,⽽SpringBoot的诞⽣是为了简化Spring程序开发的。SpringBoot翻译⼀下就是Spring脚⼿架,什么是脚⼿架呢?如下图所示盖房⼦的这个架⼦就是脚⼿架,脚⼿架的作⽤是砌筑砖墙,浇筑混凝⼟、⽅便墙⾯抹灰,装饰和粉刷的。简单来说,就是使⽤脚⼿架可以更快速的盖房⼦。⽽SpringBoot就是Spring框架的脚⼿架,它就是为了快速开发Spring框架⽽诞⽣的。再来看个例子https。...

DarkAndGrey的博客 2399

避免这些编程陷阱:七种让你代码失控的开发风格

而那些小岛上的土著人从来没有见过飞机,当他们看到飞机的时候,觉得相当的牛,可以为那些白人带来各种各样的物品和食物。开发者使用非常随意的方式对待代码,像持散弹枪般,不加分析地向问题盲目射击,通过随机、反复地修改代码来碰运气,直到错误消失。在动手修复一个明确的小问题前,试图理解整个宇宙的关联性,编写大量无关的测试,耗费远超问题本身价值的时间。过度设计,引入不必要的复杂度,让简单问题变得复杂,核心业务逻辑被淹没在形式主义的架构中。引入巨大的、未经充分测试的变更风险,极可能导致系统“重构一时爽,线上火葬场”。

mD3Y4cM0j的博客 163

超越美日,世界级项目准备起步,基建狂魔是如何管理隧道

作为数据可视化的一线参与者,一直致力于自主研发的道路。今年发改委首次明确新基建的范围,其中如何加快传统基础设施向“新基建”融合基础设施转变,这一话题被提上日程。 借此机会,引出隧道综合监控系统,为国内新基建发展出一份薄力 ——— 图扑(hightopo) 据悉,烟大海底隧道战略规划组已于本月将海底隧道初步方案上报给国务院。项目组组长、中国工程院院士王梦恕表示,烟大海底隧道项目通过国务院立项后,有望在十四五期间进行开工建设,预计工期需要十年左右。 什么是烟大海底隧道。1992年首次提出来的构想:从山.

二三维数据可视化/数字孪生 395

【轮子狂魔】抛弃IIS,打造个性的Web Server - WebAPI/Lua/MVC(附带源码)

引言 此篇是《【轮子狂魔】抛弃IIS,向天借个HttpListener - 基础篇(附带源码)》的续篇,也可以说是提高篇,如果你对HttpListener不甚了解的话,建议先看下基础篇。 这次玩的东西有点多了,大致分为如下几个方向: 1.支持静态页面 2.Ur映射l执行方法 3.Url映射执行Lua脚本 4.模仿MVC中的C 这些东...

ab2518805的博客 236
上一篇: 关于JAR包版本冲突的几个应对招数总结
下一篇: 《Spring4.x企业应用开发实战》光盘资料下载
quickselect
博客等级 码龄20年 1粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值