From b0402b407292f0708a1684cc0ca1d5e2d890b753 Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期一, 24 六月 2024 15:12:39 +0800
Subject: [PATCH] 多机构管理,问题修改

---
 project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java        |    1 
 project-report/src/main/java/com/project/report/service/IReportService.java                 |    2 
 project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java    |   45 +++++
 project-system/src/main/resources/mapper/system/SysUserMapper.xml                           |    6 
 project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java         |    4 
 project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java        |  100 ++++++++++++
 project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java                    |   56 +++++++
 project-report/src/main/resources/mapper/report/ReportMapper.xml                            |   14 
 project-system/src/main/java/com/project/system/domain/vo/UserDeptVo.java                   |   18 ++
 project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java      |   88 +++++++++-
 project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java |   12 
 project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java   |    8 
 project-system/src/main/java/com/project/system/service/ISysUserService.java                |   24 +++
 project-system/src/main/java/com/project/system/domain/vo/SysUserResultVo.java              |   20 ++
 project-system/src/main/java/com/project/system/service/ISysUserDeptService.java            |   17 ++
 project-system/src/main/java/com/project/system/domain/bo/editBo/UserDeptBo.java            |   19 ++
 16 files changed, 401 insertions(+), 33 deletions(-)

diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java
index cbf117c..b00888e 100644
--- a/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java
@@ -20,6 +20,7 @@
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -55,7 +56,12 @@
     @RepeatSubmit
     public AjaxResult export(SysCompanyQueryBo bo)
     {
-        List<SysCompanyVo> list = iSysCompanyService.queryList(bo);
+        List<SysCompanyVo> list;
+        if (bo==null){
+            list = new ArrayList<>();
+        } else {
+            list = iSysCompanyService.queryList(bo);
+        }
         ExcelUtil<SysCompanyVo> util = new ExcelUtil<>(SysCompanyVo.class);
         return util.exportExcel(list, "浼佷笟淇℃伅");
     }
diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
index f1c3f6d..3175f4f 100644
--- a/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
@@ -12,10 +12,11 @@
 import com.project.common.utils.SecurityUtils;
 import com.project.common.utils.StringUtils;
 import com.project.common.utils.poi.ExcelUtil;
-import com.project.system.service.ISysDeptService;
-import com.project.system.service.ISysPostService;
-import com.project.system.service.ISysRoleService;
-import com.project.system.service.ISysUserService;
+import com.project.system.domain.bo.editBo.UserDeptBo;
+import com.project.system.domain.vo.SysUserVo;
+import com.project.system.service.*;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -41,6 +42,7 @@
     private final ISysRoleService roleService;
     private final ISysDeptService deptService;
     private final ISysPostService postService;
+    private final ISysUserDeptService userDeptService;
 
     /**
      * 鑾峰彇鐢ㄦ埛鍒楄〃
@@ -64,6 +66,8 @@
         util.exportExcel(response, list, "鐢ㄦ埛鏁版嵁");
     }
 
+
+
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.IMPORT)
     @PreAuthorize("@ss.hasPermi('system:user:import')")
     @PostMapping("/importData")
@@ -76,12 +80,7 @@
         return success(message);
     }
 
-    @PostMapping("/importTemplate")
-    public void importTemplate(HttpServletResponse response)
-    {
-        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
-        util.importTemplateExcel(response, "鐢ㄦ埛鏁版嵁");
-    }
+
 
     /**
      * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅
@@ -210,6 +209,37 @@
         return toAjax(userService.resetPwd(user));
     }
 
+    @ApiOperation("鐢ㄦ埛澶氭満鏋勨�斺�斿洖鏄�")
+    @GetMapping("/batchUserDeptView")
+    public AjaxResult batchUserDeptView(@RequestParam("userId") Long userId)
+    {
+        return AjaxResult.success(userDeptService.batchUserDeptView(userId));
+    }
+
+    @ApiOperation("鐢ㄦ埛澶氭満鏋勨�斺�斾繚瀛�")
+    @Log(title = "鐢ㄦ埛澶氭満鏋勪繚瀛�", businessType = BusinessType.UPDATE)
+    @PostMapping("/batchUserDeptSave")
+    public AjaxResult batchUserDeptSave(@RequestBody UserDeptBo bo)
+    {
+        return AjaxResult.success(userDeptService.batchUserDeptSave(bo));
+    }
+
+    @ApiOperation("浼佷笟鐢ㄦ埛閲嶇疆瀵嗙爜")
+    @Log(title = "浼佷笟鐢ㄦ埛閲嶇疆瀵嗙爜", businessType = BusinessType.UPDATE)
+    @PostMapping("/resetCompanyUserPwd")
+    public AjaxResult resetCompanyUserPwd(@RequestParam("companyId") Long companyId,@RequestParam("newPassword") String newPassword)
+    {
+        SysUser user = userService.list(userService.lq().eq(SysUser::getDeptId, companyId)).get(0);
+        if (user==null) {
+            return AjaxResult.error("娌℃湁璇ヤ紒涓氬搴旇处鎴�");
+        }
+        if (userService.resetUserPwd(user.getUserName(), SecurityUtils.encryptPassword(newPassword), newPassword) > 0)
+        {
+            return success();
+        }
+        return error("淇敼瀵嗙爜寮傚父锛岃鑱旂郴绠$悊鍛�");
+    }
+
     /**
      * 鐘舵�佷慨鏀�
      */
@@ -261,4 +291,42 @@
     {
         return success(deptService.selectDeptTreeList(dept));
     }
+
+
+    @ApiOperation("鐢ㄦ埛妯℃澘涓嬭浇")
+    @GetMapping("/exportTemplate")
+    public AjaxResult exportTemplate()
+    {
+        ExcelUtil<SysUserVo> util = new ExcelUtil<>(SysUserVo.class);
+        return util.exportExcel(null, "鐢ㄦ埛淇℃伅妯℃澘");
+    }
+
+    @ApiOperation(value = "澶勭悊瀵煎叆淇℃伅")
+    @Log(title = "瀵煎叆鐢ㄦ埛淇℃伅澶勭悊" , businessType = BusinessType.OTHER)
+    @ApiImplicitParam(value = "鐢ㄦ埛淇℃伅", name = "file", dataType = "file", dataTypeClass = MultipartFile.class)
+    @PostMapping("/doImport")
+    public AjaxResult doImport(@RequestPart(value = "file") MultipartFile file, @RequestParam("deptId") Long deptId) throws Exception
+    {
+
+        ExcelUtil<SysUserVo> util = new ExcelUtil<>(SysUserVo.class);
+        List<SysUserVo> list = util.importExcel(file.getInputStream());
+        return AjaxResult.success(userService.doImport(list, deptId));
+    }
+
+//    @ApiOperation(value = "鏍¢獙瀵煎叆淇℃伅")
+//    @Log(title = "瀵煎叆鐢ㄦ埛淇℃伅鏍¢獙" , businessType = BusinessType.OTHER)
+//    @PostMapping("/checkImport")
+//    public AjaxResult checkImport(@RequestBody SysCompanyResultVo resultVo)
+//    {
+//        return AjaxResult.success(userService.checkImport(resultVo));
+//    }
+//
+//    @ApiOperation(value = "淇濆瓨瀵煎叆淇℃伅")
+//    @Log(title = "瀵煎叆鐢ㄦ埛淇℃伅淇濆瓨" , businessType = BusinessType.IMPORT)
+//    @PostMapping("/saveImport")
+//    public AjaxResult saveImport(@RequestBody SysCompanyResultVo resultVo)
+//    {
+//        return toAjax(userService.saveImport(resultVo) ? 1 : 0);
+//    }
+
 }
diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java
index cf78f03..880ea1d 100644
--- a/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java
+++ b/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java
@@ -80,6 +80,7 @@
                         order.setCheckStatus(-1);
                         //瀹℃壒鎷掔粷锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇�
                         smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus());
+                        orderService.updateById(order);
                     } else {
                         List<String> phones = orderService.getCheckPhones(order.getCheckLevel()+1, order.getApplyDeptId());
                         if (StringUtils.isNotEmpty(phones)){
diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
index ecc19c3..aca4fe8 100644
--- a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
+++ b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
@@ -126,12 +126,12 @@
     {
         SysUser loginUser = SecurityUtils.getLoginUser().getUser();
         bo.setCheckIds(loginUser.getPhonenumber());
-        List<Long> deptIds = deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId());
-        if (StringUtils.isNotEmpty(deptIds)){
-            bo.setApplyDeptIds(deptIds);
-        } else {
-            bo.setApplyDeptIds(null);
-        }
+//        List<Long> deptIds = deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId());
+//        if (StringUtils.isNotEmpty(deptIds)){
+//            bo.setApplyDeptIds(deptIds);
+//        } else {
+//            bo.setApplyDeptIds(null);
+//        }
         return this.baseMapper.selectCheckList(bo);
     }
 
diff --git a/project-report/src/main/java/com/project/report/service/IReportService.java b/project-report/src/main/java/com/project/report/service/IReportService.java
index 0a89986..85a9234 100644
--- a/project-report/src/main/java/com/project/report/service/IReportService.java
+++ b/project-report/src/main/java/com/project/report/service/IReportService.java
@@ -59,7 +59,7 @@
     List<KeyVal>  getComplaintStatusCount(ReportQueryBo bo);
 
     /**
-     * 鎵ф硶绫诲瀷鍗犳瘮
+     * 鎶曡瘔绫诲瀷鍗犳瘮
      * @param bo    骞存湀
      * @return  鎵ф硶绫诲瀷鍗犳瘮
      */
diff --git a/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java b/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java
index 2023958..c8fa078 100644
--- a/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java
+++ b/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java
@@ -164,10 +164,10 @@
     {
         return dictDataList.stream().map(e -> {
             KeyVal keyVal;
-            if (resultMap.get(e.getDictValue()) == null) {
+            if (resultMap.get(e.getDictCode().toString()) == null) {
                 keyVal = new KeyVal(e.getDictLabel(), 0);
             } else {
-                keyVal = new KeyVal(e.getDictLabel(), resultMap.get(e.getDictValue()));
+                keyVal = new KeyVal(e.getDictLabel(), resultMap.get(e.getDictCode().toString()));
             }
             return keyVal;
         }).collect(Collectors.toList());
diff --git a/project-report/src/main/resources/mapper/report/ReportMapper.xml b/project-report/src/main/resources/mapper/report/ReportMapper.xml
index b541a58..c68d466 100644
--- a/project-report/src/main/resources/mapper/report/ReportMapper.xml
+++ b/project-report/src/main/resources/mapper/report/ReportMapper.xml
@@ -14,7 +14,7 @@
         from enforce_order
         where 1=1
         <if test="deptId != null ">
-            AND apply_dept_id = #{deptId}
+            AND check_dept_id = #{deptId}
         </if>
         <if test="beginTime!=null and beginTime!=''">
             AND apply_time &gt;= #{beginTime}
@@ -92,15 +92,15 @@
         from enforce_complaint_log
         where 1=1
         <if test="beginTime!=null and beginTime!=''">
-            AND apply_time &gt;= #{beginTime}
+            AND complaint_time &gt;= #{beginTime}
         </if>
         <if test="endTime!=null and endTime!=''">
-            AND apply_time &lt;= #{endTime}
+            AND complaint_time &lt;= #{endTime}
         </if>
         GROUP BY k
     </select>
 
-    <!--    鎵ф硶绫诲瀷鍒嗗竷-->
+    <!--    鎶曡瘔绫诲瀷鍒嗗竷-->
     <select id="getComplaintTypeCount"
             parameterType="com.project.report.domain.bo.query.ReportQueryBo"
             resultType="com.project.common.vo.KeyVal">
@@ -110,12 +110,12 @@
         from enforce_complaint_log
         where 1=1
         <if test="beginTime!=null and beginTime!=''">
-            AND apply_time &gt;= #{beginTime}
+            AND complaint_time &gt;= #{beginTime}
         </if>
         <if test="endTime!=null and endTime!=''">
-            AND apply_time &lt;= #{endTime}
+            AND complaint_time &lt;= #{endTime}
         </if>
-        <if test="doComplaint!=null ">
+        <if test="doComplaint != null ">
             <if test="doComplaint == 0 ">
                 AND complaint_status = 0
             </if>
diff --git a/project-system/src/main/java/com/project/system/domain/bo/editBo/UserDeptBo.java b/project-system/src/main/java/com/project/system/domain/bo/editBo/UserDeptBo.java
new file mode 100644
index 0000000..223b1ac
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/bo/editBo/UserDeptBo.java
@@ -0,0 +1,19 @@
+package com.project.system.domain.bo.editBo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 鍔熻兘鎻忚堪锛�
+ *
+ * @author ZQN
+ * @version 1.0
+ */
+
+@Data
+public class UserDeptBo
+{
+    private Long userId;
+    private List<Long> deptIds;
+}
diff --git a/project-system/src/main/java/com/project/system/domain/vo/SysUserResultVo.java b/project-system/src/main/java/com/project/system/domain/vo/SysUserResultVo.java
new file mode 100644
index 0000000..838c52a
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/vo/SysUserResultVo.java
@@ -0,0 +1,20 @@
+package com.project.system.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 鍔熻兘鎻忚堪锛�
+ *
+ * @author ZQN
+ * @version 1.0
+ */
+
+@Data
+@ApiModel("鐢ㄦ埛淇℃伅瑙嗗浘瀵硅薄")
+public class SysUserResultVo
+{
+    private List<SysUserVo> voList;
+}
diff --git a/project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java b/project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java
new file mode 100644
index 0000000..01ef4bf
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java
@@ -0,0 +1,56 @@
+package com.project.system.domain.vo;
+
+import com.project.common.annotation.Excel;
+import com.project.common.core.domain.model.ImportError;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 鍔熻兘鎻忚堪锛�
+ *
+ * @author ZQN
+ * @version 1.0
+ */
+
+@Data
+public class SysUserVo
+{
+
+    @Excel(name = "濮撳悕")
+    @ApiModelProperty("濮撳悕")
+    private String nickName;
+
+
+    @Excel(name = "褰掑睘閮ㄩ棬")
+    @ApiModelProperty("褰掑睘閮ㄩ棬")
+    private String deptName;
+
+    @Excel(name = "鎵嬫満鍙�")
+    @ApiModelProperty("鎵嬫満鍙�")
+    private String phonenumber;
+
+    @Excel(name = "鐢ㄦ埛閭")
+    @ApiModelProperty("鐢ㄦ埛閭")
+    private String email;
+
+    @Excel(name = "鎬у埆")
+    @ApiModelProperty("鎬у埆")
+    private String sex;
+
+    @Excel(name = "澶囨敞")
+    @ApiModelProperty("澶囨敞")
+    private String remark;
+
+    @ApiModelProperty("閮ㄩ棬id")
+    private Long deptId;
+
+
+    @ApiModelProperty("鐢ㄦ埛id")
+    private Long userId;
+
+    @ApiModelProperty("閿欒淇℃伅鏁版嵁")
+    private List<ImportError> errorList;
+
+}
diff --git a/project-system/src/main/java/com/project/system/domain/vo/UserDeptVo.java b/project-system/src/main/java/com/project/system/domain/vo/UserDeptVo.java
new file mode 100644
index 0000000..d411f0d
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/vo/UserDeptVo.java
@@ -0,0 +1,18 @@
+package com.project.system.domain.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 鍔熻兘鎻忚堪锛�
+ *
+ * @author ZQN
+ * @version 1.0
+ */
+
+@Data
+public class UserDeptVo {
+    private Long userId;
+    private List<Long> deptIds;
+}
diff --git a/project-system/src/main/java/com/project/system/service/ISysUserDeptService.java b/project-system/src/main/java/com/project/system/service/ISysUserDeptService.java
index 3932764..8504b89 100644
--- a/project-system/src/main/java/com/project/system/service/ISysUserDeptService.java
+++ b/project-system/src/main/java/com/project/system/service/ISysUserDeptService.java
@@ -2,13 +2,28 @@
 
 import com.project.common.mybatis.IBaseService;
 import com.project.system.domain.SysUserDept;
+import com.project.system.domain.bo.editBo.UserDeptBo;
+import com.project.system.domain.vo.UserDeptVo;
 
 /**
  * 鐢ㄦ埛涓庨儴闂ㄥ叧鑱擲ervice鎺ュ彛
  *
  * @author manton
  */
-public interface ISysUserDeptService extends IBaseService<SysUserDept> {
+public interface ISysUserDeptService extends IBaseService<SysUserDept>
+{
 
+    /**
+     * 鐢ㄦ埛澶氱粨鏋勫洖鏄�
+     * @param userId    鐢ㄦ埛id
+     * @return  鍐呭
+     */
+    UserDeptVo batchUserDeptView(Long userId);
 
+    /**
+     * 鐢ㄦ埛澶氱粨鏋勪繚瀛�
+     * @param bo    鍙傛暟
+     * @return  缁撴灉
+     */
+    Boolean batchUserDeptSave(UserDeptBo bo);
 }
diff --git a/project-system/src/main/java/com/project/system/service/ISysUserService.java b/project-system/src/main/java/com/project/system/service/ISysUserService.java
index d786b84..51f2c18 100644
--- a/project-system/src/main/java/com/project/system/service/ISysUserService.java
+++ b/project-system/src/main/java/com/project/system/service/ISysUserService.java
@@ -2,6 +2,8 @@
 
 import com.project.common.core.domain.entity.SysUser;
 import com.project.common.mybatis.IBaseService;
+import com.project.system.domain.vo.SysUserResultVo;
+import com.project.system.domain.vo.SysUserVo;
 
 import java.util.List;
 
@@ -230,4 +232,26 @@
      * @return 缁撴灉
      */
     public int resetPhone(Long userId, String phone);
+
+    /**
+     * 澶勭悊瀵煎叆淇℃伅
+     * @param list	鏁版嵁
+     * @param deptId	瀵煎叆閮ㄩ棬id
+     * @return	缁撴灉
+     */
+    SysUserResultVo doImport(List<SysUserVo> list, Long deptId);
+
+    /**
+     * 鏍¢獙瀵煎叆淇℃伅
+     * @param resultVo	鏁版嵁
+     * @return	缁撴灉
+     */
+    SysUserResultVo checkImport(SysUserResultVo resultVo);
+
+    /**
+     * 淇濆瓨瀵煎叆淇℃伅
+     * @param resultVo	鏁版嵁
+     * @return	缁撴灉
+     */
+    Boolean saveImport(SysUserResultVo resultVo);
 }
diff --git a/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java
index 1a871f1..6a75b91 100644
--- a/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java
+++ b/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java
@@ -1,12 +1,21 @@
 package com.project.system.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.common.exception.base.BaseException;
+import com.project.common.utils.StringUtils;
 import com.project.system.domain.SysUserDept;
+import com.project.system.domain.bo.editBo.UserDeptBo;
+import com.project.system.domain.vo.UserDeptVo;
 import com.project.system.mapper.SysUserDeptMapper;
 import com.project.system.service.ISysUserDeptService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鐢ㄦ埛涓庨儴闂ㄥ叧鑱擲ervice涓氬姟灞傚鐞�
@@ -18,4 +27,40 @@
 public class SysUserDeptServiceImpl extends ServiceImpl<SysUserDeptMapper, SysUserDept> implements ISysUserDeptService {
 
 
+    /**
+     * 鐢ㄦ埛澶氭満鏋勫洖鏄�
+     * @param userId    鐢ㄦ埛id
+     * @return  鍐呭
+     */
+    @Override
+    public UserDeptVo batchUserDeptView(Long userId)
+    {
+        List<SysUserDept> list = this.list(lq().eq(SysUserDept::getUserId, userId));
+        List<Long> deptIds = list.stream().map(SysUserDept::getDeptId).collect(Collectors.toList());
+        UserDeptVo vo = new UserDeptVo();
+        vo.setUserId(userId);
+        vo.setDeptIds(deptIds);
+        return vo;
+    }
+
+    /**
+     * 鐢ㄦ埛澶氭満鏋勪繚瀛�
+     * @param bo    鍙傛暟
+     * @return  缁撴灉
+     */
+    @Override
+    @Transactional
+    public Boolean batchUserDeptSave(UserDeptBo bo)
+    {
+        Long userId = bo.getUserId();
+        if (userId==null || StringUtils.isEmpty(bo.getDeptIds())){
+            throw new BaseException("鍙傛暟鏈夎锛�");
+        }
+        this.remove(lq().eq(SysUserDept::getUserId, userId));
+        List<SysUserDept> saveList = new ArrayList<>();
+        for (Long deptId : bo.getDeptIds()) {
+            saveList.add(new SysUserDept().setUserId(userId).setDeptId(deptId));
+        }
+        return this.saveBatch(saveList);
+    }
 }
diff --git a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java
index b002089..dfc53ff 100644
--- a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java
+++ b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java
@@ -4,18 +4,23 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.project.common.annotation.DataScope;
 import com.project.common.constant.UserConstants;
+import com.project.common.core.domain.entity.SysDept;
 import com.project.common.core.domain.entity.SysRole;
 import com.project.common.core.domain.entity.SysUser;
+import com.project.common.core.domain.model.ImportError;
 import com.project.common.exception.ServiceException;
+import com.project.common.exception.base.BaseException;
 import com.project.common.utils.SecurityUtils;
 import com.project.common.utils.StringUtils;
 import com.project.common.utils.bean.BeanValidators;
 import com.project.common.utils.spring.SpringUtils;
-import com.project.system.domain.SysPost;
-import com.project.system.domain.SysUserPost;
-import com.project.system.domain.SysUserRole;
+import com.project.system.domain.*;
+import com.project.system.domain.vo.SysUserResultVo;
+import com.project.system.domain.vo.SysUserVo;
 import com.project.system.mapper.*;
 import com.project.system.service.ISysConfigService;
+import com.project.system.service.ISysDeptService;
+import com.project.system.service.ISysUserDeptService;
 import com.project.system.service.ISysUserService;
 import lombok.RequiredArgsConstructor;
 import org.slf4j.Logger;
@@ -47,6 +52,8 @@
     private final SysUserRoleMapper userRoleMapper;
     private final SysUserPostMapper userPostMapper;
     private final ISysConfigService configService;
+    private final ISysUserDeptService userDeptService;
+    private final ISysDeptService deptService;
     protected final Validator validator;
 
     /**
@@ -250,6 +257,10 @@
         insertUserPost(user);
         // 鏂板鐢ㄦ埛涓庤鑹茬鐞�
         insertUserRole(user);
+        // 鏂板鐢ㄦ埛涓庨儴闂ㄧ鐞�
+        if (!"02".equals(user.getUserType())){
+            insertUserDept(user);
+        }
         return rows;
     }
 
@@ -285,6 +296,10 @@
         // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞�
         insertUserPost(user);
 
+        // 鏂板鐢ㄦ埛涓庨儴闂ㄧ鐞�
+        if (!"02".equals(user.getUserType())){
+            insertUserDept(user);
+        }
         return userMapper.updateUser(user);
     }
 
@@ -372,6 +387,21 @@
     public void insertUserRole(SysUser user)
     {
         this.insertUserRole(user.getUserId(), user.getRoleIds());
+    }
+
+    /**
+     * 鏂板鐢ㄦ埛閮ㄩ棬
+     *
+     * @param user 鐢ㄦ埛瀵硅薄
+     */
+    public void insertUserDept(SysUser user)
+    {
+       userDeptService.remove(userDeptService.lq()
+                .eq(SysUserDept::getUserId, user.getUserId())
+                .eq(SysUserDept::getDeptId, user.getDeptId())
+        );
+        SysUserDept userDept = new SysUserDept().setUserId(user.getUserId()).setDeptId(user.getDeptId());
+        userDeptService.save(userDept);
     }
 
     /**
@@ -556,4 +586,68 @@
     public int resetPhone(Long userId, String phone) {
         return userMapper.resetPhone(userId, phone);
     }
+
+    @Override
+    public SysUserResultVo doImport(List<SysUserVo> list, Long deptId)
+    {
+        if (list==null || list.size()<1){
+            throw new BaseException("鏈幏鍙栧埌瀵煎叆淇℃伅锛�");
+        }
+
+        SysUserResultVo resultVo = new SysUserResultVo();
+        list.forEach(sysUserVo -> {
+            sysUserVo.setDeptId(deptId);
+        });
+        resultVo.setVoList(list);
+        return this.checkImport(resultVo);
+    }
+
+    @Override
+    public SysUserResultVo checkImport(SysUserResultVo resultVo)
+    {
+        if (resultVo==null || StringUtils.isEmpty(resultVo.getVoList())){
+            throw new BaseException("鏈幏鍙栧埌瀵煎叆淇℃伅锛�");
+        }
+        for (SysUserVo vo : resultVo.getVoList()) {
+            List<ImportError> errors = new ArrayList<>();
+            validEntityBeforeImport(vo, errors);
+            vo.setErrorList(errors);
+        }
+        return  resultVo;
+    }
+
+    private void validEntityBeforeImport(SysUserVo entity, List<ImportError> errorList)
+    {
+        if (StringUtils.isEmpty(entity.getNickName())){
+            errorList.add(new ImportError(0, "璇峰~濮撳悕锛�"));
+        }
+        if (StringUtils.isEmpty(entity.getDeptName())){
+            errorList.add(new ImportError(1, "璇峰~鍐欓儴闂ㄤ俊鎭紒"));
+        } else {
+            SysDept sysDept = deptService.selectDeptById(entity.getDeptId());
+            if (sysDept==null || !sysDept.getDeptName().equals(entity.getDeptName())){
+                errorList.add(new ImportError(1, "閮ㄩ棬淇℃伅涓嶅尮閰嶏紒"));
+            }
+        }
+        if (StringUtils.isEmpty(entity.getPhonenumber())){
+            errorList.add(new ImportError(2, "璇峰~鍐欐墜鏈哄彿锛�"));
+        } else {
+            SysUser user = this.selectUserByUserName(entity.getPhonenumber());
+            if (user!=null){
+                entity.setUserId(user.getUserId());
+            } else {
+                SysUser check = new SysUser();
+                check.setPhonenumber(entity.getPhonenumber());
+                String s = checkPhoneUnique(check);
+                if (UserConstants.NOT_UNIQUE.equals(s)) {
+                    errorList.add(new ImportError(2, "鎵嬫満鍙峰凡瀛樺湪锛�"));
+                }
+            }
+        }
+    }
+
+    @Override
+    public Boolean saveImport(SysUserResultVo resultVo) {
+        return null;
+    }
 }
diff --git a/project-system/src/main/resources/mapper/system/SysUserMapper.xml b/project-system/src/main/resources/mapper/system/SysUserMapper.xml
index 3c80ddd..478a8c2 100644
--- a/project-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/project-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -249,11 +249,13 @@
 		select u.phonenumber
 			from sys_user u
 			join sys_user_role ur on u.user_id = ur.user_id
-			join sys_role r on r.role_id=ur.role_id
+			join sys_role r on r.role_id = ur.role_id
+			join sys_user_dept ud on u.user_id = ud.dept_id
 		where
 		  u.user_type != '02'
+		  and u.status='0'
 		  and r.role_key = #{roleKey}
-		  and u.dept_id = #{deptId}
+		  and ud.dept_id = #{deptId}
 	</select>
 
 </mapper>

--
Gitblit v1.9.1