main
黄海 2 years ago
parent 7ed12db690
commit 222218131a

@ -23,6 +23,7 @@ import com.jfinal.upload.UploadFile;
import java.io.File;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@ -107,10 +108,10 @@ public class YpController extends Controller {
* @param uuid ID
*/
@Before(POST.class)
@EmptyInterface({"xb", "xm", "mz", "byxx", "bybj", "sg", "zzfs", "hjszd", "jtzz",
@EmptyInterface({"xb", "xm", "mz", "byxx", "bybj", "sg", "hjszd", "jtzz",
"xx", "fzhm", "bw", "db", "zg", "st", "zyz", "xly", "jlhd", "tc", "jwh", "uuid"})
public void save(String xb, String xm, String mz, String byxx,
String bybj, String sg, String zzfs, String hjszd, String jtzz, String xx,
String bybj, String sg, String hjszd, String jtzz, String xx,
String bb_name, String bb_bureau, String bb_tel, String mm_name, String mm_bureau,
String mm_tel, String fzhm, String bw, String db, String zg, String st,
String zyz, String xly, String jlhd, String tc, String jwh, String uuid) {
@ -122,7 +123,7 @@ public class YpController extends Controller {
return;
}
String zkz = getSessionAttr("zkz");
model.save(zkz, xm, xb, mz, byxx, bybj, sg, zzfs, hjszd, jtzz, xx, bb_name, bb_bureau, bb_tel, mm_name, mm_bureau,
model.save(zkz, xm, xb, mz, byxx, bybj, sg, hjszd, jtzz, xx, bb_name, bb_bureau, bb_tel, mm_name, mm_bureau,
mm_tel, fzhm, bw, db, zg, st, zyz, xly, jlhd, tc, jwh, uuid);
kv.set("success", true);
kv.set("message", "保存成功!");
@ -187,7 +188,7 @@ public class YpController extends Controller {
public void exportExcel() throws URISyntaxException {
//模板文件
String excelPath = CommonUtil.getClassPath() + PropKit.get("excelExportTemplatePathSuffix").replace("\\", "/");
String filePath = excelPath + "103.json";
String filePath = excelPath + "103_YTB.json";
//转成 json对象
JSONObject jo = FileUtil.readJsonFile(filePath);
//导出
@ -195,7 +196,39 @@ public class YpController extends Controller {
String excelFile = excelPath + "excelTemp/" + UUID.randomUUID().toString().toUpperCase() + ".xls";
ExcelCommonUtil.export(rs, jo, excelFile);
//提供下载
String filename = "学生信息表.xls";
String filename = "已填报.xlsx";
renderFile(new File(excelFile), filename);
}
}
@Before(GET.class)
public void exportWDL() throws URISyntaxException {
//模板文件
String excelPath = CommonUtil.getClassPath() + PropKit.get("excelExportTemplatePathSuffix").replace("\\", "/");
String filePath = excelPath + "103_WDL.json";
//转成 json对象
JSONObject jo = FileUtil.readJsonFile(filePath);
//导出
List<Record> rs = model.exportWDL();
String excelFile = excelPath + "excelTemp/" + UUID.randomUUID().toString().toUpperCase() + ".xls";
ExcelCommonUtil.export(rs, jo, excelFile);
//提供下载
String filename = "未登录.xlsx";
renderFile(new File(excelFile), filename);
}
@Before(GET.class)
public void exportYDLWTB() throws URISyntaxException {
//模板文件
String excelPath = CommonUtil.getClassPath() + PropKit.get("excelExportTemplatePathSuffix").replace("\\", "/");
String filePath = excelPath + "103_YDLWTB.json";
//转成 json对象
JSONObject jo = FileUtil.readJsonFile(filePath);
//导出
List<Record> rs = model.exportYDLWTB();
String excelFile = excelPath + "excelTemp/" + UUID.randomUUID().toString().toUpperCase() + ".xls";
ExcelCommonUtil.export(rs, jo, excelFile);
//提供下载
String filename = "已登录未填报.xlsx";
renderFile(new File(excelFile), filename);
}
}

@ -49,7 +49,6 @@ public class YpModel {
* @param byxx
* @param bybj
* @param sg
* @param zzfs
* @param hjszd
* @param jtzz
* @param xx
@ -72,7 +71,7 @@ public class YpModel {
* @param uuid ID
*/
public void save(String zkz, String xm, String xb, String mz, String byxx,
String bybj, String sg, String zzfs, String hjszd, String jtzz, String xx,
String bybj, String sg, String hjszd, String jtzz, String xx,
String bb_name, String bb_bureau, String bb_tel, String mm_name, String mm_bureau,
String mm_tel, String fzhm, String bw, String db, String zg, String st,
String zyz, String xly, String jlhd, String tc, String jwh, String uuid) {
@ -85,7 +84,6 @@ public class YpModel {
record.set("byxx", byxx);
record.set("bybj", bybj);
record.set("sg", sg);
record.set("zzfs", zzfs);
record.set("hjszd", hjszd);
record.set("jtzz", jtzz);
record.set("xx", xx);
@ -115,4 +113,14 @@ public class YpModel {
SqlPara sp = Db.getSqlPara("yp.listView");
return Db.paginate(page, limit, sp);
}
public List<Record> exportWDL() {
SqlPara sp = Db.getSqlPara("yp.exportWDL");
return Db.find(sp);
}
public List<Record> exportYDLWTB() {
SqlPara sp = Db.getSqlPara("yp.exportYDLWTB");
return Db.find(sp);
}
}

@ -0,0 +1,24 @@
{
"title": "未登录人员列表",
"sheetName": "报表",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "准考证号",
"list_column_name": "zkz",
"width": 16
},
{
"show_column_name": "学生姓名",
"list_column_name": "xm",
"width": 16
},
{
"show_column_name": "中招分数",
"list_column_name": "score",
"width": 16
}
]
}

@ -0,0 +1,24 @@
{
"title": "已未登录未填报人员",
"sheetName": "报表",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "准考证号",
"list_column_name": "zkz",
"width": 16
},
{
"show_column_name": "学生姓名",
"list_column_name": "xm",
"width": 16
},
{
"show_column_name": "中招分数",
"list_column_name": "score",
"width": 16
}
]
}

@ -1,5 +1,5 @@
{
"title": "学生信息填情况",
"title": "学生信息填情况",
"sheetName": "报表",
"titleHeight": 30,
"rowHeight": 30,

@ -3,4 +3,10 @@
#sql("listView")
select * from t_yp_record where length(xb)>0
#end
#sql("exportWDL")
SELECT zkz,xm,score FROM (select zkz,xm,score from t_yp_student as t1 where T1.zkz!='888888888888' AND t1.zkz not in (select zkz from t_yp_record) order by score desc ) AS T2;
#end
#sql("exportYDLWTB")
select zkz,xm,zzfs as score from t_yp_record where xb is null order by zzfs desc;
#end
#end

@ -0,0 +1,30 @@
#!/bin/bash
# 备份目录
backup_path="/usr/local/Backup"
# 备份日期
date_str=`date +%Y%m%d`
# 备份的目录名称
backup_path=/usr/local/Backup/base_db_${date_str}
# 备份的文件名称
FILE=${backup_path}.tar.gz
# 备份
rm -rf ${backup_path}
mariabackup --backup --target-dir ${backup_path} --databases="base_db mysql" --user root --password DsideaL147258369
# 压缩目录
tar -czf ${FILE} ${backup_path}
# 删除临时目录
rm -rf ${backup_path}
# 切片
split -b 100m -d ${FILE} ${FILE}.
# 删除原文件
rm -rf ${FILE}

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

@ -0,0 +1,24 @@
{
"title": "未登录人员列表",
"sheetName": "报表",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "准考证号",
"list_column_name": "zkz",
"width": 16
},
{
"show_column_name": "学生姓名",
"list_column_name": "xm",
"width": 16
},
{
"show_column_name": "中招分数",
"list_column_name": "score",
"width": 16
}
]
}

@ -0,0 +1,24 @@
{
"title": "已未登录未填报人员",
"sheetName": "报表",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "准考证号",
"list_column_name": "zkz",
"width": 16
},
{
"show_column_name": "学生姓名",
"list_column_name": "xm",
"width": 16
},
{
"show_column_name": "中招分数",
"list_column_name": "score",
"width": 16
}
]
}

@ -0,0 +1,144 @@
{
"title": "学生信息填报情况",
"sheetName": "报表",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "准考证号",
"list_column_name": "zkz",
"width": 16
},
{
"show_column_name": "学生姓名",
"list_column_name": "xm",
"width": 16
},
{
"show_column_name": "性别",
"list_column_name": "xb",
"width": 10
},
{
"show_column_name": "民族",
"list_column_name": "mz",
"width": 36
},
{
"show_column_name": "毕业学校",
"list_column_name": "byxx",
"width": 20
},
{
"show_column_name": "毕业班级",
"list_column_name": "bybj",
"width": 16
},
{
"show_column_name": "身高单位CM",
"list_column_name": "sg",
"width": 26
},
{
"show_column_name": "中招分数",
"list_column_name": "zzfs",
"width": 20
},
{
"show_column_name": "户籍所在地",
"list_column_name": "hjszd",
"width": 20
},
{
"show_column_name": "家族住址",
"list_column_name": "jtzz",
"width": 20
},
{
"show_column_name": "血型",
"list_column_name": "xx",
"width": 20
},
{
"show_column_name": "父亲姓名",
"list_column_name": "bb_name",
"width": 20
},
{
"show_column_name": "父亲工作单位",
"list_column_name": "bb_bureau",
"width": 20
},
{
"show_column_name": "父亲电话",
"list_column_name": "bb_tel",
"width": 20
},
{
"show_column_name": "母亲姓名",
"list_column_name": "mm_name",
"width": 20
},
{
"show_column_name": "母亲工作单位",
"list_column_name": "mm_bureau",
"width": 20
},
{
"show_column_name": "母亲电话",
"list_column_name": "mm_tel",
"width": 20
},
{
"show_column_name": "服装号码",
"list_column_name": "fzhm",
"width": 20
},
{
"show_column_name": "初三是否班委",
"list_column_name": "bw",
"width": 20
},
{
"show_column_name": "家庭是否享受低保",
"list_column_name": "db",
"width": 20
},
{
"show_column_name": "是否因身体原因需特殊照顾",
"list_column_name": "zg",
"width": 20
},
{
"show_column_name": "希望加入或创办什么社团",
"list_column_name": "st",
"width": 20
},
{
"show_column_name": "是否希望加入志愿者组织",
"list_column_name": "zyz",
"width": 20
},
{
"show_column_name": "是否愿意参加暑期夏令营",
"list_column_name": "xly",
"width": 20
},
{
"show_column_name": "是否愿意参加暑期省内外游学交流活动",
"list_column_name": "jlhd",
"width": 20
},
{
"show_column_name": "有何特长",
"list_column_name": "tc",
"width": 20
},
{
"show_column_name": "家长是否愿意参加家长委员会",
"list_column_name": "jwh",
"width": 20
}
]
}

@ -0,0 +1,30 @@
{
"title": "职务与分管工作",
"sheetName": "职务与分管工作",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "级别",
"list_column_name": "level_name",
"width": 40
},
{
"show_column_name": "单位类型",
"list_column_name": "org_type_name",
"width": 40
},
{
"show_column_name": "职务名称",
"list_column_name": "zhiwu_name",
"width": 40
},
{
"show_column_name": "分管工作",
"list_column_name": "fenguan",
"width": 40
}
]
}

@ -0,0 +1,24 @@
{
"title": "县区级单位管理员登录账号",
"sheetName": "管理员账号",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "姓名",
"list_column_name": "person_name",
"width": 40
},
{
"show_column_name": "登录名",
"list_column_name": "login_name",
"width": 40
},
{
"show_column_name": "原始密码",
"list_column_name": "original_pwd",
"width": 40
}
]
}

@ -0,0 +1,24 @@
{
"title": "县区管理员登录账号",
"sheetName": "管理员账号",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "姓名",
"list_column_name": "person_name",
"width": 40
},
{
"show_column_name": "登录名",
"list_column_name": "login_name",
"width": 40
},
{
"show_column_name": "原始密码",
"list_column_name": "original_pwd",
"width": 40
}
]
}

@ -0,0 +1,24 @@
{
"title": "市直属单位登录账号",
"sheetName": "管理员账号",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "姓名",
"list_column_name": "person_name",
"width": 40
},
{
"show_column_name": "登录名",
"list_column_name": "login_name",
"width": 40
},
{
"show_column_name": "原始密码",
"list_column_name": "original_pwd",
"width": 40
}
]
}

@ -0,0 +1,24 @@
{
"title": "市管理员登录账号",
"sheetName": "管理员账号",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "姓名",
"list_column_name": "person_name",
"width": 40
},
{
"show_column_name": "登录名",
"list_column_name": "login_name",
"width": 40
},
{
"show_column_name": "原始密码",
"list_column_name": "original_pwd",
"width": 40
}
]
}

@ -0,0 +1,24 @@
{
"title": "家长登录信息",
"sheetName": "家长登录信息",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "姓名",
"list_column_name": "person_name",
"width": 40
},
{
"show_column_name": "登录名",
"list_column_name": "login_name",
"width": 40
},
{
"show_column_name": "原始密码",
"list_column_name": "original_pwd",
"width": 40
}
]
}

@ -0,0 +1,24 @@
{
"title": "学生登录信息",
"sheetName": "学生登录信息",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "学生姓名",
"list_column_name": "person_name",
"width": 40
},
{
"show_column_name": "登录名",
"list_column_name": "login_name",
"width": 40
},
{
"show_column_name": "原始密码",
"list_column_name": "original_pwd",
"width": 40
}
]
}

@ -0,0 +1,24 @@
{
"title": "县区级单位管理员登录账号",
"sheetName": "管理员账号",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "姓名",
"list_column_name": "person_name",
"width": 40
},
{
"show_column_name": "登录名",
"list_column_name": "login_name",
"width": 40
},
{
"show_column_name": "原始密码",
"list_column_name": "original_pwd",
"width": 40
}
]
}

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,9 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PyListCreationInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PyPep8NamingInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PyProtectedMemberInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
</profile>
</component>

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9" project-jdk-type="Python SDK" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/ExcelImportTemplate.iml" filepath="$PROJECT_DIR$/.idea/ExcelImportTemplate.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
</component>
</project>

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="c9117f15-5ada-42d4-a094-bacc4da713a5" name="Changes" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../../.." />
</component>
<component name="ProjectId" id="29h7HfV4pVPLtlgAYRGTuSeM70z" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
"last_opened_file_path": "D:/dsWork/baseServiceJava/src/main/resource/Py"
}
}]]></component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="c9117f15-5ada-42d4-a094-bacc4da713a5" name="Changes" comment="" />
<created>1653553376213</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1653553376213</updated>
<workItem from="1653553377383" duration="14000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
</project>

@ -0,0 +1,85 @@
{
"rowHeight": 28,
"colInfo": [
{
"column": 0,
"name": "stage",
"value": "学段",
"width": 20,
"promptContent": "请按下拉框进行选择!",
"need":1
},
{
"column":1,
"name": "class",
"value": "班级名称",
"width": 24,
"promptContent": "只支持入学年份+班号的形式比如2017级8班",
"need":1
},
{
"column": 2,
"name": "person_name",
"value": "姓名",
"width": 18,
"promptContent": "人员姓名。",
"need":1
},
{
"column": 3,
"name":"xb",
"value": "性别",
"width": 14,
"promptContent": "性别请在下拉框中选择,或者将内容复制!",
"need":1
},
{
"column": 4,
"value": "民族",
"name":"mz",
"width": 20,
"promptContent": "民族请在下拉框中选择,或者将内容复制!",
"need":1
},
{
"column": 5,
"value": "政治面貌",
"name":"zzmm",
"width": 34,
"promptContent": "政治面貌请在下拉框中选择,或者将内容复制!",
"need":1
},
{
"column": 6,
"value": "身份证号",
"name":"cardNumber",
"width": 30,
"promptContent": "支持身份证号15位或18位。",
"need":1
},
{
"column": 7,
"value": "学籍号",
"name":"xjh",
"width": 18,
"promptContent": "可以为空!",
"need":0
},
{
"column": 8,
"value": "学籍辅号",
"name":"xjfh",
"width": 18,
"promptContent": "可以为空!",
"need":0
},
{
"column": 9,
"value": "学生来源",
"name":"stage",
"width": 16,
"promptContent": "学生来源请在下拉框中选择,或者将内容复制!",
"need":1
}
]
}

@ -0,0 +1,93 @@
{
"rowHeight": 28,
"colInfo": [
{
"column": 0,
"name": "department",
"value": "部门",
"width": 25,
"promptContent": "只支持一级部门,系统中存在将重用,不存在将创建!",
"need":0
},
{
"column": 1,
"name": "person_name",
"value": "姓名",
"width": 18,
"promptContent": "人员姓名。",
"need":1
},
{
"column": 2,
"name":"xb",
"value": "性别",
"width": 14,
"promptContent": "性别请在下拉框中选择,或者将内容复制!",
"need":1
},
{
"column": 3,
"value": "民族",
"name":"mz",
"width": 16,
"promptContent": "民族请在下拉框中选择,或者将内容复制!",
"need":1
},
{
"column": 4,
"value": "政治面貌",
"name":"zzmm",
"width": 34,
"promptContent": "政治面貌请在下拉框中选择,或者将内容复制!",
"need":1
},
{
"column": 5,
"value": "身份证号",
"name":"cardNumber",
"width": 30,
"promptContent": "支持身份证号15位或18位。",
"need":1
},
{
"column": 6,
"value": "最高学历",
"name":"xl",
"width": 18,
"promptContent": "最高学历请在下拉框中选择,或者将内容复制!",
"need":1
},
{
"column": 7,
"value": "职称",
"name":"zc",
"width": 18,
"promptContent": "职称请在下拉框中选择,或者将内容复制!",
"need":1
},
{
"column": 8,
"value": "学段",
"name":"stage",
"width": 16,
"promptContent": "学段请在下拉框中选择,或者将内容复制!",
"need":1
},
{
"column": 9,
"value": "主教学科",
"name":"subject",
"width": 22,
"promptContent": "主教学科请在下拉框中选择,或者将内容复制!",
"need":1
},
{
"column": 10,
"value": "从教年月日",
"name":"teach_date",
"width": 18,
"promptContent": "例1978-01-01",
"need":1
}
]
}

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.7" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,9 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PyListCreationInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PyPep8NamingInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PyProtectedMemberInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
</profile>
</component>

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Py.iml" filepath="$PROJECT_DIR$/.idea/Py.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
</component>
</project>

@ -0,0 +1,306 @@
import os
import datetime
from urllib import request
# pip install pandas
# pip install sqlalchemy
# pip install requests
# pip install pymysql
import pandas as pd
import requests
from sqlalchemy import create_engine
import json
import pymysql
from dbutils.pooled_db import PooledDB
class MysqlClient(object):
__pool = None
def __init__(self, mincached=10, maxcached=20, maxshared=10, maxconnections=200, blocking=True,
maxusage=100, setsession=None, reset=True,
host="gtzz.dsideal.com", port=22066, db="gtzz_base_db",
user="root", passwd="DsideaL147258369", charset='utf8mb4'):
"""
:param mincached:连接池中空闲连接的初始数量
:param maxcached:连接池中空闲连接的最大数量
:param maxshared:共享连接的最大数量
:param maxconnections:创建连接池的最大数量
:param blocking:超过最大连接数量时候的表现为True等待连接数量下降为false直接报错处理
:param maxusage:单个连接的最大重复使用次数
:param setsession:optional list of SQL commands that may serve to prepare
the session, e.g. ["set datestyle to ...", "set time zone ..."]
:param reset:how connections should be reset when returned to the pool
(False or None to rollback transcations started with begin(),
True to always issue a rollback for safety's sake)
:param host:数据库ip地址
:param port:数据库端口
:param db:库名
:param user:用户名
:param passwd:密码
:param charset:字符编码
"""
if not self.__pool:
self.__class__.__pool = PooledDB(pymysql,
mincached, maxcached,
maxshared, maxconnections, blocking,
maxusage, setsession, reset,
host=host, port=port, db=db,
user=user, passwd=passwd,
charset=charset,
cursorclass=pymysql.cursors.DictCursor
)
self._conn = None
self._cursor = None
self.__get_conn()
def __get_conn(self):
self._conn = self.__pool.connection()
self._cursor = self._conn.cursor()
def close(self):
try:
self._cursor.close()
self._conn.close()
except Exception as e:
print(e)
def __execute(self, sql, param=()):
count = self._cursor.execute(sql, param)
# print(count)
self._conn.commit()
return count
@staticmethod
def __dict_datetime_obj_to_str(result_dict):
"""把字典里面的datatime对象转成字符串使json转换不出错"""
if result_dict:
result_replace = {k: v.__str__() for k, v in result_dict.items() if isinstance(v, datetime.datetime)}
result_dict.update(result_replace)
return result_dict
def find(self, sql, param=()):
"""查询单个结果"""
count = self.__execute(sql, param)
result = self._cursor.fetchone()
""":type result:dict"""
result = self.__dict_datetime_obj_to_str(result)
return count, result
def findList(self, sql, param=()):
"""
查询多个结果
:param sql: qsl语句
:param param: sql参数
:return: 结果数量和查询结果集
"""
count = self.__execute(sql, param)
result = self._cursor.fetchall()
""":type result:list"""
[self.__dict_datetime_obj_to_str(row_dict) for row_dict in result]
return count, result
def execute(self, sql, param=()):
count = self.__execute(sql, param)
return count
def begin(self):
"""开启事务"""
self._conn.autocommit(0)
def end(self, option='commit'):
"""结束事务"""
if option == 'commit':
self._conn.autocommit()
else:
self._conn.rollback()
def printf(str):
now_time = datetime.datetime.now()
str_time = now_time.strftime("%Y-%m-%d %X") # 格式化时间字符串
print(str_time + " " + str)
def SyncData():
# 连接数据库的方法
connectString = 'mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8' % (
"root", "DsideaL147258369", "gtzz.dsideal.com", 22066, "gtzz_base_db")
engine = create_engine(connectString) # use sqlalchemy to build link-engine
# 当前日期
cnt = 0
# 申请数据库连接
db = MysqlClient()
dateStr = datetime.datetime.now().strftime('%Y%m%d')
# dateStr = '20211115'
text_lines = ['https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_PARA.json',
'https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_ATTACH.json',
'https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_FORM_VALUE.json',
'https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_DETAIL.json',
'https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_FORM_ITEM.json',
'https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_TARGET.json',
'https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_ATTACH_TYPE.json',
'https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_TASK.json',
'https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_FORM.json',
'https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_MESSAGE.json',
'https://dsideal.obs.cn-north-1.myhuaweicloud.com/down/ccsdjg/#(date)/T_PRO_CONFIG.json'
]
# 按行遍历
for line in text_lines:
cnt = cnt + 1
url = line.replace('#(date)', dateStr)
# 去掉最后的换行符
url = url.rstrip("\n")
# 表名
table_name = os.path.basename(url).split(".")[0].lower()
# 尝试下载
html = requests.head(url) # 用head方法去请求资源头部
if html.status_code != 200: # 状态码
printf("没有找到指定的下载文件,程序无法继续!")
exit(0)
# 下载文件
r = request.Request(url)
response = request.urlopen(r)
# 中文编码转换
s = response.read()
s = s.decode('gbk')
s = s.encode('gbk', 'ignore').decode('gbk')
s1 = json.loads(s)
try:
x = pd.DataFrame(s1["DATA"])
# https://www.jianshu.com/p/d615699ff254
# DataFrame 的处理逻辑是如果目标表存在,则删除重建,并且不能完整保留原表字段的数据类型
x.to_sql(table_name, con=engine, if_exists='replace', index=False)
printf("成功完成表%s的数据导入!" % table_name)
except Exception as err:
print(err)
# 创建主键
sql = "alter table `gtzz_base_db`.`t_pro_task` modify column `sn` varchar(128) character set utf8mb4 collate utf8mb4_general_ci not null first,add primary key (`sn`)"
db.execute(sql)
# 添加一列:subject_id
sql = "alter table `gtzz_base_db`.`t_pro_task` add column `subject_id` int null default 0 comment '与t_gtzz_subject对应的主键' after `reiterate_task_sn`"
db.execute(sql)
# 添加组织机构码
sql = "alter table `gtzz_base_db`.`t_pro_task` add column `org_code` varchar(36) null comment '组织机构码' after `subject_id`"
db.execute(sql)
# 更新组织机构码
sql = "update t_pro_task as t1 ,t_base_organization as t2 set t1.org_code=t2.org_code where t1.send_user_name=t2.org_name"
db.execute(sql)
# 创建索引
sql = "alter table `gtzz_base_db`.`t_pro_message` modify column `task_sn` varchar(128) character set utf8mb4 collate utf8mb4_bin null default null after `modify_time`"
db.execute(sql)
sql = "alter table `gtzz_base_db`.`t_pro_message` add index(`task_sn`)"
db.execute(sql)
# 写入同步日志
if cnt == 11:
message = '正常同步成功!'
else:
message = '财务系统未授权同步文件!'
sql = "insert into t_gtzz_sync_log(file_count,message) values(%s,'%s')" % (cnt, message)
db.execute(sql)
# 回写subject_id,初始化时应该都是0更新时才会回写
sql = "update t_pro_task as t1 ,t_gtzz_subject as t2 set t1.subject_id=t2.subject_id where t1.sn=t2.task_sn"
db.execute(sql)
# 填充表t_gtzz_subject
sql = "select t1.sn,(select itemvalue20 from t_pro_form_value where task_sn=t1.sn) as money,(select itemvalue11 from t_pro_form_value where task_sn=t1.sn) as xmjj ,t1.subject_id,t1.task_number,t1.task_title,t1.task_year,t1.ex_send_org_name,(select class_name from t_pro_detail where task_sn=t1.sn order by class_name limit 1 ) as subject_type_name, t1.create_time from t_pro_task as t1 left join t_pro_form_value as t2 on t2.task_sn=t1.sn where t1.ex_send_org_name in (select org_name from t_gtzz_school) and t1.use_flag=1 and t1.draft_flag=0 and t1.close_flag=1 and t1.data_type=0 order by t1.create_time desc"
l1 = db.findList(sql)
# 遍历每一条数据
c1 = 0
c2 = 0
for i in range(0, l1[0]):
row = l1[1][i]
# 项目代号
subject_id = row['subject_id']
# sn
task_sn = row['sn']
# 单位名称
xmdw = row['ex_send_org_name']
# 项目名称
xmmc = row['task_title']
# 申报年度
sbnd = row['task_year']
# 查询获取单位编号
sql = "select org_code from t_base_organization where org_name='%s'" % xmdw
l2 = db.find(sql)
org_code = l2[1]["org_code"]
# 立项时间
lixiang_time = row["create_time"]
# 项目编号
task_number = row["task_number"]
# 项目金额
money = row["money"]
# 项目简介
xmjj = row["xmjj"]
# 项目类型
sql = "select class_name,parent_name from t_pro_detail where task_sn='%s'" % task_sn
l3 = db.findList(sql)
# 声明空的两个
l1_list = []
l2_list = []
for x in l3[1]:
l1_list.append(x["parent_name"])
l2_list.append(x["class_name"])
# 去重
l1_list = list({}.fromkeys(l1_list).keys())
l2_list = list({}.fromkeys(l2_list).keys())
# 大的项目类型名称
if l1_list == None or len(l1_list) == 0:
subject_type_name = '其他'
else:
subject_type_name = l1_list[0]
# 如果存在subject_id,则update
if subject_id > 0:
finish_scan = 1
sql = "update t_gtzz_subject set finish_scan=1,task_sn='%s',org_code='%s',xmdw='%s',xmmc='%s',sbnd='%s',lixiang_time='%s',subject_type_id='-1',subject_type_name='%s' where subject_id=%d" % \
(task_sn, org_code, xmdw, xmmc, sbnd, lixiang_time, subject_type_name,subject_id)
db.execute(sql)
else:
# 如果不存在subject_id,则insert into
finish_scan = 0
sql = "insert into t_gtzz_subject(finish_scan,task_sn,org_code,xmdw,xmmc,sbnd,lixiang_time,subject_type_id,subject_type_name,money,xmjj,task_number) values(%s,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" % \
(finish_scan, task_sn, org_code, xmdw, xmmc, sbnd, lixiang_time, '-1', subject_type_name, money, xmjj,
task_number)
# 执行insert 语句
db.execute(sql)
# 保存子类型名称
for x in l2_list:
sql = "insert into t_gtzz_subject_sub_type(task_sn,sub_type_name,year) values('%s','%s','%s')" % (
task_sn, x, sbnd)
db.execute(sql)
# 补充一下subject_type_id
sql = 'update t_gtzz_subject as t1,t_gtzz_subject_type as t2 set t1.subject_type_id=t2.subject_type_id where t1.subject_type_name=t2.subject_type_name'
db.execute(sql)
# 更新t_gtzz_subject_sub_type表的subject_id
sql = "update t_gtzz_subject_sub_type as t1,t_gtzz_subject as t2 set t1.subject_id=t2.subject_id where t1.task_sn=t2.task_sn"
db.execute(sql)
if finish_scan == 0:
c1 = c1 + 1
printf('成功插入%s条记录!' % c1)
else:
c2 = c2 + 1
printf('成功更新%s条记录!' % c2)
printf('恭喜,所有操作成功完成!')
if __name__ == '__main__':
SyncData()

@ -0,0 +1,223 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Awesome-pyecharts</title>
<script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js"></script>
</head>
<body>
<div id="ac92311eb4e242ad82b430e9c9b2aff8" class="chart-container" style="width:900px; height:500px;"></div>
<script>
var chart_ac92311eb4e242ad82b430e9c9b2aff8 = echarts.init(
document.getElementById('ac92311eb4e242ad82b430e9c9b2aff8'), 'white', {renderer: 'canvas'});
var option_ac92311eb4e242ad82b430e9c9b2aff8 = {
"animation": true,
"animationThreshold": 2000,
"animationDuration": 1000,
"animationEasing": "cubicOut",
"animationDelay": 0,
"animationDurationUpdate": 300,
"animationEasingUpdate": "cubicOut",
"animationDelayUpdate": 0,
"color": [
"#c23531",
"#2f4554",
"#61a0a8",
"#d48265",
"#749f83",
"#ca8622",
"#bda29a",
"#6e7074",
"#546570",
"#c4ccd3",
"#f05b72",
"#ef5b9c",
"#f47920",
"#905a3d",
"#fab27b",
"#2a5caa",
"#444693",
"#726930",
"#b2d235",
"#6d8346",
"#ac6767",
"#1d953f",
"#6950a1",
"#918597"
],
"series": [
{
"type": "bar",
"name": "\u5546\u5bb6A",
"legendHoverLink": true,
"data": [
114,
55,
27,
101,
125,
27,
105
],
"showBackground": false,
"barMinHeight": 0,
"barCategoryGap": "20%",
"barGap": "30%",
"large": false,
"largeThreshold": 400,
"seriesLayoutBy": "column",
"datasetIndex": 0,
"clip": true,
"zlevel": 0,
"z": 2,
"label": {
"show": true,
"position": "right",
"margin": 8
},
"rippleEffect": {
"show": true,
"brushType": "stroke",
"scale": 2.5,
"period": 4
}
},
{
"type": "bar",
"name": "\u5546\u5bb6B",
"legendHoverLink": true,
"data": [
57,
134,
137,
129,
145,
60,
49
],
"showBackground": false,
"barMinHeight": 0,
"barCategoryGap": "20%",
"barGap": "30%",
"large": false,
"largeThreshold": 400,
"seriesLayoutBy": "column",
"datasetIndex": 0,
"clip": true,
"zlevel": 0,
"z": 2,
"label": {
"show": true,
"position": "right",
"margin": 8
},
"rippleEffect": {
"show": true,
"brushType": "stroke",
"scale": 2.5,
"period": 4
}
}
],
"legend": [
{
"data": [
"\u5546\u5bb6A",
"\u5546\u5bb6B"
],
"selected": {
"\u5546\u5bb6A": true,
"\u5546\u5bb6B": true
},
"show": true,
"padding": 5,
"itemGap": 10,
"itemWidth": 25,
"itemHeight": 14
}
],
"tooltip": {
"show": true,
"trigger": "item",
"triggerOn": "mousemove|click",
"axisPointer": {
"type": "line"
},
"showContent": true,
"alwaysShowContent": false,
"showDelay": 0,
"hideDelay": 100,
"textStyle": {
"fontSize": 14
},
"borderWidth": 0,
"padding": 5
},
"xAxis": [
{
"show": true,
"scale": false,
"nameLocation": "end",
"nameGap": 15,
"gridIndex": 0,
"inverse": false,
"offset": 0,
"splitNumber": 5,
"minInterval": 0,
"splitLine": {
"show": false,
"lineStyle": {
"show": true,
"width": 1,
"opacity": 1,
"curveness": 0,
"type": "solid"
}
}
}
],
"yAxis": [
{
"show": true,
"scale": false,
"nameLocation": "end",
"nameGap": 15,
"gridIndex": 0,
"inverse": false,
"offset": 0,
"splitNumber": 5,
"minInterval": 0,
"splitLine": {
"show": false,
"lineStyle": {
"show": true,
"width": 1,
"opacity": 1,
"curveness": 0,
"type": "solid"
}
},
"data": [
"\u886c\u886b",
"\u6bdb\u8863",
"\u9886\u5e26",
"\u88e4\u5b50",
"\u98ce\u8863",
"\u9ad8\u8ddf\u978b",
"\u889c\u5b50"
]
}
],
"title": [
{
"text": "Bar-\u6d4b\u8bd5\u6e32\u67d3\u56fe\u7247",
"padding": 5,
"itemGap": 10
}
]
};
chart_ac92311eb4e242ad82b430e9c9b2aff8.setOption(option_ac92311eb4e242ad82b430e9c9b2aff8);
</script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

@ -0,0 +1,25 @@
from snapshot_selenium import snapshot as driver
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.render import make_snapshot
def bar_chart() -> Bar:
c = (
Bar()
.add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position="right"))
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-测试渲染图片"))
)
return c
# 输出png文件(用于在ppt中静态展现)
make_snapshot(driver, bar_chart().render(), "bar.png")
# 输出html(用于在ppt中动态展现)
bar_chart().render("bar.html")

@ -0,0 +1,223 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Awesome-pyecharts</title>
<script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js"></script>
</head>
<body>
<div id="984c3bcdefe44d48979d74cf3c305590" class="chart-container" style="width:900px; height:500px;"></div>
<script>
var chart_984c3bcdefe44d48979d74cf3c305590 = echarts.init(
document.getElementById('984c3bcdefe44d48979d74cf3c305590'), 'white', {renderer: 'canvas'});
var option_984c3bcdefe44d48979d74cf3c305590 = {
"animation": true,
"animationThreshold": 2000,
"animationDuration": 1000,
"animationEasing": "cubicOut",
"animationDelay": 0,
"animationDurationUpdate": 300,
"animationEasingUpdate": "cubicOut",
"animationDelayUpdate": 0,
"color": [
"#c23531",
"#2f4554",
"#61a0a8",
"#d48265",
"#749f83",
"#ca8622",
"#bda29a",
"#6e7074",
"#546570",
"#c4ccd3",
"#f05b72",
"#ef5b9c",
"#f47920",
"#905a3d",
"#fab27b",
"#2a5caa",
"#444693",
"#726930",
"#b2d235",
"#6d8346",
"#ac6767",
"#1d953f",
"#6950a1",
"#918597"
],
"series": [
{
"type": "bar",
"name": "\u5546\u5bb6A",
"legendHoverLink": true,
"data": [
114,
55,
27,
101,
125,
27,
105
],
"showBackground": false,
"barMinHeight": 0,
"barCategoryGap": "20%",
"barGap": "30%",
"large": false,
"largeThreshold": 400,
"seriesLayoutBy": "column",
"datasetIndex": 0,
"clip": true,
"zlevel": 0,
"z": 2,
"label": {
"show": true,
"position": "right",
"margin": 8
},
"rippleEffect": {
"show": true,
"brushType": "stroke",
"scale": 2.5,
"period": 4
}
},
{
"type": "bar",
"name": "\u5546\u5bb6B",
"legendHoverLink": true,
"data": [
57,
134,
137,
129,
145,
60,
49
],
"showBackground": false,
"barMinHeight": 0,
"barCategoryGap": "20%",
"barGap": "30%",
"large": false,
"largeThreshold": 400,
"seriesLayoutBy": "column",
"datasetIndex": 0,
"clip": true,
"zlevel": 0,
"z": 2,
"label": {
"show": true,
"position": "right",
"margin": 8
},
"rippleEffect": {
"show": true,
"brushType": "stroke",
"scale": 2.5,
"period": 4
}
}
],
"legend": [
{
"data": [
"\u5546\u5bb6A",
"\u5546\u5bb6B"
],
"selected": {
"\u5546\u5bb6A": true,
"\u5546\u5bb6B": true
},
"show": true,
"padding": 5,
"itemGap": 10,
"itemWidth": 25,
"itemHeight": 14
}
],
"tooltip": {
"show": true,
"trigger": "item",
"triggerOn": "mousemove|click",
"axisPointer": {
"type": "line"
},
"showContent": true,
"alwaysShowContent": false,
"showDelay": 0,
"hideDelay": 100,
"textStyle": {
"fontSize": 14
},
"borderWidth": 0,
"padding": 5
},
"xAxis": [
{
"show": true,
"scale": false,
"nameLocation": "end",
"nameGap": 15,
"gridIndex": 0,
"inverse": false,
"offset": 0,
"splitNumber": 5,
"minInterval": 0,
"splitLine": {
"show": false,
"lineStyle": {
"show": true,
"width": 1,
"opacity": 1,
"curveness": 0,
"type": "solid"
}
}
}
],
"yAxis": [
{
"show": true,
"scale": false,
"nameLocation": "end",
"nameGap": 15,
"gridIndex": 0,
"inverse": false,
"offset": 0,
"splitNumber": 5,
"minInterval": 0,
"splitLine": {
"show": false,
"lineStyle": {
"show": true,
"width": 1,
"opacity": 1,
"curveness": 0,
"type": "solid"
}
},
"data": [
"\u886c\u886b",
"\u6bdb\u8863",
"\u9886\u5e26",
"\u88e4\u5b50",
"\u98ce\u8863",
"\u9ad8\u8ddf\u978b",
"\u889c\u5b50"
]
}
],
"title": [
{
"text": "Bar-\u6d4b\u8bd5\u6e32\u67d3\u56fe\u7247",
"padding": 5,
"itemGap": 10
}
]
};
chart_984c3bcdefe44d48979d74cf3c305590.setOption(option_984c3bcdefe44d48979d74cf3c305590);
</script>
</body>
</html>

@ -0,0 +1,19 @@
# 分类名称
# LeiXing = []
# 城区
# CityArea = []
# 镇区
# ZhenArea = []
from pyecharts import options as opts
from pyecharts.charts import Bar
c = (
Bar()
.add_xaxis(LeiXing)
.add_yaxis("城区", CityArea)
.add_yaxis("乡镇", ZhenArea)
.set_global_opts(title_opts=opts.TitleOpts(title="项目单位情况", subtitle=""))
.dump_options()
)
print(c)

@ -0,0 +1,25 @@
# 导入输出图片工具
# 使用snapshot-selenium 渲染图片
# 安装pyecharts
# pip install pyecharts
# 安装插件
# pip install snapshot-selenium
# 下载Chrome插件
# http://npm.taobao.org/mirrors/chromedriver/
方法限制:
(1)必须有 Chrome浏览器而且chromedriver的版本必须与Chrome版本匹配这基本是就限定了生成机器应该是一台 Windows主机
这在本项目中没有什么问题有一台WINDOWS 主机。
(2)必须是https的网址这在一些地区就没办法了只能是先让用户申请成功https。
(3) 不支持传参只能是用代码将最终的模板复制出31份然后人工上去手动修改url地址
https://www.cnblogs.com/-wenli/p/14024078.html
工具安装
安装pyechartspip install pyecharts
安装snapshot-seleniumpip install snapshot-selenium
安装ChromeDriver下载地址
注意下载和电脑上的谷歌浏览器版本相同或者相近的版本将ChromeDriver.exe放到项目文件所在文件夹即可。

@ -0,0 +1,26 @@
#namespace("clearDataBase")
#sql("clearAll")
truncate table t_base_class;
truncate table t_base_graduation;
truncate table t_base_organization;
truncate table t_import_student_by_excel;
truncate table t_import_teacher_by_excel;
truncate table t_person_duty_charge;
truncate table t_sys_account_mount;
truncate table t_transfer_apply;
truncate table t_sys_loginperson;
truncate table t_base_app_visiable;
#end
#sql("set_install_area")
update t_base_global set global_value=? where global_code='install_area'
#end
#sql("setPwd")
update t_sys_loginperson set original_pwd=?,pwd=?,pwdmd5=? where login_name=?
#end
#sql("getAreaByCityId")
select * from t_dm_area where city_id=?
#end
#end

@ -0,0 +1,62 @@
-- 应用接入命名空间
#namespace("app")
-- 根据appid获取app信息
#sql("getAppInfoByAppid")
select t1.appid,t1.appkey,t1.appname,t1.sort_id,t1.system_type_id,t1.create_time,t1.update_ts,t1.bureau_id,t1.developer,
(select t2.org_name from t_base_organization as t2 where t1.bureau_id=t2.org_id) as bureau_name,
(select t2.system_type_name from t_dm_integrated_system_type as t2 where t2.system_type_id=t1.system_type_id) as system_type_name,
t1.is_system from t_base_app as t1 where appid=?
#end
-- 获取应用系统的列表
#sql("getAppList")
select t1.appid,t1.appkey,t1.appname,t1.sort_id,t1.system_type_id,t1.create_time,t1.update_ts,bureau_id,developer,
is_system,(select t2.system_type_name from t_dm_integrated_system_type as t2 where t2.system_type_id=t1.system_type_id)
as system_type_name,
(case when (select count(*) as c from t_integrated_system as t2 where t2.appid=t1.appid)>0 then 1 else 0 end)
as integrated_exist,
(case when (select count(*) as c from t_datashare_publish as t2 where t2.appid=t1.appid)>0 then 1 else 0 end)
as publish_exist,
(case when (select count(*) as c from t_datashare_subscribe as t2 where t2.appid=t1.appid)>0 then 1 else 0 end)
as subscribe_exist,
t1.b_use from t_base_app as t1 order by t1.sort_id
#end
-- 获取集成系统的系统类型
#sql("getIntegratedSystemType")
select system_type_id,system_type_name from t_dm_integrated_system_type
#end
-- 通过appid 获取app的info信息
#sql("getAppInfo")
select appid,appkey,appname,sort_id,system_type_id,create_time,update_ts,bureau_id,developer,is_system from t_base_app
where appid=?
#end
-- 设置app为禁用或启用
#sql("changeAppStatus")
update t_base_app set b_use=ABS(b_use-1) where appid=?
#end
-- 通过appid清空它的发布系统配置
#sql("deletePublishByAppid")
delete from t_datashare_publish where appid=?
#end
-- 通过appid清空它的订阅系统配置
#sql("deleteSubscribeByAppid")
delete from t_datashare_subscribe where appid=?
#end
-- 删除一个集成的系统(可视范围表)
#sql("deleteVisiableByAppid")
delete from t_base_app_visiable where appid=?
#end
--
#sql("appid_visible")
select t1.id,t1.appid,t1.city_id,t1.area_id,t1.bureau_id,t1.level_id,t1.update_ts,
(select t2.org_name from t_base_organization as t2 where t1.bureau_id=t2.org_id) as bureau_name
from t_base_app_visiable as t1 where appid=?
#end
#end

@ -0,0 +1,333 @@
-- 基础类命名空间
#namespace("Base")
-- 获取整个单位类型与职务+分管信息树数据
#sql("getLoginInfoByUserName")
select person_id,person_name,pwd,ifnull(wx_openid,0) as wx_openid,ifnull(qq_openid,0) as qq_openid,
identity_id,bureau_id,city_id,area_id
from t_sys_loginperson where b_use = 1 and login_name =?
#end
-- 获取整个单位类型与职务+分管信息树数据
#sql("getOrgTypePrincipalshipTree")
select t1.id,t1.code,t1.name,t1.parent_id as pId,(case when length(t1.code)>6 then 0 else 1 end) as open,
(case when length(t1.code)=10 then 1 else 0 end ) as nocheck,
(select count(1) from t_base_org_type_principalship as t2 where t2.parent_id=t1.id) as is_leaf,sort_id,b_use,
is_school,level,bureau_level
from t_base_org_type_principalship as t1 where b_use=1 order by sort_id
#end
-- 获取单位类型与职务+分管信息树数据指定结点的信息
#sql("getOrgTypePrincipalshipById")
select t1.id,t1.code,t1.name,t1.parent_id as pId,t1.sort_id,t1.b_use,t1.is_school,t1.level,t1.bureau_level,
(select count(1) from t_base_org_type_principalship as t2 where t2.parent_id=t1.id) as is_leaf
from t_base_org_type_principalship as t1 where t1.id=#para(0) order by t1.sort_id
#end
-- 获取单位类型与职务+分管信息树数据指定结点的信息
#sql("getOrgTypePrincipalshipByParentId")
select t1.id,t1.code,t1.name,t1.parent_id as pId,t1.sort_id,t1.b_use,t1.is_school,t1.level,t1.bureau_level,
(select count(1) from t_base_org_type_principalship as t2 where t2.parent_id=t1.id) as is_leaf
from t_base_org_type_principalship as t1 where t1.parent_id=#para(0) and t1.b_use=1 order by sort_id
#end
-- 和上面的是一个东西,但要细分一下,比如幼儿园+中小学
#sql("getOrgTypePrincipalshipByParentIdAndBigType")
select t1.id,t1.name,t1.parent_id as pId,t1.sort_id,t1.b_use,t1.is_school,t1.level,t1.bureau_level,
(select count(1) from t_base_org_type_principalship as t2 where t2.parent_id=t1.id) as is_leaf
from t_base_org_type_principalship as t1 where t1.parent_id=#para(0) and t1.b_use=1 and t1.is_school=#para(1) order by sort_id
#end
-- 修改一个OrgTypePrincipalship节点
#sql("updateOrgTypePrincipalshipNode")
update t_base_org_type_principalship set code=?,name=?,parent_id=?,sort_id=?,b_use=?,is_school=? where id=?
#end
-- 删除一个OrgTypePrincipalship节点
#sql("delOrgTypePrincipalshipById")
delete from t_base_org_type_principalship where id=?
#end
-- 获取单位类型与职务+分管信息树数据指定结点下一级的数据ByCode
#sql("getOrgTypePrincipalshipByParentparent_code")
select id,code,name,parent_id as pId,sort_id,b_use,is_school,level,bureau_level
from t_base_org_type_principalship where code like ? and length(code)=length(?)+2 and b_use=1 order by sort_id
#end
-- 获取指定CODE的个数
#sql("t_base_org_type_principalship_CountByCode")
select count(1) as c from t_base_org_type_principalship where code=? and b_use=1
#end
-- 获取指定CODE的个数,不包括自己
#sql("t_base_org_type_principalship_CountByCodeExceptSelf")
select count(1) as c from t_base_org_type_principalship where code=? and id!=? and b_use=1
#end
-- 通过单位ID获取职务权限树
#sql("getPrincipalshipTreeByBureauId")
select t1.id,t1.code,t1.name,t1.sort_id,t1.b_use,t1.is_school,t1.level,t1.bureau_level,
(case when length(t1.code)=6 then -1 else t1.parent_id end ) as parent_id,
(select count(1) from t_base_org_type_principalship as t2 where t2.parent_id=t1.id and t2.b_use=1) as is_leaf
from t_base_org_type_principalship as t1
where t1.code like concat((select code from t_base_org_type_principalship
where id=(select org_type_id from t_base_organization where org_id=?)),'%') and t1.b_use=1
order by t1.sort_id
#end
-- 获取职务列表打印EXCEL用来方便第三方系统提供接入的职务与系统对应关系
#sql("getPrincipalshipThirdParty")
select (case when substr(t1.code,1,4)='0101' then '市级' else '县区级' end ) as level_name,
(select t2.name from t_base_org_type_principalship as t2 where t2.code=SUBSTR(t1.code,1,6)) as org_type_name,
t1.name as zhiwu_name ,
ifnull((select group_concat(name) as cols from t_base_org_type_principalship where parent_id=t1.id),'') as fenguan
from t_base_org_type_principalship as t1 where t1.level =4 and t1.b_use=1 order by t1.code
#end
-- 获取当前学期
#sql("getCurrentTerm")
select xq_id,(case xq_code when '09' then xn else xn+1 end) as xn,xq,
xqmc,ksrq,jsrq,memo,xq_code,is_current from t_base_term where is_current=1
#end
-- 按年份获取学期列表
#sql("getTermListByYear")
select xq_id,(case xq_code when '09' then xn else xn+1 end) as xn,xq,
xqmc,ksrq,jsrq,memo,xq_code,is_current from t_base_term where xn=#(batch_year)
#end
-- 获取当前人员
#sql("getCurrentPerson")
select t1.*,t4.rule_id
from t_sys_loginperson as t1
left join t_base_student as t2 on t2.sfzh=AES_DECRYPT(from_base64(t1.idcard_code),'DsideaL4r5t6y7u!')
left join t_base_class as t3 on t2.class_id=t3.class_id
LEFT JOIN t_jw_major_rule AS t4 ON t3.zydm = t4.zhuanye_code
AND t3.entry_year = t4.entry_year
AND t3.type_id = t4.zhaosheng_type_id
AND t3.xq_code = t4.entry_term_code AND t4.rule_type_id=1
where t1.person_id='#(person_id)'
#end
-- 获取当前学生所在班级
#sql("getCurrentClass")
select c.* from t_base_class as c left join t_sys_loginperson as l on c.class_id=l.s_class_id where l.person_id='#(person_id)' and l.identity_id=6
#end
-- 获取人员(主部门)系列表
#sql("getZhuDepartmentTypeId1List")
select l.login_name,case
when o.department_type_id=1 then o.org_id
when po.department_type_id=1 then po.org_id
end as org_id
from t_sys_loginperson as l
LEFT JOIN t_base_organization as o on l.org_id=o.org_id
LEFT JOIN t_base_organization as po on o.parent_id=po.org_id
where l.person_id='#(person_id)' and (o.department_type_id=1 or po.department_type_id=1 )
#end
-- 获取人员(辅部门)系列表
#sql("getFuDepartmentTypeId1List")
select l.login_name,case
when o.department_type_id=1 then o.org_id
when po.department_type_id=1 then po.org_id
end as org_id
from t_sys_loginperson as l
LEFT JOIN t_base_teacher_org as bto on l.person_id=bto.person_id
LEFT JOIN t_base_organization as o on bto.org_id=o.org_id
LEFT JOIN t_base_organization as po on o.parent_id=po.org_id
where l.person_id='#(person_id)' and (o.department_type_id=1 or po.department_type_id=1 )
#end
-- 获取某人是管理员的专业列表
#sql("getZhuanYeList")
select zt.zhuanye_id,z.zhuanye_code,z.zhuanye_name
from t_zhaosheng_zhuanye as z
left join t_zhaosheng_zhuanye_teacher as zt on zt.zhuanye_id=z.zhuanye_id
where zt.person_id='#(person_id)'
and z.b_use=1 and #(batch_year) BETWEEN z.begin_year AND z.end_year
#end
-- 获取所有专业列表
#sql("getAllZhuanYeList")
select z.zhuanye_id,z.zhuanye_code,z.zhuanye_name
from t_zhaosheng_zhuanye as z
where z.b_use=1 and #(batch_year) BETWEEN z.begin_year AND z.end_year
#end
-- 获取学期列表
#sql("getTermList")
select xq_id,xn,xq,xqmc,
date_format(ksrq,'%Y-%m-%d') as ksrq,
date_format(jsrq,'%Y-%m-%d') as jsrq,is_current
from t_base_term where
xq_id<=(select xq_id from t_base_term where is_current=1)
#if(addOne)
+1
#end
and xn>=2018 order by xq_id
#if(action_asc)
asc
#else
desc
#end
#end
-- 获取校历的文字描述信息
#sql("getXiaoLiMemo")
select memo from t_base_term where xq_id=#(xq_id)
#end
-- 修改校历的文字描述信息
#sql("updateXiaoLiMemo")
update t_base_term set memo='#(memo)',ksrq='#(ksrq)',jsrq='#(jsrq)' where xq_id=#(xq_id)
#end
-- 是不是在职务列表中
#sql("isInDutyList")
select count(*) as c from t_person_duty_charge where person_id='#(person_id)' and duties_id in
(
#for(x:ids)
#(for.index == 0 ? "" : ",") #para(x)
#end
)
#end
-- 查询人员职务列表
#sql("selectDutyList")
select `name` from t_base_org_type_principalship where id in
( #for(x:ids)
#(for.index == 0 ? "" : ",")
#para(x)
#end )
#end
-- 获取所有的用户城市列表
#sql("getAllUserCity")
select city_id,city_name,sort_id from t_base_user_city where b_use=1 order by sort_id
#end
-- 教师选择器专用(多选)
#sql("selectPersonsByBureauId")
select person_id,person_name from t_sys_loginperson where bureau_id=? and b_use=1 and identity_id=5
order by person_name,sort_id
#end
-- 系内人员选择器(主部门待选)
#sql("selectZhuPersonsByOrgId")
select sl.person_id,sl.person_name
from t_sys_loginperson as sl
LEFT JOIN t_base_organization AS bo ON bo.org_id = sl.org_id
where sl.bureau_id=? and sl.b_use=1 and sl.identity_id=5
and (bo.org_id=? or bo.parent_id=?)
order by sl.person_name,sl.sort_id
#end
-- 系内人员选择器(辅部门待选)
#sql("selectFuPersonsByOrgId")
select sl.person_id,sl.person_name
from t_sys_loginperson as sl
LEFT JOIN t_base_teacher_org as bto on sl.person_id=bto.person_id
LEFT JOIN t_base_organization AS bo ON bo.org_id = bto.org_id
where sl.bureau_id=? and sl.b_use=1 and sl.identity_id=5
and (bo.org_id=? or bo.parent_id=?)
order by sl.person_name,sl.sort_id
#end
-- 系内人员选择器(已选)
#sql("selectAlreadyPersonsByOrgId")
select sl.person_id,sl.person_name
from t_zhaosheng_zhuanye_teacher as sl
LEFT JOIN t_base_organization AS bo ON bo.org_id = sl.org_id
where sl.zhuanye_id=? and sl.org_id=?
order by sl.person_name
#end
--
#sql("clearZhuanyeOrgTeacher")
delete from t_zhaosheng_zhuanye_teacher where zhuanye_id=? and org_id=?
#end
-- 获取场地列表
#sql("getSiteList")
select t1.site_id,t1.type_id,t2.type_name,t1.site_code,t1.site_name,t1.site_storied_building,
t3.building_name as site_storied_building_name,t1.floor,t1.room_number,t1.capacity_normal,
(case t1.for_examination when 1 then '' else '' end) as for_examination_memo,
t1.for_examination,t1.capacity_examination,t1.sort_id,
(
select t5.class_name as class_name
from t_base_class as t5 inner join t_base_term as t2 on t5.xq_id=t2.xq_id
inner join t_zhaosheng_zhuanye as t3 on t5.zydm=t3.zhuanye_code
inner join t_zhaosheng_person_type as t4 on t5.person_type_id=t4.person_type_id
where t5.class_id=t1.class_id
) as class_name
from t_base_site as t1 left join t_base_site_type as t2 on t1.type_id=t2.type_id
left join t_base_site_storied_building as t3 on t1.site_storied_building=t3.building_id
where 1=1
#if(site_storied_building>0)
and t1.site_storied_building=#(site_storied_building)
#end
#if(floor>0)
and t1.floor=#(floor)
#end
#if(type_id)
and t1.type_id=#(type_id)
#end
#if(for_class_id>0)
and (t1.class_id is not null and t1.class_id<>'')
#else
and (t1.class_id is null or t1.class_id='')
#end
order by t1.sort_id
#end
-- 获取场地类型
#sql("getSiteTypeList")
select type_id,type_name,sort_id from t_base_site_type order by sort_id
#end
-- 获取教学楼列表
#sql("getBindBuildingList")
select building_id,building_name,sort_id from t_base_site_storied_building order by sort_id
#end
-- 获取教学楼楼层列表
#sql("getBuildingLevelList")
select DISTINCT floor from t_base_site where site_storied_building=#(site_storied_building) order by floor
#end
-- 获取指定单位下多机构的教师列表
#sql("getBureauPersonListByOrgId")
select t1.person_id,t1.person_name from t_sys_loginperson as t1
where t1.b_use=1
#if(org_id)
and (t1.org_id in (
select t2.org_id from t_base_organization as t2 where t2.parent_id='#(org_id)'
union
select '#(org_id)'
)
)
or t1.person_id in (
select person_id from t_base_teacher_org as t2 where t2.org_id in (
select t2.org_id from t_base_organization as t2 where t2.parent_id='#(org_id)'
union
select '#(org_id)'
)
)
#end
order by t1.person_name;
#end
-- 获取指定单位下的场地列表
#sql("getBureauBuildingList")
select distinct t1.building_id,t1.building_name from t_base_site_storied_building as t1
order by t1.sort_id;
#end
-- 获取指定单位下的场地列表
#sql("getBaseSiteList")
select distinct t1.site_id,t1.site_name from t_base_site as t1
where t1.site_storied_building=#(building_id)
order by t1.sort_id;
#end
-- 获取指定单位下的班级列表
#sql("getBureauClassList")
select distinct t1.class_id,t1.class_name from t_base_class as t1
where ifnull(graduate_flag,0)=0
#if(zhuanye_code)
and t1.zydm='#(zhuanye_code)'
#end
#if(batch_year)
and t1.entry_year=#(batch_year);
#end
#end
-- 获取固定的班级
#sql("getfixedClass")
select t1.class_id,t1.class_name
from t_base_class as t1 inner join t_base_term as t2 on t1.xq_id=t2.xq_id
inner join t_zhaosheng_zhuanye as t3 on t1.zydm=t3.zhuanye_code
inner join t_zhaosheng_person_type as t4 on t1.person_type_id=t4.person_type_id
order by t1.zydm,t1.xq_id,t1.class_name
#end
#end

@ -0,0 +1,54 @@
-- 班级命名空间
#namespace("class")
-- 根据单位号获取下面正常班级的个数
#sql("getClassCountByBureauId")
select count(1) as c from t_base_class where bureau_id=? and b_use=1
#end
-- 根据单位ID、学段、入学年份获取班级List
#sql("getClassListByBureauIdStageIdEntryYear")
select class_name from t_base_class where b_use = 1 and bureau_id= ? and stage_id = ? and entry_year = ?
order by class_num
#end
-- 获取班级列表
#sql("getClassList")
select class_id, class_name, ifnull(altas_name,'') as altas_name, entry_year,
(select count(1) from t_sys_loginperson t2 where t2.b_use = 1 and identity_id = 6 and t2.s_class_id = t1.class_id)
as studentcount, bureau_id
from t_base_class t1 where b_use = 1 and bureau_id = #para(0) and stage_id = #para(1)
and entry_year =#para(2) order by class_num
#end
-- 获取班级信息
#sql("getClassInfoByClassId")
select class_name,ifnull(altas_name,'') as altas_name, stage_id,entry_year, bureau_id, city_id, area_id, main_school_id
from t_base_class where b_use = 1 and class_id = ?
#end
-- 检查重名班级
#sql("checkClassNameExists")
select class_id from t_base_class where b_use = 1 and bureau_id = ? and stage_id = ? and entry_year = ?
and class_name = ? and class_id <> ?
#end
-- 修改班级名称
#sql("updateClassName")
update t_base_class set altas_name = ?,operator=?,ip_address=? where class_id = ?
#end
-- 删除班级
#sql("deleteClassById")
update t_base_class set b_use = 0,operator=?,ip_address=?,class_code=UPPER(UUID()) where class_id = ?
#end
#sql("getStudentCountByClassId")
select person_id from t_sys_loginperson where b_use = 1 and identity_id=6 and s_class_id = ?
#end
-- 获取指定单位下有哪些班级名称
#sql("getClassName")
select class_id,class_name,stage_id from t_base_class where bureau_id=? and b_use=1
#end
#end

@ -0,0 +1,121 @@
-- 字典命名空间
#namespace("dm")
-- 获取学校办别
#sql("getDmSchoolProperty")
select property_id,property_name from t_dm_schoolproperty
#end
-- 获取学校隶属关系
#sql("getDmSchoolLevel")
select * from t_dm_schoollevel
#end
-- 获取编制的字典
#sql("getDmBz")
select bz_id,bz_name from t_dm_bz
#end
-- 获取性别的字典
#sql("getDmXb")
select xb_id,xb_name from t_dm_xb
#end
-- 获取民族的字典
#sql("getDmMz")
select mz_id,mz_name from t_dm_mz
#end
-- 获取学段字典
#sql("getDmStage")
select stage_id,stage_name from t_dm_stage where b_use=1 order by sort_id
#end
-- 获取指定学段下的学科
#sql("getDmSubject")
select subject_id,subject_name from t_dm_subject where stage_id=? order by sort_id
#end
--
#sql("getDmXl")
select xl_id,xl_name from t_dm_xl
#end
--
#sql("getDmZc")
select zc_id,zc_name from t_dm_zc
#end
--
#sql("getDmZzmm")
select zzmm_id,zzmm_name from t_dm_zzmm
#end
-- 获取全量的行政区划树
#sql("getAreaAll")
select id,area_code,area_name,parent_id,(case when parent_id='-1' then 1 else 0 end ) as open from t_dm_area order by area_code
#end
-- 获取指定父节点的行政区划
#sql("getAreaByParentId")
select t1.id,t1.area_code,t1.area_name,t1.parent_id,
(case when parent_id='-1' then 1 else 0 end ) as open,
(select count(1) from t_dm_area as t2 where t2.parent_id=t1.id) as is_leaf
from t_dm_area as t1 where t1.parent_id=? order by t1.area_code
#end
-- 获取指定节点的行政区划
#sql("getAreaById")
select t1.id,t1.area_code,t1.area_name,t1.parent_id,t1.province_id,
(select area_name from t_dm_area as t2 where t1.province_id=t2.id) as province_name,t1.city_id,t1.area_id,t1.level_id,t1.sort_id from t_dm_area as t1
where t1.id=? order by t1.sort_id
#end
-- 获取指定父节点的行政区划
#sql("getOrgLevel")
select org_id,org_code,org_name,parent_id,org_type_id,school_type_id,sort_id,create_time,update_ts,b_use,org_pk_num,city_id,area_id,main_school_id,bureau_id
from t_base_organization where org_id=?
#end
-- 获取学校类型
#sql("getSchoolType")
select school_type_id,school_type_name from t_dm_schooltype
#end
-- 将学校类型换算成组织机构类型
#sql("convertSchoolTypeToOrgType")
select shi_org_type,area_org_type from t_dm_schooltype where school_type_id=?
#end
-- 通过ID获取区域的信息
#sql("getAreaInfoById")
select * from t_dm_area where id=?
#end
-- 获取学段下学科名称集合用于EXCEL导入
#sql("getStageSubjectNameRecord")
select t2.stage_name,t1.subject_name from t_dm_subject as t1 inner join t_dm_stage as t2
on t1.stage_id=t2.stage_id where t2.b_use=1
#end
-- 获取有哪些学生来源
#sql("getStudentSource")
select source_id,source_name from t_dm_student_source
#end
-- 获取当前安装市下有哪些县区
#sql("getAllAreaInfoByInstallCity")
select id,area_code,area_name from t_dm_area where parent_id=
(select global_value from t_base_global where global_code='install_area') order by sort_id
#end
-- 系统中共有多少种身份
#sql("getDmIdentity")
select identity_id,identity_name from t_dm_identity
#end
-- 获取城市的坐标
#sql("getCityCoordinate")
select * from t_city_coordinate where city_id=?
#end
#end

@ -0,0 +1,59 @@
-- 全局变量命名空间
#namespace("global")
-- 获取全局变量的分类类型
#sql("getGlobalType")
select global_type_id,global_type_name from t_base_global_type
#end
-- 获取所有分类
#sql("getGlobalList")
select global_id,global_type_id,global_code,global_value,global_name,sort_id from t_base_global order by sort_id
#end
-- 检查一个globalCode是不是重复
#sql("checkGlobalCodeCount")
select count(1) as c from t_base_global where global_id!=? and global_code=?
#end
-- 增加一个全局变量设置
#sql("addGlobal")
insert into t_base_global(global_type_id,global_code,global_value,global_name,sort_id) values(?,?,?,?,?)
#end
-- 修改一个全局变量设置
#sql("updateGlobalById")
update t_base_global set global_type_id=?,global_code=?,global_value=?,global_name=?,sort_id=? where global_id=?
#end
-- 删除一个全局变量设置
#sql("delGlobalById")
delete from t_base_global where global_id=?
#end
-- 获取一个全局变量设置
#sql("getGlobalById")
select global_type_id,global_code,global_value,global_name from t_base_global where global_id=?
#end
-- 传入一组global_code 返回对应的数据
#sql("getGlobalByCodes")
select global_id,global_type_id,global_code,global_value,global_name from t_base_global where global_code=?
#end
-- 获取area_id通过area_name
#sql("getAreaIdByAreaName")
select id from t_dm_area as t2 where t2.area_name=? and parent_id=(select id from t_dm_area as t1 where t1.area_name=?)
#end
#sql("getAreaIdByAreaNameOnlyCityName")
select id from t_dm_area as t1 where t1.area_name=?
#end
-- 保存设置安装地区
#sql("saveInstallArea")
update t_base_global set global_value=? where global_code='install_area'
#end
-- 根据全局变量的KEY获取VALUE
#sql("getGlobalValueByKey")
select ifnull(global_value,'') as global_value from t_base_global where global_code = ?
#end
#end

@ -0,0 +1,23 @@
#namespace("graduation")
-- 获取当前年份是否已处理完毕业
#sql("checkCurrentYearIsGraduation")
select count(1) as count from t_base_graduation where finish_year=?
#end
-- 获取需要处理的班级个数
#sql("getNeedActionClass")
select class_id from t_base_class where entry_year+school_length=? and b_use=1 limit ?
#end
-- 修改指定班级下的学生和家长为毕业状态
#sql("changeToGraduationByClassId")
update t_sys_loginperson set b_use=0,status_code='07' where s_class_id=?
#end
-- 修改班级为毕业状态
#sql("changeClassBuse")
update t_base_class set b_use=0 where class_id=?
#end
#end

@ -0,0 +1,251 @@
-- 登录命名空间
#namespace("loginPerson")
-- 获取指定身份的最大主键号
#sql("getMaxPkByIdentityId")
select ifnull(max(identity_pk_num),0) as identity_pk_num from t_sys_loginperson where identity_id=?
#end
-- 删除一个人员:通过单位ID
#sql("deletePersonByBureauId")
update t_sys_loginperson set b_use=0,operator=?,ip_address=? where bureau_id=? and identity_id=4
#end
-- 删除一个人员:通过人员编号
#sql("deletePersonById")
UPDATE t_sys_loginperson
SET b_use = 0,status_code=?,operator=?,ip_address=?
WHERE
person_id = ?
#end
-- 根据学生ID获取家长ID
#sql("getParentInfoByStudentId")
select person_id from t_sys_loginperson where p_child_id=?
#end
-- 修改密码
#sql("changePwd")
update t_sys_loginperson set operator=?,ip_address=?,original_pwd=?,pwd=?,pwdmd5=? where person_id=?
#end
-- 获取指定人员所在的区域信息
#sql("getLoginPersonAreaInfo")
select city_id,area_id from t_sys_loginperson where person_id=?
#end
-- 根据person_id获取是否已绑定了手机号
#sql("getIsBindPhoneNum")
select ifnull(telephone, 0) as telephone from t_sys_loginperson where b_use = 1 and person_id = ?
#end
-- 根据person_id获取是否已绑定了邮箱
#sql("getIsBindEmail")
select ifnull(email, 0) as email from t_sys_loginperson where b_use = 1 and person_id = ?
#end
-- 根据person_id获取是否已绑定了QQ
#sql("getIsBindQq")
select ifnull(qq_openid, 0) as qq_openid from t_sys_loginperson where b_use = 1 and person_id = ?
#end
-- 根据person_id获取是否已绑定了微信
#sql("getIsBindWx")
select ifnull(wx_openid, 0) as wx_openid from t_sys_loginperson where b_use = 1 and person_id = ?
#end
-- 人员与手机号绑定
#sql("bindPersonPhoneNum")
update t_sys_loginperson set telephone= ?,operator=?,ip_address=? where person_id = ?
#end
-- 人员与邮箱绑定
#sql("bindPersonEmail")
update t_sys_loginperson set email= ?,operator=?,ip_address=? where person_id = ?
#end
-- 获取一个QQ的openId获了是否已存在
#sql("getQqOpenIdIsExist")
select person_id from t_sys_loginperson where b_use = 1 and qq_openid =?
#end
-- 绑定QQ
#sql("bindPersonQq")
update t_sys_loginperson set qq_openid= ?,operator=?,ip_address=? where person_id = ?
#end
-- 获取一个微信的openId获了是否已存在
#sql("getWxOpenIdIsExist")
select person_id from t_sys_loginperson where b_use = 1 and wx_openid =?
#end
-- 绑定微信
#sql("bindPersonWx")
update t_sys_loginperson set wx_openid= ?,operator=?,ip_address=? where person_id = ?
#end
-- 根据人员的ID获取此人员的登录信息
#sql("getLoginInfoByPersonId")
select person_id,person_name,identity_id,login_name,pwd,original_pwd,xb,zzmm,mz,idcard_code,birthday,create_time,sort_id,telephone,wx_openid,qq_openid,email,status_code,b_use,identity_pk_num,city_id,area_id,main_school_id,bureau_id,org_id,s_class_id,s_xjh,s_xjfh,s_source,
t_duty_charge,t_xl_id,t_zc_id,t_stage_id,t_subject_id,date_format(t_teaching_date,'%Y-%m-%d') as t_teaching_date,p_child_id,
update_ts from t_sys_loginperson where person_id =?
#end
-- 根据单位号获取下面正常教师的个数
#sql("getTeacherCountByBureauId")
select count(1) as c from t_sys_loginperson where bureau_id=? and b_use=1 and identity_id=5
#end
-- 根据部门获取下面正常教师的个数
#sql("getTeacherCountByOrgId")
select count(1) as c from t_sys_loginperson where org_id=? and b_use=1 and identity_id=5
#end
-- 根据单位号获取下面正常学生的个数
#sql("getStudentCountByBureauId")
select count(1) as c from t_sys_loginperson where bureau_id=? and b_use=1 and identity_id=6
#end
-- 根据单位号获取下面正常家长的个数
#sql("getParentCountByBureauId")
select count(1) as c from t_sys_loginperson where bureau_id=? and b_use=1 and identity_id=7
#end
-- 根据身份证号获取是否存在
#sql("getIdCardIsExist")
select person_id from t_sys_loginperson where b_use = 1 and idcard_code=?
#end
-- 根据手机号获取是否存在
#sql("getTelephoneIsExist")
select person_id from t_sys_loginperson where b_use = 1 and telephone=?
#end
-- 根据邮箱获取是否存在
#sql("getEmailIsExist")
select person_id from t_sys_loginperson where b_use = 1 and email=?
#end
-- 根据身份证号和人员ID获取是否存在
#sql("getIdCardIsExistByPersonId")
select person_id from t_sys_loginperson where b_use = 1 and idcard_code=? and person_id<>?
#end
-- 根据手机号和人员ID获取是否存在
#sql("getTelephoneIsExistByPersonId")
select person_id from t_sys_loginperson where b_use = 1 and telephone=? and person_id<>?
#end
-- 根据邮箱获和人员ID获取是否存在
#sql("getEmailIsExistByPersonId")
select person_id from t_sys_loginperson where b_use = 1 and email=? and person_id<>?
#end
-- 市管理员
#sql("getPrintCityManager")
select person_id,person_name,login_name,original_pwd,pwd from t_sys_loginperson where identity_id =2 order by sort_id
#end
-- 市直属单位
#sql("getPrintCityBureau")
select person_id,person_name,login_name,original_pwd,pwd from t_sys_loginperson where identity_id =4
order by sort_id
#end
-- 县区管理员
#sql("getPrintAreaManager")
select person_id,person_name,login_name,original_pwd,pwd from t_sys_loginperson where identity_id =3 order by sort_id
#end
-- 指定县区的单位
#sql("getPrintAreaBureau")
select person_id,person_name,login_name,original_pwd,pwd from t_sys_loginperson where identity_id =4 and area_id=#para(0) order by sort_id
#end
-- 更改人员的所在部门
#sql("changePersonBureau")
update t_sys_loginperson set city_id=?,area_id=?,main_school_id=?,bureau_id=?,org_id=?,operator=?,ip_address=? where person_id=?
#end
-- 更改学生、家长的所在班级
#sql("changePersonClass")
update t_sys_loginperson set city_id=?,area_id=?,main_school_id=?,bureau_id=?,s_class_id=?,operator=?,ip_address=? where person_id=?
#end
-- 检查身份证号与数据库中的身份证号重复,教师
#sql("checkRepeatidcardByTeacherImport")
select t1.idcard_code from t_import_teacher_by_excel as t1 where t1.batch_id=?
and t1.idcard_code_aes in (select idcard_code from t_sys_loginperson as t2 where t2.b_use=1)
#end
-- 检查身份证号与数据库中的身份证号重复,学生
#sql("checkRepeatidcardByStudentImport")
select t1.idcard_code from t_import_student_by_excel as t1 where t1.batch_id=?
and t1.idcard_code_aes in (select idcard_code from t_sys_loginperson as t2 where t2.b_use=1)
#end
-- 使用单位ID填充部门ID
#sql("fillOrgIdByBureauId")
update t_import_teacher_by_excel set org_id=bureau_id where batch_id=? and org_name=''
#end
-- 有哪些部门需要检查
#sql("needCheckOrgName")
select org_name from t_import_teacher_by_excel where batch_id=? and org_name!='' group by org_name
#end
-- 有哪些班级需要检查
#sql("needCheckClassName")
select class_name,stage_id from t_import_student_by_excel where batch_id=? group by class_name,stage_id
#end
-- 找到本次教师导入批次的组织机构名称有哪些
#sql("selectBatchInfoTeacher")
select * from t_import_teacher_by_excel where batch_id=?
#end
#sql("selectBatchInfoStudent")
select * from t_import_student_by_excel where batch_id=?
#end
-- 根据导入的ID修改部门编号
#sql("UpdateOrgIdByImportTeacherId")
update t_import_teacher_by_excel set org_id=? where id=?
#end
-- 根据导入的ID修改班级编号
#sql("UpdateOrgIdByImportStudentId")
update t_import_student_by_excel set class_id=? where id=?
#end
--batchId
#sql("deleteByBatchId")
delete from t_import_teacher_by_excel where batch_id=?
#end
-- 根据人员ID获取教师的学段id
#sql("getStageInfoByTeacherId")
select t_stage_id as s_stage_id from t_sys_loginperson where person_id=?
#end
-- 根据人员ID获取学生的学段id
#sql("getStageInfoByStudentId")
select s_stage_id from t_sys_loginperson where person_id=?
#end
-- 根据人员ID获取家长的学段id
#sql("getStageInfoByParentId")
select s_stage_id from t_sys_loginperson where person_id=?
#end
-- 根据主、子账号获取信息
#sql("getMountAccountInfo")
select id,person_id,identity_id,main_person_id,main_identity_id,account_type from t_sys_account_mount where main_person_id = ? and person_id = ?
#end
-- 挂载子账号
#sql("mountSubAccount")
insert into t_sys_account_mount (person_id,identity_id,main_person_id,main_identity_id,account_type) values (?,?,?,?,?)
#end
-- 根据人员ID和密码验证是不是合法用于修改新密码
#sql("checkPwdByPersonId")
select count(*) as c from t_sys_loginperson where person_id=? and pwd=?
#end
#end

@ -0,0 +1,76 @@
-- 菜单命名空间
#namespace("menu")
-- 获取获取异步接口
#sql("selectChildAsync")
select t1.menu_id,t1.menu_name,t1.parent_id,t1.sort_id,t1.url,t1.memo,t1.create_time,t1.update_ts,t1.level_id,
(select count(1) from t_base_menu as t2 where t1.menu_id=t2.parent_id) as is_leaf
from t_base_menu as t1 where parent_id=? order by t1.sort_id
#end
-- 获取全部菜单
#sql("selectAll")
select t1.menu_id as id,t1.menu_name as name,t1.parent_id as pId,t1.sort_id,t1.url,t1.memo,t1.create_time,t1.update_ts,t1.level_id,
(select count(1) from t_base_menu as t2 where t1.menu_id=t2.parent_id) as is_leaf
from t_base_menu as t1 order by t1.sort_id
#end
-- 获取所有不为学校提供的数据
#sql("selectNotForSchool")
select menu_id from t_base_menu where for_school=0
#end
-- 获取所有不为单位提供的数据
#sql("selectNotForBureau")
select menu_id from t_base_menu where for_bureau=0
#end
--ID
#sql("deletePrivilageByMenuId")
delete from t_base_menu_privilage where menu_id=?
#end
-- 根据菜单ID返回这个菜单的可用身份
#sql("selectIdentityByMenuId")
select identity_id from t_base_menu_privilage where menu_id=?
#end
-- 获取指定的节点信息
#sql("selectSingle")
select t1.menu_id,t1.menu_name,t1.parent_id,t1.sort_id,t1.url,t1.memo,t1.create_time,t1.update_ts,t1.level_id,t1.for_school,t1.for_bureau,
(select count(1) from t_base_menu as t2 where t1.menu_id=t2.parent_id) as is_leaf
from t_base_menu as t1 where t1.menu_id=?
#end
-- 通过身份获取有哪些菜单ID
#sql("selectMenuByIdentityId")
select menu_id from t_base_menu_privilage where identity_id=?
union
select 1
#end
-- 查询菜单的ids
#sql("selectMenuForIds")
select t1.menu_id,t1.menu_name,t1.parent_id,t1.sort_id,t1.url,t1.memo,t1.create_time,t1.update_ts,t1.level_id,
(select count(1) from t_base_menu as t2 where t1.menu_id=t2.parent_id) as is_leaf
from t_base_menu as t1 where t1.menu_id in
(
#for(x:ids)
#(for.index == 0 ? "" : ",") #para(x)
#end
) order by t1.sort_id
#end
-- 删除指定职务+分管工作的所有菜单,准备重新设置
#sql("deleteMenuByDutyInCharge")
delete from t_base_principalship_menu where duties_id=#(duties_id) and in_charge_id=#(in_charge_id)
#end
-- 获取指定职务+分管工作的所有菜单,用于显示
#sql("selectMenuByDutyInCharge")
select duties_id,in_charge_id,menu_id from t_base_principalship_menu where duties_id=? and in_charge_id=?
#end
-- 人员根据职务+分管工作可见的菜单
#sql("selectMenuByPersonId")
select distinct menu_id from t_base_principalship_menu as t1 inner join t_person_duty_charge as t2 on t1.duties_id=t2.`duties_id`
and t1.in_charge_id=t2.`in_charge_id` where t2.person_id=? and t2.b_use=1
#end
#end

@ -0,0 +1,112 @@
-- 组织机构命名空间
#namespace("organization")
-- 获取组织机构的最大主键号
#sql("getMaxPkByOrg")
select ifnull(max(org_pk_num),0) as org_pk_num from t_base_organization
#end
-- 获取指定单位或组织机构的信息
#sql("getOrgInfoById")
select org_id,org_code,org_name,parent_id,org_type_id,school_type_id,sort_id,create_time,
update_ts,b_use,org_pk_num,ifnull(city_id, -1) as city_id,ifnull(area_id, -1) as area_id,
ifnull(main_school_id, -1) as main_school_id,bureau_id,property_id,level_id
from t_base_organization where org_id=? and b_use=1
#end
-- 判断一个组织机构号是不是单位
#sql("IsBureau")
select count(1) as c from t_base_organization where org_id=? and org_id=bureau_id
#end
-- 根据单位号获取下面正常部门的个数
#sql("getOrgCountByBureauId")
select count(1) as c from t_base_organization where bureau_id=? and org_id<>? and b_use=1
#end
-- 删除一个机构
#sql("deleteOrgById")
update t_base_organization set b_use=0,operator=?,ip_address=? where org_id=?
#end
-- 判断此ORG_CODE是不是存在
#sql("getOrgCodeCount")
select count(1) as c from t_base_organization where org_code=? and b_use=1
#end
-- 判断此ORG_CODE是不是存在(排除自己用于修改)
#sql("getOrgCodeCountExceptSelf")
select count(1) as c from t_base_organization where org_code=? and org_id!=? and b_use=1
#end
-- 获取部门列表
#sql("getOrgList")
select * from t_base_organization where parent_id=#para(0) and b_use=1 order by sort_id
#end
-- 获取学校列表
#sql("getSchoolList")
select t1.org_id,t1.org_code,t1.org_name,t1.parent_id,t1.org_type_id,t1.school_type_id,t1.sort_id,
t1.create_time,t1.update_ts,t1.b_use,t1.org_pk_num,t1.city_id,t1.area_id,t1.main_school_id,t1.bureau_id,
(select t2.school_type_name from t_dm_schooltype as t2 where t2.school_type_id=t1.school_type_id) as school_type_name
from t_base_organization as t1 where t1.parent_id=#para(0) and t1.b_use=1 and t1.school_type_id>0
#end
-- 获取学校列表(指定学校类型)
#sql("getSchoolListBySchoolType")
select t1.org_id,t1.org_code,t1.org_name,t1.parent_id,t1.org_type_id,
t1.school_type_id,t1.sort_id,t1.create_time,t1.update_ts,t1.b_use,
t1.org_pk_num,t1.city_id,t1.area_id,t1.main_school_id,t1.bureau_id,
(select t2.school_type_name from t_dm_schooltype as t2 where t2.school_type_id=t1.school_type_id) as school_type_name
from t_base_organization as t1 where t1.parent_id=#para(0) and t1.b_use=1 and t1.school_type_id =#para(1)
#end
-- 获取单位列表
#sql("getBureauList")
select t1.org_id,t1.org_code,t1.org_name,t1.parent_id,t1.org_type_id,
(select t2.name from t_base_org_type_principalship as t2 WHERE t2.id=t1.org_type_id) as org_type_name,
t1.school_type_id,t1.sort_id,t1.create_time,
t1.update_ts,t1.b_use,t1.org_pk_num,t1.city_id,t1.area_id,t1.main_school_id,t1.bureau_id
from t_base_organization as t1 where t1.parent_id=#para(0) and t1.school_type_id<=0 and t1.b_use=1 order by t1.sort_id,t1.update_ts
#end
-- 获取单位列表(指定单位类型)
#sql("getBureauListByBureauType")
select t1.org_id,t1.org_code,t1.org_name,t1.parent_id,t1.org_type_id,
(select t2.name from t_base_org_type_principalship as t2 WHERE t2.id=t1.org_type_id) as org_type_name,
t1.school_type_id,t1.sort_id,t1.create_time,
t1.update_ts,t1.b_use,t1.org_pk_num,t1.city_id,t1.area_id,t1.main_school_id,t1.bureau_id
from t_base_organization as t1 where t1.parent_id=#para(0) and t1.school_type_id<=0 and t1.org_type_id = #para(1)
and t1.b_use=1 order by t1.sort_id,t1.update_ts
#end
-- 组织机构部门树
#sql("getOrgTreeByBureauId")
select org_id,org_name,(case when bureau_id=org_id then '-1' else parent_id end) as parent_id,bureau_id from t_base_organization where bureau_id=?
and b_use=1 order by sort_id,update_ts
#end
-- 传入一个区域ID获取它下面的学校
#sql("getSchoolListByAreaId")
select org_id,org_code,org_name from t_base_organization where (city_id=#para(0) or area_id=#para(1)) and b_use=1 and is_bureau=1
and org_name like #para(2) and school_type_id>0 order by area_id,sort_id
#end
-- 传入一个区域ID获取它下面的单位
#sql("getBureauListByAreaId")
select org_id,org_code,org_name from t_base_organization where (city_id=#para(0) or area_id=#para(1)) and b_use=1 and is_bureau=1
and org_name like #para(2) and school_type_id<=0 order by area_id,sort_id
#end
-- 传入一个区域ID获取它下面全部
#sql("getAllListByAreaId")
select org_id,org_code,org_name from t_base_organization where (city_id=#para(0) or area_id=#para(1)) and b_use=1 and is_bureau=1
and org_name like #para(2) order by area_id,sort_id
#end
--ID
#sql("getFirstLevelOrgName")
select org_id,org_name from t_base_organization where bureau_id=? and parent_id=? and b_use=1
#end
#end

@ -0,0 +1,67 @@
#namespace("student")
-- 根据学生的ID获取家长的信息
#sql("getParentByChildId")
select * from t_sys_loginperson where p_child_id=?
#end
-- 获取学生列表
#sql("getStudentOrParentList")
SELECT
t1.person_id,
t1.person_name,
t1.login_name,
IFNULL(t1.xb, '1') AS xb,
t1.original_pwd,
t1.pwd,
(select count(*) as c from t_transfer_apply as t2 where t2.person_id=t1.person_id and t2.status_id=1 and t2.b_use=1)
as apply_status
FROM
t_sys_loginperson as t1
WHERE
t1.b_use = 1
AND t1.identity_id = #para(0)
AND t1.s_class_id = #para(1) order by t1.sort_id
#end
-- 获取学生列表按学生姓名
#sql("getStudentOrParentListByPersonName")
SELECT
t1.person_id,
t1.person_name,
t1.login_name,
IFNULL(t1.xb, '1') AS xb,
t1.original_pwd,
(select count(*) as c from t_transfer_apply as t2 where t2.person_id=t1.person_id and t2.status_id=1 and t2.b_use=1)
as apply_status
FROM
t_sys_loginperson as t1
WHERE
t1.b_use = 1
AND t1.identity_id = #para(0)
AND t1.s_class_id = #para(1)
AND t1.person_name LIKE concat('%',#para(2),'%') order by t1.sort_id
#end
-- 根据学生ID获取学生信息
#sql("getStudentInfoByPersonId")
SELECT
person_id,
person_name,
IFNULL(xb, '1') AS xb,
IFNULL(mz, '01') AS mz,
idcard_code,
birthday,
zzmm,
(case when s_xjh='-1' then '' else s_xjh end) AS xjh,
(case when s_xjfh='-1' then '' else s_xjfh end) AS xjfh,
s_source AS stu_source,
sort_id
FROM
t_sys_loginperson
WHERE
b_use = 1
AND person_id = ?
#end
#end

@ -0,0 +1,91 @@
#namespace("studentYd")
-- 获取学生状态列表
#sql("get_dm_status_student")
select status_code,status_name,b_use,change_person_b_use,is_show from t_dm_status_student where b_use=1 and is_show=1
#end
-- 获取学生状态列表ByCode
#sql("get_dm_status_student_by_code")
select status_code,status_name,b_use,change_person_b_use,is_show from t_dm_status_student where b_use=1 and is_show=1 and status_code=?
#end
-- 修改人员主表的人员状态
#sql("updateStudentStatus")
update t_sys_loginperson set b_use=?,status_code=?,operator=?,ip_address=? where person_id=?
#end
-- 判断一个学生是不是可以申请调转
#sql("checkAllowStudentTransferApply")
select t1.id,t1.source_bureau_id,t1.target_bureau_id,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.source_bureau_id) as source_bureau_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.target_bureau_id) as target_bureau_name,
t1.identity_id,t1.person_id,t1.person_name,t1.status_id,t1.target_is_read,t1.source_is_read,t1.apply_time,
t1.apply_message,t1.echo_time,t1.echo_message,t1.b_use
from t_transfer_apply as t1 where t1.b_use=1 and t1.person_id=? order by t1.apply_time desc
#end
-- 获取学生调动申请列表
#sql("getStudentTransferApplyList")
select t1.id,t1.source_bureau_id,t1.target_bureau_id,
(select t2.class_name from t_base_class as t2 where t2.class_id=(select t3.s_class_id from t_sys_loginperson as t3 where t3.person_id=t1.person_id)) as class_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.source_bureau_id) as source_bureau_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.target_bureau_id) as target_bureau_name,
t1.identity_id,t1.person_id,t1.person_name,t1.status_id,t1.target_is_read,t1.source_is_read,t1.apply_time,
t1.apply_message,t1.echo_time,t1.echo_message,t1.b_use
from t_transfer_apply as t1 where t1.source_bureau_id=#para(0) and t1.person_name LIKE concat('%',#para(1),'%')
and t1.b_use=1 and t1.identity_id=6 order by t1.apply_time desc
#end
-- 获取学生调动反馈列表
#sql("getStudentTransferEchoList")
select t1.id,t1.source_bureau_id,t1.target_bureau_id,
(select t2.class_name from t_base_class as t2 where t2.class_id=(select t3.s_class_id from t_sys_loginperson as t3 where t3.person_id=t1.person_id)) as class_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.source_bureau_id) as source_bureau_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.target_bureau_id) as target_bureau_name,
t1.identity_id,t1.person_id,t1.person_name,t1.status_id,t1.target_is_read,t1.source_is_read,t1.apply_time,
t1.apply_message,t1.echo_time,t1.echo_message,t1.b_use
from t_transfer_apply as t1 where t1.target_bureau_id=#para(0)
and t1.person_name LIKE concat('%',#para(1),'%') and t1.b_use=1 and t1.identity_id=6
order by t1.apply_time desc
#end
-- 获取指定ID的学生调转申请
#sql("getStudentTransferInfoById")
select t1.id,t1.source_bureau_id,t1.target_bureau_id,
(select t2.class_name from t_base_class as t2 where t2.class_id=(select t3.s_class_id from t_sys_loginperson as t3 where t3.person_id=t1.person_id)) as class_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.source_bureau_id) as source_bureau_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.target_bureau_id) as target_bureau_name,
t1.identity_id,t1.person_id,t1.person_name,t1.status_id,t1.target_is_read,t1.source_is_read,t1.apply_time,
t1.apply_message,t1.echo_time,t1.echo_message,t1.b_use
from t_transfer_apply as t1 where id=?
#end
-- 删除指定的调转ID
#sql("deleteTransferInfoById")
update t_transfer_apply set b_use=0,operator=?,ip_address=? where id=?
#end
-- 获取学生调转申请的未读取个数
#sql("getNewStudentTransferApplyCount")
select count(1) as c from t_transfer_apply where b_use=1 and target_is_read=0 and status_id=1
and target_bureau_id=? and identity_id=6
#end
-- 教师调转提醒(收到新的回执)
#sql("getNewStudentTransferEchoCount")
select count(1) as c from t_transfer_apply where b_use=1 and source_is_read=0 and status_id>1
and source_bureau_id=? and identity_id=6
#end
-- 调转的三种状态
#sql("getTransferApplyStatus")
select apply_status_id,apply_status_name,for_check from t_transfer_apply_status where for_check=1
#end
--
#sql("getPersonStatus")
select count(*) as c from t_transfer_apply where person_id=? and b_use=1 and status_id=1
#end
#end

@ -0,0 +1,90 @@
#namespace("teacher")
-- 通过部门ID获取教师列表
#sql("getTeacherListByOrgId")
SELECT
t1.person_id,
t1.person_name,
t1.login_name,
IFNULL(t1.xb, '1') AS xb,
t1.original_pwd,
t1.pwd,
(select count(*) as c from t_transfer_apply as t2 where t2.person_id=t1.person_id and t2.status_id=1 and t2.b_use=1)
as apply_status
FROM
t_sys_loginperson as t1
WHERE
t1.b_use = 1
AND t1.identity_id = 5
AND t1.org_id = #para(0) order by t1.sort_id
#end
-- 通过单位ID获取教师列表
#sql("getTeacherListByBureauId")
SELECT
t1.person_id,
t1.person_name,
t1.login_name,
IFNULL(t1.xb, '1') AS xb,
t1.original_pwd,
t1.pwd,
(select count(*) as c from t_transfer_apply as t2 where t2.person_id=t1.person_id and t2.status_id=1 and t2.b_use=1)
as apply_status
FROM
t_sys_loginperson as t1
WHERE
t1.b_use = 1
AND t1.identity_id = 5
AND t1.bureau_id = #para(0) order by t1.sort_id
#end
-- 按教师姓名获取教师列表
#sql("getTeacherListByOrgIdPersonName")
SELECT
t1.person_id,
t1.person_name,
t1.login_name,
IFNULL(t1.xb, '1') AS xb,
t1.original_pwd,
t1.pwd,
(select count(*) as c from t_transfer_apply as t2 where t2.person_id=t1.person_id and t2.status_id=1 and t2.b_use=1)
as apply_status
FROM
t_sys_loginperson as t1
WHERE
t1.b_use = 1
AND t1.identity_id = 5
AND t1.org_id = #para(0)
AND t1.person_name LIKE concat('%',#para(1),'%') order by t1.sort_id
#end
-- 按教师姓名,通过单位 获取教师列表
#sql("getTeacherListByPersonNameAndBureauId")
SELECT
t1.person_id,
t1.person_name,
t1.login_name,
IFNULL(t1.xb, '1') AS xb,
t1.original_pwd,
t1.pwd,
(select count(*) as c from t_transfer_apply as t2 where t2.person_id=t1.person_id and t2.status_id=1 and t2.b_use=1)
as apply_status
FROM
t_sys_loginperson as t1
WHERE
t1.b_use = 1
AND t1.identity_id = 5
AND t1.bureau_id = #para(0)
AND t1.person_name LIKE concat('%',#para(1),'%') order by t1.sort_id
#end
-- 更改人员的部门
#sql("changeOrgByPersonIdAndOrgId")
update t_sys_loginperson set org_id=?,operator=?,ip_address=? where person_id=?
#end
--
#sql("deleteDutuesAndChargeByPersonId")
update t_person_duty_charge set b_use=0,operator=?,ip_address=? where person_id=?
#end
#end

@ -0,0 +1,88 @@
#namespace("teacherYd")
-- 获取教师状态列表
#sql("get_dm_status_teacher")
select status_code,status_name,b_use,change_person_b_use,is_show from t_dm_status_teacher where b_use=1 and is_show=1
#end
-- 获取教师状态列表ByCode
#sql("get_dm_status_teacher_by_code")
select status_code,status_name,b_use,change_person_b_use from t_dm_status_teacher where b_use=1 and is_show=1 and status_code=?
#end
-- 修改人员主表的人员状态
#sql("updateTeacherStatus")
update t_sys_loginperson set b_use=?,status_code=?,operator=?,ip_address=? where person_id=?
#end
-- 判断一个教师是不是可以申请调转
#sql("checkAllowTeacherTransferApply")
select t1.id,t1.source_bureau_id,t1.target_bureau_id,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.source_bureau_id) as source_bureau_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.target_bureau_id) as target_bureau_name,
t1.identity_id,t1.person_id,t1.person_name,t1.status_id,t1.target_is_read,t1.source_is_read,t1.apply_time,
t1.apply_message,t1.echo_time,t1.echo_message,t1.b_use
from t_transfer_apply as t1 where t1.b_use=1 and t1.person_id=? order by t1.apply_time desc
#end
-- 获取教师调动申请列表
#sql("getTeacherTransferApplyList")
select t1.id,t1.source_bureau_id,t1.target_bureau_id,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.source_bureau_id) as source_bureau_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.target_bureau_id) as target_bureau_name,
t1.identity_id,t1.person_id,t1.person_name,t1.status_id,t1.target_is_read,t1.source_is_read,t1.apply_time,
t1.apply_message,t1.echo_time,t1.echo_message,t1.b_use
from t_transfer_apply as t1 where t1.source_bureau_id=#para(0) and t1.person_name LIKE concat('%',#para(1),'%')
and t1.b_use=1 and t1.identity_id=5 order by t1.apply_time desc
#end
-- 获取教师调动反馈列表
#sql("getTeacherTransferEchoList")
select t1.id,t1.source_bureau_id,t1.target_bureau_id,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.source_bureau_id) as source_bureau_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.target_bureau_id) as target_bureau_name,
t1.identity_id,t1.person_id,t1.person_name,t1.status_id,t1.target_is_read,t1.source_is_read,t1.apply_time,
t1.apply_message,t1.echo_time,t1.echo_message,t1.b_use
from t_transfer_apply as t1 where t1.target_bureau_id=#para(0)
and t1.person_name LIKE concat('%',#para(1),'%') and t1.b_use=1 and t1.identity_id=5
order by t1.apply_time desc
#end
-- 获取指定ID的教师调转申请
#sql("getTeacherTransferInfoById")
select t1.id,t1.source_bureau_id,t1.target_bureau_id,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.source_bureau_id) as source_bureau_name,
(select t2.org_name from t_base_organization as t2 where t2.org_id=t1.target_bureau_id) as target_bureau_name,
t1.identity_id,t1.person_id,t1.person_name,t1.status_id,t1.target_is_read,t1.source_is_read,t1.apply_time,
t1.apply_message,t1.echo_time,t1.echo_message,t1.b_use
from t_transfer_apply as t1 where id=?
#end
-- 删除指定的调转ID
#sql("deleteTransferInfoById")
update t_transfer_apply set b_use=0,operator=?,ip_address=? where id=?
#end
-- 获取教师调转申请的未读取个数
#sql("getNewTeacherTransferApplyCount")
select count(1) as c from t_transfer_apply where b_use=1 and target_is_read=0 and status_id=1 and
target_bureau_id=? and identity_id=5
#end
-- 教师调转提醒(收到新的回执)
#sql("getNewTeacherTransferEchoCount")
select count(1) as c from t_transfer_apply where b_use=1 and source_is_read=0 and status_id>1
and source_bureau_id=? and identity_id=5
#end
-- 调转的三种状态
#sql("getTransferApplyStatus")
select apply_status_id,apply_status_name,for_check from t_transfer_apply_status where for_check=1
#end
--
#sql("getPersonStatus")
select count(*) as c from t_transfer_apply where person_id=? and b_use=1 and status_id=1
#end
#end

@ -0,0 +1,12 @@
-- 应用接入命名空间
#namespace("yp")
#sql("listView")
select * from t_yp_record where length(xb)>0
#end
#sql("exportWDL")
SELECT zkz,xm,score FROM (select zkz,xm,score from t_yp_student as t1 where T1.zkz!='888888888888' AND t1.zkz not in (select zkz from t_yp_record) order by score desc ) AS T2;
#end
#sql("exportYDLWTB")
select zkz,xm,zzfs as score from t_yp_record where xb is null order by zzfs desc;
#end
#end

@ -0,0 +1,36 @@
# 数据库信息
driverClassName=com.mysql.cj.jdbc.Driver
user=root
password=DsideaL147258369
jdbcUrl=jdbc:mysql://10.10.14.169:22066/zhengzhou103_db?rewriteBatchedStatements=true&useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
# redis ip
redis_ip=10.10.14.169
# redis port
redis_port=18890
# ==============================================================
# 生成Token的密码
CookieMd5SingPwd=DsideaL4r5t6y7u
# MysqlAES加密解密的密码
AesPwd=DsideaL4r5t6y7u!
# 在云存储上保存的备份天数
backup_remain_days=120
#OBS(华为云云存储)
obs_accessKeyId=WAFBGJACKDOQZDH1MKZ1
obs_accessKeySecret=dlWTUbqgCICaYJG3n0Rot4jXaen2HnfFtMVxiPEo
obs_endpoint=obs.cn-north-1.myhuaweicloud.com
obs_bucket_name=dsideal
# 在云存储上备份的路径名称
FengHuangDbBackup=FengHuangDbBackup/
# 管理员邮箱
adminEmailAddress=10402852@qq.com
# 口令,注意这里是腾讯的授权码,可不是什么 QQ密码或者独立密码
# http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
mail_pass=jfdbifdxsahlbjjf
# 导出excel 的模板配置路径
excelExportTemplatePathSuffix=/ExcelExportTemplate/
# 导入excel 的模板配置路径
ExcelImportTemplatePathSuffix=/ExcelImportTemplate/
#file下载的前缀
filePrefix=/FengHuang
# 授权IP地址
IP=192.168.100.100,10.10.11.124

@ -0,0 +1,12 @@
#!/bin/bash
cd /usr/local/tomcat8
#
rm -rf webapps.tar.gz
# 打包
tar -czf webapps.tar.gz webapps
# 准备华为云登录帐号
/usr/local/obsutil/obsutil config -i=WAFBGJACKDOQZDH1MKZ1 -k=dlWTUbqgCICaYJG3n0Rot4jXaen2HnfFtMVxiPEo -e=obs.cn-north-1.myhuaweicloud.com
# 上传到华为云
/usr/local/obsutil/obsutil cp /usr/local/tomcat8/webapps.tar.gz obs://dsideal/HuangHai/webapps.tar.gz

@ -0,0 +1,5 @@
#!/bin/bash
#
date_str=`date +%Y%m%d%H%M%S`
cd /home/Backup
mysqldump -h localhost -u root --password=DsideaL147258369 -R -E -e --max_allowed_packet=1048576 --net_buffer_length=16384 cczhichengtoupiao | gzip > /home/Backup/cczhichengtoupiao_$date_str.sql.gz

@ -0,0 +1,24 @@
# cron 表达式由五部分组成:分 时 天 月 周 # 分 :从 0 到 59 # 时 :从 0 到 23 # 天 :从 1 到 31字母 L 可以表示月的最后一天 # 月 :从 1 到 12可以别名jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov" and "dec"
# 周 :从 0 到 60 表示周日6 表示周六,可以使用别名: "sun", "mon", "tue", "wed", "thu", "fri" and "sat"
#
# 数字 n表示一个具体的时间点例如 5 * * * * 表示 5 分这个时间点时执行
# 逗号 , :表示指定多个数值,例如 3,5 * * * * 表示 3 和 5 分这两个时间点执行
# 减号 -:表示范围,例如 1-3 * * * * 表示 1 分、2 分再到 3 分这三个时间点执行
# 星号 *:表示每一个时间点,例如 * * * * * 表示每分钟执行
# 除号 /:表示指定一个值的增加幅度。例如 n/m表示从 n 开始,每次增加 m 的时间点执行
# cron4j 集成cron 只有 分 时 天 月 周 没有秒
cron4j=clearRubbish,backup
# 每天凌晨2点执行一次
clearRubbish.cron=0 2 * * *
clearRubbish.class=com.dsideal.FengHuang.clearRubbish.clearRubbishAction
clearRubbish.daemon=true
clearRubbish.enable=true
# 每天凌晨2点执行一次备份数据库
backup.cron=0 2 * * *
backup.class=Backup.BackupAll
backup.daemon=true
backup.enable=true

@ -0,0 +1,21 @@
#!/bin/bash
# 启动入口类,该脚本文件用于别的项目时要改这里
MAIN_CLASS=com.dsideal.FengHuang.Start
# Java 命令行参数,根据需要开启下面的配置,改成自己需要的,注意等号前后不能有空格
export JAVA_HOME=/usr/java/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#JAVA_OPTS="-Xms1024m -Xmx2048m"
JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5555 -Xms1024m -Xmx2048m"
# 生成 class path 值
CP=.:/usr/local/tomcat8/webapps/FengHuang/WEB-INF/lib/*
# 运行为后台进程,并且将信息输出到 logback.xml配置的日志文件位置
java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS}

@ -0,0 +1,32 @@
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
. ' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
.............................................
佛祖镇楼 BUG辟易
佛曰:
写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年。
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员。
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员?
power by http://patorjk.com/software/taag/

@ -0,0 +1,12 @@
<License>
<Data>
<Products>
<Product>Aspose.Total for Java</Product>
</Products>
<EditionType>Enterprise</EditionType>
<SubscriptionExpiry>20991231</SubscriptionExpiry>
<LicenseExpiry>20991231</LicenseExpiry>
<SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
</Data>
<Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
</License>

@ -0,0 +1,12 @@
log4j.rootLogger=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.mq=org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender
log4j.appender.mq.Topic=TOPIC_MEIWEI_SMS_NOTICE_TEST
log4j.appender.mq.Tag=PID_MEIWEI_SMS_RETRY_TIMEOUT
log4j.appender.mq.ProducerGroup=meiwei-producer-retry
log4j.appender.mq.NameServerAddress=127.0.0.1:9876;127.0.0.1:9877
log4j.appender.mq.layout=org.apache.log4j.PatternLayout
log4j.appender.mq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F:%L) %

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="/usr/local/tomcat8/logs"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %boldYellow([%thread]) %highlight(%-5level) %boldGreen(%logger{40})
- %msg%n
</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/FengHuang.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/FengHuang.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{40} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>100MB</MaxFileSize>
</triggeringPolicy>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
<logger level="debug" additivity="false">
</logger>
</configuration>

@ -0,0 +1,7 @@
@echo off
set MAIN_CLASS=com.dsideal.FengHuang.Start
set APP_BASE_PATH=%~dp0
set CP=.;%APP_BASE_PATH%config;%APP_BASE_PATH%..\..\lib\*;
set JAVA_OPTS=-Xms1024m -Xmx2048m
java -Xverify:none %JAVA_OPTS% -cp %CP% %MAIN_CLASS%
pause

@ -0,0 +1,20 @@
#!/bin/bash
# 启动入口类,该脚本文件用于别的项目时要改这里
MAIN_CLASS=com.dsideal.FengHuang.Start
# Java 命令行参数,根据需要开启下面的配置,改成自己需要的,注意等号前后不能有空格
export JAVA_HOME=/usr/java/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
JAVA_OPTS="-Xms1024m -Xmx2048m"
# 生成 class path 值
CP=.:/usr/local/tomcat8/webapps/FengHuang/WEB-INF/lib/*
# 运行为后台进程,并且将信息输出到 logback.xml配置的日志文件位置
nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} >> /dev/null 2>&1 &

@ -0,0 +1,10 @@
#!/bin/bash
# 启动入口类,该脚本文件用于别的项目时要改这里
MAIN_CLASS=com.dsideal.FengHuang.Start
# kill 命令不使用 -9 参数时,会回调 onStop() 方法,确定不需要此回调建议使用 -9 参数
kill -9 `pgrep -f ${MAIN_CLASS}` 2>/dev/null
# 以下代码与上述代码等价
# kill $(pgrep -f ${MAIN_CLASS}) 2>/dev/null

@ -0,0 +1,36 @@
# true 值支持热加载
undertow.devMode=true
undertow.port=9000
undertow.host=0.0.0.0
#undertow.resourcePath =/usr/local/tomcat8/webapps/ZhengZhou103,classpath:static
undertow.resourcePath =D:/dsWork/ZhengZhou103/WebRoot,classpath:static
# 目录名称
undertow.contextPath=/FengHuang
# 设定I/O线程数.
server.undertow.io-threads=8
# 设定工作线程数
server.undertow.worker-threads=60
# 查询当前某程序的线程或进程数
# yum install psmisc -y
# ps -e | grep java | awk '{print $1}
# pstree -p 15453 | wc -l
# gzip 压缩开关
undertow.gzip.enable=true
# 配置压缩级别,默认值 -1。 可配置 1 到 9。 1 拥有最快压缩速度9 拥有最高压缩率
undertow.gzip.level=-1
# 触发压缩的最小内容长度
undertow.gzip.minLength=1024
# 开启access日志
server.undertow.accesslog.enabled=true
server.undertow.accesslog.pattern=%t %a "%r" %s (%D ms)
# ssl 开启时,是否开启 http2。检测该配置是否生效在 chrome 地址栏中输入: chrome://net-internals/#http2
#undertow.http2.enable=true
#http://www.jfinal.com/doc/1-4
Loading…
Cancel
Save