Commit ddcd3e87 by 朱莹

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
#	smart-campus/src/main/java/yangtz/cs/liu/campus/controller/teacherFiles/TeacherFilesController.java
#	smart-campus/src/main/java/yangtz/cs/liu/campus/mapper/teacherFiles/TeacherFilesNoticeMapper.java
#	smart-campus/src/main/java/yangtz/cs/liu/campus/service/impl/teacherFiles/TeacherFilesServiceImpl.java
#	smart-campus/src/main/java/yangtz/cs/liu/campus/service/teacherFiles/ITeacherFilesService.java
#	smart-campus/src/main/resources/mapper/teacherFiles/TeacherFilesNoticeMapper.xml
parents 6924810d c23c00b3
......@@ -112,12 +112,26 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
.antMatchers( "/ws/webSocket/**").anonymous()
.antMatchers( "/webSocket/**").anonymous()
.antMatchers("/login", "/register", "/captchaImage").anonymous()
.antMatchers("/wx/user/login","/wx/user/getRoleType/**","/teacherFiles/**").permitAll()
.antMatchers("/wx/user/login","/wx/user/getRoleType/**").permitAll()
.antMatchers("/wx/teacherLeave/**").permitAll()
.antMatchers("/teacherFiles/notice/**").permitAll()
.antMatchers("/wx/level/expriment/**").permitAll()
.antMatchers("/dd/user/login").permitAll()
.antMatchers( "/common/**").permitAll()
.antMatchers( "/dd/school/**").permitAll()
//打印下载接口放行
.antMatchers("/school/student/queryOne/**","/school/studentStatus/proofStatus/**").permitAll()
//打印设备条码信息
.antMatchers("/equipmentLedger/getEquipmentledger/**").permitAll()
.antMatchers("/school/studentStatus/exportStatus/**","/school/student/queryAllInfo/**").permitAll()
//网页注册登录接口放行
.antMatchers( "/web/artStudent/register","/web/artStudent/login").permitAll()
// 静态资源,可匿名访问
......
......@@ -34,6 +34,10 @@
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>smart-campus</artifactId>
</dependency>
</dependencies>
......
package com.ruoyi.quartz.task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ruoyi.common.utils.StringUtils;
import yangtz.cs.liu.dingding.controller.DingJiaXiaoController;
import yangtz.cs.liu.dingding.controller.dingDept.DdDeptController;
import yangtz.cs.liu.dingding.controller.dingUser.DingUserController;
/**
* 定时任务调度测试
......@@ -11,6 +15,13 @@ import com.ruoyi.common.utils.StringUtils;
@Component("ryTask")
public class RyTask
{
@Autowired
DingJiaXiaoController dingJiaXiaoController;
@Autowired
DdDeptController ddDeptController;
@Autowired
DingUserController dingUserController;
public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
{
System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
......@@ -25,4 +36,25 @@ public class RyTask
{
System.out.println("执行无参方法");
}
//家校通讯录部门更新
public void updateLabClassYear(){
dingJiaXiaoController.updateLabClassYear();
}
//家校通讯录人员更新
public void updateLabUser(){
dingJiaXiaoController.updateLabUser();
}
//钉钉通讯录更新
public void syncDdDept(){
ddDeptController.syncDdDept();
}
//钉钉用户更新
public void syncDdUser(){
dingUserController.syncDdUser();
}
}
......@@ -107,6 +107,7 @@ public interface SysUserMapper {
* @return 结果
*/
public int deleteUserById(Long userId);
public SysUser selectUserByDdUserId(String ddUserId);
/**
* 批量删除用户信息
......
......@@ -200,6 +200,13 @@ public interface ISysUserService {
public int deleteUserById(Long userId);
/**
* 根据dduserId查询用户表
* @param userId
* @return
*/
public SysUser selectUserByDdUserId(String ddUserId);
/**
* 批量删除用户信息
*
* @param userIds 需要删除的用户ID
......
......@@ -465,6 +465,17 @@ public class SysUserServiceImpl implements ISysUserService {
return userMapper.deleteUserById(userId);
}
/**
* 根据钉钉用户id 查询用户
* @param ddUserId
* @return
*/
@Override
public SysUser selectUserByDdUserId(String ddUserId) {
return userMapper.selectUserByDdUserId(ddUserId);
}
/**
* 批量删除用户信息
*
......
......@@ -322,6 +322,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update sys_user set del_flag = '2' where user_id = #{userId}
</delete>
<select id="selectUserByDdUserId" parameterType="String" resultMap="SysUserResult">
select * from sys_user where dd_user_id = #{ddUserId}
</select>
<delete id="deleteUserByIds" parameterType="Long">
update sys_user set del_flag = '2' where user_id in
<foreach collection="array" item="userId" open="(" separator="," close=")">
......
......@@ -9,10 +9,10 @@ export function performanceList(query) {
});
}
//根据身份证号获取学生信息
export function getInfoByIdCard(query) {
//根据号获取学生信息
export function getInfoByschoolNo(query) {
return request({
url: `/curricula/studentScore/selectStudent?idCard=${query}`,
url: `/curricula/studentScore/selectStudent?schoolNo=${query}`,
method: "get",
});
}
......
......@@ -9,9 +9,9 @@ export function getTeacherList(query) {
});
}
// 获取实验室
export function getLabList(plannedStartTime, plannedEndTime) {
export function getLabList(plannedStartTime, plannedEndTime, sub) {
return request({
url: `/schoolLabClassYear/getLabList?plannedStartTime=${plannedStartTime}&plannedEndTime=${plannedEndTime}`,
url: `/schoolLabClassYear/getLabList?plannedStartTime=${plannedStartTime}&plannedEndTime=${plannedEndTime}&sub=${sub}`,
method: "get",
});
}
......
......@@ -57,8 +57,15 @@ export function deleteEquipmentLedger(id) {
**/
export function getUserList(params) {
return request({
url: '/equipmentLedger/getUser',
url: "/equipmentLedger/getUser",
method: "GET",
params
params,
});
}
//获取打印设备条码信息
export function equipmentPrint(ids) {
return request({
url: `/equipmentLedger/getEquipmentledger/${ids}`,
method: "get",
});
}
import request from '@/utils/request'
import request from "@/utils/request";
// 添加任务
export function addTeacherNotice(data) {
return request({
url: '/teacherFiles/notice',
method: 'post',
data: data
})
url: "/teacherFiles/notice",
method: "post",
data: data,
});
}
// 任务列表
export function listTeacherNotice(query) {
return request({
url: '/teacherFiles/notice/list',
method: 'get',
params: query
})
url: "/teacherFiles/notice/list",
method: "get",
params: query,
});
}
// 任务详情
export function infoTeaNotice(id) {
return request({
url: `/teacherFiles/notice/${id}`,
method: 'put'
})
method: "put",
});
}
// 任务修改
export function updateTask(data) {
return request({
url: '/teacherFiles/notice',
method: 'put',
data: data
})
url: "/teacherFiles/notice",
method: "put",
data: data,
});
}
// 发布任务
export function infoTeacherNotice(id) {
return request({
url: `/teacherFiles/notice/release/${id}`,
method: 'put'
})
method: "put",
});
}
// 任务撤回
export function taskRetracted(id) {
export function taskRetracted(id) {
return request({
url: '/teacherFiles/notice/withdraw/' + id,
method: 'put'
})
url: "/teacherFiles/notice/withdraw/" + id,
method: "put",
});
}
// 任务完成
export function taskCompleted(id) {
export function taskCompleted(id) {
return request({
url: '/teacherFiles/notice/complete/' + id,
method: 'put'
})
url: "/teacherFiles/notice/complete/" + id,
method: "put",
});
}
// 任务删除
export function delTaskInfo(id) {
return request({
url: '/teacherFiles/notice/' + id,
method: 'delete'
})
url: "/teacherFiles/notice/" + id,
method: "delete",
});
}
// 通知下档案查看|数据维护
export function getteacherNotice(query) {
return request({
url: '/teacherFiles/files/list',
url: "/teacherFiles/files/list",
method: "get",
params: query,
});
}
// 级部列表
export function getGradeTnfo(query) {
return request({
url: '/teacherFiles/files/gradeList',
method: 'get',
params: query
})
......@@ -78,58 +86,60 @@ export function getteacherNotice(query) {
//老师查看详情
export function getNoticeInfo(query) {
return request({
url: '/teacherFiles/files/list',
method: 'get',
params: query
})
url: "/teacherFiles/files/list",
method: "get",
params: query,
});
}
//老师查看列表
export function getTeacherTnfo(userId) {
export function getTeacherTnfo(userId,query) {
return request({
url: '/teacherFiles/files/getTeachList/'+userId,
url: `/teacherFiles/files/getTeachList/${userId}`,
// url: `/teacherFiles/files/getTeachList/${userId}`,
method: 'get',
params:query
})
}
//级部查看档案详情
export function getDepInfo(query) {
return request({
url: '/teacherFiles/files/list',
method: 'get',
params: query
})
url: "/teacherFiles/files/list",
method: "get",
params: query,
});
}
//查看档案详情
export function getFileTnfo(id) {
return request({
url: '/teacherFiles/files/'+id,
method: 'get',
})
url: "/teacherFiles/files/" + id,
method: "get",
});
}
// 同步档案
export function syncNotice(id) {
return request({
url: '/teacherFiles/files/synchronous/' + id,
method: 'put'
})
url: "/teacherFiles/files/synchronous/" + id,
method: "put",
});
}
// 教师档案修改
export function updateInfo(data) {
return request({
url: '/teacherFiles/files',
method: 'put',
data: data
})
url: "/teacherFiles/files",
method: "put",
data: data,
});
}
// 教师档案删除
export function delInfo(id) {
return request({
url: '/teacherFiles/files/' + id,
method: 'delete'
})
url: "/teacherFiles/files/" + id,
method: "delete",
});
}
// 教师档案提交审核
......@@ -137,21 +147,38 @@ export function delInfo(id) {
export function fileSubReview(id) {
return request({
url: `/teacherFiles/files/submitTo/${id}`,
method: 'put'
})
method: "put",
});
}
// 教师档案提交通过
// 教师档案驳回
export function fileSubApproved(id) {
return request({
url: `/teacherFiles/files/reject/${id}`,
method: 'put'
})
method: "put",
});
}
// 教师档案提交驳回
// 教师档案提交
export function fileSubRejected(id) {
return request({
url: `/teacherFiles/files/passThrough/${id}`,
method: 'put'
})
method: "put",
});
}
//查看可添加老师列表
export function getTeaList(tId) {
return request({
url: `/teacherFiles/files/getTeacherRocer/${tId}` ,
method: "get",
});
}
//添加老师
export function addTeachaer(ids) {
return request({
url: '/teacherFiles/files/teacherAdd/' +ids,
method: "get",
});
}
\ No newline at end of file
......@@ -18,6 +18,8 @@ const whiteList = [
"/studentRegistra",
"/printBarcodes",
"/printLesson",
"/studentTable",
"/headmasterLesson",
];
router.beforeEach((to, from, next) => {
......
......@@ -69,6 +69,15 @@ export const constantRoutes = [
),
hidden: true,
},
//学生信息
{
path: "/studentTable",
component: () =>
import(
"@/views/smartSchool/teachAffairAdministration/affairStudentManage/studentTable"
),
hidden: true,
},
//设备台账
{
path: "/printBarcodes",
......@@ -87,6 +96,16 @@ export const constantRoutes = [
),
hidden: true,
},
//班主任课表
{
path: "/headmasterLesson",
component: () =>
import(
"@/views/smartSchool/classAdviser/headmasterLesson/headmasterLesson"
),
hidden: true,
},
//学生注册
{
path: "/studentRegistra",
component: () =>
......
......@@ -3,23 +3,15 @@
<el-row>
<el-col :span="4">
<div style="border:1px solid #DFE6EC; margin:0 10px 0 0">
<el-form :inline="true" :model="queryParams"
style="border-bottom:1px solid #DFE6EC; padding:10px 0 0 5px">
<el-form :inline="true" :model="queryParams" style="border-bottom:1px solid #DFE6EC; padding:10px 0 0 5px">
<el-form-item label="班级信息" prop="year">
<el-select v-model="queryParams.schoolYear" style="width:100%"
size="mini" @change="handleYearChange">
<el-option v-for="item in yearList" :key="item.value" :value="item.value"
:label="item.label"></el-option>
<el-select v-model="queryParams.schoolYear" style="width:100%" size="mini" @change="handleYearChange">
<el-option v-for="item in yearList" :key="item.value" :value="item.value" :label="item.label"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-tree ref="tree"
node-key="id"
:data="treeData"
:expand-on-click-node="false"
highlight-current
default-expand-all
@node-click="handleNodeClick">
<el-tree ref="tree" node-key="id" :data="treeData" :expand-on-click-node="false" highlight-current
default-expand-all @node-click="handleNodeClick">
</el-tree>
</div>
</el-col>
......@@ -28,8 +20,7 @@
<el-col>
<el-form :inline="true" :model="formData" style="padding:12px 0 0 0">
<el-form-item>
<el-button type="primary" plain size="mini" icon="el-icon-printer"
@click="printTable()">打印
<el-button type="primary" plain size="mini" icon="el-icon-printer" @click="printTable()">打印
</el-button>
</el-form-item>
<el-form-item label="学期" prop="region">
......@@ -42,9 +33,8 @@
</el-col>
</el-row>
<div id="postFormContainer">
<el-table v-loading="loading" :data="courseList" :row-style="{ height: '50px' }"
:cell-style="{ padding: '0' }" border
style="width: 1200px;">
<el-table v-loading="loading" :data="courseList" :row-style="{ height: '50px' }" :cell-style="{ padding: '0' }"
border style="width: 1200px;">
<!-- <el-table-column :resizable="false" class-name="elChgTbeClmn" prop="lesson" label="日期" width="120" align="center">
<template slot="header" slot-scope="scope">
<div class="elHeadCon">
......@@ -124,10 +114,10 @@ import {
getClassTreeList,
getClassLessonTable,
} from "@/api/smartSchool/lesson/index.js";
import {getYearList} from "@/utils/utilLibrary/getYearList";
import {getFirstLeafNode, handleTreeData} from "@/utils/utilLibrary/getTreeClass";
import {getNewYear, getCourseInfo} from "@/api/smartSchool/teachAffairAdministration/lessonManage";
import { getYearList } from "@/utils/utilLibrary/getYearList";
import { getFirstLeafNode, handleTreeData } from "@/utils/utilLibrary/getTreeClass";
import { getNewYear, getCourseInfo } from "@/api/smartSchool/teachAffairAdministration/lessonManage";
import * as dd from 'dingtalk-jsapi';
export default {
name: '',
dicts: ['relationship', 'Grade', 'Class', 'grade_type', 'sys_user_sex', 'education', 'student_type', 'child_state'],
......@@ -243,17 +233,19 @@ export default {
// 打印
printTable() {
// 重置表单
printJS({
printable: 'postFormContainer',
maxWidth: 10000,
header: '',
ignoreElements: ['no-print', 'back-no-print', 'front-no-print'],
targetStyles: ['*'],
gridHeaderStyle: "border: 1px solid black",
type: "html",
gridStyle: `text-align: center; border: 1px solid black`,
})
const baseUrl = window.location.protocol + '//' + window.location.host + '/headmasterLesson';
const urlWithParams = `${baseUrl}?courseList=${encodeURIComponent(JSON.stringify(this.courseList))}`;
dd.biz.util.openLink({
url: urlWithParams,
onSuccess: () => {
console.log('跳转成功,准备打印');
// 打印条码
// this.printCode();
},
onFail: (error) => {
console.error('跳转失败', error);
}
});
},
//判断当前时间节点处在上学期还是下学期
getSession() {
......
......@@ -268,6 +268,8 @@ export default {
schoolYear: this.queryForm.schoolYear,
experimentClassify: this.queryForm.experimentClassify,
experimentName: this.queryForm.experimentName,
pageNum: this.queryForm.pageNum, // 绑定到 queryForm.pageNum 上
pageSize: this.queryForm.pageSize, // 绑定到 queryForm.pageSize 上
};
try {
......@@ -281,6 +283,7 @@ export default {
console.error(error);
}
},
//获取当前学期
async getSemester() {
try {
......
......@@ -37,7 +37,7 @@
<el-table-column fixed="left" label="序号" type="index" width="55" align="center" />
<el-table-column fixed="left" label="学生姓名" align="center" prop="studentName" />
<el-table-column fixed="left" label="学号" align="center" prop="studentNumber" width="150" />
<el-table-column fixed="left" label="身份证号" align="center" prop="idCard" width="200" />
<!-- <el-table-column fixed="left" label="身份证号" align="center" prop="idCard" width="200" /> -->
<el-table-column fixed="left" label="班级" align="center" prop="className" />
<el-table-column fixed="left" label="考试类型" align="center" prop="examType">
<template slot-scope="{ row }">
......@@ -100,9 +100,9 @@
label-position="left">
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="achievementForm.idCard" placeholder="请输入身份证号" @change="searchStudentInfo"
:disabled="nowType == 1 ? true : false"></el-input>
<el-form-item label="学号" prop="studentNumber">
<el-input v-model="achievementForm.studentNumber" placeholder="请输入学号"
:disabled="nowType == 1 ? true : false" @change="searchStudentInfo"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -120,14 +120,6 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学号" prop="studentNumber">
<el-input v-model="achievementForm.studentNumber" placeholder="请输入学号"
:disabled="nowType == 1 ? true : false"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="考试类型" prop="examType">
<el-select v-model="achievementForm.examType" filterable placeholder="请选择考试类型" class="selectWidth"
:disabled="nowType == 1 ? true : false">
......@@ -137,6 +129,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="语文" prop="language">
......@@ -206,7 +199,7 @@
import { getToken } from "@/utils/auth";
import {
addPerformance, deletePerformance, editPerformance,
getInfoByIdCard,
getInfoByschoolNo,
performanceList
} from "../../../../../api/smartSchool/gradeWork/courseSelection/performance";
import { classList } from "../../../../../api/smartSchool/gradeWork/courseSelection/taskPublishing";
......@@ -249,7 +242,7 @@ export default {
classId: '',
studentName: '',
studentNumber: '',
idCard: '',
// idCard: '',
className: '',
examType: '',
language: '',
......@@ -263,8 +256,8 @@ export default {
biology: '',
},
achievementRules: {
idCard: [
{ required: true, message: '请输入身份证号', trigger: 'blur' }
studentNumber: [
{ required: true, message: '请输入', trigger: 'blur' }
],
// studentName: [
// { required: true, message: '请输入学生姓名', trigger: 'blur' }
......@@ -362,7 +355,7 @@ export default {
classId: '',
studentName: '',
studentNumber: '',
idCard: '',
// idCard: '',
className: '',
examType: '',
language: '',
......@@ -447,10 +440,11 @@ export default {
})
},
//根据身份证号获取学生信息
//根据号获取学生信息
searchStudentInfo() {
const idCard = this.achievementForm.idCard
getInfoByIdCard(idCard).then(res => {
const schoolNo = this.achievementForm.studentNumber
console.log(schoolNo, 'schoolNo');
getInfoByschoolNo(schoolNo).then(res => {
if (res.code == 200) {
Object.keys(this.achievementForm).forEach(key => {
res.data[key] && (this.achievementForm[key] = res.data[key])
......
......@@ -2,17 +2,11 @@
<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="xxfbName">
<el-input
v-model="queryParams.xxfbName"
placeholder="请输入名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.xxfbName" placeholder="请输入名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="状态" prop="xxfbZt">
<el-select v-model="queryParams.xxfbZt" placeholder="请选择状态" @keyup.enter.native="handleQuery">
<el-option v-for="dict in dict.type.info_push_state" :key="dict.value" :label="dict.label"
:value="dict.value">
<el-option v-for="dict in dict.type.info_push_state" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
......@@ -31,46 +25,26 @@
</el-row>
<el-table v-loading="loading" :data="xxfbList" @selection-change="handleSelectionChange">
<el-table-column label="序号" align="center" type="index"/>
<el-table-column label="名称" min-width="250" align="center" prop="xxfbName"/>
<el-table-column label="序号" align="center" type="index" />
<el-table-column label="名称" min-width="250" align="center" prop="xxfbName" />
<el-table-column label="状态" align="center" prop="xxfbZt">
<template slot-scope="scope">
<dict-tag :options="dict.type.info_push_state" :value="scope.row.xxfbZt"/>
<dict-tag :options="dict.type.info_push_state" :value="scope.row.xxfbZt" />
</template>
</el-table-column>
<el-table-column label="查询次数" align="center" prop="num"/>
<el-table-column label="创建时间" align="center" min-width="150" prop="createTime"/>
<el-table-column label="查询次数" align="center" prop="num" />
<el-table-column label="创建时间" align="center" min-width="150" prop="createTime" />
<el-table-column label="操作" align="center" min-width="250" class-name="small-padding fixed-width">
<template slot-scope="scope">
<template v-if="scope.row.xxfbZt == '1'">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>修改
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-search"
@click="handleViewDetail(scope.row)"
>数据
<el-button size="mini" type="text" icon="el-icon-search" @click="handleViewDetail(scope.row)">数据
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-s-promotion"
@click="handlePublish(scope.row)"
>发布
<el-button size="mini" type="text" icon="el-icon-s-promotion" @click="handlePublish(scope.row)">发布
</el-button>
......@@ -93,29 +67,14 @@
<!-- </el-dropdown>-->
</template>
<template v-if="scope.row.xxfbZt == '2'">
<el-button
size="mini"
type="text"
icon="el-icon-back"
@click="handleRecall(scope.row)"
v-hasPermi="['system:xxfb:export']"
>撤回
<el-button size="mini" type="text" icon="el-icon-back" @click="handleRecall(scope.row)"
v-hasPermi="['system:xxfb:export']">撤回
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleViewData(scope.row)"
v-hasPermi="['system:xxfb:view']"
>数据查看
<el-button size="mini" type="text" icon="el-icon-view" @click="handleViewData(scope.row)"
v-hasPermi="['system:xxfb:view']">数据查看
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-download"
@click="handleExport(scope.row)"
v-hasPermi="['system:xxfb:export']"
>导出
<el-button size="mini" type="text" icon="el-icon-download" @click="handleExport(scope.row)"
v-hasPermi="['system:xxfb:export']">导出
</el-button>
</template>
......@@ -152,18 +111,11 @@
<el-divider></el-divider>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="查询名称" prop="xxfbName">
<el-input v-model="form.xxfbName" placeholder="请输入名称"/>
<el-input v-model="form.xxfbName" placeholder="请输入名称" />
</el-form-item>
<el-form-item label="级部" prop="gradeId">
<treeselect
v-model="form.gradeId"
:options="gradeTree"
:show-count="true"
@select="deptIdAndName"
:disable-branch-nodes="true"
:defaultExpandLevel="2"
placeholder="请选择级部"
/>
<treeselect v-model="form.gradeId" :options="gradeTree" :show-count="true" @select="deptIdAndName"
:disable-branch-nodes="true" :defaultExpandLevel="2" placeholder="请选择级部" />
</el-form-item>
</el-form>
<!-- <span style="color: red">*</span>-->
......@@ -173,13 +125,13 @@
<div v-show="isShow">
<div
style="font-size: 10px; color: #ed5565; font-weight: 400; background: #d8ecf6; border: 1px solid #03b3f5; padding: 10px">
注:上传excel文件,第一行为数据表头,不允许合并单元格,列名不要重复,第一列为身份证号,第二列为姓名。后续不限制
注:上传excel文件,第一行为数据表头,不允许合并单元格,列名不要重复,第一列为号,第二列为姓名。后续不限制
</div>
<br/>
<br />
<el-table :data="tableData" :border="true" style="width: 100%">
<!-- <el-table-column type="index" label="序号" width="50">-->
<!-- </el-table-column>-->
<el-table-column prop="idCard" min-width="120px" label="身份证号">
<el-table-column prop="schoolNo" min-width="120px" label="学号">
</el-table-column>
<el-table-column prop="name" label="姓名">
</el-table-column>
......@@ -198,20 +150,11 @@
<el-table-column label="I">
</el-table-column>
</el-table>
<br/> <br/>
<br /> <br />
</div>
<el-upload
style="width: 950px;display: block; margin: 0 auto;"
ref="upload"
:limit='1'
class="upload-demo"
action="uploadUrl"
accept=".xlsx, .xls"
:headers="upload.headers"
show-file-list
:before-upload="handleBeforeUpload"
:http-request="uploadImage"
>
<el-upload style="width: 950px;display: block; margin: 0 auto;" ref="upload" :limit='1' class="upload-demo"
action="uploadUrl" accept=".xlsx, .xls" :headers="upload.headers" show-file-list
:before-upload="handleBeforeUpload" :http-request="uploadImage">
<el-button style="width: 950px; display: block; margin: 0 auto; background: #54bbbc; color: white">
点击上传文件
</el-button>
......@@ -227,7 +170,7 @@
<el-dialog :title="title" :visible.sync="edtion" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="60px">
<el-form-item label="名称" prop="xxfbName">
<el-input v-model="form.xxfbName" placeholder="请输入名称"/>
<el-input v-model="form.xxfbName" placeholder="请输入名称" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -256,7 +199,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "Xxfb",
components: {Treeselect},
components: { Treeselect },
dicts: ['info_push_state'],
data() {
return {
......@@ -276,10 +219,10 @@ export default {
},
tableData: [{
idCard: 'xxxxxxxxxxxxx',
schoolNo: 'xxxxxxxxxxxxx',
name: 'xxx',
}, {
idCard: 'xxxxxxxxxxxxx',
schoolNo: 'xxxxxxxxxxxxx',
name: 'xxx',
}],
uploadUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传excel
......@@ -312,10 +255,10 @@ export default {
// 表单校验
rules: {
xxfbName: [
{required: true, message: "查询名称不能为空", trigger: "blur"}
{ required: true, message: "查询名称不能为空", trigger: "blur" }
],
gradeId: [
{required: true, message: "级部不能为空", trigger: "blur"}
{ required: true, message: "级部不能为空", trigger: "blur" }
],
},
// 级部树
......
......@@ -183,7 +183,7 @@ export default {
telephone: [{required: true, message: "联系方式不能为空", trigger: "blur"}],
relationship: [{required: true, message: "与学生关系不能为空", trigger: "blur"}],
contactAddress: [{required: true, message: "联系地址不能为空", trigger: "blur"}],
idCard: [{required: true, message: "身份证号不能为空", trigger: "blur"}],
// idCard: [{required: true, message: "身份证号不能为空", trigger: "blur"}],
}
};
},
......
......@@ -64,11 +64,12 @@
</el-table>
<!-- 分配实验室弹窗 -->
<el-dialog title="申请信息" :visible.sync="dialogTableVisible" width="75%">
<el-form :model="form" ref="form" size="small" label-width="110px" >
<el-form :model="form" ref="form" size="small" label-width="110px">
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" clearable style="width: 100%;" :disabled="isEdit">
<el-select v-model="form.sub" placeholder="请选择" clearable style="width: 100%;"
:disabled="isEdits">
<el-option v-for="dict in dict.type.lab_sub" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
......@@ -76,12 +77,13 @@
</el-col>
<el-col :span="8">
<el-form-item label="实验名称">
<el-input v-model="form.experimentName" placeholder="请输入" clearable :disabled="isEdit"/>
<el-input v-model="form.experimentName" placeholder="请输入" clearable :disabled="isEdits" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实验分类" prop="experimentClassify">
<el-select v-model="form.experimentClassify" placeholder="请选择" clearable style="width: 100%;" :disabled="isEdit">
<el-select v-model="form.experimentClassify" placeholder="请选择" clearable style="width: 100%;"
:disabled="isEdits">
<el-option v-for="dict in dict.type.experiment_classify" :key="dict.value"
:label="dict.label" :value="dict.value" />
</el-select>
......@@ -91,12 +93,12 @@
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="学年">
<el-input v-model="form.schoolYear" placeholder="请输入" clearable :disabled="isEdit"/>
<el-input v-model="form.schoolYear" placeholder="请输入" clearable :disabled="isEdits" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学期">
<el-select v-model="form.semester" placeholder="请选择学期" style="width: 100%;" :disabled="isEdit">
<el-select v-model="form.semester" placeholder="请选择学期" style="width: 100%;" :disabled="isEdits">
<el-option label="上学期" value="1"></el-option>
<el-option label="下学期" value="2"></el-option>
</el-select>
......@@ -104,7 +106,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="级部">
<el-input v-model="form.grade" placeholder="请输入" clearable :disabled="isEdit"/>
<el-input v-model="form.grade" placeholder="请输入" clearable :disabled="isEdits" />
</el-form-item>
</el-col>
......@@ -112,7 +114,7 @@
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="申请老师">
<el-input v-model="form.applyName" placeholder="请输入" clearable :disabled="isEdit" />
<el-input v-model="form.applyName" placeholder="请输入" clearable :disabled="isEdits" />
</el-form-item>
</el-col>
<el-col :span="8">
......@@ -134,7 +136,8 @@
<el-col :span="24">
<el-form-item label="实验室选择">
<el-checkbox-group v-model="form.schoolTeacherExperimentApplyLabsList">
<el-checkbox v-for="classItem in labs" :key="classItem.labId" :label="classItem.labId">
<el-checkbox v-for="classItem in labs" :key="classItem.labId" :label="classItem.labId"
>
{{ classItem.labName }}- {{ classItem.useState }}
</el-checkbox>
</el-checkbox-group>
......@@ -282,6 +285,7 @@ export default {
applyName: "",
grade: "",
},
selectedLabs: [], // 已选择的实验室
//表格数据
tableData: [
......@@ -290,6 +294,7 @@ export default {
},
isEdit: false,
isEdits: false,
labs: [],
schoolTeacherExperimentApplyLabsList: [],
total: 0,
......@@ -324,6 +329,7 @@ export default {
handleAllocation(row) {
this.loading = true;
const id = row.id || this.ids;
getTeacherapplyxq(id).then(response => {
this.form = response.data;
// 清空已经选择的实验室
......@@ -332,27 +338,42 @@ export default {
const labId = this.form.schoolTeacherExperimentApplyLabsList[i].labId;
this.selectedLabs.push(labId);
}
// console.log('this.form', this.form);
this.form.applyName = response.data.applyName;
this.form.experimentClassify = response.data.experimentClassify;
this.form.experimentName = response.data.experimentName;
this.form.sub = response.data.sub;
this.form.chapterContent = response.data.chapterContent;
this.form.grade = response.data.grade;
this.form.schoolYear = response.data.schoolYear;
this.form.experimentUseGoods = response.data.experimentUseGoods;
this.form.plannedStartTime = response.data.plannedStartTime;
this.form.plannedEndTime = response.data.plannedEndTime;
this.form.schoolLabClassYearRelationList = this.selectedLabs; // 仅将已经选择的实验室作为关联数据提交
this.form.schoolTeacherExperimentApplyLabsList = this.selectedLabs; // 仅将已经选择的实验室作为关联数据提交
this.loading = false;
const plannedStartTime = this.form.plannedStartTime
const plannedEndTime = this.form.plannedEndTime
getLabList(plannedStartTime, plannedEndTime).then(response => {
const sub = this.form.sub
getLabList(plannedStartTime, plannedEndTime, sub).then(response => {
const labs = response.data;
this.labs = labs.filter(lab => lab.useState === "空闲"); // 根据状态筛选出空闲的实验室
// console.log(this.labs, 'this.labs');
// 这里不再需要循环添加实验室关联数据
console.log(labs, 'qb');
const selectedLabs = this.form.schoolTeacherExperimentApplyLabsList; // 获取已选择的实验室列表
console.log(selectedLabs, 'xz');
// 将已选择的实验室信息存储在新的数组中
const selectedLabInfo = labs.filter(lab => {
const isSelected = selectedLabs.some(selectedLab => selectedLab.labId === lab.labId);
if (isSelected) {
lab.isSelected = true;
return true;
}
return false;
});
// 更新 labs 数组,将已选择的实验室信息存储在对应实验室对象中
this.labs = labs.map(lab => {
const selectedLab = selectedLabInfo.find(selectedLab => selectedLab.labId === lab.labId);
if (selectedLab) {
lab.selectedLabInfo = selectedLab;
}
return lab;
}).map(lab => {
if (lab.useState === '使用中') {
lab.isDisabled = true;
}
return lab;
})
this.isEdits = true;
this.loading = false;
});
});
......
......@@ -170,13 +170,13 @@
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="申请老师">
<el-input v-model="postForm.applyName" placeholder="请输入" clearable :disabled="isEdit" />
<el-input v-model="postForm.applyName" placeholder="请输入" clearable :disabled="isEdits" />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="实验分类">
<el-select v-model="postForm.experimentClassify" placeholder="请选择" clearable
style="width: 100%;" :disabled="isEdit">
style="width: 100%;" :disabled="isEdits">
<el-option v-for="dict in dict.type.experiment_classify" :key="dict.value"
:label="dict.label" :value="dict.value" />
</el-select>
......@@ -187,13 +187,13 @@
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="实验名称">
<el-input v-model="postForm.experimentName" placeholder="请输入" clearable :disabled="isEdit" />
<el-input v-model="postForm.experimentName" placeholder="请输入" clearable :disabled="isEdits" />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="学科">
<el-select v-model="postForm.sub" placeholder="请选择" clearable style="width: 100%;"
:disabled="isEdit">
:disabled="isEdits">
<el-option v-for="dict in dict.type.lab_sub" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
......@@ -206,7 +206,7 @@
<el-col :span="20">
<el-form-item label="章节内容">
<el-input v-model="postForm.chapterContent" placeholder="请输入" clearable
:disabled="isEdit"></el-input>
:disabled="isEdits"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -215,12 +215,12 @@
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="级部">
<el-input v-model="postForm.grade" placeholder="请输入" clearable :disabled="isEdit" />
<el-input v-model="postForm.grade" placeholder="请输入" clearable :disabled="isEdits" />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="学年">
<el-input v-model="postForm.schoolYear" placeholder="请输入" clearable :disabled="isEdit" />
<el-input v-model="postForm.schoolYear" placeholder="请输入" clearable :disabled="isEdits" />
</el-form-item>
</el-col>
</el-row>
......@@ -252,7 +252,8 @@
<el-col :span="24">
<el-form-item label="实验室选择">
<el-checkbox-group v-model="postForm.schoolLabClassYearRelationList">
<el-checkbox v-for="classItem in labs" :key="classItem.labId" :label="classItem.labId">
<el-checkbox v-for="classItem in labs" :key="classItem.labId" :label="classItem.labId"
>
{{ classItem.labName }}- {{ classItem.useState }}
</el-checkbox>
</el-checkbox-group>
......@@ -311,6 +312,7 @@ export default {
],
isEdit: false,
isEdits: false,
postForm: {
applyName: '',
experimentClassify: '',
......@@ -391,29 +393,44 @@ export default {
const labId = this.postForm.schoolLabClassYearRelationList[i].labId;
this.selectedLabs.push(labId);
}
// console.log('this.form', this.form);
this.postForm.applyName = response.data.applyName;
this.postForm.experimentClassify = response.data.experimentClassify;
this.postForm.experimentName = response.data.experimentName;
this.postForm.sub = response.data.sub;
this.postForm.chapterContent = response.data.chapterContent;
this.postForm.grade = response.data.grade;
this.postForm.schoolYear = response.data.schoolYear;
this.postForm.experimentUseGoods = response.data.experimentUseGoods;
this.postForm.plannedStartTime = response.data.plannedStartTime;
this.postForm.plannedEndTime = response.data.plannedEndTime;
this.postForm.schoolLabClassYearRelationList = this.selectedLabs; // 仅将已经选择的实验室作为关联数据提交
this.loading = false;
const plannedStartTime = this.postForm.plannedStartTime
const plannedEndTime = this.postForm.plannedEndTime
getLabList(plannedStartTime, plannedEndTime).then(response => {
const sub = this.postForm.sub
getLabList(plannedStartTime, plannedEndTime, sub).then(response => {
const labs = response.data;
this.labs = labs.filter(lab => lab.useState === "空闲"); // 根据状态筛选出空闲的实验室
// console.log(this.labs, 'this.labs');
// 这里不再需要循环添加实验室关联数据
console.log(labs, 'qb');
const selectedLabs = this.postForm.schoolLabClassYearRelationList; // 获取已选择的实验室列表
console.log(selectedLabs, 'xz');
// 将已选择的实验室信息存储在新的数组中
const selectedLabInfo = labs.filter(lab => {
const isSelected = selectedLabs.some(selectedLab => selectedLab.labId === lab.labId);
if (isSelected) {
lab.isSelected = true;
return true;
}
return false;
});
// 更新 labs 数组,将已选择的实验室信息存储在对应实验室对象中
this.labs = labs.map(lab => {
const selectedLab = selectedLabInfo.find(selectedLab => selectedLab.labId === lab.labId);
if (selectedLab) {
lab.selectedLabInfo = selectedLab;
}
return lab;
}).map(lab => {
if (lab.useState === '使用中') {
lab.isDisabled = true;
}
return lab;
})
this.isEdits = true;
this.loading = false;
});
});
this.dialogTableVisible = true;
},
......@@ -478,7 +495,7 @@ export default {
getAllocationLab(params).then(response => {
this.$modal.msgSuccess('保存成功');
this.open = false;
this.dialogTableVisible = false;
this.getList();
});
}
......@@ -510,7 +527,7 @@ export default {
getAllocationLab(params).then(response => {
console.log(params, params);
this.$modal.msgSuccess('提交成功');
this.open = false;
this.dialogTableVisible = false;
this.getList();
});
}
......
......@@ -39,12 +39,14 @@
</el-table-column>
<el-table-column label="证书照片" align="center">
<template slot-scope="scope">
<div>
<el-image v-for="(accessory, index) in scope.row.schoolAccessoryList" :key="index"
style="width: 100px; height: 100px" :src="accessory.accessoryUrl"
:preview-src-list="[accessory.accessoryUrl]"></el-image>
</div>
<el-carousel :interval="4000" height="100px">
<el-carousel-item v-for="(item, index) in scope.row.schoolAccessoryList" :key="index">
<el-image style="width: 100px; height: 100px" :src="pev + item.accessoryUrl"
:preview-src-list="[pev + item.accessoryUrl]"></el-image>
</el-carousel-item>
</el-carousel>
</template>
</el-table-column>
<el-table-column label="备注1" align="center" prop="remark1" />
......@@ -118,13 +120,19 @@
<el-row>
<el-col :span="10">
<el-form-item prop="schoolAccessoryList" label="证书照片">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
<el-upload v-loading="uploadLoading" class="avatar-uploader" :action="uploadFileUrl" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"
:http-request="uploadImage">
<img v-for="item in form.schoolAccessoryList" :key="item.accessoryUrl" :src="item.accessoryUrl"
class="avatar" />
<i v-if="form.schoolAccessoryList.length === 0" class="el-icon-plus avatar-uploader-icon"></i>
:on-remove="handleRemove">
<div v-if="form.schoolAccessoryList.length === 0">
<i class="el-icon-plus avatar-uploader-icon"></i>
</div>
<div v-else>
<div v-for="(item, index) in form.schoolAccessoryList" :key="index">
<img :src="pev + item.accessoryUrl" class="avatar" />
</div>
</div>
</el-upload>
<i class="el-icon-delete" @click="handleRemove(index)"></i> <!-- 添加删除按钮 -->
</el-form-item>
</el-col>
......@@ -156,10 +164,7 @@
</div>
</el-dialog>
<el-dialog ref="previewDialog" title="预览图片" :visible.sync="previewDialogVisible">
<el-image style="width: 100%; max-height: 80vh; object-fit: contain" :src="previewImageUrl"
fit="contain"></el-image>
</el-dialog>
</div>
</template>
......@@ -181,6 +186,7 @@ export default {
components: { picAvatar },
data() {
return {
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
//缩略图
srcList: [],
// 图片路径
......@@ -222,7 +228,7 @@ export default {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "change" }
],
teacherName: [
teacherId: [
{ required: true, message: "教师名称不能为空", trigger: "change" }
],
entrySubject: [
......@@ -260,10 +266,7 @@ export default {
this.getTeacher();
},
methods: {
handlePreview(url) {
this.previewImageUrl = url;
this.$refs.previewDialog.open();
},
//获取列表数据
getList() {
getCompetition(this.queryForm).then(response => {
......@@ -271,17 +274,6 @@ export default {
console.log('response', response);
this.total = response.total;
this.loading = false;
this.competitionData.forEach(item => {
if (item.schoolAccessoryList) {
item.previewUrls = [item.schoolAccessoryList.map(accessory => accessory.accessoryUrl)];
item.pictureUrl = item.schoolAccessoryList.map(accessory => accessory.accessoryUrl);
} else {
item.previewUrls = [];
item.pictureUrl = [];
}
});
});
},
......@@ -290,19 +282,22 @@ export default {
this.pic = val
},
// 移除图片
handleRemove() {
this.imageUrl = undefined
handleRemove(index) {
this.form.schoolAccessoryList.splice(index, 1);
},
// 上传成功回调
handleAvatarSuccess(response, file) {
console.log('response', response);
console.log('file', file);
// 处理上传成功的逻辑
const accessoryUrl = response.data.url; // 假设响应中包含了图片的访问URL
const accessoryName = file.name; // 获取上传文件的名称
const picUrl = response.fileName; // 假设响应中包含了图片的访问URL
const accessoryName = response.originalFilename; // 获取上传文件的名称
this.form.schoolAccessoryList.push({
accessoryUrl: accessoryUrl,
// url: this.pev + picUrl,
accessoryUrl: picUrl,
accessoryName: accessoryName
});
console.log('this.form.schoolAccessoryList', this.form.schoolAccessoryList);
},
// 上传前格式和图片大小限制
......@@ -318,27 +313,7 @@ export default {
return type && isLt2M
},
// 上传图片
uploadImage(file) {
const fileData = file.file
const formData = new FormData()
formData.append('file', fileData)
this.uploadLoading = true
commonUpload(formData)
.then(response => {
this.uploadLoading = false
this.$modal.msgSuccess('上传成功')
this.imageUrl = process.env.VUE_APP_BASE_API + response.url
// 添加以下代码将文件信息添加到 uploadedFiles 数组中
this.uploadedFiles.push({
accessoryUrl: process.env.VUE_APP_BASE_API + response.url,
accessoryName: fileData.name
})
})
.catch(error => {
this.uploadLoading = false
})
},
//重置
resetQuery() {
......@@ -388,26 +363,25 @@ export default {
schoolAccessoryList: [],
};
this.nowType = type;
if (type != 0) {
if (type !== 0) {
const id = row.id;
getCompetitionxq(id).then(response => {
console.log(response.data, 'chakan');
if (response.code == 200) {
if (response.code === 200) {
Object.keys(this.form).forEach(key => {
if (response.data[key]) {
this.accessoryUrl = this.pev + this.picUrl
console.log(this.accessoryUrl, 'chakan ');
this.$set(this.form, key, response.data[key]);
const teacherId = this.form.teacherId
this.form.teacherName = teacherId == '' ? '' : this.teacherList.find(item => item.userId == teacherId).userName
console.log(this.form.teacherName, 'this.form.teacherName');
}
if (response.data.schoolAccessoryList && response.data.schoolAccessoryList.length > 0) {
this.imageUrls = response.data.schoolAccessoryList.map(item => item.accessoryUrl);
}
});
}
});
}
......@@ -430,17 +404,8 @@ export default {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != "") {
// 清空原有图片
this.form.schoolAccessoryList.splice(0);
for (let i = 0; i < this.uploadedFiles.length; i++) {
const file = this.uploadedFiles[i];
this.form.schoolAccessoryList.push({
accessoryUrl: file.accessoryUrl,
accessoryName: file.accessoryName
});
}
updateCompetition(this.form).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('修改成功')
this.dialogVisible = false
......@@ -450,17 +415,6 @@ export default {
this.$modal.msgError("修改失败");
});
} else {
// 清空原有图片
this.form.schoolAccessoryList = [];
for (let i = 0; i < this.uploadedFiles.length; i++) {
const file = this.uploadedFiles[i];
this.form.schoolAccessoryList.push({
accessoryUrl: file.accessoryUrl,
accessoryName: file.accessoryName
});
}
addCompetition(this.form).then(response => {
console.log(this.form, 'this.form');
this.$modal.msgSuccess('新增成功')
......
......@@ -478,13 +478,14 @@ export default {
handleUpdate(row) {
const id = row.id || this.ids;
this.title = "派单";
this.openpd = true;
getRepairs(id).then(response => {
this.formpd.id = response.data.id;
console.log('this.formpd.id', this.formpd.id);
}).catch(err => {
})
this.openpd = true;
},
/** 删除按钮操作 */
......@@ -500,8 +501,6 @@ export default {
// 派单按钮
submitFormpd() {
this.$refs.formpd.validate((valid) => {
if (valid) {
const newObj = {};
newObj.id = this.formpd.id;
newObj.maintainState = this.formpd.maintainState;
......@@ -511,22 +510,15 @@ export default {
console.log(newObj.maintainState);
dispatchRepairs(newObj)
.then((response) => {
this.$modal.closeLoading();
this.$modal.msgSuccess("派单成功");
this.getList();
// 派单成功,显示提示信息并刷新页面
this.$message.success("派单成功");
this.openpd = false;
this.formpd.maintainResult = '';
this.getList();
})
.catch((error) => {
});
} else {
return false;
}
});
},
// 取消按钮
cancel() {
this.open = false;
......
......@@ -96,7 +96,7 @@
type="info"
size="small"
round
@click="clubActivityRecord(task.id)"
@click="clubActivityRecord(task.id, task.name)"
>社团活动记录</el-button
>
<el-button
......@@ -316,11 +316,12 @@ export default {
});
},
// 社团活动记录
clubActivityRecord(id) {
clubActivityRecord(id, name) {
this.$router.push({
path: "/massOrganization/clubActivityRecord",
query: {
id,
name,
},
});
},
......@@ -351,10 +352,8 @@ export default {
},
// 搜索按钮
handleQuery() {
this.throttle(() => {
this.queryForm.pageNum = 1;
this.getList();
});
},
/** 重置按钮操作 */
resetQuery() {
......
......@@ -69,24 +69,14 @@
<template slot-scope="scope">
<el-image
v-for="(item, index) in scope.row.file.split(',')"
:key="index"
:key="index.id"
style="width: 100px; height: 100px"
:src="item"
:preview-src-list="[item]"
:preview-src-list="[pev + item]"
>
</el-image>
</template>
</el-table-column>
<!-- <el-table-column label="是否发布" align="center" prop="isfb">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isShow"
active-value="1"
inactive-value="0"
@change="handleIsShow(scope.row)"
></el-switch>
</template>
</el-table-column> -->
<el-table-column
label="操作"
align="center"
......@@ -139,7 +129,7 @@
>
<el-row>
<el-col :span="24">
<el-form-item label="风采主题:" prop="theme">
<el-form-item label="活动主题:" prop="theme">
<el-input
v-model="form.theme"
placeholder="请输入"
......@@ -232,11 +222,11 @@
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
>
<img v-if="form.file" :src="form.file" class="avatar" />
<!-- <img v-if="form.file" :src="form.file" class="avatar" /> -->
<div v-if="form.file">
<img
v-for="(item, index) in form.file"
:key="index"
v-for="(item, img) in form.file"
:key="img.id"
:src="item"
class="avatar"
/>
......@@ -275,7 +265,7 @@ export default {
data() {
return {
//图片上传列表
uploadList: [],
uploadList: {},
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
pev: process.env.VUE_APP_BASE_API,
......@@ -333,7 +323,7 @@ export default {
endTime: "",
fzr: "",
id: "",
orgName: "",
orgName: this.$route.query.name,
file: "",
remark: "",
},
......@@ -410,10 +400,8 @@ export default {
theme: this.queryParams.theme,
};
getClubInfo(params).then((response) => {
// console.log("response", response);
this.picList = response.rows;
this.picList.file = response.rows.file;
// console.log(this.picList.file);
this.total = response.total;
this.loading = false;
});
......@@ -467,10 +455,10 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.uploadList = [];
this.reset();
this.open = true;
this.title = "新增社团活动记录";
this.form.orgName = this.$route.query.name;
},
/** 编辑按钮操作 */
handleUpdate(row) {
......@@ -478,14 +466,15 @@ export default {
const ids = row.id || this.ids;
this.uploadList = [];
this.form.file = [];
this.form.orgName = this.$route.query.name;
console.log(
this.form.orgName,
"this.form.orgName = this.$route.query.name;"
);
listClubInfo(ids).then((response) => {
this.form = response.data;
this.form.file = response.data.file.split(",");
console.log("this.form.file", this.form.file);
this.imageUrl = this.pev + this.form.picUrl;
console.log(this.imageUrl, "this.imageUrl");
this.open = true;
this.title = "编辑社团活动记录";
});
......@@ -496,32 +485,23 @@ export default {
this.open = true;
this.uploadList = [];
this.form.file = [];
const ids = row.id || this.ids;
listClubInfo(ids).then((response) => {
this.form = response.data;
// this.form.file = response.data.file;
console.log("this.form.file", this.form.file);
this.form.file = response.data.file.split(",");
// console.log(this.form.file);
this.open = true;
});
this.title = "查看社团活动记录";
},
// 上传成功回调
handleAvatarSuccess(res, file) {
// this.imageUrl = res.data.url;
// console.log(file);
// this.commonUpload(file);
console.log("Success res", res);
console.log("Success file", file);
if (res.code == 200) {
this.uploadList.push(this.pev + res.fileName);
this.form.file = this.uploadList;
console.log("this.uploadList", this.uploadList);
console.log("this.form.file", this.form.file);
}
console.log(this.pev, "this.uploadList111111");
console.log(res.fileName, "res.fileName");
console.log(this.form.file, "this.form.file");
// this.imageUrl = res.data.url;
// console.log(file);
......@@ -548,24 +528,24 @@ export default {
this.imageUrl = "";
},
// 上传图片
uploadImage(file) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
this.uploadLoading = true;
commonUpload(formData)
.then((response) => {
this.uploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.imageUrl = this.pev + response.url;
// this.form.picUrl = process.env.VUE_APP_BASE_API + response.url
this.form.file = this.pev + response.url;
console.log(this.form.picUrl, "this.form.picUrl");
})
.catch((error) => {
this.uploadLoading = false;
});
},
// uploadImage(file) {
// const fileData = file.file;
// const formData = new FormData();
// formData.append("file", fileData);
// this.uploadLoading = true;
// commonUpload(formData)
// .then((response) => {
// this.uploadLoading = false;
// this.$modal.msgSuccess("上传成功");
// this.imageUrl = this.pev + response.url;
// // this.form.picUrl = process.env.VUE_APP_BASE_API + response.url
// this.form.file = this.pev + response.url;
// console.log(this.form.picUrl, "this.form.picUrl");
// })
// .catch((error) => {
// this.uploadLoading = false;
// });
// },
/** 提交按钮 */
submitForm() {
......
......@@ -254,6 +254,7 @@ export default {
},
// 同意
handleAgree(row) {
console.log(row, "同意row");
this.$confirm("确定同意吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
......
......@@ -64,7 +64,6 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" width="80" /> -->
<el-table-column label="序号" align="center" type="index" width="80" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="性别" align="center" prop="sex">
......@@ -173,60 +172,6 @@
@getStudentList="getStudentList"
@setStudentInfo="setStudentInfo"
></StudentInfoSelect>
<!-- 学生选择
<el-dialog title="学生选择" :visible="dialogVisible" width="45%">
<el-form ref="formStu" :model="formStu" :rules="rules" label-width="68px">
<el-row>
<el-col :span="12">
<el-form-item label="姓名:" prop="name">
<el-input v-model="formStu.name" placeholder="请选择学生姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<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-col>
</el-row>
<el-table
ref="tableStu"
:data="atuList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="35" align="center" />
<el-table-column
label="序号"
align="center"
type="index"
width="80"
/>
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="性别" align="center" prop="name" />
<el-table-column label="级部" align="center" prop="name" />
<el-table-column label="班级" align="center" prop="name" />
<el-table-column label="身份证号" align="center" prop="name" />
</el-table>
</el-form>
<div slot="footer" class="dialog-footer" center>
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog> -->
</div>
</template>
......@@ -319,6 +264,8 @@ export default {
},
/** 设置学生信息 */
setStudentInfo(item) {
this.form.ids = item.id;
console.log(this.form.ids, "this.form.ids11111");
console.log(item, "item");
this.$set(this.form, "name", item.studentName);
this.$set(this.form, "sex", item.sex);
......@@ -397,7 +344,7 @@ export default {
if (this.form.id != null) {
// 修改
const paramsedit = {
id: this.form.id,
id: this.form.ids,
name: this.form.name,
sex: this.form.sex,
cardid: this.form.cardid,
......@@ -418,7 +365,7 @@ export default {
} else {
// 新增
// 获取当前登录人userId
const userName = this.$store.state.user.userId;
// const userName = this.$store.state.user.userId;
const params = {
cid: this.$route.query.id,
orgName: this.form.orgName,
......@@ -429,7 +376,7 @@ export default {
classes: this.form.classes,
orgPosition: this.form.orgPosition,
phone: this.form.phone,
userId: userName,
userId: this.form.ids,
};
addMemberInfo(params)
.then((response) => {
......
......@@ -97,49 +97,22 @@
min-width="200"
>
<template slot-scope="scope">
<!--已发布 未填写/已驳回 已填写-->
<!-- 未填写 -->
<div>
<el-button
v-if="check === '1' ? true : false"
size="mini"
type="text"
@click="handleEdit(scope.row)"
<el-button size="mini" type="text" @click="handleEdit(scope.row)"
>填写
</el-button>
<el-button
v-if="check === '1' ? true : false"
size="mini"
type="text"
@click="handleSubmit(scope.row)"
>提交
</el-button>
</div>
<!--已发布 未填写/已驳回 已填写-->
<div>
<el-button
v-if="
check === '2' || check === '3' || check === '5' || check === '9'
? true
: false
"
size="mini"
type="text"
@click="handleEdit(scope.row)"
<el-button size="mini" type="text" @click="handleEdit(scope.row)"
>修改
</el-button>
<el-button
v-if="check == '4' ? true : false"
size="mini"
type="text"
@click="handleSubmit(scope.row)"
>提交
</el-button>
</div>
<!--已结束 已填写 / 已结束 级部已确认-->
<div>
<el-button size="mini" type="text" @click="handleCheck(scope.row)"
>查看
</el-button>
<el-button size="mini" type="text" @click="handleSubmit(scope.row)"
>提交
</el-button>
<!-- </div> -->
<!-- <div> -->
</div>
</template>
</el-table-column>
......@@ -387,25 +360,17 @@
</el-table-column>
<el-table-column
align="center"
prop="thesisList.thesisName"
prop="thesisName"
label="论文名称"
>
</el-table-column>
<el-table-column
align="center"
prop="thesisList.level"
label="级别"
>
<el-table-column align="center" prop="level" label="级别">
</el-table-column>
<el-table-column
align="center"
prop="thesisList.grade"
label="等级"
>
<el-table-column align="center" prop="grade" label="等级">
</el-table-column>
<el-table-column
align="center"
prop="thesisList.publishTime"
prop="publishTime"
label="发表时间"
>
</el-table-column>
......@@ -426,15 +391,11 @@
<el-table :data="tableSecondData" border>
<el-table-column align="center" fixed type="index" label="序号">
</el-table-column>
<el-table-column
align="center"
prop="materialList.name"
label="名称"
>
<el-table-column align="center" prop="name" label="名称">
</el-table-column>
<el-table-column
align="center"
prop="materialList.publishTime"
prop="publishTime"
label="发表时间"
>
</el-table-column>
......@@ -444,26 +405,26 @@
<div class="tableThird">
<div class="tableTitle">
<i class="el-icon-data-analysis"></i>
<span style="margin-left: 5px">发表成就奖论文情况</span>
<span style="margin-left: 5px">培训情况</span>
</div>
<el-table :data="tableThirdData" border>
<el-table-column align="center" fixed type="index" label="序号">
</el-table-column>
<el-table-column
align="center"
prop="trainingList.trainingTime"
prop="trainingTime"
label="培训时间"
>
</el-table-column>
<el-table-column
align="center"
prop="trainingList.trainingName"
prop="trainingName"
label="培训名称"
>
</el-table-column>
<el-table-column
align="center"
prop="trainingList.isQualified"
prop="isQualified"
label="是否合格"
>
</el-table-column>
......@@ -473,32 +434,32 @@
<div class="tableForth">
<div class="tableTitle">
<i class="el-icon-trophy"></i>
<span style="margin-left: 5px">发表成就奖论文情况</span>
<span style="margin-left: 5px">业务获奖情况</span>
</div>
<el-table :data="tableForthData" border>
<el-table-column align="center" fixed type="index" label="序号">
</el-table-column>
<el-table-column
align="center"
prop="awardList.awardName"
prop="awardName"
label="获奖名称"
>
</el-table-column>
<el-table-column
align="center"
prop="awardList.awardTime"
prop="awardTime"
label="获奖时间"
>
</el-table-column>
<el-table-column
align="center"
prop="awardList.gradeOfAward"
prop="gradeOfAward"
label="获奖等级"
>
</el-table-column>
<el-table-column
align="center"
prop="awardList.licenselssuingAuthority"
prop="licenselssuingAuthority"
label="发证机关"
>
</el-table-column>
......@@ -593,11 +554,9 @@ export default {
/** 查询信息列表 */
getList() {
this.loading = true;
// const userName = this.$store.state.user;
const userId = this.$store.state.user.userId;
// queryForm.noticeName
const params = {
userId: this.$store.state.user.userId,
// userId: this.$store.state.user.userId,
noticeName: this.queryForm.noticeName,
};
// const params = {
......@@ -605,24 +564,22 @@ export default {
// pageSize: this.queryForm.pageSize,
// teacherId: this.$store.state.user.userId,
// };
getTeacherTnfo(params).then((res) => {
getTeacherTnfo(userId, params).then((res) => {
this.tableData = res.rows;
// console.log(params, "params");
console.log(params, "params");
console.log(res, "res");
// this.total = res.total;
this.total = res.total;
});
},
// 提取 `
handleExtract() {
const fid = this.form.fid;
console.log(fid, "fid");
// syncNotice(fid).then((res) => {
// console.log("res提取", res);
// this.tableFirstData = res;
// this.tableSecondData = res;
// this.tableThirdData = res;
// this.tableForthData = res;
// });
const id = this.form.id;
syncNotice(id).then((res) => {
console.log(id, "id");
console.log("res提取", res);
this.$modal.msgSuccess("提取成功");
});
},
// 搜索按钮
handleQuery() {
......@@ -648,6 +605,10 @@ export default {
getFileTnfo(id).then((res) => {
this.form = res.data;
this.title = "基本信息查看";
this.tableForthData = res.data.awardList;
this.tableSecondData = res.data.materialList;
this.tableFirstData = res.data.thesisList;
this.tableThirdData = res.data.trainingList;
});
},
//填写按钮
......
......@@ -21,6 +21,11 @@
<el-table-column label="型号" align="center" prop="model" />
<el-table-column label="借用日期" align="center" prop="borrowTime" />
<el-table-column label="借用人" align="center" prop="borrowBy" />
<el-table-column label="归还状态" align="center" prop="returnState">
<template slot-scope="scope">
<dict-tag :options="dict.type.return_state" :value="scope.row.returnState"></dict-tag>
</template>
</el-table-column>
<el-table-column label="用途" align="center" prop="purpose" />
<el-table-column label="借用期限" align="center" prop="deadline" />
<el-table-column label="操作" align="center">
......@@ -80,6 +85,14 @@
<el-input v-model="postForm.deadline" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归还状态" prop="returnState">
<el-select v-model="postForm.returnState" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.return_state" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
......@@ -100,7 +113,7 @@ import {
listTeacherjyxq
} from "@/api/smartSchool/personWork/propertyManagement";
export default {
dicts: ['return_state'],
data() {
return {
queryParams: {
......
......@@ -27,11 +27,15 @@
<el-table-column label="投产日期" align="center" prop="dateOfProduction" />
<el-table-column label="地点" align="center" prop="place" />
<el-table-column label="报修时间" prop="reportRepairTime" align="center" width="180px" />
<el-table-column label="报修人" align="center" prop="reportrepair" />
<el-table-column label="报修人" align="center" prop="reportRepair" />
<el-table-column label="问题" align="center" prop="problem" />
<el-table-column label="修理人" align="center" prop="repairName" />
<el-table-column label="修理时间" align="center" prop="repairTime" width="180px" />
<el-table-column label="修理状态" align="center" prop="repairState" />
<el-table-column label="修理状态" align="center" prop="repairState">
<template slot-scope="scope">
<dict-tag :options="dict.type.repair_state" :value="scope.row.repairState"></dict-tag>
</template>
</el-table-column>
<el-table-column label="评价" align="center" prop="evaluate" width="220px">
<template slot-scope="scope">
<el-rate :value="Number(scope.row.evaluate)" :max="5" :disabled="!scope.row.editable"></el-rate>
......@@ -82,8 +86,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="报修时间:" prop="reportrepairtime">
<el-date-picker v-model="postForm.reportrepairtime" type="date" style="width: 100%;"
<el-form-item label="报修时间:" prop="reportRepairTime">
<el-date-picker v-model="postForm.reportRepairTime" type="date" style="width: 100%;"
value-format="yyyy-MM-dd" clearable></el-date-picker>
</el-form-item>
</el-col>
......@@ -118,7 +122,11 @@
<el-row>
<el-col :span="12">
<el-form-item label="修理状态" prop="repairState">
<el-input v-model="postForm.repairState" />
<el-select v-model="postForm.repairState" placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.repair_state" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
......
......@@ -297,7 +297,6 @@ export default {
handleUpdate(row) {
this.reset()
const ids = row.id || this.ids
getPic(ids).then(response => {
this.form = response.data
this.imageUrl = this.pev + this.form.picUrl
......
......@@ -66,7 +66,7 @@
show-overflow-tooltip />
<el-table-column label="创建人" align="center" v-if="columns[2].visible" prop="createBy" width="200"
show-overflow-tooltip />
<el-table-column label="接收人" align="center" v-if="columns[3].visible" prop="groupId" width="200"
<el-table-column label="接收人" align="center" v-if="columns[3].visible" prop="groupName" width="200"
show-overflow-tooltip>
<!-- <template slot-scope="scope">
<span>{{ resolveRole(scope.row.receivePacket) }}</span>
......
......@@ -172,6 +172,7 @@ export default {
},
//添加用户
openSelectUser() {
this.userIds = []; // 清空数组内容
this.visible = true;
},
// 查询可分组表数据
......
......@@ -27,7 +27,11 @@
<el-table-column label="领用日期" align="center" prop="recipientTime" width="200" />
<el-table-column label="领用人" align="center" prop="recipientBy" />
<el-table-column label="退还日期" align="center" prop="returnTime" width="200" />
<el-table-column label="退还时设备情况" align="center" prop="returnEquipmentCondition" />
<el-table-column label="退还时设备情况" align="center" prop="returnEquipmentCondition">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.equipment_state, row.returnEquipmentCondition) }}</div>
</template>
</el-table-column>
<el-table-column label="接收人" align="center" prop="receivedBy" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" prop="orgname" width="150" fixed="right">
......@@ -71,8 +75,7 @@
<el-form-item label="领用人" prop="recipientById">
<el-select v-model="collectionForm.recipientById" filterable placeholder="请选择领用人" clearable
class="selectWidth" :disabled="nowType == 2 ? true : false">
<el-option v-for="(item, index) in userListly" :key="index"
:label="item.userName" :value="item.userId">
<el-option v-for="(item, index) in userListly" :key="index" :label="item.userName" :value="item.userId">
</el-option>
</el-select>
</el-form-item>
......@@ -108,12 +111,15 @@
</el-col>
<el-col :span="12">
<el-form-item label="退还时设备情况" prop="returnEquipmentCondition">
<el-input v-model="collectionForm.returnEquipmentCondition" placeholder="请输入退还时设备情况"
:disabled="nowType == 2 ? true : false"></el-input>
<el-select v-model="collectionForm.returnEquipmentCondition" placeholder="请输入退还时设备情况" clearable
style="width: 100%;" :disabled="nowType == 2 ? true : false">
<el-option v-for="dict in dict.type.equipment_state" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<!-- <el-row :gutter="30">
<el-col :span="12">
<el-form-item label="预计使用时间" prop="yjuseTime">
<el-date-picker v-model="collectionForm.yjuseTime" type="datetime" clearable class="selectWidth"
......@@ -128,7 +134,7 @@
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-row> -->
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="备注" prop="remark">
......@@ -161,6 +167,7 @@ import {
getRepairencode,//根据自编码获取设备信息
} from '@/api/smartSchool/schoolProperty/repairApplicant.js'
export default {
dicts: ['equipment_state',],
data() {
return {
queryParams: {
......@@ -178,6 +185,7 @@ export default {
adminUserListjs: [],
//新增
collectionForm: {
equipmentId: '',
encode: '',
equipmentName: '',
model: '',
......@@ -188,8 +196,6 @@ export default {
receivedById: '',
receivedBy: '',
returnEquipmentCondition: '',
yjuseTime: '',
sjuseTime: '',
remark: '',
},
dialogVisible: false,
......@@ -213,12 +219,7 @@ export default {
receivedById: [
{ required: true, message: "接收人不能为空", trigger: "blur" }
],
yjuseTime: [
{ required: true, message: "预计使用时间不能为空", trigger: "blur" }
],
sjuseTime: [
{ required: true, message: "实际使用时间不能为空", trigger: "blur" }
]
},
isEditable: true,
}
......@@ -244,6 +245,7 @@ export default {
// 0新增、1编辑、2查看
handleOption(type, item) {
this.collectionForm = {
equipmentId: '',
id: '',
encode: '',
equipmentName: '',
......@@ -255,8 +257,6 @@ export default {
receivedById: '',
receivedBy: '',
returnEquipmentCondition: '',
yjuseTime: '',
sjuseTime: '',
remark: '',
}
this.nowType = type;
......@@ -355,8 +355,6 @@ export default {
returnTime: null,
receivedBy: null,
returnEquipmentCondition: null,
yjuseTime: null,
sjuseTime: null,
remark: null,
};
......
......@@ -656,7 +656,7 @@ export default {
console.log(encodes, 'encodes');
const printListParam = encodeURIComponent(JSON.stringify(this.printList));
dd.biz.util.openLink({
url: `${baseUrl}?ids=${ids}&encodes=${encodes}&printList=${printListParam}`,
url: `${baseUrl}?ids=${ids}`,
onSuccess: () => {
console.log('跳转成功,准备打印');
// 打印条码
......
......@@ -50,7 +50,9 @@ import { getToken } from "@/utils/auth";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import QRCode from "qrcodejs2"; // 生成二维码插件
import printJS from "print-js"; // 打印插件
import {
equipmentPrint
} from "../../../../api/smartSchool/schoolProperty/equipmenTledger";
export default {
name: "index",
......@@ -81,22 +83,28 @@ export default {
};
},
created() {
const ids = this.$route.query.ids;
const encodes = this.$route.query.encodes;
const printList = JSON.parse(decodeURIComponent(this.$route.query.printList));
this.printBarcodes(ids, encodes, printList);
this.getList();
},
methods: {
getList() {
this.loading = true
const ids = this.$route.query.ids;
console.log(ids, 'ids');
equipmentPrint(ids).then(res => {
this.printList = res;
console.log(this.printList, 'this.printList');
this.chooseList = res;
console.log(this.chooseList, 'this.chooseList');
this.loading = false
this.printBarcodes();
})
},
//生成批量打印条码
printBarcodes(ids, encodes, printList) {
printBarcodes() {
this.printDialog = true;
console.log(ids, encodes);
this.printList = [...printList];
this.chooseList = [...this.printList];
console.log(this.chooseList, '122');
this.$nextTick(() => {
this.printList.map((item, index) => {
const domPrint = document.getElementById(`print${index}`).lastElementChild;
......
......@@ -21,16 +21,20 @@
<el-table v-loading="loading" :data="lendReturnData" stripe>
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="自编码" align="center" prop="encode" width="140" />
<el-table-column label="设备名称" align="center" prop="equipmentName" />
<el-table-column label="设备名称" align="center" prop="equipmentName" width="130" />
<el-table-column label="型号" align="center" prop="model" />
<el-table-column label="借用日期" align="center" prop="borrowTime" width="160" />
<el-table-column label="借用人" align="center" prop="borrowBy" />
<el-table-column label="用途" align="center" prop="purpose" />
<el-table-column label="借用期限(天)" align="center" prop="deadline" width="140" />
<el-table-column label="归还日期" align="center" prop="returnTime" width="160" />
<el-table-column label="归还时设备情况" align="center" prop="returnEquipmentCondition" width="160" />
<el-table-column label="预计使用期限" align="center" prop="yjuseTime" width="160" />
<el-table-column label="归还时设备情况" align="center" prop="returnEquipmentCondition" width="160">
<template slot-scope="{ row }">
<dict-tag :options="dict.type.equipment_state" :value="row.returnEquipmentCondition" />
</template>
</el-table-column>
<el-table-column label="接收人" align="center" prop="receivedBy" />
<el-table-column label="预计使用时间" align="center" prop="yjuseTime" width="160" />
<el-table-column label="归还日期" align="center" prop="returnTime" width="160" />
<el-table-column label="实际使用时间" align="center" prop="sjuseTime" width="160" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" prop="orgname" width="150" fixed="right">
......@@ -100,8 +104,8 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="借用期限(天)" prop="deadline">
<el-input v-model="lendReturnForm.deadline" placeholder="请输入借用期限" :disabled="nowType == 2 ? true : false"
type="number"></el-input>
<el-input v-model="lendReturnForm.deadline" placeholder="请输入借用期限" :disabled="nowType === 2"
@input="handleInput"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -133,17 +137,19 @@
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="预计使用时间" prop="yjuseTime">
<el-form-item label="预计使用期限" prop="yjuseTime">
<el-date-picker v-model="lendReturnForm.yjuseTime" type="datetime" clearable class="selectWidth"
placeholder="请选择预计使用时间" value-format="yyyy-MM-dd HH:mm:ss" :disabled="nowType == 2 ? true : false">
placeholder="请选择" value-format="yyyy-MM-dd HH:mm:ss" :disabled="nowType == 2 ? true : false">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="实际使用时间" prop="sjuseTime">
<el-date-picker v-model="lendReturnForm.sjuseTime" type="datetime" clearable class="selectWidth"
<!-- <el-date-picker v-model="lendReturnForm.sjuseTime" type="datetime" clearable class="selectWidth"
placeholder="请选择实际使用时间" value-format="yyyy-MM-dd HH:mm:ss" :disabled="nowType == 2 ? true : false">
</el-date-picker>
</el-date-picker> -->
<el-input v-model="lendReturnForm.sjuseTime" placeholder="请输入" :disabled="nowType == 2 ? true : false"
type="number"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -198,7 +204,7 @@ export default {
borrowById: '',
borrowBy: '',
purpose: '',
deadline: '',
deadline: null,
returnTime: '',
returnEquipmentCondition: '',
receivedById: '',
......@@ -239,6 +245,15 @@ export default {
this.getList()
},
methods: {
handleInput() {
// 获取输入框的值
let value = this.lendReturnForm.deadline;
// 移除非数字字符,包括小数点和负号
value = value.replace(/[^0-9]/g, '');
// 更新输入框的值
this.lendReturnForm.deadline = value;
},
// 获取列表数据
getList() {
this.loading = true
......
......@@ -9,14 +9,16 @@
<el-button type="primary" plain size="mini" @click="printTable">打印
</el-button>
</div>
</div>
<el-card style="height: 100%;width: 900px;">
<br/> <br/>
<div style="width: 100%; margin: auto;" id="postFormContainer">
<br /> <br />
<div id="postFormContainer">
<div style="text-align: center; font-weight: 800; font-size: 35px">
学籍表
</div>
<br/>
<br />
<table border="1px solid black" cellspacing="0" style="width: 860px">
<tr>
<th rowspan="7" class="leftThree">
......@@ -26,15 +28,22 @@
学校
</th>
<td style="height: 40px" colspan="6">东营市第二中学</td>
<td rowspan="4" class="tdStyle"><img :src="baseUrl + studentInfo.avatar " width="130px" height="160px"
style="margin: 0 0 -3px 0;"></td>
<td rowspan="4" class="tdStyle">
<img v-if="studentInfo.avatar" :src="baseUrl + studentInfo.avatar" width="130px" height="160px"
style="margin: 0 0 -3px 0;">
<div v-else
style="width: 130px; height: 160px; border: 1px solid #ddd; display: flex; justify-content: center; align-items: center;"
:src="无照片">
</div>
</td>
</tr>
<tr>
<th>姓名</th>
<td colspan="2" class="tdStyle" width="220px" style="height: 40px">{{ studentInfo.studentName }}</td>
<th width="80px">性别</th>
<td width="100px" class="tdStyle">
<dict-tag :options="dict.type.sys_user_sex" :value="studentInfo.sex"/>
<dict-tag :options="dict.type.sys_user_sex" :value="studentInfo.sex" />
</td>
<th width="80px">民族</th>
<td class="tdStyle">{{ studentInfo.nation }}</td>
......@@ -97,42 +106,42 @@
</tr>
<tr>
<td class="tdStyle" style="height: 40px"><span
v-if="studentParents.length>0 && studentParents[0].parentName">{{ studentParents[0].parentName }}</span>
v-if="studentParents.length > 0 && studentParents[0].parentName">{{ studentParents[0].parentName }}</span>
</td>
<td class="tdStyle"><span v-if="studentParents.length>0 && studentParents[0].relationship ">
<dict-tag :options="dict.type.relationship" :value="studentParents[0].relationship"/>
<td class="tdStyle"><span v-if="studentParents.length > 0 && studentParents[0].relationship">
<dict-tag :options="dict.type.relationship" :value="studentParents[0].relationship" />
</span></td>
<td colspan="2"><span v-if="studentParents.length>0 && studentParents[0].workAddress ">{{
<td colspan="2"><span v-if="studentParents.length > 0 && studentParents[0].workAddress">{{
studentParents[0].workAddress
}}</span></td>
<td colspan="2"><span v-if="studentParents.length>0 && studentParents[0].contactAddress "> {{
<td colspan="2"><span v-if="studentParents.length > 0 && studentParents[0].contactAddress"> {{
studentParents[0].contactAddress
}}</span></td>
<td><span v-if="studentParents.length>0 && studentParents[0].telephone ">{{
<td><span v-if="studentParents.length > 0 && studentParents[0].telephone">{{
studentParents[0].telephone
}}</span></td>
<td><span v-if="studentParents.length>0 && studentParents[0].postalCode "> {{
<td><span v-if="studentParents.length > 0 && studentParents[0].postalCode"> {{
studentParents[0].postalCode
}}</span></td>
</tr>
<!-- 第二行-->
<tr>
<td class="tdStyle" style="height: 40px"><span
v-if="studentParents.length>1 && studentParents[1].parentName">{{ studentParents[1].parentName }}</span>
v-if="studentParents.length > 1 && studentParents[1].parentName">{{ studentParents[1].parentName }}</span>
</td>
<td class="tdStyle"><span v-if="studentParents.length>1 && studentParents[1].relationship ">
<dict-tag :options="dict.type.relationship" :value="studentParents[1].relationship"/>
<td class="tdStyle"><span v-if="studentParents.length > 1 && studentParents[1].relationship">
<dict-tag :options="dict.type.relationship" :value="studentParents[1].relationship" />
</span></td>
<td colspan="2"><span v-if="studentParents.length>1 && studentParents[1].workAddress ">{{
<td colspan="2"><span v-if="studentParents.length > 1 && studentParents[1].workAddress">{{
studentParents[1].workAddress
}}</span></td>
<td colspan="2"><span v-if="studentParents.length>1 && studentParents[1].contactAddress "> {{
<td colspan="2"><span v-if="studentParents.length > 1 && studentParents[1].contactAddress"> {{
studentParents[1].contactAddress
}}</span></td>
<td><span v-if="studentParents.length>1 && studentParents[1].telephone ">{{
<td><span v-if="studentParents.length > 1 && studentParents[1].telephone">{{
studentParents[1].telephone
}}</span></td>
<td><span v-if="studentParents.length>1 && studentParents[1].postalCode "> {{
<td><span v-if="studentParents.length > 1 && studentParents[1].postalCode"> {{
studentParents[1].postalCode
}}</span></td>
</tr>
......@@ -151,7 +160,7 @@
<tr>
<th style="height: 40px">政治面貌</th>
<td class="tdStyle" colspan="2">
<dict-tag :options="dict.type.politics_tatus" :value="studentInfo.appearance"/>
<dict-tag :options="dict.type.politics_tatus" :value="studentInfo.appearance" />
</td>
<th>血型</th>
<td class="tdStyle" colspan="4">{{ studentInfo.bloodType }}</td>
......@@ -166,7 +175,7 @@
<tr>
<th style="height: 40px">独生子女</th>
<td class="tdStyle" colspan="2">
<dict-tag :options="dict.type.only_child" :value="studentInfo.onlyChild"/>
<dict-tag :options="dict.type.only_child" :value="studentInfo.onlyChild" />
</td>
<th>流动人口状况</th>
<td class="tdStyle" colspan="4">{{ studentInfo.floatingPopulation }}</td>
......@@ -191,9 +200,9 @@
</template>
<script>
import printJS from "print-js";
import {closeCurrentTab} from "@/utils/utilLibrary/routerBatch/routerBatch.js";
import {getTableInfo} from '@/api/smartSchool/teachAffairAdministration/affairStudentManage'
import printJS from "print-js"
import { closeCurrentTab } from "@/utils/utilLibrary/routerBatch/routerBatch.js";
import { getTableInfo } from '@/api/smartSchool/teachAffairAdministration/affairStudentManage'
export default {
name: 'teachAffairStudentTable',
......@@ -214,7 +223,9 @@ export default {
let id = this.$route?.query?.id
getTableInfo(id).then((res) => {
this.studentInfo = res.data
console.log(this.studentInfo, 'this.studentInfo');
this.studentParents = res.studentParents
console.log(this.studentParents, 'this.studentParents');
})
},
closeCurrentTab,
......
......@@ -700,20 +700,20 @@ export default {
studentTurnover: [],
// 表单校验
rules: {
idCard: [
{ required: true, message: "身份证号不能为空", trigger: 'blur' },
{ validator: this.validID, trigger: 'blur' }
],
nation: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
// idCard: [
// { required: true, message: "身份证号不能为空", trigger: 'blur' },
// { validator: this.validID, trigger: 'blur' }
// ],
// nation: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
studentName: [{ required: true, message: '学生姓名不能为空', trigger: 'blur' }],
birthday: [{ required: true, message: '出生日期不能为空', trigger: 'blur' }],
nativePlace: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
sex: [{ required: true, message: '学生姓名不能为空', trigger: 'blur' }],
// birthday: [{ required: true, message: '出生日期不能为空', trigger: 'blur' }],
// nativePlace: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
// sex: [{ required: true, message: '学生性别不能为空', trigger: 'blur' }],
schoolNo: [{ required: true, message: '注册序号不能为空', trigger: 'blur' }],
studentType: [{ required: true, message: '学生类型不能为空', trigger: 'change' }],
studentStatus: [{ required: true, message: '学生状态不能为空', trigger: 'change' }],
// studentType: [{ required: true, message: '学生类型不能为空', trigger: 'change' }],
// studentStatus: [{ required: true, message: '学生状态不能为空', trigger: 'change' }],
classAlias: [{ required: true, message: '班级不能为空', trigger: 'change' }],
provincialNumber: [{ required: true, message: '省学籍辅号不能为空', trigger: 'blur' }],
// provincialNumber: [{ required: true, message: '省学籍辅号不能为空', trigger: 'blur' }],
},
// 班级编辑表单
classForm: {
......@@ -910,16 +910,35 @@ export default {
this.formDisabled = false;
},
// 学籍表
// studentTable(row) {
// this.$router.push({
// path: '/teachAffairAdministration/studentTable',
// query: {
// id: row.id,
// // name: row.studentName,
// // idCard: row.idCard,
// // schoolNo: row.schoolNo
// }
// })
// },
studentTable(row) {
this.$router.push({
path: '/teachAffairAdministration/studentTable',
query: {
id: row.id,
// name: row.studentName,
// idCard: row.idCard,
// schoolNo: row.schoolNo
console.log('准备跳转');
const baseUrl = window.location.origin; // 获取当前页面的协议、主机作为前缀URL
// const baseUrl = window.location.protocol + '//' + window.location.host; // 获取当前页面的协议、主机作为前缀URL
console.log('im_1_0', baseUrl);
// const url = `http://localhost:1024/studentRegistra?id=${row.id}&name=${row.studentName}&idCard=${row.idCard}&schoolNo=${row.schoolNo}`;
const newURL = `${baseUrl}/studentTable?id=${encodeURIComponent(row.id)}&name=${encodeURIComponent(row.studentName)}&idCard=${encodeURIComponent(row.idCard)}&schoolNo=${encodeURIComponent(row.schoolNo)}`;
dd.biz.util.openLink({
url: newURL,
// url: url,
onSuccess: () => {
console.log(newURL, 'newURL');
console.log('跳转成功,准备打印');
},
onFail: (err) => {
console.log('跳转失败', err);
}
})
});
},
// 学籍证明
// studentProve(row) {
......
......@@ -347,25 +347,17 @@
</el-table-column>
<el-table-column
align="center"
prop="thesisList.thesisName"
prop="thesisName"
label="论文名称"
>
</el-table-column>
<el-table-column
align="center"
prop="thesisList.level"
label="级别"
>
<el-table-column align="center" prop="level" label="级别">
</el-table-column>
<el-table-column
align="center"
prop="thesisList.grade"
label="等级"
>
<el-table-column align="center" prop="grade" label="等级">
</el-table-column>
<el-table-column
align="center"
prop="thesisList.publishTime"
prop="publishTime"
label="发表时间"
>
</el-table-column>
......@@ -386,15 +378,11 @@
<el-table :data="tableSecondData" border>
<el-table-column align="center" fixed type="index" label="序号">
</el-table-column>
<el-table-column
align="center"
prop="materialList.name"
label="名称"
>
<el-table-column align="center" prop="name" label="名称">
</el-table-column>
<el-table-column
align="center"
prop="materialList.publishTime"
prop="publishTime"
label="发表时间"
>
</el-table-column>
......@@ -408,26 +396,26 @@
<div class="tableThird">
<div class="tableTitle">
<i class="el-icon-data-analysis"></i>
<span style="margin-left: 5px">发表成就奖论文情况</span>
<span style="margin-left: 5px">培训情况</span>
</div>
<el-table :data="tableThirdData" border>
<el-table-column align="center" fixed type="index" label="序号">
</el-table-column>
<el-table-column
align="center"
prop="trainingList.trainingTime"
prop="trainingTime"
label="培训时间"
>
</el-table-column>
<el-table-column
align="center"
prop="trainingList.trainingName"
prop="trainingName"
label="培训名称"
>
</el-table-column>
<el-table-column
align="center"
prop="trainingList.isQualified"
prop="isQualified"
label="是否合格"
>
</el-table-column>
......@@ -441,32 +429,32 @@
<div class="tableForth">
<div class="tableTitle">
<i class="el-icon-trophy"></i>
<span style="margin-left: 5px">发表成就奖论文情况</span>
<span style="margin-left: 5px">业务获奖情况</span>
</div>
<el-table :data="tableForthData" border>
<el-table-column align="center" fixed type="index" label="序号">
</el-table-column>
<el-table-column
align="center"
prop="awardList.awardName"
prop="awardName"
label="获奖名称"
>
</el-table-column>
<el-table-column
align="center"
prop="awardList.awardTime"
prop="awardTime"
label="获奖时间"
>
</el-table-column>
<el-table-column
align="center"
prop="awardList.gradeOfAward"
prop="gradeOfAward"
label="获奖等级"
>
</el-table-column>
<el-table-column
align="center"
prop="awardList.licenselssuingAuthority"
prop="licenselssuingAuthority"
label="发证机关"
>
</el-table-column>
......@@ -559,6 +547,7 @@ export default {
},
mounted() {
this.getList();
console.log(this.$route.query.status, "this.$route.query.status");
},
methods: {
......@@ -600,7 +589,19 @@ export default {
const id = row.id;
getFileTnfo(id).then((res) => {
this.form = res.data;
console.log(this.form, "131231212");
this.title = "基本信息查看";
this.tableForthData = res.data.awardList;
// this.tableForth = res.data.awardList.forEach(function (item) {
// console.log(item);
// });
this.tableSecondData = res.data.materialList;
this.tableFirstData = res.data.thesisList;
this.tableThirdData = res.data.trainingList;
console.log(this.tableForth, " this.tableForth");
console.log(this.tableSecond, " this.tableSecond");
console.log(this.tableFirst, " this.tableFirst");
console.log(this.tableThird, " this.tableThird");
});
},
......@@ -610,10 +611,7 @@ export default {
syncNotice(id).then((res) => {
console.log(id, "id");
console.log("res提取", res);
this.tableFirstData = res;
this.tableSecondData = res;
this.tableThirdData = res;
this.tableForthData = res;
this.$modal.msgSuccess("提取成功");
});
},
//修改按钮
......
......@@ -126,11 +126,11 @@
@selection-change="handleSelectionChange"
>
<el-table-column align="center" type="selection"> </el-table-column>
<el-table-column align="center" label="级部" prop="gradeName">
<el-table-column align="center" label="级部" prop="gid">
</el-table-column>
<el-table-column align="center" prop="teacherName" label="姓名">
<el-table-column align="center" prop="userName" label="姓名">
</el-table-column>
<el-table-column align="center" prop="ID" label="身份证号">
<el-table-column align="center" prop="tel" label="身份证号">
</el-table-column>
</el-table>
<span
......@@ -165,6 +165,8 @@ import {
fileSubReview, //教师档案提交审核
fileSubApproved, //教师档案提交通过
fileSubRejected, //教师档案提交驳回
getTeaList, //查看可添加老师列表
addTeachaer, //添加老师
} from "@/api/smartSchool/teacherFiles/teacherElectronicFile";
export default {
name: "dataReceiver",
......@@ -186,12 +188,37 @@ export default {
form: {},
status: this.$route.query.status,
dialogTableData: [],
selectedRows: [], //选中数组
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
selectedRows: [],
};
},
mounted() {
this.getList();
},
methods: {
// 查看可添加老师列表
handleSecher() {
const tid = this.$route.query.noticeId;
getTeaList(tid).then((res) => {
this.dialogTableData = res.data;
});
},
//弹窗确定按钮
confirmDialog() {
const ids = this.selectedRows.map((row) => parseInt(row.id));
// dialogVisible = false
addTeachaer(ids).then((res) => {
this.$message.success("修改成功");
this.dialogVisible = false;
this.getList();
});
},
/** 查询信息列表 */
getList() {
const params = {
......@@ -225,23 +252,27 @@ export default {
// 新增按钮
handleAdd() {
this.dialogVisible = true;
this.handleSecher();
},
//弹窗确定按钮
confirmDialog() {
this.dialogVisible = false;
},
//多选按钮
handleSelectionChange(select) {
// console.log("select", select);
handleSelectionChange(selection) {
if (selection.length > 0) {
this.selectedRows = selection.map((item) => item.id);
this.selectedRows = selection;
this.single = selection.length !== 1;
this.multiple = false;
} else {
this.selectedRows = [];
this.multiple = true;
}
},
// 删除按钮
handleDelete(row) {
const ids = row.id || this.ids;
const selectedRows = row.id || this.selectedRows;
this.$modal
.confirm("是否确认删除?")
.then(function () {
return delInfo(ids);
return delInfo(selectedRows);
})
.then(() => {
this.getList();
......
......@@ -429,8 +429,6 @@ export default {
});
},
//多选删除按钮
handleDeleteMuti() {},
//修改按钮
handleEdit(row) {
console.log(row, "row1");
......
......@@ -2,7 +2,7 @@
<div class="app-container">
<el-row>
<el-col :span="4">
<el-card style="height: 950px">
<el-card style="height: 950px" class="scrollable-card">
<el-form :model="queryParams" style="border-bottom: 1px solid #dfe6ec; padding: 10px 0 0 5px">
<el-form-item label="班级信息" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" @change="getTreeData" style="width: 100%" size="mini">
......@@ -678,6 +678,10 @@ export default {
padding-right: 0px;
}
.scrollable-card {
overflow: auto;
}
/*.dragBox[data-v-86c11aba] {*/
/* font-size: 20px;*/
/* width: 100%;*/
......
......@@ -7,9 +7,10 @@
style="margin-bottom: 20px" />
</div>
<div class="head-container">
<el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
:filter-node-method="filterNode" ref="tree" default-expand-all="false" highlight-current
@node-click="handleNodeClick" />
<el-tree v-if="deptOptions.length > 0" :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
:filter-node-method="filterNode" ref="tree" :default-expanded-keys="[]" highlight-current
@node-click="handleNodeClick"></el-tree>
</div>
</el-col>
<el-col :span="20" :xs="24">
......
package yangtz.cs.liu.campus.controller.SchoolEquipment;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
......@@ -7,17 +8,21 @@ import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
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.schoolEquipment.SchoolEquipmentLedger;
import yangtz.cs.liu.campus.service.schoolEquipment.IEquipmentLedgerService;
import yangtz.cs.liu.campus.vo.curricula.CurriculaStudentVo;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolEquipmentLedgerDcVo;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolEquipmentLedgerVo;
import yangtz.cs.liu.campus.vo.student.SchoolStudentScoreVo;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 设备基础信息
......@@ -58,8 +63,17 @@ public class EquipmentLedgerController extends BaseController {
public void export(HttpServletResponse response, SchoolEquipmentLedgerVo schoolEquipmentLedgerVo)
{
List<SchoolEquipmentLedger> list = equipmentLedgerService.selectSchoolEquipmentLedgerList(schoolEquipmentLedgerVo);
ExcelUtil<SchoolEquipmentLedger> util = new ExcelUtil<SchoolEquipmentLedger>(SchoolEquipmentLedger.class);
util.exportExcel(response, list, "设备台账数据");
List<SchoolEquipmentLedgerDcVo> list1 = new ArrayList<>();
int i = 1;
for (SchoolEquipmentLedger schoolEquipmentLedger : list) {
SchoolEquipmentLedgerDcVo schoolEquipmentLedgerDcVo = new SchoolEquipmentLedgerDcVo();
BeanUtils.copyProperties(schoolEquipmentLedger,schoolEquipmentLedgerDcVo);
schoolEquipmentLedgerDcVo.setSerialNumber(i);
list1.add(schoolEquipmentLedgerDcVo);
i++;
}
ExcelUtil<SchoolEquipmentLedgerDcVo> util = new ExcelUtil<SchoolEquipmentLedgerDcVo>(SchoolEquipmentLedgerDcVo.class);
util.exportExcel(response, list1, "设备台账数据");
}
/**
......@@ -138,4 +152,13 @@ public class EquipmentLedgerController extends BaseController {
public TableDataInfo getUser(SysUser sysUser){
return getDataTable(equipmentLedgerService.getUser(sysUser));
}
/**
* 打印设备条码信息
*/
@GetMapping("/getEquipmentledger/{ids}")
public List<Map<String,Object>> getEquipmentledger(@PathVariable Long[] ids){
List<Map<String,Object>> mapList = equipmentLedgerService.getEquipmentledger(ids);
return mapList;
}
}
......@@ -172,23 +172,23 @@ public class SchoolAuditoriumController extends BaseController
schoolAuditorium.setApplyTime(DateUtils.getNowDate());
schoolAuditoriumService.submitApply(schoolAuditorium, userName, AUDITORIUMAPPLY, new HashMap<>());
/** 发送发送钉钉审批实例 */
String ddInstanceId = schoolAuditoriumService.sendDdInstance(schoolAuditorium);
// /** 发送发送钉钉审批实例 */
// String ddInstanceId = schoolAuditoriumService.sendDdInstance(schoolAuditorium);
//
// //转换时间
// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
// Date time = schoolAuditorium.getApplyTime();
// String applyTime = format.format(time);
//转换时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date time = schoolAuditorium.getApplyTime();
String applyTime = format.format(time);
//发送钉钉消息到分管领导
//获取钉钉用户id
// //发送钉钉消息到分管领导
// //获取钉钉用户id
// String ddUserId = teacherService.getDdUserIdByUserId(schoolAuditorium.getLeadershipId());
// //发送钉钉消息给分管领导
// DingMessageVo messageVo = new DingMessageVo();
// OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
// msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA());
// msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head());
// msg.getOa().getHead().setText("二中校园测试");
// msg.getOa().getHead().setText("智慧校园");
// msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body());
// msg.getOa().getBody().setAuthor(schoolAuditorium.getApplyName());
// msg.getOa().getBody().setContent("申请内容:" + schoolAuditorium.getActivityName());
......@@ -288,35 +288,35 @@ public class SchoolAuditoriumController extends BaseController
//获取钉钉用户id
String ddUserId = teacherService.getDdUserIdByUserId(leave.getApplyId());
//发送钉钉消息给分管领导
// DingMessageVo messageVo = new DingMessageVo();
// OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
// msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA());
// msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head());
// msg.getOa().getHead().setText("二中校园测试");
// msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body());
// msg.getOa().getBody().setAuthor(leave.getLeadershipName());
// msg.getOa().getBody().setContent(flag ? "已通过" : "已驳回");
// msg.getOa().getBody().setTitle("您好,您的礼堂预约申请已回复。");
// msg.getOa().setPcMessageUrl("https://open.dingtalk.com/");
// msg.getOa().setMessageUrl("https://open.dingtalk.com/");
// msg.setMsgtype("oa");
// messageVo.setMsg(msg);
// messageVo.setToAllUser(false);
// messageVo.setUseridList(ddUserId);
// dingMessageUtils.sendMessage(messageVo);
DingMessageVo messageVo = new DingMessageVo();
OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA());
msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head());
msg.getOa().getHead().setText("智慧校园");
msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body());
msg.getOa().getBody().setAuthor(leave.getLeadershipName());
msg.getOa().getBody().setContent(flag ? "已通过" : "已驳回");
msg.getOa().getBody().setTitle("您好,您的礼堂预约申请已回复。");
msg.getOa().setPcMessageUrl("https://open.dingtalk.com/");
msg.getOa().setMessageUrl("https://open.dingtalk.com/");
msg.setMsgtype("oa");
messageVo.setMsg(msg);
messageVo.setToAllUser(false);
messageVo.setUseridList(ddUserId);
dingMessageUtils.sendMessage(messageVo);
//修改消息任务状态为已完成
// dingMessageUtils.updateStatusBar(leave.getDdTaskId(), "已完成", "0xFF78C06E");
dingMessageUtils.updateStatusBar(leave.getDdTaskId(), "已完成", "0xFF78C06E");
/**发送模板消息到申请人,审批结果*/
//获取申请人openId
String openId = teacherService.getOpenIdByUserId(leave.getApplyId());
Map<String,Object> map = new HashMap<>();
map.put("toUserOpenId",openId);
map.put("first","您好,您的礼堂预约申请已回复。");
map.put("content",flag ? "已通过" : "已驳回");
map.put("remark","审批留言: "+ variables.get("comment"));
VxTemlateSendApi.sendVxTemlate(map);
// String openId = teacherService.getOpenIdByUserId(leave.getApplyId());
// Map<String,Object> map = new HashMap<>();
// map.put("toUserOpenId",openId);
// map.put("first","您好,您的礼堂预约申请已回复。");
// map.put("content",flag ? "已通过" : "已驳回");
// map.put("remark","审批留言: "+ variables.get("comment"));
// VxTemlateSendApi.sendVxTemlate(map);
// LeaveResultTemplate template = new LeaveResultTemplate();
// template.setFirst("您好,您的礼堂预约申请已回复。");
// template.setToUserOpenId(openId);
......
......@@ -89,13 +89,13 @@ public class StudentScoreController extends BaseController {
}
/**
* 根据身份证号查询学生信息
* @param idCard
* 根据号查询学生信息
* @param schoolNo
* @return
*/
@GetMapping("/selectStudent")
public AjaxResult selectStudent(@RequestParam("idCard") String idCard){
return AjaxResult.success(studentScoreService.selectStudent(idCard));
public AjaxResult selectStudent(@RequestParam("schoolNo") String schoolNo){
return AjaxResult.success(studentScoreService.selectStudent(schoolNo));
}
/**
......
......@@ -69,6 +69,18 @@ public class SchoolOrganizationFcController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody SchoolOrganizationFc schoolOrganizationFc)
{
//先将file的前缀去掉
String file = schoolOrganizationFc.getFile();
// if (file!=null){
// String str ="";
// String[] split = file.split(",");
// for (int i = 0; i < split.length; i++) {
// String substring = split[i].substring(8, split[i].length());
// str = str+","+substring;
// }
// schoolOrganizationFc.setFile(str.substring(1, str.length()));
// }
return toAjax(schoolOrganizationFcService.save(schoolOrganizationFc));
}
......
package yangtz.cs.liu.campus.controller.organization;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
......@@ -20,8 +21,15 @@ import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.core.page.TableDataInfo;
import yangtz.cs.liu.campus.domain.organization.SchoolOrganizationInfo;
import yangtz.cs.liu.campus.domain.organization.SchoolOrganizationMember;
import yangtz.cs.liu.campus.domain.organization.SchoolOrganizationSignin;
import yangtz.cs.liu.campus.domain.schoolClass.SchoolClass;
import yangtz.cs.liu.campus.domain.student.SchoolStudentClassRelation;
import yangtz.cs.liu.campus.domain.student.SchoolStudentClasses;
import yangtz.cs.liu.campus.domain.student.SchoolStudentParent;
import yangtz.cs.liu.campus.service.organization.ISchoolOrganizationMemberService;
import yangtz.cs.liu.campus.service.schoolClass.ISchoolClassService;
import yangtz.cs.liu.campus.service.student.ISchoolStudentClassRelationService;
import yangtz.cs.liu.campus.service.student.ISchoolStudentClassesService;
import yangtz.cs.liu.campus.service.student.ISchoolStudentParentService;
import yangtz.cs.liu.campus.vo.organization.MemberListVo;
......@@ -44,6 +52,15 @@ public class SchoolOrganizationMemberController extends BaseController
@Autowired
private ISchoolStudentParentService schoolStudentParentService;
@Autowired
private ISchoolStudentClassesService schoolStudentClassesService;
@Autowired
private ISchoolStudentClassRelationService schoolStudentClassRelationService;
@Autowired
private ISchoolClassService schoolClassService;
/**
* 查询社团成员列表
*/
......@@ -58,6 +75,21 @@ public class SchoolOrganizationMemberController extends BaseController
.orderByDesc(SchoolOrganizationMember::getCreateTime);
startPage();
List<SchoolOrganizationMember> list = schoolOrganizationMemberService.list(wrapper);
//查询社团成员时 应根据当前这个学生 去动态查询那个班级
if (list!=null){
for (int i = 0; i < list.size(); i++) {
Long userId = list.get(i).getUserId();
LambdaQueryWrapper<SchoolStudentClassRelation> wrapper1 = Wrappers.lambdaQuery();
wrapper1.eq(SchoolStudentClassRelation::getStudentId,userId);
SchoolStudentClassRelation one = schoolStudentClassRelationService.getOne(wrapper1);
LambdaQueryWrapper<SchoolClass> wrapper2 = Wrappers.lambdaQuery();
wrapper2.eq(SchoolClass::getId,one.getClassId());
SchoolClass res = schoolClassService.getOne(wrapper2);
list.get(i).setGrade(res.getGradeName());
list.get(i).setClasses(res.getClassName());
}
}
return getDataTable(list);
}
......@@ -82,7 +114,8 @@ public class SchoolOrganizationMemberController extends BaseController
// wrapper.eq(SchoolStudentParent::getIdCard,schoolOrganizationMember.getCardid());
// SchoolStudentParent one = schoolStudentParentService.getOne(wrapper);
// schoolOrganizationMember.setUserId(one.getUserId());
return toAjax(schoolOrganizationMemberService.save(schoolOrganizationMember));
boolean save = schoolOrganizationMemberService.save(schoolOrganizationMember);
return toAjax(save);
}
/**
......
......@@ -106,7 +106,8 @@ public class SchoolOrganizationSigninController extends BaseController
boolean save = schoolOrganizationMemberService.save(member);
System.out.println(save);
}
return toAjax(schoolOrganizationSigninService.updateById(so));
boolean b = schoolOrganizationSigninService.updateById(so);
return toAjax(b);
}
/**
......
......@@ -100,7 +100,8 @@ public class SchoolPurchaseController extends BaseController {
if (getDeptId() == null){
throw new ServiceException("未查询到当前部门id");
}
schoolPurchase.setDeptId(getDeptId());
// schoolPurchase.setDeptId(getDeptId());
schoolPurchase.setApplyId(getUserId());
startPage();
List<SchoolPurchaseVo> list = schoolPurchaseService.queryList(submitState,schoolPurchase);
return getDataTable(list);
......
......@@ -137,7 +137,7 @@ public class LogisticsRepairsController extends BaseController
*/
@GetMapping("/listAll")
public TableDataInfo listAll(LogisticsRepairs logisticsRepairs){
startPage();
// startPage();
return getDataTable(logisticsRepairsService.selectListAll(logisticsRepairs));
}
}
......@@ -27,6 +27,7 @@ import com.ruoyi.common.enums.BusinessType;
import yangtz.cs.liu.campus.domain.schoolDcwj.SchoolDcwj;
import yangtz.cs.liu.campus.domain.schoolDcwj.SchoolDcwjAn;
import yangtz.cs.liu.campus.domain.schoolDcwj.SchoolDcwjNr;
import yangtz.cs.liu.campus.mapper.schoolDcwj.SchoolDcwjNrMapper;
import yangtz.cs.liu.campus.service.schoolDcwj.ISchoolDcwjAnService;
import yangtz.cs.liu.campus.service.schoolDcwj.ISchoolDcwjNrService;
import yangtz.cs.liu.campus.service.schoolDcwj.ISchoolDcwjRyService;
......@@ -64,11 +65,14 @@ public class SchoolDcwjAnController extends BaseController {
@Autowired
private ISchoolStudentService schoolStudentService;
@Autowired
private ISchoolDcwjNrService schoolDcwjNrService;
@Value("${server.port}")
private String p;
/**
* 级部-问卷结果-明细数据-列表
* TODO 级部-问卷结果-明细数据-列表
*/
@GetMapping("/list/{dcwjId}")
public AjaxResult list(@PathVariable("dcwjId") Long dcwjId, SchoolDcwjAnVo vo) {
......@@ -79,9 +83,63 @@ public class SchoolDcwjAnController extends BaseController {
ajax.put("titles", titlesVo);
//获取内容
List<SchoolDcwjAnVo> list = ryService.getAnData(dcwjId, vo);
// List<SchoolDcwjAnVo> list = ryService.getAnData(dcwjId, vo);
//获取固定列的值,,获取到的list的id为ry表的id
startPage();
List<SchoolDcwjAnVo> list = ryService.getAnData1(dcwjId, vo);
//获取问卷调查题目
LambdaQueryWrapper<SchoolDcwjNr> nrlqw = new LambdaQueryWrapper<>();
nrlqw.eq(SchoolDcwjNr::getDcwjId, dcwjId).orderByAsc(SchoolDcwjNr::getNrPx).orderByDesc(SchoolDcwjNr::getCreateTime);
List<SchoolDcwjNr> nrs = schoolDcwjNrService.list(nrlqw);
LambdaQueryWrapper<SchoolDcwjAn> lqw = new LambdaQueryWrapper<>();
lqw
.eq(SchoolDcwjAn::getDcwjId, dcwjId)
;
//a里要么有1个值,要么没有值
List<SchoolDcwjAn> a = schoolDcwjAnService.list(lqw);
//学生家长调查问卷回答的内容
for (SchoolDcwjAnVo anVo : list) {
List<SchoolDcwjAn> ans = new ArrayList<>();
//设置空对象,是为了,通俗的说就是站位,如果不占位的话,就目前来说,如果用户第一题没写,第二题写了,那么第2题的答案会显示在第1题的位置
SchoolDcwjAn entity = new SchoolDcwjAn();
//获取该学生从第一题到最后一题的答案,如果当前题没有答案,,附空值
for(SchoolDcwjNr nr : nrs){
// LambdaQueryWrapper<SchoolDcwjAn> lqw = new LambdaQueryWrapper<>();
// lqw
// .eq(SchoolDcwjAn::getDcwjId, dcwjId)
// .eq(SchoolDcwjAn::getRyId, anVo.getId())
// .eq(SchoolDcwjAn::getNrId, nr.getId())
// ;
// //a里要么有1个值,要么没有值
// List<SchoolDcwjAn> a = anMapper.selectList(lqw);
for (SchoolDcwjAn schoolDcwjAn : a) {
if (schoolDcwjAn.getRyId().equals(anVo.getId()) && schoolDcwjAn.getNrId().equals(nr.getId())){
ans.add(a.get(0));
}else {
ans.add(entity);
}
}
// if(StringUtils.isNotNull(a) && a.size() > 0){
// ans.add(a.get(0));
// }else {
// ans.add(entity);
// }
}
anVo.setList(ans);
}
// return list;
List<ViewDataVo> voList = nrService.turnData(list);
ajax.put("data", voList);
ajax.put("total",getDataTable(list).getTotal());
return ajax;
}
......
......@@ -41,6 +41,7 @@ import yangtz.cs.liu.campus.domain.schoolDcwj.*;
import yangtz.cs.liu.campus.domain.schoolDuty.SchoolDuty;
import yangtz.cs.liu.campus.domain.schoolgrade.SchoolGrade;
import yangtz.cs.liu.campus.domain.student.SchoolStudent;
import yangtz.cs.liu.campus.mapper.schoolDcwj.SchoolDcwjPushMapper;
import yangtz.cs.liu.campus.service.schoolClass.ISchoolClassService;
import yangtz.cs.liu.campus.service.schoolDcwj.*;
import yangtz.cs.liu.campus.service.schoolgrade.ISchoolGradeMentorService;
......@@ -88,6 +89,7 @@ public class SchoolDcwjController extends BaseController {
@Autowired
private ISchoolDcwjPushService pushService;
@Value("${server.port}")
private String p;
......@@ -249,23 +251,42 @@ public class SchoolDcwjController extends BaseController {
luwClass.eq(SchoolClass::getGradeId, schoolDcwj.getGradeId());
List<SchoolClass> schoolClassList = schoolClassService.list(luwClass);
for (SchoolClass schoolClass : schoolClassList) {
//查出班级所有下所有学生
//查出所有学生
LambdaQueryWrapper<SchoolStudent> luwStudent = new LambdaQueryWrapper<>();
luwStudent.eq(SchoolStudent::getClassId, schoolClass.getId());
List<SchoolStudent> schoolStudents = schoolStudentService.list(luwStudent);
//把学生存到调查问卷的接收人
//接收人集合
List<SchoolDcwjRy> ryList = new ArrayList<>();
for (SchoolClass schoolClass : schoolClassList) {
//查出班级所有下所有学生
// LambdaQueryWrapper<SchoolStudent> luwStudent = new LambdaQueryWrapper<>();
// luwStudent.eq(SchoolStudent::getClassId, schoolClass.getId());
// List<SchoolStudent> schoolStudents = schoolStudentService.list(luwStudent);
for (SchoolStudent schoolStudent : schoolStudents) {
if (schoolStudent.getClassId().equals(schoolClass.getId())){
SchoolDcwjRy schoolDcwjRy = new SchoolDcwjRy();
schoolDcwjRy.insert();
schoolDcwjRy.setDcwjId(schoolDcwj.getId());
schoolDcwjRy.setStudentId(schoolStudent.getId());
schoolDcwjRy.setRyZdzt(DcwjType.FILLINON);
schoolDcwjRyService.save(schoolDcwjRy);
ryList.add(schoolDcwjRy);
}
}
// //把学生存到调查问卷的接收人
// for (SchoolStudent schoolStudent : schoolStudents) {
// SchoolDcwjRy schoolDcwjRy = new SchoolDcwjRy();
// schoolDcwjRy.insert();
// schoolDcwjRy.setDcwjId(schoolDcwj.getId());
// schoolDcwjRy.setStudentId(schoolStudent.getId());
// schoolDcwjRy.setRyZdzt(DcwjType.FILLINON);
// schoolDcwjRyService.save(schoolDcwjRy);
// }
}
//批量新增接收人
if (ryList.size() > 0){
schoolDcwjRyService.batchInsertDcwjRyStudent(ryList);
}
//修改状态
LambdaUpdateWrapper<SchoolDcwj> luw = new LambdaUpdateWrapper<>();
luw.eq(SchoolDcwj::getId, id).set(SchoolDcwj::getDcwjZt, DcwjType.PUBLISHED);
......@@ -513,9 +534,108 @@ public class SchoolDcwjController extends BaseController {
ajax.put("titles", titlesVo);
//获取内容
List<SchoolDcwjAnVo> list = schoolDcwjRyService.getSenateAnData(dcwjId, vo);
// List<SchoolDcwjAnVo> list = schoolDcwjRyService.getSenateAnData(dcwjId, vo);
//判断是推送给教师还是家长
LambdaQueryWrapper<SchoolDcwjPush> pushLqw = new LambdaQueryWrapper<>();
pushLqw.eq(SchoolDcwjPush::getDcwjId,dcwjId);
List<SchoolDcwjPush> pushes = pushService.list(pushLqw);
if(DcwjType.PUSHT.equals(pushes.get(0).getPubType())){
//教师
//获取固定列的值,,获取到的list的id为ry表的id
startPage();
List<SchoolDcwjAnVo> list = schoolDcwjRyService.getTeaAnData(dcwjId, vo);
//获取问卷调查题目
LambdaQueryWrapper<SchoolDcwjNr> nrlqw = new LambdaQueryWrapper<>();
nrlqw.eq(SchoolDcwjNr::getDcwjId, dcwjId).orderByAsc(SchoolDcwjNr::getNrPx).orderByDesc(SchoolDcwjNr::getCreateTime);
List<SchoolDcwjNr> nrs = schoolDcwjNrService.list(nrlqw);
LambdaQueryWrapper<SchoolDcwjAn> lqw = new LambdaQueryWrapper<>();
lqw
.eq(SchoolDcwjAn::getDcwjId, dcwjId)
;
//a里要么有1个值,要么没有值
List<SchoolDcwjAn> a = schoolDcwjAnService.list(lqw);
//教师调查问卷回答的内容
for (SchoolDcwjAnVo anVo : list) {
List<SchoolDcwjAn> ans = new ArrayList<>();
//设置空对象,是为了,通俗的说就是站位,如果不占位的话,就目前来说,如果用户第一题没写,第二题写了,那么第2题的答案会显示在第1题的位置
SchoolDcwjAn entity = new SchoolDcwjAn();
//获取该学生从第一题到最后一题的答案,如果当前题没有答案,,附空值
for(SchoolDcwjNr nr : nrs){
// LambdaQueryWrapper<SchoolDcwjAn> lqw = new LambdaQueryWrapper<>();
// lqw
// .eq(SchoolDcwjAn::getDcwjId, dcwjId)
// .eq(SchoolDcwjAn::getRyId, anVo.getId())
// .eq(SchoolDcwjAn::getNrId, nr.getId())
// ;
// //a里要么有1个值,要么没有值
// List<SchoolDcwjAn> a = anMapper.selectList(lqw);
for (SchoolDcwjAn schoolDcwjAn : a) {
if (schoolDcwjAn.getRyId().equals(anVo.getId()) && schoolDcwjAn.getNrId().equals(nr.getId())){
ans.add(schoolDcwjAn);
}else {
ans.add(entity);
}
}
// if(StringUtils.isNotNull(a) && a.size() > 0){
// ans.add(a.get(0));
// }else {
// ans.add(entity);
// }
}
anVo.setList(ans);
}
List<ViewDataVo> voList = schoolDcwjNrService.turnData(list);
ajax.put("data", voList);
ajax.put("total",getDataTable(list).getTotal());
return ajax;
}
//推送类型为学生家长
//获取固定列的值,,获取到的list的id为ry表的id
startPage();
List<SchoolDcwjAnVo> list = schoolDcwjRyService.getAnData1(dcwjId, vo);
//获取问卷调查题目
LambdaQueryWrapper<SchoolDcwjNr> nrlqw = new LambdaQueryWrapper<>();
nrlqw.eq(SchoolDcwjNr::getDcwjId, dcwjId).orderByAsc(SchoolDcwjNr::getNrPx).orderByDesc(SchoolDcwjNr::getCreateTime);
List<SchoolDcwjNr> nrs = schoolDcwjNrService.list(nrlqw);
LambdaQueryWrapper<SchoolDcwjAn> lqw = new LambdaQueryWrapper<>();
lqw
.eq(SchoolDcwjAn::getDcwjId, dcwjId)
;
//a里要么有1个值,要么没有值
List<SchoolDcwjAn> a = schoolDcwjAnService.list(lqw);
//学生家长调查问卷回答的内容
for (SchoolDcwjAnVo anVo : list) {
List<SchoolDcwjAn> ans = new ArrayList<>();
//设置空对象,是为了,通俗的说就是站位,如果不占位的话,就目前来说,如果用户第一题没写,第二题写了,那么第2题的答案会显示在第1题的位置
SchoolDcwjAn entity = new SchoolDcwjAn();
//获取该学生从第一题到最后一题的答案,如果当前题没有答案,,附空值
for(SchoolDcwjNr nr : nrs){
for (SchoolDcwjAn schoolDcwjAn : a) {
if (schoolDcwjAn.getRyId().equals(anVo.getId()) && schoolDcwjAn.getNrId().equals(nr.getId())){
ans.add(schoolDcwjAn);
}else {
ans.add(entity);
}
}
}
anVo.setList(ans);
}
List<ViewDataVo> voList = schoolDcwjNrService.turnData(list);
ajax.put("data", voList);
ajax.put("total",getDataTable(list).getTotal());
return ajax;
}
......
......@@ -63,7 +63,7 @@ public class SchoolExperimentPlanController extends BaseController
//如果是管理员,查询全部列表
if (user.isAdmin()){
startPage();
List<SchoolExperimentPlanVo> list = schoolExperimentPlanService.selectSchoolExperimentPlanList(schoolExperimentPlanVo);
List<SchoolExperimentPlanVo> list = schoolExperimentPlanService.selectExperimentPlanListAdmin(schoolExperimentPlanVo);
list.forEach(list1 -> {
String semester = "";
if (list1.getSemester().equals("1")){
......@@ -93,40 +93,12 @@ public class SchoolExperimentPlanController extends BaseController
gradeIds.add(gradeId);
});
//查询级部成员信息
LambdaQueryWrapper<SchoolGradeMentor> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SchoolGradeMentor::getGradeId,gradeIds)
.eq(SchoolGradeMentor::getTeacherId,user.getUserId());
List<SchoolGradeMentor> schoolGradeMentors = schoolGradeMentorService.list(wrapper);
schoolExperimentPlanVo.setGradeIds(gradeIds);
schoolExperimentPlanVo.setTeacherId(user.getUserId());
startPage();
List<SchoolExperimentPlanVo> list = schoolExperimentPlanService.selectSchoolExperimentPlanList(schoolExperimentPlanVo);
List<SchoolExperimentPlanVo> listNew = new ArrayList<>();
//去除用户所在级部和所在学科组不匹配的数据
if (StringUtils.isNotNull(schoolGradeMentors)){
for (SchoolExperimentPlanVo experimentPlanVo : list) {
for (SchoolGradeMentor schoolGradeMentor : schoolGradeMentors) {
if (schoolGradeMentor.getGradeId().equals(experimentPlanVo.getGradeId())){
if (StringUtils.isNotBlank(schoolGradeMentor.getSubGroup())){
if (!(schoolGradeMentor.getSubGroup().equals(experimentPlanVo.getSub()))){
listNew.add(experimentPlanVo);
}
}
}
}
}
}
if (listNew.size() > 0){
for (SchoolExperimentPlanVo experimentPlanVo : listNew) {
list.remove(experimentPlanVo);
}
}
list.forEach(list1 -> {
String semester = "";
if (list1.getSemester().equals("1")){
......@@ -322,7 +294,7 @@ public class SchoolExperimentPlanController extends BaseController
//管理员角色返回全部数据
if (user.isAdmin()){
startPage();
List<Map<String, Object>> list = schoolExperimentPlanService.gradeCountExperiment(schoolExperimentPlanVo);
List<Map<String, Object>> list = schoolExperimentPlanService.countExperimentListAdmin(schoolExperimentPlanVo);
list.forEach(list1 -> {
//总班级数
int totalClass = Integer.parseInt(list1.get("totalClass").toString());
......@@ -368,39 +340,11 @@ public class SchoolExperimentPlanController extends BaseController
gradeIds.add(gradeId);
});
//查询级部成员信息
LambdaQueryWrapper<SchoolGradeMentor> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SchoolGradeMentor::getGradeId,gradeIds)
.eq(SchoolGradeMentor::getTeacherId,user.getUserId());
List<SchoolGradeMentor> schoolGradeMentors = schoolGradeMentorService.list(wrapper);
schoolExperimentPlanVo.setGradeIds(gradeIds);
schoolExperimentPlanVo.setTeacherId(user.getUserId());
startPage();
List<Map<String, Object>> list = schoolExperimentPlanService.gradeCountExperiment(schoolExperimentPlanVo);
List<Map<String, Object>> listNew = new ArrayList<>();
//去除用户所在级部和所在学科组不匹配的数据
if (StringUtils.isNotNull(schoolGradeMentors)){
for (Map<String, Object> map : list) {
for (SchoolGradeMentor schoolGradeMentor : schoolGradeMentors) {
if (schoolGradeMentor.getGradeId().equals(map.get("gradeId"))){
if (StringUtils.isNotBlank(schoolGradeMentor.getSubGroup())){
if (!(schoolGradeMentor.getSubGroup().equals(map.get("sub")))){
listNew.add(map);
}
}
}
}
}
}
if (listNew.size() > 0){
for (Map<String, Object> map : listNew) {
list.remove(map);
}
}
list.forEach(list1 -> {
//总班级数
int totalClass = Integer.parseInt(list1.get("totalClass").toString());
......@@ -440,7 +384,7 @@ public class SchoolExperimentPlanController extends BaseController
//管理员角色返回全部数据
if (user.isAdmin()){
startPage();
List<Map<String, Object>> list = schoolTeacherLabApplyService.gradeCountClass(schoolTeacherLabApplyVo);
List<Map<String, Object>> list = schoolTeacherLabApplyService.gradeCountClassListAdmin(schoolTeacherLabApplyVo);
list.forEach(list1 -> {
//计划实验数
int jhsys = Integer.parseInt(list1.get("jhsys").toString());
......@@ -484,13 +428,8 @@ public class SchoolExperimentPlanController extends BaseController
gradeIds.add(gradeId);
});
//查询级部成员信息
LambdaQueryWrapper<SchoolGradeMentor> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SchoolGradeMentor::getGradeId,gradeIds)
.eq(SchoolGradeMentor::getTeacherId,user.getUserId());
List<SchoolGradeMentor> schoolGradeMentors = schoolGradeMentorService.list(wrapper);
schoolTeacherLabApplyVo.setGradeIds(gradeIds);
schoolTeacherLabApplyVo.setTeacherId(user.getUserId());
startPage();
List<Map<String, Object>> list = schoolTeacherLabApplyService.gradeCountClass(schoolTeacherLabApplyVo);
list.forEach(list1 -> {
......
......@@ -63,8 +63,6 @@ public class SchoolLabClassYearController extends BaseController
@Autowired
private ISchoolGradeService gradeService;
@Autowired
private ISchoolGradeMentorService mentorService;
@Autowired
private ISchoolClassMentorService classMentorService;
/**
......@@ -78,7 +76,7 @@ public class SchoolLabClassYearController extends BaseController
//如果是管理员返回全部数据
if (user.isAdmin()){
startPage();
List<SchoolLabClassYearVo> list = schoolLabClassYearService.selectSchoolLabClassYearList(schoolLabClassYearVo);
List<SchoolLabClassYearVo> list = schoolLabClassYearService.selectLabClassYearListAdmin(schoolLabClassYearVo);
list.forEach(list1 -> {
String semester = "";
if (list1.getSemester().equals("1")){
......@@ -111,38 +109,11 @@ public class SchoolLabClassYearController extends BaseController
gradeIds.add(gradeId);
});
//查询级部成员信息
LambdaQueryWrapper<SchoolGradeMentor> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SchoolGradeMentor::getGradeId,gradeIds)
.eq(SchoolGradeMentor::getTeacherId,user.getUserId());
List<SchoolGradeMentor> schoolGradeMentors = mentorService.list(wrapper);
schoolLabClassYearVo.setGradeIds(gradeIds);
schoolLabClassYearVo.setUserId(user.getUserId());
startPage();
List<SchoolLabClassYearVo> list = schoolLabClassYearService.selectSchoolLabClassYearList(schoolLabClassYearVo);
List<SchoolLabClassYearVo> listNew = new ArrayList<>();
//去除用户所在级部和所在学科组不匹配的数据
if (StringUtils.isNotNull(schoolGradeMentors)){
for (SchoolLabClassYearVo labClassYearVo : list) {
for (SchoolGradeMentor schoolGradeMentor : schoolGradeMentors) {
if (schoolGradeMentor.getGradeId().equals(labClassYearVo.getGradeId())){
if (StringUtils.isNotBlank(schoolGradeMentor.getSubGroup())){
if (!(schoolGradeMentor.getSubGroup().equals(labClassYearVo.getSub()))){
listNew.add(labClassYearVo);
}
}
}
}
}
}
if (listNew.size() > 0){
for (SchoolLabClassYearVo labClassYearVo : listNew) {
list.remove(labClassYearVo);
}
}
list.forEach(list1 -> {
String semester = "";
if (list1.getSemester().equals("1")){
......@@ -235,7 +206,86 @@ public class SchoolLabClassYearController extends BaseController
@GetMapping("/getLab")
public AjaxResult getLab(SchoolExperimentPlanVo schoolExperimentPlanVo){
schoolExperimentPlanVo.setIsAppointment("0");
return AjaxResult.success(schoolExperimentPlanService.selectSchoolExperimentPlanList(schoolExperimentPlanVo));
SysUser user = SecurityUtils.getLoginUser().getUser();
//如果是管理员,查询全部列表
if (user.isAdmin()){
startPage();
List<SchoolExperimentPlanVo> list = schoolExperimentPlanService.selectSchoolExperimentPlanList(schoolExperimentPlanVo);
list.forEach(list1 -> {
String semester = "";
if (list1.getSemester().equals("1")){
semester = "上学期";
}else {
semester = "下学期";
}
list1.setSchoolYearSemester(list1.getSchoolYear() + semester);
list1.setPlannedTime(list1.getPlannedStartTime() + "至" + list1.getPlannedEndTime());
});
return AjaxResult.success(list);
}
//获取最新学年
int schoolYear = gradeService.isNewSchoolYear();
//教师级部
List<Map<String, Object>> gradeList = schoolExperimentPlanService.getGrade(schoolYear,user.getUserId());
if (StringUtils.isNull(gradeList) || gradeList.size() == 0) {
throw new ServiceException("没有您所在的级部信息");
}
//级部id集合
List<Long> gradeIds = new ArrayList<>();
gradeList.forEach(gradeList1 -> {
Object id = gradeList1.get("id");
Long gradeId = Long.valueOf(String.valueOf(id));
gradeIds.add(gradeId);
});
// //查询级部成员信息
// LambdaQueryWrapper<SchoolGradeMentor> wrapper = new LambdaQueryWrapper<>();
// wrapper.in(SchoolGradeMentor::getGradeId,gradeIds)
// .eq(SchoolGradeMentor::getTeacherId,user.getUserId());
// List<SchoolGradeMentor> schoolGradeMentors = schoolGradeMentorService.list(wrapper);
schoolExperimentPlanVo.setGradeIds(gradeIds);
schoolExperimentPlanVo.setTeacherId(getUserId());
List<SchoolExperimentPlanVo> list = schoolExperimentPlanService.selectSchoolExperimentPlanList(schoolExperimentPlanVo);
// List<SchoolExperimentPlanVo> listNew = new ArrayList<>();
//
// //去除用户所在级部和所在学科组不匹配的数据
// if (StringUtils.isNotNull(schoolGradeMentors)){
// for (SchoolExperimentPlanVo experimentPlanVo : list) {
// for (SchoolGradeMentor schoolGradeMentor : schoolGradeMentors) {
// if (schoolGradeMentor.getGradeId().equals(experimentPlanVo.getGradeId())){
// if (StringUtils.isNotBlank(schoolGradeMentor.getSubGroup())){
// if (!(schoolGradeMentor.getSubGroup().equals(experimentPlanVo.getSub()))){
// listNew.add(experimentPlanVo);
// }
// }else {
// listNew.add(experimentPlanVo);
// }
// }
// }
// }
// }
//
// if (listNew.size() > 0){
// for (SchoolExperimentPlanVo experimentPlanVo : listNew) {
// list.remove(experimentPlanVo);
// }
// }
list.forEach(list1 -> {
String semester = "";
if (list1.getSemester().equals("1")){
semester = "上学期";
}else {
semester = "下学期";
}
list1.setSchoolYearSemester(list1.getSchoolYear() + semester);
list1.setPlannedTime(list1.getPlannedStartTime() + "至" + list1.getPlannedEndTime());
});
return AjaxResult.success(list);
}
/**
......@@ -305,7 +355,7 @@ public class SchoolLabClassYearController extends BaseController
// 查询该教师属于哪个班级,教哪门课
LambdaQueryWrapper<SchoolClassMentor> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SchoolClassMentor::getTeacherId,user.getUserId())
.in(SchoolClassMentor::getCourseId,6,8,9);
.in(SchoolClassMentor::getCourseName,"物理","化学","生物");
List<SchoolClassMentor> schoolClassMentors = classMentorService.list(wrapper);
if (StringUtils.isNotNull(schoolClassMentors)){
for (SchoolClassMentor schoolClassMentor : schoolClassMentors) {
......@@ -318,7 +368,9 @@ public class SchoolLabClassYearController extends BaseController
}
}
schoolLabClassYearVo.setApplyId(user.getUserId());
if(subs.size() > 0){
schoolLabClassYearVo.setSubs(subs);
}
startPage();
List<SchoolLabClassYearVo> list = schoolLabClassYearService.getTeacherLabList(schoolLabClassYearVo);
list.forEach(list1 -> {
......
......@@ -396,7 +396,7 @@ public class SchoolStudentController extends BaseController {
* @return
*/
@GetMapping("/queryByrelationship/{id}/{relationship}")
public AjaxResult queryAllInfoByrelationship1(@PathVariable("id") Long id,@PathVariable("relationship") String relationship) {
public AjaxResult queryAllInfoByrelationship1(@PathVariable("id") String id,@PathVariable("relationship") String relationship) {
//学生家长信息列表???
/*SchoolStudentParent parent = new SchoolStudentParent();
......@@ -404,10 +404,13 @@ public class SchoolStudentController extends BaseController {
parent.setRelationship(relationship);
List<SchoolStudentParent> parentList = parentService.queryList(parent);*/
//SchoolStudentParent schoolStudentParent = new SchoolStudentParent();
if (StringUtils.isEmpty(id) || id.equals("undefined")){
throw new ServiceException("请先选择学生!");
}
Long StudentId = Long.valueOf(id);
LambdaQueryWrapper<SchoolStudentParent> lqw = new LambdaQueryWrapper<>();
lqw
.eq(SchoolStudentParent::getStudentId,id)
.eq(SchoolStudentParent::getStudentId,StudentId)
.eq(SchoolStudentParent::getRelationship,relationship);
List<SchoolStudentParent> list = parentService.list(lqw);
//对应关系的家长不存在,抛异常
......
......@@ -122,7 +122,9 @@ public class StudentStatusController {
map.put("avatar", image);
}
map.put("idCard",baseInfo.getIdCard());
if (StringUtils.isNotNull(baseInfo.getBirthday())){
map.put("birthday",new SimpleDateFormat("yyyy-MM-dd").format(baseInfo.getBirthday()));
}
map.put("nation",baseInfo.getNation());
map.put("stuTelephone",baseInfo.getStuTelephone());
map.put("postalCode",baseInfo.getPostalCode());
......@@ -285,7 +287,9 @@ public class StudentStatusController {
}else{
map.put("sex","女");
}
if (StringUtils.isNotNull(baseInfo.getBirthday())){
map.put("birthday",new SimpleDateFormat("yyyy-MM-dd").format(baseInfo.getBirthday()));
}
map.put("idCard",baseInfo.getIdCard());
// 图片
//路径去掉/profile
......
......@@ -238,49 +238,65 @@ public class SchoolTeacherController extends BaseController {
//查询设备号
if(StringUtils.isNotNull(schoolTeacher.getDeviceNum())){
LambdaQueryWrapper<SchoolTeacher> lqw1 = new LambdaQueryWrapper<>();
lqw1.eq(SchoolTeacher::getDeviceNum,schoolTeacher.getDeviceNum());
lqw1.notIn(SchoolTeacher::getId,schoolTeacher.getId())
.eq(SchoolTeacher::getDeviceNum,schoolTeacher.getDeviceNum());
SchoolTeacher teacher = schoolTeacherService.getOne(lqw1);
if (StringUtils.isNotNull(schoolTeacher.getId()) && schoolTeacher.getId().equals(teacher.getId())) {
}else if(schoolTeacher.getDeviceNum().equals(teacher.getDeviceNum())){
if (StringUtils.isNotNull(teacher)){
throw new ServiceException("设备号已存在");
}
// if (StringUtils.isNotNull(schoolTeacher.getId()) && schoolTeacher.getId().equals(teacher.getId())) {
//
// }else if(schoolTeacher.getDeviceNum().equals(teacher.getDeviceNum())){
// throw new ServiceException("设备号已存在");
// }
}
//查询身份证号
if(StringUtils.isNotNull(schoolTeacher.getIdCard())){
LambdaQueryWrapper<SchoolTeacher> lqw2 = new LambdaQueryWrapper<>();
lqw2.eq(SchoolTeacher::getIdCard,schoolTeacher.getIdCard());
lqw2.notIn(SchoolTeacher::getId,schoolTeacher.getId())
.eq(SchoolTeacher::getIdCard,schoolTeacher.getIdCard());
SchoolTeacher teacher = schoolTeacherService.getOne(lqw2);
if (StringUtils.isNotNull(schoolTeacher.getId()) && schoolTeacher.getId().equals(teacher.getId())) {
}else if(schoolTeacher.getIdCard().equals(teacher.getIdCard())){
if (StringUtils.isNotNull(teacher)){
throw new ServiceException("身份证号已存在");
}
// if (StringUtils.isNotNull(schoolTeacher.getId()) && schoolTeacher.getId().equals(teacher.getId())) {
//
// }else if(schoolTeacher.getIdCard().equals(teacher.getIdCard())){
// throw new ServiceException("身份证号已存在");
// }
}
//查询编号
if(StringUtils.isNotNull(schoolTeacher.getTeacherCode())){
LambdaQueryWrapper<SchoolTeacher> lqw3 = new LambdaQueryWrapper<>();
lqw3.eq(SchoolTeacher::getTeacherCode,schoolTeacher.getTeacherCode());
lqw3.notIn(SchoolTeacher::getId,schoolTeacher.getId())
.eq(SchoolTeacher::getTeacherCode,schoolTeacher.getTeacherCode());
SchoolTeacher teacher = schoolTeacherService.getOne(lqw3);
if (StringUtils.isNotNull(schoolTeacher.getId()) && schoolTeacher.getId().equals(teacher.getId())) {
}else if(schoolTeacher.getTeacherCode().equals(teacher.getTeacherCode())){
if (StringUtils.isNotNull(teacher)){
throw new ServiceException("编号已存在");
}
// if (StringUtils.isNotNull(schoolTeacher.getId()) && schoolTeacher.getId().equals(teacher.getId())) {
//
// }else if(schoolTeacher.getTeacherCode().equals(teacher.getTeacherCode())){
// throw new ServiceException("编号已存在");
// }
}
//查询电话号码
if(StringUtils.isNotNull(schoolTeacher.getTeacherCode())){
LambdaQueryWrapper<SchoolTeacher> lqw4 = new LambdaQueryWrapper<>();
lqw4.eq(SchoolTeacher::getTeacherTel,schoolTeacher.getTeacherTel());
lqw4.notIn(SchoolTeacher::getId,schoolTeacher.getId())
.eq(SchoolTeacher::getTeacherTel,schoolTeacher.getTeacherTel());
SchoolTeacher teacher = schoolTeacherService.getOne(lqw4);
if (StringUtils.isNotNull(schoolTeacher.getId()) && schoolTeacher.getId().equals(teacher.getId())) {
}else if(schoolTeacher.getTeacherTel().equals(teacher.getTeacherTel())){
if (StringUtils.isNotNull(teacher)){
throw new ServiceException("电话号码已存在");
}
// if (StringUtils.isNotNull(schoolTeacher.getId()) && schoolTeacher.getId().equals(teacher.getId())) {
//
// }else if(schoolTeacher.getTeacherTel().equals(teacher.getTeacherTel())){
// throw new ServiceException("电话号码已存在");
// }
}
......
......@@ -2,6 +2,7 @@ package yangtz.cs.liu.campus.controller.teacher;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.core.utils.HolidayDateUtil;
import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
......@@ -42,6 +43,8 @@ import yangtz.cs.liu.campus.util.VxTemlateSendApi;
import yangtz.cs.liu.campus.vo.teacher.SchoolTeacherLeaveVO;
import yangtz.cs.liu.campus.vo.teacher.SchoolTeacherVO;
import yangtz.cs.liu.campus.vo.teacher.TeacherLeaveVO;
import yangtz.cs.liu.dingding.utils.DingMessageUtils;
import yangtz.cs.liu.dingding.vo.DingMessageVo;
import yangtz.cs.liu.wechat.domain.template.LeaveStateTemplate;
import yangtz.cs.liu.wechat.domain.template.LeaveTemplate;
import yangtz.cs.liu.wechat.service.api.IWxApiService;
......@@ -97,6 +100,10 @@ public class SchoolTeacherLeaveController extends BaseController {
@Autowired
private ISysDeptService deptService;
//钉钉消息通知
@Autowired
private DingMessageUtils dingMessageUtils;
//职工
private static final String TYPE = "1";
......@@ -265,35 +272,81 @@ public class SchoolTeacherLeaveController extends BaseController {
schoolTeacherLeave.setApplyTime(DateUtils.getNowDate());
schoolTeacherLeaveService.submitApply(schoolTeacherLeave, userName, TEACHERLEAVE, new HashMap<>());
//转换时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date time = schoolTeacherLeave.getApplyTime();
String applyTime = format.format(time);
// //转换时间
// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
// Date time = schoolTeacherLeave.getApplyTime();
// String applyTime = format.format(time);
/** 发送申请通知 */
//获取openid
String openId = schoolTeacherService.getOpenIdByUserId(schoolTeacherLeave.getHandUserId1());
Map<String,Object> map = new HashMap<>();
map.put("toUserOpenId",openId);
map.put("applyTime",applyTime);
map.put("remark","共计" + schoolTeacherLeave.getTotalTime() +"天,请您尽快处理");
map.put("applyUser",schoolTeacherLeave.getTeacherName());
String start = "";
String end = "";
//请假开始时间、结束时间
//教工
if("0".equals(schoolTeacherLeave.getApplyType())){
start = HolidayDateUtil.format.format(schoolTeacherLeave.getStartTime()) +" 第" + schoolTeacherLeave.getStartSort() + "节课";
end = HolidayDateUtil.format.format(schoolTeacherLeave.getEndTime()) +" 第" + schoolTeacherLeave.getEndSort() + "节课";
//发送钉钉通知
// String start = "";
// String end = "";
// //请假开始时间、结束时间
// //教工
// if("0".equals(schoolTeacherLeave.getApplyType())){
// start = HolidayDateUtil.format.format(schoolTeacherLeave.getStartTime()) +" 第" + schoolTeacherLeave.getStartSort() + "节课";
// end = HolidayDateUtil.format.format(schoolTeacherLeave.getEndTime()) +" 第" + schoolTeacherLeave.getEndSort() + "节课";
//
// }else{
// //教工
// start = HolidayDateUtil.format.format(schoolTeacherLeave.getStartTime());
// end = HolidayDateUtil.format.format(schoolTeacherLeave.getEndTime());
// }
//
// //获取钉钉用户id
// String ddUserId = schoolTeacherService.getDdUserIdByUserId(schoolTeacherLeave.getHandUserId1());
// //发送钉钉消息给级部/处室主任
// DingMessageVo messageVo = new DingMessageVo();
// OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
// msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA());
// msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head());
// msg.getOa().getHead().setText("智慧校园");
// msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body());
// msg.getOa().getBody().setAuthor(schoolTeacherLeave.getApplyUser());
// msg.getOa().getBody().setContent("申请内容:" + "从" + start + "至" + end);
// msg.getOa().getBody().setTitle(schoolTeacherLeave.getTeacherName() + "的请假申请需要您审批。");
// OapiMessageCorpconversationAsyncsendV2Request.Form form1 = new OapiMessageCorpconversationAsyncsendV2Request.Form();
// form1.setKey("申请时间:");
// form1.setValue(applyTime);
// msg.getOa().getBody().setForm(Arrays.asList(form1));
// msg.getOa().setPcMessageUrl("https://open.dingtalk.com/");
// msg.getOa().setMessageUrl("https://open.dingtalk.com/");
// msg.setMsgtype("oa");
// OapiMessageCorpconversationAsyncsendV2Request.StatusBar statusBar = new OapiMessageCorpconversationAsyncsendV2Request.StatusBar();
// statusBar.setStatusBg("0xFFF65E5E");
// statusBar.setStatusValue("进行中");
// msg.getOa().setStatusBar(statusBar);
// messageVo.setMsg(msg);
// messageVo.setToAllUser(false);
// messageVo.setUseridList(ddUserId);
// Long ddTaskId = dingMessageUtils.sendMessage(messageVo);
}else{
//教工
start = HolidayDateUtil.format.format(schoolTeacherLeave.getStartTime());
end = HolidayDateUtil.format.format(schoolTeacherLeave.getEndTime());
}
map.put("content","从" + start + "至" + end);
map.put("first",schoolTeacherLeave.getTeacherName() + "的请假申请需要您审批。");
VxTemlateSendApi.sendVxTemlate(map);
//获取openid
// String openId = schoolTeacherService.getOpenIdByUserId(schoolTeacherLeave.getHandUserId1());
// Map<String,Object> map = new HashMap<>();
// map.put("toUserOpenId",openId);
// map.put("applyTime",applyTime);
// map.put("remark","共计" + schoolTeacherLeave.getTotalTime() +"天,请您尽快处理");
// map.put("applyUser",schoolTeacherLeave.getTeacherName());
// String start = "";
// String end = "";
// //请假开始时间、结束时间
// //教工
// if("0".equals(schoolTeacherLeave.getApplyType())){
// start = HolidayDateUtil.format.format(schoolTeacherLeave.getStartTime()) +" 第" + schoolTeacherLeave.getStartSort() + "节课";
// end = HolidayDateUtil.format.format(schoolTeacherLeave.getEndTime()) +" 第" + schoolTeacherLeave.getEndSort() + "节课";
//
// }else{
// //教工
// start = HolidayDateUtil.format.format(schoolTeacherLeave.getStartTime());
// end = HolidayDateUtil.format.format(schoolTeacherLeave.getEndTime());
// }
// map.put("content","从" + start + "至" + end);
// map.put("first",schoolTeacherLeave.getTeacherName() + "的请假申请需要您审批。");
// VxTemlateSendApi.sendVxTemlate(map);
// TeacherLeaveTemplate template = new TeacherLeaveTemplate();
// //String openId = userService.getOpenIdByUserId(schoolTeacherLeave.getHandUserId1());
......
......@@ -10,6 +10,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import yangtz.cs.liu.campus.controller.A;
import yangtz.cs.liu.campus.domain.teacherFiles.TeacherFiles;
import yangtz.cs.liu.campus.domain.teacherFiles.TeacherFilesNotice;
import yangtz.cs.liu.campus.service.teacherFiles.ITeacherFilesService;
......@@ -40,30 +41,62 @@ public class TeacherFilesController extends BaseController
public TableDataInfo list(TeacherFiles teacherFiles)
{
startPage();
List<TeacherFiles> list = teacherFilesService.selectTeacherFilesList(teacherFiles);
return getDataTable(list);
}
@PreAuthorize("@ss.hasPermi('teacherFiles:files:list')")
@GetMapping("/gradeList")
public TableDataInfo gradeList(TeacherFiles teacherFiles)
public AjaxResult gradeList(TeacherFiles teacherFiles)
{
AjaxResult ajaxResult = new AjaxResult();
List<Long> gradeIds = teacherFilesService.getGradeId(teacherFiles.getGradeTeacherId());
if(gradeIds==null || gradeIds.size()==0){
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(500);
tableDataInfo.setMsg("该用户非级部主任");
return tableDataInfo;
// TableDataInfo tableDataInfo = new TableDataInfo();
// tableDataInfo.setCode(500);
// tableDataInfo.setMsg("该用户非级部主任");
ajaxResult.put("code",500);
ajaxResult.put("msg","该用户非级部主任");
return ajaxResult;
}
teacherFiles.setGradeId(gradeIds.get(0));
startPage();
List<TeacherFiles> list = teacherFilesService.selectTeacherFilesList(teacherFiles);
return getDataTable(list);
int yfb = teacherFilesService.countYfb(teacherFiles);
int yqr = teacherFilesService.countYqr(teacherFiles);
ajaxResult.put("code",200);
ajaxResult.put("msg","查询成功");
ajaxResult.put("rows",list);
ajaxResult.put("total",getDataTable(list).getTotal());
ajaxResult.put("yfb",yfb);
ajaxResult.put("yqr",yqr);
return ajaxResult;
}
/**
* 老师查看自己的档案任务
* 新增教师档案
* @param
* @return
*/
@GetMapping("/teacherAdd/{ids}")
public AjaxResult teacherAdd(@PathVariable("ids") Long[] ids){
return AjaxResult.success(teacherFilesService.teacherAdd(ids));
}
/**
* 获取教师列表
* @param
* @return
*/
@GetMapping("/getTeacherRocer/{tId}")
public AjaxResult getTeacherRocer(@PathVariable("tId") String tId){
return AjaxResult.success(teacherFilesService.getTeacherRocer(tId));
}
/**
*
* @param
* @param
* @return
*/
@GetMapping("/getTeachList")
public TableDataInfo teachList(TeacherFiles teacherFiles){
......@@ -131,7 +164,6 @@ public class TeacherFilesController extends BaseController
return toAjax(teacherFilesService.deleteTeacherFilesByIds(ids));
}
/**
* 教师档案同步
*/
......@@ -143,27 +175,34 @@ public class TeacherFilesController extends BaseController
return toAjax(teacherFilesService.synchronous(id));
}
@PreAuthorize("@ss.hasPermi('teacherFiles:notice:edit')")
@Log(title = "教师档案审核通过", businessType = BusinessType.UPDATE)
@PutMapping("/passThrough/{id}")
public AjaxResult passThrough(@PathVariable("id") Long id)
public AjaxResult passThrough(@PathVariable("id") Long[] id)
{
Integer date = null;
for (int i = 0 ; i< id.length ; i++){
TeacherFiles teacherFiles = new TeacherFiles();
teacherFiles.setId(id);
teacherFiles.setId(id[i]);
teacherFiles.setState("5");
return toAjax(teacherFilesService.updateTeacherFiles(teacherFiles));
date = teacherFilesService.updateTeacherFiles(teacherFiles);
}
return toAjax(date);
}
@PreAuthorize("@ss.hasPermi('teacherFiles:notice:edit')")
@Log(title = "教师档案审核驳回", businessType = BusinessType.UPDATE)
@PutMapping("/reject/{id}")
public AjaxResult reject(@PathVariable("id") Long id)
public AjaxResult reject(@PathVariable("id") Long[] id)
{
Integer date = null;
for (int i = 0 ; i< id.length ; i++){
TeacherFiles teacherFiles = new TeacherFiles();
teacherFiles.setId(id);
teacherFiles.setId(id[i]);
teacherFiles.setState("9");
return toAjax(teacherFilesService.updateTeacherFiles(teacherFiles));
date = teacherFilesService.updateTeacherFiles(teacherFiles);
}
return toAjax(date);
}
@PreAuthorize("@ss.hasPermi('teacherFiles:notice:edit')")
......
......@@ -3,6 +3,7 @@ package yangtz.cs.liu.campus.domain.organization;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.core.domain.OurBaseEntity;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
......@@ -13,12 +14,13 @@ import com.ruoyi.common.annotation.Excel;
* @date 2023-09-06
*/
@Data
public class SchoolOrganizationSignin extends OurBaseEntity
public class SchoolOrganizationSignin extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** id */
@Excel(name = "id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 姓名 */
@Excel(name = "姓名")
private String name;
......
package yangtz.cs.liu.campus.domain.schoolEquipment;
import com.ruoyi.common.annotation.Excel;
import java.math.BigDecimal;
import java.util.Date;
import com.core.domain.OurBaseEntity;
......@@ -52,13 +54,12 @@ public class SchoolCirculation extends OurBaseEntity
/** 接收人 */
private String receivedBy;
/** 预计使用时间 */
/** 预计使用期限 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date yjuseTime;
/** 实际使用时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sjuseTime;
private String sjuseTime;
/** 备注 */
private String remark;
......
......@@ -44,19 +44,19 @@ public class SchoolEquipmentLedger extends OurBaseEntity
private String unit;
/** 归属类型(1公共区域,2信息中心,3个人) */
@Excel(name = "归属类型", readConverterExp = "1=公共区域,2=信息中心,3=个人")
@Excel(name = "归属类型", readConverterExp = "1=公共区域,2=信息中心,3=个人", combo = {"公共区域","信息中心","个人"})
private String affiliationType;
/** 设备状态(1完好,2损坏,3报废) */
@Excel(name = "设备状态", readConverterExp = "1=完好,2=损坏,3=报废")
@Excel(name = "设备状态", readConverterExp = "1=完好,2=损坏,3=报废", combo = {"完好","损坏","报废"})
private String equipmentState;
/** 是否允许借出(1是,0否) */
@Excel(name = "是否允许借出", readConverterExp = "1=是,0=否")
@Excel(name = "是否允许借出", readConverterExp = "1=是,0=否", combo = {"是","否"})
private String isAllowLend;
/** 是否已借出(1是,0否) */
@Excel(name = "是否已借出", readConverterExp = "1=是,0=否")
@Excel(name = "是否已借出", readConverterExp = "1=是,0=否", combo = {"是","否"})
private String isLend;
/** 投产日期 */
......
......@@ -48,6 +48,10 @@ public class SchoolEquipmentRepair extends OurBaseEntity
/** 修理人 */
private String repairName;
/**
* 地点
*/
private String place;
/** 修理人联系方式 */
private Long repairPhone;
......
......@@ -21,12 +21,15 @@ public class SchoolXxfbRy extends OurBaseEntity {
private String studentName;
/** 身份证号 */
@Excel(name = "身份证号")
@NotNull(message = "身份证号不能为空")
private String idCard;
/** 学号 */
@Excel(name = "学号")
@NotNull(message = "学号不能为空")
private String schoolNo;
/** 学生ID(根据身份证去匹配学生的ID) */
@Excel(name = "学生ID(根据身份证去匹配学生的ID)")
@Excel(name = "学生ID(根据学号去匹配学生的ID)")
private Long studentId;
/** 数据3 */
......
......@@ -29,8 +29,10 @@ public class SchoolGradeMentor extends OurBaseEntity {
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
/** 类型(1年级部,2学科组长) */
private String type;
/** 职务 */
@NotBlank(message = "职务不能为空")
private String teacherPost;
/** 学科组(1物理学科组,2化学学科组,3生物学科组) */
......
......@@ -30,7 +30,7 @@ public class SchoolStudent extends OurBaseEntity {
* 性别
* */
@Excel(name = "学生性别", readConverterExp = "0=男,1=女,2=未知")
@NotBlank(message = "学生性别不能为空")
// @NotBlank(message = "学生性别不能为空")
private String sex;
/*
......@@ -43,7 +43,7 @@ public class SchoolStudent extends OurBaseEntity {
* 身份证号
* */
@Excel(name = "身份证号",width = 25)
@NotBlank(message = "身份证号不能为空")
// @NotBlank(message = "身份证号不能为空")
private String idCard;
/*
......
......@@ -40,9 +40,14 @@ public class SchoolTeacherWages extends OurBaseEntity {
private BigDecimal basePay;
/**
* 教师电话
*/
@Excel(name = "教师联系方式")
private String teacherTel;
/**
* 身份证号
*/
@Excel(name = "身份证号")
private String idCard;
/**
......
......@@ -46,4 +46,8 @@ public class ShebeiJy extends OurBaseEntity {
@Excel(name = "借用期限")
private int deadline;
//归还状态(1已归还,0未归还)
@Excel(name = "归还状态", readConverterExp = "1=已归还,0=未归还", combo = {"已归还","未归还"})
private String returnState;
}
......@@ -52,4 +52,8 @@ public class TeacherJy extends OurBaseEntity {
@Excel(name = "借用期限")
private int deadline;
//归还状态(1已归还,0未归还)
@Excel(name = "归还状态", readConverterExp = "1=已归还,0=未归还", combo = {"已归还","未归还"})
private String returnState;
}
package yangtz.cs.liu.campus.domain.teacherFiles;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 教师档案删除对象 TeacherFilesDeletRecord
*
* @author ruoyi
* @date 2023-09-05
*/
@Data
public class TeacherFilesDeletRecord extends BaseEntity
{
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 通知id
*/
private String tId;
/**
* 级部id
*/
private Long gId;
/**
* 身份证
*/
private String tel;
/**
* 级部
*/
private String gruoName;
/**
*用户名称
*/
private String userName;
}
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