Quellcode durchsuchen

教育培训任务代码提交

jingyuanchao vor 2 Jahren
Ursprung
Commit
5aa423ac90

+ 5 - 15
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/domain/CoreEduTrainingTask.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.xunmei.common.core.enums.edu.EduTrainingDoStatus;
 import com.xunmei.common.core.web.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -55,16 +54,6 @@ public class CoreEduTrainingTask extends BaseEntity {
     private String orgPath;
 
 
-    @TableField("role_ids")
-    @ApiModelProperty(value = "岗位id集合")
-    private String roleIds;
-
-
-    @TableField("role_names")
-    @ApiModelProperty(value = "岗位名集合")
-    private String roleNames;
-
-
     @TableField("title")
     @ApiModelProperty(value = "学习主题")
     private String title;
@@ -98,9 +87,12 @@ public class CoreEduTrainingTask extends BaseEntity {
     @ApiModelProperty(value = "培训时间")
     private Date dateTime;
 
+    /**
+     * @see com.xunmei.common.core.enums.edu.EduTrainingDoStatus
+     */
     @TableField("status")
-    @ApiModelProperty(value = "时间")
-    private EduTrainingDoStatus status;
+    @ApiModelProperty(value = "状态")
+    private Integer status;
 
 
     @TableField("content")
@@ -140,8 +132,6 @@ public class CoreEduTrainingTask extends BaseEntity {
                 .append("startDate", getStartDate())
                 .append("endDate", getEndDate())
                 .append("content", getContent())
-                .append("roleIds", getRoleIds())
-                .append("roleNames", getRoleNames())
                 .append("title", getTitle())
                 .append("note", getNote())
                 .append("dateTime", getDateTime())

+ 1 - 2
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/domain/CoreEduTrainingTaskToRole.java

@@ -2,7 +2,6 @@ package com.xunmei.common.core.domain.edu.domain;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.xunmei.common.core.web.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -22,7 +21,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 @Accessors(chain = true)
 @TableName("core_edu_training_task_to_role")
 @ApiModel(value = "CoreEduTrainingTaskToRole对象", description = "教育培训任务角色关系")
-public class CoreEduTrainingTaskToRole extends BaseEntity {
+public class CoreEduTrainingTaskToRole {
     private static final long serialVersionUID = 1L;
 
     @TableField("edu_training_task_id")

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

@@ -0,0 +1,26 @@
+package com.xunmei.common.core.domain.edu.dto;
+
+import com.xunmei.common.core.web.domain.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CoreEduTrainingTaskPageDto extends BaseEntity {
+
+
+    @ApiModelProperty(value = "学习主题")
+    private String title;
+
+
+    @ApiModelProperty(value = "类型")
+    private Integer type;
+
+    @ApiModelProperty(value = "状态")
+    private Integer status;
+
+    @ApiModelProperty("任务时间范围")
+    private Date[] range;
+
+}

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

@@ -0,0 +1,7 @@
+package com.xunmei.common.core.domain.edu.vo;
+
+import lombok.Data;
+
+@Data
+public class CoreEduTrainingTaskPageVo {
+}

+ 3 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/controller/CoreEduTrainingTaskController.java

@@ -2,6 +2,8 @@ package com.xunmei.core.edu.controller;
 
 
 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.CoreEduTrainingTaskPageVo;
 import com.xunmei.common.core.web.controller.BaseController;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
@@ -33,7 +35,7 @@ public class CoreEduTrainingTaskController extends BaseController {
     @ApiOperation(value = "查询CoreEduTrainingTask列表")
     @RequiresPermissions("core:eduTask:list")
     @GetMapping("/list")
-    public TableDataInfo<CoreEduTrainingTask> list(CoreEduTrainingTask coreEduTrainingTask) {
+    public TableDataInfo<CoreEduTrainingTaskPageVo> list(CoreEduTrainingTaskPageDto coreEduTrainingTask) {
 
         return coreEduTrainingTaskService.selectPage(coreEduTrainingTask);
     }

+ 6 - 44
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/mapper/CoreEduTrainingTaskMapper.java

@@ -2,7 +2,11 @@ package com.xunmei.core.edu.mapper;
 
 
 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.CoreEduTrainingTaskPageVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -13,51 +17,9 @@ import java.util.List;
  * @date 2023-08-27
  */
 public interface CoreEduTrainingTaskMapper extends BaseMapper<CoreEduTrainingTask> {
-    /**
-     * 查询教育任务
-     *
-     * @param id 教育任务主键
-     * @return 教育任务
-     */
-    CoreEduTrainingTask selectCoreEduTrainingTaskById(Long id);
 
-    /**
-     * 查询教育任务列表
-     *
-     * @param coreEduTrainingTask 教育任务
-     * @return 教育任务集合
-     */
-    List<CoreEduTrainingTask> selectCoreEduTrainingTaskList(CoreEduTrainingTask coreEduTrainingTask);
+    Integer checkHasTaskIsDone(@Param("list") List<Long> list);
 
-    /**
-     * 新增教育任务
-     *
-     * @param coreEduTrainingTask 教育任务
-     * @return 结果
-     */
-    int insertCoreEduTrainingTask(CoreEduTrainingTask coreEduTrainingTask);
+    Page<CoreEduTrainingTaskPageVo> selectPageData(Page<CoreEduTrainingTaskPageVo> page, @Param("request") CoreEduTrainingTaskPageDto request);
 
-    /**
-     * 修改教育任务
-     *
-     * @param coreEduTrainingTask 教育任务
-     * @return 结果
-     */
-    int updateCoreEduTrainingTask(CoreEduTrainingTask coreEduTrainingTask);
-
-    /**
-     * 删除教育任务
-     *
-     * @param id 教育任务主键
-     * @return 结果
-     */
-    int deleteCoreEduTrainingTaskById(Long id);
-
-    /**
-     * 批量删除教育任务
-     *
-     * @param ids 需要删除的数据主键集合
-     * @return 结果
-     */
-    int deleteCoreEduTrainingTaskByIds(Long[] ids);
 }

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

@@ -3,7 +3,9 @@ package com.xunmei.core.edu.service;
 
 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.CoreEduTrainingTaskPageVo;
 import com.xunmei.common.core.web.page.TableDataInfo;
 
 import java.util.Date;
@@ -70,7 +72,7 @@ public interface ICoreEduTrainingTaskService extends IService<CoreEduTrainingTas
      * @param coreEduTrainingTask 查询条件对象
      * @return Page
      */
-    TableDataInfo<CoreEduTrainingTask> selectPage(CoreEduTrainingTask coreEduTrainingTask);
+    TableDataInfo<CoreEduTrainingTaskPageVo> selectPage(CoreEduTrainingTaskPageDto coreEduTrainingTask);
 
 
     void createTaskForNow(CoreEduTrainingPlanDataVo plan, Date start, Date end);

+ 16 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingPlanServiceImpl.java

@@ -27,9 +27,11 @@ import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.edu.mapper.CoreEduTrainingPlanMapper;
 import com.xunmei.core.edu.mapper.CoreEduTrainingPlanToExecOrgMapper;
 import com.xunmei.core.edu.mapper.CoreEduTrainingPlanToRoleMapper;
+import com.xunmei.core.edu.mapper.CoreEduTrainingTaskMapper;
 import com.xunmei.core.edu.service.ICoreEduTrainingPlanService;
 import com.xunmei.core.edu.service.ICoreEduTrainingPlanToExecOrgService;
 import com.xunmei.core.edu.service.ICoreEduTrainingPlanToRoleService;
+import com.xunmei.core.edu.service.ICoreEduTrainingTaskService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
@@ -67,6 +69,10 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
     @Autowired
     private CoreEduTrainingPlanToExecOrgMapper coreEduTrainingPlanToExecOrgMapper;
     @Autowired
+    private ICoreEduTrainingTaskService coreEduTrainingTaskService;
+    @Autowired
+    private CoreEduTrainingTaskMapper coreEduTrainingTaskMapper;
+    @Autowired
     private RemoteOrgService orgService;
 
     @Override
@@ -168,11 +174,12 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
             plan.setStandard(1);
             plan.setIssue(0);
         }
-
-
         int insert = coreEduTrainingPlanMapper.insert(plan);
-        if ((!checkOrgType(org.getType())) && (ObjectUtil.equal(0, plan.getPlanCycle()) || ObjectUtil.equal(0, plan.getBuildTaskNow()))) {
-            // TODO 生成任务
+
+        //如果不是省联社或者办事处,并且是无周期或者立即生效
+        if ((!checkOrgType(plan.getExecOrgType())) && (ObjectUtil.equal(0, plan.getPlanCycle()) || ObjectUtil.equal(0, plan.getBuildTaskNow()))) {
+            CoreEduTrainingPlanDataVo detailPlanData = coreEduTrainingPlanMapper.getDetailPlanData(plan.getId());
+            coreEduTrainingTaskService.createTaskForNow(detailPlanData, plan.getStartDate(), plan.getEndDate());
         }
 
         return insert;
@@ -252,6 +259,10 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int deleteCoreEduTrainingPlanByIds(Long[] ids) {
+        Integer count = coreEduTrainingTaskMapper.checkHasTaskIsDone(Arrays.asList(ids));
+        if (count != null && count > 0) {
+            throw new RuntimeException("已有任务完成,无法删除");
+        }
         return coreEduTrainingPlanMapper.deleteBatchIds(Arrays.asList((ids)));
     }
 
@@ -296,7 +307,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
     public void publishPlan(Long planId) {
         final CoreEduTrainingPlan plan = coreEduTrainingPlanMapper.selectById(planId);
         if (plan == null) {

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

@@ -3,8 +3,8 @@ package com.xunmei.core.edu.service.impl;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
@@ -12,22 +12,25 @@ 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.dto.CoreEduTrainingTaskPageDto;
 import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingPlanDataVo;
+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.service.ICoreEduTrainingTaskService;
+import com.xunmei.core.edu.service.ICoreEduTrainingTaskToRoleService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -43,31 +46,14 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     private CoreEduTrainingTaskMapper coreEduTrainingTaskMapper;
     @Autowired
     private RemoteOrgService orgService;
+    @Autowired
+    private ICoreEduTrainingTaskToRoleService coreEduTrainingTaskToRoleService;
 
     @Override
-    public TableDataInfo<CoreEduTrainingTask> selectPage(CoreEduTrainingTask coreEduTrainingTask) {
-        //未删除
-        Page<CoreEduTrainingTask> page;
-        //分页
-        if (coreEduTrainingTask.getPageNum() != null && coreEduTrainingTask.getPageSize() != null) {
-            page = new Page<>(coreEduTrainingTask.getPageNum(), coreEduTrainingTask.getPageSize());
-        } else {
-            page = new Page<>();
-        }
-        //查询条件
-        QueryWrapper<CoreEduTrainingTask> query = new QueryWrapper<>(coreEduTrainingTask);
-        //下穿
-        if (coreEduTrainingTask.getCheckSub()) {
-
-        }
-        //时间范围查询
-        if (coreEduTrainingTask.getParams().get("beginTime") != null && coreEduTrainingTask.getParams().get("endTime") != null) {
-            query.between("create_time", coreEduTrainingTask.getParams().get("beginTime"), coreEduTrainingTask.getParams().get("endTime"));
-        }
-        //获取数据
-        page = coreEduTrainingTaskMapper.selectPage(page, query);
+    public TableDataInfo<CoreEduTrainingTaskPageVo> selectPage(CoreEduTrainingTaskPageDto request) {
+        IPage<CoreEduTrainingTaskPageVo> pageData = coreEduTrainingTaskMapper.selectPageData(request.getPage(), request);
         //抓换为TableDataInfo适配前端
-        return TableDataInfo.build(page);
+        return TableDataInfo.build(pageData);
 
 
     }
@@ -142,6 +128,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
     public void createTaskForNow(CoreEduTrainingPlanDataVo plan, Date start, Date end) {
 
         //如果不是无周期的计划,那么需要查询出他的时间范围
@@ -159,37 +146,57 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
             List<Long> list = planExecOrgList.stream().map(CoreEduTrainingPlanToExecOrg::getOrgId).collect(Collectors.toList());
             orgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgByIdList(list, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
         }
+        Integer execTimes = plan.getExecTimes();
+        Map<Integer, DateRange> dateMap = DateUtils.splitDateRange(start, end, execTimes);
+        saveTaskAndRoleData(plan, start, end, orgList, dateMap);
+    }
+
+    private void saveTaskAndRoleData(CoreEduTrainingPlanDataVo plan, Date start, Date end, List<SysOrg> orgList, Map<Integer, DateRange> dateMap) {
         List<CoreEduTrainingPlanToRole> planRoleList = plan.getPlanRoleList();
-        String roleIds = planRoleList.stream().map(CoreEduTrainingPlanToRole::getRoleId).map(String::valueOf).collect(Collectors.joining(","));
-        String roleNames = planRoleList.stream().map(CoreEduTrainingPlanToRole::getRoleName).collect(Collectors.joining(","));
-        ArrayList<CoreEduTrainingTask> list = new ArrayList<>();
+        List<CoreEduTrainingTask> taskList = new ArrayList<>();
+        List<CoreEduTrainingTaskToRole> taskRoleList = new ArrayList<>();
         for (SysOrg org : orgList) {
-            CoreEduTrainingTask trainingTask = new CoreEduTrainingTask();
-            trainingTask.setId(IdWorker.getId());
-            trainingTask.setPlanId(plan.getId());
-            trainingTask.setPlanCycle(plan.getPlanCycle());
-            trainingTask.setStartDate(start);
-            trainingTask.setEndDate(end);
-            trainingTask.setContent(null);
-            trainingTask.setRoleIds(roleIds);
-            trainingTask.setRoleNames(roleNames);
-            trainingTask.setTitle(plan.getPlanName());
-            trainingTask.setNote(null);
-            trainingTask.setDateTime(null);
-            trainingTask.setHostId(null);
-            trainingTask.setFileList(ObjectUtil.isEmpty(plan.getFileList()) ? null : JSON.toJSONString(plan.getFileList()));
-            trainingTask.setImageList(null);
-            trainingTask.setOrgId(org.getId());
-            trainingTask.setType(null);
-            trainingTask.setOrgName(org.getName());
-            trainingTask.setOrgPath(org.getPath());
-            trainingTask.setStatus(EduTrainingDoStatus.UN_START);
-            trainingTask.setPdfUrl(null);
-            trainingTask.setCreateTime(new Date());
-            trainingTask.setUpdateTime(new Date());
+            for (Map.Entry<Integer, DateRange> entry : dateMap.entrySet()) {
+                Date startTime = entry.getValue().getStartTime();
+                Date endTime = entry.getValue().getEndTime();
+                CoreEduTrainingTask trainingTask = new CoreEduTrainingTask();
+                trainingTask.setId(IdWorker.getId());
+                trainingTask.setPlanId(plan.getId());
+                trainingTask.setPlanCycle(plan.getPlanCycle());
+                trainingTask.setStartDate(startTime);
+                trainingTask.setEndDate(endTime);
+                trainingTask.setContent(null);
+                trainingTask.setTitle(plan.getPlanName());
+                trainingTask.setNote(null);
+                trainingTask.setDateTime(null);
+                trainingTask.setHostId(null);
+                trainingTask.setFileList(ObjectUtil.isEmpty(plan.getFileList()) ? null : JSON.toJSONString(plan.getFileList()));
+                trainingTask.setImageList(null);
+                trainingTask.setOrgId(org.getId());
+                trainingTask.setType(null);
+                trainingTask.setOrgName(org.getName());
+                trainingTask.setOrgPath(org.getPath());
+                trainingTask.setStatus(EduTrainingDoStatus.UN_START.getCode());
+                trainingTask.setPdfUrl(null);
+                trainingTask.setCreateTime(new Date());
+                trainingTask.setUpdateTime(new Date());
+                taskList.add(trainingTask);
+                for (CoreEduTrainingPlanToRole planToRole : planRoleList) {
+                    CoreEduTrainingTaskToRole coreEduTrainingTaskToRole = new CoreEduTrainingTaskToRole();
+                    coreEduTrainingTaskToRole.setEduTrainingTaskId(trainingTask.getId());
+                    coreEduTrainingTaskToRole.setRoleId(planToRole.getRoleId());
+                    coreEduTrainingTaskToRole.setRoleName(planToRole.getRoleName());
+                    taskRoleList.add(coreEduTrainingTaskToRole);
+                }
+            }
+
+
+        }
+        if (ObjectUtil.isNotEmpty(taskList)) {
+            this.saveBatch(taskList);
         }
-        if (ObjectUtil.isNotEmpty(list)) {
-            this.saveBatch(list);
+        if (ObjectUtil.isNotEmpty(taskRoleList)) {
+            coreEduTrainingTaskToRoleService.saveBatch(taskRoleList);
         }
     }
 }

+ 27 - 400
soc-modules/soc-modules-core/src/main/resources/mapper/edu/CoreEduTrainingTaskMapper.xml

@@ -5,27 +5,22 @@
 <mapper namespace="com.xunmei.core.edu.mapper.CoreEduTrainingTaskMapper">
     <resultMap type="com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask" id="CoreEduTrainingTaskResult">
         <result property="id" column="id"/>
+        <result property="planCycle" column="plan_cycle"/>
         <result property="planId" column="plan_id"/>
-        <result property="roleId" column="role_id"/>
-        <result property="startDate" column="start_date"/>
-        <result property="endDate" column="end_date"/>
-        <result property="actualCount" column="actual_count"/>
-        <result property="content" column="content"/>
-        <result property="roleName" column="role_name"/>
-        <result property="roleIds" column="role_ids"/>
-        <result property="roleNames" column="role_names"/>
+        <result property="orgId" column="org_id"/>
+        <result property="orgName" column="org_name"/>
+        <result property="orgPath" column="org_path"/>
         <result property="title" column="title"/>
+        <result property="type" column="type"/>
+        <result property="status" column="status"/>
+        <result property="content" column="content"/>
         <result property="note" column="note"/>
-        <result property="dateTime" column="date_time"/>
-        <result property="dueCount" column="due_count"/>
         <result property="hostId" column="host_id"/>
+        <result property="startDate" column="start_date"/>
+        <result property="endDate" column="end_date"/>
+        <result property="dateTime" column="date_time"/>
         <result property="fileList" column="file_list"/>
         <result property="imageList" column="image_list"/>
-        <result property="orgId" column="org_id"/>
-        <result property="recorderId" column="recorder_id"/>
-        <result property="type" column="type"/>
-        <result property="orgName" column="org_name"/>
-        <result property="orgPath" column="org_path"/>
         <result property="pdfUrl" column="pdf_url"/>
         <result property="createBy" column="create_by"/>
         <result property="createTime" column="create_time"/>
@@ -35,27 +30,22 @@
 
     <sql id="selectCoreEduTrainingTaskVo">
         select id,
+               plan_cycle,
                plan_id,
-               role_id,
-               start_date,
-               end_date,
-               actual_count,
-               content,
-               role_name,
-               role_ids,
-               role_names,
+               org_id,
+               org_name,
+               org_path,
                title,
+               type,
+               status,
+               content,
                note,
-               date_time,
-               due_count,
                host_id,
+               start_date,
+               end_date,
+               date_time,
                file_list,
                image_list,
-               org_id,
-               recorder_id,
-               type,
-               org_name,
-               org_path,
                pdf_url,
                create_by,
                create_time,
@@ -64,377 +54,14 @@
         from core_edu_training_task
     </sql>
 
-    <select id="selectCoreEduTrainingTaskList"
-            parameterType="com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask"
-            resultMap="CoreEduTrainingTaskResult">
-        <include refid="selectCoreEduTrainingTaskVo"/>
-        <where>
-            <if test="planId != null ">
-                and plan_id = #{planId}
-            </if>
-            <if test="roleId != null ">
-                and role_id = #{roleId}
-            </if>
-            <if test="startDate != null ">
-                and start_date = #{startDate}
-            </if>
-            <if test="endDate != null ">
-                and end_date = #{endDate}
-            </if>
-            <if test="actualCount != null ">
-                and actual_count = #{actualCount}
-            </if>
-            <if test="content != null  and content != ''">
-                and content = #{content}
-            </if>
-            <if test="roleName != null  and roleName != ''">
-                and role_name like concat('%', #{roleName}, '%')
-            </if>
-            <if test="roleIds != null  and roleIds != ''">
-                and role_ids = #{roleIds}
-            </if>
-            <if test="roleNames != null  and roleNames != ''">
-                and role_names = #{roleNames}
-            </if>
-            <if test="title != null  and title != ''">
-                and title = #{title}
-            </if>
-            <if test="note != null  and note != ''">
-                and note = #{note}
-            </if>
-            <if test="dateTime != null ">
-                and date_time = #{dateTime}
-            </if>
-            <if test="dueCount != null ">
-                and due_count = #{dueCount}
-            </if>
-            <if test="hostId != null ">
-                and host_id = #{hostId}
-            </if>
-            <if test="fileList != null  and fileList != ''">
-                and file_list = #{fileList}
-            </if>
-            <if test="imageList != null  and imageList != ''">
-                and image_list = #{imageList}
-            </if>
-            <if test="orgId != null ">
-                and org_id = #{orgId}
-            </if>
-            <if test="recorderId != null ">
-                and recorder_id = #{recorderId}
-            </if>
-            <if test="type != null ">
-                and type = #{type}
-            </if>
-            <if test="orgName != null  and orgName != ''">
-                and org_name like concat('%', #{orgName}, '%')
-            </if>
-            <if test="orgPath != null  and orgPath != ''">
-                and org_path = #{orgPath}
-            </if>
-            <if test="pdfUrl != null  and pdfUrl != ''">
-                and pdf_url = #{pdfUrl}
-            </if>
-        </where>
+    <select id="checkHasTaskIsDone" resultType="java.lang.Integer">
+        select 1 from core_edu_training_task where status !=0 and plan_id in
+        <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        limit 1
     </select>
 
-    <select id="selectCoreEduTrainingTaskById" parameterType="Long"
-            resultMap="CoreEduTrainingTaskResult">
-        <include refid="selectCoreEduTrainingTaskVo"/>
-        where id = #{id}
+    <select id="selectPageData" resultType="com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskPageVo">
     </select>
-
-    <insert id="insertCoreEduTrainingTask" parameterType="com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask">
-        insert into core_edu_training_task
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">
-                id,
-            </if>
-            <if test="planId != null">
-                plan_id,
-            </if>
-            <if test="roleId != null">
-                role_id,
-            </if>
-            <if test="startDate != null">
-                start_date,
-            </if>
-            <if test="endDate != null">
-                end_date,
-            </if>
-            <if test="actualCount != null">
-                actual_count,
-            </if>
-            <if test="content != null">
-                content,
-            </if>
-            <if test="roleName != null">
-                role_name,
-            </if>
-            <if test="roleIds != null">
-                role_ids,
-            </if>
-            <if test="roleNames != null">
-                role_names,
-            </if>
-            <if test="title != null">
-                title,
-            </if>
-            <if test="note != null">
-                note,
-            </if>
-            <if test="dateTime != null">
-                date_time,
-            </if>
-            <if test="dueCount != null">
-                due_count,
-            </if>
-            <if test="hostId != null">
-                host_id,
-            </if>
-            <if test="fileList != null">
-                file_list,
-            </if>
-            <if test="imageList != null">
-                image_list,
-            </if>
-            <if test="orgId != null">
-                org_id,
-            </if>
-            <if test="recorderId != null">
-                recorder_id,
-            </if>
-            <if test="type != null">
-                type,
-            </if>
-            <if test="orgName != null">
-                org_name,
-            </if>
-            <if test="orgPath != null">
-                org_path,
-            </if>
-            <if test="pdfUrl != null">
-                pdf_url,
-            </if>
-            <if test="createBy != null">
-                create_by,
-            </if>
-            <if test="createTime != null">
-                create_time,
-            </if>
-            <if test="updateBy != null">
-                update_by,
-            </if>
-            <if test="updateTime != null">
-                update_time,
-            </if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">
-                #{id},
-            </if>
-            <if test="planId != null">
-                #{planId},
-            </if>
-            <if test="roleId != null">
-                #{roleId},
-            </if>
-            <if test="startDate != null">
-                #{startDate},
-            </if>
-            <if test="endDate != null">
-                #{endDate},
-            </if>
-            <if test="actualCount != null">
-                #{actualCount},
-            </if>
-            <if test="content != null">
-                #{content},
-            </if>
-            <if test="roleName != null">
-                #{roleName},
-            </if>
-            <if test="roleIds != null">
-                #{roleIds},
-            </if>
-            <if test="roleNames != null">
-                #{roleNames},
-            </if>
-            <if test="title != null">
-                #{title},
-            </if>
-            <if test="note != null">
-                #{note},
-            </if>
-            <if test="dateTime != null">
-                #{dateTime},
-            </if>
-            <if test="dueCount != null">
-                #{dueCount},
-            </if>
-            <if test="hostId != null">
-                #{hostId},
-            </if>
-            <if test="fileList != null">
-                #{fileList},
-            </if>
-            <if test="imageList != null">
-                #{imageList},
-            </if>
-            <if test="orgId != null">
-                #{orgId},
-            </if>
-            <if test="recorderId != null">
-                #{recorderId},
-            </if>
-            <if test="type != null">
-                #{type},
-            </if>
-            <if test="orgName != null">
-                #{orgName},
-            </if>
-            <if test="orgPath != null">
-                #{orgPath},
-            </if>
-            <if test="pdfUrl != null">
-                #{pdfUrl},
-            </if>
-            <if test="createBy != null">
-                #{createBy},
-            </if>
-            <if test="createTime != null">
-                #{createTime},
-            </if>
-            <if test="updateBy != null">
-                #{updateBy},
-            </if>
-            <if test="updateTime != null">
-                #{updateTime},
-            </if>
-        </trim>
-    </insert>
-
-    <update id="updateCoreEduTrainingTask" parameterType="com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask">
-        update core_edu_training_task
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="planId != null">
-                plan_id =
-                #{planId},
-            </if>
-            <if test="roleId != null">
-                role_id =
-                #{roleId},
-            </if>
-            <if test="startDate != null">
-                start_date =
-                #{startDate},
-            </if>
-            <if test="endDate != null">
-                end_date =
-                #{endDate},
-            </if>
-            <if test="actualCount != null">
-                actual_count =
-                #{actualCount},
-            </if>
-            <if test="content != null">
-                content =
-                #{content},
-            </if>
-            <if test="roleName != null">
-                role_name =
-                #{roleName},
-            </if>
-            <if test="roleIds != null">
-                role_ids =
-                #{roleIds},
-            </if>
-            <if test="roleNames != null">
-                role_names =
-                #{roleNames},
-            </if>
-            <if test="title != null">
-                title =
-                #{title},
-            </if>
-            <if test="note != null">
-                note =
-                #{note},
-            </if>
-            <if test="dateTime != null">
-                date_time =
-                #{dateTime},
-            </if>
-            <if test="dueCount != null">
-                due_count =
-                #{dueCount},
-            </if>
-            <if test="hostId != null">
-                host_id =
-                #{hostId},
-            </if>
-            <if test="fileList != null">
-                file_list =
-                #{fileList},
-            </if>
-            <if test="imageList != null">
-                image_list =
-                #{imageList},
-            </if>
-            <if test="orgId != null">
-                org_id =
-                #{orgId},
-            </if>
-            <if test="recorderId != null">
-                recorder_id =
-                #{recorderId},
-            </if>
-            <if test="type != null">
-                type =
-                #{type},
-            </if>
-            <if test="orgName != null">
-                org_name =
-                #{orgName},
-            </if>
-            <if test="orgPath != null">
-                org_path =
-                #{orgPath},
-            </if>
-            <if test="pdfUrl != null">
-                pdf_url =
-                #{pdfUrl},
-            </if>
-            <if test="createBy != null">
-                create_by =
-                #{createBy},
-            </if>
-            <if test="createTime != null">
-                create_time =
-                #{createTime},
-            </if>
-            <if test="updateBy != null">
-                update_by =
-                #{updateBy},
-            </if>
-            <if test="updateTime != null">
-                update_time =
-                #{updateTime},
-            </if>
-        </trim>
-        where id = #{id}
-    </update>
-
-    <delete id="deleteCoreEduTrainingTaskById" parameterType="Long">
-        delete
-        from core_edu_training_task
-        where id = #{id}
-    </delete>
-
-    <delete id="deleteCoreEduTrainingTaskByIds" parameterType="String">
-        delete from core_edu_training_task where id in
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-    </delete>
 </mapper>