Jelajahi Sumber

Signed-off-by: ljx <809268652@qq.com>增加b类导入

ljx 2 tahun lalu
induk
melakukan
cb62937093

+ 21 - 0
ruoyi-system/src/main/java/com/ruoyi/system/controller/ContractTableController.java

@@ -20,6 +20,7 @@ import com.ruoyi.system.domain.ContractTable;
 import com.ruoyi.system.service.IContractTableService;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * B类Controller
@@ -101,4 +102,24 @@ public class ContractTableController extends BaseController
     {
         return toAjax(contractTableService.deleteContractTableByIds(ids));
     }
+
+    @Log(title = "B类证书", businessType = BusinessType.IMPORT) // todo
+    @PreAuthorize("@ss.hasPermi('collegeManage:studentBase:import')") // todo
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
+    {
+        ExcelUtil<ContractTable> util = new ExcelUtil<>(ContractTable.class); // todo
+        List<ContractTable> stuList = util.importExcel(file.getInputStream()); // todo
+        String operName = getUsername();
+        String message = contractTableService.importCon(stuList, updateSupport, operName); // todo
+        return AjaxResult.success(message);
+    }
+
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response)
+    {
+        ExcelUtil<ContractTable> util = new ExcelUtil<>(ContractTable.class); // todo
+        util.importTemplateExcel(response, "B类证书信息");
+    }
+
 }

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ContractTableMapper.java

@@ -58,4 +58,6 @@ public interface ContractTableMapper
      * @return 结果
      */
     public int deleteContractTableByIds(Long[] ids);
+
+    public ContractTable selectContractTableByCode(String code);
 }

+ 11 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IContractTableService.java

@@ -58,4 +58,15 @@ public interface IContractTableService
      * @return 结果
      */
     public int deleteContractTableById(Long id);
+
+    /**
+     * 导入用户数据
+     *
+     * @param stuList 用户数据列表
+     * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
+     * @param operName 操作用户
+     * @return 结果
+     */
+    public String importCon(List<ContractTable> stuList, Boolean isUpdateSupport, String operName);
+
 }

+ 68 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ContractTableServiceImpl.java

@@ -1,12 +1,19 @@
 package com.ruoyi.system.service.impl;
 
 import java.util.List;
+
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.bean.BeanValidators;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.ContractTableMapper;
 import com.ruoyi.system.domain.ContractTable;
 import com.ruoyi.system.service.IContractTableService;
 
+import javax.validation.Validator;
+
+
 /**
  * B类Service业务层处理
  * 
@@ -19,6 +26,10 @@ public class ContractTableServiceImpl implements IContractTableService
     @Autowired
     private ContractTableMapper contractTableMapper;
 
+    @Autowired
+    protected Validator validator;
+
+
     /**
      * 查询B类
      * 
@@ -90,4 +101,61 @@ public class ContractTableServiceImpl implements IContractTableService
     {
         return contractTableMapper.deleteContractTableById(id);
     }
+
+    @Override
+    public String importCon(List<ContractTable> stuList, Boolean isUpdateSupport, String operName) {
+        if (StringUtils.isNull(stuList) || stuList.size() == 0)
+        {
+            throw new ServiceException("导入B类证书基本信息数据不能为空!");
+        }
+        int successNum = 0;
+        int failureNum = 0;
+        StringBuilder successMsg = new StringBuilder();
+        StringBuilder failureMsg = new StringBuilder();
+        for (ContractTable con : stuList)
+        {
+            try
+            {
+                // 验证是否存在这个用户
+                ContractTable u = contractTableMapper.selectContractTableByCode(con.getdCode());
+                if (StringUtils.isNull(u))
+                {
+                    BeanValidators.validateWithException(validator, con);
+                    con.setCreateBy(operName);
+                    this.insertContractTable(con);
+                    successNum++;
+                    successMsg.append("<br/>" + successNum + "、身份证或者编码 " + con.getdCode() + " 导入成功");
+                }
+                else if (isUpdateSupport)
+                {
+                    BeanValidators.validateWithException(validator, con);
+                    con.setUpdateBy(operName);
+                    this.updateContractTable(con);
+                    successNum++;
+                    successMsg.append("<br/>" + successNum + "、身份证或者编码 " + con.getdCode() + " 更新成功");
+                }
+                else
+                {
+                    failureNum++;
+                    failureMsg.append("<br/>" + failureNum + "、身份证或者编码 " + con.getdCode() + " 已存在");
+                }
+            }
+            catch (Exception e)
+            {
+                failureNum++;
+                String msg = "<br/>" + failureNum + "、身份证或者编码 " + con.getdCode() + " 导入失败:";
+                failureMsg.append(msg + e.getMessage());
+            }
+        }
+        if (failureNum > 0)
+        {
+            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
+            throw new ServiceException(failureMsg.toString());
+        }
+        else
+        {
+            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
+        }
+        return successMsg.toString();
+    }
 }

+ 6 - 0
ruoyi-system/src/main/resources/mapper/system/ContractTableMapper.xml

@@ -40,6 +40,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectContractTableVo"/>
         where id = #{id}
     </select>
+
+    <select id="selectContractTableByCode" parameterType="String" resultMap="ContractTableResult">
+        <include refid="selectContractTableVo"/>
+        where dCode = #{dCode}
+    </select>
+
         
     <insert id="insertContractTable" parameterType="ContractTable" useGeneratedKeys="true" keyProperty="id">
         insert into contract_table