LIVE_YE 1 年間 前
コミット
38d2b9b32d

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/member/MemberInfoController.java

@@ -4,6 +4,7 @@ package com.ruoyi.web.controller.member;
 import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.common.core.domain.entity.SysMenu;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.domain.member.MemberInfo;
 import com.ruoyi.system.service.impl.TaskService;
@@ -21,6 +22,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.system.service.IMemberInfoService;
 import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -80,6 +82,20 @@ public class MemberInfoController extends BaseController {
         util.exportExcel(response, list, "委员信息数据");
     }
 
+
+    @Log(title = "委员信息", businessType = BusinessType.IMPORT)
+    @PreAuthorize("@ss.hasPermi('member:info:import')")
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
+    {
+        ExcelUtil<MemberInfo> util = new ExcelUtil<MemberInfo>(MemberInfo.class);
+        List<MemberInfo> list = util.importExcel(file.getInputStream());
+        String operName = getUsername();
+        String message = memberInfoService.importData(list, updateSupport, operName);
+        return success(message);
+    }
+
+
     /**
      * 获取委员信息详细信息
      */

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IMemberInfoService.java

@@ -75,4 +75,6 @@ public interface IMemberInfoService
      * @return 结果
      */
     public int deleteMemberInfoByMemberId(Long memberId);
+
+    String importData(List<MemberInfo> list, boolean updateSupport, String operName);
 }

+ 105 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/MemberInfoServiceImpl.java

@@ -3,9 +3,14 @@ package com.ruoyi.system.service.impl;
 
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.bean.BeanValidators;
 import com.ruoyi.system.domain.ProposalInfo;
+import com.ruoyi.system.domain.SysUserRole;
 import com.ruoyi.system.domain.activity.ZxActivity;
 import com.ruoyi.system.domain.activity.ZxActivityUser;
 import com.ruoyi.system.domain.assessment.ZxAssessment;
@@ -19,10 +24,12 @@ import com.ruoyi.system.domain.speak.ZxSpeak;
 import com.ruoyi.system.domain.sqmy.SqmyInfo;
 import com.ruoyi.system.domain.vo.MemberInfoVo;
 import com.ruoyi.system.mapper.*;
+import com.ruoyi.system.service.ISysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.service.IMemberInfoService;
 
+import javax.validation.Validator;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -66,6 +73,16 @@ public class MemberInfoServiceImpl implements IMemberInfoService {
     @Autowired
     private MemberAssessmentInfoMapper memberAssessmentInfoMapper;
 
+    @Autowired
+    private ISysConfigService configService;
+
+    @Autowired
+    private SysUserMapper userMapper;
+    @Autowired
+    protected Validator validator;
+    @Autowired
+    private SysUserRoleMapper userRoleMapper;
+
 
     /**
      * 查询委员信息
@@ -285,4 +302,92 @@ public class MemberInfoServiceImpl implements IMemberInfoService {
     public int deleteMemberInfoByMemberId(Long memberId) {
         return memberInfoMapper.deleteMemberInfoByMemberId(memberId);
     }
+
+    @Override
+    public String importData(List<MemberInfo> list, boolean updateSupport, String operName) {
+        if (StringUtils.isNull(list) || list.size() == 0)
+        {
+            throw new ServiceException("导入用户数据不能为空!");
+        }
+        int successNum = 0;
+        int failureNum = 0;
+        StringBuilder successMsg = new StringBuilder();
+        StringBuilder failureMsg = new StringBuilder();
+        String password = configService.selectConfigByKey("sys.user.initPassword");
+        for (MemberInfo member : list)
+        {
+            try
+            {
+                // 验证是否存在这个用户
+                SysUser u = userMapper.selectUserByUserName(member.getPhonenumber());
+                if (StringUtils.isNull(u))
+                {
+                    SysUser user = new SysUser();
+                    user.setUserName(member.getPhonenumber());
+                    user.setNickName(member.getName());
+                    user.setPhonenumber(member.getPhonenumber());
+                    user.setStatus("0");
+                    user.setDelFlag("0");
+                    BeanValidators.validateWithException(validator, user);
+                    user.setPassword(SecurityUtils.encryptPassword(password));
+                    user.setCreateBy(operName);
+                    userMapper.insertUser(user);
+                    //新增角色
+                    Long[] roleIds = {3L};
+                    insertUserRole(user.getUserId(),roleIds);
+                    //新增委员
+                    member.setUserId(SecurityUtils.getUserId());
+                    member.setCreateTime(DateUtils.getNowDate());
+                    memberInfoMapper.insertMemberInfo(member);
+                    successNum++;
+                    successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
+                }
+                else
+                {
+                    failureNum++;
+                    failureMsg.append("<br/>" + failureNum + "、账号 " + member.getPhonenumber() + " 已存在");
+                }
+            }
+            catch (Exception e)
+            {
+                failureNum++;
+                String msg = "<br/>" + failureNum + "、账号 " + member.getPhonenumber() + " 导入失败:";
+                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();
+    }
+
+    /**
+     * 新增用户角色信息
+     *
+     * @param userId 用户ID
+     * @param roleIds 角色组
+     */
+    public void insertUserRole(Long userId, Long[] roleIds)
+    {
+        if (StringUtils.isNotEmpty(roleIds))
+        {
+            // 新增用户与角色管理
+            List<SysUserRole> list = new ArrayList<SysUserRole>(roleIds.length);
+            for (Long roleId : roleIds)
+            {
+                SysUserRole ur = new SysUserRole();
+                ur.setUserId(userId);
+                ur.setRoleId(roleId);
+                list.add(ur);
+            }
+            userRoleMapper.batchUserRole(list);
+        }
+    }
+
 }

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

@@ -149,10 +149,10 @@ public class ProposalInfoServiceImpl implements IProposalInfoService
             if(!"8".equals(info.getProposalProgress())) {
                 wbj++;
             }
-            if(Integer.parseInt(info.getSatisfaction())>4){
+            if(StringUtils.isNotEmpty(info.getSatisfaction()) && Integer.parseInt(info.getSatisfaction())>4){
                 yjb++;
             }
-            if(Integer.parseInt(info.getSatisfaction())<=4){
+            if(StringUtils.isNotEmpty(info.getSatisfaction()) && Integer.parseInt(info.getSatisfaction())<=4){
                 djb++;
             }
         }