diff --git a/src/main/java/io/v/nutz/MainLauncher.java b/src/main/java/io/v/nutz/MainLauncher.java index 0ff262d..8b6f45f 100644 --- a/src/main/java/io/v/nutz/MainLauncher.java +++ b/src/main/java/io/v/nutz/MainLauncher.java @@ -8,6 +8,7 @@ import io.v.nutz.web.commons.base.Globals; import io.v.nutz.web.commons.ext.pubsub.WebPubSub; import io.v.nutz.web.commons.filter.CsrfFilter; import io.v.nutz.web.commons.filter.SsrfFilter; +import org.apache.commons.net.ftp.FTPClient; import org.beetl.core.GroupTemplate; import org.nutz.boot.NbApp; import org.nutz.dao.Chain; @@ -41,6 +42,8 @@ import java.util.Enumeration; import java.util.List; import java.util.stream.Collectors; +import static org.nutz.boot.starter.ftp.FtpStarter.*; + /** * @author wizzer@qq.com */ @@ -92,6 +95,16 @@ public class MainLauncher { init_task(); init_proposal_undertake(); ioc.get(Globals.class); + + try { + FTPClient ftpClient = new FTPClient(); + ftpClient.connect(conf.get(PROP_SERVER_HOST, ""), conf.getInt(PROP_SERVER_PORT, 21)); + ftpClient.login(conf.get(PROP_SERVER_USERNAME, ""), conf.get(PROP_SERVER_PASSWORD, "")); + ftpClient.enterLocalPassiveMode(); + System.out.println("***************************=" + ftpClient.getReplyCode()); + } catch (Exception e) { + e.printStackTrace(); + } } /** diff --git a/src/main/java/io/v/nutz/sys/models/Sys_user.java b/src/main/java/io/v/nutz/sys/models/Sys_user.java index 834a84b..097a507 100644 --- a/src/main/java/io/v/nutz/sys/models/Sys_user.java +++ b/src/main/java/io/v/nutz/sys/models/Sys_user.java @@ -327,11 +327,6 @@ public class Sys_user extends BaseModel implements Serializable { @ColDefine(type = ColType.VARCHAR, width = 10) private String marriage; - @Column - @Comment("人事编制") - @ColDefine(type = ColType.VARCHAR, width = 20) - private String preparedBy; - @Column @Comment("学历") @ColDefine(type = ColType.VARCHAR, width = 20) @@ -358,7 +353,7 @@ public class Sys_user extends BaseModel implements Serializable { private String political; @Column - @Comment("职务") + @Comment("党政职务") @ColDefine(type = ColType.VARCHAR, width = 100) private String position; @@ -647,6 +642,30 @@ public class Sys_user extends BaseModel implements Serializable { @ColDefine(type = ColType.VARCHAR, width = 20) private String campus; + @Column + @Comment("人事编制") + @ColDefine(type = ColType.VARCHAR, width = 20) + private String preparedBy; + + @Column + @Comment("教职工类别") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String userCategory; + + @Column + @Comment("岗位类别") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String jobCategory; + + @Column + @Comment("党政职务级别") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String administrativeLevel; + + @Column + @Comment("专业技术级别") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String professionalTechnicalLevel; /** * 前端菜单 */ diff --git a/src/main/java/io/v/nutz/zhgh/data/constant/HMCFieldCode.java b/src/main/java/io/v/nutz/zhgh/data/constant/HMCFieldCode.java new file mode 100644 index 0000000..d63b86a --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/data/constant/HMCFieldCode.java @@ -0,0 +1,210 @@ +package io.v.nutz.zhgh.data.constant; + +import io.v.nutz.base.expression.Exp4; +import lombok.Data; +import org.nutz.lang.Strings; + +import java.util.HashMap; +import java.util.Map; + +/** + * @version 1.0 + * @Author zzr + * @name:HMCFieldCode + * @Date 2024/12/11 14:19 + * @注释 + */ +@Data +public class HMCFieldCode { + + /** + * 性别码 + */ + static Map SEX_CODE = new HashMap<>() {{ + put("0", "未知的性别"); + put("1", "男"); + put("2", "女"); + put("9", "未说明的性别"); + }}; + /** + * 政治面貌码 + */ + static Map POLITICAL_CODE = new HashMap<>() {{ + put("01", "中共党员"); + put("02", "中共预备党员"); + put("03", "共青团员"); + put("04", "民革会员"); + put("05", "民盟盟员"); + put("06", "民建会员"); + put("07", "民进会员"); + put("08", "农工党党员"); + put("09", "致公党党员"); + put("10", "九三学社社员"); + put("11", "台盟盟员"); + put("12", "无党派民主人士"); + put("13", "群众"); + }}; + /** + * 学历码 + */ + static Map EDUCATION_CODE = new HashMap<>() {{ + put("1", "本科"); + put("2", "博士研究生"); + put("3", "初中"); + put("4", "大专"); + put("5", "高中"); + put("6", "硕士研究生"); + put("7", "小学"); + put("8", "中专"); + put("9", "无"); + }}; + /** + * 学位码 + */ + static Map ACADEMIC_DEGREE_CODE = new HashMap<>() {{ + put("260", "医学博士专业学位"); + put("270", "理学博士专业学位"); + put("390", "医学硕士专业学位"); + put("391", "理学硕士专业学位"); + put("2", "博士"); + put("201", "哲学博士学位"); + put("202", "经济学博士学位"); + put("203", "法学博士学位"); + put("204", "教育学博士学位"); + put("205", "文学博士学位"); + put("206", "历史学博士学位"); + put("207", "理学博士学位"); + put("208", "工学博士学位"); + put("209", "农学博士学位"); + put("210", "医学博士学位"); + put("211", "军事学博士学位"); + put("212", "管理学博士学位"); + put("245", "临床医学博士专业学位"); + put("380", "农业硕士专业学位"); + put("248", "兽医博士专业学位"); + put("250", "口腔医学博士专业学位"); + put("3", "硕士"); + put("301", "哲学硕士学位"); + put("302", "经济学硕士学位"); + put("303", "法学硕士学位"); + put("304", "教育学硕士学位"); + put("305", "文学硕士学位"); + put("306", "历史学硕士学位"); + put("307", "理学硕士学位"); + put("308", "工学硕士学位"); + put("309", "农学硕士学位"); + put("310", "医学硕士学位"); + put("311", "军事学硕士学位"); + put("312", "管理学硕士学位"); + put("341", "法律硕士专业学位"); + put("342", "教育硕士专业学位"); + put("343", "工程硕士专业学位"); + put("344", "建筑学硕士专业学位"); + put("345", "临床学硕士专业学位"); + put("346", "工商管理硕士专业学位"); + put("347", "农业推广硕士专业学位"); + put("348", "兽医硕士专业学位"); + put("349", "公共管理硕士专业学位"); + put("350", "口腔医学硕士专业学位"); + put("351", "公共卫生硕士专业学位"); + put("352", "军事硕士专业学位"); + put("4", "学士"); + put("401", "哲学学士学位"); + put("402", "经济学学士学位"); + put("403", "法学学士学位"); + put("404", "教育学学士学位"); + put("405", "文学学士学位"); + put("406", "历史学学士学位"); + put("407", "理学学士学位"); + put("408", "工学学士学位"); + put("409", "农学学士学位"); + put("410", "医学学士学位"); + put("411", "军事学学士学位"); + put("412", "管理学学士学位"); + put("444", "建筑学学士专业学位"); + put("9", "其他"); + }}; + /** + * 人员状态码 + */ + static Map USER_STATE_CODE = new HashMap<>() {{ + put("01", "退休"); + put("02", "离休"); + put("03", "死亡"); + put("04", "返聘"); + put("05", "调出"); + put("06", "辞职"); + put("07", "离职"); + put("08", "开除"); + put("09", "下落不明"); + put("11", "在职"); + put("12", "延聘"); + put("13", "待退休"); + put("14", "长病假"); + put("15", "因公出国"); + put("16", "停薪留职"); + put("17", "待岗"); + put("99", "其他"); + }}; + /** + * 校区码 + */ + static Map CAMPUS_CODE = new HashMap<>() {{ + put("01", "临安校区"); + put("02", "黄龙校区"); + put("03", "滨江校区"); + put("04", "青山湖科创中心"); + put("05", "不固定校区"); + }}; + /** + * 党政职务级别码 + */ + static Map ADMINISTRATIVE_LEVEL_CODE = new HashMap<>() {{ + put("111", "正部级"); + put("112", "副部级"); + put("121", "正厅级"); + put("122", "副厅级"); + put("131", "正处"); + put("132", "副处"); + put("141", "正科级"); + put("142", "副科级"); + put("150", "科员"); + put("160", "办事员"); + }}; + /** + * 专业技术级别码 + */ + static Map PROFESSIONAL_TECHNICAL_LEVEL_CODE = new HashMap<>() {{ + put("411", "正高级"); + put("412", "副高级"); + put("420", "中级"); + put("430", "初级"); + put("499", "其他"); + put("440", "员级"); + }}; + /** + * 教职工类别码 + */ + static Map USER_CATEGORY = new HashMap<>() {{ + put("1", "管理岗位"); + put("2", "教学科研"); + put("3", "其他专技"); + put("4", "辅导员"); + put("5", "工勤人员"); + }}; + /** + * 岗位类别码 + */ + static Map JOB_CATEGORY = new HashMap<>() {{ + put("1", "工勤人员"); + put("2", "管理岗位"); + put("3", "管理岗位(其他专技双肩挑)"); + put("4", "管理岗位(教学科研双肩挑)"); + put("5", "教学科研"); + put("9", "教学科研(学生思政)"); + put("10", "其他专技(教学实验)"); + put("11", "其他专技(科研实验)"); + put("20", "无"); + put("7", "其他专技(其他)"); + }}; +} diff --git a/src/main/java/io/v/nutz/zhgh/data/constant/SourceData.java b/src/main/java/io/v/nutz/zhgh/data/constant/SourceData.java index fef3ac0..0452c00 100644 --- a/src/main/java/io/v/nutz/zhgh/data/constant/SourceData.java +++ b/src/main/java/io/v/nutz/zhgh/data/constant/SourceData.java @@ -52,61 +52,6 @@ public interface SourceData { put("100", "在职状态"); put("200", "不在职状态"); }};*/ - /** - * 性别码 - */ - Map SEX_CODE = new HashMap<>() {{ - put("0", "未知的性别"); - put("1", "男"); - put("2", "女"); - put("9", "未说明的性别"); - }}; - /** - * 学历码 - */ - Map EDUCATION_CODE = new HashMap<>() {{ - put("1", "本科"); - put("2", "博士研究生"); - put("3", "初中"); - put("4", "大专"); - put("5", "高中"); - put("6", "硕士研究生"); - put("7", "小学"); - put("8", "中专"); - put("9", "无"); - }}; - /** - * 人员状态码 - */ - Map USER_STATE_CODE = new HashMap<>() {{ - put("01", "退休"); - put("02", "离休"); - put("03", "死亡"); - put("04", "返聘"); - put("05", "调出"); - put("06", "辞职"); - put("07", "离职"); - put("08", "开除"); - put("09", "下落不明"); - put("11", "在职"); - put("12", "延聘"); - put("13", "待退休"); - put("14", "长病假"); - put("15", "因公出国"); - put("16", "停薪留职"); - put("17", "待岗"); - put("99", "其他"); - }}; - /** - * 校区码 - */ - Map CAMPUS_CODE = new HashMap<>() {{ - put("01", "临安校区"); - put("02", "黄龙校区"); - put("03", "滨江校区"); - put("04", "青山湖科创中心"); - put("05", "不固定校区"); - }}; /** * 接口中的数据跟SourceUser的对应关系 @@ -117,20 +62,24 @@ public interface SourceData { * 例:{'name':['username'],'code':['loginname']} */ Map USER_FIELD_RELATION = new HashMap() {{ - put("GH", new String[]{"loginname"}); - put("XM", new String[]{"username"}); - put("XBM", new String[]{"sex"}); - put("MZMC", new String[]{"nation"}); - put("SJ", new String[]{"mobile"}); - put("ZZMMM", new String[]{"political"}); -// put("ZZZTMC", new String[]{"userState"}); - put("DQZTM", new String[]{"userState"}); - put("RYFLMC", new String[]{"personType"}); - put("ZGXWM", new String[]{"education"}); - put("DWH", new String[]{"unitid"}); - put("CSRQ", new String[]{"birthday"}); - put("DZZWMC", new String[]{"position"}); - put("XQMC", new String[]{"campus"}); + put("GH", new String[]{"loginname"}); // 工号 + put("XM", new String[]{"username"}); // 姓名 + put("XBM", new String[]{"sex"});// 性别码 + put("MZMC", new String[]{"nation"});// 民族码 + put("SJ", new String[]{"mobile"}); // 手机号 + put("ZZMMM", new String[]{"political"}); // 政治面貌码 + put("DQZTM", new String[]{"userState"}); // 在职状态码 + put("RYFLMC", new String[]{"personType"}); // 人员类型码 + put("ZGXLM", new String[]{"education"}); // 最高学历码 + put("ZGXWM", new String[]{"academicDegree"}); // 最高学位码 + put("DWH", new String[]{"unitid"}); // 单位id + put("CSRQ", new String[]{"birthday"}); // 出生日期 + put("DZZWMC", new String[]{"position"}); // 党政职务 + put("XQMC", new String[]{"campus"}); // 校区 + put("DZZWJBM", new String[]{"administrativeLevel"}); // 行政职务级别 + put("ZYJSZWDJ", new String[]{"professionalTechnicalLevel"}); // 专业技术等级 + put("JZGLBM", new String[]{"userCategory"}); // 教职工类别 + put("GWLBM", new String[]{"jobCategory"}); // 岗位类别 }}; /** @@ -138,10 +87,16 @@ public interface SourceData { */ Map USER_FIELD_PLUGIN = new HashMap() {{ // put("ZZZTMC", v -> Strings.sBlank(USER_STATE_CODE.get(v), "")); - put("XBM", v -> Strings.sBlank(SEX_CODE.get(v), "")); - put("DQZTM", v -> Strings.sBlank(USER_STATE_CODE.get(v), "")); - put("ZGXWM", v -> Strings.sBlank(EDUCATION_CODE.get(v), "")); - put("XQMC", v -> Strings.sBlank(CAMPUS_CODE.get(v), "")); + put("XBM", v -> Strings.sBlank(HMCFieldCode.SEX_CODE.get(v), "")); + put("ZZMMM", v -> Strings.sBlank(HMCFieldCode.POLITICAL_CODE.get(v), "")); + put("DQZTM", v -> Strings.sBlank(HMCFieldCode.USER_STATE_CODE.get(v), "")); + put("ZGXLM", v -> Strings.sBlank(HMCFieldCode.EDUCATION_CODE.get(v), "")); + put("ZGXWM", v -> Strings.sBlank(HMCFieldCode.ACADEMIC_DEGREE_CODE.get(v), "")); + put("XQMC", v -> Strings.sBlank(HMCFieldCode.CAMPUS_CODE.get(v), "")); + put("DZZWJBM", v -> Strings.sBlank(HMCFieldCode.ADMINISTRATIVE_LEVEL_CODE.get(v), "")); + put("ZYJSZWDJ", v -> Strings.sBlank(HMCFieldCode.PROFESSIONAL_TECHNICAL_LEVEL_CODE.get(v), "")); + put("JZGLBM", v -> Strings.sBlank(HMCFieldCode.USER_CATEGORY.get(v), "")); + put("GWLBM", v -> Strings.sBlank(HMCFieldCode.JOB_CATEGORY.get(v), "")); }}; /** @@ -156,12 +111,12 @@ public interface SourceData { int maxPage; while (hasRecords) { String body = HttpUtil.createPost(DATA_URL).body(JSON.toJSONString(new NutMap().addv("address", "jzgjbxx").addv("params", new NutMap()) - .addv("token", "3318a5a9-c2f2-4c8b-a8ea-e99dd68c165c").addv("pageIndex", page).addv("pageSize", 1000))).execute().body(); + .addv("token", "3318a5a9-c2f2-4c8b-a8ea-e99dd68c165c").addv("pageIndex", page).addv("pageSize", 500))).execute().body(); NutMap map = Json.fromJson(NutMap.class, body); // checkSuccess(map); List data = map.getAsList("data", NutMap.class); for (NutMap row : data) { - Map entity = new HashMap(1000); + Map entity = new HashMap(500); row.forEach((k, v) -> { if (USER_FIELD_RELATION.containsKey(k)) { @@ -177,7 +132,7 @@ public interface SourceData { users.add(BeanUtil.mapToBean(entity, UserSource.class, true)); } int totalCount = map.getInt("totalCount"); - maxPage = (int) Math.ceil((double) totalCount / 1000); + maxPage = (int) Math.ceil((double) totalCount / 500); page++; if (page > maxPage) { hasRecords = false; diff --git a/src/main/resources/static/assets/platform/css/main.css b/src/main/resources/static/assets/platform/css/main.css index a66b7ab..0e75a84 100644 --- a/src/main/resources/static/assets/platform/css/main.css +++ b/src/main/resources/static/assets/platform/css/main.css @@ -276,7 +276,7 @@ ol.list-style-none, ul.list-style-none { width: 250px; max-height: 50px; height: 50px; - background: #001529; + background: #04436c; } .header .brand .navbar-brand { @@ -468,7 +468,7 @@ ol.list-style-none, ul.list-style-none { width: 250px; height: calc(100vh - 50px); overflow-y: auto; - background: #001529; + background: #04436c; } .sidebar::-webkit-scrollbar { diff --git a/src/main/resources/views/layouts/platform.html b/src/main/resources/views/layouts/platform.html index 4f29b60..f5fb708 100644 --- a/src/main/resources/views/layouts/platform.html +++ b/src/main/resources/views/layouts/platform.html @@ -158,6 +158,7 @@
@@ -165,7 +166,7 @@