Browse Source

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

# Conflicts:
#	src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateResultServiceImpl.java
phoenix 1 year ago
parent
commit
2dd7ff921f

+ 2 - 3
src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateTemplateController.java

@@ -68,9 +68,8 @@ public class EvaluateTemplateController {
     @ApiOperation(value = "新增评价模版")
     @SaCheckPermission("evaluatetemplate:add")
     public RT<Boolean> add(@Valid @RequestBody AddEvaluateTemplateDto dto){
-        EvaluateTemplate evaluateTemplate = BeanUtil.toBean(dto, EvaluateTemplate.class);
-        boolean isSuccess = evaluateTemplateService.save(evaluateTemplate);
-    return RT.ok(isSuccess);
+        boolean isSuccess = evaluateTemplateService.saveCustom(dto);
+        return RT.ok(isSuccess);
     }
 
     @PutMapping

+ 32 - 0
src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateWriteController.java

@@ -5,19 +5,25 @@ 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.evaluate.dto.EvaluateResultSaveDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto;
 import com.xjrsoft.module.evaluate.service.IEvaluateManageService;
+import com.xjrsoft.module.evaluate.service.IEvaluateResultService;
+import com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateWriteVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
 * @title: 评价项
@@ -34,6 +40,8 @@ public class EvaluateWriteController {
 
     private final IEvaluateManageService evaluateManageService;
 
+    private final IEvaluateResultService evaluateResultService;
+
     @GetMapping(value = "/page")
     @ApiOperation(value="评价管理列表(分页)")
     @SaCheckPermission("evaluatemanage:detail")
@@ -54,5 +62,29 @@ public class EvaluateWriteController {
         return RT.ok(evaluateWriteVo);
     }
 
+    @GetMapping(value = "/item-list")
+    @ApiOperation(value="评价题目列表")
+    @SaCheckPermission("evaluatemanage:detail")
+    public RT<List<EvaluateManageItemVo>> itemList(@RequestParam Long id){
+        List<EvaluateManageItemVo> itemList = evaluateManageService.getItemList(id);
+        return RT.ok(itemList);
+    }
+
+    @GetMapping(value = "/result-list")
+    @ApiOperation(value="评价结果列表")
+    @SaCheckPermission("evaluatemanage:detail")
+    public RT<List<EvaluateManageItemVo>> resultList(@RequestParam Long id){
+        List<EvaluateManageItemVo> itemList = evaluateManageService.getResultList(id);
+        return RT.ok(itemList);
+    }
+
+    @PostMapping
+    @ApiOperation(value = "评价对象保存")
+    @SaCheckPermission("evaluateobject:save")
+    public RT<String> save(@Valid @RequestBody EvaluateResultSaveDto dto){
+        String isSuccess = evaluateResultService.saveBatch(dto);
+        return RT.ok(isSuccess);
+    }
+
 
 }

+ 1 - 22
src/main/java/com/xjrsoft/module/evaluate/dto/AddEvaluateResultDto.java

@@ -2,14 +2,8 @@ package com.xjrsoft.module.evaluate.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.io.Serializable;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Date;
+import java.io.Serializable;
 
 
 
@@ -30,21 +24,6 @@ public class AddEvaluateResultDto implements Serializable {
     @ApiModelProperty("评价项编号")
     private Long evaluateItemId;
     /**
-    * 参评人编号
-    */
-    @ApiModelProperty("参评人编号")
-    private String userId;
-    /**
-    * 被评对象(teacher:老师,class:班级,student:学生)
-    */
-    @ApiModelProperty("被评对象(teacher:老师,class:班级,student:学生)")
-    private String evaluatedObject;
-    /**
-    * 被评对象编号
-    */
-    @ApiModelProperty("被评对象编号")
-    private Long evaluatedObjectId;
-    /**
     * 评价分数
     */
     @ApiModelProperty("评价分数")

+ 27 - 0
src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateResultSaveDto.java

@@ -0,0 +1,27 @@
+package com.xjrsoft.module.evaluate.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+* @title: 评价管理分页查询入参
+* @Author dzx
+* @Date: 2024-01-16
+* @Version 1.0
+*/
+@Data
+public class EvaluateResultSaveDto implements Serializable {
+
+    /**
+     * 评价管理主键编号
+     */
+    @ApiModelProperty(value = "评价管理主键编号",required = true)
+    private Long evaluateManageId;
+
+    @ApiModelProperty(value = "填写答案信息")
+    private List<AddEvaluateResultDto> resultList;
+}

+ 1 - 1
src/main/java/com/xjrsoft/module/evaluate/entity/EvaluateResult.java

@@ -82,7 +82,7 @@ public class EvaluateResult implements Serializable {
     * 参评人编号
     */
     @ApiModelProperty("参评人编号")
-    private String userId;
+    private Long userId;
     /**
     * 被评对象(teacher:老师,class:班级,student:学生)
     */

+ 14 - 0
src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateManageMapper.java

@@ -5,10 +5,15 @@ import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.evaluate.dto.EvaluateManagePageDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateManage;
+import com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateManagePageVo;
+import com.xjrsoft.module.evaluate.vo.EvaluateManageScoreVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo;
+import com.xjrsoft.module.evaluate.vo.EvaluateWriteVo;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
 * @title: 评价管理
 * @Author dzx
@@ -34,4 +39,13 @@ public interface EvaluateManageMapper extends MPJBaseMapper<EvaluateManage> {
      * @return
      */
     Page<EvaluateWritePageVo> getMobilePage(Page<EvaluateWritePageDto> page, EvaluateWritePageDto dto);
+
+    EvaluateWriteVo getWriteInfo(Long id);
+
+
+    List<EvaluateManageItemVo> getItemList(Long id);
+
+    List<EvaluateManageItemVo> getResultList(Long id, Long userId);
+
+    List<EvaluateManageScoreVo> getScoreList();
 }

+ 7 - 0
src/main/java/com/xjrsoft/module/evaluate/service/IEvaluateManageService.java

@@ -6,7 +6,9 @@ import com.xjrsoft.module.evaluate.dto.EvaluateManagePageDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateManage;
 import com.xjrsoft.module.evaluate.entity.EvaluateObject;
+import com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateManagePageVo;
+import com.xjrsoft.module.evaluate.vo.EvaluateManageScoreVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateWriteVo;
 
@@ -64,4 +66,9 @@ public interface IEvaluateManageService extends MPJBaseService<EvaluateManage> {
 
     EvaluateWriteVo getWriteInfo(Long id);
 
+    //查询题目信息
+    List<EvaluateManageItemVo> getItemList(Long id);
+
+    List<EvaluateManageItemVo> getResultList(Long id);
+
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/evaluate/service/IEvaluateResultService.java

@@ -5,6 +5,7 @@ import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.evaluate.dto.EvaluateResultDetailPageDetailDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateResultDetailPageDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateResultIndexPageDto;
+import com.xjrsoft.module.evaluate.dto.EvaluateResultSaveDto;
 import com.xjrsoft.module.evaluate.dto.ResultViewingPageDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateResult;
 import com.xjrsoft.module.evaluate.vo.EvaluateResultDetailPageDetailVo;
@@ -27,4 +28,6 @@ public interface IEvaluateResultService extends MPJBaseService<EvaluateResult> {
     EvaluateResultDetailPageDetailVo getDetailPageDetail(EvaluateResultDetailPageDetailDto dto);
 
     IPage<ResultViewingPageVo> pageResultViewing(ResultViewingPageDto dto);
+
+    String saveBatch(EvaluateResultSaveDto dto);
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/evaluate/service/IEvaluateTemplateService.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.evaluate.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.evaluate.dto.AddEvaluateTemplateDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateTemplate;
 import com.xjrsoft.module.evaluate.dto.EvaluateTemplatePageDto;
 import com.xjrsoft.module.evaluate.vo.EvaluateTemplatePageVo;
@@ -15,4 +16,6 @@ import com.xjrsoft.module.evaluate.vo.EvaluateTemplatePageVo;
 
 public interface IEvaluateTemplateService extends MPJBaseService<EvaluateTemplate> {
     Page<EvaluateTemplatePageVo> getPage(Page<EvaluateTemplatePageDto> page, EvaluateTemplatePageDto dto);
+
+    Boolean saveCustom(AddEvaluateTemplateDto dto);
 }

+ 28 - 2
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateManageServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.evaluate.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -19,7 +20,9 @@ import com.xjrsoft.module.evaluate.mapper.EvaluateManageItemMapper;
 import com.xjrsoft.module.evaluate.mapper.EvaluateManageMapper;
 import com.xjrsoft.module.evaluate.mapper.EvaluateObjectMapper;
 import com.xjrsoft.module.evaluate.service.IEvaluateManageService;
+import com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateManagePageVo;
+import com.xjrsoft.module.evaluate.vo.EvaluateManageScoreVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateWriteVo;
 import lombok.AllArgsConstructor;
@@ -104,12 +107,35 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
 
     @Override
     public Page<EvaluateWritePageVo> getMobilePage(Page<EvaluateWritePageDto> page, EvaluateWritePageDto dto) {
-        return null;
+        Page<EvaluateWritePageVo> mobilePage = evaluateManageMapper.getMobilePage(page, dto);
+        if(dto.getStatus() == 1){
+            List<EvaluateManageScoreVo> scoreList = evaluateManageMapper.getScoreList();
+            for (EvaluateWritePageVo record : mobilePage.getRecords()) {
+                for (EvaluateManageScoreVo evaluateManageScoreVo : scoreList) {
+                    if(!record.getId().equals(evaluateManageScoreVo.getEvaluateManageId())){
+                        continue;
+                    }
+                    record.setTotalScore(evaluateManageScoreVo.getScore());
+                }
+            }
+        }
+
+        return mobilePage;
     }
 
     @Override
     public EvaluateWriteVo getWriteInfo(Long id) {
-        return null;
+        return evaluateManageMapper.getWriteInfo(id);
+    }
+
+    @Override
+    public List<EvaluateManageItemVo> getItemList(Long id) {
+        return evaluateManageMapper.getItemList(id);
+    }
+
+    @Override
+    public List<EvaluateManageItemVo> getResultList(Long id) {
+        return evaluateManageMapper.getResultList(id, StpUtil.getLoginIdAsLong());
     }
 
 }

+ 41 - 0
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateResultServiceImpl.java

@@ -1,13 +1,24 @@
 package com.xjrsoft.module.evaluate.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.common.enums.EnabledMark;
 import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.base.mapper.BaseClassMapper;
+import com.xjrsoft.module.evaluate.dto.AddEvaluateResultDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateResultDetailPageDetailDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateResultDetailPageDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateResultIndexPageDto;
+import com.xjrsoft.module.evaluate.dto.EvaluateResultSaveDto;
 import com.xjrsoft.module.evaluate.dto.ResultViewingPageDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateExecuter;
 import com.xjrsoft.module.evaluate.entity.EvaluateManageItem;
@@ -182,4 +193,34 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
 //        }
         return resultViewingPageVoIPage;
     }
+
+    @Override
+    public String saveBatch(EvaluateResultSaveDto dto) {
+        Long loginUserId = StpUtil.getLoginIdAsLong();
+        Date createDate = new Date();
+        //修改答题人状态
+        EvaluateExecuter executer = evaluateExecuterMapper.selectOne(
+            new QueryWrapper<EvaluateExecuter>().lambda()
+            .eq(EvaluateExecuter::getUserId, loginUserId)
+            .eq(EvaluateExecuter::getEvaluateManageId, dto.getEvaluateManageId())
+        );
+        UpdateWrapper<EvaluateExecuter> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", executer.getId());
+        updateWrapper.setSql("status = 1");
+        evaluateExecuterMapper.update(executer, updateWrapper);
+
+        List<AddEvaluateResultDto> resultList = dto.getResultList();
+        for (AddEvaluateResultDto addEvaluateResultDto : resultList) {
+            EvaluateResult evaluateResult = BeanUtil.toBean(addEvaluateResultDto, EvaluateResult.class);
+            evaluateResult.setEvaluatedObject("teacher");
+            evaluateResult.setUserId(executer.getId());
+            evaluateResult.setEvaluatedObjectId(executer.getEvaluateObjectId());
+            evaluateResult.setDeleteMark(DeleteMark.NODELETE.getCode());
+            evaluateResult.setEnabledMark(EnabledMark.ENABLED.getCode());
+            evaluateResult.setCreateDate(createDate);
+            evaluateResultMapper.insert(evaluateResult);
+        }
+
+        return "ok";
+    }
 }

+ 19 - 0
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateTemplateServiceImpl.java

@@ -1,7 +1,11 @@
 package com.xjrsoft.module.evaluate.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import com.xjrsoft.module.evaluate.dto.AddEvaluateTemplateDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateTemplatePageDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateTemplate;
 import com.xjrsoft.module.evaluate.mapper.EvaluateTemplateMapper;
@@ -25,4 +29,19 @@ public class EvaluateTemplateServiceImpl extends MPJBaseServiceImpl<EvaluateTemp
     public Page<EvaluateTemplatePageVo> getPage(Page<EvaluateTemplatePageDto> page, EvaluateTemplatePageDto dto) {
         return evaluateTemplateMapper.getPage(page, dto);
     }
+
+    @Override
+    public Boolean saveCustom(AddEvaluateTemplateDto dto) {
+        EvaluateTemplate template = BeanUtil.toBean(dto, EvaluateTemplate.class);
+        String[] split = dto.getDeptIds().split(",");
+        JsonArray array = new JsonArray();
+        for (String orgId : split) {
+            JsonObject orgObj = new JsonObject();
+            orgObj.addProperty("org_id", orgId.trim());
+            array.add(orgObj);
+        }
+        template.setDeptIds(array.toString());
+        evaluateTemplateMapper.insert(template);
+        return true;
+    }
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateManageItemVo.java

@@ -50,7 +50,7 @@ public class EvaluateManageItemVo {
     /**
     * 输入框是否为空
     */
-    @ApiModelProperty("输入框是否为空")
+    @ApiModelProperty("输入框是否为空(1:是, 0:否)")
     private Integer inputNotNull;
     /**
      * 评价项编号

+ 25 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateManageScoreVo.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.evaluate.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 评价项表单出参
+* @Author szs
+* @Date: 2024-01-15
+* @Version 1.0
+*/
+@Data
+public class EvaluateManageScoreVo {
+
+    /**
+    * 评价管理编号
+    */
+    @ApiModelProperty("评价管理编号")
+    private String evaluateManageId;
+    /**
+    * 题目分数(最小为0,只能整数)
+    */
+    @ApiModelProperty("题目分数(最小为0,只能整数)")
+    private Integer score;
+}

+ 6 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateWritePageVo.java

@@ -44,4 +44,10 @@ public class EvaluateWritePageVo {
     @ApiModelProperty("题目数量")
     private Integer itemCount;
 
+
+    @ApiModelProperty("总分")
+    private Integer totalScore;
+
+    @ApiModelProperty("状态(-1:未发布,0:暂停,1:进行中,2:结束)")
+    private Integer status;
 }

+ 21 - 1
src/main/resources/mapper/evaluate/EvaluateManageMapper.xml

@@ -37,7 +37,7 @@
     </select>
 
     <select id="getMobilePage" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo">
-        select t2.id, t2.name,t4.name as evaluate_type_cn,t2.start_time,t2.end_time
+        select t2.id, t2.name,t4.name as evaluate_type_cn,t2.start_time,t2.end_time,t2.status
         from evaluate_executer t1
         left join evaluate_manage t2 on t2.id = t1.evaluate_manage_id
         left join evaluate_template t3 on t3.id = t2.evaluate_template_id
@@ -53,4 +53,24 @@
         where t1.delete_mark = 0
         and t1.status = #{id}
     </select>
+    <select id="getItemList" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo">
+        SELECT * FROM evaluate_manage_item WHERE delete_mark = 0 AND evaluate_manage_id = #{id} ORDER BY sort_code
+    </select>
+    <select id="getResultList" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo">
+        SELECT t1.id,t1.sort_code,t1.evaluate_manage_id,t1.topic,t1.problem,t1.score,t2.score AS actul_score,t2.opinion,t1.input_not_null FROM evaluate_manage_item t1
+        LEFT JOIN evaluate_result t2 ON t1.id = t2.evaluate_item_id
+        WHERE t1.delete_mark = 0
+        AND t2.delete_mark = 0
+        AND t1.evaluate_manage_id = #{id}
+        AND t2.user_id = #{userId}
+        ORDER BY t1.sort_code
+    </select>
+    <select id="getScoreList" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo">
+        select t2.evaluate_manage_id,sum(t1.score) from evaluate_result t1
+        left join evaluate_manage_item t2 on t1.evaluate_item_id = t2.id
+        left join evaluate_executer t3 on t1.user_id = t3.id
+        where t1.delete_mark = 0 and t2.delete_mark = 0 and t3.delete_mark = 0
+        group by t2.evaluate_manage_id
+    </select>
+
 </mapper>

+ 1 - 1
src/main/resources/sqlScript/20240112_sql.sql

@@ -59,7 +59,7 @@ CREATE TABLE evaluate_result
     `delete_mark` INT NOT NULL COMMENT '删除标记',
     `enabled_mark` INT NOT NULL COMMENT '有效标志',
     `evaluate_item_id` BIGINT NULL DEFAULT NULL COMMENT '评价项编号',
-    `user_id`  VARCHAR(200) NULL DEFAULT NULL COMMENT '参评人编号',
+    `user_id` BIGINT NULL DEFAULT NULL COMMENT '参评人编号',
     `evaluated_object` VARCHAR(30) NULL DEFAULT NULL COMMENT '被评对象(teacher:老师,class:班级,student:学生)',
     `evaluated_object_id` BIGINT NULL DEFAULT NULL COMMENT '被评对象编号',
     `score` INT NULL DEFAULT NULL COMMENT '评价分数',