Browse Source

初步校核文档记录

master
张献维 3 weeks ago
parent
commit
ec612bad03
  1. BIN
      Writerside/images/200.png
  2. BIN
      Writerside/images/201.png
  3. BIN
      Writerside/images/202.png
  4. BIN
      Writerside/images/204.png
  5. BIN
      Writerside/images/3000.png
  6. BIN
      Writerside/images/30001.png
  7. 25
      Writerside/in.tree
  8. 3
      Writerside/topics/公务员文档.md
  9. 29
      Writerside/topics/增加第二版排序.md
  10. 16
      Writerside/topics/排序说明.md
  11. 2
      Writerside/topics/校核开始.md
  12. 61
      Writerside/topics/点击机构查询.md
  13. 35
      Writerside/topics/直统开始.md
  14. 85
      Writerside/topics/第一版排序.md
  15. 48
      Writerside/topics/编制统计开始.md
  16. 2
      Writerside/topics/规则分类.md
  17. 2
      Writerside/topics/规则详解.md

BIN
Writerside/images/200.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
Writerside/images/201.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

BIN
Writerside/images/202.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

BIN
Writerside/images/204.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

BIN
Writerside/images/3000.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

BIN
Writerside/images/30001.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

25
Writerside/in.tree

@ -3,11 +3,30 @@
SYSTEM "https://resources.jetbrains.com/writerside/1.0/product-profile.dtd"> SYSTEM "https://resources.jetbrains.com/writerside/1.0/product-profile.dtd">
<instance-profile id="in" <instance-profile id="in"
name="Instance Name" name="公务员文档"
start-page="开始.md"> start-page="公务员文档.md">
<toc-element topic="公务员文档.md"/>
<toc-element toc-title="机构管理">
<toc-element toc-title="机构编制统计">
<toc-element topic="编制统计开始.md"/>
</toc-element>
</toc-element>
<toc-element toc-title="人员管理">
<toc-element toc-title="人员直统">
<toc-element topic="直统开始.md"/>
</toc-element>
<toc-element toc-title="人员查询">
<toc-element topic="点击机构查询.md"/>
</toc-element>
<toc-element toc-title="人员排序">
<toc-element topic="排序说明.md"/>
<toc-element topic="第一版排序.md"/>
<toc-element topic="增加第二版排序.md"/>
</toc-element>
</toc-element>
<toc-element toc-title="数据校核"> <toc-element toc-title="数据校核">
<toc-element topic="开始.md"/> <toc-element topic="校核开始.md"/>
<toc-element topic="规则分类.md"/> <toc-element topic="规则分类.md"/>
<toc-element topic="规则详解.md"/> <toc-element topic="规则详解.md"/>
</toc-element> </toc-element>

3
Writerside/topics/公务员文档.md

@ -0,0 +1,3 @@
# 公务员文档
Start typing here...

29
Writerside/topics/增加第二版排序.md

@ -0,0 +1,29 @@
# 增加第二版排序
## 思路
<tabs>
<tab title="⭐ 单字段进行顺序排序">
<code-block lang="markdown"># 优势
1. 查询只排序单字段
# 缺点
1. 同步更新的时候,可能无法全局进行更新处理
2. 如果部分数据发生变更时或人员集体内排序号发生更新,需要全局进行数据更新操作</code-block>
</tab>
<tab title="双字段进行顺序排序">
<code-block lang="markdown"># 优势
1. 将部分字段进行更新时拆分
# 缺点
1. 但是无法解决部分上级节点顺序发生变化情况
2. 如果部分数据发生变更时,需要全局进行数据更新操作</code-block>
</tab>
</tabs>
主要针对如何处理上级机构如果存在重新排序时,应该如何进行处理。
或者说"部分数据发生变更时",不进行全部数据更新操作。
## 结论
增加使用字段 `A01.A0157 is '前置遍历序号(废弃:人事关系所在机构代码)'` 的作用。
原意义已不使用。

16
Writerside/topics/排序说明.md

@ -0,0 +1,16 @@
# 排序开始
对于公务员系统,应该存在排序,在队伍建设,人们总是习惯关注在某一个队伍行列中,自己所在行列的上司在职务执行中的排序。
排序是一种展示人员职务重要性和先后顺序的指标。
## 现状
当前公务员系统存在两大重要的排序字段(人员任职机构中的最高机构代码:`TORGID`,排序字段:`SORTID`),在顺序创建机构时,
对于 `TORGID` 是按照顺序进行排列展示的,就没有问题,人员就可以按照先机构后人员进行顺序展示,但是存在机构排序操作,即
在操作机构,同一个父节点下的机构存在不同顺序(有异与顺序机构排序号)。
## 思考
按照查询习惯进行排序需要,又存在需要“先机构后人员”的查询需要,也有从机构到逐渐下探到底,然后逐个上浮查询兄弟机构,
逐渐到根,依次展示,专业名称叫“前置排序”。

2
Writerside/topics/开始.md → Writerside/topics/校核开始.md

@ -1,4 +1,4 @@
# 《%mainJob%》开始 # 校核开始
## 功能位置 ## 功能位置

61
Writerside/topics/点击机构查询.md

@ -0,0 +1,61 @@
# 点击机构查询
## 功能操作
常规查询方式,点击机构进行数据查询。
## 基本操作
* 数据默认查询
* 排序垃圾数据
* 现职人员
* 人员类别(公务员)
* 报表条件(如:统计中央一级)
* 统计范围(按照统计关系所在单位,,默认包含下级)
* 操作用户的权限脚本
```sql
-- 默认点击查询
select tmp.a0000, '0A9E21F1CBA1276AE0743D859E081777' sessionid,
(@i := @i + 1) as i
from (select @i := 0) as it,
(select a01.a0000, '0A9E21F1CBA1276AE0743D859E081777' sessionid
from A01 a01
where 1 = 1
and a01.status != '4' -- 排序垃圾数据
and a0163 = '1' -- 现职人员
and exists(select 1
from a02 a02,
competence_userdept cu
where cu.userid = '1'
and a02.A0201B = b0111
and a01.a0000 = a02.a0000
and a0281 = 'true' -- 职务输出
and a02.a0201b like '001.001.007%') -- 权限脚本
order by length(torgid), (select concat(LPAD(SORTID, 6, 0), torgid )
from b01 where B0111 = torgid) asc, -- 数据排序
torder asc, a0000 asc) tmp
-- 点击“其他人员”机构
select tmp.a0000, '0A9E21F1CBA1276AE0743D859E081777' sessionid,
(@i := @i + 1) as i
from (select @i := 0) as it,
(select a01.a0000, '0A9E21F1CBA1276AE0743D859E081777' sessionid
from A01 a01
where 1 = 1
and a01.status != '4' -- 排序垃圾数据
and not exists (select 1
from a02,
b01
where a02.a0000 = a01.a0000
and b0111 = a0201b
and a0281 = 'true' -- 职务输出
and b0111 != '-1') -- 权限脚本
and a0163 = '1'
order by length(torgid), (select concat(LPAD(SORTID, 6, 0), torgid)
from b01 where B0111 = torgid) asc, -- 数据排序
torder asc, a0000 asc) tmp
```

35
Writerside/topics/直统开始.md

@ -0,0 +1,35 @@
# 直统开始
## 功能操作
![3000.png](3000.png)
在人员直统功能中,选择统计类别,统计报表,统计单位进行数据统计。
实际情况数据直统,是实时数据统计,统计数据不进行数据存储。
数据直统也是统计数据反方向进行统计验证。
## 数据直统
数据统计存在条件信息。
* 数据直统
* 排序垃圾数据
* 现职人员
* 人员类别(公务员)
* 报表条件(如:统计中央一级)
* 统计范围(按照统计关系所在单位,,默认包含下级)
* 操作用户的权限脚本
```sql
SELECT a01.*
FROM A01 a01
LEFT JOIN b01 a02 ON a02.b0111 = a01.a0195
where a01.a0163 = '1' -- 现职人员
and a01.status!='4' -- 排序垃圾数据
and ( a0195 like '001.001.005%' ) -- 统计范围
and a02.b0124 ='11' -- 报表条件(如:统计中央一级)
and a0160='1' -- 人员类别(公务员)
AND EXISTS(SELECT 1 FROM competence_userdept cu
WHERE cu.userid='1' AND A0195 = b0111 ) -- 权限脚本
```

85
Writerside/topics/第一版排序.md

@ -0,0 +1,85 @@
# 第一版排序
## 操作机构排序
![200.png](200.png){ thumbnail="true" style="block" }
在机构管理中,进行机构拖动,然后进行数据存储,存储时,按照同父节点进行顺序从(1到n进行顺序增加)。
## 操作人员排序
![201.png](201.png){ thumbnail="true" style="block" }
需要注意的是,不同的职务,如果职务属于不同的科室,则展示的排序顺序也会不一样。
每一个人在每一个有职务的机构的排序均不一样,当然在整体来看,人员的集体内排序号以“按照机构最高的职务,排序靠前的顺序”进行展示。
例如:
![202.png](202.png){ thumbnail="true" style="block" }
余某某,在“宁波市人民政府”和“宁波市教育局”两个单位任职,分别如下
| ---- | ---- | ---- |
| 机构名 | 机构码 | 排序号 |
| 宁波市人民政府 | 001.001.002 | 4 |
| 宁波市教育局 | 001.001.002.004 | 1 |
这是这个人员,由于在“宁波市人民政府”任职,编码或者层次深度更小,则最终人员的集体内排序应为
`TORGID` = `001.001.002``SORTID` = `4`
其实主要是针对“机构码”的计算,寻找深度小的任职单位。
那么同样任职深度的单位,如何进行计算操作呢!这是一个比较复杂的问题。按照原则,如果相同深度机构,
应该在比较是否同父节点,同父节点,按照机构排序码进行比较,不是同父父节点,按照上级节点谁靠前,先排谁。
## 操作人员算法
> 这里简化了后面比较复杂的情况。以 SQL 函数的方式进行数据比较查询性能上可能存在局限。
* 数据更新
```sql
-- 定义函数
create function get_torgid(V0000 varchar(120)) returns varchar(199)
begin
DECLARE FunctionResult VARCHAR(199);
select min(a0201b) into FunctionResult from
(select a02.A0201B
from a02, b01
where a02.a0000 = V0000
and b01.b0111 = a02.a0201b
and a02.a0281 = 'true'
and a0201b <> '-1'
order by b01.sortid) a02 LIMIT 1;
return FunctionResult;
end;
-- 在基本数据发生保存时,即人员集体内排序或人员职务信息发生保存时。
-- 更新人员整体的集体内排序标识
update a01 set a01.torgid= get_torgid(a0000) where a0000 = '${a0000}';
update a01 set a01.torder=
lpad(
ifnull(
(select max(a0225) from a02
where a01.a0000 = a02.a0000 and
a02.a0281 = 'true' and
a01.torgid=a02.a0201b)
,'1')
,5,'0') where a01.a0000 = '${a0000}';
```
* 数据查询
![204.png](204.png) { thumbnail="true" style="block" }
> 这里虽然能部分解决机构排序号的问题,但是上级单位的排序号还是会影响整体排序。
在手动排序功能下,默也是认排序方式,
```sql
select a01.a0000, 'xxx' sessionid from A01 a01
order by length(torgid), -- 为了描述深度
(select concat(LPAD(SORTID, 6, 0), torgid) from b01
where B0111=torgid) asc, -- 为了拼接机构排序码
torder asc, -- 人员排序号
a0000 asc -- 无效字段
```

48
Writerside/topics/编制统计开始.md

@ -0,0 +1,48 @@
# 编制统计开始
## 现状
> 这里简化基本数据统计。
* 统计情况
* 数据统计展示
![30001.png](30001.png) { thumbnail="true" style="block" }
> 这里虽然数据按照遍历下级数据,但是速度还是可以满足基本数据统计。
* 数据统计标准
* 现职人员
* 任职状态
* 是否领导职务
* 班子成员类别代码 = 指定值
* 【隐藏】领导成员 a0201d = '1' (因为存在领导成员类型,默认是领导成员)
* 脚本部分
```sql
-- 正职
Select Count(distinct t.a0000)
From A02 t
where t.a0201e = '1' -- 班子成员类别代码(正职)
and t.a0201b in (select b0111 from b01 where (B0121 = '${b0111}'
and b0194 = '2') or B0111 = '${b0111}') -- 指定范围
and t.a0219 = '1' -- 是否领导职务
and t.a0255 = '1' -- 任职状态
and exists (select 1 from a01 b where b.a0000 = t.a0000
and b.a0163 = '1') -- 现职人员
-- 副职
Select Count(distinct t.a0000)
From A02 t
where t.a0201e = '3' -- 班子成员类别代码(副职)
and t.a0201b in (select b0111 from b01 where (B0121 = '${b0111}' and
b0194 = '2') or B0111 = '${b0111}') -- 指定范围
and t.a0219 = '1' -- 是否领导职务
and t.a0255 = '1' -- 任职状态
and exists (select 1 from a01 b where b.a0000 = t.a0000
and b.a0163 = '1') -- 现职人员
```

2
Writerside/topics/规则分类.md

@ -1,4 +1,4 @@
# 《%mainJob%》分类 # 校核分类
> 校核规则主要分为无前提条件校核和有前提条件校核两个部分。 > 校核规则主要分为无前提条件校核和有前提条件校核两个部分。

2
Writerside/topics/规则详解.md

@ -1,4 +1,4 @@
# 《%mainJob%》规则详解 # 规则详解
## 每年变动规则 {collapsible="true"} ## 每年变动规则 {collapsible="true"}

Loading…
Cancel
Save