Bladeren bron

Merge remote-tracking branch 'origin/dev' into dev

大数据与最优化研究所 1 jaar geleden
bovenliggende
commit
6d3013376e

+ 12 - 7
src/main/java/com/xjrsoft/module/assessment/controller/AssessmentPlanAnswerController.java

@@ -2,17 +2,15 @@ package com.xjrsoft.module.assessment.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.stp.StpUtil;
-import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.assessment.dto.AssessmentPlanAnswerPageDto;
 import com.xjrsoft.module.assessment.dto.AssessmentTemplatePlanSureDto;
-import com.xjrsoft.module.assessment.entity.AssessmentTemplatePlan;
 import com.xjrsoft.module.assessment.service.IAssessmentTemplatePlanService;
 import com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerPageVo;
-import com.xjrsoft.module.assessment.vo.AssessmentTemplatePlanVo;
+import com.xjrsoft.module.assessment.vo.AssessmentTemplateQuestionVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -63,12 +61,12 @@ public class AssessmentPlanAnswerController {
     @GetMapping(value = "/info")
     @ApiOperation(value="根据id查询考核计划信息")
     @SaCheckPermission("assessmenttemplateplan:detail")
-    public RT<AssessmentTemplatePlanVo> info(@RequestParam Long id){
-        AssessmentTemplatePlan assessmentTemplatePlan = planService.getByIdDeep(id);
-        if (assessmentTemplatePlan == null) {
+    public RT<AssessmentTemplateQuestionVo> info(@RequestParam Long id){
+        AssessmentTemplateQuestionVo questionVo = planService.getQuestionsById(id);
+        if (questionVo == null) {
            return RT.error("找不到此数据!");
         }
-        return RT.ok(BeanUtil.toBean(assessmentTemplatePlan, AssessmentTemplatePlanVo.class));
+        return RT.ok(questionVo);
     }
 
 
@@ -80,4 +78,11 @@ public class AssessmentPlanAnswerController {
         return RT.ok(isSuccess);
     }
 
+    @PostMapping(value="save-answer")
+    @ApiOperation(value = "班主任确认考核")
+    @SaCheckPermission("assessmenttemplateplan:add")
+    public RT<Boolean> saveAnswer(@Valid @RequestBody AssessmentTemplatePlanSureDto dto){
+        boolean isSuccess = planService.sure(dto);
+        return RT.ok(isSuccess);
+    }
 }

+ 58 - 0
src/main/java/com/xjrsoft/module/assessment/dto/AddAssessmentPlanAnswerResultDto.java

@@ -0,0 +1,58 @@
+package com.xjrsoft.module.assessment.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+* @title: 考核模板题目
+* @Author dzx
+* @Date: 2024-03-29
+* @Version 1.0
+*/
+@Data
+public class AddAssessmentPlanAnswerResultDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer sortCode;
+    /**
+    * 题目题干
+    */
+    @ApiModelProperty("题目题干")
+    private String name;
+    /**
+    * 分数
+    */
+    @ApiModelProperty("分数")
+    private Long score;
+    /**
+    * 题目类型
+    */
+    @ApiModelProperty("题目类型")
+    private String type;
+    /**
+    * 是否必填(1:是 0:否)
+    */
+    @ApiModelProperty("是否必填(1:是 0:否)")
+    private Short required;
+    /**
+    * 考核模板id(assessment_template)
+    */
+    @ApiModelProperty("考核模板id(assessment_template)")
+    private Long assessmentTemplateId;
+
+    @ApiModelProperty("小题")
+    private List<AddAssessmentPlanAnswerResultDto> children;
+
+    @ApiModelProperty("assessmentQuestionOptions子表")
+    private List<AddAssessmentQuestionOptionsDto> options;
+
+}

+ 87 - 0
src/main/java/com/xjrsoft/module/assessment/entity/AssessmentPlanAnswerResult.java

@@ -0,0 +1,87 @@
+package com.xjrsoft.module.assessment.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+* @title: 考核模板题目
+* @Author dzx
+* @Date: 2024-04-01
+* @Version 1.0
+*/
+@Data
+@TableName("assessment_plan_answer_result")
+@ApiModel(value = "assessment_plan_answer_result", description = "考核答题结果")
+public class AssessmentPlanAnswerResult implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 学生id
+    */
+    @ApiModelProperty("学生id")
+    private Long studentUserId;
+    /**
+    * 学生id(assessment_plan_question[category=3的id])
+    */
+    @ApiModelProperty("选项id(assessment_plan_question[category=3的id])")
+    private Long assessmentPlanQuestionId;
+    /**
+    * 考核计划id(assessment_template_plan)
+    */
+    @ApiModelProperty("考核计划id(assessment_template_plan)")
+    private Long assessmentTemplatePlanId;
+
+
+}

+ 0 - 1
src/main/java/com/xjrsoft/module/assessment/entity/AssessmentPlanQuestion.java

@@ -34,7 +34,6 @@ public class AssessmentPlanQuestion implements Serializable {
     * 
     */
     @ApiModelProperty("")
-    @TableId
     private Long id;
     /**
     * 

+ 1 - 1
src/main/java/com/xjrsoft/module/assessment/mapper/AssessmentQuestionMapper.java

@@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Update;
 */
 @Mapper
 public interface AssessmentQuestionMapper extends MPJBaseMapper<AssessmentQuestion> {
-    @Update("update assessment_question set delete_mark = 1,modify_date = now(),modify_user_id = #{loginId} WHERE assessment_question_id = #{assessmentTemplateId}")
+    @Update("update assessment_question set delete_mark = 1,modify_date = now(),modify_user_id = #{loginId} WHERE assessment_template_id = #{assessmentTemplateId}")
     Boolean deleteByAssessmentQuestionId(Long assessmentTemplateId, Long loginId);
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/assessment/service/IAssessmentTemplatePlanService.java

@@ -11,6 +11,7 @@ import com.xjrsoft.module.assessment.dto.UpdateAssessmentTemplatePlanTimeDto;
 import com.xjrsoft.module.assessment.entity.AssessmentTemplatePlan;
 import com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerPageVo;
 import com.xjrsoft.module.assessment.vo.AssessmentTemplatePlanPageVo;
+import com.xjrsoft.module.assessment.vo.AssessmentTemplateQuestionVo;
 
 import java.util.List;
 
@@ -65,4 +66,6 @@ public interface IAssessmentTemplatePlanService extends MPJBaseService<Assessmen
      */
     Boolean sure(AssessmentTemplatePlanSureDto dto);
 
+    AssessmentTemplateQuestionVo getQuestionsById(Long id);
+
 }

+ 64 - 1
src/main/java/com/xjrsoft/module/assessment/service/impl/AssessmentTemplatePlanServiceImpl.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.assessment.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.IdUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -28,7 +29,9 @@ import com.xjrsoft.module.assessment.mapper.AssessmentTemplateMapper;
 import com.xjrsoft.module.assessment.mapper.AssessmentTemplatePlanMapper;
 import com.xjrsoft.module.assessment.service.IAssessmentTemplatePlanService;
 import com.xjrsoft.module.assessment.vo.AssessmentPlanAnswerPageVo;
+import com.xjrsoft.module.assessment.vo.AssessmentQuestionVo;
 import com.xjrsoft.module.assessment.vo.AssessmentTemplatePlanPageVo;
+import com.xjrsoft.module.assessment.vo.AssessmentTemplateQuestionVo;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
@@ -37,7 +40,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Random;
 
 /**
@@ -74,9 +79,14 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
             .eq(AssessmentQuestion::getDeleteMark, DeleteMark.NODELETE.getCode())
             .eq(AssessmentQuestion::getAssessmentTemplateId, dto.getAssessmentTemplateId())
         );
+        Map<Long, Long> parentMap = new HashMap<>();
+        for (AssessmentQuestion assessmentQuestion : questionList) {
+            parentMap.put(assessmentQuestion.getId(), IdUtil.getSnowflakeNextId());
+        }
         for (AssessmentQuestion assessmentQuestion : questionList) {
             AssessmentPlanQuestion planQuestion = BeanUtil.toBean(assessmentQuestion, AssessmentPlanQuestion.class);
-            planQuestion.setId(null);
+            planQuestion.setId(parentMap.get(assessmentQuestion.getId()));
+            planQuestion.setParentId(parentMap.get(assessmentQuestion.getParentId()));
             planQuestion.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
             planQuestionMapper.insert(planQuestion);
         }
@@ -140,9 +150,16 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
             new QueryWrapper<AssessmentQuestion>().lambda()
             .eq(AssessmentQuestion::getDeleteMark, DeleteMark.NODELETE.getCode())
             .eq(AssessmentQuestion::getAssessmentTemplateId, dto.getAssessmentTemplateId())
+            .orderByAsc(AssessmentQuestion::getCategory)
         );
+        Map<Long, Long> parentMap = new HashMap<>();
+        for (AssessmentQuestion assessmentQuestion : questionList) {
+            parentMap.put(assessmentQuestion.getId(), IdUtil.getSnowflakeNextId());
+        }
         for (AssessmentQuestion assessmentQuestion : questionList) {
             AssessmentPlanQuestion planQuestion = BeanUtil.toBean(assessmentQuestion, AssessmentPlanQuestion.class);
+            planQuestion.setId(parentMap.get(assessmentQuestion.getId()));
+            planQuestion.setParentId(parentMap.get(assessmentQuestion.getParentId()));
             planQuestion.setAssessmentTemplatePlanId(assessmentTemplatePlan.getId());
             planQuestionMapper.insert(planQuestion);
         }
@@ -232,4 +249,50 @@ public class AssessmentTemplatePlanServiceImpl extends MPJBaseServiceImpl<Assess
         studentMapper.sure(dto, teacherId);
         return true;
     }
+
+    @Override
+    public AssessmentTemplateQuestionVo getQuestionsById(Long id) {
+        AssessmentTemplatePlan templatePlan = templatePlanMapper.selectById(id);
+        AssessmentTemplateQuestionVo vo = BeanUtil.toBean(templatePlan, AssessmentTemplateQuestionVo.class);
+        List<AssessmentPlanQuestion> questionList = planQuestionMapper.selectList(
+            new QueryWrapper<AssessmentPlanQuestion>().lambda()
+            .eq(AssessmentPlanQuestion::getDeleteMark, DeleteMark.NODELETE.getCode())
+            .eq(AssessmentPlanQuestion::getAssessmentTemplatePlanId, id)
+        );
+
+        //循环大题
+        List<AssessmentQuestionVo> oneList = new ArrayList<>();
+        for (AssessmentPlanQuestion assessmentQuestion : questionList) {
+            if(assessmentQuestion.getCategory() == 1){
+                oneList.add(BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class));
+            }
+        }
+
+        //循环小题
+        for (AssessmentQuestionVo oneQuestion : oneList) {
+            List<AssessmentQuestionVo> twoList = new ArrayList<>();
+            for (AssessmentPlanQuestion assessmentQuestion : questionList) {
+                if(assessmentQuestion.getCategory() == 2 && assessmentQuestion.getParentId().equals(oneQuestion.getId())){
+                    twoList.add(BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class));
+                }
+            }
+            oneQuestion.setChildren(twoList);
+        }
+
+        //循环选项
+        for (AssessmentQuestionVo oneQuestion : oneList) {
+            for (AssessmentQuestionVo twoQuestion : oneQuestion.getChildren()) {
+                List<AssessmentQuestionVo> optionList = new ArrayList<>();
+                for (AssessmentPlanQuestion assessmentQuestion : questionList) {
+                    if(assessmentQuestion.getCategory() == 3 && assessmentQuestion.getParentId().equals(twoQuestion.getId())){
+                        optionList.add(BeanUtil.toBean(assessmentQuestion, AssessmentQuestionVo.class));
+                    }
+                }
+                twoQuestion.setOptions(optionList);
+            }
+        }
+
+        vo.setChildren(oneList);
+        return vo;
+    }
 }

+ 40 - 0
src/main/java/com/xjrsoft/module/assessment/vo/AssessmentTemplateQuestionVo.java

@@ -0,0 +1,40 @@
+package com.xjrsoft.module.assessment.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* @title: 考核模板表单出参
+* @Author dzx
+* @Date: 2024-03-29
+* @Version 1.0
+*/
+@Data
+public class AssessmentTemplateQuestionVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 名称
+    */
+    @ApiModelProperty("名称")
+    private String name;
+    /**
+    * 分数
+    */
+    @ApiModelProperty("分数")
+    private Long score;
+
+
+    /**
+    * assessmentQuestion
+    */
+    @ApiModelProperty("assessmentQuestion子表")
+    private List<AssessmentQuestionVo> children;
+
+}