Commit 99a74f29 by xty

Merge remote-tracking branch 'origin/master'

parents 276db3da 314e1aee
......@@ -287,6 +287,14 @@ public class ExcelUtil<T>
return importExcel(is, 0);
}
public List<T> importExceltoRow(InputStream is,int rownum) throws Exception
{
return importExceltoRow(StringUtils.EMPTY,is, 0,rownum);
}
/**
* 对excel表单默认第一个索引名转换成list
*
......@@ -298,6 +306,8 @@ public class ExcelUtil<T>
return importExcelNdkh(is, 0);
}
/**
* 对excel表单默认第一个索引名转换成list
*
......@@ -322,6 +332,188 @@ public class ExcelUtil<T>
return importExcelNdkh(StringUtils.EMPTY, is, titleNum);
}
/**
* 对excel表单指定表格索引名转换成list
*
* @param sheetName 表格索引名
* @param titleNum 标题占用行数
* @param is 输入流
* @return 转换后集合
*/
public List<T> importExceltoRow(String sheetName, InputStream is, int titleNum,int rownum) throws Exception
{
this.type = Type.IMPORT;
this.wb = WorkbookFactory.create(is);
List<T> list = new ArrayList<T>();
// 如果指定sheet名,则取指定sheet中的内容 否则默认指向第1个sheet
Sheet sheet = StringUtils.isNotEmpty(sheetName) ? wb.getSheet(sheetName) : wb.getSheetAt(0);
if (sheet == null)
{
throw new IOException("文件sheet不存在");
}
boolean isXSSFWorkbook = !(wb instanceof HSSFWorkbook);
Map<String, PictureData> pictures;
if (isXSSFWorkbook)
{
pictures = getSheetPictures07((XSSFSheet) sheet, (XSSFWorkbook) wb);
}
else
{
pictures = getSheetPictures03((HSSFSheet) sheet, (HSSFWorkbook) wb);
}
// 获取最后一个非空行的行下标,比如总行数为n,则返回的为n-1
int rows = sheet.getLastRowNum();
if (rows > 0)
{
// 定义一个map用于存放excel列的序号和field.
Map<String, Integer> cellMap = new HashMap<String, Integer>();
// 获取表头
Row heard = sheet.getRow(titleNum);
for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++)
{
Cell cell = heard.getCell(i);
if (StringUtils.isNotNull(cell))
{
String value = this.getCellValue(heard, i).toString();
cellMap.put(value, i);
}
else
{
cellMap.put(null, i);
}
}
// 有数据时才处理 得到类的所有field.
List<Object[]> fields = this.getFields();
Map<Integer, Object[]> fieldsMap = new HashMap<Integer, Object[]>();
for (Object[] objects : fields)
{
Excel attr = (Excel) objects[1];
Integer column = cellMap.get(attr.name());
if (column != null)
{
fieldsMap.put(column, objects);
}
}
for (int i = titleNum + 1+rownum; i <= rows; i++)
{
// 从第2行开始取数据,默认第一行是表头.
Row row = sheet.getRow(i);
// 判断当前行是否是空行
if (isRowEmpty(row))
{
continue;
}
T entity = null;
for (Map.Entry<Integer, Object[]> entry : fieldsMap.entrySet())
{
Object val = this.getCellValue(row, entry.getKey());
// 如果不存在实例则新建.
entity = (entity == null ? clazz.newInstance() : entity);
// 从map中得到对应列的field.
Field field = (Field) entry.getValue()[0];
Excel attr = (Excel) entry.getValue()[1];
// 取得类型,并根据对象类型设置值.
Class<?> fieldType = field.getType();
if (String.class == fieldType)
{
String s = Convert.toStr(val);
if (StringUtils.endsWith(s, ".0"))
{
val = StringUtils.substringBefore(s, ".0");
}
else
{
String dateFormat = field.getAnnotation(Excel.class).dateFormat();
if (StringUtils.isNotEmpty(dateFormat))
{
val = parseDateToStr(dateFormat, val);
}
else
{
val = Convert.toStr(val);
}
}
}
else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val)))
{
val = Convert.toInt(val);
}
else if ((Long.TYPE == fieldType || Long.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val)))
{
val = Convert.toLong(val);
}
else if (Double.TYPE == fieldType || Double.class == fieldType)
{
val = Convert.toDouble(val);
}
else if (Float.TYPE == fieldType || Float.class == fieldType)
{
val = Convert.toFloat(val);
}
else if (BigDecimal.class == fieldType)
{
val = Convert.toBigDecimal(val);
}
else if (Date.class == fieldType)
{
if (val instanceof String)
{
val = DateUtils.parseDate(val);
}
else if (val instanceof Double)
{
val = DateUtil.getJavaDate((Double) val);
}
}
else if (Boolean.TYPE == fieldType || Boolean.class == fieldType)
{
val = Convert.toBool(val, false);
}
if (StringUtils.isNotNull(fieldType))
{
String propertyName = field.getName();
if (StringUtils.isNotEmpty(attr.targetAttr()))
{
propertyName = field.getName() + "." + attr.targetAttr();
}
else if (StringUtils.isNotEmpty(attr.readConverterExp()))
{
val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator());
}
else if (StringUtils.isNotEmpty(attr.dictType()))
{
val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator());
}
else if (!attr.handler().equals(ExcelHandlerAdapter.class))
{
val = dataFormatHandlerAdapter(val, attr);
}
else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures))
{
PictureData image = pictures.get(row.getRowNum() + "_" + entry.getKey());
if (image == null)
{
val = "";
}
else
{
byte[] data = image.getData();
val = FileUtils.writeImportBytes(data);
}
}
ReflectUtils.invokeSetter(entity, propertyName, val);
}
}
list.add(entity);
}
}
return list;
}
/**
* 对excel表单指定表格索引名转换成list
*
......
......@@ -50,3 +50,11 @@ export function exportInformation(data) {
data: data,
});
}
//学生照片导入
export function filesUpload(files) {
return request({
url: "/teacher/basiclnformation/importTeacherPicture",
method: "post",
data: files,
});
}
......@@ -8,6 +8,14 @@ export function listHonors(query) {
params: query,
});
}
//查看综合荣誉列表(个人)
export function listHonorsgr(query) {
return request({
url: "/system/honors/listGr",
method: "get",
params: query,
});
}
// 查询综合荣誉详细
export function getHonors(id) {
......@@ -42,3 +50,20 @@ export function delHonors(id) {
method: "delete",
});
}
//获取用户
export function getUserList(data) {
return request({
url: "/system/achievements/getUserList",
method: "get",
params: data,
});
}
//审核
export function audit(data) {
return request({
url: "/system/honors/audit",
method: "post",
data: data,
});
}
......@@ -42,3 +42,11 @@ export function delWorks(id) {
method: "delete",
});
}
//审核
export function audit(data) {
return request({
url: "/system/works/audit",
method: "post",
data: data,
});
}
......@@ -42,3 +42,11 @@ export function delAwards(id) {
method: "delete",
});
}
//审核
export function audit(data) {
return request({
url: "/system/awards/audit",
method: "post",
data: data,
});
}
......@@ -3,7 +3,7 @@ import request from "@/utils/request";
// 查询教师获奖列表
export function listAwards(query) {
return request({
url: "/system/awards/list",
url: "/school/teacherAwards/list",
method: "get",
params: query,
});
......@@ -12,7 +12,7 @@ export function listAwards(query) {
// 查询教师获奖详细
export function getAwards(id) {
return request({
url: "/system/awards/" + id,
url: "/school/teacherAwards/" + id,
method: "get",
});
}
......@@ -20,7 +20,7 @@ export function getAwards(id) {
// 新增教师获奖
export function addAwards(data) {
return request({
url: "/system/awards",
url: "/school/teacherAwards",
method: "post",
data: data,
});
......@@ -29,7 +29,7 @@ export function addAwards(data) {
// 修改教师获奖
export function updateAwards(data) {
return request({
url: "/system/awards",
url: "/school/teacherAwards",
method: "put",
data: data,
});
......@@ -38,7 +38,15 @@ export function updateAwards(data) {
// 删除教师获奖
export function delAwards(id) {
return request({
url: "/system/awards/" + id,
url: "/school/teacherAwards/" + id,
method: "delete",
});
}
//审核
export function audit(data) {
return request({
url: "/school/teacherAwards/audit",
method: "post",
data: data,
});
}
import request from "@/utils/request";
// 查询班主任考核列表
export function listAssessment(query) {
return request({
url: "/assessment/list",
method: "get",
params: query,
});
}
// 查询班主任考核详细
export function getAssessment(id) {
return request({
url: "/assessment/" + id,
method: "get",
});
}
// 新增班主任考核
export function addAssessment(data) {
return request({
url: "/assessment",
method: "post",
data: data,
});
}
// 修改班主任考核
export function updateAssessment(data) {
return request({
url: "/assessment",
method: "put",
data: data,
});
}
// 删除班主任考核
export function delAssessment(id) {
return request({
url: "/assessment/" + id,
method: "delete",
});
}
import request from "@/utils/request";
// 查询工作量信息列表
export function listAworkload(query) {
return request({
url: "/aworkload/list",
method: "get",
params: query,
});
}
// 查询工作量信息详细
export function getAworkload(id) {
return request({
url: "/aworkload/" + id,
method: "get",
});
}
// 新增工作量信息
export function addAworkload(data) {
return request({
url: "/aworkload",
method: "post",
data: data,
});
}
// 修改工作量信息
export function updateAworkload(data) {
return request({
url: "/aworkload",
method: "put",
data: data,
});
}
// 删除工作量信息
export function delAworkload(id) {
return request({
url: "/aworkload/" + id,
method: "delete",
});
}
......@@ -82,6 +82,7 @@ export default {
// 添加选中导出判断
isSelectedData(path) {
console.log('path', path)
if (this.exportType === ExportType.SELECT) {
const params = path.slice(path.lastIndexOf("/") + 1);
if (!params) {
......
......@@ -105,7 +105,7 @@
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete"
v-hasPermi="['system:student:remove']">删除
</el-button>
</el-col>
......@@ -847,7 +847,8 @@
</div>
</el-dialog>
<!-- 导出对话框 -->
<ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable>
<ExportTableNew :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile">
</ExportTableNew>
</div>
</template>
......@@ -857,6 +858,7 @@ import {
getInformation,
delInformation,
addInformation,
filesUpload,
updateInformation,
} from "@/api/smartSchool/electronicArchives/basicInformation";
import { uploadImage as commonUpload } from "@/api/common";
......@@ -903,6 +905,7 @@ export default {
},
uploadForm: {},
baseUrl: [process.env.VUE_APP_BASE_API],
uploadLoading: false,
uploadFileLoading: false,
// 遮罩层
loading: true,
......@@ -1258,8 +1261,9 @@ export default {
handleSelectionChange(selection) {
this.selection = selection;
this.ids = selection.map(item => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
this.single = selection.length == 1;
this.multiple = selection.length > 1;
// 先定义 isMultiple 变量为 false
let isMultiple = false;
if (this.selection.length === 1) {
......@@ -1291,6 +1295,7 @@ export default {
const id = row.id || this.ids;
getInformation(id).then((response) => {
this.form = response.data;
this.pictureUrl = this.pev + response.url;
console.log(this.form, "this.form ");
this.title = "修改教师基础信息";
});
......@@ -1303,7 +1308,7 @@ export default {
updateInformation(this.form).then((response) => {
console.log(this.form, 'this.form');
this.$modal.msgSuccess("修改成功");
this.open = false;
this.look = false;
this.getList();
});
} else {
......@@ -1333,36 +1338,44 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.exportOptions.open = true;
this.download('teacher/basiclnformation/export', {
...this.queryParams
}, `data_${Date.now()}.xlsx`)
// this.exportOptions.open = true;
// this.download('/teacher/basiclnformation/export', {
// ...this.queryParams
// }, `information_${new Date().getTime()}.xlsx`)
},
/** 导出 */
exportFile(callback) {
// 获取当前选中的多选项的 ids 和单选项的 id
const ids = this.ids;
const id = this.id;
console.log(ids, id);
const options = [
{
type: ExportType.TOTAL,
path: "/teacher/basiclnformation/export",
params: {},
},
{
type: ExportType.SELECT,
path: "/teacher/basiclnformation/export/",
params: { ids, id },
},
{
type: ExportType.QUERY,
path: "/teacher/basiclnformation/export",
params: this.queryParams,
},
];
callback(options, `教师基础信息${Date.now()}.xlsx`);
// let exportId = ''
// if (this.multiple == true) {
// exportId = this.ids
// } else {
// exportId = this.id
// }
// console.log('exportId', exportId);
// const options = [
// {
// type: ExportType.TOTAL,
// path: "/teacher/basiclnformation/export",
// params: {},
// },
// {
// type: ExportType.SELECT,
// path: "/teacher/basiclnformation/export/",
// params: { exportId },
// },
// {
// type: ExportType.QUERY,
// path: "/teacher/basiclnformation/export",
// params: this.queryParams,
// },
// ];
// callback(options, `教师基础信息${Date.now()}.xlsx`);
},
......
<template>
<div>
<h2>教师个人信息汇总</h2>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped></style>
\ No newline at end of file
<template>
<div>
<h2></h2>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped></style>
\ No newline at end of file
......@@ -2,25 +2,29 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -34,6 +38,7 @@
placeholder="请选择获奖时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
......@@ -43,31 +48,31 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:honors:add']">新增</el-button>
v-hasPermi="['system:awards:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:honors:edit']">修改</el-button>
v-hasPermi="['system:awards:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:honors:remove']">删除</el-button>
v-hasPermi="['system:awards:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:honors:export']">导出</el-button>
v-hasPermi="['system:awards:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" />
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180">
......@@ -90,8 +95,8 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="open" width="1000px" append-to-body>
<!-- 添加或修改教师获奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
......@@ -105,8 +110,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
......@@ -186,11 +194,11 @@
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Honors",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
name: "Awards",
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
......@@ -208,26 +216,26 @@ export default {
showSearch: true,
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
// 教师获奖表格数据
awardsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
sub: 1,
awardType: 1,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
}],
// 弹出层标题
title: "",
......@@ -296,18 +304,15 @@ export default {
// this.getList();
},
methods: {
/** 查询综合荣誉列表 */
/** 查询教师获奖列表 */
getList() {
this.loading = true;
listHonors(this.queryParams).then(response => {
this.honorsList = response.rows;
listAwards(this.queryParams).then(response => {
this.awardsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
handleExamine() {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
......@@ -396,16 +401,16 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加综合荣誉";
this.title = "添加教师获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
const id = row.id || this.ids
getHonors(id).then(response => {
getAwards(id).then(response => {
this.form = response.data;
this.title = "修改综合荣誉";
this.title = "修改教师获奖";
});
},
/** 提交按钮 */
......@@ -413,13 +418,13 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateHonors(this.form).then(response => {
updateAwards(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addHonors(this.form).then(response => {
addAwards(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -431,8 +436,8 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除综合荣誉编号为"' + ids + '"的数据项?').then(function () {
return delHonors(ids);
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
......@@ -440,9 +445,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('system/awards/export', {
...this.queryParams
}, `honors_${new Date().getTime()}.xlsx`)
}, `awards_${new Date().getTime()}.xlsx`)
}
}
};
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable @keyup.enter.native="handleQuery"
style="width: 220px;" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardRank" placeholder="请选择">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardLevel" placeholder="请选择">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -29,9 +29,14 @@
<el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<el-form-item label="获奖开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="endTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item>
......@@ -62,11 +67,27 @@
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类型" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="成长类型" align="center" prop="type">
<template>
<span>综合荣誉</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -78,11 +99,13 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:honors:edit']">修改</el-button>
v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button>
v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button>
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '1'">审核</el-button>
</template>
</el-table-column>
</el-table>
......@@ -96,7 +119,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -105,7 +128,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
<el-input v-model="form.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
......@@ -138,7 +161,9 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-input v-model="form.userName" placeholder="请选择分管领导"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -165,11 +190,12 @@
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -182,17 +208,128 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 审核综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="look" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入成果名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="display: flex;justify-content: center;">
<el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
import { listHonors, getHonors, delHonors, addHonors, updateHonors, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Honors",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
......@@ -209,45 +346,24 @@ export default {
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
}],
honorsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: false,
isEdit: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
pictureName: null,
pictureUrl: null,
sub: "",
awardType: "",
awardRank: "",
awardLevel: "",
userName: "",
startTime: "",
endTime: "",
},
// 表单参数
form: {},
......@@ -268,9 +384,6 @@ export default {
resultName: [
{ required: true, message: "成果名称不能为空", trigger: "blur" }
],
userId: [
{ required: true, message: "获奖人id不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "获奖人不能为空", trigger: "blur" }
],
......@@ -280,20 +393,15 @@ export default {
awardTime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" }
],
pictureName: [
{ required: true, message: "证书图片名称不能为空", trigger: "blur" }
],
pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" }
{ required: true, message: "证书图片不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
}
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询综合荣誉列表 */
......@@ -305,12 +413,51 @@ export default {
this.loading = false;
});
},
handleExamine() {
//审核
handleExamine(row) {
const id = row.id || this.ids;
getHonors(id).then(response => {
this.look = true;
this.isEdit = true,
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "修改综合荣誉";
});
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditState: '2' // 表示同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditState: '3' // 表示不同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false
this.getList()
}
})
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -340,8 +487,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -350,6 +497,7 @@ export default {
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
// 表单重置
......@@ -405,11 +553,68 @@ export default {
const id = row.id || this.ids
getHonors(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "修改综合荣誉";
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log('form.userName', this.form.userName);
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
},
// openSelect(title, method, type) {
// console.log(1);
// console.log('form.userName', this.form.userName);
// if (!this.form.id) {
// console.log('新增操作');
// if (Object.keys(this.form).some(key => this.form[key])) {
// console.log('有值', this.form.userName);
// } else {
// console.log('没值', this.form.userName);
// this.selectHandles.open = true;
// this.selectHandles.title = title;
// this.selectHandles.method = method;
// this.selectHandles.type = type;
// }
// } else {
// console.log('修改操作');
// this.selectHandles.open = true;
// this.selectHandles.title = title;
// this.selectHandles.method = method;
// this.selectHandles.type = type;
// }
// },
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
/** 提交按钮 */
submitForm() {
this.form.auditState = '2';
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
......@@ -440,9 +645,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('/system/honors/export', {
...this.queryParams
}, `honors_${new Date().getTime()}.xlsx`)
}, `综合荣誉_${new Date().getTime()}.xlsx`)
}
}
};
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
......@@ -3,28 +3,28 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -67,11 +67,31 @@
<el-table :data="worksList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类型" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="成长类型" align="center">
<template>
<span>论文论著</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categories" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank">
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -101,7 +121,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -145,8 +165,9 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-form-item label="获奖人">
<el-input v-model="form.userName" placeholder="请选择分管领导"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -177,7 +198,7 @@
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -190,17 +211,34 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
// import { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/system/works";
import { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/smartSchool/electronicArchives/professionalDevelopment/essaysWritings";;
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Works",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 遮罩层
loading: true,
// 选中数组
......@@ -216,26 +254,7 @@ export default {
// 图片上传遮罩层
uploadLoading: false,
// 论文著作表格数据
worksList: [{
id: 1,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
}],
worksList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -305,7 +324,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询论文著作列表 */
......@@ -317,6 +336,31 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log(1);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
// 取消按钮
cancel() {
this.open = false;
......@@ -324,7 +368,7 @@ export default {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -354,8 +398,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -449,9 +493,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/works/export', {
this.download('/system/works/export', {
...this.queryParams
}, `works_${new Date().getTime()}.xlsx`)
}, `论文论著_${new Date().getTime()}.xlsx`)
}
}
};
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 220px">
<el-option v-for="dict in dict.type.award_categoriesjk" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -24,7 +24,7 @@
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -33,9 +33,14 @@
<el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<el-form-item label="获奖开始时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item>
......@@ -66,11 +71,31 @@
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类型" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="成长类型" align="center">
<template>
<span>讲课获奖</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjk" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank">
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="讲课获奖-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -100,7 +125,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -147,7 +172,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-input v-model="form.userName" placeholder="请选择分管领导"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -178,7 +204,7 @@
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -191,17 +217,32 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/lectureAwards";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Awards",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categoriesjk', 'awards_level', 'award_rank'],
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
......@@ -218,26 +259,7 @@ export default {
// 总条数
total: 0,
// 讲课获奖表格数据
awardsList: [{
id: 1,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
upateBy: null,
updateTime: null,
delFlag: null
}],
awardsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -303,7 +325,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
......@@ -316,10 +338,36 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log(1);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
......@@ -348,8 +396,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -448,9 +496,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/awards/export', {
this.download('/system/awards/export', {
...this.queryParams
}, `awards_${new Date().getTime()}.xlsx`)
}, `讲课获奖_${new Date().getTime()}.xlsx`)
}
}
};
......
......@@ -2,25 +2,29 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.project_research" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -34,6 +38,7 @@
placeholder="请选择获奖时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
......@@ -43,31 +48,31 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:honors:add']">新增</el-button>
v-hasPermi="['system:awards:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:honors:edit']">修改</el-button>
v-hasPermi="['system:awards:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:honors:remove']">删除</el-button>
v-hasPermi="['system:awards:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:honors:export']">导出</el-button>
v-hasPermi="['system:awards:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" />
<el-table-column label="课题研究-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180">
......@@ -90,8 +95,8 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="open" width="1000px" append-to-body>
<!-- 添加或修改教师获奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
......@@ -105,8 +110,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.project_research" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
......@@ -186,11 +194,11 @@
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Honors",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
name: "Awards",
dicts: ["teaching_subjects", 'project_research', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
......@@ -208,26 +216,26 @@ export default {
showSearch: true,
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
// 教师获奖表格数据
awardsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
sub: 1,
awardType: 1,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
}],
// 弹出层标题
title: "",
......@@ -296,18 +304,15 @@ export default {
// this.getList();
},
methods: {
/** 查询综合荣誉列表 */
/** 查询教师获奖列表 */
getList() {
this.loading = true;
listHonors(this.queryParams).then(response => {
this.honorsList = response.rows;
listAwards(this.queryParams).then(response => {
this.awardsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
handleExamine() {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
......@@ -396,16 +401,16 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加综合荣誉";
this.title = "添加教师获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
const id = row.id || this.ids
getHonors(id).then(response => {
getAwards(id).then(response => {
this.form = response.data;
this.title = "修改综合荣誉";
this.title = "修改教师获奖";
});
},
/** 提交按钮 */
......@@ -413,13 +418,13 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateHonors(this.form).then(response => {
updateAwards(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addHonors(this.form).then(response => {
addAwards(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -431,8 +436,8 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除综合荣誉编号为"' + ids + '"的数据项?').then(function () {
return delHonors(ids);
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
......@@ -440,9 +445,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('system/awards/export', {
...this.queryParams
}, `honors_${new Date().getTime()}.xlsx`)
}, `awards_${new Date().getTime()}.xlsx`)
}
}
};
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -33,9 +33,14 @@
<el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<el-form-item label="获奖开始时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
......@@ -67,11 +72,31 @@
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类别" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="成长类型" align="center">
<template>
<span>教学获奖</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjs" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank">
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -83,11 +108,13 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:honors:edit']">修改</el-button>
v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button>
v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '1' || scope.row.auditState === '2' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button>
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '1'">审核</el-button>
</template>
</el-table-column>
</el-table>
......@@ -101,7 +128,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -146,7 +173,9 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-input v-model="form.userName" placeholder="请选择分管领导"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -173,11 +202,12 @@
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -189,18 +219,127 @@
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog><!-- 审核综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="look" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="成果名称" prop="resultName">
<el-input v-model="form.resultName" placeholder="请输入成果名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请选择分管领导"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="主办单位" prop="org">
<el-input v-model="form.org" placeholder="请输入主办单位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="display: flex;justify-content: center;">
<el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div>
</el-dialog>
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { listAwards, getAwards, delAwards, addAwards, updateAwards, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teacherAwards";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Awards",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
......@@ -217,26 +356,7 @@ export default {
// 总条数
total: 0,
// 教师获奖表格数据
awardsList: [{
id: 1,
sub: 1,
awardType: 1,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
}],
awardsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -294,14 +414,12 @@ export default {
pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
}
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询教师获奖列表 */
......@@ -313,9 +431,81 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log('form.userName', this.form.userName);
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
//审核
handleExamine(row) {
const id = row.id || this.ids;
getHonors(id).then(response => {
this.look = true;
this.isEdit = true,
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "修改综合荣誉";
});
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditState: '2' // 表示同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditState: '3' // 表示不同意
};
audit(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.look = false
this.getList()
}
})
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -345,8 +535,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -416,6 +606,7 @@ export default {
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
this.form.auditState = '2';
if (valid) {
if (this.form.id != null) {
updateAwards(this.form).then(response => {
......@@ -445,9 +636,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/awards/export', {
this.download('/school/teacherAwards/export', {
...this.queryParams
}, `awards_${new Date().getTime()}.xlsx`)
}, `教师获奖_${new Date().getTime()}.xlsx`)
}
}
};
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="69px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="姓名" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入" clearable @keyup.enter.native="handleQuery"
style="width: 200px;" />
<el-input v-model="queryParams.userName" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学年" prop="year">
<el-input v-model="queryParams.year" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" placeholder="请选择" style="width: 190px;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semster">
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semster" placeholder="请选择">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="rank">
<el-input v-model="queryParams.rank" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" placeholder="请选择" style="width: 100%;">
......@@ -25,26 +30,31 @@
</el-select>
</el-form-item>
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="考试时间" prop="examTime">
<el-date-picker clearable v-model="queryParams.examTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" style="width: 200px;">
<el-form-item label="考试开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" style="width: 190px;">
</el-date-picker>
</el-form-item>
<el-form-item label="考试类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择" style="width: 100%;">
<el-form-item label="考试结束时间" prop="endTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" style="width: 190px;">
</el-date-picker>
</el-form-item>
<el-form-item label="考试类型" prop="examType">
<el-select v-model="queryParams.examType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.exam_typeda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="class">
<el-input v-model="queryParams.class" placeholder="请输入班级" clearable @keyup.enter.native="handleQuery" />
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级类型" prop="classType">
<el-select v-model="queryParams.classType" placeholder="请选择" style="width: 100%;">
......@@ -91,19 +101,45 @@
<el-table :data="achievementsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" />
<el-table-column label="学期" align="center" prop="semester" />
<el-table-column label="学期" align="center" prop="semester">
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="考试时间" align="center" prop="examTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.examTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="考试类型" align="center" prop="examType" />
<el-table-column label="考试类型" align="center" prop="examType">
<template slot-scope="scope">
<dict-tag :options="dict.type.exam_typeda" :value="scope.row.examType" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" />
<el-table-column label="年级" align="center" prop="grade" />
<el-table-column label="年级" align="center" prop="grade">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="userName" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="班级" align="center" prop="class" />
<el-table-column label="班级类型" align="center" prop="classType" />
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className">
</el-table-column>
<el-table-column label="班级类型" align="center">
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="考核分" align="center" prop="assessmentScore" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
......@@ -117,19 +153,44 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel">
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
<!-- 添加或修改教学成绩对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="year">
<el-input v-model="form.year" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semster">
<el-select v-model="form.semster" placeholder="请选择" style="width: 100%;">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
......@@ -145,10 +206,11 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="考试类型" prop="type">
<el-select v-model="form.type" placeholder="请选择" style="width: 100%;">
<el-form-item label="考试类型" prop="examType">
<el-select v-model="form.examType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.exam_typeda" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -156,14 +218,19 @@
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-input v-model="form.year" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
<el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -191,15 +258,15 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级" prop="class">
<el-input v-model="form.class" placeholder="请输入班级" />
<el-form-item label="班级" prop="className">
<el-input v-model="form.className" placeholder="请输入班级" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.classType" multiple placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -208,7 +275,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="考核分" prop="assessmentScore">
<el-input v-model="form.assessmentScore" placeholder="请输入考核分" />
<el-input v-model="form.assessmentScore" placeholder="请输入考核分" type="number" />
</el-form-item>
</el-col>
</el-row>
......@@ -225,13 +292,34 @@
</template>
<script>
// import { listAchievements, getAchievements, delAchievements, addAchievements, updateAchievements } from "@/api/system/achievements";
import { listAchievements, getAchievements, delAchievements, addAchievements, updateAchievements } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teachingAchievements";
import { checkIdcard } from "@/utils/utilLibrary/validate";
import { getToken } from '@/utils/auth'
export default {
name: "Achievements",
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type'],
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda'],
data() {
return {
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/system/achievements/importData",
},
uploadForm: {
},
// 遮罩层
loading: true,
// 选中数组
......@@ -246,9 +334,7 @@ export default {
total: 0,
// 教学成绩表格数据
achievementsList: [
{
year: 2015
}
],
// 弹出层标题
title: "",
......@@ -258,19 +344,18 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
examTime: null,
examType: null,
year: null,
grade: null,
userId: null,
userName: null,
idCard: null,
sub: null,
class: null,
classType: null,
assessmentScore: null,
userName: "",
schoolYear: "",
semester: "",
year: "",
grade: "",
sub: "",
startTime: "",
endTime: "",
examType: "",
className: "",
classType: "",
assessmentScore: "",
},
// 表单参数
form: {},
......@@ -304,7 +389,7 @@ export default {
sub: [
{ required: true, message: "学科不能为空", trigger: "change" }
],
class: [
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
classType: [
......@@ -320,7 +405,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询教学成绩列表 */
......@@ -351,26 +436,75 @@ export default {
userName: null,
idCard: null,
sub: null,
class: null,
className: null,
classType: null,
assessmentScore: null,
remark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit()
},
//下载模版
importTemplate() {
this.download(
"/system/achievements/importTemplate",
{},
`教学成绩_${Date.now()}.xlsx`
);
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
getSelectedTypes(classType) {
return this.dict.type.class_type.filter(option => classType.split(',').includes(option.value.toString()));
},
/** 导入按钮操作 */
handleImport(row) {
this.reset();
this.title = "导入"
this.uploadOpen = true
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
// console.log(event, file, fileList);
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false
this.upload.isUploading = false
this.$refs.upload.clearFiles()
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', { dangerouslyUseHTMLString: true })
this.getList()
},
cancelFile() {
this.uploadOpen = false
this.upload.isUploading = false
this.$refs.upload.clearFiles()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams = {
pageNum: 1,
pageSize: 10,
userName: "",
schoolYear: "",
semester: "",
year: "",
grade: "",
sub: "",
startTime: "",
endTime: "",
examType: "",
className: "",
classType: "",
assessmentScore: "",
},
this.resetForm("queryParams");
this.handleQuery();
},
// 多选框选中数据
......@@ -392,21 +526,24 @@ export default {
const id = row.id || this.ids
getAchievements(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.title = "修改教学成绩";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
const classTypeStr = this.form.classType.join(',');
console.log(classTypeStr); // 输出转换后的字符串
if (valid) {
if (this.form.id != null) {
updateAchievements(this.form).then(response => {
updateAchievements({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAchievements(this.form).then(response => {
addAchievements({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -427,9 +564,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/achievements/export', {
this.download('/system/achievements/export', {
...this.queryParams
}, `achievements_${new Date().getTime()}.xlsx`)
}, `教学成绩${new Date().getTime()}.xlsx`)
}
}
};
......
......@@ -2,25 +2,29 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -34,6 +38,7 @@
placeholder="请选择获奖时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
......@@ -43,31 +48,31 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:honors:add']">新增</el-button>
v-hasPermi="['system:awards:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:honors:edit']">修改</el-button>
v-hasPermi="['system:awards:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:honors:remove']">删除</el-button>
v-hasPermi="['system:awards:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:honors:export']">导出</el-button>
v-hasPermi="['system:awards:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" />
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180">
......@@ -90,8 +95,8 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="open" width="1000px" append-to-body>
<!-- 添加或修改教师获奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
......@@ -105,8 +110,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
......@@ -186,11 +194,11 @@
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teacherAwards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Honors",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
name: "Awards",
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
......@@ -208,27 +216,8 @@ export default {
showSearch: true,
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
}],
// 教师获奖表格数据
awardsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -293,21 +282,18 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询综合荣誉列表 */
/** 查询教师获奖列表 */
getList() {
this.loading = true;
listHonors(this.queryParams).then(response => {
this.honorsList = response.rows;
listAwards(this.queryParams).then(response => {
this.awardsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
handleExamine() {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
......@@ -396,16 +382,16 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加综合荣誉";
this.title = "添加教师获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
const id = row.id || this.ids
getHonors(id).then(response => {
getAwards(id).then(response => {
this.form = response.data;
this.title = "修改综合荣誉";
this.title = "修改教师获奖";
});
},
/** 提交按钮 */
......@@ -413,13 +399,13 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateHonors(this.form).then(response => {
updateAwards(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addHonors(this.form).then(response => {
addAwards(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -431,8 +417,8 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除综合荣誉编号为"' + ids + '"的数据项?').then(function () {
return delHonors(ids);
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
......@@ -440,9 +426,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('system/awards/export', {
...this.queryParams
}, `honors_${new Date().getTime()}.xlsx`)
}, `awards_${new Date().getTime()}.xlsx`)
}
}
};
......
......@@ -2,16 +2,12 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
......@@ -19,6 +15,13 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
......@@ -29,9 +32,14 @@
<el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<el-form-item label="获奖开始时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item>
......@@ -39,35 +47,38 @@
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:honors:add']">新增</el-button>
v-hasPermi="['system:awards:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:honors:edit']">修改</el-button>
v-hasPermi="['system:awards:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:honors:remove']">删除</el-button>
v-hasPermi="['system:awards:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:honors:export']">导出</el-button>
v-hasPermi="['system:awards:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="成长类型" align="center">
<template>
<span>讲课获奖</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖类" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" />
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
<el-table-column label="获奖时间" align="center" prop="awardTime" width="180">
......@@ -90,13 +101,13 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="open" width="1000px" append-to-body>
<!-- 添加或修改教师获奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -105,8 +116,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categoriesjs" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
......@@ -169,7 +183,7 @@
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -186,11 +200,11 @@
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { uploadImage as commonUpload } from "@/api/common";
export default {
name: "Honors",
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
name: "Awards",
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
data() {
return {
// 图片上传遮罩层
......@@ -208,26 +222,26 @@ export default {
showSearch: true,
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
// 教师获奖表格数据
awardsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
sub: 1,
awardType: 1,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
}],
// 弹出层标题
title: "",
......@@ -296,21 +310,18 @@ export default {
// this.getList();
},
methods: {
/** 查询综合荣誉列表 */
/** 查询教师获奖列表 */
getList() {
this.loading = true;
listHonors(this.queryParams).then(response => {
this.honorsList = response.rows;
listAwards(this.queryParams).then(response => {
this.awardsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
handleExamine() {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -340,8 +351,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -396,16 +407,16 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加综合荣誉";
this.title = "添加教师获奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
const id = row.id || this.ids
getHonors(id).then(response => {
getAwards(id).then(response => {
this.form = response.data;
this.title = "修改综合荣誉";
this.title = "修改教师获奖";
});
},
/** 提交按钮 */
......@@ -413,13 +424,13 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateHonors(this.form).then(response => {
updateAwards(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addHonors(this.form).then(response => {
addAwards(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -431,8 +442,8 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除综合荣誉编号为"' + ids + '"的数据项?').then(function () {
return delHonors(ids);
this.$modal.confirm('是否确认删除教师获奖编号为"' + ids + '"的数据项?').then(function () {
return delAwards(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
......@@ -440,9 +451,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('system/awards/export', {
...this.queryParams
}, `honors_${new Date().getTime()}.xlsx`)
}, `awards_${new Date().getTime()}.xlsx`)
}
}
};
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="姓名" prop="teacherName">
<el-input v-model="queryParams.teacherName" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" placeholder="请选择" style="width: 190px;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semster" placeholder="请选择">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级类型" prop="classType">
<el-select v-model="queryParams.classType" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="德育考核成绩" prop="moralEduCheckAchievement">
<el-input v-model="queryParams.moralEduCheckAchievement" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="智育考核成绩" prop="intellEduCheckAchievement">
<el-input v-model="queryParams.intellEduCheckAchievement" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:assessment:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:assessment:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:assessment:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport"
v-hasPermi="['system:student:export']">导入
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:assessment:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="assessmentList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" />
<el-table-column label="学期" align="center" prop="semester">
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" />
<el-table-column label="年级" align="center" prop="grade">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" />
<el-table-column label="班级类型" align="center" prop="classType">
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="teacherName" />
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="德育考核成绩" align="center" prop="moralEduCheckAchievement" />
<el-table-column label="智育考核成绩" align="center" prop="intellEduCheckAchievement" />
<el-table-column label="总考核成绩" align="center" prop="totalCheckAchievement" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:assessment:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:assessment:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改班主任考核对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-row>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-input v-model="form.className" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教师姓名" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="德育考核成绩" prop="moralEduCheckAchievement">
<el-input v-model="form.moralEduCheckAchievement" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="智育考核成绩" prop="intellEduCheckAchievement">
<el-input v-model="form.intellEduCheckAchievement" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="总考核成绩" prop="totalCheckAchievement">
<el-input v-model="form.totalCheckAchievement" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" multiple placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel">
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="cancelFile">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAssessment, getAssessment, delAssessment, addAssessment, updateAssessment } from "@/api/smartSchool/electronicArchives/teacherAssessment";
import { getToken } from "@/utils/auth";
export default {
name: "Assessment",
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions'],
data() {
return {
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/assessment/importData",
},
uploadForm: {},
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 班主任考核表格数据
assessmentList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
semester: null,
year: null,
schoolYear: null,
grade: null,
className: null,
teacherName: null,
idCard: null,
moralEduCheckAchievement: null,
intellEduCheckAchievement: null,
totalCheckAchievement: null,
classType: null,
sub: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
semester: [
{ required: true, message: "学期不能为空", trigger: "change" }
],
year: [
{ required: true, message: "届别不能为空", trigger: "change" }
],
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "change" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "change" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
teacherName: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [
{ required: true, message: "身份证号不能为空", trigger: "blur" }
],
moralEduCheckAchievement: [
{ required: true, message: "德育考核成绩不能为空", trigger: "blur" }
],
intellEduCheckAchievement: [
{ required: true, message: "智育考核成绩不能为空", trigger: "blur" }
],
totalCheckAchievement: [
{ required: true, message: "总成绩考核不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询班主任考核列表 */
getList() {
this.loading = true;
listAssessment(this.queryParams).then(response => {
this.assessmentList = response.rows;
this.total = response.total;
this.loading = false;
});
},
getSelectedTypes(classType) {
return this.dict.type.class_type.filter(option => classType.split(',').includes(option.value.toString()));
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
handleImport() {
this.reset();
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
cancelFile() {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
//下载模版
importTemplate() {
this.download(
"/assessment/download",
{},
`班主任考核_${Date.now()}.xlsx`
);
},
// 表单重置
reset() {
this.form = {
id: null,
semester: null,
year: null,
schoolYear: null,
grade: null,
className: null,
teacherName: null,
idCard: null,
moralEduCheckAchievement: null,
intellEduCheckAchievement: null,
totalCheckAchievement: null,
classType: null,
sub: null,
remark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加班主任考核";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAssessment(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.open = true;
this.title = "修改班主任考核";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
const classTypeStr = this.form.classType.join(',');
console.log(classTypeStr); // 输出转换后的字符串
if (valid) {
if (this.form.id != null) {
updateAssessment({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAssessment({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除班主任考核编号为"' + ids + '"的数据项?').then(function () {
return delAssessment(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/assessment/export', {
...this.queryParams
}, `班主任考核_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="89px">
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" placeholder="请选择" style="width: 190px;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semster" placeholder="请选择">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="聘任岗位" prop="appointmentPost">
<el-select v-model="queryParams.appointmentPost" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_positions" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="聘任职务" prop="appointmentPosition">
<el-input v-model="queryParams.appointmentPosition" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级类型" prop="classType">
<el-select v-model="queryParams.classType" multiple placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="证明人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="聘任情况" prop="appointmentSituation">
<el-select v-model="queryParams.appointmentSituation" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_situation" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:aworkload:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:aworkload:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:aworkload:remove']">删除</el-button>
</el-col>
<el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport"
v-hasPermi="['system:student:export']">导入
</el-button>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:aworkload:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="aworkloadList" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'schoolYear', order: 'descending' }">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" width="90px" fixed="left" sortable />
<el-table-column label="学期" align="center" prop="semester" fixed="left" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" fixed="left" sortable />
<el-table-column label="年级" align="center" prop="grade" fixed="left" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="name" sortable />
<el-table-column label="学科" align="center" prop="sub" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="聘任岗位" align="center" prop="appointmentPost" sortable width="120px">
<template slot-scope="scope">
<dict-tag :options="dict.type.appointment_positions" :value="scope.row.appointmentPost" />
</template>
</el-table-column>
<el-table-column label="聘任职务" align="center" prop="appointmentPosition" sortable width="120px" />
<el-table-column label="聘任情况" align="center" prop="appointmentSituation" sortable width="120px" />
<el-table-column label="班级" align="center" prop="className" sortable />
<el-table-column label="班级类型" align="center" prop="classType" width="120px" sortable>
<template slot-scope="scope">
<span v-if="getSelectedTypes(scope.row.classType).length > 0">
<span v-for="(option, index) in getSelectedTypes(scope.row.classType)" :key="index">
{{ option.label }}
<span v-if="index !== getSelectedTypes(scope.row.classType).length - 1">, </span>
</span>
</span>
</template>
</el-table-column>
<el-table-column label="早读" align="center" prop="earlyReading" sortable />
<el-table-column label="正课" align="center" prop="requiredCourses" sortable />
<el-table-column label="晚自习" align="center" prop="eveningSelfStudy" sortable width="120px" />
<el-table-column label="合计" align="center" prop="amountTo" sortable />
<el-table-column label="证明人" align="center" prop="userName" width="120px" fixed="right" sortable />
<el-table-column label="备注" align="center" prop="remark" fixed="right" sortable />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120px" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"
v-hasPermi="['system:aworkload:edit']">修改</el-button>
<el-button size="mini" type="text" @click="handleLook(scope.row)"
v-hasPermi="['system:aworkload:edit']">详情</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:aworkload:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改工作量信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任岗位" prop="appointmentPost">
<el-select v-model="form.appointmentPost" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_positions" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="聘任职务" prop="appointmentPosition">
<el-input v-model="form.appointmentPosition" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任情况" prop="appointmentSituation">
<el-select v-model="form.appointmentSituation" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_situation" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-input v-model="form.className" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" multiple placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="早读" prop="earlyReading">
<el-input v-model="form.earlyReading" placeholder="请输入早读" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="正课" prop="requiredCourses">
<el-input v-model="form.requiredCourses" placeholder="请输入正课" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="晚自习" prop="eveningSelfStudy">
<el-input v-model="form.eveningSelfStudy" placeholder="请输入晚自习" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证明人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入证明人" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 修改工作量信息对话框 -->
<el-dialog :title="title" :visible.sync="edit" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任岗位" prop="appointmentPost">
<el-select v-model="form.appointmentPost" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_positions" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="聘任职务" prop="appointmentPosition">
<el-input v-model="form.appointmentPosition" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任情况" prop="appointmentSituation">
<el-select v-model="form.appointmentSituation" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_situation" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-input v-model="form.className" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" multiple placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="早读" prop="earlyReading">
<el-input v-model="form.earlyReading" placeholder="请输入早读" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="正课" prop="requiredCourses">
<el-input v-model="form.requiredCourses" placeholder="请输入正课" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="晚自习" prop="eveningSelfStudy">
<el-input v-model="form.eveningSelfStudy" placeholder="请输入晚自习" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合计" prop="amountTo">
<el-input v-model="form.amountTo" placeholder="请输入合计" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="证明人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入证明人" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!--查看工作量信息对话框 -->
<el-dialog :title="title" :visible.sync="look" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任岗位" prop="appointmentPost">
<el-select v-model="form.appointmentPost" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_positions" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="聘任职务" prop="appointmentPosition">
<el-input v-model="form.appointmentPosition" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="聘任情况" prop="appointmentSituation">
<el-select v-model="form.appointmentSituation" placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.appointment_situation" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-input v-model="form.className" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" multiple placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="早读" prop="earlyReading">
<el-input v-model="form.earlyReading" placeholder="请输入早读" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="正课" prop="requiredCourses">
<el-input v-model="form.requiredCourses" placeholder="请输入正课" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="晚自习" prop="eveningSelfStudy">
<el-input v-model="form.eveningSelfStudy" placeholder="请输入晚自习" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合计" prop="amountTo">
<el-input v-model="form.amountTo" placeholder="请输入合计" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="证明人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入证明人" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel">
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="cancelFile">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAworkload, getAworkload, delAworkload, addAworkload, updateAworkload } from "@/api/smartSchool/electronicArchives/workloadInformation";;
import { getToken } from "@/utils/auth";
export default {
name: "Aworkload",
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions'],
data() {
return {
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/aworkload/importData",
},
uploadForm: {},
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 工作量信息表格数据
aworkloadList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: false,
edit: false,
isEdit: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
name: null,
sub: null,
idCard: null,
appointmentPost: null,
appointmentPosition: null,
appointmentSituation: null,
className: null,
classType: null,
earlyReading: null,
requiredCourses: null,
eveningSelfStudy: null,
userId: null,
userName: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "change" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "change" }
],
year: [
{ required: true, message: "届别不能为空", trigger: "change" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "change" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
idCard: [
{ required: true, message: "身份证号不能为空", trigger: "blur" }
],
appointmentPost: [
{ required: true, message: "聘任岗位不能为空", trigger: "blur" }
],
earlyReading: [
{ required: true, message: "早读不能为空", trigger: "blur" }
],
requiredCourses: [
{ required: true, message: "正读不能为空", trigger: "blur" }
],
eveningSelfStudy: [
{ required: true, message: "晚自习不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "证明人不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询工作量信息列表 */
getList() {
listAworkload(this.queryParams).then(response => {
this.aworkloadList = response.rows;
this.total = response.total;
this.loading = false;
});
},
getSelectedTypes(classType) {
return this.dict.type.class_type.filter(option => classType.split(',').includes(option.value.toString()));
},
handleImport() {
this.reset();
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
cancelFile() {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
//下载模版
importTemplate() {
this.download(
"/aworkload/download",
{},
`教师基础信息_${Date.now()}.xlsx`
);
},
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.edit = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
name: null,
sub: null,
idCard: null,
appointmentPost: null,
appointmentPosition: null,
appointmentSituation: null,
className: null,
classType: null,
earlyReading: null,
requiredCourses: null,
eveningSelfStudy: null,
userId: null,
userName: null,
remark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加工作量信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAworkload(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.edit = true;
this.title = "修改工作量信息";
});
},
/** 查看按钮操作 */
handleLook(row) {
this.reset();
const id = row.id || this.ids
this.isEdit = true;
getAworkload(id).then(response => {
this.form = response.data;
this.form.classType = this.form.classType.split(',');
this.look = true;
this.title = "查看工作量信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
const classTypeStr = this.form.classType.join(',');
console.log(classTypeStr); // 输出转换后的字符串
if (valid) {
if (this.form.id != null) {
updateAworkload({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("修改成功");
this.edit = false;
this.getList();
});
} else {
addAworkload({ ...this.form, classType: classTypeStr }).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除工作量信息编号为"' + ids + '"的数据项?').then(function () {
return delAworkload(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/aworkload/download', {
...this.queryParams
}, `工作量信息_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub">
<el-select v-model="queryParams.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable @keyup.enter.native="handleQuery"
style="width: 220px;" />
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardRank" placeholder="请选择">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardLevel" placeholder="请选择">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -29,9 +29,14 @@
<el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<el-form-item label="获奖开始时间" prop="startTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="endTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item>
......@@ -39,17 +44,12 @@
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:honors:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:honors:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:honors:remove']">删除</el-button>
</el-col>
......@@ -62,11 +62,27 @@
<el-table :data="honorsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类型" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="成长类型" align="center" prop="type">
<template>
<span>综合荣誉</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="综合荣誉-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -77,10 +93,16 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:honors:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button>
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">修改</el-button>
<el-button size="mini" type="text" @click="handleLook(scope.row)" v-hasPermi="['system:honors:edit']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '1' || scope.row.auditState === '3' || scope.row.auditState === '2'">查看</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']"
v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">删除</el-button>
<el-button size="mini" type="text" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']" v-if="scope.row.auditState === '0'">提交</el-button>
</template>
</el-table-column>
</el-table>
......@@ -90,11 +112,11 @@
<!-- 添加或修改综合荣誉对话框 -->
<el-dialog title="详细信息" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -103,7 +125,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入获奖类别" clearable
<el-input v-model="form.awardType" placeholder="请输入获奖类别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
......@@ -136,7 +158,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-input v-model="form.userName" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -163,11 +185,12 @@
</el-row>
<el-row>
<el-col :span="12" class="custom-margin">
<el-form-item label="证书图片" prop="photo">
<el-form-item label="证书图片" prop="pictureUrl"
:rules="[{ required: true, message: '证书图片不能为空', trigger: 'blur' }]">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -176,21 +199,42 @@
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
<el-button v-if="isEdit === false" type="primary" @click="submitForm"></el-button>
<el-button @click="cancel">{{ isEdit ? '取消' : '关闭' }}</el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
// import { listHonors, getHonors, delHonors, addHonors, updateHonors } from "@/api/system/honors";
import { listHonorsgr, getHonors, delHonors, addHonors, updateHonors, audit } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Honors",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
data() {
return {
isEdit: false,
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
......@@ -207,45 +251,23 @@ export default {
// 总条数
total: 0,
// 综合荣誉表格数据
honorsList: [{
id: 1,
sub: "语文",
awardType: "国家级",
awardRank: "国家级",
awardLevel: "国家级",
resultName: "成果名称",
userId: "1",
userName: "获奖人",
org: "主办单位",
awardTime: "2020-01-01",
remark: "备注",
pictureName: "证书图片名称",
pictureUrl: "证书图片地址",
createBy: "创建人",
createTime: "2020-01-01",
updateBy: "修改人",
updateTime: "2020-01-01",
delFlag: "0"
}],
honorsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
look: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
pictureName: null,
pictureUrl: null,
sub: "",
awardType: "",
awardRank: "",
awardLevel: "",
userName: "",
startTime: "",
endTime: "",
},
// 表单参数
form: {},
......@@ -266,9 +288,6 @@ export default {
resultName: [
{ required: true, message: "成果名称不能为空", trigger: "blur" }
],
userId: [
{ required: true, message: "获奖人id不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "获奖人不能为空", trigger: "blur" }
],
......@@ -278,37 +297,49 @@ export default {
awardTime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" }
],
pictureName: [
{ required: true, message: "证书图片名称不能为空", trigger: "blur" }
],
pictureUrl: [
{ required: true, message: "证书图片地址不能为空", trigger: "blur" }
{ required: true, message: "证书图片不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
}
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询综合荣誉列表 */
getList() {
this.loading = true;
listHonors(this.queryParams).then(response => {
listHonorsgr(this.queryParams).then(response => {
this.honorsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
handleExamine() {
//提交
handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditState: '1'
};
return audit(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -338,8 +369,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -348,6 +379,7 @@ export default {
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
// 表单重置
......@@ -393,6 +425,9 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.isEdit = false;
this.form.userName = this.$store.state.user.name;
this.open = true;
this.title = "添加综合荣誉";
},
......@@ -400,14 +435,83 @@ export default {
handleUpdate(row) {
this.reset();
this.open = true;
this.isEdit = false;
const id = row.id || this.ids
getHonors(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "修改综合荣誉";
});
},
// 查看按钮操作
handleLook(row) {
this.reset();
this.open = true;
this.isEdit = true;
const id = row.id || this.ids
getHonors(id).then(response => {
this.form = response.data;
this.pictureUrl = this.pev + this.form.pictureUrl
this.title = "查看综合荣誉";
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log('form.userName', this.form.userName);
if (this.form.userName) {
console.log('有值', this.form.userName == "");
} else {
console.log('没值', this.form.userName);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
}
},
// openSelect(title, method, type) {
// console.log(1);
// console.log('form.userName', this.form.userName);
// if (!this.form.id) {
// console.log('新增操作');
// if (Object.keys(this.form).some(key => this.form[key])) {
// console.log('有值', this.form.userName);
// } else {
// console.log('没值', this.form.userName);
// this.selectHandles.open = true;
// this.selectHandles.title = title;
// this.selectHandles.method = method;
// this.selectHandles.type = type;
// }
// } else {
// console.log('修改操作');
// this.selectHandles.open = true;
// this.selectHandles.title = title;
// this.selectHandles.method = method;
// this.selectHandles.type = type;
// }
// },
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
/** 提交按钮 */
submitForm() {
this.form.auditState = '0';
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
......@@ -438,9 +542,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/honors/export', {
this.download('/system/honors/exportGr', {
...this.queryParams
}, `honors_${new Date().getTime()}.xlsx`)
}, `综合荣誉_${new Date().getTime()}.xlsx`)
}
}
};
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
......@@ -3,28 +3,28 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_categories" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -67,11 +67,31 @@
<el-table :data="worksList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类型" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="成长类型" align="center">
<template>
<span>论文论著</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categories" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank">
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -86,6 +106,8 @@
v-hasPermi="['system:honors:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button>
</template>
</el-table-column>
</el-table>
......@@ -99,7 +121,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -143,8 +165,9 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-form-item label="获奖人">
<el-input v-model="form.userName" placeholder="请选择分管领导"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -175,7 +198,7 @@
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -188,17 +211,34 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 选择对应处理人 -->
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
// import { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/system/works";
import { listWorks, getWorks, delWorks, addWorks, updateWorks } from "@/api/smartSchool/electronicArchives/professionalDevelopment/essaysWritings";;
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Works",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categories', 'awards_level', 'award_rank'],
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 遮罩层
loading: true,
// 选中数组
......@@ -214,26 +254,7 @@ export default {
// 图片上传遮罩层
uploadLoading: false,
// 论文著作表格数据
worksList: [{
id: 1,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
}],
worksList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -303,7 +324,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询论文著作列表 */
......@@ -315,6 +336,31 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log(1);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
// 取消按钮
cancel() {
this.open = false;
......@@ -322,7 +368,7 @@ export default {
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -352,8 +398,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -447,9 +493,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/works/export', {
this.download('/system/works/export', {
...this.queryParams
}, `works_${new Date().getTime()}.xlsx`)
}, `论文论著_${new Date().getTime()}.xlsx`)
}
}
};
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖类别" prop="awardType">
<el-select v-model="form.awardType" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardType" placeholder="请选择" style="width: 220px">
<el-option v-for="dict in dict.type.award_categoriesjk" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -24,7 +24,7 @@
</el-form-item>
<el-form-item label="获奖等级" prop="awardLevel">
<el-select v-model="form.awardLevel" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardLevel" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -33,9 +33,14 @@
<el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<el-form-item label="获奖开始时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item>
......@@ -66,11 +71,31 @@
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类型" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="成长类型" align="center">
<template>
<span>讲课获奖</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjk" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank">
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="讲课获奖-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -85,6 +110,8 @@
v-hasPermi="['system:honors:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button>
</template>
</el-table-column>
</el-table>
......@@ -98,7 +125,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -145,7 +172,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-input v-model="form.userName" placeholder="请选择分管领导"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -176,7 +204,7 @@
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -189,17 +217,32 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/lectureAwards";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Awards",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categoriesjk', 'awards_level', 'award_rank'],
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
......@@ -216,26 +259,7 @@ export default {
// 总条数
total: 0,
// 讲课获奖表格数据
awardsList: [{
id: 1,
sub: null,
awardType: null,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
upateBy: null,
updateTime: null,
delFlag: null
}],
awardsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -301,7 +325,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
......@@ -314,10 +338,36 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log(1);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
// 上传前格式和图片大小限制
......@@ -346,8 +396,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -446,9 +496,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/awards/export', {
this.download('/system/awards/export', {
...this.queryParams
}, `awards_${new Date().getTime()}.xlsx`)
}, `讲课获奖_${new Date().getTime()}.xlsx`)
}
}
};
......
<template>
<el-dialog :visible.sync="openDialog" :title="title" :width="width" @close="dialogClose">
<!-- 模糊查询-->
<el-form :model="form" ref="form" size="small" inline>
<el-form-item prop="userName" label="姓名">
<el-input v-model.trim="form.userName" placeholder="请输入姓名" clearable
@keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item prop="phone" label="联系电话">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="search" type="primary" icon="el-icon-search" size="mini">搜索</el-button>
<el-button @click="reset" icon="el-icon-refresh" size="mini">重置</el-button>
</el-form-item>
</el-form>
<!-- 列表数据-->
<el-table ref="tableList" v-loading="loading" :data="userList" @selection-change="selectionChange"
@row-click="rowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column key="userName" prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column key="phone" prop="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<!-- 分页-->
<pagination v-show="total > 0" :total="total" :limit.sync="form.pageSize" :page.sync="form.pageNum"
@pagination="search"></pagination>
<!-- 底部-->
<div slot="footer">
<el-button :disabled="!selectUser" @click="submit" type="primary" size="small">确 定</el-button>
<el-button @click="quit" size="small">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { getUserList } from "@/api/smartSchool/electronicArchives/professionalDevelopment/comprehensiveHonors";
export default {
name: "SelectUser",
dicts: ['sys_user_sex'],
props: {
open: {
type: Boolean,
require: true
},
title: {
type: String,
default: ''
},
width: {
type: [Number, String],
default: '50%'
},
execute: {
type: [String]
},
// 选择级部、处室主任
id: {
type: [Number, String]
}
},
data() {
return {
baseURL: process.env.VUE_APP_BASE_API,
form: {
userName: '',
phone: '',
pageNum: 1,
pageSize: 10
},
total: 0,
loading: false,
userList: [],
selectUser: null
}
},
computed: {
openDialog: {
get() {
return this.open;
},
set(value) {
this.$emit('update:open', value);
}
}
},
watch: {
open(value) {
if (value) {
this.$nextTick(() => {
this.reset();
})
}
}
},
methods: {
/** 搜索(交给子组件维护,当然也可以把接口交给父组件处理) */
async search() {
if (isNaN(Number(this.id))) {
console.error('Invalid ID');
return;
}
try {
this.loading = true;
const response = await this[this.execute]({ applyOrgid: this.id, ...this.form });
this.userList = response.rows || [];
this.total = response.total;
this.loading = false;
} catch (exception) {
this.loading = false;
throw new Error(exception);
}
},
/** 重置表单 */
reset() {
this.form = {
teacherName: '',
teacherTel: '',
pageNum: 1,
pageSize: 10
};
this.resetForm('form');
this.search();
},
/** 选项选中发生变化 */
selectionChange(selections) {
this.selectUser = selections[0];
},
/** 点击选中、取消 */
rowClick(row, column) {
console.log('row', row);
this.$refs['tableList'].clearSelection();
this.$refs['tableList'].toggleRowSelection(row, true);
},
/** 提交选中 */
submit() {
this.$emit('select', {
id: this.selectUser.userId,
name: this.selectUser.userName,
tel: this.selectUser.phone
});
this.quit();
},
/** 取消 */
quit() {
this.openDialog = false;
},
/** 分管领导、主要领导 */
leaderList(form) {
return getUserList(form);
},
dialogClose() {
this.userList = []
}
}
}
</script>
<style scoped>
.footer {
display: flex;
justify-content: center;
margin-top: 30px;
}
.radius-image {
border-radius: 40px;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.sub" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="获奖级别" prop="awardRank">
<el-select v-model="form.awardRank" placeholder="请选择" style="width: 100%;">
<el-select v-model="queryParams.awardRank" placeholder="请选择" style="width: 220px;">
<el-option v-for="dict in dict.type.awards_level" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -33,9 +33,14 @@
<el-form-item label="获奖人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入获奖人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="获奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择获奖时间">
<el-form-item label="获奖开始时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item label="获奖结束时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择">
</el-date-picker>
</el-form-item>
......@@ -67,11 +72,31 @@
<el-table :data="awardsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="成长类型" align="center" prop="id" />
<el-table-column label="学科" align="center" prop="sub" />
<el-table-column label="获奖类别" align="center" prop="awardType" />
<el-table-column label="获奖等级" align="center" prop="awardLevel" />
<el-table-column label="获奖级别" align="center" prop="awardRank" />
<el-table-column label="成长类型" align="center">
<template>
<span>教学获奖</span>
</template>
</el-table-column>
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="scope">
<dict-tag :options="dict.type.teaching_subjects" :value="scope.row.sub" />
</template>
</el-table-column>
<el-table-column label="获奖类别" align="center" prop="awardType">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_categoriesjs" :value="scope.row.awardType" />
</template>
</el-table-column>
<el-table-column label="获奖等级" align="center" prop="awardLevel">
<template slot-scope="scope">
<dict-tag :options="dict.type.award_rank" :value="scope.row.awardLevel" />
</template>
</el-table-column>
<el-table-column label="获奖级别" align="center" prop="awardRank">
<template slot-scope="scope">
<dict-tag :options="dict.type.awards_level" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="教学获奖-成果名称" align="center" prop="resultName" />
<el-table-column label="获奖人" align="center" prop="userName" />
<el-table-column label="主办单位" align="center" prop="org" />
......@@ -86,6 +111,8 @@
v-hasPermi="['system:honors:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:honors:remove']">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleExamine(scope.row)"
v-hasPermi="['system:honors:remove']">审核</el-button>
</template>
</el-table-column>
</el-table>
......@@ -99,7 +126,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.teachingSubject" placeholder="请选择" style="width: 100%;">
<el-select v-model="form.sub" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.teaching_subjects" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
......@@ -144,7 +171,9 @@
</el-col>
<el-col :span="12">
<el-form-item label="获奖人" prop="userName">
<el-input v-model="form.userName" placeholder="请输入获奖人" />
<el-input v-model="form.userName" placeholder="请选择分管领导"
@input="openSelect('选择分管领导', 'leaderList', 2)"
@focus="openSelect('选择分管领导', 'leaderList', 2)"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -175,7 +204,7 @@
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="uploadImage">
<img v-if="form.photoUrl" :src="baseUrl + form.photoUrl"
<img v-if="form.pictureUrl" :src="baseUrl + form.pictureUrl"
style="max-width: 100%; max-height: 100%" class="avatar" alt="" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -188,17 +217,32 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<SelectUser :id="selectHandles.id" :open.sync="selectHandles.open" :title="selectHandles.title"
:width="selectHandles.width" :execute="selectHandles.method" @select="selectUser"></SelectUser>
</div>
</template>
<script>
// import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/system/awards";
import { listAwards, getAwards, delAwards, addAwards, updateAwards } from "@/api/smartSchool/electronicArchives/professionalDevelopment/teacherAwards";
import { uploadImage as commonUpload } from "@/api/common";
import SelectUser from "./components/SelectUser";
export default {
name: "Awards",
components: {
SelectUser,
},
dicts: ["teaching_subjects", 'award_categoriesjs', 'awards_level', 'award_rank'],
data() {
return {
// 选择对应处理人
selectHandles: {
id: null,
open: false,
title: '',
width: '50%',
method: null,
type: null // 处理类型: 1 级部/处室; 2 分管; 3 主管
},
// 图片上传遮罩层
uploadLoading: false,
baseUrl: [process.env.VUE_APP_BASE_API],
......@@ -215,26 +259,7 @@ export default {
// 总条数
total: 0,
// 教师获奖表格数据
awardsList: [{
id: 1,
sub: 1,
awardType: 1,
awardRank: null,
awardLevel: null,
resultName: null,
userId: null,
userName: null,
org: null,
awardTime: null,
remark: null,
pictureName: null,
pictureUrl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
delFlag: null
}],
awardsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -299,7 +324,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 查询教师获奖列表 */
......@@ -311,9 +336,34 @@ export default {
this.loading = false;
});
},
// 选择处理人:打开对话框
openSelect(title, method, type) {
console.log(1);
this.selectHandles.open = true;
this.selectHandles.title = title;
this.selectHandles.method = method;
this.selectHandles.type = type;
},
// 选择处理人
selectUser(select) {
this.$set(this.form, `userName${this.selectHandles.type}`, select.name);
console.log(select.name);
this.$set(this.form, `userId${this.selectHandles.type}`, select.id);
console.log(select.id);
// 设置顶层的 userName 和 userId 字段
this.form.userName = select.name;
console.log(124, this.form.userName);
console.log(select);
this.form.userId = select.id;
console.log(this.form.userId, 'this.form.userId');
// 重新赋值选中的 id
this.selectUser.id = select.id;
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.photoUrl = res.data.url;
this.pictureUrl = res.data.url;
this.commonUpload(file);
},
......@@ -343,8 +393,8 @@ export default {
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.photoUrl = this.pev + response.url;
this.form.photoUrl = response.url;
this.pictureUrl = this.pev + response.url;
this.form.pictureUrl = response.url;
})
.catch((error) => {
this.uploadLoading = false;
......@@ -443,9 +493,9 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('system/awards/export', {
this.download('/school/teacherAwards/export', {
...this.queryParams
}, `awards_${new Date().getTime()}.xlsx`)
}, `教师获奖_${new Date().getTime()}.xlsx`)
}
}
};
......
......@@ -5,22 +5,15 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import yangtz.cs.liu.campus.domain.schoolAnnualAssessment.SchoolAnnualAssessment;
import yangtz.cs.liu.campus.domain.schoolAnnualAssessment.SchoolAnnualAssessmentExport;
import yangtz.cs.liu.campus.domain.teacherFiles.SchoolTeacherBasiclnExport;
import yangtz.cs.liu.campus.service.schoolAnnualAssessment.ISchoolAnnualAssessmentService;
import yangtz.cs.liu.campus.vo.auditorium.SchoolAuditoriumVo;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
......
package yangtz.cs.liu.campus.controller.schoolNewTeacherDzdn;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import com.ruoyi.common.utils.poi.ExcelUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessment;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentReq;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentVo;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolAclassTeacherAssessmentService;
import javax.servlet.http.HttpServletResponse;
/**
* 班主任考核Controller
*
* @author ruoyi
* @date 2023-12-12
*/
@RestController
@RequestMapping("/assessment")
public class SchoolAclassTeacherAssessmentController extends BaseController
{
@Autowired
private ISchoolAclassTeacherAssessmentService schoolAclassTeacherAssessmentService;
private Logger log = LoggerFactory.getLogger(SchoolAworkloadController.class);
/**
* 查询班主任考核列表
*/
@GetMapping("/list")
public TableDataInfo list(SchoolAclassTeacherAssessmentReq req)
{
startPage();
List<SchoolAclassTeacherAssessmentVo> list = schoolAclassTeacherAssessmentService.selectSchoolAclassTeacherAssessmentList(req);
return getDataTable(list);
}
/**
* 获取班主任考核详细信息
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(schoolAclassTeacherAssessmentService.selectSchoolAclassTeacherAssessmentById(id));
}
/**
* 新增班主任考核
*/
@Log(title = "班主任考核", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SchoolAclassTeacherAssessment schoolAclassTeacherAssessment)
{
return toAjax(schoolAclassTeacherAssessmentService.insertSchoolAclassTeacherAssessment(schoolAclassTeacherAssessment));
}
/**
* 修改班主任考核
*/
@Log(title = "班主任考核", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SchoolAclassTeacherAssessment schoolAclassTeacherAssessment)
{
return toAjax(schoolAclassTeacherAssessmentService.updateSchoolAclassTeacherAssessment(schoolAclassTeacherAssessment));
}
/**
* 删除班主任考核
*/
@Log(title = "班主任考核", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(schoolAclassTeacherAssessmentService.deleteSchoolAclassTeacherAssessmentByIds(ids));
}
/**
* 末班下载
* @param response
* @throws Exception
*/
@PostMapping(value = "/download")
public void downloadFile(HttpServletResponse response) throws Exception {
// 以流的形式下载文件。
try {
//读取文件
InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("file/班主任任职导入模板.xlsx");
InputStream fis = new BufferedInputStream(resourceAsStream);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.setHeader("Content-Disposition", "attachment;filename="+java.net.URLEncoder.encode("班主任导入模板.xlsx", "utf-8"));
//response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + buffer.length);
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException e) {
log.info(e.getMessage());
}
}
/**
* 导入
* @param file
* @return
* @throws Exception
*/
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file) throws Exception {
List<SchoolAclassTeacherAssessment> list = new ArrayList<>();
ExcelUtil<SchoolAclassTeacherAssessment> util = new ExcelUtil<SchoolAclassTeacherAssessment>(SchoolAclassTeacherAssessment.class);
List<SchoolAclassTeacherAssessment> detailList = util.importExceltoRow(file.getInputStream(),1);
//1.导入
boolean b = schoolAclassTeacherAssessmentService.saveBatch(detailList);
return AjaxResult.success();
}
/**
* 导出
* @param
* @return
*/
@PostMapping("/export")
public void export(HttpServletResponse response, SchoolAclassTeacherAssessmentReq req ) throws Exception{
List<SchoolAclassTeacherAssessment> schoolAclassTeacherAssessmentVos = schoolAclassTeacherAssessmentService.selectSchoolList(req);
ExcelUtil<SchoolAclassTeacherAssessment> util = new ExcelUtil<>(SchoolAclassTeacherAssessment.class);
util.exportExcel(response, schoolAclassTeacherAssessmentVos, "老师考核");
}
}
package yangtz.cs.liu.campus.controller.schoolNewTeacherDzdn;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.poi.ExcelUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkload;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkloadExport;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkloadVo;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolAworkloadService;
/**
* 工作量信息Controller
*
* @author ruoyi
* @date 2023-12-11
*/
@RestController
@RequestMapping("/aworkload")
public class SchoolAworkloadController extends BaseController
{
@Autowired
private ISchoolAworkloadService schoolAworkloadService;
private Logger log = LoggerFactory.getLogger(SchoolAworkloadController.class);
/**
* 查询工作量信息列表
*/
@GetMapping("/list")
public TableDataInfo list(SchoolAworkload schoolAworkload)
{
startPage();
List<SchoolAworkloadVo> list = schoolAworkloadService.selectSchoolAworkloadList(schoolAworkload);
return getDataTable(list);
}
/**
* 获取工作量信息详细信息
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(schoolAworkloadService.selectSchoolAworkloadById(id));
}
/**
* 新增工作量信息
*/
@Log(title = "工作量信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SchoolAworkload schoolAworkload)
{
return toAjax(schoolAworkloadService.insertSchoolAworkload(schoolAworkload));
}
/**
* 修改工作量信息
*/
@Log(title = "工作量信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SchoolAworkload schoolAworkload)
{
return toAjax(schoolAworkloadService.updateSchoolAworkload(schoolAworkload));
}
/**
* 删除工作量信息
*/
@Log(title = "工作量信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(schoolAworkloadService.deleteSchoolAworkloadByIds(ids));
}
@PostMapping(value = "/download")
public void downloadFile(HttpServletResponse response) throws Exception {
// 以流的形式下载文件。
try {
//读取文件
InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("file/工作量信息导入模板.xlsx");
InputStream fis = new BufferedInputStream(resourceAsStream);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.setHeader("Content-Disposition", "attachment;filename="+java.net.URLEncoder.encode("工作量信息导入模板.xlsx", "utf-8"));
//response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + buffer.length);
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException e) {
log.info(e.getMessage());
}
}
/**
* 导入
* @param file
* @return
* @throws Exception
*/
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file) throws Exception {
List<SchoolAworkload> list = new ArrayList<>();
ExcelUtil<SchoolAworkloadExport> util = new ExcelUtil<SchoolAworkloadExport>(SchoolAworkloadExport.class);
List<SchoolAworkloadExport> detailList = util.importExceltoRow(file.getInputStream(),1);
//1.导入
for (SchoolAworkloadExport date :detailList){
SchoolAworkload schoolAworkload = new SchoolAworkload();
BeanUtils.copyProperties(date,schoolAworkload);
list.add(schoolAworkload);
}
boolean b = schoolAworkloadService.saveBatch(list);
return AjaxResult.success(b);
}
/**
* 导出
* @param
* @return
*/
@PostMapping("/export")
public void export(HttpServletResponse response, SchoolAworkload schoolAworkload ) throws Exception{
List<SchoolAworkloadExport> schoolAworkloadVos = schoolAworkloadService.selectAworkloadList(schoolAworkload);
ExcelUtil<SchoolAworkloadExport> util = new ExcelUtil<>(SchoolAworkloadExport.class);
util.exportExcel(response, schoolAworkloadVos, "工作量内容");
}
}
package yangtz.cs.liu.campus.controller.teacherFiles;
package yangtz.cs.liu.campus.controller.schoolNewTeacherDzdn;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.controller.BaseController;
......@@ -14,16 +13,12 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import yangtz.cs.liu.campus.domain.organization.SchoolOrganizationInfo;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentLedger;
import yangtz.cs.liu.campus.domain.student.SchoolStudentEvaluate;
import yangtz.cs.liu.campus.domain.teacherFiles.SchoolTeacherBasicInformation;
import yangtz.cs.liu.campus.domain.teacherFiles.SchoolTeacherBasiclnExport;
import yangtz.cs.liu.campus.domain.teacherFiles.TeacherFiles;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformation;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformationVo;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasiclnExport;
import yangtz.cs.liu.campus.service.impl.teacherFiles.IdCardNumberUtils;
import yangtz.cs.liu.campus.service.teacherFiles.SchoolTeacherBasichlnformationService;
import yangtz.cs.liu.campus.vo.schoolClass.SchoolClassDrVo;
import yangtz.cs.liu.wechat.controller.api.WxApiController;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.SchoolTeacherBasichlnformationService;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
......@@ -48,9 +43,9 @@ public class SchoolTeacherBasiclnformationController extends BaseController {
* @return
*/
@GetMapping("/list")
public TableDataInfo list(SchoolTeacherBasicInformation information) throws Exception{
public TableDataInfo list(SchoolTeacherBasicInformationVo information) throws Exception{
startPage();
List<SchoolTeacherBasicInformation> list = basichlnformationService.list(information);
List<SchoolTeacherBasicInformationVo> list = basichlnformationService.list(information);
return getDataTable(list);
}
......@@ -59,7 +54,7 @@ public class SchoolTeacherBasiclnformationController extends BaseController {
*/
@GetMapping("/{id}")
public AjaxResult getById(@PathVariable("id") Long id ) throws Exception{
return AjaxResult.success(basichlnformationService.getById(id));
return AjaxResult.success(basichlnformationService.getByIds(id));
}
/**
......@@ -87,6 +82,7 @@ public class SchoolTeacherBasiclnformationController extends BaseController {
*/
@PutMapping("/update")
public AjaxResult update(@RequestBody SchoolTeacherBasicInformation information){
return AjaxResult.success(basichlnformationService.updateById(information));
}
......@@ -161,7 +157,7 @@ public class SchoolTeacherBasiclnformationController extends BaseController {
* @return
*/
@PostMapping("/export")
public void export(HttpServletResponse response,@RequestBody SchoolTeacherBasiclnExport export ) throws Exception{
public void export(HttpServletResponse response, SchoolTeacherBasiclnExport export ) throws Exception{
List<SchoolTeacherBasicInformation> list = new ArrayList<>();
List<SchoolTeacherBasiclnExport> exportList = new ArrayList<>();
ExcelUtil<SchoolTeacherBasiclnExport> util = new ExcelUtil<>(SchoolTeacherBasiclnExport.class);
......@@ -217,6 +213,7 @@ public class SchoolTeacherBasiclnformationController extends BaseController {
.or()
.like(SchoolTeacherBasicInformation::getLastDegree,export.getFirstDegree()));
}
wrapper.eq(SchoolTeacherBasicInformation::getDelFlag,"0");
//查询出来结果复制
List<SchoolTeacherBasicInformation> list1 = basichlnformationService.list(wrapper);
list1.forEach(date->{
......@@ -227,4 +224,14 @@ public class SchoolTeacherBasiclnformationController extends BaseController {
util.exportExcel(response, exportList, "教师基本信息");
}
}
/*
* 批量导入老师照片
* */
@PostMapping("/importTeacherPicture")
public AjaxResult importTeacherPicture(MultipartFile file){
return AjaxResult.success(basichlnformationService.importTeacherPicture(file));
}
}
......@@ -2,6 +2,8 @@ package yangtz.cs.liu.campus.controller.schoolNewTeacherDzdn;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -20,6 +22,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXacademicWorks;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXacademicWorksService;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXacademicWorksVo;
/**
* 论文著作Controller
......@@ -37,29 +40,71 @@ public class SchoolXacademicWorksController extends BaseController
/**
* 查询论文著作列表
*/
// @PreAuthorize("@ss.hasPermi('system:works:list')")
@GetMapping("/list")
public TableDataInfo list(SchoolXacademicWorks schoolXacademicWorks)
public TableDataInfo list(SchoolXacademicWorksVo schoolXacademicWorksVo)
{
startPage();
List<SchoolXacademicWorks> list = schoolXacademicWorksService.selectSchoolXacademicWorksList(schoolXacademicWorks);
List<SchoolXacademicWorksVo> list = schoolXacademicWorksService.selectSchoolXacademicWorksList(schoolXacademicWorksVo);
return getDataTable(list);
}
/**
* 查询论文著作列表(个人)
*/
// @PreAuthorize("@ss.hasPermi('system:works:listGr')")
@GetMapping("/listGr")
public TableDataInfo listGr(SchoolXacademicWorksVo schoolXacademicWorksVo)
{
schoolXacademicWorksVo.setUserId(SecurityUtils.getUserId());
startPage();
List<SchoolXacademicWorksVo> list = schoolXacademicWorksService.selectSchoolXacademicWorksList(schoolXacademicWorksVo);
return getDataTable(list);
}
/**
* 导出论文著作列表(个人)
*/
// @PreAuthorize("@ss.hasPermi('system:works:exportGr')")
@Log(title = "论文著作", businessType = BusinessType.EXPORT)
@PostMapping("/exportGr")
public void exportGr(HttpServletResponse response, @RequestBody SchoolXacademicWorksVo schoolXacademicWorksVo)
{
int i = 0;
schoolXacademicWorksVo.setUserId(SecurityUtils.getUserId());
List<SchoolXacademicWorksVo> list = schoolXacademicWorksService.selectSchoolXacademicWorksList(schoolXacademicWorksVo);
for (SchoolXacademicWorksVo xacademicWorksVo : list) {
i ++;
xacademicWorksVo.setXh(i);
xacademicWorksVo.setGrowthType("论文论著");
}
ExcelUtil<SchoolXacademicWorksVo> util = new ExcelUtil<SchoolXacademicWorksVo>(SchoolXacademicWorksVo.class);
util.exportExcel(response, list, "论文著作数据");
}
/**
* 导出论文著作列表
*/
// @PreAuthorize("@ss.hasPermi('system:works:export')")
@Log(title = "论文著作", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SchoolXacademicWorks schoolXacademicWorks)
public void export(HttpServletResponse response, @RequestBody SchoolXacademicWorksVo schoolXacademicWorksVo)
{
List<SchoolXacademicWorks> list = schoolXacademicWorksService.selectSchoolXacademicWorksList(schoolXacademicWorks);
ExcelUtil<SchoolXacademicWorks> util = new ExcelUtil<SchoolXacademicWorks>(SchoolXacademicWorks.class);
int i = 0;
List<SchoolXacademicWorksVo> list = schoolXacademicWorksService.selectSchoolXacademicWorksList(schoolXacademicWorksVo);
for (SchoolXacademicWorksVo xacademicWorksVo : list) {
i ++;
xacademicWorksVo.setXh(i);
xacademicWorksVo.setGrowthType("论文论著");
}
ExcelUtil<SchoolXacademicWorksVo> util = new ExcelUtil<SchoolXacademicWorksVo>(SchoolXacademicWorksVo.class);
util.exportExcel(response, list, "论文著作数据");
}
/**
* 获取论文著作详细信息
*/
// @PreAuthorize("@ss.hasPermi('system:works:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
......@@ -69,6 +114,7 @@ public class SchoolXacademicWorksController extends BaseController
/**
* 新增论文著作
*/
// @PreAuthorize("@ss.hasPermi('system:works:add')")
@Log(title = "论文著作", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SchoolXacademicWorks schoolXacademicWorks)
......@@ -79,6 +125,7 @@ public class SchoolXacademicWorksController extends BaseController
/**
* 修改论文著作
*/
// @PreAuthorize("@ss.hasPermi('system:works:edit')")
@Log(title = "论文著作", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SchoolXacademicWorks schoolXacademicWorks)
......@@ -89,10 +136,20 @@ public class SchoolXacademicWorksController extends BaseController
/**
* 删除论文著作
*/
// @PreAuthorize("@ss.hasPermi('system:works:remove')")
@Log(title = "论文著作", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(schoolXacademicWorksService.deleteSchoolXacademicWorksByIds(ids));
}
/**
* 审核
*/
// @PreAuthorize("@ss.hasPermi('system:works:audit')")
@PostMapping("/audit")
public AjaxResult audit(@RequestBody SchoolXacademicWorks schoolXacademicWorks){
return toAjax(schoolXacademicWorksService.audit(schoolXacademicWorks));
}
}
......@@ -2,6 +2,8 @@ package yangtz.cs.liu.campus.controller.schoolNewTeacherDzdn;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -20,6 +22,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXcomprehensiveHonors;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXcomprehensiveHonorsService;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXcomprehensiveHonorsVo;
/**
* 综合荣誉Controller
......@@ -37,29 +40,71 @@ public class SchoolXcomprehensiveHonorsController extends BaseController
/**
* 查询综合荣誉列表
*/
// @PreAuthorize("@ss.hasPermi('system:honors:list')")
@GetMapping("/list")
public TableDataInfo list(SchoolXcomprehensiveHonors schoolXcomprehensiveHonors)
public TableDataInfo list(SchoolXcomprehensiveHonorsVo schoolXcomprehensiveHonorsVo)
{
startPage();
List<SchoolXcomprehensiveHonors> list = schoolXcomprehensiveHonorsService.selectSchoolXcomprehensiveHonorsList(schoolXcomprehensiveHonors);
List<SchoolXcomprehensiveHonorsVo> list = schoolXcomprehensiveHonorsService.selectSchoolXcomprehensiveHonorsList(schoolXcomprehensiveHonorsVo);
return getDataTable(list);
}
/**
* 查询综合荣誉列表(个人)
*/
// @PreAuthorize("@ss.hasPermi('system:honors:listGr')")
@GetMapping("/listGr")
public TableDataInfo listGr(SchoolXcomprehensiveHonorsVo schoolXcomprehensiveHonorsVo)
{
schoolXcomprehensiveHonorsVo.setUserId(SecurityUtils.getUserId());
startPage();
List<SchoolXcomprehensiveHonorsVo> list = schoolXcomprehensiveHonorsService.selectSchoolXcomprehensiveHonorsList(schoolXcomprehensiveHonorsVo);
return getDataTable(list);
}
/**
* 导出综合荣誉列表(个人)
*/
// @PreAuthorize("@ss.hasPermi('system:honors:exportGr')")
@Log(title = "综合荣誉", businessType = BusinessType.EXPORT)
@PostMapping("/exportGr")
public void exportGr(HttpServletResponse response, @RequestBody SchoolXcomprehensiveHonorsVo schoolXcomprehensiveHonorsVo)
{
int i = 0;
schoolXcomprehensiveHonorsVo.setUserId(SecurityUtils.getUserId());
List<SchoolXcomprehensiveHonorsVo> list = schoolXcomprehensiveHonorsService.selectSchoolXcomprehensiveHonorsList(schoolXcomprehensiveHonorsVo);
for (SchoolXcomprehensiveHonorsVo xcomprehensiveHonorsVo : list) {
i ++;
xcomprehensiveHonorsVo.setXh(i);
xcomprehensiveHonorsVo.setGrowthType("综合荣誉");
}
ExcelUtil<SchoolXcomprehensiveHonorsVo> util = new ExcelUtil<SchoolXcomprehensiveHonorsVo>(SchoolXcomprehensiveHonorsVo.class);
util.exportExcel(response, list, "综合荣誉数据");
}
/**
* 导出综合荣誉列表
*/
// @PreAuthorize("@ss.hasPermi('system:honors:export')")
@Log(title = "综合荣誉", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SchoolXcomprehensiveHonors schoolXcomprehensiveHonors)
public void export(HttpServletResponse response, @RequestBody SchoolXcomprehensiveHonorsVo schoolXcomprehensiveHonorsVo)
{
List<SchoolXcomprehensiveHonors> list = schoolXcomprehensiveHonorsService.selectSchoolXcomprehensiveHonorsList(schoolXcomprehensiveHonors);
ExcelUtil<SchoolXcomprehensiveHonors> util = new ExcelUtil<SchoolXcomprehensiveHonors>(SchoolXcomprehensiveHonors.class);
int i = 0;
List<SchoolXcomprehensiveHonorsVo> list = schoolXcomprehensiveHonorsService.selectSchoolXcomprehensiveHonorsList(schoolXcomprehensiveHonorsVo);
for (SchoolXcomprehensiveHonorsVo xcomprehensiveHonorsVo : list) {
i ++;
xcomprehensiveHonorsVo.setXh(i);
xcomprehensiveHonorsVo.setGrowthType("综合荣誉");
}
ExcelUtil<SchoolXcomprehensiveHonorsVo> util = new ExcelUtil<SchoolXcomprehensiveHonorsVo>(SchoolXcomprehensiveHonorsVo.class);
util.exportExcel(response, list, "综合荣誉数据");
}
/**
* 获取综合荣誉详细信息
*/
// @PreAuthorize("@ss.hasPermi('system:honors:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
......@@ -69,6 +114,7 @@ public class SchoolXcomprehensiveHonorsController extends BaseController
/**
* 新增综合荣誉
*/
// @PreAuthorize("@ss.hasPermi('system:honors:add')")
@Log(title = "综合荣誉", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SchoolXcomprehensiveHonors schoolXcomprehensiveHonors)
......@@ -79,6 +125,7 @@ public class SchoolXcomprehensiveHonorsController extends BaseController
/**
* 修改综合荣誉
*/
// @PreAuthorize("@ss.hasPermi('system:honors:edit')")
@Log(title = "综合荣誉", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SchoolXcomprehensiveHonors schoolXcomprehensiveHonors)
......@@ -89,10 +136,20 @@ public class SchoolXcomprehensiveHonorsController extends BaseController
/**
* 删除综合荣誉
*/
// @PreAuthorize("@ss.hasPermi('system:honors:remove')")
@Log(title = "综合荣誉", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(schoolXcomprehensiveHonorsService.deleteSchoolXcomprehensiveHonorsByIds(ids));
}
/**
* 审核
*/
// @PreAuthorize("@ss.hasPermi('system:honors:audit')")
@PostMapping("/audit")
public AjaxResult audit(@RequestBody SchoolXcomprehensiveHonors schoolXcomprehensiveHonors){
return toAjax(schoolXcomprehensiveHonorsService.audit(schoolXcomprehensiveHonors));
}
}
......@@ -2,6 +2,8 @@ package yangtz.cs.liu.campus.controller.schoolNewTeacherDzdn;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -20,6 +22,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXlectureAwards;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXlectureAwardsService;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXlectureAwardsVo;
/**
* 讲课获奖Controller
......@@ -37,32 +40,71 @@ public class SchoolXlectureAwardsController extends BaseController
/**
* 查询讲课获奖列表
*/
@PreAuthorize("@ss.hasPermi('system:awards:list')")
// @PreAuthorize("@ss.hasPermi('system:awards:list')")
@GetMapping("/list")
public TableDataInfo list(SchoolXlectureAwards schoolXlectureAwards)
public TableDataInfo list(SchoolXlectureAwardsVo schoolXlectureAwardsVo)
{
startPage();
List<SchoolXlectureAwards> list = schoolXlectureAwardsService.selectSchoolXlectureAwardsList(schoolXlectureAwards);
List<SchoolXlectureAwardsVo> list = schoolXlectureAwardsService.selectSchoolXlectureAwardsList(schoolXlectureAwardsVo);
return getDataTable(list);
}
/**
* 查询讲课获奖列表(个人)
*/
// @PreAuthorize("@ss.hasPermi('system:awards:listGr')")
@GetMapping("/listGr")
public TableDataInfo listGr(SchoolXlectureAwardsVo schoolXlectureAwardsVo)
{
schoolXlectureAwardsVo.setUserId(SecurityUtils.getUserId());
startPage();
List<SchoolXlectureAwardsVo> list = schoolXlectureAwardsService.selectSchoolXlectureAwardsList(schoolXlectureAwardsVo);
return getDataTable(list);
}
/**
* 导出讲课获奖列表(个人)
*/
// @PreAuthorize("@ss.hasPermi('system:awards:exportGr')")
@Log(title = "讲课获奖", businessType = BusinessType.EXPORT)
@PostMapping("/exportGr")
public void exportGr(HttpServletResponse response, @RequestBody SchoolXlectureAwardsVo schoolXlectureAwardsVo)
{
int i = 0;
schoolXlectureAwardsVo.setUserId(SecurityUtils.getUserId());
List<SchoolXlectureAwardsVo> list = schoolXlectureAwardsService.selectSchoolXlectureAwardsList(schoolXlectureAwardsVo);
for (SchoolXlectureAwardsVo xlectureAwardsVo : list) {
i ++;
xlectureAwardsVo.setXh(i);
xlectureAwardsVo.setGrowthType("讲课获奖");
}
ExcelUtil<SchoolXlectureAwardsVo> util = new ExcelUtil<SchoolXlectureAwardsVo>(SchoolXlectureAwardsVo.class);
util.exportExcel(response, list, "讲课获奖数据");
}
/**
* 导出讲课获奖列表
*/
@PreAuthorize("@ss.hasPermi('system:awards:export')")
// @PreAuthorize("@ss.hasPermi('system:awards:export')")
@Log(title = "讲课获奖", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SchoolXlectureAwards schoolXlectureAwards)
public void export(HttpServletResponse response, @RequestBody SchoolXlectureAwardsVo schoolXlectureAwardsVo)
{
List<SchoolXlectureAwards> list = schoolXlectureAwardsService.selectSchoolXlectureAwardsList(schoolXlectureAwards);
ExcelUtil<SchoolXlectureAwards> util = new ExcelUtil<SchoolXlectureAwards>(SchoolXlectureAwards.class);
int i = 0;
List<SchoolXlectureAwardsVo> list = schoolXlectureAwardsService.selectSchoolXlectureAwardsList(schoolXlectureAwardsVo);
for (SchoolXlectureAwardsVo xlectureAwardsVo : list) {
i ++;
xlectureAwardsVo.setXh(i);
xlectureAwardsVo.setGrowthType("讲课获奖");
}
ExcelUtil<SchoolXlectureAwardsVo> util = new ExcelUtil<SchoolXlectureAwardsVo>(SchoolXlectureAwardsVo.class);
util.exportExcel(response, list, "讲课获奖数据");
}
/**
* 获取讲课获奖详细信息
*/
@PreAuthorize("@ss.hasPermi('system:awards:query')")
// @PreAuthorize("@ss.hasPermi('system:awards:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
......@@ -72,7 +114,7 @@ public class SchoolXlectureAwardsController extends BaseController
/**
* 新增讲课获奖
*/
@PreAuthorize("@ss.hasPermi('system:awards:add')")
// @PreAuthorize("@ss.hasPermi('system:awards:add')")
@Log(title = "讲课获奖", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SchoolXlectureAwards schoolXlectureAwards)
......@@ -83,7 +125,7 @@ public class SchoolXlectureAwardsController extends BaseController
/**
* 修改讲课获奖
*/
@PreAuthorize("@ss.hasPermi('system:awards:edit')")
// @PreAuthorize("@ss.hasPermi('system:awards:edit')")
@Log(title = "讲课获奖", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SchoolXlectureAwards schoolXlectureAwards)
......@@ -94,11 +136,20 @@ public class SchoolXlectureAwardsController extends BaseController
/**
* 删除讲课获奖
*/
@PreAuthorize("@ss.hasPermi('system:awards:remove')")
// @PreAuthorize("@ss.hasPermi('system:awards:remove')")
@Log(title = "讲课获奖", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(schoolXlectureAwardsService.deleteSchoolXlectureAwardsByIds(ids));
}
/**
* 审核
*/
// @PreAuthorize("@ss.hasPermi('system:awards:audit')")
@PostMapping("/audit")
public AjaxResult audit(@RequestBody SchoolXlectureAwards schoolXlectureAwards){
return toAjax(schoolXlectureAwardsService.audit(schoolXlectureAwards));
}
}
......@@ -2,7 +2,10 @@ package yangtz.cs.liu.campus.controller.schoolNewTeacherDzdn;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
......@@ -19,6 +22,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXteacherAwards;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXteacherAwardsService;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteacherAwardsVo;
/**
* 教师获奖Controller
......@@ -36,29 +40,71 @@ public class SchoolXteacherAwardsController extends BaseController
/**
* 查询教师获奖列表
*/
// @PreAuthorize("@ss.hasPermi('system:awards:list')")
@GetMapping("/list")
public TableDataInfo list(SchoolXteacherAwards schoolXteacherAwards)
public TableDataInfo list(SchoolXteacherAwardsVo schoolXteacherAwardsVo)
{
startPage();
List<SchoolXteacherAwards> list = schoolXteacherAwardsService.selectSchoolXteacherAwardsList(schoolXteacherAwards);
List<SchoolXteacherAwardsVo> list = schoolXteacherAwardsService.selectSchoolXteacherAwardsList(schoolXteacherAwardsVo);
return getDataTable(list);
}
/**
* 查询教师获奖列表(个人)
*/
// @PreAuthorize("@ss.hasPermi('system:awards:listGr')")
@GetMapping("/listGr")
public TableDataInfo listGr(SchoolXteacherAwardsVo schoolXteacherAwardsVo)
{
schoolXteacherAwardsVo.setUserId(SecurityUtils.getUserId());
startPage();
List<SchoolXteacherAwardsVo> list = schoolXteacherAwardsService.selectSchoolXteacherAwardsList(schoolXteacherAwardsVo);
return getDataTable(list);
}
/**
* 导出教师获奖列表(个人)
*/
// @PreAuthorize("@ss.hasPermi('system:awards:exportGr')")
@Log(title = "教师获奖", businessType = BusinessType.EXPORT)
@PostMapping("/exportGr")
public void exportGr(HttpServletResponse response,@RequestBody SchoolXteacherAwardsVo schoolXteacherAwardsVo)
{
int i = 0;
schoolXteacherAwardsVo.setUserId(SecurityUtils.getUserId());
List<SchoolXteacherAwardsVo> list = schoolXteacherAwardsService.selectSchoolXteacherAwardsList(schoolXteacherAwardsVo);
for (SchoolXteacherAwardsVo xteacherAwardsVo : list) {
i ++;
xteacherAwardsVo.setXh(i);
xteacherAwardsVo.setGrowthType("教学获奖");
}
ExcelUtil<SchoolXteacherAwardsVo> util = new ExcelUtil<SchoolXteacherAwardsVo>(SchoolXteacherAwardsVo.class);
util.exportExcel(response, list, "教师获奖数据");
}
/**
* 导出教师获奖列表
*/
// @PreAuthorize("@ss.hasPermi('system:awards:export')")
@Log(title = "教师获奖", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SchoolXteacherAwards schoolXteacherAwards)
public void export(HttpServletResponse response,@RequestBody SchoolXteacherAwardsVo schoolXteacherAwardsVo)
{
List<SchoolXteacherAwards> list = schoolXteacherAwardsService.selectSchoolXteacherAwardsList(schoolXteacherAwards);
ExcelUtil<SchoolXteacherAwards> util = new ExcelUtil<SchoolXteacherAwards>(SchoolXteacherAwards.class);
int i = 0;
List<SchoolXteacherAwardsVo> list = schoolXteacherAwardsService.selectSchoolXteacherAwardsList(schoolXteacherAwardsVo);
for (SchoolXteacherAwardsVo xteacherAwardsVo : list) {
i ++;
xteacherAwardsVo.setXh(i);
xteacherAwardsVo.setGrowthType("教学获奖");
}
ExcelUtil<SchoolXteacherAwardsVo> util = new ExcelUtil<SchoolXteacherAwardsVo>(SchoolXteacherAwardsVo.class);
util.exportExcel(response, list, "教师获奖数据");
}
/**
* 获取教师获奖详细信息
*/
// @PreAuthorize("@ss.hasPermi('system:awards:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
......@@ -68,6 +114,7 @@ public class SchoolXteacherAwardsController extends BaseController
/**
* 新增教师获奖
*/
// @PreAuthorize("@ss.hasPermi('system:awards:add')")
@Log(title = "教师获奖", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SchoolXteacherAwards schoolXteacherAwards)
......@@ -78,6 +125,7 @@ public class SchoolXteacherAwardsController extends BaseController
/**
* 修改教师获奖
*/
// @PreAuthorize("@ss.hasPermi('system:awards:edit')")
@Log(title = "教师获奖", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SchoolXteacherAwards schoolXteacherAwards)
......@@ -88,10 +136,20 @@ public class SchoolXteacherAwardsController extends BaseController
/**
* 删除教师获奖
*/
// @PreAuthorize("@ss.hasPermi('system:awards:remove')")
@Log(title = "教师获奖", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(schoolXteacherAwardsService.deleteSchoolXteacherAwardsByIds(ids));
}
/**
* 审核
*/
// @PreAuthorize("@ss.hasPermi('system:awards:audit')")
@PostMapping("/audit")
public AjaxResult audit(@RequestBody SchoolXteacherAwards schoolXteacherAwards){
return toAjax(schoolXteacherAwardsService.audit(schoolXteacherAwards));
}
}
package yangtz.cs.liu.campus.controller.schoolNewTeacherDzdn;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
......@@ -18,8 +22,11 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import yangtz.cs.liu.campus.domain.schoolAnnualAssessment.SchoolAnnualAssessment;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXteachingAchievements;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXteachingAchievementsService;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteachingAchievementsVo;
/**
* 教学成绩Controller
......@@ -37,29 +44,61 @@ public class SchoolXteachingAchievementsController extends BaseController
/**
* 查询教学成绩列表
*/
// @PreAuthorize("@ss.hasPermi('system:achievements:list')")
@GetMapping("/list")
public TableDataInfo list(SchoolXteachingAchievements schoolXteachingAchievements)
public TableDataInfo list(SchoolXteachingAchievementsVo schoolXteachingAchievementsVo)
{
startPage();
List<SchoolXteachingAchievements> list = schoolXteachingAchievementsService.selectSchoolXteachingAchievementsList(schoolXteachingAchievements);
List<SchoolXteachingAchievementsVo> list = schoolXteachingAchievementsService.selectSchoolXteachingAchievementsList(schoolXteachingAchievementsVo);
return getDataTable(list);
}
/**
* 导出教学成绩列表
*/
// @PreAuthorize("@ss.hasPermi('system:achievements:export')")
@Log(title = "教学成绩", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SchoolXteachingAchievements schoolXteachingAchievements)
public void export(HttpServletResponse response, @RequestBody SchoolXteachingAchievementsVo schoolXteachingAchievementsVo)
{
List<SchoolXteachingAchievements> list = schoolXteachingAchievementsService.selectSchoolXteachingAchievementsList(schoolXteachingAchievements);
ExcelUtil<SchoolXteachingAchievements> util = new ExcelUtil<SchoolXteachingAchievements>(SchoolXteachingAchievements.class);
int i = 0;
List<SchoolXteachingAchievementsVo> list = schoolXteachingAchievementsService.selectSchoolXteachingAchievementsList(schoolXteachingAchievementsVo);
for (SchoolXteachingAchievementsVo schoolXteachingAchievementsVo1 : list) {
i ++;
schoolXteachingAchievementsVo1.setXh(i);
}
ExcelUtil<SchoolXteachingAchievementsVo> util = new ExcelUtil<SchoolXteachingAchievementsVo>(SchoolXteachingAchievementsVo.class);
util.exportExcel(response, list, "教学成绩数据");
}
/*
* 下载模板
* */
@PostMapping("/importTemplate")
public void importTemplate (HttpServletResponse response) {
schoolXteachingAchievementsService.importTemplate(response);
}
/**
* 导入教学成绩
*/
// @PreAuthorize("@ss.hasPermi('system:achievements:importData')")
@PostMapping("/importData")
@Transactional(rollbackFor = Exception.class)
public AjaxResult importData(MultipartFile file) throws Exception {
ExcelUtil<SchoolXteachingAchievements> util = new ExcelUtil<SchoolXteachingAchievements>(SchoolXteachingAchievements.class);
List<SchoolXteachingAchievements> list = util.importExcelNdkh(file.getInputStream());
//先校验
schoolXteachingAchievementsService.checkImport(list);
//数据导入
String message = schoolXteachingAchievementsService.importData(list);
return AjaxResult.success(message);
}
/**
* 获取教学成绩详细信息
*/
// @PreAuthorize("@ss.hasPermi('system:achievements:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
......@@ -69,6 +108,7 @@ public class SchoolXteachingAchievementsController extends BaseController
/**
* 新增教学成绩
*/
// @PreAuthorize("@ss.hasPermi('system:achievements:add')")
@Log(title = "教学成绩", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SchoolXteachingAchievements schoolXteachingAchievements)
......@@ -79,6 +119,7 @@ public class SchoolXteachingAchievementsController extends BaseController
/**
* 修改教学成绩
*/
// @PreAuthorize("@ss.hasPermi('system:achievements:edit')")
@Log(title = "教学成绩", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SchoolXteachingAchievements schoolXteachingAchievements)
......@@ -89,10 +130,21 @@ public class SchoolXteachingAchievementsController extends BaseController
/**
* 删除教学成绩
*/
// @PreAuthorize("@ss.hasPermi('system:achievements:remove')")
@Log(title = "教学成绩", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(schoolXteachingAchievementsService.deleteSchoolXteachingAchievementsByIds(ids));
}
/**
* 获取所有用户
*/
@GetMapping("/getUserList")
public TableDataInfo getUserList(SysUser sysUser){
startPage();
List<Map<String, Object>> list = schoolXteachingAchievementsService.getUserList(sysUser);
return getDataTable(list);
}
}
......@@ -40,7 +40,6 @@ public class CurriclaStudentVo {
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
* 是否超过选课时间: true超过选课时间,false没有
*/
......
package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 班主任考核对象 school_aclass_teacher_assessment
*
* @author ruoyi
* @date 2023-12-12
*/
@Data
public class SchoolAclassTeacherAssessment extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键id */
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/** 学期(下拉框) */
@Excel(name = "学期",dictType = "semester_jsdzda")
private String semester;
/** 届别(下拉框) */
@Excel(name = "届别",dictType = "rankda")
private String year;
/** 学年(下拉框) */
@Excel(name = "学年",dictType = "yearda")
private String schoolYear;
/** 年级(下拉框) */
@Excel(name = "年级",dictType = "grade_da")
private String grade;
/** 班级(下拉框) */
@Excel(name = "班级",readConverterExp="1=1,2=2,3=3,4=4,5=5,6=6,7=7,8=8,9=9,10=10,11=11,12=12,13=13,14=14,15=15,16=16,17=17,18=18,19=19,20=20,21=21,22=22,23=23,24=24,25=25,26=26,27=27,28=28,29=29,30=30,31=31,32=32,33=33,34=34,35=35,36=36,37=37,38=38,39=39,40=40")
private String className;
/** 教师姓名 */
@Excel(name = "教师姓名")
private String teacherName;
/** 身份证号 */
@Excel(name = "身份证号")
private String idCard;
/** 德育考核成绩 */
@Excel(name = "德育考核成绩")
private BigDecimal moralEduCheckAchievement;
/** 智育考核成绩 */
@Excel(name = "智育考核成绩")
private BigDecimal intellEduCheckAchievement;
/** 总考核成绩 */
@Excel(name = "总考核成绩")
private BigDecimal totalCheckAchievement;
/** 班级类型(下拉框) */
@Excel(name = "班级类型",dictType = "class_type")
private String classType;
/** 学科(下拉框) */
@Excel(name = "学科",dictType = "teaching_subjects")
private String sub;
/** 备注*/
@Excel(name = "备注")
private String remark;
/** 删除状态 */
private String delFlag;
}
package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
/**
* 请求对象
*
* @author ruoyi
* @date 2023-12-12
*/
@Data
public class SchoolAclassTeacherAssessmentReq extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键id */
private Long id;
/** 教师姓名 */
private String teacherName;
/** 学年(下拉框) */
private String schoolYear;
/** 届别(下拉框) */
private String year;
/** 学期(下拉框) */
private String semester;
/** 年级(下拉框) */
private String grade;
/** 学科(下拉框) */
private String sub;
/** 班级(下拉框) */
private String className;
/** 班级类型(下拉框) */
private String classType;
/** 德育考核成绩 =*/
private String moralEduCheckAchievement;
//大于
private BigDecimal moralEduCheckAchievementgt;
//大于等于
private BigDecimal moralEduCheckAchievementgtd;
//小于
private BigDecimal moralEduCheckAchievementlt;
//小于等于
private BigDecimal moralEduCheckAchievementltd;
/** 智育考核成绩= */
private String intellEduCheckAchievement;
//大于
private BigDecimal intellEduCheckAchievementgt;
//大于等于
private BigDecimal intellEduCheckAchievementgtd;
//小于
private BigDecimal intellEduCheckAchievementlt;
//小于等于
private BigDecimal intellEduCheckAchievementltd;
/** 删除状态 */
private String delFlag;
}
package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
/**
* 班主任考核对象 school_aclass_teacher_assessment
*
* @author ruoyi
* @date 2023-12-12
*/
@Data
public class SchoolAclassTeacherAssessmentVo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键id */
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/** 学期(下拉框) */
private String semester;
/** 届别(下拉框) */
private String year;
/** 学年(下拉框) */
private String schoolYear;
/** 年级(下拉框) */
private String grade;
/** 班级(下拉框) */
@Excel(name = "班级",readConverterExp="1=1,2=2,3=3,4=4,5=5,6=6,7=7,8=8,9=9,10=10,11=11,12=12,13=13,14=14,15=15,16=16,17=17,18=18,19=19,20=20,21=21,22=22,23=23,24=24,25=25,26=26,27=27,28=28,29=29,30=30,31=31,32=32,33=33,34=34,35=35,36=36,37=37,38=38,39=39,40=40")
private String className;
/** 班级类型(下拉框) */
private String classType;
/** 教师姓名 */
private String teacherName;
/** 学科(下拉框) */
private String sub;
/** 德育考核成绩 */
private BigDecimal moralEduCheckAchievement;
/** 智育考核成绩 */
private BigDecimal intellEduCheckAchievement;
/** 删除状态 */
private String delFlag;
}
package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 工作量信息对象 school_aworkload
*
* @author ruoyi
* @date 2023-12-11
*/
@Data
public class SchoolAworkload extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键id */
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/** 学年(下拉框) */
private String schoolYear;
/** 学期(下拉框) */
private String semester;
/** 届别(下拉框) */
private String year;
/** 年级(下拉框) */
private String grade;
/** 姓名 */
private String name;
/** 学科(下拉框) */
private String sub;
/** 身份证号 */
private String idCard;
/** 聘任岗位(下拉框) */
private String appointmentPost;
/** 聘任职务 */
private String appointmentPosition;
/** 聘任情况(下拉框) */
private String appointmentSituation;
/** 班级 */
private String className;
/** 班级类型 */
private String classType;
/** 早读 */
private Long earlyReading;
/** 正课 */
private Long requiredCourses;
/** 晚自习 */
private Long eveningSelfStudy;
/** 证明人id */
private Long userId;
/** 证明人 */
private String userName;
/** 删除状态 */
private String delFlag;
/**合计*/
private Long amountTo;
}
package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
/**
* 工作量信息对象 school_aworkload
*
* @author ruoyi
* @date 2023-12-11
*/
@Data
public class SchoolAworkloadExport extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键id */
private Long id;
/** 学年(下拉框) */
@Excel(name = "学年",dictType="yearda")
private String schoolYear;
/** 学期(下拉框) */
@Excel(name = "学期",dictType="semester_jsdzda")
private String semester;
/** 届别(下拉框) */
@Excel(name = "届别",dictType = "rankda")
private String year;
/** 年级(下拉框) */
@Excel(name = "年级",dictType="grade_da")
private String grade;
/** 姓名 */
@Excel(name = "姓名")
private String name;
/** 学科(下拉框) */
@Excel(name = "学科",dictType = "teaching_subjects")
private String sub;
/** 身份证号 */
@Excel(name = "身份证号")
private String idCard;
/** 聘任岗位(下拉框) */
@Excel(name = "聘任岗位",dictType = "appointment_positions")
private String appointmentPost;
/** 聘任职务 */
@Excel(name = "聘任职务")
private String appointmentPosition;
/** 聘任情况(下拉框) */
@Excel(name = "聘任情况",dictType = "appointment_situation")
private String appointmentSituation;
/** 班级 */
@Excel(name = "班级",prompt="多个,中间用英文“,”间隔")
private String className;
/** 班级类型 */
@Excel(name = "班级类型")
private String classType;
/** 早读 */
@Excel(name = "早读")
private Long earlyReading;
/** 正课 */
@Excel(name = "正课")
private Long requiredCourses;
/** 晚自习 */
@Excel(name = "晚自习")
private Long eveningSelfStudy;
/**合计*/
@Excel(name = "合计")
private Long amountTo;
/** 证明人id */
private Long userId;
/** 证明人 */
@Excel(name = "证明人")
private String userName;
@Excel(name = "备注")
private String remark;
/** 删除状态 */
private String delFlag;
}
package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
/**
* 工作量信息对象 school_aworkload
*
* @author ruoyi
* @date 2023-12-11
*/
@Data
public class SchoolAworkloadVo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键id */
private Long id;
/** 学年(下拉框) */
private String schoolYear;
/** 学期(下拉框) */
private String semester;
/** 届别(下拉框) */
private String year;
/** 年级(下拉框) */
private String grade;
/** 姓名 */
private String name;
/** 学科(下拉框) */
private String sub;
/** 聘任岗位(下拉框) */
private String appointmentPost;
/** 聘任职务 */
private String appointmentPosition;
/** 聘任情况(下拉框) */
private String appointmentSituation;
/** 班级 */
private String className;
/** 班级类型 */
private String classType;
/** 早读 */
private Long earlyReading;
/** 正课 */
private Long requiredCourses;
/** 晚自习 */
private Long eveningSelfStudy;
/**合计*/
private Long amountTo;
/** 证明人id */
private Long userId;
/** 证明人 */
private String userName;
/** 删除状态 */
private String delFlag;
}
package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.core.domain.OurBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.NonNull;
import java.util.Date;
/**
* 教师电子档案 老师基础信息
*/
@Data
public class SchoolTeacherBasicInformation extends BaseEntity {
// @Excel(name = "年级",combo = {"一年级","二年级","三年级"},readConverterExp = "1=一年级,2=二年级,3=三年级")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 姓名
*/
private String name;
/**
* 身份证号
*/
private String idCard;
/**
* 年龄 。动态查询
*/
// private Integer age;
/**
* 性别
*/
private String sex;
/**
* 档案出生日期 (年月)
*/
@JsonFormat(pattern = "yyyy-MM")
private Date fileBirthDate;
/**
* 档案年龄
*/
// private Integer fileAge;
/**
* 出生年月
*/
private String birthDate;
/**
* 籍贯
*/
private String hometown;
/**
* 民族
*/
private String nation;
/**
* 政治面貌(1中共党员、2共青团员、3群众、4民主党派成员、5无党派人士)
*/
private String politicalLandscape;
/**
* 入党时间(年月)
*/
@JsonFormat(pattern = "yyyy-MM")
private Date partyMembershipTime;
/**
* 任教学科(1语文、2数学、3英语、4物理、5化学、6生物、7政治、8历史、9地理、10音乐、11体育、12美术、13技术、14心理、15书法)
*/
private String teachingSubject;
/**
* 现职称(1无、2初级、3中级、4副高、5正高)
*/
private String currentProfessionalTitle;
/**
* 现职称取得资格时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date currentProfessionalTitleTime;
/**
* 现聘职称(1无、2初级、3中级、4副高、5正高)
*/
private String currentHiringProfessionalTitle;
/**
* 现职称聘任时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date currentHiringProfessionalTitleTime;
/**
* 现聘岗位(1专业技术岗、2管理岗、3工勤岗)
*/
private String currentPosition;
/**
* 现岗位等级(见习(三个现聘岗位都有见习这个等级 下拉框联动)、专业技术三级-专业技术十三级、
* 管理五级-管理九级、技术工二级-技术工五级)
*/
private String currentJobLevel;
/**
* 现岗位等级聘任时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date currentJobLevelAppointmentTime;
/**
* 职务
*/
private String duties;
/**
* 教师资格种类
*/
private String teacherQualificationType;
/**
* 教师资格证号码
*/
private String teacherQualificationCertificateNum;
/**
* 参加工作时间
*/
private String workingHours;
/**
* 到二中工作时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date toSecondMiddleSchoolTime;
/**
* 二中工作年龄 动态查询
*/
// private Integer toSecondAge;
/**
* 教龄起算时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date lengthOfTeacherTime;
/**
* 工龄起算时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date lengthOfServiceTime;
/**
* 工龄年限
*/
// private Integer seniority;
/**
* 在岗情况(1教学岗位、2教辅岗、3后勤岗、4管理岗、5其他岗、6退休、7行政、8内退岗、9待退岗)
*/
private String onDutySituation;
/**
* 在编情况 1在编 2合同制
*/
private String currentSituation;
/**
* 毕业院校1
*/
private String graduationInstitution1;
/**
* 专业1
*/
private String major1;
/**
* 毕业时间1 年月
*/
@JsonFormat(pattern = "yyyy-MM")
private Date graduationTime1;
/**
* 毕业院校2
*/
private String graduationInstitution2;
/**
* 专业2
*/
private String major2;
/**
* 毕业时间2年月
*/
@JsonFormat(pattern = "yyyy-MM")
private Date graduationTime2;
/**
* 毕业院校3
*/
private String graduationInstitution3;
/**
* 专业3
*/
private String major3;
/**
* 毕业时间3 年月
*/
@JsonFormat(pattern = "yyyy-MM")
private Date graduationTime3;
/**
* 第一学历
*/
private String firstDegree;
/**
* 最后学历
*/
private String lastDegree;
/**
* 学位
*/
private String degree;
/**
* 工作经历
*/
private String workExperience;
/**
* 照片名称
*/
private String photoName;
/**
* 照片地址
*/
private String photoUrl;
/**
* 钉钉手机号
*/
private String ddPhone;
//
// /**
// * 出生日期临时查询参数
// */
// private String birthDategt;
// private String birthDategtd;
// private String birthDatelt;
// private String birthDateltd;
//
// /**
// * 参加工作临时查询参数
// */
// private String workingHoursgt;
// private String workingHoursgtd;
// private String workingHourslt;
// private String workingHoursltd;
}
package yangtz.cs.liu.campus.domain.teacherFiles;
package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.core.domain.OurBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.NonNull;
import java.util.Date;
......@@ -15,7 +12,7 @@ import java.util.Date;
* 教师电子档案 老师基础信息
*/
@Data
public class SchoolTeacherBasicInformation extends BaseEntity {
public class SchoolTeacherBasicInformationVo extends BaseEntity {
// @Excel(name = "年级",combo = {"一年级","二年级","三年级"},readConverterExp = "1=一年级,2=二年级,3=三年级")
@TableId(value = "id", type = IdType.AUTO)
......
package yangtz.cs.liu.campus.domain.teacherFiles;
package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
......
......@@ -2,6 +2,8 @@ package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
......@@ -18,22 +20,25 @@ public class SchoolXacademicWorks
private static final long serialVersionUID = 1L;
/** 主键id */
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 学科 */
@Excel(name = "学科")
@Excel(name = "学科",combo = {"语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","体育","美术","技术","心理","书法"},
readConverterExp = "1=语文,2=数学,3=英语,4=物理,5=化学,6=生物,7=政治,8=历史,9=地理,10=音乐,11=体育,12=美术,13=技术,14=心理,15=书法")
private String sub;
/** 获奖类别 */
@Excel(name = "获奖类别")
@Excel(name = "获奖类别",combo = {"论著-独著","论文-公开发表","论著-合著(编者)","论文-核心期刊","论著-合著(主编)","论著-合著(副主编)","其他"},
readConverterExp = "1=论著-独著,2=论文-公开发表,3=论著-合著(编者),4=论文-核心期刊,5=论著-合著(主编),6=论著-合著(副主编),7=其他")
private String awardType;
/** 获奖级别 */
@Excel(name = "获奖级别")
@Excel(name = "获奖级别",combo = {"国家级","省部级","市级","县区级","校级","其他"},readConverterExp = "1=国家级,2=省部级,3=市级,4=县区级,5=校级,6=其他")
private String awardRank;
/** 获奖等级 */
@Excel(name = "获奖等级")
@Excel(name = "获奖等级",combo = {"特等奖","一等奖","二等奖","三等奖","优秀奖","不设等级"},readConverterExp = "1=特等奖,2=一等奖,3=二等级,4=三等奖,5=优秀奖,6=不设等级")
private String awardLevel;
/** 成果名称 */
......@@ -44,7 +49,7 @@ public class SchoolXacademicWorks
private Long userId;
/** 获奖人 */
@Excel(name = "获奖")
@Excel(name = "获奖")
private String userName;
/** 主办单位 */
......@@ -66,6 +71,9 @@ public class SchoolXacademicWorks
/** 证书图片地址 */
private String pictureUrl;
/** 审核状态(0未提交,1审核中,2通过,3驳回) */
private String auditState;
/** 创建者 */
private String createBy;
......
package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
......@@ -17,10 +20,12 @@ public class SchoolXcomprehensiveHonors
private static final long serialVersionUID = 1L;
/** 主键id */
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 学科(下拉框) */
@Excel(name = "学科")
@Excel(name = "学科",combo = {"语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","体育","美术","技术","心理","书法"},
readConverterExp = "1=语文,2=数学,3=英语,4=物理,5=化学,6=生物,7=政治,8=历史,9=地理,10=音乐,11=体育,12=美术,13=技术,14=心理,15=书法")
private String sub;
/** 获奖类别 */
......@@ -28,11 +33,11 @@ public class SchoolXcomprehensiveHonors
private String awardType;
/** 获奖级别(下拉框) */
@Excel(name = "获奖级别")
@Excel(name = "获奖级别",combo = {"国家级","省部级","市级","县区级","校级","其他"},readConverterExp = "1=国家级,2=省部级,3=市级,4=县区级,5=校级,6=其他")
private String awardRank;
/** 获奖等级(下拉框) */
@Excel(name = "获奖等级")
@Excel(name = "获奖等级",combo = {"特等奖","一等奖","二等奖","三等奖","优秀奖","不设等级"},readConverterExp = "1=特等奖,2=一等奖,3=二等级,4=三等奖,5=优秀奖,6=不设等级")
private String awardLevel;
/** 成果名称 */
......@@ -43,7 +48,7 @@ public class SchoolXcomprehensiveHonors
private Long userId;
/** 获奖人 */
@Excel(name = "获奖")
@Excel(name = "获奖")
private String userName;
/** 主办单位 */
......@@ -51,7 +56,8 @@ public class SchoolXcomprehensiveHonors
private String org;
/** 获奖时间(年月日) */
@Excel(name = "获奖时间", readConverterExp = "年=月日")
@Excel(name = "获奖时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date awardTime;
/** 备注 */
......@@ -64,6 +70,9 @@ public class SchoolXcomprehensiveHonors
/** 证书图片地址 */
private String pictureUrl;
/** 审核状态(0未提交,1审核中,2通过,3驳回) */
private String auditState;
/** 创建者 */
private String createBy;
......
......@@ -2,6 +2,8 @@ package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
......@@ -18,22 +20,24 @@ public class SchoolXlectureAwards
private static final long serialVersionUID = 1L;
/** 主键id */
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 学科 */
@Excel(name = "学科")
@Excel(name = "学科",combo = {"语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","体育","美术","技术","心理","书法"},
readConverterExp = "1=语文,2=数学,3=英语,4=物理,5=化学,6=生物,7=政治,8=历史,9=地理,10=音乐,11=体育,12=美术,13=技术,14=心理,15=书法")
private String sub;
/** 获奖类别 */
@Excel(name = "获奖类别")
@Excel(name = "获奖类别",combo = {"优质课","公开课","优课","其他","说课","经验介绍","示范课"},readConverterExp = "1=优质课,2=公开课,3=优课,4=其他,5=说课,6=经验介绍,7=示范课")
private String awardType;
/** 获奖级别 */
@Excel(name = "获奖级别")
@Excel(name = "获奖级别",combo = {"国家级","省部级","市级","县区级","校级","其他"},readConverterExp = "1=国家级,2=省部级,3=市级,4=县区级,5=校级,6=其他")
private String awardRank;
/** 获奖等级 */
@Excel(name = "获奖等级")
@Excel(name = "获奖等级",combo = {"特等奖","一等奖","二等奖","三等奖","优秀奖","不设等级"},readConverterExp = "1=特等奖,2=一等奖,3=二等级,4=三等奖,5=优秀奖,6=不设等级")
private String awardLevel;
/** 成果名称 */
......@@ -41,11 +45,10 @@ public class SchoolXlectureAwards
private String resultName;
/** 获奖人id */
@Excel(name = "获奖人id")
private Long userId;
/** 获奖人 */
@Excel(name = "获奖")
@Excel(name = "获奖")
private String userName;
/** 主办单位 */
......@@ -67,6 +70,9 @@ public class SchoolXlectureAwards
/** 证书图片地址 */
private String pictureUrl;
/** 审核状态(0未提交,1审核中,2通过,3驳回) */
private String auditState;
/** 创建者 */
private String createBy;
......
......@@ -2,7 +2,9 @@ package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
......@@ -22,22 +24,26 @@ public class SchoolXteacherAwards
private static final long serialVersionUID = 1L;
/** 主键id */
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 学科 */
@Excel(name = "学科")
@Excel(name = "学科",combo = {"语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","体育","美术","技术","心理","书法"},
readConverterExp = "1=语文,2=数学,3=英语,4=物理,5=化学,6=生物,7=政治,8=历史,9=地理,10=音乐,11=体育,12=美术,13=技术,14=心理,15=书法")
private String sub;
/** 获奖类别 */
@Excel(name = "获奖类别")
@Excel(name = "获奖类别",combo = {"学科带头人","教学能手","教学科研专家","教学科研成果","增量优秀班主任","高考功勋班主任","教学资源","其他","高考功勋教师",
"增量优秀教师","市高考评奖"},readConverterExp = "1=学科带头人,2=教学能手,3=教学科研专家,4=教学科研成果,5=增量优秀班主任,6=高考功勋班主任,7=教学资源," +
"8=其他,9=高考功勋教师,10=增量优秀教师,11=市高考评奖")
private String awardType;
/** 获奖级别 */
@Excel(name = "获奖级别")
@Excel(name = "获奖级别",combo = {"国家级","省部级","市级","县区级","校级","其他"},readConverterExp = "1=国家级,2=省部级,3=市级,4=县区级,5=校级,6=其他")
private String awardRank;
/** 获奖等级 */
@Excel(name = "获奖等级")
@Excel(name = "获奖等级",combo = {"特等奖","一等奖","二等奖","三等奖","优秀奖","不设等级"},readConverterExp = "1=特等奖,2=一等奖,3=二等级,4=三等奖,5=优秀奖,6=不设等级")
private String awardLevel;
/** 成果名称 */
......@@ -48,7 +54,7 @@ public class SchoolXteacherAwards
private Long userId;
/** 获奖人 */
@Excel(name = "获奖")
@Excel(name = "获奖")
private String userName;
/** 主办单位 */
......@@ -70,6 +76,9 @@ public class SchoolXteacherAwards
/** 证书图片地址 */
private String pictureUrl;
/** 审核状态(0未提交,1审核中,2通过,3驳回) */
private String auditState;
/** 创建者 */
private String createBy;
......
......@@ -3,13 +3,11 @@ package yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 教学成绩对象 school_xteaching_achievements
......@@ -23,14 +21,16 @@ public class SchoolXteachingAchievements
private static final long serialVersionUID = 1L;
/** 主键id */
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 学年(下拉框) */
@Excel(name = "学年(下拉框)")
@Excel(name = "学年",combo = {"2018-2019","2019-2020","2020-2021","2021-2022","2022-2023","2023-2024","2024-2025","2025-2026",
"2026-2027","2027-2028","2028-2029","2029-2030","2030-2031","2031-2032","2032-2033"})
private String schoolYear;
/** 学期(下拉框) */
@Excel(name = "学期")
@Excel(name = "学期",combo = {"第一学期","第二学期"}, readConverterExp = "1=第一学期,2=第二学期")
private String semester;
/** 考试时间(年月日) */
......@@ -39,23 +39,23 @@ public class SchoolXteachingAchievements
private Date examTime;
/** 考试类型(下拉框) */
@Excel(name = "考试类型")
@Excel(name = "考试类型",combo = {"月考","期中","期末","一模","二模","三模","高考","其它"},
readConverterExp = "1=月考,2=期中,3=期末,4=一模,5=二模,6=三模,7=高考,8=其它")
private String examType;
/** 届别(下拉框) */
@Excel(name = "届别(下拉框)")
@Excel(name = "届别", combo = {"2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033"})
private String year;
/** 年级(下拉框) */
@Excel(name = "年级")
@Excel(name = "年级", combo = {"高一","高二","高三"},readConverterExp = "1=高一,2=高二,3=高三")
private String grade;
/** 用户id */
@Excel(name = "用户id")
private Long userId;
/** 用户姓名 */
@Excel(name = "用户姓名")
@Excel(name = "姓名")
private String userName;
/** 身份证号 */
......@@ -63,7 +63,8 @@ public class SchoolXteachingAchievements
private String idCard;
/** 学科 */
@Excel(name = "学科")
@Excel(name = "学科",combo = {"语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","体育","美术","技术","心理","书法"},
readConverterExp = "1=语文,2=数学,3=英语,4=物理,5=化学,6=生物,7=政治,8=历史,9=地理,10=音乐,11=体育,12=美术,13=技术,14=心理,15=书法")
private String sub;
/** 班级 */
......@@ -93,7 +94,6 @@ public class SchoolXteachingAchievements
private Date updateTime;
/** 备注 */
@Excel(name = "备注")
private String remark;
/** 删除状态 */
......
package yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessment;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentReq;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentVo;
import java.util.List;
/**
* 班主任考核Mapper接口
*
* @author ruoyi
* @date 2023-12-12
*/
public interface SchoolAclassTeacherAssessmentMapper extends BaseMapper<SchoolAclassTeacherAssessment>
{
/**
* 查询班主任考核
*
* @param id 班主任考核主键
* @return 班主任考核
*/
public SchoolAclassTeacherAssessment selectSchoolAclassTeacherAssessmentById(Long id);
/**
* 查询班主任考核列表
*
* @param schoolAclassTeacherAssessment 班主任考核
* @return 班主任考核集合
*/
public List<SchoolAclassTeacherAssessmentVo> selectSchoolAclassTeacherAssessmentList(SchoolAclassTeacherAssessmentReq req);
public List<SchoolAclassTeacherAssessment> selectSchoolList(SchoolAclassTeacherAssessmentReq req);
/**
* 新增班主任考核
*
* @param schoolAclassTeacherAssessment 班主任考核
* @return 结果
*/
public int insertSchoolAclassTeacherAssessment(SchoolAclassTeacherAssessment schoolAclassTeacherAssessment);
/**
* 修改班主任考核
*
* @param schoolAclassTeacherAssessment 班主任考核
* @return 结果
*/
public int updateSchoolAclassTeacherAssessment(SchoolAclassTeacherAssessment schoolAclassTeacherAssessment);
/**
* 删除班主任考核
*
* @param id 班主任考核主键
* @return 结果
*/
public int deleteSchoolAclassTeacherAssessmentById(Long id);
/**
* 批量删除班主任考核
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteSchoolAclassTeacherAssessmentByIds(Long[] ids);
}
package yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkload;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkloadExport;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkloadVo;
import java.util.List;
/**
* 工作量信息Mapper接口
*
* @author ruoyi
* @date 2023-12-11
*/
public interface SchoolAworkloadMapper extends BaseMapper<SchoolAworkload>
{
/**
* 查询工作量信息
*
* @param id 工作量信息主键
* @return 工作量信息
*/
public SchoolAworkload selectSchoolAworkloadById(Long id);
/**
* 查询工作量信息列表
*
* @param schoolAworkload 工作量信息
* @return 工作量信息集合
*/
public List<SchoolAworkloadVo> selectSchoolAworkloadList(SchoolAworkload schoolAworkload);
public List<SchoolAworkloadExport> selectAworkloadList(SchoolAworkload schoolAworkload);
/**
* 新增工作量信息
*
* @param schoolAworkload 工作量信息
* @return 结果
*/
public int insertSchoolAworkload(SchoolAworkload schoolAworkload);
/**
* 修改工作量信息
*
* @param schoolAworkload 工作量信息
* @return 结果
*/
public int updateSchoolAworkload(SchoolAworkload schoolAworkload);
/**
* 删除工作量信息
*
* @param id 工作量信息主键
* @return 结果
*/
public int deleteSchoolAworkloadById(Long id);
/**
* 批量删除工作量信息
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteSchoolAworkloadByIds(Long[] ids);
}
package yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformation;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformationVo;
import java.util.List;
public interface SchoolTeacherBasichlnformationMapper extends BaseMapper<SchoolTeacherBasicInformation> {
List<SchoolTeacherBasicInformationVo> list(SchoolTeacherBasicInformationVo information);
SchoolTeacherBasicInformationVo selectById(Long id);
int updateInformationById(SchoolTeacherBasicInformation information);
}
package yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXacademicWorks;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXacademicWorksVo;
import java.util.List;
/**
......@@ -17,15 +19,15 @@ public interface SchoolXacademicWorksMapper
* @param id 论文著作主键
* @return 论文著作
*/
public SchoolXacademicWorks selectSchoolXacademicWorksById(Long id);
public SchoolXacademicWorksVo selectSchoolXacademicWorksById(Long id);
/**
* 查询论文著作列表
*
* @param schoolXacademicWorks 论文著作
* @param schoolXacademicWorksVo 论文著作
* @return 论文著作集合
*/
public List<SchoolXacademicWorks> selectSchoolXacademicWorksList(SchoolXacademicWorks schoolXacademicWorks);
public List<SchoolXacademicWorksVo> selectSchoolXacademicWorksList(SchoolXacademicWorksVo schoolXacademicWorksVo);
/**
* 新增论文著作
......
package yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXcomprehensiveHonors;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXcomprehensiveHonorsVo;
import java.util.List;
/**
......@@ -17,15 +19,15 @@ public interface SchoolXcomprehensiveHonorsMapper
* @param id 综合荣誉主键
* @return 综合荣誉
*/
public SchoolXcomprehensiveHonors selectSchoolXcomprehensiveHonorsById(Long id);
public SchoolXcomprehensiveHonorsVo selectSchoolXcomprehensiveHonorsById(Long id);
/**
* 查询综合荣誉列表
*
* @param schoolXcomprehensiveHonors 综合荣誉
* @param schoolXcomprehensiveHonorsVo 综合荣誉
* @return 综合荣誉集合
*/
public List<SchoolXcomprehensiveHonors> selectSchoolXcomprehensiveHonorsList(SchoolXcomprehensiveHonors schoolXcomprehensiveHonors);
public List<SchoolXcomprehensiveHonorsVo> selectSchoolXcomprehensiveHonorsList(SchoolXcomprehensiveHonorsVo schoolXcomprehensiveHonorsVo);
/**
* 新增综合荣誉
......
package yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXlectureAwards;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXlectureAwardsVo;
import java.util.List;
......@@ -18,15 +19,15 @@ public interface SchoolXlectureAwardsMapper
* @param id 讲课获奖主键
* @return 讲课获奖
*/
public SchoolXlectureAwards selectSchoolXlectureAwardsById(Long id);
public SchoolXlectureAwardsVo selectSchoolXlectureAwardsById(Long id);
/**
* 查询讲课获奖列表
*
* @param schoolXlectureAwards 讲课获奖
* @param schoolXlectureAwardsVo 讲课获奖
* @return 讲课获奖集合
*/
public List<SchoolXlectureAwards> selectSchoolXlectureAwardsList(SchoolXlectureAwards schoolXlectureAwards);
public List<SchoolXlectureAwardsVo> selectSchoolXlectureAwardsList(SchoolXlectureAwardsVo schoolXlectureAwardsVo);
/**
* 新增讲课获奖
......
......@@ -2,6 +2,7 @@ package yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXteacherAwards;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteacherAwardsVo;
import java.util.List;
......@@ -19,15 +20,15 @@ public interface SchoolXteacherAwardsMapper
* @param id 教师获奖主键
* @return 教师获奖
*/
public SchoolXteacherAwards selectSchoolXteacherAwardsById(Long id);
public SchoolXteacherAwardsVo selectSchoolXteacherAwardsById(Long id);
/**
* 查询教师获奖列表
*
* @param schoolXteacherAwards 教师获奖
* @param schoolXteacherAwardsVo 教师获奖
* @return 教师获奖集合
*/
public List<SchoolXteacherAwards> selectSchoolXteacherAwardsList(SchoolXteacherAwards schoolXteacherAwards);
public List<SchoolXteacherAwardsVo> selectSchoolXteacherAwardsList(SchoolXteacherAwardsVo schoolXteacherAwardsVo);
/**
* 新增教师获奖
......
package yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.entity.SysUser;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXteachingAchievements;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteachingAchievementsVo;
import java.util.List;
import java.util.Map;
/**
* 教学成绩Mapper接口
......@@ -10,7 +14,7 @@ import java.util.List;
* @author ruoyi
* @date 2023-12-06
*/
public interface SchoolXteachingAchievementsMapper
public interface SchoolXteachingAchievementsMapper extends BaseMapper<SchoolXteachingAchievements>
{
/**
* 查询教学成绩
......@@ -18,15 +22,15 @@ public interface SchoolXteachingAchievementsMapper
* @param id 教学成绩主键
* @return 教学成绩
*/
public SchoolXteachingAchievements selectSchoolXteachingAchievementsById(Long id);
public SchoolXteachingAchievementsVo selectSchoolXteachingAchievementsById(Long id);
/**
* 查询教学成绩列表
*
* @param schoolXteachingAchievements 教学成绩
* @param schoolXteachingAchievementsVo 教学成绩
* @return 教学成绩集合
*/
public List<SchoolXteachingAchievements> selectSchoolXteachingAchievementsList(SchoolXteachingAchievements schoolXteachingAchievements);
public List<SchoolXteachingAchievementsVo> selectSchoolXteachingAchievementsList(SchoolXteachingAchievementsVo schoolXteachingAchievementsVo);
/**
* 新增教学成绩
......@@ -59,4 +63,7 @@ public interface SchoolXteachingAchievementsMapper
* @return 结果
*/
public int deleteSchoolXteachingAchievementsByIds(Long[] ids);
List<Map<String, Object>> getUserList(SysUser sysUser);
}
package yangtz.cs.liu.campus.mapper.teacherFiles;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import yangtz.cs.liu.campus.domain.teacherFiles.SchoolTeacherBasicInformation;
import java.util.List;
public interface SchoolTeacherBasichlnformationMapper extends BaseMapper<SchoolTeacherBasicInformation> {
List<SchoolTeacherBasicInformation> list(SchoolTeacherBasicInformation information);
SchoolTeacherBasicInformation selectById(Long id);
}
package yangtz.cs.liu.campus.service.impl.schoolAnnualAssessment;
import cn.hutool.core.io.resource.ClassPathResource;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.exception.ServiceException;
......@@ -12,15 +11,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import yangtz.cs.liu.campus.controller.teacherFiles.SchoolTeacherBasiclnformationController;
import yangtz.cs.liu.campus.domain.schoolAnnualAssessment.SchoolAnnualAssessment;
import yangtz.cs.liu.campus.mapper.schoolAnnualAssessment.SchoolAnnualAssessmentMapper;
import yangtz.cs.liu.campus.service.schoolAnnualAssessment.ISchoolAnnualAssessmentService;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.util.List;
/**
......
package yangtz.cs.liu.campus.service.impl.schoolNewTeacherDzdn;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessment;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentReq;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentVo;
import yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentMapper;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolAclassTeacherAssessmentService;
/**
* 班主任考核Service业务层处理
*
* @author ruoyi
* @date 2023-12-12
*/
@Service
public class SchoolAclassTeacherAssessmentServiceImpl extends ServiceImpl<SchoolAclassTeacherAssessmentMapper, SchoolAclassTeacherAssessment> implements ISchoolAclassTeacherAssessmentService
{
@Autowired
private SchoolAclassTeacherAssessmentMapper schoolAclassTeacherAssessmentMapper;
/**
* 查询班主任考核
*
* @param id 班主任考核主键
* @return 班主任考核
*/
@Override
public SchoolAclassTeacherAssessment selectSchoolAclassTeacherAssessmentById(Long id)
{
return schoolAclassTeacherAssessmentMapper.selectSchoolAclassTeacherAssessmentById(id);
}
/**
* 查询班主任考核列表
*
* @param
* @return 班主任考核
*/
@Override
public List<SchoolAclassTeacherAssessmentVo> selectSchoolAclassTeacherAssessmentList(SchoolAclassTeacherAssessmentReq req)
{
//查询条件状
// 智育考核成绩
String intellEduCheckAchievement = req.getIntellEduCheckAchievement();
if (StringUtils.isNotEmpty(intellEduCheckAchievement)){
this.symbolConversion(req);
}
//德育考核成绩
String moralEduCheckAchievement = req.getMoralEduCheckAchievement();
if (StringUtils.isNotEmpty(moralEduCheckAchievement)){
this.wordDateConversion(req);
}
return schoolAclassTeacherAssessmentMapper.selectSchoolAclassTeacherAssessmentList(req);
}
@Override
public List<SchoolAclassTeacherAssessment> selectSchoolList(SchoolAclassTeacherAssessmentReq req)
{
//查询条件状
// 智育考核成绩
String intellEduCheckAchievement = req.getIntellEduCheckAchievement();
if (StringUtils.isNotEmpty(intellEduCheckAchievement)){
this.symbolConversion(req);
}
//德育考核成绩
String moralEduCheckAchievement = req.getMoralEduCheckAchievement();
if (StringUtils.isNotEmpty(moralEduCheckAchievement)){
this.wordDateConversion(req);
}
return schoolAclassTeacherAssessmentMapper.selectSchoolList(req);
}
/**
* 新增班主任考核
*
* @param schoolAclassTeacherAssessment 班主任考核
* @return 结果
*/
@Override
public int insertSchoolAclassTeacherAssessment(SchoolAclassTeacherAssessment schoolAclassTeacherAssessment)
{
schoolAclassTeacherAssessment.setCreateTime(DateUtils.getNowDate());
return schoolAclassTeacherAssessmentMapper.insertSchoolAclassTeacherAssessment(schoolAclassTeacherAssessment);
}
/**
* 修改班主任考核
*
* @param schoolAclassTeacherAssessment 班主任考核
* @return 结果
*/
@Override
public int updateSchoolAclassTeacherAssessment(SchoolAclassTeacherAssessment schoolAclassTeacherAssessment)
{
schoolAclassTeacherAssessment.setUpdateTime(DateUtils.getNowDate());
return schoolAclassTeacherAssessmentMapper.updateSchoolAclassTeacherAssessment(schoolAclassTeacherAssessment);
}
/**
* 批量删除班主任考核
*
* @param ids 需要删除的班主任考核主键
* @return 结果
*/
@Override
public int deleteSchoolAclassTeacherAssessmentByIds(Long[] ids)
{
return schoolAclassTeacherAssessmentMapper.deleteSchoolAclassTeacherAssessmentByIds(ids);
}
/**
* 删除班主任考核信息
*
* @param id 班主任考核主键
* @return 结果
*/
@Override
public int deleteSchoolAclassTeacherAssessmentById(Long id)
{
return schoolAclassTeacherAssessmentMapper.deleteSchoolAclassTeacherAssessmentById(id);
}
/**
* 智育考核成绩
* @param
*/
private void symbolConversion(SchoolAclassTeacherAssessmentReq req){
//智育考核成绩
String intellEduCheckAchievement = req.getIntellEduCheckAchievement();
if (intellEduCheckAchievement.contains(">=")) {
String substring = intellEduCheckAchievement.substring(2, intellEduCheckAchievement.length());
req.setIntellEduCheckAchievementgtd(new BigDecimal(substring));
req.setIntellEduCheckAchievement(null);
} else if (intellEduCheckAchievement.contains("<=")) {
String substring = intellEduCheckAchievement.substring(2, intellEduCheckAchievement.length());
req.setIntellEduCheckAchievementltd(new BigDecimal(substring));
req.setIntellEduCheckAchievement(null);
} else if (intellEduCheckAchievement.contains("<")) {
String substring = intellEduCheckAchievement.substring(1, intellEduCheckAchievement.length());
req.setIntellEduCheckAchievementlt(new BigDecimal(substring));
req.setIntellEduCheckAchievement(null);
} else if (intellEduCheckAchievement.contains(">")) {
String substring = intellEduCheckAchievement.substring(1, intellEduCheckAchievement.length());
req.setIntellEduCheckAchievementgt(new BigDecimal(substring));
req.setIntellEduCheckAchievement(null);
} else if (intellEduCheckAchievement.contains("=")) {
String substring = intellEduCheckAchievement.substring(1, intellEduCheckAchievement.length());
req.setIntellEduCheckAchievement(substring);
}
}
/**
* 参加工作调整
*/
private void wordDateConversion(SchoolAclassTeacherAssessmentReq req) {
String moralEduCheckAchievement = req.getMoralEduCheckAchievement();
if (moralEduCheckAchievement.contains(">=")) {
String substring = moralEduCheckAchievement.substring(2, moralEduCheckAchievement.length());
req.setMoralEduCheckAchievementgtd(new BigDecimal(substring));
req.setMoralEduCheckAchievement(null);
} else if (moralEduCheckAchievement.contains("<=")) {
String substring = moralEduCheckAchievement.substring(2, moralEduCheckAchievement.length());
req.setMoralEduCheckAchievementltd(new BigDecimal(substring));
req.setMoralEduCheckAchievement(null);
} else if (moralEduCheckAchievement.contains("<")) {
String substring = moralEduCheckAchievement.substring(1, moralEduCheckAchievement.length());
req.setMoralEduCheckAchievementlt(new BigDecimal(substring));
req.setMoralEduCheckAchievement(null);
} else if (moralEduCheckAchievement.contains(">")) {
String substring = moralEduCheckAchievement.substring(1, moralEduCheckAchievement.length());
req.setMoralEduCheckAchievementgt(new BigDecimal(substring));
req.setMoralEduCheckAchievement(null);
} else if (moralEduCheckAchievement.contains("=")) {
String substring = moralEduCheckAchievement.substring(1, moralEduCheckAchievement.length());
req.setMoralEduCheckAchievement(substring);
}
}
}
package yangtz.cs.liu.campus.service.impl.schoolNewTeacherDzdn;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkload;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkloadExport;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkloadVo;
import yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolAworkloadMapper;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolAworkloadService;
/**
* 工作量信息Service业务层处理
*
* @author ruoyi
* @date 2023-12-11
*/
@Service
public class SchoolAworkloadServiceImpl extends ServiceImpl<SchoolAworkloadMapper, SchoolAworkload> implements ISchoolAworkloadService
{
@Autowired
private SchoolAworkloadMapper schoolAworkloadMapper;
/**
* 查询工作量信息
*
* @param id 工作量信息主键
* @return 工作量信息
*/
@Override
public SchoolAworkload selectSchoolAworkloadById(Long id)
{
SchoolAworkload date = schoolAworkloadMapper.selectSchoolAworkloadById(id);
date.setAmountTo(date.getEarlyReading()+date.getRequiredCourses()+date.getEveningSelfStudy());
return date;
}
/**
* 查询工作量信息列表
*
* @param schoolAworkload 工作量信息
* @return 工作量信息
*/
@Override
public List<SchoolAworkloadVo> selectSchoolAworkloadList(SchoolAworkload schoolAworkload)
{
List<SchoolAworkloadVo> schoolAworkloadVos = schoolAworkloadMapper.selectSchoolAworkloadList(schoolAworkload);
//计算合计
for (SchoolAworkloadVo date : schoolAworkloadVos){
date.setAmountTo(date.getEarlyReading()+date.getRequiredCourses()+date.getEveningSelfStudy());
}
return schoolAworkloadVos;
}
@Override
public List<SchoolAworkloadExport> selectAworkloadList(SchoolAworkload schoolAworkload)
{
List<SchoolAworkloadExport> schoolAworkloadVos = schoolAworkloadMapper.selectAworkloadList(schoolAworkload);
//计算合计
for (SchoolAworkloadExport date : schoolAworkloadVos){
date.setAmountTo(date.getEarlyReading()+date.getRequiredCourses()+date.getEveningSelfStudy());
}
return schoolAworkloadVos;
}
/**
* 新增工作量信息
*
* @param schoolAworkload 工作量信息
* @return 结果
*/
@Override
public int insertSchoolAworkload(SchoolAworkload schoolAworkload)
{
schoolAworkload.setCreateTime(DateUtils.getNowDate());
return schoolAworkloadMapper.insertSchoolAworkload(schoolAworkload);
}
/**
* 修改工作量信息
*
* @param schoolAworkload 工作量信息
* @return 结果
*/
@Override
public int updateSchoolAworkload(SchoolAworkload schoolAworkload)
{
schoolAworkload.setUpdateTime(DateUtils.getNowDate());
return schoolAworkloadMapper.updateSchoolAworkload(schoolAworkload);
}
/**
* 批量删除工作量信息
*
* @param ids 需要删除的工作量信息主键
* @return 结果
*/
@Override
public int deleteSchoolAworkloadByIds(Long[] ids)
{
return schoolAworkloadMapper.deleteSchoolAworkloadByIds(ids);
}
/**
* 删除工作量信息信息
*
* @param id 工作量信息主键
* @return 结果
*/
@Override
public int deleteSchoolAworkloadById(Long id)
{
return schoolAworkloadMapper.deleteSchoolAworkloadById(id);
}
}
package yangtz.cs.liu.campus.service.impl.teacherFiles;
package yangtz.cs.liu.campus.service.impl.schoolNewTeacherDzdn;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.UnPackeUtil;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.MimeTypeUtils;
import com.ruoyi.system.mapper.SysDictDataMapper;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import yangtz.cs.liu.campus.domain.teacherFiles.SchoolTeacherBasicInformation;
import yangtz.cs.liu.campus.mapper.teacherFiles.SchoolTeacherBasichlnformationMapper;
import yangtz.cs.liu.campus.service.teacherFiles.SchoolTeacherBasichlnformationService;
import java.io.IOException;
import java.io.InputStream;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformation;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformationVo;
import yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolTeacherBasichlnformationMapper;
import yangtz.cs.liu.campus.service.impl.teacherFiles.IdCardNumberUtils;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.SchoolTeacherBasichlnformationService;
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.*;
import static com.core.constant.CompressType.ZIP_FILE;
@Service
public class SchoolTeacherBasichlnformationServicelmpl extends ServiceImpl<SchoolTeacherBasichlnformationMapper, SchoolTeacherBasicInformation> implements SchoolTeacherBasichlnformationService
......@@ -39,14 +47,14 @@ public class SchoolTeacherBasichlnformationServicelmpl extends ServiceImpl<Schoo
@Autowired
private SysDictDataMapper dictDataMapper;
@Override
public List<SchoolTeacherBasicInformation> list(SchoolTeacherBasicInformation information) throws Exception {
public List<SchoolTeacherBasicInformationVo> list(SchoolTeacherBasicInformationVo information) throws Exception {
//出生日期查询条件转换
this.symbolConversion(information);
this.wordDateConversion(information);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String format = sdf.format(new Date());
List<SchoolTeacherBasicInformation> list = teacherBasichlnformationMapper.list(information);
for (SchoolTeacherBasicInformation date :list){
List<SchoolTeacherBasicInformationVo> list = teacherBasichlnformationMapper.list(information);
for (SchoolTeacherBasicInformationVo date :list){
//1.计算年龄
int ageFromIdCard = IdCardNumberUtils.getAgeFromIdCard(date.getIdCard());
date.setAge(ageFromIdCard);
......@@ -63,13 +71,17 @@ public class SchoolTeacherBasichlnformationServicelmpl extends ServiceImpl<Schoo
}
public int updateInformationById(SchoolTeacherBasicInformation information){
return teacherBasichlnformationMapper.updateInformationById(information);
}
@Override
public SchoolTeacherBasicInformation getById(Long id) throws ParseException {
public SchoolTeacherBasicInformationVo getByIds(Long id) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String format = sdf.format(new Date());
SchoolTeacherBasicInformation schoolTeacherBasicInformation = teacherBasichlnformationMapper.selectById(id);
SchoolTeacherBasicInformationVo schoolTeacherBasicInformation = teacherBasichlnformationMapper.selectById(id);
//1.计算年龄
int ageFromIdCard = IdCardNumberUtils.getAgeFromIdCard(schoolTeacherBasicInformation.getIdCard());
schoolTeacherBasicInformation.setAge(ageFromIdCard);
......@@ -402,9 +414,297 @@ public class SchoolTeacherBasichlnformationServicelmpl extends ServiceImpl<Schoo
@Override
public String importTeacherPicture(MultipartFile uploadFile) {
StringBuilder failureMsg = new StringBuilder();
/*解压到本地*/
unpack(uploadFile);
/*处理图片并匹配学生并添加到数据库中*/
String os = System.getProperty("os.name");
File file = null;
//Windows操作系统
if (os != null && os.toLowerCase().startsWith("windows")) {
file = new File("C:\\uploadPicture");
} else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统
file = new File("/uploadPicture");
}
File[] files = file.listFiles();
judgeFiles(files);
for (File f : files) {
if (StringUtils.isNotNull(f)) {
if (f.isDirectory()) {
File[] files1 = f.listFiles();
if (files1.length == 0 || StringUtils.isNull(files1)) {
throw new ServiceException("压缩包内文件夹里无头像信息,请检查");
}
for (File file1 : files1) {
saveUrlToObject(file1, failureMsg);
file1.delete();
}
f.delete();
continue;
}
//saveUrlToObject(f);
/*将本地的文件删除*/
f.delete();
}
}
String s = "";
if ("".equals(failureMsg.toString())) {
s = "恭喜您,数据已全部导入成功!";
} else {
failureMsg.insert(0, "导入完成,其中不匹配的数据如下:");
s = failureMsg.toString();
}
return s;
}
public void unpack(MultipartFile uploadFile) {
boolean isZipPack = true;
// 解压目录
String packFileStr = "";
String os = System.getProperty("os.name");
File packFile = null;
//Windows操作系统
if (os != null && os.toLowerCase().startsWith("windows")) {
packFileStr = "C:\\uploadPicture";
packFile = new File(packFileStr);
} else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统
packFileStr = "/uploadPicture";
packFile = new File(packFileStr);
packFile.setWritable(true, false);
}
//不存在则创建
if (!packFile.exists()) {
boolean mkdirs = packFile.mkdirs();
} else {
//存在则删除其中数据
remove(packFile);
}
if (uploadFile == null) {
throw new RuntimeException("请上传文件");
}
String contentType = uploadFile.getContentType();
String filename = uploadFile.getOriginalFilename();
String[] subFileName = filename.split("\\.");
//将压缩包保存在指定路径
String packFilePath = packFileStr + File.separator + filename;
if (judgeIsZip(ZIP_FILE, contentType) || subFileName[1].equals("zip")) {
//zip解压缩处理
}
// else if (RAR_FILE.equals(contentType)) {
// //rar解压缩处理
// isZipPack = false;
// }
else {
throw new RuntimeException("上传的压缩包格式不正确,仅支持zip压缩文件!");
}
File file = new File(packFilePath);
try {
uploadFile.transferTo(file);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("压缩文件到:" + packFileStr + " 失败!");
}
if (isZipPack) {
//zip压缩包
UnPackeUtil.unPackZip(file, null, packFileStr);
//删除系统对应文件夹中的zip文件
file.delete();
} else {
//rar压缩包
// RandomAccessFile randomAccessFile = null;
// IInArchive inArchive = null;
//
// randomAccessFile = new RandomAccessFile(packFilePath, "r");
// inArchive = SevenZip.openInArchive(null, new RandomAccessFileInStream(randomAccessFile));
//
// int[] in = new int[inArchive.getNumberOfItems()];
// for (int i = 0; i < in.length; i++) {
// in[i] = i;
// }
// inArchive.extract(in, false, new ExtractCallback(inArchive, "366", packFileStr));
}
//获取压缩包名称
filename = filename.substring(0, filename.lastIndexOf("."));
System.out.println("解压成功,解压目录:" + filename);
//可以根据解压路径、压缩包名称、文件名称,取出对应文件进行操作
}
public File[] judgeFiles(File[] files) {
if (files.length == 0 || StringUtils.isNull(files)) {
throw new ServiceException("压缩包内容为空,请检查,支持的格式为:将老师头像照片放在某一文件夹内,将该文件夹压缩成zip格式的压缩包,然后再上传");
}
//定义需要删除的文件的索引
List<File> files1 = new ArrayList<>();
boolean hasPic = false;
boolean hasFolder = false;
//for (File f : files) {
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
hasFolder = true;
if (files[i].listFiles().length > 0 && StringUtils.isNotNull(files[i].listFiles())) {
files1 = Arrays.asList(files[i].listFiles());
}
for (File file1 : files[i].listFiles()) {
//遍历文件夹,看是否有图片格式的照片
String filename = file1.getName();
String[] split = filename.split("\\.");
if (split.length <= 1) {
throw new ServiceException("请检查压缩包,支持的格式为:将老师头像照片放在某一文件夹内,文件夹内不要嵌套文件夹,也不要有其他无关文件,将该文件夹压缩成zip格式的压缩包,然后再上传");
}
/*判断文件是否是jpg和png*/
if (split[1].equals("jpg") || split[1].equals("png") || split[1].equals("jpeg") || split[1].equals("bmp")) {
hasPic = true;
} else {
//文件夹内不是以上格式的删除掉
file1.delete();
}
}
} else {
//不是文件夹的就删除
files[i].delete();
files[i] = null;
}
}
//判断压缩格式是否合适,是否有文件夹
if (!hasFolder) {
throw new ServiceException("压缩包内无文件夹,请检查,支持的格式为:将老师头像照片放在某一文件夹内,将该文件夹压缩成zip格式的压缩包,然后再上传");
}
//files1为空,说明压缩包内文件夹里无任何文件
if (StringUtils.isNull(files1) || files1.size() == 0) {
throw new ServiceException("压缩包内的文件夹内无文件,请检查,支持的格式为:将老师头像照片放在某一文件夹内,将该文件夹压缩成zip格式的压缩包,然后再上传");
}
//判断文件夹内是否有需要的图片格式
if (!hasPic) {
throw new ServiceException("压缩包内文件夹里没有符合所要求的图片格式的老师头像照片,请检查,支持的图片格式:jpg、 png、 jpeg和bmp,暂不支持其它格式");
}
return files;
}
//删除指定文件夹下的所有内容
public void remove(File file) {
File[] files = file.listFiles();//将file子目录及子文件放进文件数组
if (files != null) {//如果包含文件进行删除操作
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {//删除子文件
files[i].delete();
} else if (files[i].isDirectory()) {//通过递归方法删除子目录的文件
remove(files[i]);
}
files[i].delete();//删除子目录
}
}
}
public boolean judgeIsZip(String[] fileType, String contentType) {
boolean flag = false;
for (String i : fileType) {
if (contentType.equals(i)) {
flag = true;
}
}
return flag;
}
@Transactional(rollbackFor = Exception.class)
public void saveUrlToObject(File f, StringBuilder failureMsg) {
String filename = f.getName();
String[] split = filename.split("\\.");
//可能是身份证号,可能是省学籍号
String idCard = split[0];
/*获取到对应学生的数据 ,先根据身份证查*/
LambdaQueryWrapper<SchoolTeacherBasicInformation> lqw1 = new LambdaQueryWrapper<>();
lqw1.eq(SchoolTeacherBasicInformation::getIdCard, idCard);
List<SchoolTeacherBasicInformation> studentList1 = teacherBasichlnformationMapper.selectList(lqw1);
if (StringUtils.isNull(studentList1) || studentList1.size() == 0) {
failureMsg.append(" 身份证号为" + idCard + "的老师不在,无法为该老师导入图片");
} else {
boolean flag = false;
if (split.length <= 1) {
throw new ServiceException("请检查压缩包,压缩包内不要有文件夹;可将老师照片放到同一文件夹下,文件夹下不要有任何与老师照片无关的文件,将该文件夹压缩上传");
}
/*判断文件是否是jpg和png*/
if (split[1].equals("jpg") || split[1].equals("png") || split[1].equals("jpeg") || split[1].equals("bmp")) {
flag = true;
} else {
//throw new ServiceException("支持jpg、 png、 jpeg和bmp图片上传,暂不支持其它格式");
failureMsg.append(" 身份证号为" + idCard + "的图片格式有误,支持jpg、 png、 jpeg和bmp图片上传,暂不支持其它格式");
}
/*必须存在这个同学 并且 是图片类型才能进行下一步*/
if (studentList1.size() != 0 && flag) {
/*上传图片到服务器,获取地址*/
/*将file文件转为MultipartFile*/
MultipartFile cMultiFile = getMultipartFile(f);
/*上传文件并获取url*/
String url = uploadFile(cMultiFile);
/*将路径添加到数据库中*/
for (SchoolTeacherBasicInformation date:studentList1){
date.setPhotoUrl(url);
date.setPhotoName(idCard);
teacherBasichlnformationMapper.updateById(date);
}
} else {
//不能抛异常,,,否则指定目录下会存在脏数据
//throw new ServiceException("身份证号或省学籍号为" + idCard + "的学生不存在,无法导入图片,请检查");
failureMsg.append(" 身份证为" + idCard + "的老师不存在,无法为该老师导入图片");
}
}
}
/*上传文件*/
public String uploadFile(MultipartFile file) {
try {
// 上传文件路径
String filePath = RuoYiConfig.getAvatarPath();
// 上传并返回新文件名称
String url = FileUploadUtils.upload(filePath, file, MimeTypeUtils.IMAGE_EXTENSION);
//String url = serverConfig.getUrl() + fileName;
//int i = url.indexOf("/profile");
//String substring = url.substring(i);
//System.out.println(substring);
return url;
} catch (Exception e) {
throw new ServiceException("上传异常");
}
}
/*File转为MultipartFile*/
public static MultipartFile getMultipartFile(File file) {
FileItem item = new DiskFileItemFactory().createItem("file"
, MediaType.MULTIPART_FORM_DATA_VALUE
, true
, file.getName());
try (InputStream input = new FileInputStream(file);
OutputStream os = item.getOutputStream()) {
// 流转移
IOUtils.copy(input, os);
} catch (Exception e) {
throw new IllegalArgumentException("Invalid file: " + e, e);
}
return new CommonsMultipartFile(item);
}
//计算年龄
......@@ -463,7 +763,7 @@ public class SchoolTeacherBasichlnformationServicelmpl extends ServiceImpl<Schoo
* 出生年月条件转换
* @param information
*/
private void symbolConversion(SchoolTeacherBasicInformation information){
private void symbolConversion(SchoolTeacherBasicInformationVo information){
String birthDate = information.getBirthDate();
if (StringUtils.isEmpty(birthDate)){
return;
......@@ -492,7 +792,7 @@ public class SchoolTeacherBasichlnformationServicelmpl extends ServiceImpl<Schoo
* 参加工作调整
*/
private void wordDateConversion(SchoolTeacherBasicInformation information){
private void wordDateConversion(SchoolTeacherBasicInformationVo information){
String workingHours = information.getWorkingHours();
if (StringUtils.isEmpty(workingHours)){
return;
......
......@@ -2,11 +2,14 @@ package yangtz.cs.liu.campus.service.impl.schoolNewTeacherDzdn;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXacademicWorks;
import yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolXacademicWorksMapper;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXacademicWorksService;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXacademicWorksVo;
/**
* 论文著作Service业务层处理
......@@ -27,7 +30,7 @@ public class SchoolXacademicWorksServiceImpl implements ISchoolXacademicWorksSer
* @return 论文著作
*/
@Override
public SchoolXacademicWorks selectSchoolXacademicWorksById(Long id)
public SchoolXacademicWorksVo selectSchoolXacademicWorksById(Long id)
{
return schoolXacademicWorksMapper.selectSchoolXacademicWorksById(id);
}
......@@ -35,13 +38,13 @@ public class SchoolXacademicWorksServiceImpl implements ISchoolXacademicWorksSer
/**
* 查询论文著作列表
*
* @param schoolXacademicWorks 论文著作
* @param schoolXacademicWorksVo 论文著作
* @return 论文著作
*/
@Override
public List<SchoolXacademicWorks> selectSchoolXacademicWorksList(SchoolXacademicWorks schoolXacademicWorks)
public List<SchoolXacademicWorksVo> selectSchoolXacademicWorksList(SchoolXacademicWorksVo schoolXacademicWorksVo)
{
return schoolXacademicWorksMapper.selectSchoolXacademicWorksList(schoolXacademicWorks);
return schoolXacademicWorksMapper.selectSchoolXacademicWorksList(schoolXacademicWorksVo);
}
/**
......@@ -51,8 +54,10 @@ public class SchoolXacademicWorksServiceImpl implements ISchoolXacademicWorksSer
* @return 结果
*/
@Override
@Transactional
public int insertSchoolXacademicWorks(SchoolXacademicWorks schoolXacademicWorks)
{
schoolXacademicWorks.setCreateBy(SecurityUtils.getUsername());
schoolXacademicWorks.setCreateTime(DateUtils.getNowDate());
return schoolXacademicWorksMapper.insertSchoolXacademicWorks(schoolXacademicWorks);
}
......@@ -64,8 +69,10 @@ public class SchoolXacademicWorksServiceImpl implements ISchoolXacademicWorksSer
* @return 结果
*/
@Override
@Transactional
public int updateSchoolXacademicWorks(SchoolXacademicWorks schoolXacademicWorks)
{
schoolXacademicWorks.setUpdateBy(SecurityUtils.getUsername());
schoolXacademicWorks.setUpdateTime(DateUtils.getNowDate());
return schoolXacademicWorksMapper.updateSchoolXacademicWorks(schoolXacademicWorks);
}
......@@ -93,4 +100,14 @@ public class SchoolXacademicWorksServiceImpl implements ISchoolXacademicWorksSer
{
return schoolXacademicWorksMapper.deleteSchoolXacademicWorksById(id);
}
/**
* 审核
* @param schoolXacademicWorks
* @return
*/
@Override
public int audit(SchoolXacademicWorks schoolXacademicWorks) {
return schoolXacademicWorksMapper.updateSchoolXacademicWorks(schoolXacademicWorks);
}
}
......@@ -2,11 +2,13 @@ package yangtz.cs.liu.campus.service.impl.schoolNewTeacherDzdn;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXcomprehensiveHonors;
import yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolXcomprehensiveHonorsMapper;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXcomprehensiveHonorsService;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXcomprehensiveHonorsVo;
/**
* 综合荣誉Service业务层处理
......@@ -27,7 +29,7 @@ public class SchoolXcomprehensiveHonorsServiceImpl implements ISchoolXcomprehens
* @return 综合荣誉
*/
@Override
public SchoolXcomprehensiveHonors selectSchoolXcomprehensiveHonorsById(Long id)
public SchoolXcomprehensiveHonorsVo selectSchoolXcomprehensiveHonorsById(Long id)
{
return schoolXcomprehensiveHonorsMapper.selectSchoolXcomprehensiveHonorsById(id);
}
......@@ -35,13 +37,13 @@ public class SchoolXcomprehensiveHonorsServiceImpl implements ISchoolXcomprehens
/**
* 查询综合荣誉列表
*
* @param schoolXcomprehensiveHonors 综合荣誉
* @param schoolXcomprehensiveHonorsVo 综合荣誉
* @return 综合荣誉
*/
@Override
public List<SchoolXcomprehensiveHonors> selectSchoolXcomprehensiveHonorsList(SchoolXcomprehensiveHonors schoolXcomprehensiveHonors)
public List<SchoolXcomprehensiveHonorsVo> selectSchoolXcomprehensiveHonorsList(SchoolXcomprehensiveHonorsVo schoolXcomprehensiveHonorsVo)
{
return schoolXcomprehensiveHonorsMapper.selectSchoolXcomprehensiveHonorsList(schoolXcomprehensiveHonors);
return schoolXcomprehensiveHonorsMapper.selectSchoolXcomprehensiveHonorsList(schoolXcomprehensiveHonorsVo);
}
/**
......@@ -53,6 +55,7 @@ public class SchoolXcomprehensiveHonorsServiceImpl implements ISchoolXcomprehens
@Override
public int insertSchoolXcomprehensiveHonors(SchoolXcomprehensiveHonors schoolXcomprehensiveHonors)
{
schoolXcomprehensiveHonors.setCreateBy(SecurityUtils.getUsername());
schoolXcomprehensiveHonors.setCreateTime(DateUtils.getNowDate());
return schoolXcomprehensiveHonorsMapper.insertSchoolXcomprehensiveHonors(schoolXcomprehensiveHonors);
}
......@@ -66,6 +69,7 @@ public class SchoolXcomprehensiveHonorsServiceImpl implements ISchoolXcomprehens
@Override
public int updateSchoolXcomprehensiveHonors(SchoolXcomprehensiveHonors schoolXcomprehensiveHonors)
{
schoolXcomprehensiveHonors.setUpdateBy(SecurityUtils.getUsername());
schoolXcomprehensiveHonors.setUpdateTime(DateUtils.getNowDate());
return schoolXcomprehensiveHonorsMapper.updateSchoolXcomprehensiveHonors(schoolXcomprehensiveHonors);
}
......@@ -93,4 +97,14 @@ public class SchoolXcomprehensiveHonorsServiceImpl implements ISchoolXcomprehens
{
return schoolXcomprehensiveHonorsMapper.deleteSchoolXcomprehensiveHonorsById(id);
}
/**
* 审核
* @param schoolXcomprehensiveHonors
* @return
*/
@Override
public int audit(SchoolXcomprehensiveHonors schoolXcomprehensiveHonors) {
return schoolXcomprehensiveHonorsMapper.updateSchoolXcomprehensiveHonors(schoolXcomprehensiveHonors);
}
}
......@@ -2,11 +2,14 @@ package yangtz.cs.liu.campus.service.impl.schoolNewTeacherDzdn;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXlectureAwards;
import yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolXlectureAwardsMapper;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXlectureAwardsService;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXlectureAwardsVo;
/**
* 讲课获奖Service业务层处理
......@@ -27,7 +30,7 @@ public class SchoolXlectureAwardsServiceImpl implements ISchoolXlectureAwardsSer
* @return 讲课获奖
*/
@Override
public SchoolXlectureAwards selectSchoolXlectureAwardsById(Long id)
public SchoolXlectureAwardsVo selectSchoolXlectureAwardsById(Long id)
{
return schoolXlectureAwardsMapper.selectSchoolXlectureAwardsById(id);
}
......@@ -35,13 +38,13 @@ public class SchoolXlectureAwardsServiceImpl implements ISchoolXlectureAwardsSer
/**
* 查询讲课获奖列表
*
* @param schoolXlectureAwards 讲课获奖
* @param schoolXlectureAwardsVo 讲课获奖
* @return 讲课获奖
*/
@Override
public List<SchoolXlectureAwards> selectSchoolXlectureAwardsList(SchoolXlectureAwards schoolXlectureAwards)
public List<SchoolXlectureAwardsVo> selectSchoolXlectureAwardsList(SchoolXlectureAwardsVo schoolXlectureAwardsVo)
{
return schoolXlectureAwardsMapper.selectSchoolXlectureAwardsList(schoolXlectureAwards);
return schoolXlectureAwardsMapper.selectSchoolXlectureAwardsList(schoolXlectureAwardsVo);
}
/**
......@@ -51,8 +54,10 @@ public class SchoolXlectureAwardsServiceImpl implements ISchoolXlectureAwardsSer
* @return 结果
*/
@Override
@Transactional
public int insertSchoolXlectureAwards(SchoolXlectureAwards schoolXlectureAwards)
{
schoolXlectureAwards.setCreateBy(SecurityUtils.getUsername());
schoolXlectureAwards.setCreateTime(DateUtils.getNowDate());
return schoolXlectureAwardsMapper.insertSchoolXlectureAwards(schoolXlectureAwards);
}
......@@ -64,8 +69,10 @@ public class SchoolXlectureAwardsServiceImpl implements ISchoolXlectureAwardsSer
* @return 结果
*/
@Override
@Transactional
public int updateSchoolXlectureAwards(SchoolXlectureAwards schoolXlectureAwards)
{
schoolXlectureAwards.setUpdateBy(SecurityUtils.getUsername());
schoolXlectureAwards.setUpdateTime(DateUtils.getNowDate());
return schoolXlectureAwardsMapper.updateSchoolXlectureAwards(schoolXlectureAwards);
}
......@@ -93,4 +100,14 @@ public class SchoolXlectureAwardsServiceImpl implements ISchoolXlectureAwardsSer
{
return schoolXlectureAwardsMapper.deleteSchoolXlectureAwardsById(id);
}
/**
* 审核
* @param schoolXlectureAwards
* @return
*/
@Override
public int audit(SchoolXlectureAwards schoolXlectureAwards) {
return schoolXlectureAwardsMapper.updateSchoolXlectureAwards(schoolXlectureAwards);
}
}
......@@ -2,11 +2,14 @@ package yangtz.cs.liu.campus.service.impl.schoolNewTeacherDzdn;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXteacherAwards;
import yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolXteacherAwardsMapper;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXteacherAwardsService;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteacherAwardsVo;
/**
* 教师获奖Service业务层处理
......@@ -27,7 +30,7 @@ public class SchoolXteacherAwardsServiceImpl implements ISchoolXteacherAwardsSer
* @return 教师获奖
*/
@Override
public SchoolXteacherAwards selectSchoolXteacherAwardsById(Long id)
public SchoolXteacherAwardsVo selectSchoolXteacherAwardsById(Long id)
{
return schoolXteacherAwardsMapper.selectSchoolXteacherAwardsById(id);
}
......@@ -35,13 +38,13 @@ public class SchoolXteacherAwardsServiceImpl implements ISchoolXteacherAwardsSer
/**
* 查询教师获奖列表
*
* @param schoolXteacherAwards 教师获奖
* @param schoolXteacherAwardsVo 教师获奖
* @return 教师获奖
*/
@Override
public List<SchoolXteacherAwards> selectSchoolXteacherAwardsList(SchoolXteacherAwards schoolXteacherAwards)
public List<SchoolXteacherAwardsVo> selectSchoolXteacherAwardsList(SchoolXteacherAwardsVo schoolXteacherAwardsVo)
{
return schoolXteacherAwardsMapper.selectSchoolXteacherAwardsList(schoolXteacherAwards);
return schoolXteacherAwardsMapper.selectSchoolXteacherAwardsList(schoolXteacherAwardsVo);
}
/**
......@@ -51,8 +54,10 @@ public class SchoolXteacherAwardsServiceImpl implements ISchoolXteacherAwardsSer
* @return 结果
*/
@Override
@Transactional
public int insertSchoolXteacherAwards(SchoolXteacherAwards schoolXteacherAwards)
{
schoolXteacherAwards.setCreateBy(SecurityUtils.getUsername());
schoolXteacherAwards.setCreateTime(DateUtils.getNowDate());
return schoolXteacherAwardsMapper.insertSchoolXteacherAwards(schoolXteacherAwards);
}
......@@ -64,8 +69,10 @@ public class SchoolXteacherAwardsServiceImpl implements ISchoolXteacherAwardsSer
* @return 结果
*/
@Override
@Transactional
public int updateSchoolXteacherAwards(SchoolXteacherAwards schoolXteacherAwards)
{
schoolXteacherAwards.setUpdateBy(SecurityUtils.getUsername());
schoolXteacherAwards.setUpdateTime(DateUtils.getNowDate());
return schoolXteacherAwardsMapper.updateSchoolXteacherAwards(schoolXteacherAwards);
}
......@@ -93,4 +100,14 @@ public class SchoolXteacherAwardsServiceImpl implements ISchoolXteacherAwardsSer
{
return schoolXteacherAwardsMapper.deleteSchoolXteacherAwardsById(id);
}
/**
* 审核
* @param schoolXteacherAwards
* @return
*/
@Override
public int audit(SchoolXteacherAwards schoolXteacherAwards) {
return schoolXteacherAwardsMapper.updateSchoolXteacherAwards(schoolXteacherAwards);
}
}
package yangtz.cs.liu.campus.service.impl.schoolNewTeacherDzdn;
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.entity.SchoolTeacher;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.mapper.SysDictDataMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXteachingAchievements;
import yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolXteachingAchievementsMapper;
import yangtz.cs.liu.campus.mapper.teacher.SchoolTeacherMapper;
import yangtz.cs.liu.campus.service.impl.schoolAnnualAssessment.SchoolAnnualAssessmentServiceImpl;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXteachingAchievementsService;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteachingAchievementsVo;
import javax.servlet.http.HttpServletResponse;
/**
* 教学成绩Service业务层处理
......@@ -15,10 +37,16 @@ import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXteachingAchieve
* @date 2023-12-06
*/
@Service
public class SchoolXteachingAchievementsServiceImpl implements ISchoolXteachingAchievementsService
public class SchoolXteachingAchievementsServiceImpl extends ServiceImpl<SchoolXteachingAchievementsMapper,SchoolXteachingAchievements> implements ISchoolXteachingAchievementsService
{
@Autowired
private SchoolXteachingAchievementsMapper schoolXteachingAchievementsMapper;
@Autowired
private SysDictDataMapper sysDictDataMapper;
@Autowired
private SchoolTeacherMapper schoolTeacherMapper;
private Logger log = LoggerFactory.getLogger(SchoolXteachingAchievementsServiceImpl.class);
/**
* 查询教学成绩
......@@ -27,7 +55,7 @@ public class SchoolXteachingAchievementsServiceImpl implements ISchoolXteachingA
* @return 教学成绩
*/
@Override
public SchoolXteachingAchievements selectSchoolXteachingAchievementsById(Long id)
public SchoolXteachingAchievementsVo selectSchoolXteachingAchievementsById(Long id)
{
return schoolXteachingAchievementsMapper.selectSchoolXteachingAchievementsById(id);
}
......@@ -35,13 +63,13 @@ public class SchoolXteachingAchievementsServiceImpl implements ISchoolXteachingA
/**
* 查询教学成绩列表
*
* @param schoolXteachingAchievements 教学成绩
* @param schoolXteachingAchievementsVo 教学成绩
* @return 教学成绩
*/
@Override
public List<SchoolXteachingAchievements> selectSchoolXteachingAchievementsList(SchoolXteachingAchievements schoolXteachingAchievements)
public List<SchoolXteachingAchievementsVo> selectSchoolXteachingAchievementsList(SchoolXteachingAchievementsVo schoolXteachingAchievementsVo)
{
return schoolXteachingAchievementsMapper.selectSchoolXteachingAchievementsList(schoolXteachingAchievements);
return schoolXteachingAchievementsMapper.selectSchoolXteachingAchievementsList(schoolXteachingAchievementsVo);
}
/**
......@@ -51,8 +79,32 @@ public class SchoolXteachingAchievementsServiceImpl implements ISchoolXteachingA
* @return 结果
*/
@Override
@Transactional
public int insertSchoolXteachingAchievements(SchoolXteachingAchievements schoolXteachingAchievements)
{
//根据身份证号查询用户,是否存在
SchoolTeacher schoolTeacher = schoolTeacherMapper.selectTeacher(schoolXteachingAchievements.getIdCard());
if (StringUtils.isNull(schoolTeacher)){
throw new ServiceException("用户不存在,请重新输入!");
} else if (!schoolTeacher.getTeacherName().contains(schoolXteachingAchievements.getUserName())){
throw new ServiceException("姓名和身份证姓名不匹配,请重新输入!");
}
schoolXteachingAchievements.setUserId(schoolTeacher.getId());
//判断班级是否正确
String className = schoolXteachingAchievements.getClassName();
//将所有中文逗号替换成英文逗号
String newClassName = className.replaceAll(",", ",");
String[] split = newClassName.split(",");
for (int i = 0; i < split.length; i++) {
if (!split[i].matches("\\d+")){
throw new ServiceException("班级输入错误,请重新输入!");
}
}
//判断考核分是否正确
if (!schoolXteachingAchievements.getAssessmentScore().toString().matches("\\d+(\\.\\d+)?")){
throw new ServiceException("考核分输入错误,请重新输入!");
}
schoolXteachingAchievements.setCreateBy(SecurityUtils.getUsername());
schoolXteachingAchievements.setCreateTime(DateUtils.getNowDate());
return schoolXteachingAchievementsMapper.insertSchoolXteachingAchievements(schoolXteachingAchievements);
}
......@@ -64,8 +116,32 @@ public class SchoolXteachingAchievementsServiceImpl implements ISchoolXteachingA
* @return 结果
*/
@Override
@Transactional
public int updateSchoolXteachingAchievements(SchoolXteachingAchievements schoolXteachingAchievements)
{
//根据身份证号查询用户,是否存在
SchoolTeacher schoolTeacher = schoolTeacherMapper.selectTeacher(schoolXteachingAchievements.getIdCard());
if (StringUtils.isNull(schoolTeacher)){
throw new ServiceException("用户不存在,请重新输入!");
} else if (!schoolTeacher.getTeacherName().contains(schoolXteachingAchievements.getUserName())){
throw new ServiceException("姓名和身份证姓名不匹配,请重新输入!");
}
schoolXteachingAchievements.setUserId(schoolTeacher.getId());
//判断班级是否正确
String className = schoolXteachingAchievements.getClassName();
//将所有中文逗号替换成英文逗号
String newClassName = className.replaceAll(",", ",");
String[] split = newClassName.split(",");
for (int i = 0; i < split.length; i++) {
if (!split[i].matches("\\d+")){
throw new ServiceException("班级输入错误,请重新输入!");
}
}
//判断考核分是否正确
if (!schoolXteachingAchievements.getAssessmentScore().toString().matches("\\d+(\\.\\d+)?")){
throw new ServiceException("考核分输入错误,请重新输入!");
}
schoolXteachingAchievements.setUpdateBy(SecurityUtils.getUsername());
schoolXteachingAchievements.setUpdateTime(DateUtils.getNowDate());
return schoolXteachingAchievementsMapper.updateSchoolXteachingAchievements(schoolXteachingAchievements);
}
......@@ -93,4 +169,236 @@ public class SchoolXteachingAchievementsServiceImpl implements ISchoolXteachingA
{
return schoolXteachingAchievementsMapper.deleteSchoolXteachingAchievementsById(id);
}
/**
* 获取所有用户
* @return
*/
@Override
public List<Map<String, Object>> getUserList(SysUser sysUser) {
return schoolXteachingAchievementsMapper.getUserList(sysUser);
}
/**
* 下载模板
* @param response
*/
@Override
public void importTemplate(HttpServletResponse response) {
// 以流的形式下载文件。
try {
//读取文件
InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("file/教学成绩导入模板.xlsx");
InputStream fis = new BufferedInputStream(resourceAsStream);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.setHeader("Content-Disposition", "attachment;filename="+java.net.URLEncoder.encode("教学成绩导入模板.xlsx", "utf-8"));
//response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + buffer.length);
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException e) {
log.info(e.getMessage());
}
}
/**
* 校验教学成绩数据
* @param list
*/
@Override
public void checkImport(List<SchoolXteachingAchievements> list) {
//检验是否为空
if (StringUtils.isNull(list) || list.size() == 0) {
throw new ServiceException("导入数据不能为空");
}
//查询学期字典键值
List<SysDictData> semester = sysDictDataMapper.selectDictDataByType("semester_jsdzda");
//查询考试类型字典键值
List<SysDictData> examType = sysDictDataMapper.selectDictDataByType("exam_typeda");
//查询年级字典键值
List<SysDictData> grade = sysDictDataMapper.selectDictDataByType("grade_da");
//查询学科字典键值
List<SysDictData> sub = sysDictDataMapper.selectDictDataByType("sub_dzdn");
//查询班级类型字典键值
List<SysDictData> type = sysDictDataMapper.selectDictDataByType("class_type");
// 准备记录日志数据
int failureNum = 0;
StringBuilder failureMsg = new StringBuilder();
for (SchoolXteachingAchievements schoolXteachingAchievements : list) {
if (StringUtils.isNull(schoolXteachingAchievements.getSchoolYear())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、学年为空,请您重新输入! ");
} else if (StringUtils.isEmpty(schoolXteachingAchievements.getSemester())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、学期为空,请您重新输入! ");
} else if (StringUtils.isNull(schoolXteachingAchievements.getExamTime())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、考试时间为空,请您重新输入! ");
} else if (StringUtils.isEmpty(schoolXteachingAchievements.getExamType())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、考试类型为空,请您重新输入! ");
} else if (StringUtils.isEmpty(schoolXteachingAchievements.getYear())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、届别为空,请您重新输入! ");
} else if (StringUtils.isEmpty(schoolXteachingAchievements.getGrade())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、年级为空,请您重新输入! ");
} else if (StringUtils.isEmpty(schoolXteachingAchievements.getUserName())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、姓名为空,请您重新输入! ");
} else if (StringUtils.isEmpty(schoolXteachingAchievements.getIdCard())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、身份证号为空,请您重新输入! ");
} else if (StringUtils.isEmpty(schoolXteachingAchievements.getSub())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、学科为空,请您重新输入! ");
} else if (StringUtils.isEmpty(schoolXteachingAchievements.getClassName())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、班级为空,请您重新输入! ");
} else if (StringUtils.isEmpty(schoolXteachingAchievements.getClassType())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、班级类型为空,请您重新输入! ");
} else if (StringUtils.isNull(schoolXteachingAchievements.getAssessmentScore())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、考核分为空,请您重新输入! ");
} else {
//判断学年输入是否正确
String schoolYear = schoolXteachingAchievements.getSchoolYear();
if (!schoolYear.contains("-")){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、学年输入格式错误,请您重新输入! ");
}else {
String[] split = schoolYear.split("-");
if (split.length > 2){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、学年输入格式错误,请您重新输入! ");
} else if (!(split[0].matches("\\d+") && split[1].matches("\\d+"))){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、学年输入格式错误,请您重新输入! ");
}
}
//判断学期是否正确
for (SysDictData sysDictData : semester) {
if (!sysDictData.getDictValue().equals(schoolXteachingAchievements.getSemester())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、学期输入错误,请您重新输入! ");
}
}
//判断考试时间是否符合格式
Date examTime = schoolXteachingAchievements.getExamTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
sdf.parse(examTime.toString());
} catch (ParseException e) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、考试时间输入格式有误,请您重新输入! ");
}
//判断考试类型是否正确
for (SysDictData sysDictData : examType) {
if (!sysDictData.getDictValue().equals(schoolXteachingAchievements.getExamType())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、考试类型输入错误,请您重新输入! ");
}
}
//判断届别是否正确
if (!schoolXteachingAchievements.getYear().matches("\\d+")){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、届别输入错误,请您重新输入! ");
}
//判断年级是否正确
for (SysDictData sysDictData : grade) {
if (!sysDictData.getDictValue().equals(schoolXteachingAchievements.getGrade())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、年级输入错误,请您重新输入! ");
}
}
//判断学科是否正确
for (SysDictData sysDictData : sub) {
if (!sysDictData.getDictValue().equals(schoolXteachingAchievements.getSub())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、学科输入错误,请您重新输入! ");
}
}
//判断班级是否正确
String className = schoolXteachingAchievements.getClassName();
//将所有中文逗号替换成英文逗号
String newClassName = className.replaceAll(",", ",");
String[] split = newClassName.split(",");
for (int i = 0; i < split.length; i++) {
if (!split[i].matches("\\d+")){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、班级输入错误,请您重新输入! ");
}
}
//判断班级类型是否正确
String classType = schoolXteachingAchievements.getClassType();
//将所有中文逗号换成英文逗号
String newClassType = classType.replaceAll(",", ",");
String[] split1 = newClassType.split(",");
for (String ctype : split1) {
for (SysDictData sysDictData : type) {
if (!ctype.equals(sysDictData.getDictLabel())){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、班级类型输入错误,请您重新输入! ");
}
}
}
//判断考核分是否正确
if (!schoolXteachingAchievements.getAssessmentScore().toString().matches("\\d+(\\.\\d+)?")){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、考核分输入错误,请您重新输入! ");
}
//根据身份证号查询用户,是否存在
SchoolTeacher schoolTeacher = schoolTeacherMapper.selectTeacher(schoolXteachingAchievements.getIdCard());
if (StringUtils.isNull(schoolTeacher)){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、姓名为" + schoolXteachingAchievements.getUserName() + "的用户不存在,请您重新输入! ");
} else if (!schoolTeacher.getTeacherName().contains(schoolXteachingAchievements.getUserName())){
//判断输入的姓名与身份证查出来的用户名是否匹配
failureNum++;
failureMsg.append("<br/>" + failureNum + "、姓名为" + schoolXteachingAchievements.getUserName() + "的用户不存在,请您重新输入! ");
}
schoolXteachingAchievements.setUserId(schoolTeacher.getId());
}
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共" + failureNum + "条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
}
}
/**
* 导入教学成绩数据
* @param list
* @return
*/
@Override
public String importData(List<SchoolXteachingAchievements> list) {
StringBuilder successMsg = new StringBuilder();
//批量导入年度考核数据
boolean b = saveBatch(list);
if (!b){
throw new ServiceException("导入失败");
}
successMsg.insert(0, "恭喜您,数据已导入成功!");
return successMsg.toString();
}
}
package yangtz.cs.liu.campus.service.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.extension.service.IService;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessment;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentReq;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentVo;
import java.util.List;
/**
* 班主任考核Service接口
*
* @author ruoyi
* @date 2023-12-12
*/
public interface ISchoolAclassTeacherAssessmentService extends IService<SchoolAclassTeacherAssessment>
{
/**
* 查询班主任考核
*
* @param id 班主任考核主键
* @return 班主任考核
*/
public SchoolAclassTeacherAssessment selectSchoolAclassTeacherAssessmentById(Long id);
/**
* 查询班主任考核列表
*
* @param schoolAclassTeacherAssessment 班主任考核
* @return 班主任考核集合
*/
public List<SchoolAclassTeacherAssessmentVo> selectSchoolAclassTeacherAssessmentList(SchoolAclassTeacherAssessmentReq req);
public List<SchoolAclassTeacherAssessment> selectSchoolList(SchoolAclassTeacherAssessmentReq req);
/**
* 新增班主任考核
*
* @param schoolAclassTeacherAssessment 班主任考核
* @return 结果
*/
public int insertSchoolAclassTeacherAssessment(SchoolAclassTeacherAssessment schoolAclassTeacherAssessment);
/**
* 修改班主任考核
*
* @param schoolAclassTeacherAssessment 班主任考核
* @return 结果
*/
public int updateSchoolAclassTeacherAssessment(SchoolAclassTeacherAssessment schoolAclassTeacherAssessment);
/**
* 批量删除班主任考核
*
* @param ids 需要删除的班主任考核主键集合
* @return 结果
*/
public int deleteSchoolAclassTeacherAssessmentByIds(Long[] ids);
/**
* 删除班主任考核信息
*
* @param id 班主任考核主键
* @return 结果
*/
public int deleteSchoolAclassTeacherAssessmentById(Long id);
}
package yangtz.cs.liu.campus.service.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.extension.service.IService;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkload;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkloadExport;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkloadVo;
import java.util.List;
/**
* 工作量信息Service接口
*
* @author ruoyi
* @date 2023-12-11
*/
public interface ISchoolAworkloadService extends IService<SchoolAworkload>
{
/**
* 查询工作量信息
*
* @param id 工作量信息主键
* @return 工作量信息
*/
public SchoolAworkload selectSchoolAworkloadById(Long id);
/**
* 查询工作量信息列表
*
* @param schoolAworkload 工作量信息
* @return 工作量信息集合
*/
public List<SchoolAworkloadVo> selectSchoolAworkloadList(SchoolAworkload schoolAworkload);
//导出列表
public List<SchoolAworkloadExport> selectAworkloadList(SchoolAworkload schoolAworkload);
/**
* 新增工作量信息
*
* @param schoolAworkload 工作量信息
* @return 结果
*/
public int insertSchoolAworkload(SchoolAworkload schoolAworkload);
/**
* 修改工作量信息
*
* @param schoolAworkload 工作量信息
* @return 结果
*/
public int updateSchoolAworkload(SchoolAworkload schoolAworkload);
/**
* 批量删除工作量信息
*
* @param ids 需要删除的工作量信息主键集合
* @return 结果
*/
public int deleteSchoolAworkloadByIds(Long[] ids);
/**
* 删除工作量信息信息
*
* @param id 工作量信息主键
* @return 结果
*/
public int deleteSchoolAworkloadById(Long id);
}
package yangtz.cs.liu.campus.service.schoolNewTeacherDzdn;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXacademicWorks;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXacademicWorksVo;
import java.util.List;
/**
......@@ -17,15 +19,15 @@ public interface ISchoolXacademicWorksService
* @param id 论文著作主键
* @return 论文著作
*/
public SchoolXacademicWorks selectSchoolXacademicWorksById(Long id);
public SchoolXacademicWorksVo selectSchoolXacademicWorksById(Long id);
/**
* 查询论文著作列表
*
* @param schoolXacademicWorks 论文著作
* @param schoolXacademicWorksVo 论文著作
* @return 论文著作集合
*/
public List<SchoolXacademicWorks> selectSchoolXacademicWorksList(SchoolXacademicWorks schoolXacademicWorks);
public List<SchoolXacademicWorksVo> selectSchoolXacademicWorksList(SchoolXacademicWorksVo schoolXacademicWorksVo);
/**
* 新增论文著作
......@@ -58,4 +60,12 @@ public interface ISchoolXacademicWorksService
* @return 结果
*/
public int deleteSchoolXacademicWorksById(Long id);
/**
* 审核
* @param schoolXacademicWorks
* @return
*/
int audit(SchoolXacademicWorks schoolXacademicWorks);
}
package yangtz.cs.liu.campus.service.schoolNewTeacherDzdn;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXcomprehensiveHonors;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXcomprehensiveHonorsVo;
import java.util.List;
......@@ -18,15 +19,15 @@ public interface ISchoolXcomprehensiveHonorsService
* @param id 综合荣誉主键
* @return 综合荣誉
*/
public SchoolXcomprehensiveHonors selectSchoolXcomprehensiveHonorsById(Long id);
public SchoolXcomprehensiveHonorsVo selectSchoolXcomprehensiveHonorsById(Long id);
/**
* 查询综合荣誉列表
*
* @param schoolXcomprehensiveHonors 综合荣誉
* @param schoolXcomprehensiveHonorsVo 综合荣誉
* @return 综合荣誉集合
*/
public List<SchoolXcomprehensiveHonors> selectSchoolXcomprehensiveHonorsList(SchoolXcomprehensiveHonors schoolXcomprehensiveHonors);
public List<SchoolXcomprehensiveHonorsVo> selectSchoolXcomprehensiveHonorsList(SchoolXcomprehensiveHonorsVo schoolXcomprehensiveHonorsVo);
/**
* 新增综合荣誉
......@@ -59,4 +60,12 @@ public interface ISchoolXcomprehensiveHonorsService
* @return 结果
*/
public int deleteSchoolXcomprehensiveHonorsById(Long id);
/**
* 审核
* @param schoolXcomprehensiveHonors
* @return
*/
int audit(SchoolXcomprehensiveHonors schoolXcomprehensiveHonors);
}
package yangtz.cs.liu.campus.service.schoolNewTeacherDzdn;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXlectureAwards;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXlectureAwardsVo;
import java.util.List;
......@@ -18,15 +19,15 @@ public interface ISchoolXlectureAwardsService
* @param id 讲课获奖主键
* @return 讲课获奖
*/
public SchoolXlectureAwards selectSchoolXlectureAwardsById(Long id);
public SchoolXlectureAwardsVo selectSchoolXlectureAwardsById(Long id);
/**
* 查询讲课获奖列表
*
* @param schoolXlectureAwards 讲课获奖
* @param schoolXlectureAwardsVo 讲课获奖
* @return 讲课获奖集合
*/
public List<SchoolXlectureAwards> selectSchoolXlectureAwardsList(SchoolXlectureAwards schoolXlectureAwards);
public List<SchoolXlectureAwardsVo> selectSchoolXlectureAwardsList(SchoolXlectureAwardsVo schoolXlectureAwardsVo);
/**
* 新增讲课获奖
......@@ -59,4 +60,11 @@ public interface ISchoolXlectureAwardsService
* @return 结果
*/
public int deleteSchoolXlectureAwardsById(Long id);
/**
* 审核
* @param schoolXlectureAwards
* @return
*/
int audit(SchoolXlectureAwards schoolXlectureAwards);
}
package yangtz.cs.liu.campus.service.schoolNewTeacherDzdn;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXteacherAwards;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteacherAwardsVo;
import java.util.List;
......@@ -18,15 +19,15 @@ public interface ISchoolXteacherAwardsService
* @param id 教师获奖主键
* @return 教师获奖
*/
public SchoolXteacherAwards selectSchoolXteacherAwardsById(Long id);
public SchoolXteacherAwardsVo selectSchoolXteacherAwardsById(Long id);
/**
* 查询教师获奖列表
*
* @param schoolXteacherAwards 教师获奖
* @param schoolXteacherAwardsVo 教师获奖
* @return 教师获奖集合
*/
public List<SchoolXteacherAwards> selectSchoolXteacherAwardsList(SchoolXteacherAwards schoolXteacherAwards);
public List<SchoolXteacherAwardsVo> selectSchoolXteacherAwardsList(SchoolXteacherAwardsVo schoolXteacherAwardsVo);
/**
* 新增教师获奖
......@@ -59,4 +60,11 @@ public interface ISchoolXteacherAwardsService
* @return 结果
*/
public int deleteSchoolXteacherAwardsById(Long id);
/**
* 审核
* @param schoolXteacherAwards
* @return
*/
int audit(SchoolXteacherAwards schoolXteacherAwards);
}
package yangtz.cs.liu.campus.service.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.entity.SysUser;
import yangtz.cs.liu.campus.domain.schoolAnnualAssessment.SchoolAnnualAssessment;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXteachingAchievements;
import yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteachingAchievementsVo;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 教学成绩Service接口
......@@ -10,7 +16,7 @@ import java.util.List;
* @author ruoyi
* @date 2023-12-06
*/
public interface ISchoolXteachingAchievementsService
public interface ISchoolXteachingAchievementsService extends IService<SchoolXteachingAchievements>
{
/**
* 查询教学成绩
......@@ -18,15 +24,15 @@ public interface ISchoolXteachingAchievementsService
* @param id 教学成绩主键
* @return 教学成绩
*/
public SchoolXteachingAchievements selectSchoolXteachingAchievementsById(Long id);
public SchoolXteachingAchievementsVo selectSchoolXteachingAchievementsById(Long id);
/**
* 查询教学成绩列表
*
* @param schoolXteachingAchievements 教学成绩
* @param schoolXteachingAchievementsVo 教学成绩
* @return 教学成绩集合
*/
public List<SchoolXteachingAchievements> selectSchoolXteachingAchievementsList(SchoolXteachingAchievements schoolXteachingAchievements);
public List<SchoolXteachingAchievementsVo> selectSchoolXteachingAchievementsList(SchoolXteachingAchievementsVo schoolXteachingAchievementsVo);
/**
* 新增教学成绩
......@@ -59,4 +65,29 @@ public interface ISchoolXteachingAchievementsService
* @return 结果
*/
public int deleteSchoolXteachingAchievementsById(Long id);
/**
* 获取所有用户
* @return
*/
List<Map<String,Object>> getUserList(SysUser sysUser);
/**
* 下载模板
* @param response
*/
void importTemplate(HttpServletResponse response);
/**
* 校验导入数据
* @param list
*/
void checkImport(List<SchoolXteachingAchievements> list);
/**
* 导入数据
* @param list
* @return
*/
String importData(List<SchoolXteachingAchievements> list);
}
package yangtz.cs.liu.campus.service.teacherFiles;
package yangtz.cs.liu.campus.service.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;
import yangtz.cs.liu.campus.domain.teacherFiles.SchoolTeacherBasicInformation;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformation;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformationVo;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.util.List;
public interface SchoolTeacherBasichlnformationService extends IService<SchoolTeacherBasicInformation> {
List<SchoolTeacherBasicInformation> list(SchoolTeacherBasicInformation information) throws Exception;
List<SchoolTeacherBasicInformationVo> list(SchoolTeacherBasicInformationVo information) throws Exception;
SchoolTeacherBasicInformation getById(Long id) throws ParseException;
SchoolTeacherBasicInformationVo getByIds(Long id) throws ParseException;
int updateInformationById(SchoolTeacherBasicInformation information);
/*
* 批量导入学生照片
* */
String importTeacherPicture(MultipartFile file);
List<SchoolTeacherBasicInformation> importExcel(MultipartFile inputStream) throws IOException;
......
package yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.Date;
@Data
public class SchoolXacademicWorksVo
{
@Excel(name = "序号")
private Integer xh;
/** 成长类型 */
@Excel(name = "成长类型")
private String growthType;
/** 主键id */
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 学科 */
@Excel(name = "学科",combo = {"语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","体育","美术","技术","心理","书法"},
readConverterExp = "1=语文,2=数学,3=英语,4=物理,5=化学,6=生物,7=政治,8=历史,9=地理,10=音乐,11=体育,12=美术,13=技术,14=心理,15=书法")
private String sub;
/** 获奖类别 */
@Excel(name = "获奖类别",combo = {"论著-独著","论文-公开发表","论著-合著(编者)","论文-核心期刊","论著-合著(主编)","论著-合著(副主编)","其他"},
readConverterExp = "1=论著-独著,2=论文-公开发表,3=论著-合著(编者),4=论文-核心期刊,5=论著-合著(主编),6=论著-合著(副主编),7=其他")
private String awardType;
/** 获奖级别 */
@Excel(name = "获奖级别",combo = {"国家级","省部级","市级","县区级","校级","其他"},readConverterExp = "1=国家级,2=省部级,3=市级,4=县区级,5=校级,6=其他")
private String awardRank;
/** 获奖等级 */
@Excel(name = "获奖等级",combo = {"特等奖","一等奖","二等奖","三等奖","优秀奖","不设等级"},readConverterExp = "1=特等奖,2=一等奖,3=二等级,4=三等奖,5=优秀奖,6=不设等级")
private String awardLevel;
/** 成果名称 */
@Excel(name = "成果名称")
private String resultName;
/** 获奖人id */
private Long userId;
/** 获奖人 */
@Excel(name = "获奖者")
private String userName;
/** 主办单位 */
@Excel(name = "主办单位")
private String org;
/** 获奖时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "获奖时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date awardTime;
/** 备注 */
@Excel(name = "备注")
private String remark;
/** 证书图片名称 */
private String pictureName;
/** 证书图片地址 */
private String pictureUrl;
/** 审核状态(0未提交,1审核中,2通过,3驳回) */
private String auditState;
/** 创建者 */
private String createBy;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/** 更新者 */
private String updateBy;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/** 删除状态 */
private String delFlag;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
}
package yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.Date;
@Data
public class SchoolXcomprehensiveHonorsVo
{
@Excel(name = "序号")
private Integer xh;
/** 成长类型 */
@Excel(name = "成长类型")
private String growthType;
/** 主键id */
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 学科(下拉框) */
@Excel(name = "学科",combo = {"语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","体育","美术","技术","心理","书法"},
readConverterExp = "1=语文,2=数学,3=英语,4=物理,5=化学,6=生物,7=政治,8=历史,9=地理,10=音乐,11=体育,12=美术,13=技术,14=心理,15=书法")
private String sub;
/** 获奖类别(手动输入) */
@Excel(name = "获奖类别")
private String awardType;
/** 获奖级别(下拉框) */
@Excel(name = "获奖级别",combo = {"国家级","省部级","市级","县区级","校级","其他"},readConverterExp = "1=国家级,2=省部级,3=市级,4=县区级,5=校级,6=其他")
private String awardRank;
/** 获奖等级(下拉框) */
@Excel(name = "获奖等级",combo = {"特等奖","一等奖","二等奖","三等奖","优秀奖","不设等级"},readConverterExp = "1=特等奖,2=一等奖,3=二等级,4=三等奖,5=优秀奖,6=不设等级")
private String awardLevel;
/** 成果名称 */
@Excel(name = "成果名称")
private String resultName;
/** 获奖人id */
private Long userId;
/** 获奖人 */
@Excel(name = "获奖者")
private String userName;
/** 主办单位 */
@Excel(name = "主办单位")
private String org;
/** 获奖时间(年月日) */
@Excel(name = "获奖时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date awardTime;
/** 备注 */
@Excel(name = "备注")
private String remark;
/** 证书图片名称 */
private String pictureName;
/** 证书图片地址 */
private String pictureUrl;
/** 审核状态(0未提交,1审核中,2通过,3驳回) */
private String auditState;
/** 创建者 */
private String createBy;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/** 更新者 */
private String updateBy;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/** 删除状态 */
private String delFlag;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
}
package yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.Date;
@Data
public class SchoolXlectureAwardsVo
{
/** 主键id */
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 序号 */
@Excel(name = "序号")
private Integer xh;
/** 成长类型 */
@Excel(name = "成长类型")
private String growthType;
/** 学科 */
@Excel(name = "学科",combo = {"语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","体育","美术","技术","心理","书法"},
readConverterExp = "1=语文,2=数学,3=英语,4=物理,5=化学,6=生物,7=政治,8=历史,9=地理,10=音乐,11=体育,12=美术,13=技术,14=心理,15=书法")
private String sub;
/** 获奖类别 */
@Excel(name = "获奖类别",combo = {"优质课","公开课","优课","其他","说课","经验介绍","示范课"},readConverterExp = "1=优质课,2=公开课,3=优课,4=其他,5=说课,6=经验介绍,7=示范课")
private String awardType;
/** 获奖级别 */
@Excel(name = "获奖级别",combo = {"国家级","省部级","市级","县区级","校级","其他"},readConverterExp = "1=国家级,2=省部级,3=市级,4=县区级,5=校级,6=其他")
private String awardRank;
/** 获奖等级 */
@Excel(name = "获奖等级",combo = {"特等奖","一等奖","二等奖","三等奖","优秀奖","不设等级"},readConverterExp = "1=特等奖,2=一等奖,3=二等级,4=三等奖,5=优秀奖,6=不设等级")
private String awardLevel;
/** 成果名称 */
@Excel(name = "成果名称")
private String resultName;
/** 获奖人id */
private Long userId;
/** 获奖人 */
@Excel(name = "获奖者")
private String userName;
/** 主办单位 */
@Excel(name = "主办单位")
private String org;
/** 获奖时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "获奖时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date awardTime;
/** 备注 */
@Excel(name = "备注")
private String remark;
/** 证书图片名称 */
private String pictureName;
/** 证书图片地址 */
private String pictureUrl;
/** 审核状态(0未提交,1审核中,2通过,3驳回) */
private String auditState;
/** 创建者 */
private String createBy;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/** 更新者 */
private String updateBy;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/** 删除状态 */
private String delFlag;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
}
package yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.Date;
@Data
public class SchoolXteacherAwardsVo
{
/** 主键id */
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 序号 */
@Excel(name = "序号")
private Integer xh;
/** 成长类型 */
@Excel(name = "成长类型")
private String growthType;
/** 学科 */
@Excel(name = "学科",combo = {"语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","体育","美术","技术","心理","书法"},
readConverterExp = "1=语文,2=数学,3=英语,4=物理,5=化学,6=生物,7=政治,8=历史,9=地理,10=音乐,11=体育,12=美术,13=技术,14=心理,15=书法")
private String sub;
/** 获奖类别 */
@Excel(name = "获奖类别",combo = {"学科带头人","教学能手","教学科研专家","教学科研成果","增量优秀班主任","高考功勋班主任","教学资源","其他","高考功勋教师",
"增量优秀教师","市高考评奖"},readConverterExp = "1=学科带头人,2=教学能手,3=教学科研专家,4=教学科研成果,5=增量优秀班主任,6=高考功勋班主任,7=教学资源," +
"8=其他,9=高考功勋教师,10=增量优秀教师,11=市高考评奖")
private String awardType;
/** 获奖级别 */
@Excel(name = "获奖级别",combo = {"国家级","省部级","市级","县区级","校级","其他"},readConverterExp = "1=国家级,2=省部级,3=市级,4=县区级,5=校级,6=其他")
private String awardRank;
/** 获奖等级 */
@Excel(name = "获奖等级",combo = {"特等奖","一等奖","二等奖","三等奖","优秀奖","不设等级"},readConverterExp = "1=特等奖,2=一等奖,3=二等级,4=三等奖,5=优秀奖,6=不设等级")
private String awardLevel;
/** 成果名称 */
@Excel(name = "成果名称")
private String resultName;
/** 获奖人id */
private Long userId;
/** 获奖人 */
@Excel(name = "获奖者")
private String userName;
/** 主办单位 */
@Excel(name = "主办单位")
private String org;
/** 获奖时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "获奖时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date awardTime;
/** 备注 */
@Excel(name = "备注")
private String remark;
/** 证书图片名称 */
private String pictureName;
/** 证书图片地址 */
private String pictureUrl;
/** 审核状态(0未提交,1审核中,2通过,3驳回) */
private String auditState;
/** 创建者 */
private String createBy;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/** 更新者 */
private String updateBy;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/** 删除状态 */
private String delFlag;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
}
package yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class SchoolXteachingAchievementsVo {
/** 主键id */
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@Excel(name = "序号")
private Integer xh;
/** 学年(下拉框) */
@Excel(name = "学年",combo = {"2018-2019","2019-2020","2020-2021","2021-2022","2022-2023","2023-2024","2024-2025","2025-2026",
"2026-2027","2027-2028","2028-2029","2029-2030","2030-2031","2031-2032","2032-2033"})
private String schoolYear;
/** 学期(下拉框) */
@Excel(name = "学期",combo = {"第一学期","第二学期"}, readConverterExp = "1=第一学期,2=第二学期")
private String semester;
/** 考试时间(年月日) */
@Excel(name = "考试时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date examTime;
/** 考试类型(下拉框) */
@Excel(name = "考试类型",combo = {"月考","期中","期末","一模","二模","三模","高考","其它"},
readConverterExp = "1=月考,2=期中,3=期末,4=一模,5=二模,6=三模,7=高考,8=其它")
private String examType;
/** 届别(下拉框) */
@Excel(name = "届别", combo = {"2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033"})
private String year;
/** 年级(下拉框) */
@Excel(name = "年级", combo = {"高一","高二","高三"})
private String grade;
/** 用户id */
private Long userId;
/** 用户姓名 */
@Excel(name = "姓名")
private String userName;
/** 身份证号 */
private String idCard;
/** 学科 */
@Excel(name = "学科",combo = {"语文","数学","英语","物理","化学","生物","政治","历史","地理","音乐","体育","美术","技术","心理","书法"},
readConverterExp = "1=语文,2=数学,3=英语,4=物理,5=化学,6=生物,7=政治,8=历史,9=地理,10=音乐,11=体育,12=美术,13=技术,14=心理,15=书法")
private String sub;
/** 班级 */
@Excel(name = "班级")
private String className;
/** 班级类型 */
@Excel(name = "班级类型")
private String classType;
/** 考核分 */
@Excel(name = "考核分")
private BigDecimal assessmentScore;
/** 创建者 */
private String createBy;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/** 更新者 */
private String updateBy;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/** 备注 */
private String remark;
/** 删除状态 */
private String delFlag;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
}
......@@ -2,6 +2,8 @@ package yangtz.cs.liu.wechat.controller.courseSelection;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.AjaxResult;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
......@@ -38,32 +40,34 @@ public class WxCouresSelection {
ICurriculaVariableService iCurriculaVariableService;
/**
* 学生选信息查询
* 学生选信息查询
*/
@GetMapping("/getCourseInfo/{studentId}/{id}")
private AjaxResult getCourseInfo(@PathVariable("studentId") Long studentId,@PathVariable("id") Long id) {
@GetMapping("/getCourseInfo/{studentId}")
private AjaxResult getCourseInfo(@PathVariable("studentId") Long studentId) {
List<CurriclaStudentVo> CurriclaStudentVoList = new ArrayList<>();
//查询学生个人选课信息
LambdaQueryWrapper<CurriculaStudent> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CurriculaStudent::getStudentId, studentId);
wrapper.eq(CurriculaStudent::getDelFlag, "0");
wrapper.eq(CurriculaStudent::getCurriculaId, id);
//查询出学生任务信息
CurriculaStudent one = iCurriculaStudentService.getOne(wrapper);
List<CurriculaStudent> list = iCurriculaStudentService.list(wrapper);
//判断当前学生是否可以选课
Boolean flag = false;
Boolean stats = false;
CurriculaVariable byId = null;
//1.是否有选课任务
if (null == one) {
if (list.isEmpty()) {
flag = true;
}
//是否在选课时间内
if (null != one) {
byId = iCurriculaVariableService.getById(one.getCurriculaId());
if (!list.isEmpty()) {
for (CurriculaStudent dates :list){
byId = iCurriculaVariableService.getById(dates.getCurriculaId());
//查询选课信息
if (null == byId) {
return AjaxResult.error("选课主题丢失,请联系管理员");
}
//设置当前时间
Calendar date = Calendar.getInstance();
date.setTime(new Date());
......@@ -81,23 +85,28 @@ public class WxCouresSelection {
}
//判断当前否结束选课
if (date.after(endDade)){
flag=false;
stats = true;
flag=true;
}
}
if (flag) {
return new AjaxResult(2000, "当前没有选课任务");
}
//判断当时时间是否选课之后
CurriclaStudentVo data = new CurriclaStudentVo();
//拼接返回对象
BeanUtils.copyProperties(one, data);
BeanUtils.copyProperties(dates, data);
BeanUtils.copyProperties(byId, data);
data.setId(one.getId());
data.setFlag(stats);
return AjaxResult.success(data);
data.setId(dates.getId());
data.setFlag(flag);
CurriclaStudentVoList.add(data);
}
}
return AjaxResult.success(CurriclaStudentVoList);
}
/**
* 学生选课信息查询
*/
@GetMapping("/getStudenCoures/{id}")
public AjaxResult getStudenCoures(@PathVariable("id") Long id){
return AjaxResult.success(iCurriculaStudentService.getById(id));
}
/**
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentMapper">
<resultMap type="SchoolAclassTeacherAssessment" id="SchoolAclassTeacherAssessmentResult">
<result property="id" column="id" />
<result property="semester" column="semester" />
<result property="year" column="year" />
<result property="schoolYear" column="school_year" />
<result property="grade" column="grade" />
<result property="className" column="class_name" />
<result property="teacherName" column="teacher_name" />
<result property="idCard" column="id_card" />
<result property="moralEduCheckAchievement" column="moral_edu_check_achievement" />
<result property="intellEduCheckAchievement" column="intell_edu_check_achievement" />
<result property="totalCheckAchievement" column="total_check_achievement" />
<result property="classType" column="class_type" />
<result property="sub" column="sub" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectSchoolAclassTeacherAssessmentVo">
select id, semester, year, school_year, grade, class_name, teacher_name, id_card, moral_edu_check_achievement, intell_edu_check_achievement, total_check_achievement, class_type, sub, remark, create_by, create_time, update_by, update_time, del_flag from school_aclass_teacher_assessment
</sql>
<select id="selectSchoolAclassTeacherAssessmentList" parameterType="SchoolAclassTeacherAssessmentReq" resultType="yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAclassTeacherAssessmentVo">
<include refid="selectSchoolAclassTeacherAssessmentVo"/>
where del_flag = 0
<if test="teacherName != null and teacherName != ''"> and teacher_name like concat('%', #{teacherName}, '%')</if>
<if test="schoolYear != null and schoolYear != ''"> and school_year = #{schoolYear}</if>
<if test="year != null and year != ''"> and year = #{year}</if>
<if test="semester != null and semester != ''"> and semester = #{semester}</if>
<if test="grade != null and grade != ''"> and grade = #{grade}</if>
<if test="classType != null and classType != ''"> and class_type = #{classType}</if>
<if test="className != null and className != ''"> and class_name like concat('%', #{className}, '%')</if>
<if test="moralEduCheckAchievement != null and moralEduCheckAchievement != ''"> and moral_edu_check_achievement = #{moralEduCheckAchievement}</if>
<if test="moralEduCheckAchievementgt != null and moralEduCheckAchievementgt != ''"> and moral_edu_check_achievement &gt; #{moralEduCheckAchievementgt}</if>
<if test="moralEduCheckAchievementgtd != null and moralEduCheckAchievementgtd != ''"> and moral_edu_check_achievement &gt;= #{moralEduCheckAchievementgtd}</if>
<if test="moralEduCheckAchievementlt != null and moralEduCheckAchievementlt != ''"> and moral_edu_check_achievement &lt; #{moralEduCheckAchievementlt}</if>
<if test="moralEduCheckAchievementltd != null and moralEduCheckAchievementltd != ''"> and moral_edu_check_achievement &lt;= #{moralEduCheckAchievementltd}</if>
<if test="intellEduCheckAchievement != null and intellEduCheckAchievement != ''"> and intell_edu_check_achievement = #{intellEduCheckAchievement}</if>
<if test="intellEduCheckAchievementgt != null and intellEduCheckAchievementgt != ''"> and intell_edu_check_achievement &gt; #{intellEduCheckAchievementgt}</if>
<if test="intellEduCheckAchievementgtd != null and intellEduCheckAchievementgtd != ''"> and intell_edu_check_achievement &gt;= #{intellEduCheckAchievementgtd}</if>
<if test="intellEduCheckAchievementlt != null and intellEduCheckAchievementlt != ''"> and intell_edu_check_achievement &lt; #{intellEduCheckAchievementlt}</if>
<if test="intellEduCheckAchievementltd != null and intellEduCheckAchievementltd != ''"> and intell_edu_check_achievement &lt;= #{intellEduCheckAchievementltd}</if>
</select>
<select id="selectSchoolList" parameterType="SchoolAclassTeacherAssessmentReq" resultMap="SchoolAclassTeacherAssessmentResult">
<include refid="selectSchoolAclassTeacherAssessmentVo"/>
where del_flag = 0
<if test="teacherName != null and teacherName != ''"> and teacher_name like concat('%', #{teacherName}, '%')</if>
<if test="schoolYear != null and schoolYear != ''"> and school_year = #{schoolYear}</if>
<if test="year != null and year != ''"> and year = #{year}</if>
<if test="semester != null and semester != ''"> and semester = #{semester}</if>
<if test="grade != null and grade != ''"> and grade = #{grade}</if>
<if test="classType != null and classType != ''"> and class_type = #{classType}</if>
<if test="className != null and className != ''"> and class_name like concat('%', #{className}, '%')</if>
<if test="moralEduCheckAchievement != null and moralEduCheckAchievement != ''"> and moral_edu_check_achievement = #{moralEduCheckAchievement}</if>
<if test="moralEduCheckAchievementgt != null and moralEduCheckAchievementgt != ''"> and moral_edu_check_achievement &gt; #{moralEduCheckAchievementgt}</if>
<if test="moralEduCheckAchievementgtd != null and moralEduCheckAchievementgtd != ''"> and moral_edu_check_achievement &gt;= #{moralEduCheckAchievementgtd}</if>
<if test="moralEduCheckAchievementlt != null and moralEduCheckAchievementlt != ''"> and moral_edu_check_achievement &lt; #{moralEduCheckAchievementlt}</if>
<if test="moralEduCheckAchievementltd != null and moralEduCheckAchievementltd != ''"> and moral_edu_check_achievement &lt;= #{moralEduCheckAchievementltd}</if>
<if test="intellEduCheckAchievement != null and intellEduCheckAchievement != ''"> and intell_edu_check_achievement = #{intellEduCheckAchievement}</if>
<if test="intellEduCheckAchievementgt != null and intellEduCheckAchievementgt != ''"> and intell_edu_check_achievement &gt; #{intellEduCheckAchievementgt}</if>
<if test="intellEduCheckAchievementgtd != null and intellEduCheckAchievementgtd != ''"> and intell_edu_check_achievement &gt;= #{intellEduCheckAchievementgtd}</if>
<if test="intellEduCheckAchievementlt != null and intellEduCheckAchievementlt != ''"> and intell_edu_check_achievement &lt; #{intellEduCheckAchievementlt}</if>
<if test="intellEduCheckAchievementltd != null and intellEduCheckAchievementltd != ''"> and intell_edu_check_achievement &lt;= #{intellEduCheckAchievementltd}</if>
</select>
<select id="selectSchoolAclassTeacherAssessmentById" parameterType="Long" resultMap="SchoolAclassTeacherAssessmentResult">
<include refid="selectSchoolAclassTeacherAssessmentVo"/>
where id = #{id} and del_flag = 0
</select>
<insert id="insertSchoolAclassTeacherAssessment" parameterType="SchoolAclassTeacherAssessment" useGeneratedKeys="true" keyProperty="id">
insert into school_aclass_teacher_assessment
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="semester != null">semester,</if>
<if test="year != null">year,</if>
<if test="schoolYear != null">school_year,</if>
<if test="grade != null">grade,</if>
<if test="className != null">class_name,</if>
<if test="teacherName != null">teacher_name,</if>
<if test="idCard != null">id_card,</if>
<if test="moralEduCheckAchievement != null">moral_edu_check_achievement,</if>
<if test="intellEduCheckAchievement != null">intell_edu_check_achievement,</if>
<if test="totalCheckAchievement != null">total_check_achievement,</if>
<if test="classType != null">class_type,</if>
<if test="sub != null">sub,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="delFlag != null and delFlag != ''">del_flag,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="semester != null">#{semester},</if>
<if test="year != null">#{year},</if>
<if test="schoolYear != null">#{schoolYear},</if>
<if test="grade != null">#{grade},</if>
<if test="className != null">#{className},</if>
<if test="teacherName != null">#{teacherName},</if>
<if test="idCard != null">#{idCard},</if>
<if test="moralEduCheckAchievement != null">#{moralEduCheckAchievement},</if>
<if test="intellEduCheckAchievement != null">#{intellEduCheckAchievement},</if>
<if test="totalCheckAchievement != null">#{totalCheckAchievement},</if>
<if test="classType != null">#{classType},</if>
<if test="sub != null">#{sub},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="delFlag != null and delFlag != ''">#{delFlag},</if>
</trim>
</insert>
<update id="updateSchoolAclassTeacherAssessment" parameterType="SchoolAclassTeacherAssessment">
update school_aclass_teacher_assessment
<trim prefix="SET" suffixOverrides=",">
<if test="semester != null">semester = #{semester},</if>
<if test="year != null">year = #{year},</if>
<if test="schoolYear != null">school_year = #{schoolYear},</if>
<if test="grade != null">grade = #{grade},</if>
<if test="className != null">class_name = #{className},</if>
<if test="teacherName != null">teacher_name = #{teacherName},</if>
<if test="idCard != null">id_card = #{idCard},</if>
<if test="moralEduCheckAchievement != null">moral_edu_check_achievement = #{moralEduCheckAchievement},</if>
<if test="intellEduCheckAchievement != null">intell_edu_check_achievement = #{intellEduCheckAchievement},</if>
<if test="totalCheckAchievement != null">total_check_achievement = #{totalCheckAchievement},</if>
<if test="classType != null">class_type = #{classType},</if>
<if test="sub != null">sub = #{sub},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSchoolAclassTeacherAssessmentById" parameterType="Long">
delete from school_aclass_teacher_assessment where id = #{id}
</delete>
<delete id="deleteSchoolAclassTeacherAssessmentByIds" parameterType="String">
delete from school_aclass_teacher_assessment where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolAworkloadMapper">
<resultMap type="SchoolAworkload" id="SchoolAworkloadResult">
<result property="id" column="id" />
<result property="schoolYear" column="school_year" />
<result property="semester" column="semester" />
<result property="year" column="year" />
<result property="grade" column="grade" />
<result property="name" column="name" />
<result property="sub" column="sub" />
<result property="idCard" column="id_card" />
<result property="appointmentPost" column="appointment_post" />
<result property="appointmentPosition" column="appointment_position" />
<result property="appointmentSituation" column="appointment_situation" />
<result property="className" column="class_name" />
<result property="classType" column="class_type" />
<result property="earlyReading" column="early_reading" />
<result property="requiredCourses" column="required_courses" />
<result property="eveningSelfStudy" column="evening_self_study" />
<result property="userId" column="user_id" />
<result property="userName" column="user_name" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectSchoolAworkloadVo">
select id, school_year, semester, year, grade, name, sub, id_card, appointment_post, appointment_position, appointment_situation, class_name, class_type, early_reading, required_courses, evening_self_study, user_id, user_name, remark, create_by, create_time, update_by, update_time, del_flag from school_aworkload
</sql>
<select id="selectSchoolAworkloadList" parameterType="SchoolAworkload" resultType="yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkloadVo">
<include refid="selectSchoolAworkloadVo"/>
where del_flag = 0
<if test="schoolYear != null and schoolYear != ''"> and school_year = #{schoolYear}</if>
<if test="semester != null and semester != ''"> and semester = #{semester}</if>
<if test="year != null and year != ''"> and year = #{year}</if>
<if test="grade != null and grade != ''"> and grade = #{grade}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="sub != null and sub != ''"> and sub = #{sub}</if>
<if test="idCard != null and idCard != ''"> and id_card = #{idCard}</if>
<if test="appointmentPost != null and appointmentPost != ''">
and appointment_post like concat('%', #{appointmentPost}, '%')
</if>
<if test="appointmentPosition != null and appointmentPosition != ''"> and appointment_position = #{appointmentPosition}</if>
<if test="appointmentSituation != null and appointmentSituation != ''"> and appointment_situation = #{appointmentSituation}</if>
<if test="className != null and className != ''"> and class_name like concat('%', #{className}, '%')</if>
<if test="classType != null and classType != ''">
and class_type like concat('%', #{classType}, '%')
</if>
<if test="earlyReading != null "> and early_reading = #{earlyReading}</if>
<if test="requiredCourses != null "> and required_courses = #{requiredCourses}</if>
<if test="eveningSelfStudy != null "> and evening_self_study = #{eveningSelfStudy}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
</select>
<select id="selectAworkloadList" parameterType="SchoolAworkload" resultType="yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkloadExport">
<include refid="selectSchoolAworkloadVo"/>
where del_flag = 0
<if test="schoolYear != null and schoolYear != ''"> and school_year = #{schoolYear}</if>
<if test="semester != null and semester != ''"> and semester = #{semester}</if>
<if test="year != null and year != ''"> and year = #{year}</if>
<if test="grade != null and grade != ''"> and grade = #{grade}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="sub != null and sub != ''"> and sub = #{sub}</if>
<if test="idCard != null and idCard != ''"> and id_card = #{idCard}</if>
<if test="appointmentPost != null and appointmentPost != ''">
and appointment_post like concat('%', #{appointmentPost}, '%')
</if>
<if test="appointmentPosition != null and appointmentPosition != ''"> and appointment_position = #{appointmentPosition}</if>
<if test="appointmentSituation != null and appointmentSituation != ''"> and appointment_situation = #{appointmentSituation}</if>
<if test="className != null and className != ''"> and class_name like concat('%', #{className}, '%')</if>
<if test="classType != null and classType != ''">
and class_type like concat('%', #{classType}, '%')
</if>
<if test="earlyReading != null "> and early_reading = #{earlyReading}</if>
<if test="requiredCourses != null "> and required_courses = #{requiredCourses}</if>
<if test="eveningSelfStudy != null "> and evening_self_study = #{eveningSelfStudy}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
</select>
<select id="selectSchoolAworkloadById" parameterType="Long" resultMap="SchoolAworkloadResult">
<include refid="selectSchoolAworkloadVo"/>
where id = #{id} and del_flag = 0
</select>
<insert id="insertSchoolAworkload" parameterType="SchoolAworkload" useGeneratedKeys="true" keyProperty="id">
insert into school_aworkload
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="schoolYear != null">school_year,</if>
<if test="semester != null">semester,</if>
<if test="year != null">year,</if>
<if test="grade != null">grade,</if>
<if test="name != null">name,</if>
<if test="sub != null">sub,</if>
<if test="idCard != null">id_card,</if>
<if test="appointmentPost != null">appointment_post,</if>
<if test="appointmentPosition != null">appointment_position,</if>
<if test="appointmentSituation != null">appointment_situation,</if>
<if test="className != null">class_name,</if>
<if test="classType != null">class_type,</if>
<if test="earlyReading != null">early_reading,</if>
<if test="requiredCourses != null">required_courses,</if>
<if test="eveningSelfStudy != null">evening_self_study,</if>
<if test="userId != null">user_id,</if>
<if test="userName != null">user_name,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="delFlag != null and delFlag != ''">del_flag,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="schoolYear != null">#{schoolYear},</if>
<if test="semester != null">#{semester},</if>
<if test="year != null">#{year},</if>
<if test="grade != null">#{grade},</if>
<if test="name != null">#{name},</if>
<if test="sub != null">#{sub},</if>
<if test="idCard != null">#{idCard},</if>
<if test="appointmentPost != null">#{appointmentPost},</if>
<if test="appointmentPosition != null">#{appointmentPosition},</if>
<if test="appointmentSituation != null">#{appointmentSituation},</if>
<if test="className != null">#{className},</if>
<if test="classType != null">#{classType},</if>
<if test="earlyReading != null">#{earlyReading},</if>
<if test="requiredCourses != null">#{requiredCourses},</if>
<if test="eveningSelfStudy != null">#{eveningSelfStudy},</if>
<if test="userId != null">#{userId},</if>
<if test="userName != null">#{userName},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="delFlag != null and delFlag != ''">#{delFlag},</if>
</trim>
</insert>
<update id="updateSchoolAworkload" parameterType="SchoolAworkload">
update school_aworkload
<trim prefix="SET" suffixOverrides=",">
<if test="schoolYear != null">school_year = #{schoolYear},</if>
<if test="semester != null">semester = #{semester},</if>
<if test="year != null">year = #{year},</if>
<if test="grade != null">grade = #{grade},</if>
<if test="name != null">name = #{name},</if>
<if test="sub != null">sub = #{sub},</if>
<if test="idCard != null">id_card = #{idCard},</if>
<if test="appointmentPost != null">appointment_post = #{appointmentPost},</if>
<if test="appointmentPosition != null">appointment_position = #{appointmentPosition},</if>
<if test="appointmentSituation != null">appointment_situation = #{appointmentSituation},</if>
<if test="className != null">class_name = #{className},</if>
<if test="classType != null">class_type = #{classType},</if>
<if test="earlyReading != null">early_reading = #{earlyReading},</if>
<if test="requiredCourses != null">required_courses = #{requiredCourses},</if>
<if test="eveningSelfStudy != null">evening_self_study = #{eveningSelfStudy},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="userName != null">user_name = #{userName},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSchoolAworkloadById" parameterType="Long">
delete from school_aworkload where id = #{id}
</delete>
<delete id="deleteSchoolAworkloadByIds" parameterType="String">
delete from school_aworkload where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
......@@ -2,12 +2,12 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="yangtz.cs.liu.campus.mapper.teacherFiles.SchoolTeacherBasichlnformationMapper">
<mapper namespace="yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolTeacherBasichlnformationMapper">
<sql id="selectSchoolTeacherBasicInformationVo">
select id, name, id_card, sex, file_birth_date, birth_date, hometown, nation, political_landscape, party_membership_time, teaching_subject, current_professional_title, current_professional_title_time, current_hiring_professional_title, current_hiring_professional_title_time, current_position, current_job_level, current_job_level_appointment_time, duties, teacher_qualification_type, teacher_qualification_certificate_num, working_hours, to_second_middle_school_time, length_of_teacher_time, length_of_service_time, on_duty_situation, current_situation, graduation_institution1, major1, graduation_time1, graduation_institution2, major2, graduation_time2, graduation_institution3, major3, graduation_time3, first_degree, last_degree, degree, work_experience, remark, photo_name, photo_url, dd_phone, del_flag from school_teacher_basic_information
</sql>
<select id="list" resultType="yangtz.cs.liu.campus.domain.teacherFiles.SchoolTeacherBasicInformation" parameterType="yangtz.cs.liu.campus.domain.teacherFiles.SchoolTeacherBasicInformation">
<select id="list" resultType="yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformationVo" parameterType="yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformationVo">
SELECT id,name,sex,id_card,file_birth_date,political_landscape,to_second_middle_school_time,current_professional_title,last_degree,on_duty_situation FROM school_teacher_basic_information where del_flag = 0
<if test="teachingSubject != null "> and teaching_subject = #{teachingSubject}</if>
<if test="name != null ">
......@@ -38,10 +38,60 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectById" resultType="yangtz.cs.liu.campus.domain.teacherFiles.SchoolTeacherBasicInformation" parameterType="Long">
<select id="selectById" resultType="yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolTeacherBasicInformationVo" parameterType="Long">
<include refid="selectSchoolTeacherBasicInformationVo"/>
where id =#{id}
where id =#{id} and del_flag = 0
</select>
<update id="updateInformationById" parameterType="SchoolTeacherBasicInformation">
update school_teacher_basic_information
<trim prefix="SET" suffixOverrides=",">
<if test="name != null and name != ''">name = #{name},</if>
<if test="idCard != null and idCard != ''">id_card = #{idCard},</if>
<if test="sex != null">sex = #{sex},</if>
<if test="fileBirthDate != null">file_birth_date = #{fileBirthDate},</if>
<if test="birthDate != null">birth_date = #{birthDate},</if>
<if test="hometown != null">hometown = #{hometown},</if>
<if test="nation != null">nation = #{nation},</if>
<if test="politicalLandscape != null">political_landscape = #{politicalLandscape},</if>
<if test="partyMembershipTime != null">party_membership_time = #{partyMembershipTime},</if>
<if test="teachingSubject != null and teachingSubject != ''">teaching_subject = #{teachingSubject},</if>
<if test="currentProfessionalTitle != null">current_professional_title = #{currentProfessionalTitle},</if>
<if test="currentProfessionalTitleTime != null">current_professional_title_time = #{currentProfessionalTitleTime},</if>
<if test="currentHiringProfessionalTitle != null">current_hiring_professional_title = #{currentHiringProfessionalTitle},</if>
<if test="currentHiringProfessionalTitleTime != null">current_hiring_professional_title_time = #{currentHiringProfessionalTitleTime},</if>
<if test="currentPosition != null">current_position = #{currentPosition},</if>
<if test="currentJobLevel != null">current_job_level = #{currentJobLevel},</if>
<if test="currentJobLevelAppointmentTime != null">current_job_level_appointment_time = #{currentJobLevelAppointmentTime},</if>
<if test="duties != null">duties = #{duties},</if>
<if test="teacherQualificationType != null">teacher_qualification_type = #{teacherQualificationType},</if>
<if test="teacherQualificationCertificateNum != null">teacher_qualification_certificate_num = #{teacherQualificationCertificateNum},</if>
<if test="workingHours != null">working_hours = #{workingHours},</if>
<if test="toSecondMiddleSchoolTime != null">to_second_middle_school_time = #{toSecondMiddleSchoolTime},</if>
<if test="lengthOfTeacherTime != null">length_of_teacher_time = #{lengthOfTeacherTime},</if>
<if test="lengthOfServiceTime != null">length_of_service_time = #{lengthOfServiceTime},</if>
<if test="onDutySituation != null">on_duty_situation = #{onDutySituation},</if>
<if test="currentSituation != null">current_situation = #{currentSituation},</if>
<if test="graduationInstitution1 != null">graduation_institution1 = #{graduationInstitution1},</if>
<if test="major1 != null">major1 = #{major1},</if>
<if test="graduationTime1 != null">graduation_time1 = #{graduationTime1},</if>
<if test="graduationInstitution2 != null">graduation_institution2 = #{graduationInstitution2},</if>
<if test="major2 != null">major2 = #{major2},</if>
<if test="graduationTime2 != null">graduation_time2 = #{graduationTime2},</if>
<if test="graduationInstitution3 != null">graduation_institution3 = #{graduationInstitution3},</if>
<if test="major3 != null">major3 = #{major3},</if>
<if test="graduationTime3 != null">graduation_time3 = #{graduationTime3},</if>
<if test="firstDegree != null">first_degree = #{firstDegree},</if>
<if test="lastDegree != null">last_degree = #{lastDegree},</if>
<if test="degree != null">degree = #{degree},</if>
<if test="workExperience != null">work_experience = #{workExperience},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="photoName != null">photo_name = #{photoName},</if>
<if test="photoUrl != null">photo_url = #{photoUrl},</if>
<if test="ddPhone != null">dd_phone = #{ddPhone},</if>
<if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
</trim>
where id = #{id}
</update>
</mapper>
\ No newline at end of file
......@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolXacademicWorksMapper">
<resultMap type="SchoolXacademicWorks" id="SchoolXacademicWorksResult">
<resultMap type="yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXacademicWorksVo" id="SchoolXacademicWorksResult">
<result property="id" column="id" />
<result property="sub" column="sub" />
<result property="awardType" column="award_type" />
......@@ -18,6 +18,7 @@
<result property="remark" column="remark" />
<result property="pictureName" column="picture_name" />
<result property="pictureUrl" column="picture_url" />
<result property="auditState" column="audit_state" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
......@@ -26,10 +27,11 @@
</resultMap>
<sql id="selectSchoolXacademicWorksVo">
select id, sub, award_type, award_rank, award_level, result_name, user_id, user_name, org, award_time, remark, picture_name, picture_url, create_by, create_time, update_by, update_time, del_flag from school_xacademic_works
select id, sub, award_type, award_rank, award_level, result_name, user_id, user_name, org, award_time,
remark, picture_name, picture_url, audit_state, create_by, create_time, update_by, update_time, del_flag from school_xacademic_works
</sql>
<select id="selectSchoolXacademicWorksList" parameterType="SchoolXacademicWorks" resultMap="SchoolXacademicWorksResult">
<select id="selectSchoolXacademicWorksList" parameterType="yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXacademicWorksVo" resultMap="SchoolXacademicWorksResult">
<include refid="selectSchoolXacademicWorksVo"/>
<where>
del_flag = '0'
......@@ -44,8 +46,10 @@
<if test="awardTime != null "> and award_time = #{awardTime}</if>
<if test="pictureName != null and pictureName != ''"> and picture_name like concat('%', #{pictureName}, '%')</if>
<if test="pictureUrl != null and pictureUrl != ''"> and picture_url = #{pictureUrl}</if>
<if test="auditState != null and auditState != ''"> and audit_state = #{auditState}</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != '' "> and award_time BETWEEN #{startTime} AND #{endTime}</if>
</where>
order create_time DESC
order by create_time DESC
</select>
<select id="selectSchoolXacademicWorksById" parameterType="Long" resultMap="SchoolXacademicWorksResult">
......@@ -68,6 +72,7 @@
<if test="remark != null">remark,</if>
<if test="pictureName != null and pictureName != ''">picture_name,</if>
<if test="pictureUrl != null and pictureUrl != ''">picture_url,</if>
<if test="auditState != null and auditState != ''">audit_state,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
......@@ -87,6 +92,7 @@
<if test="remark != null">#{remark},</if>
<if test="pictureName != null and pictureName != ''">#{pictureName},</if>
<if test="pictureUrl != null and pictureUrl != ''">#{pictureUrl},</if>
<if test="auditState != null and auditState != ''">#{auditState},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
......@@ -110,6 +116,7 @@
<if test="remark != null">remark = #{remark},</if>
<if test="pictureName != null and pictureName != ''">picture_name = #{pictureName},</if>
<if test="pictureUrl != null and pictureUrl != ''">picture_url = #{pictureUrl},</if>
<if test="auditState != null and auditState != ''">audit_state = #{auditState},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
......
......@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolXcomprehensiveHonorsMapper">
<resultMap type="SchoolXcomprehensiveHonors" id="SchoolXcomprehensiveHonorsResult">
<resultMap type="yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXcomprehensiveHonorsVo" id="SchoolXcomprehensiveHonorsResult">
<result property="id" column="id" />
<result property="sub" column="sub" />
<result property="awardType" column="award_type" />
......@@ -18,6 +18,7 @@
<result property="remark" column="remark" />
<result property="pictureName" column="picture_name" />
<result property="pictureUrl" column="picture_url" />
<result property="auditState" column="audit_state" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
......@@ -26,15 +27,16 @@
</resultMap>
<sql id="selectSchoolXcomprehensiveHonorsVo">
select id, sub, award_type, award_rank, award_level, result_name, user_id, user_name, org, award_time, remark, picture_name, picture_url, create_by, create_time, update_by, update_time, del_flag from school_xcomprehensive_honors
select id, sub, award_type, award_rank, award_level, result_name, user_id, user_name, org, award_time, remark,
picture_name, picture_url, audit_state, create_by, create_time, update_by, update_time, del_flag from school_xcomprehensive_honors
</sql>
<select id="selectSchoolXcomprehensiveHonorsList" parameterType="SchoolXcomprehensiveHonors" resultMap="SchoolXcomprehensiveHonorsResult">
<select id="selectSchoolXcomprehensiveHonorsList" parameterType="yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXcomprehensiveHonorsVo" resultMap="SchoolXcomprehensiveHonorsResult">
<include refid="selectSchoolXcomprehensiveHonorsVo"/>
<where>
del_flag = '0'
<if test="sub != null and sub != ''"> and sub = #{sub}</if>
<if test="awardType != null and awardType != ''"> and award_type = #{awardType}</if>
<if test="awardType != null and awardType != ''"> and award_type like concat('%', #{awardType}, '%')</if>
<if test="awardRank != null and awardRank != ''"> and award_rank = #{awardRank}</if>
<if test="awardLevel != null and awardLevel != ''"> and award_level = #{awardLevel}</if>
<if test="resultName != null and resultName != ''"> and result_name like concat('%', #{resultName}, '%')</if>
......@@ -44,6 +46,8 @@
<if test="awardTime != null "> and award_time = #{awardTime}</if>
<if test="pictureName != null and pictureName != ''"> and picture_name like concat('%', #{pictureName}, '%')</if>
<if test="pictureUrl != null and pictureUrl != ''"> and picture_url = #{pictureUrl}</if>
<if test="auditState != null and auditState != ''"> and audit_state = #{auditState}</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != '' "> and award_time BETWEEN #{startTime} AND #{endTime}</if>
</where>
order by create_time DESC
</select>
......@@ -68,6 +72,7 @@
<if test="remark != null">remark,</if>
<if test="pictureName != null and pictureName != ''">picture_name,</if>
<if test="pictureUrl != null and pictureUrl != ''">picture_url,</if>
<if test="auditState != null and auditState != ''">audit_state,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
......@@ -87,6 +92,7 @@
<if test="remark != null">#{remark},</if>
<if test="pictureName != null and pictureName != ''">#{pictureName},</if>
<if test="pictureUrl != null and pictureUrl != ''">#{pictureUrl},</if>
<if test="auditState != null and auditState != ''">#{auditState},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
......@@ -110,6 +116,7 @@
<if test="remark != null">remark = #{remark},</if>
<if test="pictureName != null and pictureName != ''">picture_name = #{pictureName},</if>
<if test="pictureUrl != null and pictureUrl != ''">picture_url = #{pictureUrl},</if>
<if test="auditState != null and auditState != ''">audit_state = #{auditState},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
......
......@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolXlectureAwardsMapper">
<resultMap type="SchoolXlectureAwards" id="SchoolXlectureAwardsResult">
<resultMap type="yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXlectureAwardsVo" id="SchoolXlectureAwardsResult">
<result property="id" column="id" />
<result property="sub" column="sub" />
<result property="awardType" column="award_type" />
......@@ -18,6 +18,7 @@
<result property="remark" column="remark" />
<result property="pictureName" column="picture_name" />
<result property="pictureUrl" column="picture_url" />
<result property="auditState" column="audit_state" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="upate_by" />
......@@ -26,10 +27,11 @@
</resultMap>
<sql id="selectSchoolXlectureAwardsVo">
select id, sub, award_type, award_rank, award_level, result_name, user_id, user_name, org, award_time, remark, picture_name, picture_url, create_by, create_time, update_by, update_time, del_flag from school_xlecture_awards
select id, sub, award_type, award_rank, award_level, result_name, user_id, user_name, org, award_time, remark,
picture_name, picture_url, audit_state, create_by, create_time, update_by, update_time, del_flag from school_xlecture_awards
</sql>
<select id="selectSchoolXlectureAwardsList" parameterType="SchoolXlectureAwards" resultMap="SchoolXlectureAwardsResult">
<select id="selectSchoolXlectureAwardsList" parameterType="yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXlectureAwardsVo" resultMap="SchoolXlectureAwardsResult">
<include refid="selectSchoolXlectureAwardsVo"/>
<where>
del_flag = '0'
......@@ -44,6 +46,8 @@
<if test="awardTime != null "> and award_time = #{awardTime}</if>
<if test="pictureName != null and pictureName != ''"> and picture_name like concat('%', #{pictureName}, '%')</if>
<if test="pictureUrl != null and pictureUrl != ''"> and picture_url = #{pictureUrl}</if>
<if test="auditState != null and auditState != ''"> and audit_state = #{auditState}</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != '' "> and award_time BETWEEN #{startTime} AND #{endTime}</if>
</where>
order by create_time DESC
</select>
......@@ -68,6 +72,7 @@
<if test="remark != null">remark,</if>
<if test="pictureName != null and pictureName != ''">picture_name,</if>
<if test="pictureUrl != null and pictureUrl != ''">picture_url,</if>
<if test="auditState != null and auditState != ''">audit_state,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
......@@ -87,6 +92,7 @@
<if test="remark != null">#{remark},</if>
<if test="pictureName != null and pictureName != ''">#{pictureName},</if>
<if test="pictureUrl != null and pictureUrl != ''">#{pictureUrl},</if>
<if test="auditState != null and auditState != ''">#{auditState},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
......@@ -110,6 +116,7 @@
<if test="remark != null">remark = #{remark},</if>
<if test="pictureName != null and pictureName != ''">picture_name = #{pictureName},</if>
<if test="pictureUrl != null and pictureUrl != ''">picture_url = #{pictureUrl},</if>
<if test="auditState != null and auditState != ''">audit_state = #{auditState},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
......
......@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolXteacherAwardsMapper">
<resultMap type="SchoolXteacherAwards" id="SchoolXteacherAwardsResult">
<resultMap type="yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteacherAwardsVo" id="SchoolXteacherAwardsResult">
<result property="id" column="id" />
<result property="sub" column="sub" />
<result property="awardType" column="award_type" />
......@@ -18,6 +18,7 @@
<result property="remark" column="remark" />
<result property="pictureName" column="picture_name" />
<result property="pictureUrl" column="picture_url" />
<result property="auditState" column="audit_state" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
......@@ -26,10 +27,11 @@
</resultMap>
<sql id="selectSchoolXteacherAwardsVo">
select id, sub, award_type, award_rank, award_level, result_name, user_id, user_name, org, award_time, remark, picture_name, picture_url, create_by, create_time, update_by, update_time, del_flag from school_xteacher_awards
select id, sub, award_type, award_rank, award_level, result_name, user_id, user_name, org, award_time, remark,
picture_name, picture_url, audit_state, create_by, create_time, update_by, update_time, del_flag from school_xteacher_awards
</sql>
<select id="selectSchoolXteacherAwardsList" parameterType="SchoolXteacherAwards" resultMap="SchoolXteacherAwardsResult">
<select id="selectSchoolXteacherAwardsList" parameterType="yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteacherAwardsVo" resultMap="SchoolXteacherAwardsResult">
<include refid="selectSchoolXteacherAwardsVo"/>
<where>
del_flag = '0'
......@@ -44,6 +46,8 @@
<if test="awardTime != null "> and award_time = #{awardTime}</if>
<if test="pictureName != null and pictureName != ''"> and picture_name like concat('%', #{pictureName}, '%')</if>
<if test="pictureUrl != null and pictureUrl != ''"> and picture_url = #{pictureUrl}</if>
<if test="auditState != null and auditState != ''"> and audit_state = #{auditState}</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != '' "> and award_time BETWEEN #{startTime} AND #{endTime}</if>
</where>
order by create_time DESC
</select>
......@@ -68,6 +72,7 @@
<if test="remark != null">remark,</if>
<if test="pictureName != null and pictureName != ''">picture_name,</if>
<if test="pictureUrl != null and pictureUrl != ''">picture_url,</if>
<if test="auditState != null and auditState != ''">audit_state,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
......@@ -87,6 +92,7 @@
<if test="remark != null">#{remark},</if>
<if test="pictureName != null and pictureName != ''">#{pictureName},</if>
<if test="pictureUrl != null and pictureUrl != ''">#{pictureUrl},</if>
<if test="auditState != null and auditState != ''">#{auditState},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
......@@ -110,6 +116,7 @@
<if test="remark != null">remark = #{remark},</if>
<if test="pictureName != null and pictureName != ''">picture_name = #{pictureName},</if>
<if test="pictureUrl != null and pictureUrl != ''">picture_url = #{pictureUrl},</if>
<if test="auditState != null and auditState != ''">audit_state = #{auditState},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
......
......@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolXteachingAchievementsMapper">
<resultMap type="SchoolXteachingAchievements" id="SchoolXteachingAchievementsResult">
<resultMap type="yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteachingAchievementsVo" id="SchoolXteachingAchievementsResult">
<result property="id" column="id" />
<result property="schoolYear" column="school_year" />
<result property="semester" column="semester" />
......@@ -31,7 +31,7 @@
select id, school_year, semester, exam_time, exam_type, year, grade, user_id, user_name, id_card, sub, class_name, class_type, assessment_score, remark, create_by, create_time, update_by, update_time, del_flag from school_xteaching_achievements
</sql>
<select id="selectSchoolXteachingAchievementsList" parameterType="SchoolXteachingAchievements" resultMap="SchoolXteachingAchievementsResult">
<select id="selectSchoolXteachingAchievementsList" parameterType="yangtz.cs.liu.campus.vo.schoolNewTeacherDzdn.SchoolXteachingAchievementsVo" resultMap="SchoolXteachingAchievementsResult">
<include refid="selectSchoolXteachingAchievementsVo"/>
<where>
del_flag = '0'
......@@ -48,6 +48,7 @@
<if test="className != null and className != ''"> and class_name like concat('%', #{className}, '%')</if>
<if test="classType != null and classType != ''"> and class_type = #{classType}</if>
<if test="assessmentScore != null "> and assessment_score = #{assessmentScore}</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != '' "> and exam_time BETWEEN #{startTime} AND #{endTime}</if>
</where>
order by create_time DESC
</select>
......@@ -139,4 +140,19 @@
#{id}
</foreach>
</update>
<select id="getUserList" resultType="Map" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
SELECT
user_id as userId,
user_name as userName,
phonenumber as phone
FROM
sys_user
WHERE
del_flag = '0'
AND `status` = '0'
<if test="userName != null and userName != ''">
AND user_name like concat('%', #{userName}, '%')
</if>
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment