优化功能

This commit is contained in:
yangjun 2024-09-14 10:58:20 +08:00
parent 4b96d2271c
commit 7ba53bc668
16 changed files with 133 additions and 98 deletions

View File

@ -114,6 +114,7 @@ public class XxhbjwxtjxrwController extends JeecgController<Xxhbjwxtjxrw, IXxhbj
return Result.error("您未在授权期限内,不能进行查询!");
}
queryWrapper.eq(StringUtils.isNotBlank(xxhbjwxtjxrw.getZjxnxq()),"concat(xn,xqmc)",xxhbjwxtjxrw.getZjxnxq());
queryWrapper.like(StringUtils.isNotBlank(xxhbjwxtjxrw.getZhuanye()),"zymc",xxhbjwxtjxrw.getZhuanye());
queryWrapper.like(StringUtils.isNotBlank(xxhbjwxtjxrw.getZhicheng()),"teaxm",xxhbjwxtjxrw.getZhicheng());
@ -134,17 +135,22 @@ public class XxhbjwxtjxrwController extends JeecgController<Xxhbjwxtjxrw, IXxhbj
QueryWrapper<ZjXkxx> zjXkxxQueryWrapper = new QueryWrapper<>();
zjXkxxQueryWrapper.eq("user_id",sysUser.getUsername());
List<ZjXkxx> list = zjXkxxService.list(zjXkxxQueryWrapper);
zjXkxxQueryWrapper.eq(StringUtils.isNotBlank(xxhbjwxtjxrw.getZjxnxq()),"concat(xn,xqmc)",xxhbjwxtjxrw.getZjxnxq());
List<ZjXkxx> list = zjXkxxService.zjList(zjXkxxQueryWrapper);
if(list!=null&&list.size()>0){
StringBuffer sb = new StringBuffer();
for(ZjXkxx zjXkxx:list){
sb.append(zjXkxx.getKcrwdm()+",");
}
queryWrapper.in("kcrwdm",sb.toString().split(","));
}else{
IPage<Xxhbjwxtjxrw> pageList = new Page<>();
return Result.OK(pageList);
}
queryWrapper.eq(StringUtils.isNotBlank(xxhbjwxtjxrw.getZjxnxq()),"concat(xn,xqmc)",xxhbjwxtjxrw.getZjxnxq());
queryWrapper.like(StringUtils.isNotBlank(xxhbjwxtjxrw.getZhuanye()),"zymc",xxhbjwxtjxrw.getZhuanye());
queryWrapper.like(StringUtils.isNotBlank(xxhbjwxtjxrw.getZhicheng()),"teaxm",xxhbjwxtjxrw.getZhicheng());
queryWrapper.apply(StringUtils.isNotBlank(xxhbjwxtjxrw.getZhicheng()),"SUBSTRING(TEAXM,LOCATE('[',TEAXM)+1,locate(']',TEAXM)-locate('[',TEAXM)-1) = '"+xxhbjwxtjxrw.getZhicheng()+"'");
Page<Xxhbjwxtjxrw> page = new Page<Xxhbjwxtjxrw>(pageNo, pageSize);
IPage<Xxhbjwxtjxrw> pageList = xxhbjwxtjxrwService.page(page, queryWrapper);
return Result.OK(pageList);

View File

@ -100,4 +100,6 @@ public class Xxhbjwxtjxrw implements Serializable {
private java.lang.String zhuanye;
@TableField(exist = false)
private java.lang.String zhicheng;
@TableField(exist = false)
private java.lang.String zjxnxq;//专家展示学年学期
}

View File

@ -2,4 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.demo.xxhbjwxtjxrw.mapper.XxhbjwxtjxrwMapper">
<select id="selectList" resultType="org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw">
select *,concat(xn,xqmc) as zjxnxq from xxhbjwxtjxrw
${ew.customSqlSegment}
</select>
</mapper>

View File

@ -19,8 +19,8 @@
<foreach collection="xxhbjwxtxsmd.studentNo" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
and b.student_path is not null
</if>
and b.student_path is not null
order by b.student_path desc
</select>
</mapper>

View File

@ -4,10 +4,8 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@ -72,7 +70,11 @@ public class ZjXkxx implements Serializable {
private java.lang.String zhuanye;//专业
private java.lang.String zxs;//学时
private java.lang.String zymc;//专业名称
private java.lang.String xkrs;//选课人数
private java.lang.String jxbrs;//选课人数
@TableField(exist = false)
private java.lang.String zjxnxq;//专家展示学年学期
}

View File

@ -2,6 +2,8 @@ package org.jeecg.modules.demo.zjXkxx.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.zjXkxx.entity.ZjXkxx;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -14,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface ZjXkxxMapper extends BaseMapper<ZjXkxx> {
List<ZjXkxx> zjList(@Param(Constants.WRAPPER) QueryWrapper<ZjXkxx> zjXkxxQueryWrapper);
}

View File

@ -2,4 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.demo.zjXkxx.mapper.ZjXkxxMapper">
<select id="zjList" resultType="org.jeecg.modules.demo.zjXkxx.entity.ZjXkxx">
select *,concat(xn,xqmc) as zjxnxq from zj_xkxx
${ew.customSqlSegment}
</select>
<select id="selectList" resultType="org.jeecg.modules.demo.zjXkxx.entity.ZjXkxx">
select *,concat(xn,xqmc) as zjxnxq from zj_xkxx
${ew.customSqlSegment}
</select>
</mapper>

View File

@ -1,8 +1,11 @@
package org.jeecg.modules.demo.zjXkxx.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.jeecg.modules.demo.zjXkxx.entity.ZjXkxx;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 专家选课信息
* @Author: jeecg-boot
@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IZjXkxxService extends IService<ZjXkxx> {
List<ZjXkxx> zjList(QueryWrapper<ZjXkxx> zjXkxxQueryWrapper);
}

View File

@ -1,5 +1,6 @@
package org.jeecg.modules.demo.zjXkxx.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.jeecg.modules.demo.zjXkxx.entity.ZjXkxx;
import org.jeecg.modules.demo.zjXkxx.mapper.ZjXkxxMapper;
import org.jeecg.modules.demo.zjXkxx.service.IZjXkxxService;
@ -7,6 +8,9 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.Collections;
import java.util.List;
/**
* @Description: 专家选课信息
* @Author: jeecg-boot
@ -16,4 +20,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class ZjXkxxServiceImpl extends ServiceImpl<ZjXkxxMapper, ZjXkxx> implements IZjXkxxService {
@Override
public List<ZjXkxx> zjList(QueryWrapper<ZjXkxx> zjXkxxQueryWrapper) {
return baseMapper.zjList(zjXkxxQueryWrapper);
}
}

View File

@ -101,7 +101,7 @@ export const columns2: BasicColumn[] = [
{
title: '学年学期',
align: "center",
dataIndex: 'xnxqdm',
dataIndex: 'zjxnxq',
ellipsis: true,
},
{
@ -110,32 +110,32 @@ export const columns2: BasicColumn[] = [
dataIndex: 'kcmc',
ellipsis: true,
},
{
title: '课程号',
align: "center",
dataIndex: 'kcrwdm',
ellipsis: true,
},
// {
// title: '课程号',
// align: "center",
// dataIndex: 'kcrwdm',
// ellipsis: true,
// },
{
title: '课程类别',
align: "center",
dataIndex: 'kclb',
ellipsis: true,
},
{
title: '学分',
align: "center",
dataIndex: 'xf',
width: 80,
ellipsis: true,
},
{
title: '学时',
align: "center",
dataIndex: 'zxs',
width: 80,
ellipsis: true,
},
// {
// title: '学分',
// align: "center",
// dataIndex: 'xf',
// width: 80,
// ellipsis: true,
// },
// {
// title: '学时',
// align: "center",
// dataIndex: 'zxs',
// width: 80,
// ellipsis: true,
// },
{
title: '开课单位名称',
align: "center",
@ -155,28 +155,40 @@ export const columns2: BasicColumn[] = [
dataIndex: 'teaxm',
ellipsis: true,
},
// {
// title: '班级',
// align: "center",
// dataIndex: 'bjxx',
// ellipsis: true,
// },
// {
// title: '学年',
// align: "center",
// dataIndex: 'xn',
// ellipsis: true,
// },
// {
// title: '学期',
// align: "center",
// dataIndex: 'xqmc',
// ellipsis: true,
// },
// {
// title: '试卷份数',
// align: "center",
// dataIndex: 'sjfs',
// ellipsis: true,
// },
{
title: '班级',
title: '选课人数',
align: "center",
dataIndex: 'bjxx',
dataIndex: 'jxbrs',
ellipsis: true,
},
{
title: '学年',
title: '考试方式',
align: "center",
dataIndex: 'xn',
ellipsis: true,
},
{
title: '学期',
align: "center",
dataIndex: 'xqmc',
ellipsis: true,
},
{
title: '试卷份数',
align: "center",
dataIndex: 'sjfs',
dataIndex: 'khfsmc',
ellipsis: true,
},
{
@ -190,14 +202,9 @@ export const columns2: BasicColumn[] = [
//列表数据
export const columns3: BasicColumn[] = [
{
title: '学年',
title: '学年学期',
align: "center",
dataIndex: 'xn'
},
{
title: '学期',
align: "center",
dataIndex: 'xqmc'
dataIndex: 'zjxnxq'
},
{
title: '课程名称',
@ -231,7 +238,7 @@ export const columns3: BasicColumn[] = [
dataIndex: 'khfsmc'
},
// {
// title: '成绩',
// title: '学生成绩',
// align: "center",
// dataIndex: 'cjd',
// slots: { customRender: 'cjd' },

View File

@ -12,17 +12,17 @@
<a-form ref="formRef" @keyup.enter.native="searchQuery2" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="24">
<a-col :lg="6">
<a-form-item name="xn">
<template #label><span title="学年">学年</span></template>
<j-dict-select-tag placeholder="请选择学年" v-model:value="queryParam2.xn" :dictCode="`v_xn,xn,xn`" allow-clear />
<a-form-item name="zjxnxq">
<template #label><span title="学年学期">学年学期</span></template>
<j-dict-select-tag placeholder="请选择学年学期" v-model:value="queryParam2.zjxnxq" :dictCode="`v_xqxn,xqxn,xqxn`" allow-clear />
</a-form-item>
</a-col>
<a-col :lg="6">
<!-- <a-col :lg="6">
<a-form-item name="xqmc">
<template #label><span title="学期">学期</span></template>
<j-dict-select-tag placeholder="请选择学期" v-model:value="queryParam2.xqmc" dictCode="cjxq" allow-clear />
</a-form-item>
</a-col>
</a-col> -->
<a-col :lg="6">
<a-form-item name="kkyxmc">
<template #label><span title="开课单位名称">开课单位名称</span></template>
@ -46,7 +46,7 @@
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="kcmc">
<a-form-item name="teaxm">
<template #label><span title="任课教师">任课教师</span></template>
<j-input placeholder="请输入任课教师" v-model:value="queryParam2.teaxm" allow-clear></j-input>
</a-form-item>
@ -62,7 +62,7 @@
/>
</a-form-item>
</a-col>
<a-col :span="12" style="text-align: right">
<a-col :span="18" style="text-align: right">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery2">查询</a-button>
</a-col>
</a-row>
@ -78,7 +78,7 @@
>
<template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'action'">
<a @click="handleQueren(record)">确认</a>
<a @click="handleQueren(record)">选择</a>
</template>
</template>
</a-table>
@ -86,7 +86,7 @@
<a-table :columns="columns2" :data-source="checkData" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'action'">
<a @click="handleDel(record)"></a>
<a @click="handleDel(record)"></a>
</template>
</template>
</a-table>
@ -95,7 +95,7 @@
<a-button type="primary" style="margin-left: 10px; margin-top: 10px" @click="handleFanhui">返回</a-button>
</div>
</div>
<!-- 成绩 -->
<!-- 学生成绩 -->
<div v-show="sfxk == 2">
<CjdForm ref="cjdFormModal" @callback="init"></CjdForm>
</div>
@ -117,30 +117,10 @@
<div class="jeecg-basic-table-form-container">
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="24">
<!-- <a-col :span="24" style="text-align: right;margin-bottom: 20px;">
模板下载
<a-popover placement="topRight" type="primary">
<template #content>
<a-button type="primary" style="margin-left: 10px;margin-top: 10px" @click="textDown('a1','课堂教学评价表')">课堂教学评价表</a-button>
<a-button type="primary" style="margin-left: 10px;margin-top: 10px" @click="textDown('a2','试卷评价表')">试卷评价表</a-button>
<a-button type="primary" style="margin-left: 10px;margin-top: 10px" @click="textDown('a3','本科毕业论文(设计)评价表')">本科毕业论文设计评价表</a-button>
</template>
<template #title>
<span>专家用评价表</span>
</template>
<a-button>专家用评价表</a-button>
</a-popover>
</a-col> -->
<a-col :lg="6">
<a-form-item name="xn">
<template #label><span title="学年">学年</span></template>
<j-dict-select-tag placeholder="请选择学年" v-model:value="queryParam.xn" :dictCode="`v_xn,xn,xn`" allow-clear />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="xqmc">
<template #label><span title="学期">学期</span></template>
<j-dict-select-tag placeholder="请选择学期" v-model:value="queryParam.xqmc" dictCode="cjxq" allow-clear />
<a-form-item name="zjxnxq">
<template #label><span title="学年学期">学年学期</span></template>
<j-dict-select-tag placeholder="请选择学年学期" v-model:value="queryParam.zjxnxq" :dictCode="`v_xqxn,xqxn,xqxn`" allow-clear />
</a-form-item>
</a-col>
<a-col :lg="6">
@ -189,10 +169,10 @@
<j-input placeholder="请输入课程名称" v-model:value="queryParam.kcmc" allow-clear ></j-input>
</a-form-item>
</a-col> -->
<a-col :span="12" style="text-align: right">
<a-col :span="18" style="text-align: right">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button>
<a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls" style="margin-left: 8px"> 导出</a-button>
<!-- <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls" style="margin-left: 8px"> 导出</a-button> -->
<a-button type="primary" preIcon="ant-design:export-outlined" @click="handleXuanke" style="margin-left: 8px"> 选课</a-button>
</a-col>
</a-row>
@ -299,7 +279,7 @@ const paginationProp = ref<any>({
pageSize: 10,
pageNo: 1,
});
//
//
function handleCjd(record) {
sfxk.value = 2;
cjdFormModal.value.init(record);
@ -405,7 +385,7 @@ function handleSuccess() {
function getTableAction(record) {
return [
{
label: '成绩',
label: '学生成绩',
onClick: handleCjd.bind(null, record),
},
{

View File

@ -4,13 +4,13 @@
<div class="jeecg-basic-table-form-container">
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="24">
<a-col :span="12"> <span style="font-size: 22px;font-weight: 700;margin-left: 20px;">成绩</span> </a-col>
<a-col :span="12"> <span style="font-size: 22px;font-weight: 700;margin-left: 20px;">学生成绩</span> </a-col>
<a-col :span="12" style="text-align: right">
<a-button type="primary" @click="handleFanhui">返回</a-button>
</a-col>
<a-col :gutter="24">
<div style="text-align: center; font-size: 16px; font-weight: 700; line-height: 50px" v-if="jxrwInfo.value">
{{ jxrwInfo?.value.xn }}{{ jxrwInfo?.value.xqmc }}学期{{ jxrwInfo?.value.kcmc }}课程考核材料
{{ jxrwInfo?.value.xn }}{{ jxrwInfo?.value.xqmc }}学期{{ jxrwInfo?.value.kcmc }}
</div>
<div v-if="jxrwInfo.value">
<div style="padding-left: 15px; font-weight: 700">概要信息</div>

View File

@ -32,7 +32,7 @@
* @param record
*/
function init(record) {
title.value = '成绩';
title.value = '学生成绩';
visible.value = true;
nextTick(() => {
registerForm.value.init(record);

View File

@ -83,8 +83,8 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
useSearchForm: false,
// showActionColumn: false,
actionColumn: {
width: 120,
fixed: 'right',
width: 320,
// fixed: 'right',
},
beforeFetch: async (params) => {
return Object.assign(params, queryParam);
@ -172,7 +172,7 @@ async function batchHandleDelete() {
* 批量下载事件
*/
async function batchHandleDown() {
var downName = '考核评价材料'+dayjs().format('YYYYMMDDHHmmss')+"";
var downName = '《'+jxrwInfo?.value.kcmc+'》考核评价材料'+dayjs().format('YYYYMMDDHHmmss')+"";
defHttp.post({ url: "/xxhbjwxtscwjxx/xxhbjwxtscwjxx/getBatchDown", params: { downPath: selectedRowKeys.value,downName } }).then((res) => {
console.log(res);
downloadFileLoacl(res.path);
@ -258,7 +258,7 @@ function searchReset() {
function init(record) {
queryParam.kcrwdm = record.kcrwdm;
queryParam.fjtype =
'过程性考核-论文,历次过程性考核-评分标准,课程目标达成情况评价报告,课程考核合理性审核记录单,历次过程性考核-内容及要求(或试题),课程考核质量评价单,期未考试-试题(或内容及要求),期末考试-评分标准';
'历次过程性考核-评分标准,课程目标达成情况评价报告,课程考核合理性审核记录单,历次过程性考核-内容及要求(或试题),课程考核质量评价单,期未考试-试题(或内容及要求),期末考试-评分标准';
//
//
//

View File

@ -286,6 +286,12 @@ export const columns3: BasicColumn[] = [
align: "center",
dataIndex: 'cj1',
width: 100,
// defaultHidden: ({text}) =>{
// if(text){
// }
// return true;
// },
},
{
title: '平时成绩2',

View File

@ -160,7 +160,7 @@ function handleDown(record) {
* 批量下载事件
*/
async function batchHandleDown() {
var downName = '学生原始材料' + dayjs().format('YYYYMMDDHHmmss') + '';
var downName = '《'+jxrwInfo?.value.kcmc+'》学生原始材料' + dayjs().format('YYYYMMDDHHmmss') + '';
console.log('👩‍🦰', selectedRowKeys.value);
defHttp.post({ url: "/xxhbjwxtxsmd/xxhbjwxtxsmd/getBatchDown", params: { studentNo: selectedRowKeys.value,downName,cdlx:jxrwInfo.value.khfs,kcrwdm:jxrwInfo.value.kcrwdm } }).then((res) => {
console.log(res);