瀏覽代碼

Signed-off-by: ljx <809268652@qq.com>更新A类导入接口和输出url接口

ljx 2 年之前
父節點
當前提交
4d6aa1c538

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

@@ -120,6 +120,13 @@ public class ContractTableController extends BaseController
         return toAjax(contractTableService.deleteContractTableByIds(ids));
     }
 
+    /**
+     * 导入excel
+     * @param file
+     * @param updateSupport
+     * @return
+     * @throws Exception
+     */
     @Log(title = "B类证书", businessType = BusinessType.IMPORT) // todo
     @PreAuthorize("@ss.hasPermi('collegeManage:studentBase:import')") // todo
     @PostMapping("/importData")

+ 33 - 1
ruoyi-system/src/main/java/com/ruoyi/system/controller/GradTableController.java

@@ -3,7 +3,9 @@ package com.ruoyi.system.controller;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.system.domain.ContractTable;
 import com.ruoyi.system.domain.dto.QueryEntity;
+import com.ruoyi.system.service.GradDTOService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -22,6 +24,7 @@ import com.ruoyi.system.domain.GradTable;
 import com.ruoyi.system.service.IGradTableService;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * A类证书Controller
@@ -36,6 +39,9 @@ public class GradTableController extends BaseController
     @Autowired
     private IGradTableService gradTableService;
 
+    @Autowired
+    private GradDTOService gradDTOService;
+
     /**
      * 查询A类证书列表
      */
@@ -74,7 +80,7 @@ public class GradTableController extends BaseController
     @PostMapping("/getInfoByCode")
     public AjaxResult getInfoByCode(@RequestBody QueryEntity queryEntity)
     {
-        return success(gradTableService.selectContractTableByQuery(queryEntity));
+        return success(gradDTOService.getInfo(queryEntity));
     }
 
     /**
@@ -109,4 +115,30 @@ public class GradTableController extends BaseController
     {
         return toAjax(gradTableService.deleteGradTableByIds(ids));
     }
+
+    /**
+     * 导入excel
+     * @param file
+     * @param updateSupport
+     * @return
+     * @throws Exception
+     */
+    @Log(title = "A类证书", businessType = BusinessType.IMPORT) // todo
+    @PreAuthorize("@ss.hasPermi('collegeManage:studentBase:import')") // todo
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
+    {
+        ExcelUtil<GradTable> util = new ExcelUtil<>(GradTable.class); // todo
+        List<GradTable> stuList = util.importExcel(file.getInputStream()); // todo
+        String operName = getUsername();
+        String message = gradTableService.importCon(stuList, updateSupport, operName); // todo
+        return AjaxResult.success(message);
+    }
+
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response)
+    {
+        ExcelUtil<GradTable> util = new ExcelUtil<>(GradTable.class); // todo
+        util.importTemplateExcel(response, "A类证书信息");
+    }
 }

+ 8 - 156
ruoyi-system/src/main/java/com/ruoyi/system/domain/GradTable.java

@@ -2,6 +2,9 @@ package com.ruoyi.system.domain;
 
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
@@ -13,6 +16,9 @@ import com.ruoyi.common.core.domain.BaseEntity;
  * @author ruoyi
  * @date 2022-12-05
  */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
 public class GradTable extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
@@ -76,160 +82,6 @@ public class GradTable extends BaseEntity
     /** 自增id */
     private Integer id;
 
-    public void setCertType(Integer certType)
-    {
-        this.certType = certType;
-    }
-
-    public Integer getCertType()
-    {
-        return certType;
-    }
-    public void setUesrName(String uesrName)
-    {
-        this.uesrName = uesrName;
-    }
-
-    public String getUesrName()
-    {
-        return uesrName;
-    }
-    public void setUserId(String userId)
-    {
-        this.userId = userId;
-    }
-
-    public String getUserId()
-    {
-        return userId;
-    }
-    public void setCertId(String certId)
-    {
-        this.certId = certId;
-    }
-
-    public String getCertId()
-    {
-        return certId;
-    }
-    public void setIssueDate(Date issueDate)
-    {
-        this.issueDate = issueDate;
-    }
-
-    public Date getIssueDate()
-    {
-        return issueDate;
-    }
-    public void setCertName(String certName)
-    {
-        this.certName = certName;
-    }
-
-    public String getCertName()
-    {
-        return certName;
-    }
-    public void setCourseName(String courseName)
-    {
-        this.courseName = courseName;
-    }
-
-    public String getCourseName()
-    {
-        return courseName;
-    }
-    public void setCourseHours(String courseHours)
-    {
-        this.courseHours = courseHours;
-    }
-
-    public String getCourseHours()
-    {
-        return courseHours;
-    }
-    public void setLevel(String level)
-    {
-        this.level = level;
-    }
-
-    public String getLevel()
-    {
-        return level;
-    }
-    public void setTrainPeriod(String trainPeriod)
-    {
-        this.trainPeriod = trainPeriod;
-    }
-
-    public String getTrainPeriod()
-    {
-        return trainPeriod;
-    }
-    public void setPicture(String picture)
-    {
-        this.picture = picture;
-    }
-
-    public String getPicture()
-    {
-        return picture;
-    }
-    public void setUserPhone(String userPhone)
-    {
-        this.userPhone = userPhone;
-    }
-
-    public String getUserPhone()
-    {
-        return userPhone;
-    }
-    public void setUserEmail(String userEmail)
-    {
-        this.userEmail = userEmail;
-    }
-
-    public String getUserEmail()
-    {
-        return userEmail;
-    }
-    public void setUpdateDate(Date updateDate)
-    {
-        this.updateDate = updateDate;
-    }
-
-    public Date getUpdateDate()
-    {
-        return updateDate;
-    }
-    public void setId(Integer id)
-    {
-        this.id = id;
-    }
-
-    public Integer getId()
-    {
-        return id;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-                .append("certType", getCertType())
-                .append("uesrName", getUesrName())
-                .append("userId", getUserId())
-                .append("certId", getCertId())
-                .append("issueDate", getIssueDate())
-                .append("certName", getCertName())
-                .append("courseName", getCourseName())
-                .append("courseHours", getCourseHours())
-                .append("level", getLevel())
-                .append("trainPeriod", getTrainPeriod())
-                .append("picture", getPicture())
-                .append("userPhone", getUserPhone())
-                .append("userEmail", getUserEmail())
-                .append("updateDate", getUpdateDate())
-                .append("id", getId())
-                .toString();
-    }
+    private int templateId;
+
 }

+ 75 - 1
ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/GradDTO.java

@@ -1,4 +1,78 @@
 package com.ruoyi.system.domain.dto;
 
-public class GradDTO {
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GradDTO extends BaseEntity {
+    /** 证书类型 */
+    @Excel(name = "证书类型")
+    private Integer certType;
+
+    /** 姓名 */
+    @Excel(name = "姓名")
+    private String uesrName;
+
+    /** 身份证 */
+    @Excel(name = "身份证")
+    private String userId;
+
+    /** 证书编号 */
+    @Excel(name = "证书编号")
+    private String certId;
+
+    /** 发证时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "发证时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date issueDate;
+
+    /** 培训名称 */
+    @Excel(name = "培训名称")
+    private String certName;
+
+    /** 课程名称 */
+    @Excel(name = "课程名称")
+    private String courseName;
+
+    /** 学时数 */
+    @Excel(name = "学时数")
+    private String courseHours;
+
+    /** 等级 */
+    @Excel(name = "等级")
+    private String level;
+
+    /** 培训时间段 */
+    @Excel(name = "培训时间段")
+    private String trainPeriod;
+
+    /** 照片 */
+    @Excel(name = "照片")
+    private String picture;
+
+    /** 手机号码 */
+    @Excel(name = "手机号码")
+    private String userPhone;
+
+    /** 邮箱 */
+    @Excel(name = "邮箱")
+    private String userEmail;
+
+    /** 导入系统的时间戳 */
+    private Date updateDate;
+
+    /** 自增id */
+    private Integer id;
+
+    /**模板url*/
+    private String url;
+
 }

+ 8 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/GradDTOMapper.java

@@ -0,0 +1,8 @@
+package com.ruoyi.system.mapper;
+
+import com.ruoyi.system.domain.dto.GradDTO;
+import com.ruoyi.system.domain.dto.QueryEntity;
+
+public interface GradDTOMapper {
+    GradDTO getInfo(QueryEntity queryEntity);
+}

+ 8 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/GradDTOService.java

@@ -0,0 +1,8 @@
+package com.ruoyi.system.service;
+
+import com.ruoyi.system.domain.dto.GradDTO;
+import com.ruoyi.system.domain.dto.QueryEntity;
+
+public interface GradDTOService {
+    GradDTO getInfo(QueryEntity queryEntity);
+}

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

@@ -70,7 +70,6 @@ public interface IContractTableService
      */
     public String importCon(List<ContractTable> stuList, Boolean isUpdateSupport, String operName);
 
-    public ContractTable selectContractTableByQuery(QueryEntity queryEntity);
 
 
 }

+ 12 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/IGradTableService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
+
+import com.ruoyi.system.domain.ContractTable;
 import com.ruoyi.system.domain.GradTable;
 import com.ruoyi.system.domain.dto.QueryEntity;
 
@@ -60,5 +62,14 @@ public interface IGradTableService
      */
     public int deleteGradTableById(Integer id);
 
-    GradTable selectContractTableByQuery(QueryEntity queryEntity);
+    /**
+     * 导入用户数据
+     *
+     * @param stuList 用户数据列表
+     * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
+     * @param operName 操作用户
+     * @return 结果
+     */
+    public String importCon(List<GradTable> stuList, Boolean isUpdateSupport, String operName);
+
 }

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

@@ -5,7 +5,6 @@ import java.util.List;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanValidators;
-import com.ruoyi.system.domain.dto.QueryEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.ContractTableMapper;
@@ -160,8 +159,4 @@ public class ContractTableServiceImpl implements IContractTableService
         return successMsg.toString();
     }
 
-    @Override
-    public ContractTable selectContractTableByQuery(QueryEntity queryEntity) {
-        return contractTableMapper.selectInfoByQuery(queryEntity);
-    }
 }

+ 17 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/GradDTOServiceImpl.java

@@ -0,0 +1,17 @@
+package com.ruoyi.system.service.impl;
+
+import com.ruoyi.system.domain.dto.GradDTO;
+import com.ruoyi.system.domain.dto.QueryEntity;
+import com.ruoyi.system.mapper.GradDTOMapper;
+import com.ruoyi.system.service.GradDTOService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class GradDTOServiceImpl implements GradDTOService {
+    @Autowired
+    private GradDTOMapper mapper;
+
+    @Override
+    public GradDTO getInfo(QueryEntity queryEntity) {
+        return mapper.getInfo(queryEntity);
+    }
+}

+ 64 - 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/GradTableServiceImpl.java

@@ -2,6 +2,10 @@ 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 com.ruoyi.system.domain.ContractTable;
 import com.ruoyi.system.domain.dto.QueryEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -9,6 +13,8 @@ import com.ruoyi.system.mapper.GradTableMapper;
 import com.ruoyi.system.domain.GradTable;
 import com.ruoyi.system.service.IGradTableService;
 
+import javax.validation.Validator;
+
 /**
  * A类证书Service业务层处理
  *
@@ -21,6 +27,9 @@ public class GradTableServiceImpl implements IGradTableService
     @Autowired
     private GradTableMapper gradTableMapper;
 
+    @Autowired
+    protected Validator validator;
+
     /**
      * 查询A类证书
      *
@@ -94,7 +103,60 @@ public class GradTableServiceImpl implements IGradTableService
     }
 
     @Override
-    public GradTable selectContractTableByQuery(QueryEntity queryEntity) {
-        return gradTableMapper.selectInfoByQuery(queryEntity);
+    public String importCon(List<GradTable> stuList, Boolean isUpdateSupport, String operName) {
+        if (StringUtils.isNull(stuList) || stuList.size() == 0)
+        {
+            throw new ServiceException("导入A类证书基本信息数据不能为空!");
+        }
+        int successNum = 0;
+        int failureNum = 0;
+        StringBuilder successMsg = new StringBuilder();
+        StringBuilder failureMsg = new StringBuilder();
+        for (GradTable con : stuList)
+        {
+            try
+            {
+                // 验证是否存在这个用户
+                GradTable u = gradTableMapper.selectGradTableById(con.getId());
+                if (StringUtils.isNull(u))
+                {
+                    BeanValidators.validateWithException(validator, con);
+                    con.setCreateBy(operName);
+                    this.insertGradTable(con);
+                    successNum++;
+                    successMsg.append("<br/>" + successNum + "、ID " + con.getId() + " 导入成功");
+                }
+                else if (isUpdateSupport)
+                {
+                    BeanValidators.validateWithException(validator, con);
+                    con.setUpdateBy(operName);
+                    this.updateGradTable(con);
+                    successNum++;
+                    successMsg.append("<br/>" + successNum + "、ID " + con.getId() + " 更新成功");
+                }
+                else
+                {
+                    failureNum++;
+                    failureMsg.append("<br/>" + failureNum + "、ID " + con.getId() + " 已存在");
+                }
+            }
+            catch (Exception e)
+            {
+                failureNum++;
+                String msg = "<br/>" + failureNum + "、ID " + con.getId() + " 导入失败:";
+                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();
     }
+
 }

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

@@ -46,11 +46,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectContractTableVo"/>
         where cert_id = #{certId}
     </select>
-
-    <select id="selectInfoByQuery" parameterType="QueryEntity" resultMap="ContractTableResult">
-        <include refid="selectContractTableVo"/>
-        where cert_id = #{certNumber} AND name = #{userName}
-    </select>
         
     <insert id="insertContractTable" parameterType="ContractTable" useGeneratedKeys="true" keyProperty="id">
         insert into contract_table

+ 27 - 0
ruoyi-system/src/main/resources/mapper/system/GradDTOMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.system.mapper.GradDTOMapper">
+    <select id="getInfo" parameterType="QueryEntity" resultType="GradDTO">
+        SELECT
+               a.cert_type certType,
+               a.uesr_name userName,
+               a.user_id userId,
+               a.cert_id certId,
+               a.issue_date issueDate,
+               a.cert_name certName,
+               a.course_name courseName,
+               a.course_hours courseHours,
+               a.level,
+               a.train_period trainPeriod,
+               a.picture,
+               a.user_phone userPhone,
+               a.user_email userEmail,
+               a.update_date updateDate,
+               a.id,
+               b.url
+        FROM grad_table a LEFT JOIN template_table b ON a.template_id = b.id
+        WHERE a.cert_id = #{certNumber} AND a.uesr_name = #{userName}
+    </select>
+
+</mapper>