Browse Source

王子文 专项培养
1) 批量导入培养计划

wangggziwen 3 years ago
parent
commit
bdbef431b4

+ 3 - 2
master/src/main/java/com/ruoyi/project/training/spec/controller/TStPlanController.java

@@ -96,8 +96,9 @@ public class TStPlanController extends BaseController
     public AjaxResult importData(MultipartFile file, boolean updateSupport, Long yearPlanId) throws Exception
     {
         ExcelUtil<TStPlanImportVO> util = new ExcelUtil<TStPlanImportVO>(TStPlanImportVO.class);
-        List<TStPlanImportVO> planList = util.importExcel(file.getInputStream());
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<TStPlanImportVO> planList = util.importExcelFromIndex0(file.getInputStream());
+        Long userId = getUserId();
+        SysUser loginUser = sysUserService.selectUserById(userId);
         String message = tStPlanService.importData(planList, updateSupport, loginUser, yearPlanId);
         return AjaxResult.success(message);
     }

+ 8 - 0
master/src/main/java/com/ruoyi/project/training/spec/mapper/TStPlanMapper.java

@@ -45,6 +45,14 @@ public interface TStPlanMapper
      */
     public TStPlan selectTStPlanById(Long id);
 
+    /**
+     * 查询培训计划
+     *
+     * @param tStPlan 培训计划
+     * @return 培训计划
+     */
+    public TStPlan selectTStPlan(TStPlan tStPlan);
+
     /**
      * 查询培训计划列表
      *

+ 1 - 1
master/src/main/java/com/ruoyi/project/training/spec/service/ITStPlanService.java

@@ -87,5 +87,5 @@ public interface ITStPlanService
      * @param yearPlanId 年度培养计划id
      * @return 结果
      */
-    String importData(List<TStPlanImportVO> planList, boolean isUpdateSupport, LoginUser loginUser, Long yearPlanId);
+    String importData(List<TStPlanImportVO> planList, boolean isUpdateSupport, SysUser loginUser, Long yearPlanId);
 }

+ 69 - 56
master/src/main/java/com/ruoyi/project/training/spec/service/impl/TStPlanServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.project.training.spec.service.impl;
 
+import java.util.Date;
 import java.util.List;
 
 import com.ruoyi.common.exception.CustomException;
@@ -7,8 +8,13 @@ import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.impl.SysUserServiceImpl;
 import com.ruoyi.project.training.spec.domain.TStFeedback;
+import com.ruoyi.project.training.spec.domain.TStYearplan;
 import com.ruoyi.project.training.spec.domain.vo.TStPlanImportVO;
+import com.ruoyi.project.training.spec.mapper.TStYearplanMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.project.training.spec.mapper.TStPlanMapper;
@@ -24,9 +30,14 @@ import com.ruoyi.project.training.spec.service.ITStPlanService;
 @Service
 public class TStPlanServiceImpl implements ITStPlanService
 {
+    private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
+
     @Autowired
     private TStPlanMapper tStPlanMapper;
 
+    @Autowired
+    private TStYearplanMapper tStYearplanMapper;
+
     @Override
     public List<TStPlan> selectSeasonalTStPlanList(TStFeedback tStFeedback) {
         return tStPlanMapper.selectSeasonalTStPlanList(tStFeedback);
@@ -119,61 +130,63 @@ public class TStPlanServiceImpl implements ITStPlanService
      * @return 结果
      */
     @Override
-    public String importData(List<TStPlanImportVO> planList, boolean isUpdateSupport, LoginUser loginUser, Long yearPlanId) {
-//        if (StringUtils.isNull(userList) || userList.size() == 0)
-//        {
-//            throw new CustomException("导入用户数据不能为空!");
-//        }
-//        int successNum = 0;
-//        int failureNum = 0;
-//        StringBuilder successMsg = new StringBuilder();
-//        StringBuilder failureMsg = new StringBuilder();
-//        String password = configService.selectConfigByKey("sys.user.initPassword");
-//        for (SysUser user : userList)
-//        {
-//            try
-//            {
-//                // 验证是否存在这个用户
-//                SysUser u = userMapper.selectUserByUserName(user.getUserName());
-//                if (StringUtils.isNull(u))
-//                {
-//                    user.setPassword(SecurityUtils.encryptPassword(password));
-//                    user.setCreateBy(operName);
-//                    this.insertUser(user);
-//                    successNum++;
-//                    successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
-//                }
-//                else if (isUpdateSupport)
-//                {
-//                    user.setUpdateBy(operName);
-//                    this.updateUser(user);
-//                    successNum++;
-//                    successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
-//                }
-//                else
-//                {
-//                    failureNum++;
-//                    failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
-//                }
-//            }
-//            catch (Exception e)
-//            {
-//                failureNum++;
-//                String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
-//                failureMsg.append(msg + e.getMessage());
-//                log.error(msg, e);
-//            }
-//        }
-//        if (failureNum > 0)
-//        {
-//            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
-//            throw new CustomException(failureMsg.toString());
-//        }
-//        else
-//        {
-//            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
-//        }
-//        return successMsg.toString();
-        return null;
+    public String importData(List<TStPlanImportVO> planList, boolean isUpdateSupport, SysUser loginUser, Long yearPlanId) {
+        if (StringUtils.isNull(planList) || planList.size() == 0)
+        {
+            throw new CustomException("导入培养计划数据不能为空!");
+        }
+        int successNum = 0;
+        int failureNum = 0;
+        StringBuilder successMsg = new StringBuilder();
+        StringBuilder failureMsg = new StringBuilder();
+        TStYearplan yearplan =tStYearplanMapper.selectTStYearplanById(yearPlanId);
+        for (TStPlanImportVO planImportVO : planList) {
+            try {
+                TStPlan plan = new TStPlan();
+                plan.setYearPlanId(yearPlanId);
+                plan.setPlantName(planImportVO.getPlantName());
+                TStPlan result = tStPlanMapper.selectTStPlan(plan);
+                if (StringUtils.isNull(result))
+                {
+                    successNum++;
+                    plan.setStaffId(yearplan.getStaffId());
+                    plan.setStartDate(planImportVO.getStartDate());
+                    plan.setEndDate(planImportVO.getEndDate());
+                    plan.setClassContent(planImportVO.getClassContent());
+                    plan.setCreaterCode(loginUser.getUserId().toString());
+                    plan.setCreatedate(new Date());
+                    this.insertTStPlan(plan);
+                    successMsg.append("<br/>" + successNum + "、培养计划 " + planImportVO.getPlantName() + " 导入成功");
+                } else if (isUpdateSupport) {
+                    successNum++;
+                    result.setStaffId(yearplan.getStaffId());
+                    result.setStartDate(planImportVO.getStartDate());
+                    result.setEndDate(planImportVO.getEndDate());
+                    result.setClassContent(planImportVO.getClassContent());
+                    result.setUpdaterCode(loginUser.getUserId().toString());
+                    result.setUpdatedate(new Date());
+                    this.updateTStPlan(result);
+                    successMsg.append("<br/>" + successNum + "、培养计划 " + planImportVO.getPlantName() + " 更新成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>" + failureNum + "、培养计划 " + planImportVO.getPlantName() + " 已存在");
+                }
+            } catch (Exception e) {
+                failureNum++;
+                String msg = "<br/>" + failureNum + "、培养计划 " + planImportVO.getPlantName() + " 导入失败:";
+                failureMsg.append(msg + e.getMessage());
+                log.error(msg, e);
+            }
+        }
+        if (failureNum > 0)
+        {
+            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
+            throw new CustomException(failureMsg.toString());
+        }
+        else
+        {
+            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
+        }
+        return successMsg.toString();
     }
 }

+ 15 - 2
master/src/main/resources/mybatis/training/spec/TStPlanMapper.xml

@@ -107,6 +107,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by d.start_date
     </select>
 
+    <select id="selectTStPlan" parameterType="TStPlan" resultMap="TStPlanResult">
+        <include refid="selectTStPlanVo"/>
+        <where>
+            <if test="yearPlanId != null  and yearPlanId != ''"> and d.year_plan_id = #{yearPlanId}</if>
+            <if test="staffId != null  and staffId != ''"> and d.staff_id = #{staffId}</if>
+            <if test="plantName != null  and plantName != ''"> and plant_name = #{plantName}</if>
+            <if test="startDate != null "> and start_date = #{startDate}</if>
+            <if test="endDate != null "> and end_date = #{endDate}</if>
+            <if test="classHour != null  and classHour != ''"> and class_hour = #{classHour}</if>
+            <if test="studyState != null  and studyState != ''"> and study_state = #{studyState}</if>
+            <if test="mentorStaffId != null  and mentorStaffId != ''"> and mentor_staff_id = #{mentorStaffId}</if>
+            and d.del_flag = 0
+        </where>
+    </select>
+
     <select id="selectTStPlanList" parameterType="TStPlan" resultMap="TStPlanResult">
         <include refid="selectTStPlanVo"/>
         <where>
@@ -120,8 +135,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="mentorStaffId != null  and mentorStaffId != ''"> and mentor_staff_id = #{mentorStaffId}</if>
             and d.del_flag = 0
         </where>
-        <!-- 王子文 2022年5月18日 09点46分 -->
-        <!-- 根据开始时间排序 -->
         order by start_date
         <!-- 数据范围过滤 -->
         ${params.dataScope}

+ 1 - 1
ui/src/views/training/spec/plan/index.vue

@@ -285,7 +285,7 @@
                 :limit="1"
                 accept=".xlsx, .xls"
                 :headers="upload.headers"
-                :action="upload.url + '?updateSupport=' + upload.updateSupport + 'yearPlanId=' + queryParams.yearPlanId"
+                :action="upload.url + '?updateSupport=' + upload.updateSupport + '&yearPlanId=' + queryParams.yearPlanId"
                 :disabled="upload.isUploading"
                 :on-progress="handleFileUploadProgress"
                 :on-success="handleFileSuccess"