main
黄海 10 months ago
parent 4fab1109d7
commit 8534867318

@ -0,0 +1,203 @@
package com.dsideal.base.Model;
import lombok.Setter;
import lombok.Getter;
//
public class TSysLoginperson {
// 人员ID
@Getter
@Setter
private String person_id;
// 人员姓名
@Getter
@Setter
private String person_name;
// 身份ID
@Getter
@Setter
private int identity_id;
// 登录名
@Getter
@Setter
private String login_name;
// 密码
@Getter
@Setter
private String pwd;
// 原始密码
@Getter
@Setter
private String original_pwd;
// md5后的密码用于CAS验证
@Getter
@Setter
private String pwdmd5;
// 性别
@Getter
@Setter
private int xb;
// 民族
@Getter
@Setter
private String mz;
// 政治面貌
@Getter
@Setter
private String zzmm;
// 身份证号
@Getter
@Setter
private String idcard_code;
// 出生日期
@Getter
@Setter
private java.util.Date birthday;
// 创建时间
@Getter
@Setter
private java.util.Date create_time;
// 在单位内部的排序号
@Getter
@Setter
private int sort_id;
// 手机号
@Getter
@Setter
private String telephone;
// 绑定微信的openid
@Getter
@Setter
private String wx_openid;
// 绑定QQ的openid
@Getter
@Setter
private String qq_openid;
// 电子邮箱
@Getter
@Setter
private String email;
// 人员状态
@Getter
@Setter
private String status_code;
// 是不是可用
@Getter
@Setter
private int b_use;
// 身份主键序列
@Getter
@Setter
private int identity_pk_num;
// 市ID
@Getter
@Setter
private String city_id;
// 县区ID
@Getter
@Setter
private String area_id;
// 主校ID
@Getter
@Setter
private String main_school_id;
// 单位ID
@Getter
@Setter
private String bureau_id;
// 所在部门
@Getter
@Setter
private String org_id;
// 学生所在班级
@Getter
@Setter
private String s_class_id;
// 学籍号 规定为16位
@Getter
@Setter
private String s_xjh;
// 学籍辅号 规定为13位
@Getter
@Setter
private String s_xjfh;
// 学生来源 1正常入学 2借读 9其他
@Getter
@Setter
private int s_source;
// 学生是哪个学段的
@Getter
@Setter
private int s_stage_id;
// 进城务工随迁子女
@Getter
@Setter
private int s_suiqian;
// 是否留守儿童
@Getter
@Setter
private int s_liushou;
// 是否孤儿
@Getter
@Setter
private int s_guer;
// 是否残疾
@Getter
@Setter
private int s_canji;
// 如果是家长,那么他是哪个孩子的家长
@Getter
@Setter
private String p_child_id;
// 职务与分管,json形式
@Getter
@Setter
private String t_duty_charge;
// 最高学历 字典表t_dm_xl
@Getter
@Setter
private String t_xl_id;
// 职称
@Getter
@Setter
private String t_zc_id;
// 学段
@Getter
@Setter
private int t_stage_id;
// 主教学科
@Getter
@Setter
private int t_subject_id;
// 从教年月日
@Getter
@Setter
private java.util.Date t_teaching_date;
// 是否骨干教师
@Getter
@Setter
private int t_gugan;
//
@Getter
@Setter
private java.util.Date update_ts;
// 整数主键
@Getter
@Setter
private int id_int;
// 操作人员
@Getter
@Setter
private String operator;
// 操作者IP
@Getter
@Setter
private long ip_address;
// 微信小程序的openid
@Getter
@Setter
private String mini_openid;
public String toString(){
return "{ person_id: " + person_id +", person_name: " + person_name +", identity_id: " + identity_id +", login_name: " + login_name +", pwd: " + pwd +", original_pwd: " + original_pwd +", pwdmd5: " + pwdmd5 +", xb: " + xb +", mz: " + mz +", zzmm: " + zzmm +", idcard_code: " + idcard_code +", birthday: " + birthday +", create_time: " + create_time +", sort_id: " + sort_id +", telephone: " + telephone +", wx_openid: " + wx_openid +", qq_openid: " + qq_openid +", email: " + email +", status_code: " + status_code +", b_use: " + b_use +", identity_pk_num: " + identity_pk_num +", city_id: " + city_id +", area_id: " + area_id +", main_school_id: " + main_school_id +", bureau_id: " + bureau_id +", org_id: " + org_id +", s_class_id: " + s_class_id +", s_xjh: " + s_xjh +", s_xjfh: " + s_xjfh +", s_source: " + s_source +", s_stage_id: " + s_stage_id +", s_suiqian: " + s_suiqian +", s_liushou: " + s_liushou +", s_guer: " + s_guer +", s_canji: " + s_canji +", p_child_id: " + p_child_id +", t_duty_charge: " + t_duty_charge +", t_xl_id: " + t_xl_id +", t_zc_id: " + t_zc_id +", t_stage_id: " + t_stage_id +", t_subject_id: " + t_subject_id +", t_teaching_date: " + t_teaching_date +", t_gugan: " + t_gugan +", update_ts: " + update_ts +", id_int: " + id_int +", operator: " + operator +", ip_address: " + ip_address +", mini_openid: " + mini_openid +"}";
}
}

@ -433,7 +433,7 @@ public class TeacherController extends Controller {
//客户端ip_address
String ip_address = IpUtil.getIpAddr(getRequest());
if (tm.updateTeacher(person_id, person_name, xb, mz, id_card, birthday, xl_id, stage_id, subject_id, zc_id, t_teaching_date, sort_id, t_duty_charge, org_id, zzmm, operator, ip_address,telephone)) {
if (tm.updateTeacher(person_id, person_name, xb, mz, id_card, birthday, xl_id, stage_id, subject_id, zc_id, t_teaching_date, sort_id, t_duty_charge, org_id, zzmm, operator, ip_address, telephone)) {
resultJson.put("success", true);
renderJson(resultJson);
} else {
@ -532,7 +532,6 @@ public class TeacherController extends Controller {
String filename = "教工导入.xls";
String TemplatePath = PathKit.getRootClassPath() + "/WEB-INF/classes/com/dsideal/dsBase/ExcelImportTemplate/Teacher.xls";
renderFile(new File(TemplatePath), filename);
return;
}
@ -550,7 +549,6 @@ public class TeacherController extends Controller {
String TemplatePath = basePath + "excelTemp/";
String templateXls = TemplatePath + uuidString + ".xls";
renderFile(new File(templateXls), "教工导入.xls");
return;
}
/**
@ -676,6 +674,21 @@ public class TeacherController extends Controller {
map.put("message", "导入成功!");
map.put("count", jo.getInteger("count"));
renderJson(map);
return;
}
/**
* wx_openid
*
* @param person_id
*/
@Before({POST.class})
@IsLoginInterface({})
@IsSysAdminInterface({"1", "4"})
public void clearWxOpenId(String person_id) {
tm.clearWxOpenId(person_id);
Map map = new HashMap();
map.put("success", true);
map.put("message", "保存成功!");
renderJson(map);
}
}

@ -23,7 +23,7 @@ public class TeacherModel {
*
* @return
*/
public boolean addTeacherInfo(String personId, String pwd, String person_name, String org_id, String xb, String mz, String id_card, String birthday, String original_pwd, String city_id, String area_id, String main_school_id, String bureau_id, String xl_id, int stage_id, int subject_id, String zc_id, String t_teaching_date, int sort_id, String t_duty_charge, String zzmm, String operator, String ip_address,String telephone) {
public boolean addTeacherInfo(String personId, String pwd, String person_name, String org_id, String xb, String mz, String id_card, String birthday, String original_pwd, String city_id, String area_id, String main_school_id, String bureau_id, String xl_id, int stage_id, int subject_id, String zc_id, String t_teaching_date, int sort_id, String t_duty_charge, String zzmm, String operator, String ip_address, String telephone) {
boolean flag = false;
try {
long pk = PkUtil.GetPersonNumPk(5, 1);
@ -61,7 +61,7 @@ public class TeacherModel {
record.set("t_teaching_date", t_teaching_date);
record.set("operator", operator);
record.set("ip_address", IpUtil.ipToLong(ip_address));
record.set("telephone",telephone);
record.set("telephone", telephone);
Db.save("t_sys_loginperson", record);
//继续保存人员职务与分管工作
JSONArray jsonArray = JSONArray.parseArray(t_duty_charge);
@ -88,11 +88,11 @@ public class TeacherModel {
return flag;
}
public boolean addTeacherInfo(String pwd, String person_name, String org_id, String xb, String mz, String id_card, String birthday, String original_pwd, String city_id, String area_id, String main_school_id, String bureau_id, String xl_id, int stage_id, int subject_id, String zc_id, String t_teaching_date, int sort_id, String t_duty_charge, String zzmm, String operator, String ip_address,String telephone) {
public boolean addTeacherInfo(String pwd, String person_name, String org_id, String xb, String mz, String id_card, String birthday, String original_pwd, String city_id, String area_id, String main_school_id, String bureau_id, String xl_id, int stage_id, int subject_id, String zc_id, String t_teaching_date, int sort_id, String t_duty_charge, String zzmm, String operator, String ip_address, String telephone) {
String personId = UUID.randomUUID().toString().toUpperCase();
return addTeacherInfo(personId, pwd, person_name, org_id, xb, mz, id_card, birthday, original_pwd, city_id,
area_id, main_school_id, bureau_id, xl_id, stage_id, subject_id, zc_id, t_teaching_date,
sort_id, t_duty_charge, zzmm, operator, ip_address,telephone);
sort_id, t_duty_charge, zzmm, operator, ip_address, telephone);
}
/**
@ -108,7 +108,7 @@ public class TeacherModel {
* @param birthday
* @return
*/
public boolean updateTeacher(String person_id, String person_name, String xb, String mz, String id_card, String birthday, String xl_id, int stage_id, int subject_id, String zc_id, String t_teaching_date, int sort_id, String t_duty_charge, String org_id, String zzmm, String operator, String ip_address,String telephone) {
public boolean updateTeacher(String person_id, String person_name, String xb, String mz, String id_card, String birthday, String xl_id, int stage_id, int subject_id, String zc_id, String t_teaching_date, int sort_id, String t_duty_charge, String org_id, String zzmm, String operator, String ip_address, String telephone) {
boolean flag = false;
try {
@ -147,7 +147,7 @@ public class TeacherModel {
record.set("zzmm", zzmm);
record.set("operator", operator);
record.set("ip_address", IpUtil.ipToLong(ip_address));
record.set("telephone",telephone);
record.set("telephone", telephone);
record.remove("update_ts");
Db.update("t_sys_loginperson", "person_id", record);
//继续保存人员职务与分管工作
@ -315,6 +315,7 @@ public class TeacherModel {
/**
*
*
* @param telephone
* @return
*/
@ -322,4 +323,14 @@ public class TeacherModel {
String sql = "select * from t_sys_loginperson where telephone=?";
return Db.findFirst(sql, telephone);
}
/**
* openid
*
* @param person_id
*/
public void clearWxOpenId(String person_id) {
String sql = "update t_sys_loginperson set wx_openid=null where person_id=?";
Db.update(sql, person_id);
}
}

@ -0,0 +1,237 @@
package com.dsideal.base.Tools;
import cn.hutool.core.io.FileUtil;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.hikaricp.HikariCpPlugin;
import lombok.Getter;
import lombok.Setter;
import javax.sql.DataSource;
import java.io.File;
import java.sql.*;
import java.util.*;
public class getJavaBean {
// 白名单
public static Set<String> whiteSet = new HashSet<>();
// JavaBean保存的位置
public static String beanPath = "Model";
// JavaBean包名
public static String beanPackage = "com.dsideal.base." + beanPath;
// mysql与java的数据类型映射
public static Map<String, String> dataTypeMap = new HashMap<>();
//初始化
static {
whiteSet.add("t_sys_loginperson");//目前只处理一张表
// 获取当前类的Class对象
Class<?> clazz = getJavaBean.class;
// 获取当前类所在文件的绝对路径
String path = clazz.getResource("").getPath();
// 转换为File对象
File classFile = new File(path);
// 获取当前类所在的目录路径
String classDir = classFile.getParentFile().getAbsolutePath();
classDir = classDir.replace("\\target\\classes\\", "\\src\\main\\java\\");
beanPath = classDir + File.separator + beanPath;
if (!FileUtil.exist(beanPath)) {
FileUtil.mkdir(beanPath);
}
//mysql与java的数据类型映射
dataTypeMap.put("INT", "int");
dataTypeMap.put("BIGINT", "long");
dataTypeMap.put("DOUBLE", "double");
dataTypeMap.put("FLOAT", "float");
dataTypeMap.put("TINYINT", "int");
dataTypeMap.put("DATE", "java.util.Date");
dataTypeMap.put("TIMESTAMP", "java.util.Date");
dataTypeMap.put("BIGINT UNSIGNED", "long");
dataTypeMap.put("INT UNSIGNED", "long");
dataTypeMap.put("MEDIUMINT", "int");
dataTypeMap.put("MEDIUMINT UNSIGNED", "long");
dataTypeMap.put("SMALLINT", "int");
dataTypeMap.put("SMALLINT UNSIGNED", "long");
dataTypeMap.put("TINYINT UNSIGNED", "long");
dataTypeMap.put("LONGTEXT", "String");
dataTypeMap.put("VARCHAR", "String");
dataTypeMap.put("CHAR", "String");
dataTypeMap.put("TEXT", "String");
dataTypeMap.put("DATETIME", "java.util.Date");
dataTypeMap.put("DECIMAL", "BigDecimal");
dataTypeMap.put("BOOLEAN", "boolean");
}
/**
*
*
* @return List<String>
* @throws Exception
*/
public static List<String> getTableNames(Connection conn) throws Exception {
List<String> tables = new ArrayList<>();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("show tables");
while (rs.next()) {
String tableName = rs.getString(1);
if (whiteSet.isEmpty() || whiteSet.contains(tableName)) {
tables.add(tableName);
}
}
rs.close();
stmt.close();
return tables;
}
/**
* +
*
* @param table
* @return
* @throws Exception
*/
public static void getStructure(Connection conn, String table) throws Exception {
StringBuilder sb = new StringBuilder();
//表注释
String comment = "";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("show create table " + table);
if (rs != null && rs.next()) {
String createDDL = rs.getString(2);
int index = createDDL.indexOf("COMMENT='");
if (index >= 0) {
comment = createDDL.substring(index + 9);
comment = comment.substring(0, comment.length() - 1);
}
}
//类名
table = capitalizeFirstLetter(table);
String className = toCamelCase(table);
//包名
sb.append("package " + beanPackage + ";\n");
sb.append("\n");
sb.append("import lombok.Setter;\n");
sb.append("import lombok.Getter;\n");
//表描述
sb.append("// " + comment + "\n");
sb.append("public class " + className + " {\n");
List<String> fields = new ArrayList<>();
//字段信息
rs = stmt.executeQuery("show full columns from " + table);
while (rs.next()) {
String Type = rs.getString("Type");
String Field = rs.getString("Field");
fields.add(Field);
if (Type.contains("(")) {
Type = Type.substring(0, Type.indexOf("("));
}
Type = Type.toUpperCase();
// System.out.println(rs.getString("Key"));//是不是主键 PRI是主键
sb.append(" // " + rs.getString("Comment") + "\n");
sb.append(" @Getter\n");
sb.append(" @Setter\n");
sb.append(" private " + dataTypeMap.get(Type) + " " + Field + ";\n");
}
sb.append("\n");
sb.append(" public String toString(){\n");
sb.append(" return \"{");
for (int i = 0; i < fields.size(); i++) {
String field = fields.get(i);
sb.append(" "+field + ": \" + " + field+" +\"");
if (i < fields.size() - 1) {
sb.append(",");
}
}
sb.append("}\";\n");
sb.append(" }\n");
sb.append("}\n");
String fileName = beanPath + File.separator + className + ".java";
System.out.println(fileName);
FileUtil.writeUtf8String(sb.toString(), fileName);
//关闭连接
rs.close();
stmt.close();
}
public static void main(String[] args) throws Exception {
// 配置Druid数据源插件
HikariCpPlugin hpPlugin = new HikariCpPlugin(
"jdbc:mysql://10.10.14.210:22066/ds_db?useUnicode=true&characterEncoding=UTF-8&useSSL=false",
"root",
"DsideaL147258369",
"com.mysql.cj.jdbc.Driver");
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(hpPlugin);
hpPlugin.start();
arp.start();
DataSource dataSource = hpPlugin.getDataSource();
// 数据库连接
Connection conn = dataSource.getConnection();
//开始生成
List<String> tables = getTableNames(conn);
//表描述
for (String table : tables) {
getStructure(conn, table);
}
//关闭数据库
conn.close();
arp.stop();
hpPlugin.stop();
System.out.println("恭喜,生成完成");
}
/**
*
*/
private static String toCamelCase(String tableName) {
StringBuilder sb = new StringBuilder();
boolean upperCase = false;
for (char c : tableName.toCharArray()) {
if (c == '_') {
upperCase = true;
} else if (upperCase) {
sb.append(Character.toUpperCase(c));
upperCase = false;
} else {
sb.append(c);
}
}
return sb.toString();
}
/**
*
*
* @param input
* @return
*/
public static String capitalizeFirstLetter(String input) {
// 检查输入是否为空或者null
if (input == null || input.isEmpty()) {
return input;
}
// 将第一个字符转换为大写,然后与其余部分拼接
return input.substring(0, 1).toUpperCase() + input.substring(1);
}
}

@ -0,0 +1,66 @@
package com.dsideal.base.Util;
import java.lang.reflect.Field;
import com.jfinal.plugin.activerecord.Record;
/**
* @ClassName: RecordUtils
* @Description: Record
*/
public class RecordUtils {
/**
* @param obj
* @return
* @throws IllegalArgumentException
* @throws IllegalAccessException Record
* @Title: ModelToRecord
* @Description: javaBeanRecord;
*/
public static Record javaBeanToRecord(Object obj) throws IllegalArgumentException, IllegalAccessException {
if (obj != null) {
Record record = new Record();
Class clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
if (!field.isAccessible()) {
field.setAccessible(true);
}
record.set(field.getName(), field.get(obj));
}
return record;
}
return null;
}
/**
* @param record
* @param clazz
* @return
* @throws InstantiationException
* @throws IllegalAccessException
* @throws NoSuchFieldException
* @throws SecurityException Object
* @Title: RecrodToModel
* @Description: RecordjavaBean
*/
public static Object recrodToJavaBean(Record record, Class clazz) throws InstantiationException, IllegalAccessException, NoSuchFieldException, SecurityException {
if (record != null) {
Object obj = clazz.newInstance();
String[] columns = record.getColumnNames();
for (String col : columns) {
Field field = clazz.getDeclaredField(col);
if (field != null) {
if (!field.isAccessible()) {
field.setAccessible(true);
}
field.set(obj, record.getObject(col));
}
}
return obj;
}
return null;
}
}

@ -1,12 +0,0 @@
package com.dsideal.base.model;
import com.dsideal.base.model.base.BaseTestHuanghai;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class TestHuanghai extends BaseTestHuanghai<TestHuanghai> {
}

@ -1,22 +0,0 @@
package com.dsideal.base.model;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
/**
* Generated by JFinal, do not modify this file.
* <pre>
* Example:
* public void configPlugin(Plugins me) {
* ActiveRecordPlugin arp = new ActiveRecordPlugin(...);
* _MappingKit.mapping(arp);
* me.add(arp);
* }
* </pre>
*/
public class _MappingKit {
public static void mapping(ActiveRecordPlugin arp) {
arp.addMapping("t_test_huanghai", "user_id", TestHuanghai.class);
}
}

@ -1,37 +0,0 @@
package com.dsideal.base.model.base;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseTestHuanghai<M extends BaseTestHuanghai<M>> extends Model<M> implements IBean {
public void setUserId(java.lang.Integer userId) {
set("user_id", userId);
}
public java.lang.Integer getUserId() {
return getInt("user_id");
}
public void setUserName(java.lang.String userName) {
set("user_name", userName);
}
public java.lang.String getUserName() {
return getStr("user_name");
}
public void setXbId(java.lang.Integer xbId) {
set("xb_id", xbId);
}
public java.lang.Integer getXbId() {
return getInt("xb_id");
}
}
Loading…
Cancel
Save