main
黄海 2 years ago
parent de59f772f1
commit 5ffce7a7ac

@ -229,7 +229,7 @@ public class YpController extends Controller {
//需要合并的excel文件路径
ArrayList<String> mergeList = new ArrayList<>();
//模板文件
String excelPath = PathKit.getRootClassPath() + PropKit.get("excelExportTemplatePathSuffix").replace("\\", "/");
String excelPath = PathKit.getWebRootPath() + PropKit.get("excelExportTemplatePathSuffix").replace("\\", "/");
String filePath = excelPath + "YangPuZhaoShengExcel.json";
//按班型逐个生成
for (int i = 0; i < list.size(); i++) {

@ -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,49 @@
{
"title": "托班招生结果",
"sheetName": "托班",
"titleHeight": 30,
"rowHeight": 30,
"showNumber": true,
"colInfo": [
{
"show_column_name": "申报班型",
"list_column_name": "bx_name",
"width": 16
},
{
"show_column_name": "姓名",
"list_column_name": "name",
"width": 16
},
{
"show_column_name": "性别",
"list_column_name": "xb",
"width": 10
},
{
"show_column_name": "家庭住址",
"list_column_name": "address",
"width": 36
},
{
"show_column_name": "父亲姓名",
"list_column_name": "address",
"width": 20
},
{
"show_column_name": "母亲姓名",
"list_column_name": "address",
"width": 16
},
{
"show_column_name": "身份证号",
"list_column_name": "sfzh",
"width": 26
},
{
"show_column_name": "联系电话",
"list_column_name": "tel",
"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,15 @@
-- 应用接入命名空间
#namespace("yp")
#sql("getTaskInfo")
select t1.*,t2.bx_name from t_yp_record as t1 inner join t_yp_bx as t2 on t1.bx_id=t2.bx_id
where t1.task_id=#para(task_id)
#if(bx_id)
and t1.bx_id=#para(bx_id)
#end
order by t1.bx_id
#end
#sql("listTask")
select task_id,task_name,date_format(create_time,'%Y-%m-%d') as create_time,b_use,is_run from t_yp_task where b_use=1 order by task_id 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/yangpu_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/YangPuBaoMing,classpath:static
undertow.resourcePath =D:/dsWork/YangPuBaoMing/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

@ -8,6 +8,18 @@ http://www.wmarkj.com:27009/FengHuang/
# 业务管理员
admin 123456
# 2018年出生的学生测试用身份证号
110101201803078230
110101201803071194
110101201803076710
110101201803076593
110101201803072998
110101201803071012
110101201803071135
110101201803074272
110101201803073413
110101201803077510
# 2019年出生的学生测试用身份证号
110101201903077278
110101201903078457

Loading…
Cancel
Save