浏览代码

Merge branch 'dev' of https://git.yingcaibx.com/tl/api into dev

brealinxx 1 年之前
父节点
当前提交
7895fc8362

+ 33 - 0
src/main/java/com/xjrsoft/module/liteflow/node/TeacherAwardNode.java

@@ -0,0 +1,33 @@
+package com.xjrsoft.module.liteflow.node;
+
+import cn.hutool.core.convert.Convert;
+import com.xjrsoft.module.student.service.IStudentLeaveService;
+import com.xjrsoft.module.teacher.service.ITeacherAwardItemService;
+import com.xjrsoft.module.teacher.service.ITeacherAwardService;
+import com.yomahub.liteflow.core.NodeComponent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 教师奖项登记
+ */
+@Component("teacher_award_node")
+public class TeacherAwardNode extends NodeComponent {
+
+    @Autowired
+    private ITeacherAwardService teacherAwardService;
+
+    @Override
+    public void process() throws Exception {
+        // 获取表单中数据编号
+        Map<String, Object> params = this.getFirstContextBean();
+        Object value = util.getFormDatKey(params,"id");
+        Long formId = Convert.toLong(value);
+        if (formId != null) {
+            // 数据处理
+            teacherAwardService.dataHandleAddTeacherAwardNode(formId);
+        }
+    }
+}

+ 6 - 43
src/main/java/com/xjrsoft/module/teacher/controller/TeacherAwardController.java

@@ -14,6 +14,7 @@ import com.xjrsoft.module.teacher.dto.TeacherAwardDetailPageDto;
 import com.xjrsoft.module.teacher.dto.TeacherAwardStatisticsPageDto;
 import com.xjrsoft.module.teacher.entity.TeacherAward;
 import com.xjrsoft.module.teacher.entity.TeacherAwardItem;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.teacher.service.ITeacherAwardItemService;
 import com.xjrsoft.module.teacher.service.ITeacherAwardService;
 import com.xjrsoft.module.teacher.vo.TeacherAwardDetailPageVo;
@@ -68,58 +69,20 @@ public class TeacherAwardController {
         teacherAwardMPJLambdaWrapper
                 .disableSubLogicDel()
                 .selectAs(TeacherAwardItem::getIsThesis, TeacherAwardDetailPageVo::getIsThesis)
+                .selectAs(XjrUser::getName, TeacherAwardDetailPageVo::getApplicantUserIdCn)
                 .select(TeacherAward.class,x -> VoToColumnUtil.fieldsToColumns(TeacherAwardDetailPageVo.class).contains(x.getProperty()))
                 .leftJoin(TeacherAwardItem.class, TeacherAwardItem::getId, TeacherAward::getTeacherAwardItemId)
+                .leftJoin(XjrUser.class, XjrUser::getId, TeacherAward::getApplicantUserId)
                 .eq(dto.getApplicantUserId() != null && dto.getApplicantUserId() > 0,TeacherAward::getApplicantUserId, dto.getApplicantUserId())
                 .eq(dto.getIsThesis() != null,TeacherAwardItem::getIsThesis, dto.getIsThesis())
-                .like(dto.getCompetitionName() != null && !dto.getCompetitionName().equals(""),TeacherAward::getCompetitionName, dto.getCompetitionName())
+                .like(dto.getApplicantUserIdCn() != null && dto.getApplicantUserIdCn().equals(""), XjrUser::getName, dto.getApplicantUserIdCn())
+                .like(dto.getWholeCompetitionName() != null && !dto.getWholeCompetitionName().equals(""),TeacherAward::getWholeCompetitionName, dto.getWholeCompetitionName())
+                .eq(TeacherAward::getStatus, 1)
                 .orderByDesc(TeacherAward::getCreateDate)
         ;
         IPage<TeacherAwardDetailPageVo> page = teacherAwardService.selectJoinListPage(ConventPage.getPage(dto), TeacherAwardDetailPageVo.class, teacherAwardMPJLambdaWrapper);
 
-        //处理父级
-        LambdaQueryWrapper<TeacherAwardItem> teacherAwardItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        teacherAwardItemLambdaQueryWrapper
-                .orderByDesc(TeacherAwardItem::getId)
-                .select(TeacherAwardItem.class,x -> VoToColumnUtil.fieldsToColumns(TeacherAwardItemPageVo.class).contains(x.getProperty()));
-        List<TeacherAwardItem> list = teacherAwardItemService.list(teacherAwardItemLambdaQueryWrapper);
-        List<TeacherAwardItemVo> itemVos = BeanUtil.copyToList(list, TeacherAwardItemVo.class);
-
-        for(TeacherAwardDetailPageVo t : page.getRecords()){
-            List<TeacherAwardItemVo> ancestors = findAncestors(itemVos, t.getTeacherAwardItemId());
-            StringBuilder sb = new StringBuilder();
-            for (int i = 0; i < ancestors.size(); i++) {
-                TeacherAwardItemVo teacherAwardItemVo = ancestors.get(i);
-                if(teacherAwardItemVo != null && teacherAwardItemVo.getName() != null && !teacherAwardItemVo.getName().equals("")){
-                    sb.insert(0, ">");
-                    sb.insert(0, teacherAwardItemVo.getName());
-                }
-            }
-            sb.deleteCharAt(sb.length() - 1);
-            t.setWholeCompetitionName(sb.toString());
-        }
-
         PageOutput<TeacherAwardDetailPageVo> pageOutput = ConventPage.getPageOutput(page, TeacherAwardDetailPageVo.class);
         return RT.ok(pageOutput);
-
-
-    }
-
-    private List<TeacherAwardItemVo> findAncestors(List<TeacherAwardItemVo> itemVos, Long targetId) {
-        List<TeacherAwardItemVo> ancestors = new ArrayList<>();
-        Map<Long, TeacherAwardItemVo> itemMap = itemVos.stream()
-                .collect(Collectors.toMap(TeacherAwardItemVo::getId, item -> item));
-        findAncestorsHelper(itemMap, targetId, ancestors);
-        return ancestors;
-    }
-
-    private void findAncestorsHelper(Map<Long, TeacherAwardItemVo> itemMap, Long targetId, List<TeacherAwardItemVo> ancestors) {
-        if (itemMap.get(targetId) != null) {
-            TeacherAwardItemVo teacherAwardItemVo = itemMap.get(targetId);
-            ancestors.add(teacherAwardItemVo);
-            if(teacherAwardItemVo.getParentId() != null && teacherAwardItemVo.getParentId() > 0){
-                findAncestorsHelper(itemMap, teacherAwardItemVo.getParentId(), ancestors);
-            }
-        }
     }
 }

+ 7 - 2
src/main/java/com/xjrsoft/module/teacher/dto/TeacherAwardDetailPageDto.java

@@ -20,11 +20,16 @@ public class TeacherAwardDetailPageDto extends PageInput {
      */
     @ApiModelProperty("申请人")
     private Long applicantUserId;
+    /**
+     * 申请人
+     */
+    @ApiModelProperty("申请人")
+    private String applicantUserIdCn;
     /**
      * 奖项名称
      */
-    @ApiModelProperty("奖项名称")
-    private String competitionName;
+    @ApiModelProperty("完整的奖项名称")
+    private String wholeCompetitionName;
     /**
      * 是否论文(1:是 0:否)
      */

+ 5 - 1
src/main/java/com/xjrsoft/module/teacher/entity/TeacherAward.java

@@ -169,5 +169,9 @@ public class TeacherAward implements Serializable {
     @ApiModelProperty("奖项id(teacher_award_item)")
     private Long teacherAwardItemId;
 
-
+    /**
+     * 奖项名称
+     */
+    @ApiModelProperty("完整的奖项名称")
+    private String wholeCompetitionName;
 }

+ 1 - 0
src/main/java/com/xjrsoft/module/teacher/service/ITeacherAwardItemService.java

@@ -17,4 +17,5 @@ import com.xjrsoft.module.teacher.vo.TeacherAwardStatisticsPageVo;
 public interface ITeacherAwardItemService extends MPJBaseService<TeacherAwardItem> {
 
     Page<TeacherAwardStatisticsPageVo> getStatisticsPage(Page<TeacherAwardStatisticsPageVo> page, TeacherAwardStatisticsPageDto dto);
+
 }

+ 7 - 0
src/main/java/com/xjrsoft/module/teacher/service/ITeacherAwardService.java

@@ -14,4 +14,11 @@ import java.util.List;
 */
 
 public interface ITeacherAwardService extends MPJBaseService<TeacherAward> {
+
+    /**
+     * 新增教师获奖规则
+     * @param dataId
+     * @return
+     */
+    Boolean dataHandleAddTeacherAwardNode(Long dataId);
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/teacher/service/impl/TeacherAwardItemServiceImpl.java

@@ -19,9 +19,12 @@ import org.springframework.stereotype.Service;
 @Service
 @AllArgsConstructor
 public class TeacherAwardItemServiceImpl extends MPJBaseServiceImpl<TeacherAwardItemMapper, TeacherAwardItem> implements ITeacherAwardItemService {
+
+
     @Override
     public Page<TeacherAwardStatisticsPageVo> getStatisticsPage(Page<TeacherAwardStatisticsPageVo> page, TeacherAwardStatisticsPageDto dto) {
 
         return this.baseMapper.getStatisticsPage(page, dto);
     }
+
 }

+ 67 - 3
src/main/java/com/xjrsoft/module/teacher/service/impl/TeacherAwardServiceImpl.java

@@ -1,17 +1,24 @@
 package com.xjrsoft.module.teacher.service.impl;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.teacher.entity.TeacherAward;
+import com.xjrsoft.module.teacher.entity.TeacherAwardItem;
+import com.xjrsoft.module.teacher.mapper.TeacherAwardItemMapper;
 import com.xjrsoft.module.teacher.mapper.TeacherAwardMapper;
 import com.xjrsoft.module.teacher.service.ITeacherAwardService;
+import com.xjrsoft.module.teacher.vo.TeacherAwardItemPageVo;
+import com.xjrsoft.module.teacher.vo.TeacherAwardItemVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
+import java.util.Map;
 import java.util.stream.Collectors;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 
 /**
 * @title: 教师获奖登记
@@ -22,4 +29,61 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 @Service
 @AllArgsConstructor
 public class TeacherAwardServiceImpl extends MPJBaseServiceImpl<TeacherAwardMapper, TeacherAward> implements ITeacherAwardService {
+
+    private final TeacherAwardMapper teacherAwardMapper;
+
+    private final TeacherAwardItemMapper teacherAwardItemMapper;
+    @Override
+    @Transactional
+    public Boolean dataHandleAddTeacherAwardNode(Long dataId) {
+        TeacherAward teacherAward = teacherAwardMapper.selectById(dataId);
+        if(teacherAward.getTeacherAwardItemId() == null){
+            return false;
+        }
+
+        //处理父级
+        LambdaQueryWrapper<TeacherAwardItem> teacherAwardItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        teacherAwardItemLambdaQueryWrapper
+                .orderByDesc(TeacherAwardItem::getId)
+                .select(TeacherAwardItem.class,x -> VoToColumnUtil.fieldsToColumns(TeacherAwardItemPageVo.class).contains(x.getProperty()));
+        List<TeacherAwardItem> list = teacherAwardItemMapper.selectList(teacherAwardItemLambdaQueryWrapper);
+        List<TeacherAwardItemVo> itemVos = BeanUtil.copyToList(list, TeacherAwardItemVo.class);
+
+        List<TeacherAwardItemVo> ancestors = findAncestors(itemVos, teacherAward.getTeacherAwardItemId());
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < ancestors.size(); i++) {
+            TeacherAwardItemVo teacherAwardItemVo = ancestors.get(i);
+            if(teacherAwardItemVo != null && teacherAwardItemVo.getName() != null && !teacherAwardItemVo.getName().equals("")){
+                sb.insert(0, ">");
+                sb.insert(0, teacherAwardItemVo.getName());
+            }
+        }
+        sb.deleteCharAt(sb.length() - 1);
+
+        TeacherAward updateTeacherAward = new TeacherAward();
+        updateTeacherAward.setId(teacherAward.getId());
+        updateTeacherAward.setStatus(1);
+        updateTeacherAward.setWholeCompetitionName(sb.toString());
+
+        return this.updateById(updateTeacherAward);
+    }
+
+    private List<TeacherAwardItemVo> findAncestors(List<TeacherAwardItemVo> itemVos, Long targetId) {
+        List<TeacherAwardItemVo> ancestors = new ArrayList<>();
+        Map<Long, TeacherAwardItemVo> itemMap = itemVos.stream()
+                .collect(Collectors.toMap(TeacherAwardItemVo::getId, item -> item));
+        findAncestorsHelper(itemMap, targetId, ancestors);
+        return ancestors;
+    }
+
+    private void findAncestorsHelper(Map<Long, TeacherAwardItemVo> itemMap, Long targetId, List<TeacherAwardItemVo> ancestors) {
+        if (itemMap.get(targetId) != null) {
+            TeacherAwardItemVo teacherAwardItemVo = itemMap.get(targetId);
+            ancestors.add(teacherAwardItemVo);
+            if(teacherAwardItemVo.getParentId() != null && teacherAwardItemVo.getParentId() > 0){
+                findAncestorsHelper(itemMap, teacherAwardItemVo.getParentId(), ancestors);
+            }
+        }
+    }
+
 }

+ 5 - 0
src/main/java/com/xjrsoft/module/teacher/vo/TeacherAwardDetailPageVo.java

@@ -25,6 +25,11 @@ public class TeacherAwardDetailPageVo {
      */
     @ApiModelProperty("申请人")
     private Long applicantUserId;
+    /**
+     * 申请人
+     */
+    @ApiModelProperty("申请人")
+    private String applicantUserIdCn;
     /**
      * 获奖类型
      */

+ 18 - 0
src/test/java/com/xjrsoft/module/teacher/service/impl/TeacherAwardServiceImplTest.java

@@ -0,0 +1,18 @@
+package com.xjrsoft.module.teacher.service.impl;
+
+import com.xjrsoft.module.room.service.IWfRoomApplicantService;
+import com.xjrsoft.module.teacher.service.ITeacherAwardService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import static org.junit.jupiter.api.Assertions.*;
+@SpringBootTest
+class TeacherAwardServiceImplTest {
+    @Autowired
+    private ITeacherAwardService teacherAwardService;
+    @Test
+    void dataHandleAddTeacherAwardNode() {
+        teacherAwardService.dataHandleAddTeacherAwardNode(1798628061766270976L);
+    }
+}