Browse Source

教育培训任务代码提交

jingyuanchao 2 years ago
parent
commit
ba5e7cbe9d

+ 18 - 2
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/dto/CoreEduTrainingTaskPageDto.java

@@ -1,13 +1,17 @@
 package com.xunmei.common.core.domain.edu.dto;
 
-import com.xunmei.common.core.web.domain.BaseEntity;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.xunmei.common.core.web.domain.PageRequest;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 import java.util.Date;
 
 @Data
-public class CoreEduTrainingTaskPageDto extends BaseEntity {
+@EqualsAndHashCode(callSuper = true)
+public class CoreEduTrainingTaskPageDto extends PageRequest {
 
 
     @ApiModelProperty(value = "学习主题")
@@ -23,4 +27,16 @@ public class CoreEduTrainingTaskPageDto extends BaseEntity {
     @ApiModelProperty("任务时间范围")
     private Date[] range;
 
+    private Date startTime;
+
+    private Date endTime;
+
+
+    public CoreEduTrainingTaskPageDto() {
+        if (ObjectUtil.isNotEmpty(this.range)) {
+            this.startTime = DateUtil.beginOfDay(this.range[0]);
+            this.endTime = DateUtil.endOfDay(this.range[0]);
+        }
+    }
+
 }

+ 74 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/vo/CoreEduTrainingTaskDetailVo.java

@@ -0,0 +1,74 @@
+package com.xunmei.common.core.domain.edu.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTaskToUser;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class CoreEduTrainingTaskDetailVo {
+
+    private int no;
+
+    @JsonSerialize(using = com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "教育培训计划Id")
+    private Long planId;
+
+    @ApiModelProperty(value = "机构")
+    private Long orgId;
+
+    @ApiModelProperty(value = "机构名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "学习主题")
+    private String title;
+
+    /**
+     * @see com.xunmei.common.core.enums.edu.EduTrainingDoStatus
+     * 类型
+     */
+    @ApiModelProperty(value = "类型")
+    private Integer type;
+
+    @ApiModelProperty(value = "类型名称")
+    private String typeText;
+
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "开始日期")
+    private Date startDate;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "截止日期")
+    private Date endDate;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "培训时间")
+    private Date dateTime;
+
+
+    @TableField("content")
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+
+    @TableField("note")
+    @ApiModelProperty(value = "总结")
+    private String note;
+
+    @TableField("image_list")
+    @ApiModelProperty(value = "图片")
+    private String imageList;
+
+
+    @ApiModelProperty(value = "任务用户信息", notes = "1:参与人员,2:缺席人员")
+    private List<CoreEduTrainingTaskToUser> taskUserList;
+
+}

+ 63 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/vo/CoreEduTrainingTaskPageVo.java

@@ -1,7 +1,70 @@
 package com.xunmei.common.core.domain.edu.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
+
 @Data
 public class CoreEduTrainingTaskPageVo {
+
+    private int no;
+
+    @JsonSerialize(using = com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "教育培训计划Id")
+    private Long planId;
+
+    @ApiModelProperty(value = "机构")
+    private Long orgId;
+
+    @ApiModelProperty(value = "机构名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "学习主题")
+    private String title;
+
+    /**
+     * @see com.xunmei.common.core.enums.edu.EduTrainingDoStatus
+     * 类型
+     */
+    @ApiModelProperty(value = "类型")
+    private Integer type;
+
+    @ApiModelProperty(value = "类型名称")
+    private String typeText;
+
+    @ApiModelProperty(value = "主持人")
+    private Long hostId;
+
+    @ApiModelProperty(value = "主持人名称")
+    private Long hostName;
+
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "开始日期")
+    private Date startDate;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "截止日期")
+    private Date endDate;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "培训时间")
+    private Date dateTime;
+
+    /**
+     * @see com.xunmei.common.core.enums.edu.EduTrainingDoStatus
+     */
+    @ApiModelProperty(value = "状态")
+    private Integer status;
+
+    @ApiModelProperty(value = "状态名称")
+    private Integer statusText;
+
+    private String taskRoleNameList;
+
 }

+ 25 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/web/domain/PageRequest.java

@@ -0,0 +1,25 @@
+package com.xunmei.common.core.web.domain;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Data;
+
+@Data
+public class PageRequest {
+
+    private Long orgId;
+
+    private String orgPath;
+
+    private Boolean checkSub;
+
+    private int page = 0;
+
+    private int size = 10;
+
+    public <T> Page<T> getPageRequest() {
+        Page<T> mePage = new Page<>();
+        mePage.setCurrent(this.getPage());
+        mePage.setSize(this.getSize());
+        return mePage;
+    }
+}

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/mapper/CoreEduTrainingTaskMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask;
 import com.xunmei.common.core.domain.edu.dto.CoreEduTrainingTaskPageDto;
+import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskDetailVo;
 import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskPageVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -22,4 +23,5 @@ public interface CoreEduTrainingTaskMapper extends BaseMapper<CoreEduTrainingTas
 
     Page<CoreEduTrainingTaskPageVo> selectPageData(Page<CoreEduTrainingTaskPageVo> page, @Param("request") CoreEduTrainingTaskPageDto request);
 
+    CoreEduTrainingTaskDetailVo selectEduTrainingTaskDetail(@Param("id") Long id);
 }

+ 2 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/ICoreEduTrainingTaskService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask;
 import com.xunmei.common.core.domain.edu.dto.CoreEduTrainingTaskPageDto;
 import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingPlanDataVo;
+import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskDetailVo;
 import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskPageVo;
 import com.xunmei.common.core.web.page.TableDataInfo;
 
@@ -24,7 +25,7 @@ public interface ICoreEduTrainingTaskService extends IService<CoreEduTrainingTas
      * @param id 教育任务主键
      * @return 教育任务
      */
-    CoreEduTrainingTask selectCoreEduTrainingTaskById(Long id);
+    CoreEduTrainingTaskDetailVo selectCoreEduTrainingTaskById(Long id);
 
     /**
      * 查询教育任务列表

+ 33 - 7
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -1,7 +1,9 @@
 package com.xunmei.core.edu.service.impl;
 
+import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -9,17 +11,17 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
-import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlanToExecOrg;
-import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlanToRole;
-import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask;
-import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTaskToRole;
+import com.xunmei.common.core.domain.edu.domain.*;
 import com.xunmei.common.core.domain.edu.dto.CoreEduTrainingTaskPageDto;
 import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingPlanDataVo;
+import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskDetailVo;
 import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskPageVo;
 import com.xunmei.common.core.enums.edu.EduTrainingDoStatus;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.edu.mapper.CoreEduTrainingTaskMapper;
+import com.xunmei.core.edu.mapper.CoreEduTrainingTaskToRoleMapper;
+import com.xunmei.core.edu.mapper.CoreEduTrainingTaskToUserMapper;
 import com.xunmei.core.edu.service.ICoreEduTrainingTaskService;
 import com.xunmei.core.edu.service.ICoreEduTrainingTaskToRoleService;
 import com.xunmei.system.api.RemoteOrgService;
@@ -48,10 +50,31 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     private RemoteOrgService orgService;
     @Autowired
     private ICoreEduTrainingTaskToRoleService coreEduTrainingTaskToRoleService;
+    @Autowired
+    private CoreEduTrainingTaskToRoleMapper taskToRoleMapper;
+    @Autowired
+    private CoreEduTrainingTaskToUserMapper taskToUserMapper;
 
     @Override
     public TableDataInfo<CoreEduTrainingTaskPageVo> selectPage(CoreEduTrainingTaskPageDto request) {
-        IPage<CoreEduTrainingTaskPageVo> pageData = coreEduTrainingTaskMapper.selectPageData(request.getPage(), request);
+        if (Boolean.TRUE.equals(request.getCheckSub())) {
+            SysOrg org = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(request.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+            request.setOrgPath(org.getPath());
+        }
+        IPage<CoreEduTrainingTaskPageVo> pageData = coreEduTrainingTaskMapper.selectPageData(request.getPageRequest(), request);
+        if (ObjectUtil.isNotEmpty(pageData.getRecords())) {
+            List<Long> idList = pageData.getRecords().stream().map(CoreEduTrainingTaskPageVo::getId).collect(Collectors.toList());
+            List<CoreEduTrainingTaskToRole> roleList = taskToRoleMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingTaskToRole>()
+                    .in(CoreEduTrainingTaskToRole::getEduTrainingTaskId, idList));
+            Map<Long, List<CoreEduTrainingTaskToRole>> listMap = roleList.stream().collect(Collectors.groupingBy(CoreEduTrainingTaskToRole::getEduTrainingTaskId));
+            for (CoreEduTrainingTaskPageVo record : pageData.getRecords()) {
+                List<CoreEduTrainingTaskToRole> coreEduTrainingTaskToRoles = listMap.get(record.getId());
+                if (ObjectUtil.isEmpty(coreEduTrainingTaskToRoles)) {
+                    continue;
+                }
+                record.setTaskRoleNameList(coreEduTrainingTaskToRoles.stream().map(CoreEduTrainingTaskToRole::getRoleName).collect(Collectors.joining(",")));
+            }
+        }
         //抓换为TableDataInfo适配前端
         return TableDataInfo.build(pageData);
 
@@ -66,8 +89,11 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
      * @return 教育任务
      */
     @Override
-    public CoreEduTrainingTask selectCoreEduTrainingTaskById(Long id) {
-        return coreEduTrainingTaskMapper.selectById(id);
+    public CoreEduTrainingTaskDetailVo selectCoreEduTrainingTaskById(Long id) {
+        CoreEduTrainingTaskDetailVo detailVo = coreEduTrainingTaskMapper.selectEduTrainingTaskDetail(id);
+        List<CoreEduTrainingTaskToUser> userList = taskToUserMapper.selectByMap(MapUtil.of("plan_id", id));
+        detailVo.setTaskUserList(userList);
+        return detailVo;
     }
 
     /**

+ 43 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/edu/CoreEduTrainingTaskMapper.xml

@@ -63,5 +63,48 @@
     </select>
 
     <select id="selectPageData" resultType="com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskPageVo">
+        select t.id, plan_id, t.org_id, t.org_name, title, type, status, host_id,u.name as hostName,
+        start_date, end_date, date_time
+        from core_edu_training_task t inner join sys_user u on t.host_id=u.id
+        <where>
+            <choose>
+                <when test="request.checkSub==true">
+                    t.org_path like concat(#{request.orgPath}, '%')
+                </when>
+                <otherwise>
+                    t.org_id = #{request.orgId}
+                </otherwise>
+            </choose>
+            <if test="request.title!= null and request.title !=''">
+                and t.title like concat('%',#{request.title}, '%')
+            </if>
+            <if test="request.type!= null">
+                and t.type=#{request.type}
+            </if>
+            <if test="request.status != null">
+                and t.status=#{request.status}
+            </if>
+            <if test="request.startTime != null">
+                and t.date_time >=#{request.startTime}
+            </if>
+            <if test="request.endTime != null">
+                and t.date_time <![CDATA[<=]]> #{request.endTime}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectEduTrainingTaskDetail"
+            resultType="com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskDetailVo">
+        select t.id,
+               plan_id,
+               t.org_id,
+               t.org_name,
+               title,
+               type,
+               start_date,
+               end_date,
+               date_time
+        from core_edu_training_task t
+        where id = #{id}
     </select>
 </mapper>