Forráskód Böngészése

导入新增预约

he2802 3 éve
szülő
commit
099fbd1569

+ 14 - 8
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserSubscribeController.java

@@ -124,20 +124,26 @@ public class UserSubscribeController extends BaseController {
         return AjaxResult.success(userExamGoodsVo);
     }
 
-    @Log(title = "导入预约考试模板", businessType = BusinessType.IMPORT)
+    @Log(title = "导入新增预约考试模板", businessType = BusinessType.IMPORT)
     @ApiOperation("导入新增预约考试模板")
     @PreAuthorize("@ss.hasPermi('system:apply:import')")
     @PostMapping("/importData")
-    public AjaxResult<UserSubscribeImport> importData(MultipartFile file) throws Exception {
+    public AjaxResult<Map<String, Object>> importData(MultipartFile file) throws Exception {
         ExcelUtil<UserSubscribeImport> util = new ExcelUtil<UserSubscribeImport>(UserSubscribeImport.class);
         List<UserSubscribeImport> userSubscribeImportList = util.importExcel(file.getInputStream());
-        List<UserSubscribeImport> userSubscribeImport = iUserSubscribeService.importData(userSubscribeImportList);
+        Map<String, Object> userSubscribeImport = iUserSubscribeService.importData(userSubscribeImportList);
+        return AjaxResult.success(userSubscribeImport);
+    }
 
-        if (!CollectionUtils.isEmpty(userSubscribeImport)) {
-            return util.exportExcel(userSubscribeImport, "导入失败原因,请勿将此excel修改后再次上传,请在导入模板修改上传");
-        }
-        UserSubscribeImport userSubscribeImport1 = null;
-        return AjaxResult.successNoMsg(userSubscribeImport1);
+    @Log(title = "导入新增预约考培模板", businessType = BusinessType.IMPORT)
+    @ApiOperation("导入新增预约考培模板")
+    @PreAuthorize("@ss.hasPermi('system:apply:import')")
+    @PostMapping("/importTrainData")
+    public AjaxResult<Map<String, Object>> importTrainData(MultipartFile file) throws Exception {
+        ExcelUtil<UserSubscribeImport> util = new ExcelUtil<UserSubscribeImport>(UserSubscribeImport.class);
+        List<UserSubscribeImport> userSubscribeImportList = util.importExcel(file.getInputStream());
+        Map<String, Object> userSubscribeImport = iUserSubscribeService.importTrainData(userSubscribeImportList);
+        return AjaxResult.success(userSubscribeImport);
     }
 
     @Log(title = "导入修改预约考试模板", businessType = BusinessType.IMPORT)

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserSubscribeService.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import java.text.ParseException;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户预约考试Service接口
@@ -56,7 +57,9 @@ public interface IUserSubscribeService extends IService<UserSubscribe> {
 
 	boolean editCertificate(List<UserSubscribeCertificateEditBo> bo);
 
-	List<UserSubscribeImport> importData(List<UserSubscribeImport> userSubscribeImportList) throws ParseException;
+	Map<String, Object> importData(List<UserSubscribeImport> userSubscribeImportList) throws ParseException;
+
+	Map<String,Object> importTrainData(List<UserSubscribeImport> userSubscribeImportList) throws ParseException;
 
 	List<UserSubscribeImport> importUpdateData(List<UserSubscribeImport> userSubscribeImportList);
 

+ 144 - 39
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java

@@ -2,6 +2,7 @@ package com.zhongzheng.modules.user.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -389,14 +390,17 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public List<UserSubscribeImport> importData(List<UserSubscribeImport> userSubscribeImportList) throws ParseException {
+    public Map<String, Object> importData(List<UserSubscribeImport> userSubscribeImportList) throws ParseException {
         if (CollectionUtils.isEmpty(userSubscribeImportList)) {
             throw new IllegalArgumentException("请勿导入空表格");
         }
         List<UserSubscribeImport> userSubscribeImports = new ArrayList<>();
+        List<UserSubscribeImport> successImports = new ArrayList<>();
         for (UserSubscribeImport userSubscribeImport : userSubscribeImportList) {
             UserSubscribeAddBo userSubscribeAddBo = new UserSubscribeAddBo();
-            if (StringUtils.isEmpty(userSubscribeImport.getUserName()) && StringUtils.isEmpty(userSubscribeImport.getApplyName()) && StringUtils.isEmpty(userSubscribeImport.getUserName())){
+            if (StringUtils.isEmpty(userSubscribeImport.getApplyName()) ||StringUtils.isEmpty(userSubscribeImport.getApplySiteAddress())){
+                userSubscribeImport.setCause("考试信息错误");
+                userSubscribeImports.add(userSubscribeImport);
                 continue;
             }
             //查询商品
@@ -426,54 +430,148 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
             }
             userSubscribeAddBo.setUserId(userId);
 
-            if (StringUtils.isEmpty(userSubscribeImport.getSubscribeStatus())) {
-                userSubscribeImport.setCause("预约状态为空");
+
+            //预约状态
+            userSubscribeAddBo.setSubscribeStatus(1);
+
+
+
+            userSubscribeAddBo.setExamStatus(0);
+
+
+            if (!StringUtils.isEmpty(userSubscribeImport.getCertificateCode())) {
+                userSubscribeAddBo.setCertificateCode(userSubscribeImport.getCertificateCode());
+            }
+            if (StringUtils.isEmpty(userSubscribeImport.getApplyName())) {
+                userSubscribeImport.setCause("考试标题有误");
                 userSubscribeImports.add(userSubscribeImport);
                 continue;
             }
-            if (userSubscribeImport.getSubscribeStatus().equals("正常")) {
-                userSubscribeAddBo.setSubscribeStatus(1);
+            Long applyId = baseMapper.selectApplyId(userSubscribeImport.getApplyName());
+            if (applyId == null) {
+                userSubscribeImport.setCause("考试标题有误");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
             }
-            if (userSubscribeImport.getSubscribeStatus().equals("取消")) {
-                userSubscribeImport.setCause("预约状态为取消");
+            userSubscribeAddBo.setApplyId(applyId);
+
+            Long subscribeId = baseMapper.selectSubscribeId(applyId, goodsId, userId);
+            if (subscribeId != null) {
+                userSubscribeImport.setCause("该学员在考试计划中有预约考试数据,请确认该学员预约考试状况");
                 userSubscribeImports.add(userSubscribeImport);
                 continue;
             }
 
-            if (!StringUtils.isEmpty(userSubscribeImport.getBeforeStatus()) && !StringUtils.isEmpty(userSubscribeImport.getBeforeName())) {
-                Long beforeId = baseMapper.selectBeforeId(userSubscribeImport.getBeforeName());
-                if (beforeId == null) {
-                    userSubscribeImport.setCause("前培标题有误");
-                    userSubscribeImports.add(userSubscribeImport);
-                    continue;
+            if (!StringUtils.isEmpty(userSubscribeImport.getStudentTypeName())) {
+                if (userSubscribeImport.getStudentTypeName().equals("非补考学员")) {
+                    userSubscribeAddBo.setStudentType(1);
+                } else {
+                    userSubscribeAddBo.setStudentType(2);
                 }
-                userSubscribeAddBo.setBeforeStatus(1);
-                userSubscribeAddBo.setBeforeId(beforeId);
-                userSubscribeAddBo.setBeforeExpend(1);
+            } else {
+                userSubscribeImport.setCause("学员报名类型有误");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
             }
 
-            if (!StringUtils.isEmpty(userSubscribeImport.getExamStatus())) {
-                if (userSubscribeImport.getExamStatus().equals("待登记")) {
-                    userSubscribeAddBo.setExamStatus(0);
-                } else if (userSubscribeImport.getExamStatus().equals("正常")) {
-                    userSubscribeAddBo.setExamStatus(1);
-                } else if (userSubscribeImport.getExamStatus().equals("缺考")) {
-                    userSubscribeAddBo.setExamStatus(2);
-                } else if (userSubscribeImport.getExamStatus().equals("作弊")) {
-                    userSubscribeAddBo.setExamStatus(3);
-                } else if (userSubscribeImport.getExamStatus().equals("替考")) {
-                    userSubscribeAddBo.setExamStatus(4);
-                }
+            if (!StringUtils.isEmpty(userSubscribeImport.getApplySiteAddress())) {
+                userSubscribeAddBo.setApplySiteAddress(userSubscribeImport.getApplySiteAddress());
+            } else {
+                userSubscribeImport.setCause("考试地址未填");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
             }
 
-            if (!StringUtils.isEmpty(userSubscribeImport.getResult())) {
-                if (userSubscribeImport.getResult().equals("不通过")) {
-                    userSubscribeAddBo.setResult(0);
-                } else if (userSubscribeImport.getResult().equals("通过")) {
-                    userSubscribeAddBo.setResult(1);
+            if (userSubscribeImport.getApplySiteExamTime() != null) {
+                userSubscribeAddBo.setApplySiteExamTime(Convert.toLong(userSubscribeImport.getApplySiteExamTime().getTime())/1000);
+            } else {
+                userSubscribeImport.setCause("考试时间未填");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+
+            if (!StringUtils.isEmpty(userSubscribeImport.getApplySiteTime())) {
+                String[] split = userSubscribeImport.getApplySiteTime().split(":");
+                if (split.length < 2) {
+                    userSubscribeImport.setCause("考试时间段错误");
+                    userSubscribeImports.add(userSubscribeImport);
+                    continue;
                 }
+                String startTime = split[0];
+                String endTime = split[1];
+               /* startTime = startTime.replace(":", "-");
+                endTime = endTime.replace(":", "-");*/
+
+                userSubscribeAddBo.setApplySiteStartTime(startTime);
+                userSubscribeAddBo.setApplySiteEndTime(endTime);
+            } else {
+                userSubscribeImport.setCause("考试时间段未填");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
             }
 
+            userSubscribeAddBo.setCreateTime(DateUtils.getNowTime());
+            userSubscribeAddBo.setUpdateTime(DateUtils.getNowTime());
+            this.insertByAddBo(userSubscribeAddBo);
+            successImports.add(userSubscribeImport);
+        }
+
+        Map<String,Object> resultMap = new HashMap<>();
+        resultMap.put("errorList",userSubscribeImports);
+        resultMap.put("successList",successImports);
+        return resultMap;
+    }
+
+    @Override
+    public Map<String, Object> importTrainData(List<UserSubscribeImport> userSubscribeImportList) throws ParseException {
+        if (CollectionUtils.isEmpty(userSubscribeImportList)) {
+            throw new IllegalArgumentException("请勿导入空表格");
+        }
+        List<UserSubscribeImport> userSubscribeImports = new ArrayList<>();
+        List<UserSubscribeImport> successImports = new ArrayList<>();
+        for (UserSubscribeImport userSubscribeImport : userSubscribeImportList) {
+            UserSubscribeAddBo userSubscribeAddBo = new UserSubscribeAddBo();
+            if (StringUtils.isEmpty(userSubscribeImport.getApplyName()) ||StringUtils.isEmpty(userSubscribeImport.getApplySiteAddress())){
+                userSubscribeImport.setCause("考试信息错误");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+            //查询商品
+            if (StringUtils.isEmpty(userSubscribeImport.getCode())) {
+                userSubscribeImport.setCause("未填商品编码");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+            Long goodsId = baseMapper.selectGoodsId(userSubscribeImport.getCode());
+            if (goodsId == null) {
+                userSubscribeImport.setCause("商品编码错误");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+            userSubscribeAddBo.setGoodsId(goodsId);
+            //查询学员Id
+            if (StringUtils.isEmpty(userSubscribeImport.getUserName()) || userSubscribeImport.getIdCard() == null) {
+                userSubscribeImport.setCause("学员信息未填");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+            Long userId = baseMapper.selectUserId(userSubscribeImport.getUserName(), userSubscribeImport.getIdCard());
+            if (userId == null) {
+                userSubscribeImport.setCause("用户信息错误");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+            userSubscribeAddBo.setUserId(userId);
+
+
+            //预约状态
+            userSubscribeAddBo.setSubscribeStatus(1);
+
+
+
+            userSubscribeAddBo.setExamStatus(0);
+
+
             if (!StringUtils.isEmpty(userSubscribeImport.getCertificateCode())) {
                 userSubscribeAddBo.setCertificateCode(userSubscribeImport.getCertificateCode());
             }
@@ -512,7 +610,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
             if (!StringUtils.isEmpty(userSubscribeImport.getApplySiteAddress())) {
                 userSubscribeAddBo.setApplySiteAddress(userSubscribeImport.getApplySiteAddress());
             } else {
-                userSubscribeImport.setCause("地址未填");
+                userSubscribeImport.setCause("考试地址未填");
                 userSubscribeImports.add(userSubscribeImport);
                 continue;
             }
@@ -546,9 +644,11 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
             }
 
 
-            if (!StringUtils.isEmpty(userSubscribeImport.getApplySiteAddressTrain())) {
-                userSubscribeAddBo.setApplySiteAddressTrain(userSubscribeImport.getApplySiteAddressTrain());
+            if (StringUtils.isEmpty(userSubscribeImport.getApplySiteAddressTrain())|| Validator.isEmpty(userSubscribeImport.getApplySiteExamTrainTime())|| Validator.isEmpty(userSubscribeImport.getApplySiteTime())) {
+                userSubscribeImport.setCause("考培数据错误");
+                userSubscribeImports.add(userSubscribeImport);
             }
+            userSubscribeAddBo.setApplySiteAddressTrain(userSubscribeImport.getApplySiteAddressTrain());
 
             if (userSubscribeImport.getApplySiteExamTrainTime() != null) {
                 userSubscribeAddBo.setApplySiteExamTrainTime(Convert.toLong(userSubscribeImport.getApplySiteExamTrainTime().getTime()/1000));
@@ -557,7 +657,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
             if (!StringUtils.isEmpty(userSubscribeImport.getApplySiteTrainTime())) {
                 String[] split = userSubscribeImport.getApplySiteTrainTime().split(":");
                 if (split.length < 2) {
-                    userSubscribeImport.setCause("考时间段错误");
+                    userSubscribeImport.setCause("考时间段错误");
                     userSubscribeImports.add(userSubscribeImport);
                     continue;
                 }
@@ -573,8 +673,13 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
             userSubscribeAddBo.setCreateTime(DateUtils.getNowTime());
             userSubscribeAddBo.setUpdateTime(DateUtils.getNowTime());
             this.insertByAddBo(userSubscribeAddBo);
+            successImports.add(userSubscribeImport);
         }
-        return userSubscribeImports;
+
+        Map<String,Object> resultMap = new HashMap<>();
+        resultMap.put("errorList",userSubscribeImports);
+        resultMap.put("successList",successImports);
+        return resultMap;
     }
 
     @Override

+ 6 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeImport.java

@@ -21,10 +21,10 @@ public class UserSubscribeImport {
 	private static final long serialVersionUID = 1L;
 
 	/** $column.columnComment */
-	@Excel(name = "*姓名")
+	@Excel(name = "*学员姓名")
 	private String userName;
 
-	@Excel(name = "*身份证" )
+	@Excel(name = "*学员身份证" )
 	private Long idCard;
 
 	/** 考试标题 */
@@ -47,7 +47,7 @@ public class UserSubscribeImport {
 	private String code;
 
 	/** 考试开始时间段 */
-	@Excel(name = "*所购商品")
+	@Excel(name = "*商品名称")
 	private String goodsName;
 
 
@@ -61,13 +61,13 @@ public class UserSubscribeImport {
 	@Excel(name = "前培标记")
 	private String beforeStatus;
 
-	@Excel(name = "考培地址")
+	@Excel(name = "*考培地点")
 	private String applySiteAddressTrain;
 
-	@Excel(name = "考培日期")
+	@Excel(name = "*考培日期")
 	private Date applySiteExamTrainTime;
 
-	@Excel(name = "考培时间段")
+	@Excel(name = "*考培时间段")
 	private String applySiteTrainTime;
 
 	/** 1正常 2取消 */