From e1df131b6723c39efd3a39145b8c852f38bab009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8C=AE=E7=BB=B4?= Date: Sun, 5 Jan 2025 21:33:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=89=E5=BA=93=E6=AF=94?= =?UTF-8?q?=E5=AF=B9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../go_to_mysql/go_to_hzb/HZBMySQLComp.go | 231 +++++++++--------- .../data_office/get_hy_jctj/main.exe.manifest | 21 ++ golang_learn/data_office/get_hy_jctj/main.go | 224 +++++++++++++++++ .../data_office/get_hy_jctj/main.syso | Bin 0 -> 271379 bytes golang_learn/data_office/get_hy_jctj/rc.ico | Bin 0 -> 270398 bytes .../get_hy_jctj/网新辅助工具.md | 14 ++ 6 files changed, 378 insertions(+), 112 deletions(-) create mode 100644 golang_learn/data_office/get_hy_jctj/main.exe.manifest create mode 100644 golang_learn/data_office/get_hy_jctj/main.go create mode 100644 golang_learn/data_office/get_hy_jctj/main.syso create mode 100644 golang_learn/data_office/get_hy_jctj/rc.ico create mode 100644 golang_learn/data_office/get_hy_jctj/网新辅助工具.md diff --git a/golang_learn/data_func/go_to_mysql/go_to_hzb/HZBMySQLComp.go b/golang_learn/data_func/go_to_mysql/go_to_hzb/HZBMySQLComp.go index 4dd82d4..662b7db 100644 --- a/golang_learn/data_func/go_to_mysql/go_to_hzb/HZBMySQLComp.go +++ b/golang_learn/data_func/go_to_mysql/go_to_hzb/HZBMySQLComp.go @@ -1,11 +1,15 @@ -/** +/* +* 该程序用于MySQL比较数据库某些字典信息。 参数方式说明: + 无参数 : 表示执行 -h : 表示查看说明 -r : 表示重构基础文件 -v : 表示查看版本号 + 当前记录信息项为: + code_type、 code_value、 code_table、 @@ -21,114 +25,117 @@ */ package main -import ( - "data_func/go_to_mysql/go_to_hzb/Obj" - "database/sql" - "fmt" - _ "github.com/go-sql-driver/mysql" - "golang.org/x/sys/windows/registry" - "os" - "strings" - "time" -) - -/** -概括文件 -*/ -type Files struct { - Creator string //创建人 - Edition string //创建版本 - CreatDate string //创建时间 -} - -/** -主方法 -*/ -func main() { - db, err := sql.Open("mysql", "root:admin@tcp(127.0.0.1:45017)/zwhzyq?charset=utf8") - if err != nil { - fmt.Println(err) - } - defer db.Close() - - rows, _ := db.Query("select * from CODE_TYPE") - c := Obj.CODE_TYPE{} - for rows.Next() { - err = rows.Scan(&c.CODE_TYPE, &c.TYPE_NAME, &c.CODE_GROUP, &c.CODE_DESCRIPTION, &c.ISCUSTOMIZE) - fmt.Println(c.CODE_TYPE) - } - - /*Mysql := [] string{"code_type","code_value","code_table","code_table_col","a01_config_init","smt_acl","smt_function","smt_resource","s_version","v_version","verify_scheme","verify_rule"} - - - for key, value := range Mysql { - fmt.Println(key, value) - } - - args := os.Args - hzbPath := funcName() //读取权限列表中项目的路径 - ctxPath := hzbPath //用于替换 - - if len(args) == 1 { // ----------------------------------------------------------表示执行 - - }else if len(args) == 2 { - if args[1] == "-h" { // -----------------------------------------------------表示帮助 - fmt.Println("该程序为该程序用于MySQL比较数据库某些字典信息" + - "。\n\t无参数时,表示直接执行程序,会生成csv文件(存在汉字会乱码,请使用文本查看)" + - ";\n\t壹参数时,(-h)表示查看帮助" + - ";\n\t壹参数时,(-r)表示按照基础字典重构程序" + - ";\n\t多参数时,(-r -code_value +code_type)表示重构程序减除code_value,新增code_type" + - "。") - }else if args[1] == "-r" { // -----------------------------------------------表示重构基础 - fmt.Println("") - }else{ - fmt.Println("无操作!") - } - }else {// -----------------------------------------------------------------------表示重构基础 + 新增字典 - if 1 == 1 { - - } - } - writeFile(ctxPath, "")*/ - -} - -/** -输出文件 -*/ -func writeFile(JsonPath, allStr string) { - file3, _ := os.Create(JsonPath + "_" + time.Now().Format("20060102150405") + ".go") - file3.WriteString(allStr) - file3.Close() -} - -/** -读取权限列表中项目的路径 -*/ -func funcName() string { - key, exists := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\全国公务员管理信息系统2017版`, registry.QUERY_VALUE) - defer key.Close() - if exists == nil { - version, _, _ := key.GetStringValue("DisplayVersion") - return version - } else { - return "" - } -} - -/** -字符串格式化 -*/ -func form(timeStr string) string { - return timeStr[0:4] + "-" + timeStr[4:6] + "-" + timeStr[6:8] + " " + timeStr[8:10] + ":" + timeStr[10:12] + ":" + timeStr[12:14] -} - -/** -获取文件名称 -*/ -func readFileName() string { - aaa := os.Args //当前目录数组 - aaastr := aaa[0] //当前目录字符串 - aaasz := strings.Split(aaastr, "\\") //获取文件目录数组 - return strings.Replace(aaasz[len(aaasz)-1], ".exe", "", 1) //获取操作程序名称 -} +// +// import ( +// "data_func/go_to_mysql/go_to_hzb/OBJ" +// "database/sql" +// "fmt" +// _ "github.com/go-sql-driver/mysql" +// "golang.org/x/sys/windows/registry" +// "golang_learn/data_func/go_to_mysql/go_to_hzb/Obj" +// "os" +// "strings" +// "time" +// ) +// +// /** +// 概括文件 +// */ +// type Files struct { +// Creator string //创建人 +// Edition string //创建版本 +// CreatDate string //创建时间 +// } +// +// /** +// 主方法 +// */ +// func main() { +// db, err := sql.Open("mysql", "root:admin@tcp(127.0.0.1:45017)/zwhzyq?charset=utf8") +// if err != nil { +// fmt.Println(err) +// } +// defer db.Close() +// +// rows, _ := db.Query("select * from CODE_TYPE") +// c := Obj.CODE_TYPE{} +// for rows.Next() { +// err = rows.Scan(&c.CODE_TYPE, &c.TYPE_NAME, &c.CODE_GROUP, &c.CODE_DESCRIPTION, &c.ISCUSTOMIZE) +// fmt.Println(c.CODE_TYPE) +// } +// +// /*Mysql := [] string{"code_type","code_value","code_table","code_table_col","a01_config_init","smt_acl","smt_function","smt_resource","s_version","v_version","verify_scheme","verify_rule"} +// +// +// for key, value := range Mysql { +// fmt.Println(key, value) +// } +// +// args := os.Args +// hzbPath := funcName() //读取权限列表中项目的路径 +// ctxPath := hzbPath //用于替换 +// +// if len(args) == 1 { // ----------------------------------------------------------表示执行 +// +// }else if len(args) == 2 { +// if args[1] == "-h" { // -----------------------------------------------------表示帮助 +// fmt.Println("该程序为该程序用于MySQL比较数据库某些字典信息" + +// "。\n\t无参数时,表示直接执行程序,会生成csv文件(存在汉字会乱码,请使用文本查看)" + +// ";\n\t壹参数时,(-h)表示查看帮助" + +// ";\n\t壹参数时,(-r)表示按照基础字典重构程序" + +// ";\n\t多参数时,(-r -code_value +code_type)表示重构程序减除code_value,新增code_type" + +// "。") +// }else if args[1] == "-r" { // -----------------------------------------------表示重构基础 +// fmt.Println("") +// }else{ +// fmt.Println("无操作!") +// } +// }else {// -----------------------------------------------------------------------表示重构基础 + 新增字典 +// if 1 == 1 { +// +// } +// } +// writeFile(ctxPath, "")*/ +// +// } +// +// /** +// 输出文件 +// */ +// func writeFile(JsonPath, allStr string) { +// file3, _ := os.Create(JsonPath + "_" + time.Now().Format("20060102150405") + ".go") +// file3.WriteString(allStr) +// file3.Close() +// } +// +// /** +// 读取权限列表中项目的路径 +// */ +// func funcName() string { +// key, exists := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\全国公务员管理信息系统2017版`, registry.QUERY_VALUE) +// defer key.Close() +// if exists == nil { +// version, _, _ := key.GetStringValue("DisplayVersion") +// return version +// } else { +// return "" +// } +// } +// +// /** +// 字符串格式化 +// */ +// func form(timeStr string) string { +// return timeStr[0:4] + "-" + timeStr[4:6] + "-" + timeStr[6:8] + " " + timeStr[8:10] + ":" + timeStr[10:12] + ":" + timeStr[12:14] +// } +// +// /** +// 获取文件名称 +// */ +// func readFileName() string { +// aaa := os.Args //当前目录数组 +// aaastr := aaa[0] //当前目录字符串 +// aaasz := strings.Split(aaastr, "\\") //获取文件目录数组 +// return strings.Replace(aaasz[len(aaasz)-1], ".exe", "", 1) //获取操作程序名称 +// } +// diff --git a/golang_learn/data_office/get_hy_jctj/main.exe.manifest b/golang_learn/data_office/get_hy_jctj/main.exe.manifest new file mode 100644 index 0000000..c52acbc --- /dev/null +++ b/golang_learn/data_office/get_hy_jctj/main.exe.manifest @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/golang_learn/data_office/get_hy_jctj/main.go b/golang_learn/data_office/get_hy_jctj/main.go new file mode 100644 index 0000000..192d10c --- /dev/null +++ b/golang_learn/data_office/get_hy_jctj/main.go @@ -0,0 +1,224 @@ +package main + +/* +思路: + 按照三个SQL进行查询,结果封装到指定结构体,并对比三个查询结果,按照姓名和身份证作为关联项,任意其他项值不等,则保留下来 + +*/ +import ( + "database/sql" + "fmt" + "github.com/xuri/excelize/v2" + "strings" + "time" + + _ "github.com/go-sql-driver/mysql" +) + +var SQLJck = "select ifnull(A0184,'') IDNumber, ifnull(A0101,'') Name, ifnull(substr(a0107, 1, 6),'') BirthDate, ifnull(A0101,'') Gender, ifnull(A0117,'') Ethnicity, ifnull(substr(a0134, 1, 6),'') WorkStartDate, ifnull(A0141,'') PoliticalStatus, ifnull((select MIN(A0801B) from A08 where A0831=1 and A01.A0000=A08.A0000), '') FullTimeEducation, ifnull((select MIN(A0801B) from A08 where A0834=1 and A01.A0000=A08.A0000), '') HighestEducation, ifnull((select MIN(A0901B) from A08 where A0835=1 and A01.A0000=A08.A0000), '') HighestDegree, ifnull(A0123,'') JobCategory, ifnull((select A0501B from A05 where A0531=1 and A0524=1 and A01.A0000=A05.A0000), '') CurrentPositionLevel, ifnull((select substr(A0504, 1, 6) from A05 where A0531=1 and A0524=1 and A01.A0000=A05.A0000), '') CurrentPositionStartDate, ifnull((select A0501B from A05 where A0531=0 and A0524=1 and A01.A0000=A05.A0000), '') CurrentRankLevel, ifnull((select DATE_FORMAT(DATE_SUB(STR_TO_DATE(substr(A0504, 1, 6), '%Y%m'), INTERVAL ifnull(A0532, 0) MONTH), '%Y%m') from A05 where A0531=1 and A0524=1 and A01.A0000=A05.A0000), '') CurrentRankStartDate, ifnull(A0197,'0') Has2YearsGrassrootsExp, ifnull((select MIN(A1517) from A15 where A1521='2023' and A01.A0000=A15.A0000), '') AnnualAssessment2023, ifnull(A0160,'') PersonCategory, ifnull((select 1 from A99Z1 where A99Z101=1 and A99Z103=1 and A99Z102 like '2024%' and A01.A0000=A99Z1.A0000), 0) SelectedFor2024 from A01 where A0163='1'" +var SQLZjk = "select ifnull(M0203,'') IDNumber, ifnull(M0201,'') Name, ifnull(M0204,'') BirthDate, ifnull(M0202,'') Gender, ifnull(M0205,'') Ethnicity, ifnull(M0216,'') WorkStartDate, ifnull(M0206,'') PoliticalStatus, ifnull(M0242,'') FullTimeEducation, ifnull(M0212,'') HighestEducation, ifnull(M0213,'') HighestDegree, ifnull(M0246,'') JobCategory, ifnull(M0208,'') CurrentPositionLevel, ifnull(M0233,'') CurrentPositionStartDate, ifnull(M0243,'') CurrentRankLevel, ifnull(M0244,'') CurrentRankStartDate, ifnull(M0215,'') Has2YearsGrassrootsExp, ifnull(M0201,'') AnnualAssessment2023, ifnull((select case M0104 when 2 then 5 when 3 then 6 else 1 end from M_M01 where M_M01.UNID=M_M02.UNID),'') PersonCategory, ifnull((select 1 from M_M05 where M0503=M0203 and rpt='2024'),0) SelectedFor2024 from M_M02 where rpt='2024'" +var SQLGzk = "select ifnull(S0203,'') IDNumber, ifnull(S0201,'') Name, '' BirthDate, '' Gender, '' Ethnicity, '' WorkStartDate, '' PoliticalStatus, '' FullTimeEducation, ifnull(S0225,'') HighestEducation, '' HighestDegree, '' JobCategory, ifnull(S0204,'') CurrentPositionLevel, '' CurrentPositionStartDate, ifnull(S0205,'') CurrentRankLevel, '' CurrentRankStartDate, '' Has2YearsGrassrootsExp, '' AnnualAssessment2023, '' PersonCategory, '' SelectedFor2024 from m_s02 where rpt='2024' union all select ifnull(S0403,'') IDNumber, ifnull(S0401,'') Name, '' BirthDate, '' Gender, '' Ethnicity, '' WorkStartDate, '' PoliticalStatus, '' FullTimeEducation, ifnull(S0425,'') HighestEducation, '' HighestDegree, '' JobCategory, ifnull(S0404,'') CurrentPositionLevel, '' CurrentPositionStartDate, ifnull(S0405,'') CurrentRankLevel, '' CurrentRankStartDate, '' Has2YearsGrassrootsExp, '' AnnualAssessment2023, '' PersonCategory, '' SelectedFor2024 from m_s04 where rpt='2024'" + +// 存在所有对象信息 - 集合 +func main() { + + db, _ := sql.Open("mysql", "root:admin@tcp(127.0.0.1:35017)/hy_qggwy?charset=utf8") + fmt.Println("操作数据库连接:", db) + + // 创建临时文件夹 + dir := time.Now().Format("2006102150405") + file := fmt.Sprintf("对比结果-%s.xlsx", dir) + + peoplesJck := queryBySQL(db, SQLJck) + peoplesZjk := queryBySQL(db, SQLZjk) + peoplesGzk := queryBySQL(db, SQLGzk) + + results := mergeResults(peoplesJck, peoplesZjk, peoplesGzk) + + // 创建一个新的 Excel 文件 + f := excelize.NewFile() + sheetName := "Sheet1" + + // 设置表头 + headers := []string{"身份证号", "姓名", "项名称", "基础库", "中间库", "工资库"} + for i, header := range headers { + cell := fmt.Sprintf("%c1", 'A'+i) + _ = f.SetCellValue(sheetName, cell, header) + } + + // 写入数据 + for i, diff := range results { + row := i + 2 // 数据从第二行开始 + _ = f.SetCellValue(sheetName, fmt.Sprintf("A%d", row), diff.IDNumber) + _ = f.SetCellValue(sheetName, fmt.Sprintf("B%d", row), diff.Name) + _ = f.SetCellValue(sheetName, fmt.Sprintf("C%d", row), diff.ColName) + _ = f.SetCellValue(sheetName, fmt.Sprintf("D%d", row), diff.Jck) + _ = f.SetCellValue(sheetName, fmt.Sprintf("E%d", row), diff.Zjk) + _ = f.SetCellValue(sheetName, fmt.Sprintf("F%d", row), diff.Gzk) + } + + // 保存文件 + if err := f.SaveAs(file); err != nil { + fmt.Println("保存文件失败:", err) + } else { + fmt.Printf("文件已保存为 %s", file) + } + + fmt.Println("执行结束!") +} + +func queryBySQL(db *sql.DB, SQLJck string) []Person { + rows, err := db.Query(SQLJck) + if err != nil { + _ = fmt.Errorf("发生报错:%s", err) + } + defer func(rows *sql.Rows) { + err := rows.Close() + if err != nil { + fmt.Printf("错误") + } + }(rows) + + var people []Person + for rows.Next() { + var p Person + err := rows.Scan( + &p.IDNumber, + &p.Name, + &p.BirthDate, + &p.Gender, + &p.Ethnicity, + &p.WorkStartDate, + &p.PoliticalStatus, + &p.FullTimeEducation, + &p.HighestEducation, + &p.HighestDegree, + &p.JobCategory, + &p.CurrentPositionLevel, + &p.CurrentPositionStartDate, + &p.CurrentRankLevel, + &p.CurrentRankStartDate, + &p.Has2YearsGrassrootsExp, + &p.AnnualAssessment2023, + &p.PersonCategory, + &p.SelectedFor2024, + ) + if err != nil { + _ = fmt.Errorf("发生报错:%s", err) + } + people = append(people, p) + } + + if err = rows.Err(); err != nil { + _ = fmt.Errorf("发生报错:%s", err) + } + return people +} + +func mergeResults(peoplesJck, peoplesZjk, peoplesGzk []Person) []Diff { + jckMap := mapPersonToDiff(peoplesJck, "基础库") + zjkMap := mapPersonToDiff(peoplesZjk, "中间库") + gzkMap := mapPersonToDiff(peoplesGzk, "工资库") + + var diffs []Diff + + // 遍历所有可能的键 + allKeys := make(map[string]bool) + for key := range jckMap { + allKeys[key] = true + } + for key := range zjkMap { + allKeys[key] = true + } + for key := range gzkMap { + allKeys[key] = true + } + + for key := range allKeys { + idNumber := strings.Split(key, "_")[0] + name := strings.Split(key, "_")[1] + + // 获取每个属性的值 + for colName := range jckMap[key] { + if colName == "身份证号" || colName == "姓名" { + continue + } + if jckMap[key][colName] != zjkMap[key][colName] || + jckMap[key][colName] != gzkMap[key][colName] || + zjkMap[key][colName] != gzkMap[key][colName] { + diff := Diff{ + IDNumber: idNumber, + Name: name, + ColName: colName, + Jck: jckMap[key][colName], + Zjk: zjkMap[key][colName], + Gzk: gzkMap[key][colName], + } + diffs = append(diffs, diff) + } + } + } + + return diffs +} + +func mapPersonToDiff(people []Person, source string) map[string]map[string]string { + result := make(map[string]map[string]string) + for _, person := range people { + key := person.IDNumber + "_" + person.Name + if result[key] == nil { + result[key] = make(map[string]string) + } + result[key]["身份证号"] = person.IDNumber + result[key]["姓名"] = person.Name + result[key]["出生时间"] = person.BirthDate + result[key]["性别"] = person.Gender + result[key]["民族"] = person.Ethnicity + result[key]["参加工作时间"] = person.WorkStartDate + result[key]["政治面貌"] = person.PoliticalStatus + result[key]["全日制学历"] = person.FullTimeEducation + result[key]["最高学历"] = person.HighestEducation + result[key]["最高学位"] = person.HighestDegree + result[key]["职位类别"] = person.JobCategory + result[key]["现职务层次"] = person.CurrentPositionLevel + result[key]["任现职务层次时间"] = person.CurrentPositionStartDate + result[key]["现职级层次"] = person.CurrentRankLevel + result[key]["任现职级层次时间"] = person.CurrentRankStartDate + result[key]["是否具有2年以上基层经验"] = person.Has2YearsGrassrootsExp + result[key]["2023年度考核结果"] = person.AnnualAssessment2023 + result[key]["人员类别"] = person.PersonCategory + result[key]["2024年考录选调生"] = person.SelectedFor2024 + } + return result +} + +type Person struct { + IDNumber string // 身份证号 + Name string // 姓名 + BirthDate string // 出生时间 + Gender string // 性别 + Ethnicity string // 民族 + WorkStartDate string // 参加工作时间 + PoliticalStatus string // 政治面貌 + FullTimeEducation string // 全日制学历 + HighestEducation string // 最高学历 + HighestDegree string // 最高学位 + JobCategory string // 职位类别 + CurrentPositionLevel string // 现职务层次 + CurrentPositionStartDate string // 任现职务层次时间 + CurrentRankLevel string // 现职级层次 + CurrentRankStartDate string // 任现职级层次时间 + Has2YearsGrassrootsExp string // 是否具有2年以上基层经验 + AnnualAssessment2023 string // 2023年度考核结果 + PersonCategory string // 人员类别 + SelectedFor2024 string // 2024年考录选调生 +} + +type Diff struct { + IDNumber string `json:"身份证号"` // 身份证号 + Name string `json:"姓名"` // 姓名 + ColName string `json:"项名称"` // 项名称 + Jck string `json:"基础库"` // 基础库 + Zjk string `json:"中间库"` // 中间库 + Gzk string `json:"工资库"` // 工资库 +} diff --git a/golang_learn/data_office/get_hy_jctj/main.syso b/golang_learn/data_office/get_hy_jctj/main.syso new file mode 100644 index 0000000000000000000000000000000000000000..b620536039f97fc03c489b053c3e0cc0b682bf7f GIT binary patch literal 271379 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 literal 0 HcmV?d00001 diff --git a/golang_learn/data_office/get_hy_jctj/网新辅助工具.md b/golang_learn/data_office/get_hy_jctj/网新辅助工具.md new file mode 100644 index 0000000..59833b0 --- /dev/null +++ b/golang_learn/data_office/get_hy_jctj/网新辅助工具.md @@ -0,0 +1,14 @@ +# 网新辅助工具 + + + +#### 实现数据备份和照片迁移 + + + +> 需要创建表 kk 存在四个字段 a,b,c,d 主要针对 d 字段。存储身份证号码? + + + +> 会生成数据压缩包,里面包裹着 sql 脚本,且照片信息可以直接进行粘贴覆盖 +