IESM项目实训十一——提交总库、总库相关功能和提交记录学生列表

IESM项目实训十一

成绩最终录入总库,不可对该课程成绩再执行任何其他操作。该页面主要部分由代码自动生成,进行详细的查询配置。将原本的查询进一步修改为模糊查询,同样将成绩录入界面的查询进行优化。在该页面同样添加学生成绩列表和提交记录。为提交记录添加学生成绩列表。

在这里插入图片描述
在这里插入图片描述

界面查询部分修改

使用组件: JInput

import JInput from '@/components/jeecg/JInput'
 <!-- 查询区域 -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="课程编号">
              <j-input placeholder="请输入课程编号" v-model="queryParam.lesId"></j-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="课程名称">
              <j-input placeholder="请输入课程名称" v-model="queryParam.lesName"></j-input>
            </a-form-item>
          </a-col>
          <template v-if="toggleSearchStatus">
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="学年学期">
                <j-dict-select-tag placeholder="请选择学年学期" v-model="queryParam.lesSem" dictCode="semester,sem_name,sem_name"/>
              </a-form-item>
            </a-col>
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="教工号">
                <j-input placeholder="请输入教工号" v-model="queryParam.teaId"></j-input>
              </a-form-item>
            </a-col>
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="上课教师">
                <j-input placeholder="请输入上课教师" v-model="queryParam.teaName"></j-input>
              </a-form-item>
            </a-col>
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="课序号">
                <j-input placeholder="请输入课序号" v-model="queryParam.lesOrd"></j-input>
              </a-form-item>
            </a-col>
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="课程属性">
                <j-dict-select-tag placeholder="请选择课程属性" v-model="queryParam.lesShuxing" dictCode="sch_attribute,attribute_name,attribute_name"/>
              </a-form-item>
            </a-col>
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="课程性质">
                <j-input placeholder="请输入课程性质" v-model="queryParam.lesChar"></j-input>
              </a-form-item>
            </a-col>
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="课程类别">
                <j-input placeholder="请输入课程类别" v-model="queryParam.lesType"></j-input>
              </a-form-item>
            </a-col>
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="录入人姓名">
                <j-input placeholder="请输入录入人姓名" v-model="queryParam.inputName"></j-input>
              </a-form-item>
            </a-col>
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="录入人工号">
                <j-input placeholder="请输入录入人工号" v-model="queryParam.inputId"></j-input>
              </a-form-item>
            </a-col>
          </template>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
              </a>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- 查询区域-END -->

学生成绩列表

AllStuScoresController

@ApiOperation(value="学生成绩总库-分页列表查询", notes="学生成绩总库-分页列表查询")
	@GetMapping(value = "/list")
	public Result<Page<AllStuScores>> queryPageList(AllStuScores allStuScores,
													@RequestParam(name="les_id")String les_id,
													@RequestParam(name="les_ord")String les_ord,
													@RequestParam(name="submit_time")String submit_time,
													@RequestParam(name ="stu_num")Integer stu_num,
													@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
													@RequestParam(name = "pageSize", defaultValue = "30") Integer pageSize,
													HttpServletRequest req) {
		Result<Page<AllStuScores>> result = new Result<>();
		Page<AllStuScores> pageList = new Page<AllStuScores>(pageNo, pageSize);
		pageList=allStuScoresService.getStudentList(pageList,les_id,les_ord,submit_time,stu_num);
		result.setSuccess(true);
		result.setResult(pageList);
		return result;
	}

IAllStuScoresService 接口

    public Page<AllStuScores> getStudentList(Page<AllStuScores> page, String les_id, String les_ord,String submit_time,Integer stu_num);;

AllStuScoresServiceImpl接口实现

@Resource
    private AllStuScoresMapper allStuScoresMapper;
    @Override
    @Transactional
    public Page<AllStuScores> getStudentList(Page<AllStuScores> page, String les_id, String les_ord,String submit_time,Integer stu_num) {
        return page.setRecords(allStuScoresMapper.getStudentList(page,les_id,les_ord,submit_time,stu_num));
    }

AllStuScoresMapper数据库接口

 public List<AllStuScores> getStudentList(Page<AllStuScores> page, @Param("les_id") String cs_id, @Param("les_ord") String les_ord,@Param("submit_time")String submit_time, @Param("stu_num")Integer stu_num);

AllStuScoresMapper.xml数据库操作

<select id="getStudentList" resultType="org.jeecg.modules.demo.ScoresInput.entity.AllStuScores">
        SELECT *
        FROM (SELECT *
              FROM all_stu_scores
              WHERE
                  les_id = #{les_id} and les_ord=#{les_ord}
              ORDER BY ABS(TIMESTAMPDIFF(second, create_time, #{submit_time})) LIMIT #{stu_num}) as `a*`
    </select>

提交记录学生列表

后端调用两个页面的学生列表的接口,该部分只写前端。

//按钮
 <a @click="handleShowStuList(record)">学生成绩列表</a>
 //响应事件,temp是打开弹窗是所传全局变量
 handleShowStuList:function (record){
        if(this.temp=="tem"){
          this.$refs.TemporaryStuScoresListModal.showTemporaryStuScoresList(record);
        }
        if(this.temp=="all"){
          this.$refs.AllStuScoresListModal.showAllStuScoresList(record);
        }
      },

为成绩总库和临时界面设置默认显示为当前学期

 @ApiOperation(value="成绩总库分页列表查询", notes="成绩总库分页列表查询")
   @GetMapping(value = "/list")
   public Result<IPage<AllScores>> queryPageList(AllScores allScores,
                                  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                  HttpServletRequest req) {
       Boolean judge=ObjectsUtils.objectCheckIsNull(allScores);
       if(judge){
            allScores.setLesSem(ImportLesInfoUtil.CreateSemester_year());
       }
       QueryWrapper<AllScores> queryWrapper = QueryGenerator.initQueryWrapper(allScores, req.getParameterMap());
       Page<AllScores> page = new Page<AllScores>(pageNo, pageSize);
       IPage<AllScores> pageList = allScoresService.page(page, queryWrapper);
       return Result.OK(pageList);
   }

工具类:ObjectsUtils 判断是否有输入查询条件,如果没有则默认学期

@Slf4j
public class ObjectsUtils {
    /**
     * 判断对象是否完全为空
     *
     * @param object
     * @return
     */
    public static boolean objectCheckIsNull(Object object) {
        boolean flag = true; //定义返回结果,默认为true

        if (Objects.isNull(object)) {
            flag = true;
        } else {
            Class clazz = (Class) object.getClass(); // 得到类对象
            Field fields[] = clazz.getDeclaredFields(); // 得到所有属性
            for (Field field : fields) {
                field.setAccessible(true);
                Object fieldValue = null;
                try {
                    fieldValue = field.get(object); //得到属性值
                    Type fieldType = field.getGenericType();//得到属性类型
                    String fieldName = field.getName(); // 得到属性名
                    log.info("属性类型:" + fieldType + ",属性名:" + fieldName + ",属性值:" + fieldValue);
                } catch (IllegalArgumentException e) {
                    log.error(e.getMessage(), e);
                } catch (IllegalAccessException e) {
                    log.error(e.getMessage(), e);
                }
                if (fieldValue != null) {  //只要有一个属性值不为null 就返回false 表示对象不为null
                    flag = false;
                    break;
                }
            }
        }

        return flag;
    }
}

提交总库

//按钮
<a @click="storageAllInfo(record)">提交总库</a>
//响应事件
storageAllInfo(record){
        if (record.inputState == "未提交" || record.inputState == '') {
          alert("成绩未提交不可以提交至总库!");
        }else {
          getAction(this.url.storageLesson, {
            les_id: record.lesId,
            les_ord: record.lesOrd,
            les_sem: record.lesSem
          }).then((res) => {
            if (res.result === "课程已经提交至总库") {
              this.$message.success("课程已经提交至总库,不可重复提交!");
            } else if(res.result==="添加成功!"){
              getAction(this.url.storageStuList, {les_id: record.lesId, les_ord: record.lesOrd}).then((r) => {
                if (r.result === "学生录入总库成功!") {
                  this.$message.success("学生录入总库成功!");
                }
              })
            }else{
              alert("操作失败,请重新尝试!");
            }
          })
        }

      },

后端将该课程信息插入总库,使用生成的add()方法。

 @RequestMapping(value = "/storageLesson")
   public Result<?> storageLesson(@RequestParam(name = "les_id") String les_id, @RequestParam(name = "les_ord") String les_ord,@RequestParam(name="les_sem")String les_sem){
       TemporaryScores temporaryScores=allScoresService.getLessonInfo(les_id,les_ord).get(0);
       List<AllScores> exit=allScoresService.getLessonExit(les_id,les_ord,les_sem);
       System.out.println(exit);
       if(exit.size()==0) {
           AllScores allScores = new AllScores();
           allScores.setClassroom(temporaryScores.getClassroom());
           allScores.setCourseclass(temporaryScores.getCourseclass());
           allScores.setCoursenum(temporaryScores.getCoursenum());
           allScores.setCreateTime(temporaryScores.getCreateTime());
           allScores.setInputId(temporaryScores.getInputId());
           allScores.setInputName(temporaryScores.getInputName());
           allScores.setInputState(temporaryScores.getInputState());
           allScores.setLesChar(temporaryScores.getLesChar());
           allScores.setLesCredit(temporaryScores.getLesCredit());
           allScores.setLesId(temporaryScores.getLesId());
           allScores.setLesName(temporaryScores.getLesName());
           allScores.setLesOrd(temporaryScores.getLesOrd());
           allScores.setLesSem(temporaryScores.getLesSem());
           allScores.setLesShuxing(temporaryScores.getLesShuxing());
           allScores.setLesTime(temporaryScores.getLesTime());
           allScores.setLesType(temporaryScores.getLesType());
           allScores.setSubmitTime(temporaryScores.getSubmitTime());
           allScores.setTeachType(temporaryScores.getTeachType());
           allScores.setTeaId(temporaryScores.getTeaId());
           allScores.setTeaName(temporaryScores.getTeaName());
           allScores.setTestType(temporaryScores.getTestType());
           allScores.setTestPercent(temporaryScores.getTestPercent());
           allScores.setUsualPercent(temporaryScores.getUsualPercent());
           allScores.setWeekTime(temporaryScores.getWeekTime());
           allScores.setXuewei(temporaryScores.getXuewei());
           allScores.setZhouci(temporaryScores.getZhouci());
           allScores.setScoresType(temporaryScores.getScoresType());
           this.add(allScores);
           return Result.OK("添加成功!");
       }else{
           return Result.OK("课程已经提交至总库");
       }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值