This commit is contained in:
Paidax
2024-12-11 15:10:08 +08:00
parent fe30f6e24b
commit 6ebbf5d576
7 changed files with 289 additions and 91 deletions
+13
View File
@@ -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();
}
}
/**
@@ -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;
/**
* 前端菜单
*/
@@ -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
* @nameHMCFieldCode
* @Date 2024/12/11 14:19
* @注释
*/
@Data
public class HMCFieldCode {
/**
* 性别码
*/
static Map<String, String> SEX_CODE = new HashMap<>() {{
put("0", "未知的性别");
put("1", "");
put("2", "");
put("9", "未说明的性别");
}};
/**
* 政治面貌码
*/
static Map<String, String> 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<String, String> EDUCATION_CODE = new HashMap<>() {{
put("1", "本科");
put("2", "博士研究生");
put("3", "初中");
put("4", "大专");
put("5", "高中");
put("6", "硕士研究生");
put("7", "小学");
put("8", "中专");
put("9", "");
}};
/**
* 学位码
*/
static Map<String, String> 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<String, String> 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<String, String> CAMPUS_CODE = new HashMap<>() {{
put("01", "临安校区");
put("02", "黄龙校区");
put("03", "滨江校区");
put("04", "青山湖科创中心");
put("05", "不固定校区");
}};
/**
* 党政职务级别码
*/
static Map<String, String> 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<String, String> PROFESSIONAL_TECHNICAL_LEVEL_CODE = new HashMap<>() {{
put("411", "正高级");
put("412", "副高级");
put("420", "中级");
put("430", "初级");
put("499", "其他");
put("440", "员级");
}};
/**
* 教职工类别码
*/
static Map<String, String> USER_CATEGORY = new HashMap<>() {{
put("1", "管理岗位");
put("2", "教学科研");
put("3", "其他专技");
put("4", "辅导员");
put("5", "工勤人员");
}};
/**
* 岗位类别码
*/
static Map<String, String> JOB_CATEGORY = new HashMap<>() {{
put("1", "工勤人员");
put("2", "管理岗位");
put("3", "管理岗位(其他专技双肩挑)");
put("4", "管理岗位(教学科研双肩挑)");
put("5", "教学科研");
put("9", "教学科研(学生思政)");
put("10", "其他专技(教学实验)");
put("11", "其他专技(科研实验)");
put("20", "");
put("7", "其他专技(其他)");
}};
}
@@ -52,61 +52,6 @@ public interface SourceData {
put("100", "在职状态");
put("200", "不在职状态");
}};*/
/**
* 性别码
*/
Map<String, String> SEX_CODE = new HashMap<>() {{
put("0", "未知的性别");
put("1", "");
put("2", "");
put("9", "未说明的性别");
}};
/**
* 学历码
*/
Map<String, String> EDUCATION_CODE = new HashMap<>() {{
put("1", "本科");
put("2", "博士研究生");
put("3", "初中");
put("4", "大专");
put("5", "高中");
put("6", "硕士研究生");
put("7", "小学");
put("8", "中专");
put("9", "");
}};
/**
* 人员状态码
*/
Map<String, String> 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<String, String> 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<String, String[]> 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<String, Exp4> USER_FIELD_PLUGIN = new HashMap<String, Exp4>() {{
// 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<NutMap> 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;