Browse Source

evaluate/object-grade-list 评价对象根据年级分组的列表(已生成数据)

phoenix 1 year ago
parent
commit
4250022861
18 changed files with 336 additions and 206 deletions
  1. 12 7
      src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateObjectController.java
  2. 26 3
      src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateTemplateController.java
  3. 1 7
      src/main/java/com/xjrsoft/module/evaluate/dto/AddEvaluateTemplateDto.java
  4. 18 0
      src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateObjectGradeListDto.java
  5. 8 0
      src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateObjectListDto.java
  6. 2 4
      src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateObjectMapper.java
  7. 5 1
      src/main/java/com/xjrsoft/module/evaluate/service/IEvaluateObjectService.java
  8. 27 24
      src/main/java/com/xjrsoft/module/evaluate/service/IEvaluateTemplateService.java
  9. 3 1
      src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateItemServiceImpl.java
  10. 35 7
      src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateObjectServiceImpl.java
  11. 123 89
      src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateTemplateServiceImpl.java
  12. 39 0
      src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateObjectGradeListVo.java
  13. 0 51
      src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateTemplatePageVo.java
  14. 5 6
      src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateTemplateVo.java
  15. 1 1
      src/main/resources/mapper/evaluate/EvaluateManageMapper.xml
  16. 21 4
      src/main/resources/mapper/evaluate/EvaluateObjectMapper.xml
  17. 1 1
      src/main/resources/mapper/evaluate/EvaluateTemplateMapper.xml
  18. 9 0
      src/test/java/com/xjrsoft/xjrsoftboot/StrTest.java

+ 12 - 7
src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateObjectController.java

@@ -2,19 +2,16 @@ package com.xjrsoft.module.evaluate.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.xjrsoft.common.model.result.RT;
-import com.xjrsoft.module.evaluate.dto.AddEvaluateObjectDto;
+import com.xjrsoft.module.evaluate.dto.EvaluateObjectGradeListDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateObjectListDto;
 import com.xjrsoft.module.evaluate.dto.SaveEvaluateObjectDto;
 import com.xjrsoft.module.evaluate.service.IEvaluateObjectService;
+import com.xjrsoft.module.evaluate.vo.EvaluateObjectGradeListVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateObjectListVo;
 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.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -38,7 +35,15 @@ public class EvaluateObjectController {
     @ApiOperation(value="评价对象列表(已生成数据)")
     @SaCheckPermission("evaluateobject:detail")
     public RT<List<EvaluateObjectListVo>> objectList(@Valid EvaluateObjectListDto dto){
-        List<EvaluateObjectListVo> list = evaluateObjectService.getObjectList(dto.getEvaluateManageId());
+        List<EvaluateObjectListVo> list = evaluateObjectService.getObjectList(dto);
+        return RT.ok(list);
+    }
+
+    @GetMapping(value = "/object-grade-list")
+    @ApiOperation(value="评价对象根据年级分组的列表(已生成数据)")
+    @SaCheckPermission("evaluateobject:detail")
+    public RT<List<EvaluateObjectGradeListVo>> objectGradeList(@Valid EvaluateObjectGradeListDto dto){
+        List<EvaluateObjectGradeListVo> list = evaluateObjectService.getObjectGradeList(dto);
         return RT.ok(list);
     }
 

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

@@ -1,9 +1,11 @@
 package com.xjrsoft.module.evaluate.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.support.ExcelTypeEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
@@ -25,6 +27,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.validation.Valid;
 import java.io.ByteArrayOutputStream;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -55,11 +58,11 @@ public class EvaluateTemplateController {
     @ApiOperation(value="根据id查询评价模版信息")
     @SaCheckPermission("evaluatetemplate:detail")
     public RT<EvaluateTemplateVo> info(@RequestParam Long id){
-        EvaluateTemplate evaluateTemplate = evaluateTemplateService.getById(id);
-        if (evaluateTemplate == null) {
+        EvaluateTemplateVo evaluateTemplateVo = evaluateTemplateService.getInfo(id);
+        if (evaluateTemplateVo == null) {
            return RT.error("找不到此数据!");
         }
-        return RT.ok(BeanUtil.toBean(evaluateTemplate, EvaluateTemplateVo.class));
+        return RT.ok(evaluateTemplateVo);
     }
 
 
@@ -68,9 +71,27 @@ public class EvaluateTemplateController {
     @SaCheckPermission("evaluatetemplate:add")
     public RT<Boolean> add(@Valid @RequestBody AddEvaluateTemplateDto dto){
         //处理入参中的deptIds
+        //如果传过来的字符串中含有0(通用),其他的可以不需要了
+        if(dto.getDeptIds() != null && !dto.getDeptIds().equals("")){
+            String[] deptIdStrArr = dto.getDeptIds().split(",");
+            for (String  deptIdStr: deptIdStrArr) {
+                if(deptIdStr.equals("0")){
+                    dto.setDeptIds("0");
+                    break;
+                }
+            }
+        }
+        //加上中括号
         String deptIds = "[" + dto.getDeptIds() + "]";
         dto.setDeptIds(deptIds);
+
         EvaluateTemplate evaluateTemplate = BeanUtil.toBean(dto, EvaluateTemplate.class);
+        evaluateTemplate.setCreateDate(new Date());
+        QueryWrapper<EvaluateTemplate> queryWrapperSortcode = new QueryWrapper<>();
+        queryWrapperSortcode.select("IFNULL(MAX(sort_code),0) as sortCode");
+        EvaluateTemplate e = evaluateTemplateService.getOne(queryWrapperSortcode);
+        evaluateTemplate.setSortCode(e.getSortCode() + 1);
+        evaluateTemplate.setStatus(1);
         boolean isSuccess = evaluateTemplateService.save(evaluateTemplate);
         return RT.ok(isSuccess);
     }
@@ -82,6 +103,8 @@ public class EvaluateTemplateController {
         String deptIds = "[" + dto.getDeptIds() + "]";
         dto.setDeptIds(deptIds);
         EvaluateTemplate evaluateTemplate = BeanUtil.toBean(dto, EvaluateTemplate.class);
+        evaluateTemplate.setModifyDate(new Date());
+        evaluateTemplate.setModifyUserId(StpUtil.getLoginIdAsLong());
         return RT.ok(evaluateTemplateService.updateById(evaluateTemplate));
 
     }

+ 1 - 7
src/main/java/com/xjrsoft/module/evaluate/dto/AddEvaluateTemplateDto.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;
 
 
 

+ 18 - 0
src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateObjectGradeListDto.java

@@ -0,0 +1,18 @@
+package com.xjrsoft.module.evaluate.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+* @title: 评价管理查询总人数入参
+* @Author dzx
+* @Date: 2024-01-16
+* @Version 1.0
+*/
+@Data
+public class EvaluateObjectGradeListDto{
+
+    @ApiModelProperty(value = "评价管理id", required = true)
+    private Long evaluateManageId;
+}

+ 8 - 0
src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateObjectListDto.java

@@ -24,4 +24,12 @@ public class EvaluateObjectListDto implements Serializable {
     @ApiModelProperty("年级id,添加时传入使用")
     private Long gradeId;
 
+    @ApiModelProperty("班级id")
+    private Long classId;
+
+    @ApiModelProperty("部门id")
+    private Long deptId;
+
+    @ApiModelProperty("姓名")
+    private String name;
 }

+ 2 - 4
src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateObjectMapper.java

@@ -5,7 +5,6 @@ import com.xjrsoft.module.evaluate.dto.EvaluateObjectListDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateObject;
 import com.xjrsoft.module.evaluate.vo.EvaluateExecuterVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateObjectListVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateObjectVo;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -20,10 +19,9 @@ import java.util.List;
 */
 @Mapper
 public interface EvaluateObjectMapper extends MPJBaseMapper<EvaluateObject> {
-    List<EvaluateObjectListVo> getObjectList(Long id);
-
-    List<EvaluateExecuterVo> getExecuterList(Long id);
+    List<EvaluateObjectListVo> getObjectList(@Param("dto")EvaluateObjectListDto dto);
 
+    List<EvaluateExecuterVo> getExecuterList(@Param("dto")EvaluateObjectListDto dto);
 
     List<EvaluateObjectListVo> getNewObjectList(@Param("dto") EvaluateObjectListDto dto);
 

+ 5 - 1
src/main/java/com/xjrsoft/module/evaluate/service/IEvaluateObjectService.java

@@ -1,9 +1,11 @@
 package com.xjrsoft.module.evaluate.service;
 
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.evaluate.dto.EvaluateObjectGradeListDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateObjectListDto;
 import com.xjrsoft.module.evaluate.dto.SaveEvaluateObjectDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateObject;
+import com.xjrsoft.module.evaluate.vo.EvaluateObjectGradeListVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateObjectListVo;
 
 import java.util.List;
@@ -17,7 +19,9 @@ import java.util.List;
 
 public interface IEvaluateObjectService extends MPJBaseService<EvaluateObject> {
 
-    List<EvaluateObjectListVo> getObjectList(Long id);
+    List<EvaluateObjectListVo> getObjectList(EvaluateObjectListDto dto);
+
+    List<EvaluateObjectGradeListVo> getObjectGradeList(EvaluateObjectGradeListDto dto);
 
     Boolean save(SaveEvaluateObjectDto dto);
 

+ 27 - 24
src/main/java/com/xjrsoft/module/evaluate/service/IEvaluateTemplateService.java

@@ -1,24 +1,27 @@
-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.dto.UpdateEvaluateTemplateStatusDto;
-import com.xjrsoft.module.evaluate.entity.EvaluateTemplate;
-import com.xjrsoft.module.evaluate.dto.EvaluateTemplatePageDto;
-import com.xjrsoft.module.evaluate.vo.EvaluateTemplatePageVo;
-
-/**
-* @title: 评价模版
-* @Author szs
-* @Date: 2024-01-15
-* @Version 1.0
-*/
-
-public interface IEvaluateTemplateService extends MPJBaseService<EvaluateTemplate> {
-    Page<EvaluateTemplatePageVo> getPage(Page<EvaluateTemplatePageDto> page, EvaluateTemplatePageDto dto);
-
-    Boolean saveCustom(AddEvaluateTemplateDto dto);
-
-    Boolean changeStatus(UpdateEvaluateTemplateStatusDto dto);
-}
+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.dto.UpdateEvaluateTemplateStatusDto;
+import com.xjrsoft.module.evaluate.entity.EvaluateTemplate;
+import com.xjrsoft.module.evaluate.dto.EvaluateTemplatePageDto;
+import com.xjrsoft.module.evaluate.vo.EvaluateTemplatePageVo;
+import com.xjrsoft.module.evaluate.vo.EvaluateTemplateVo;
+
+/**
+* @title: 评价模版
+* @Author szs
+* @Date: 2024-01-15
+* @Version 1.0
+*/
+
+public interface IEvaluateTemplateService extends MPJBaseService<EvaluateTemplate> {
+    Page<EvaluateTemplatePageVo> getPage(Page<EvaluateTemplatePageDto> page, EvaluateTemplatePageDto dto);
+
+    EvaluateTemplateVo getInfo(Long id);
+
+    Boolean saveCustom(AddEvaluateTemplateDto dto);
+
+    Boolean changeStatus(UpdateEvaluateTemplateStatusDto dto);
+}

+ 3 - 1
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateItemServiceImpl.java

@@ -60,6 +60,7 @@ public class EvaluateItemServiceImpl extends MPJBaseServiceImpl<EvaluateItemMapp
             return makeEvaluateItemVo;
         }
 
+
         List<String> deptIdList = new ArrayList<>();
         try {
             ObjectMapper objectMapper = new ObjectMapper();
@@ -67,6 +68,7 @@ public class EvaluateItemServiceImpl extends MPJBaseServiceImpl<EvaluateItemMapp
         }catch (Exception e){
         }
         if(deptIdList != null && deptIdList.size() > 0 && !deptIdList.get(0).equals("0")){
+            String deptIdStr = String.join(",", deptIdList);
             LambdaQueryWrapper<Department> departmentLambdaQueryWrapper = new LambdaQueryWrapper<>();
             departmentLambdaQueryWrapper
                     .in(Department::getId, deptIdList);
@@ -79,7 +81,7 @@ public class EvaluateItemServiceImpl extends MPJBaseServiceImpl<EvaluateItemMapp
                     deptStr.append(",");
                 }
             }
-
+            makeEvaluateItemVo.setDeptIds("[" + deptIdStr +"]");
             makeEvaluateItemVo.setDeptIdsCN(deptStr.toString());
         }
 

+ 35 - 7
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateObjectServiceImpl.java

@@ -2,13 +2,12 @@ package com.xjrsoft.module.evaluate.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
 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.exception.MyException;
-import com.xjrsoft.module.evaluate.dto.AddEvaluateExecuterDto;
-import com.xjrsoft.module.evaluate.dto.AddEvaluateObjectDto;
-import com.xjrsoft.module.evaluate.dto.EvaluateObjectListDto;
-import com.xjrsoft.module.evaluate.dto.SaveEvaluateObjectDto;
+import com.xjrsoft.module.base.entity.BaseGrade;
+import com.xjrsoft.module.evaluate.dto.*;
 import com.xjrsoft.module.evaluate.entity.EvaluateExecuter;
 import com.xjrsoft.module.evaluate.entity.EvaluateManage;
 import com.xjrsoft.module.evaluate.entity.EvaluateObject;
@@ -17,6 +16,7 @@ import com.xjrsoft.module.evaluate.mapper.EvaluateManageMapper;
 import com.xjrsoft.module.evaluate.mapper.EvaluateObjectMapper;
 import com.xjrsoft.module.evaluate.service.IEvaluateObjectService;
 import com.xjrsoft.module.evaluate.vo.EvaluateExecuterVo;
+import com.xjrsoft.module.evaluate.vo.EvaluateObjectGradeListVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateObjectListVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -42,9 +42,9 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
 
 
     @Override
-    public List<EvaluateObjectListVo> getObjectList(Long id) {
-        List<EvaluateObjectListVo> objectList = evaluateObjectMapper.getObjectList(id);
-        List<EvaluateExecuterVo> allExecuterList = evaluateObjectMapper.getExecuterList(id);
+    public List<EvaluateObjectListVo> getObjectList(EvaluateObjectListDto dto) {
+        List<EvaluateObjectListVo> objectList = evaluateObjectMapper.getObjectList(dto);
+        List<EvaluateExecuterVo> allExecuterList = evaluateObjectMapper.getExecuterList(dto);
         for (EvaluateObjectListVo objectVo : objectList) {
             List<EvaluateExecuterVo> executerList = new ArrayList<>();
             for (EvaluateExecuterVo executerVo : allExecuterList) {
@@ -59,6 +59,34 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
         return objectList;
     }
 
+    @Override
+    public List<EvaluateObjectGradeListVo> getObjectGradeList(EvaluateObjectGradeListDto dto) {
+        /*SELECT
+            count(t1.id),
+            t1.base_grade_id,
+            t2.name,
+            count(t4.id)
+        FROM evaluate_object t1
+                 LEFT JOIN base_grade t2 ON t2.id = t1.base_grade_id
+                 LEFT JOIN evaluate_executer t4 ON t4.evaluate_object_id = t1.id
+        WHERE t1.delete_mark = 0 and t1.evaluate_manage_id = 1747177686090969089
+        group by t1.base_grade_id;*/
+        MPJLambdaWrapper<EvaluateObject> evaluateObjectMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        evaluateObjectMPJLambdaWrapper
+                .selectAs(EvaluateObject::getEvaluateManageId, EvaluateObjectGradeListVo::getEvaluateManageId)
+                .select("count(distinct t.id) as objectCount")
+                .selectAs(EvaluateObject::getBaseGradeId, EvaluateObjectGradeListVo::getGradeId)
+                .selectAs(BaseGrade::getName, EvaluateObjectGradeListVo::getGradeName)
+                .selectCount(EvaluateExecuter::getId, EvaluateObjectGradeListVo::getExecuterCount)
+                .leftJoin(BaseGrade.class, BaseGrade::getId, EvaluateObject::getBaseGradeId)
+                .leftJoin(EvaluateExecuter.class, EvaluateExecuter::getEvaluateObjectId, EvaluateObject::getId)
+                .eq(EvaluateObject::getEvaluateManageId, dto.getEvaluateManageId())
+                .groupBy(EvaluateObject::getBaseGradeId)
+                .disableSubLogicDel();
+
+        return this.selectJoinList(EvaluateObjectGradeListVo.class, evaluateObjectMPJLambdaWrapper);
+    }
+
     @Override
     public Boolean save(SaveEvaluateObjectDto dto) {
         EvaluateManage manage = evaluateManageMapper.selectById(dto.getEvaluateManageId());

+ 123 - 89
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateTemplateServiceImpl.java

@@ -1,89 +1,123 @@
-package com.xjrsoft.module.evaluate.service.impl;
-
-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.extension.plugins.pagination.Page;
-import com.github.yulichang.base.MPJBaseServiceImpl;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import com.xjrsoft.common.enums.DeleteMark;
-import com.xjrsoft.module.evaluate.dto.AddEvaluateTemplateDto;
-import com.xjrsoft.module.evaluate.dto.EvaluateTemplatePageDto;
-import com.xjrsoft.module.evaluate.dto.UpdateEvaluateTemplateStatusDto;
-import com.xjrsoft.module.evaluate.entity.EvaluateTemplate;
-import com.xjrsoft.module.evaluate.mapper.EvaluateTemplateMapper;
-import com.xjrsoft.module.evaluate.service.IEvaluateTemplateService;
-import com.xjrsoft.module.evaluate.vo.EvaluateTemplatePageVo;
-import com.xjrsoft.module.organization.entity.Department;
-import com.xjrsoft.module.organization.mapper.DepartmentMapper;
-import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
-* @title: 评价模版
-* @Author szs
-* @Date: 2024-01-15
-* @Version 1.0
-*/
-@Service
-@AllArgsConstructor
-public class EvaluateTemplateServiceImpl extends MPJBaseServiceImpl<EvaluateTemplateMapper, EvaluateTemplate> implements IEvaluateTemplateService {
-    private final EvaluateTemplateMapper evaluateTemplateMapper;
-    private final DepartmentMapper departmentMapper;
-
-    @Override
-    public Page<EvaluateTemplatePageVo> getPage(Page<EvaluateTemplatePageDto> page, EvaluateTemplatePageDto dto) {
-        Page<EvaluateTemplatePageVo> voPage = evaluateTemplateMapper.getPage(page, dto);
-        List<Department> departments = departmentMapper.selectList(
-                new QueryWrapper<Department>().lambda().eq(Department::getDeleteMark, DeleteMark.NODELETE.getCode())
-        );
-        Map<String, String> departmentMap = new HashMap<>();
-        for (Department department : departments) {
-            departmentMap.put(department.getId().toString(), department.getName());
-        }
-
-        for (EvaluateTemplatePageVo record : voPage.getRecords()) {
-            String[] deptIds = record.getDeptIds().replaceAll("\\[", "").replaceAll("]", "").replaceAll(" ", "").split(",");
-            String deptName = "";
-            for (int i = 0; i < deptIds.length; i ++){
-                if(i > 0){
-                    deptName += ",";
-                }
-                deptName += departmentMap.get(deptIds[i]);
-            }
-            record.setDeptNames(deptName);
-        }
-        return voPage;
-    }
-
-    @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;
-
-    }
-
-    @Override
-    public Boolean changeStatus(UpdateEvaluateTemplateStatusDto dto) {
-        EvaluateTemplate evaluateTemplate = evaluateTemplateMapper.selectById(dto.getId());
-        UpdateWrapper<EvaluateTemplate> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("id", evaluateTemplate.getId());
-        updateWrapper.setSql("status = "  + dto.getStatus());
-        evaluateTemplateMapper.update(evaluateTemplate, updateWrapper);
-        return true;
-    }
-}
+package com.xjrsoft.module.evaluate.service.impl;
+
+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.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.module.evaluate.dto.AddEvaluateTemplateDto;
+import com.xjrsoft.module.evaluate.dto.EvaluateTemplatePageDto;
+import com.xjrsoft.module.evaluate.dto.UpdateEvaluateTemplateStatusDto;
+import com.xjrsoft.module.evaluate.entity.EvaluateTemplate;
+import com.xjrsoft.module.evaluate.mapper.EvaluateTemplateMapper;
+import com.xjrsoft.module.evaluate.service.IEvaluateTemplateService;
+import com.xjrsoft.module.evaluate.vo.EvaluateTemplatePageVo;
+import com.xjrsoft.module.evaluate.vo.EvaluateTemplateVo;
+import com.xjrsoft.module.organization.entity.Department;
+import com.xjrsoft.module.organization.mapper.DepartmentMapper;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 评价模版
+* @Author szs
+* @Date: 2024-01-15
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class EvaluateTemplateServiceImpl extends MPJBaseServiceImpl<EvaluateTemplateMapper, EvaluateTemplate> implements IEvaluateTemplateService {
+    private final EvaluateTemplateMapper evaluateTemplateMapper;
+    private final DepartmentMapper departmentMapper;
+
+    @Override
+    public Page<EvaluateTemplatePageVo> getPage(Page<EvaluateTemplatePageDto> page, EvaluateTemplatePageDto dto) {
+        Page<EvaluateTemplatePageVo> voPage = evaluateTemplateMapper.getPage(page, dto);
+        List<Department> departments = departmentMapper.selectList(
+                new QueryWrapper<Department>().lambda().eq(Department::getDeleteMark, DeleteMark.NODELETE.getCode())
+        );
+        Map<String, String> departmentMap = new HashMap<>();
+        for (Department department : departments) {
+            departmentMap.put(department.getId().toString(), department.getName());
+        }
+
+        for (EvaluateTemplatePageVo record : voPage.getRecords()) {
+            String[] deptIds = record.getDeptIds().replaceAll("\\[", "").replaceAll("]", "").replaceAll(" ", "").split(",");
+            StringBuilder deptIdSb = new StringBuilder();
+            StringBuilder deptName = new StringBuilder();
+            for (int i = 0; i < deptIds.length; i ++){
+                if(i > 0){
+                    deptName .append(",");
+                    deptIdSb.append(",");
+                }
+                deptName.append(departmentMap.get(deptIds[i]));
+                deptIdSb.append(deptIds[i]);
+            }
+            record.setDeptNames(deptName.toString());
+            record.setDeptIds("[" + deptIdSb.toString() + "]");
+        }
+        return voPage;
+    }
+
+    @Override
+    public EvaluateTemplateVo getInfo(Long id) {
+        EvaluateTemplate evaluateTemplate = this.getById(id);
+        EvaluateTemplateVo evaluateTemplateVo = BeanUtil.toBean(evaluateTemplate, EvaluateTemplateVo.class);
+        List<Department> departments = departmentMapper.selectList(
+                new QueryWrapper<Department>().lambda().eq(Department::getDeleteMark, DeleteMark.NODELETE.getCode())
+        );
+        Map<String, String> departmentMap = new HashMap<>();
+        for (Department department : departments) {
+            departmentMap.put(department.getId().toString(), department.getName());
+        }
+
+        String[] deptIds = evaluateTemplateVo.getDeptIds().replaceAll("\\[", "").replaceAll("]", "").replaceAll(" ", "").split(",");
+        StringBuilder deptIdSb = new StringBuilder();
+        StringBuilder deptName = new StringBuilder();
+        for (int i = 0; i < deptIds.length; i ++){
+            if(i > 0){
+                deptName .append(",");
+                deptIdSb.append(",");
+            }
+            deptName.append(departmentMap.get(deptIds[i]));
+            deptIdSb.append(deptIds[i]);
+        }
+
+        evaluateTemplateVo.setDeptNames(deptName.toString());
+        evaluateTemplateVo.setDeptIds("[" + deptIdSb.toString() + "]");
+        return evaluateTemplateVo;
+    }
+
+    @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;
+
+    }
+
+    @Override
+    public Boolean changeStatus(UpdateEvaluateTemplateStatusDto dto) {
+        EvaluateTemplate evaluateTemplate = evaluateTemplateMapper.selectById(dto.getId());
+        UpdateWrapper<EvaluateTemplate> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", evaluateTemplate.getId());
+        updateWrapper.setSql("status = "  + dto.getStatus());
+        evaluateTemplateMapper.update(evaluateTemplate, updateWrapper);
+        return true;
+    }
+}

+ 39 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateObjectGradeListVo.java

@@ -0,0 +1,39 @@
+package com.xjrsoft.module.evaluate.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 被评价对象表单出参
+* @Author dzx
+* @Date: 2024-01-16
+* @Version 1.0
+*/
+@Data
+public class EvaluateObjectGradeListVo {
+    /**
+     * 评价管理
+     */
+    @ApiModelProperty("评价管理id")
+    private Long evaluateManageId;
+    /**
+    * 年级id
+    */
+    @ApiModelProperty("年级id")
+    private Long gradeId;
+    /**
+     * 年级名称
+     */
+    @ApiModelProperty("年级名称")
+    private String gradeName;
+    /**
+    * 被评价对象数
+    */
+    @ApiModelProperty("被评价对象数")
+    private Integer objectCount;
+    /**
+    * 参与评价的人数
+    */
+    @ApiModelProperty("参与评价的人数")
+    private Integer executerCount;
+}

+ 0 - 51
src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateTemplatePageVo.java

@@ -1,19 +1,10 @@
 package com.xjrsoft.module.evaluate.vo;
 
 import com.alibaba.excel.annotation.ExcelProperty;
-import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.write.style.ContentStyle;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import com.xjrsoft.common.annotation.Trans;
-import com.xjrsoft.common.enums.TransType;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.Date;
-
 /**
 * @title: 评价模版分页列表出参
 * @Author szs
@@ -31,48 +22,6 @@ public class EvaluateTemplatePageVo {
     @ApiModelProperty("主键编号")
     private String id;
     /**
-    * 创建人
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("创建人")
-    @ApiModelProperty("创建人")
-    private Long createUserId;
-    /**
-    * 创建时间
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("创建时间")
-    @ApiModelProperty("创建时间")
-    private Date createDate;
-    /**
-    * 修改人
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("修改人")
-    @ApiModelProperty("修改人")
-    private Long modifyUserId;
-    /**
-    * 修改时间
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("修改时间")
-    @ApiModelProperty("修改时间")
-    private Date modifyDate;
-    /**
-    * 删除标记
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("删除标记")
-    @ApiModelProperty("删除标记")
-    private Integer deleteMark;
-    /**
-    * 有效标志
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("有效标志")
-    @ApiModelProperty("有效标志")
-    private Integer enabledMark;
-    /**
     * 序号
     */
     @ContentStyle(dataFormat = 49)

+ 5 - 6
src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateTemplateVo.java

@@ -3,12 +3,6 @@ package com.xjrsoft.module.evaluate.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Date;
-
 /**
 * @title: 评价模版表单出参
 * @Author szs
@@ -48,6 +42,11 @@ public class EvaluateTemplateVo {
     */
     @ApiModelProperty("使用部门ids")
     private String deptIds;
+    /**
+     * 使用部门ids
+     */
+    @ApiModelProperty("使用部门ids")
+    private String deptNames;
     /**
     * 备注
     */

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

@@ -51,7 +51,7 @@
         from evaluate_manage t1
         left join evaluate_template t2 on t2.id = t1.evaluate_template_id
         where t1.delete_mark = 0
-        and t1.status = #{id}
+        and t1.id = #{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

+ 21 - 4
src/main/resources/mapper/evaluate/EvaluateObjectMapper.xml

@@ -3,18 +3,35 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.evaluate.mapper.EvaluateObjectMapper">
-    <select id="getObjectList" resultType="com.xjrsoft.module.evaluate.vo.EvaluateObjectListVo">
+    <select id="getObjectList" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateObjectListDto"
+            resultType="com.xjrsoft.module.evaluate.vo.EvaluateObjectListVo">
         SELECT t1.id,t1.base_grade_id,t2.name AS grade_name,t1.object_id,t3.name AS object_name
         FROM evaluate_object t1
         LEFT JOIN base_grade t2 ON t2.id = t1.base_grade_id
         LEFT JOIN xjr_user t3 ON t3.id = t1.object_id
-        WHERE t1.delete_mark = 0 and t1.evaluate_manage_id = #{id}
+        LEFT JOIN xjr_user_dept_relation t4 ON t4.user_id = t1.object_id
+        LEFT JOIN base_class t5 ON t5.grade_id = t2.id
+        WHERE t1.delete_mark = 0 and t1.evaluate_manage_id = #{dto.evaluateManageId}
+        <if test="dto.gradeId != null and dto.gradeId > 0">
+            and t1.base_grade_id = #{dto.gradeId}
+        </if>
+        <if test="dto.deptId != null and dto.deptId > 0">
+            and t4.dept_id = #{dto.deptId}
+        </if>
+        <if test="dto.classId != null and dto.classId > 0">
+            and t5.id = #{dto.classId}
+        </if>
+        <if test="dto.name != null and dto.name != ''">
+            and t3.name like concat("%", #{dto.name}, "%")
+        </if>
         ORDER BY t1.id
     </select>
-    <select id="getExecuterList" resultType="com.xjrsoft.module.evaluate.vo.EvaluateExecuterVo">
+
+    <select id="getExecuterList" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateObjectListDto"
+            resultType="com.xjrsoft.module.evaluate.vo.EvaluateExecuterVo">
         SELECT t1.evaluate_object_id,t2.name AS executer_name,t1.id as executer_id FROM evaluate_executer t1
         LEFT JOIN xjr_user t2 ON t1.user_id = t2.id
-        WHERE t1.delete_mark = 0 and t1.evaluate_manage_id = #{id}
+        WHERE t1.delete_mark = 0 and t1.evaluate_manage_id = #{dto.evaluateManageId}
     </select>
 
     <select id="getNewObjectList" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateObjectListDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateObjectListVo">

+ 1 - 1
src/main/resources/mapper/evaluate/EvaluateTemplateMapper.xml

@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.evaluate.mapper.EvaluateTemplateMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateTemplatePageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateTemplatePageVo">
-        SELECT t.id, t.name,
+        SELECT t.id, t.name, t.sort_code,
         t2.name AS evaluate_type,
         t.dept_ids, t.total, t.remark, t.status
         FROM evaluate_template t

+ 9 - 0
src/test/java/com/xjrsoft/xjrsoftboot/StrTest.java

@@ -23,6 +23,15 @@ public class StrTest {
 
         System.out.println(StrUtil.format(f, "sdfsdf", "bbbbbb"));
     }
+    @Test
+    public void list2StrTest() {
+        List<String> list = new ArrayList();
+        String joined = String.join(",", list);
+
+    }
+
+
+
 
     @Test
     public void arrayTest() {