浏览代码

新增账号信息,导入

LIVE_YE 4 月之前
父节点
当前提交
a980fccb0d

+ 15 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/houseInfo/HouseInfoController.java

@@ -11,6 +11,7 @@ import com.ruoyi.system.service.IHouseInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
@@ -60,6 +61,20 @@ public class HouseInfoController extends BaseController {
         util.exportExcel(response, list, "房屋信息数据");
     }
 
+    /**
+     * 导入房屋信息列表
+     * @param file
+     * @return
+     * @throws Exception
+     */
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file) throws Exception
+    {
+        ExcelUtil<HouseInfo> util = new ExcelUtil<HouseInfo>(HouseInfo.class);
+        List<HouseInfo> houseInfoList = util.importExcel(file.getInputStream());
+        return houseInfoService.importHouseInfo(houseInfoList);
+    }
+
     /**
      * 获取房屋信息详细信息
      */

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/residentInfo/ResidentInfoController.java

@@ -66,7 +66,7 @@ public class ResidentInfoController extends BaseController {
     @Log(title = "居住人员信息,存储居住人员的详细信息", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody ResidentInfo residentInfo) {
-        return toAjax(residentInfoService.insertResidentInfo(residentInfo));
+        return residentInfoService.insertResidentInfo(residentInfo);
     }
 
     /**

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/staffManage/StaffManageController.java

@@ -76,7 +76,7 @@ public class StaffManageController extends BaseController {
     @Log(title = "员工管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody StaffManage staffManage) {
-        return toAjax(staffManageService.insertStaffManage(staffManage));
+        return staffManageService.insertStaffManage(staffManage);
     }
 
     /**

+ 6 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java

@@ -63,6 +63,12 @@ public class UserConstants
     /** InnerLink组件标识 */
     public final static String INNER_LINK = "InnerLink";
 
+    /** 默认密码 */
+    public final static String PASSWORD = "1QAZ!qaz";
+
+    /** 员工角色 */
+    public final static String SYS_EMP_ROLE_TYPE = "sys_emp_role_type";
+
     /** 校验是否唯一的返回标识 */
     public final static boolean UNIQUE = true;
     public final static boolean NOT_UNIQUE = false;

+ 28 - 1
ruoyi-system/src/main/java/com/ruoyi/system/domain/houseInfo/HouseInfo.java

@@ -2,12 +2,15 @@ package com.ruoyi.system.domain.houseInfo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.annotation.Excels;
 import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.core.domain.entity.ResidentInfo;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 房屋信息对象 house_info
@@ -83,7 +86,31 @@ public class HouseInfo extends BaseEntity
     @Excel(name = "房屋状态:1-自住,2-出租,3-空闲,4-待售")
     private Integer houseStatus;
 
-    public void setHouseId(Long houseId) 
+    /** 房屋住户信息 */
+    @Excels({
+            @Excel(name = "居住人员的详细门牌号", targetAttr = "detailedAddress"),
+            @Excel(name = "居住人员姓名", targetAttr = "residentName"),
+            @Excel(name = "居住人员身份证号码", targetAttr = "residentIdCard"),
+            @Excel(name = "居住人员出生日期", targetAttr = "residentBirthday"),
+            @Excel(name = "居住人员手机号", targetAttr = "residentPhone"),
+            @Excel(name = "居住人员性别", targetAttr = "residentGender", readConverterExp = "男=1,女=2"),
+            @Excel(name = "居住人员与户主的关系", targetAttr = "residentRelationship"),
+            @Excel(name = "是否是户主", targetAttr = "isHouseholder", readConverterExp = "是=Y,否=N"),
+            @Excel(name = "是否是租户", targetAttr = "isTenant", readConverterExp = "是=Y,否=N"),
+            @Excel(name = "居住人员工作单位", targetAttr = "residentEmployer"),
+            @Excel(name = "居住人员面貌", targetAttr = "residentAppearance")
+    })
+    private List<ResidentInfo> residentInfoList;
+
+    public List<ResidentInfo> getResidentInfoList() {
+        return residentInfoList;
+    }
+
+    public void setResidentInfoList(List<ResidentInfo> residentInfoList) {
+        this.residentInfoList = residentInfoList;
+    }
+
+    public void setHouseId(Long houseId)
     {
         this.houseId = houseId;
     }

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

@@ -67,4 +67,6 @@ public interface ResidentInfoMapper
      * @return
      */
     public ResidentInfo selectResidentInfoByUserId(Long userId);
+
+    void insertResidentInfoList(List<ResidentInfo> residentInfoList);
 }

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IHouseInfoService.java

@@ -1,5 +1,6 @@
 package com.ruoyi.system.service;
 
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.system.domain.houseInfo.HouseInfo;
 
 import java.util.List;
@@ -60,4 +61,6 @@ public interface IHouseInfoService
      * @return 结果
      */
     public int deleteHouseInfoByHouseId(Long houseId);
+
+    AjaxResult importHouseInfo(List<HouseInfo> houseInfoList);
 }

+ 2 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/IResidentInfoService.java

@@ -1,5 +1,6 @@
 package com.ruoyi.system.service;
 
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.ResidentInfo;
 
 import java.util.List;
@@ -35,7 +36,7 @@ public interface IResidentInfoService
      * @param residentInfo 居住人员信息,存储居住人员的详细信息
      * @return 结果
      */
-    public int insertResidentInfo(ResidentInfo residentInfo);
+    public AjaxResult insertResidentInfo(ResidentInfo residentInfo);
 
     /**
      * 修改居住人员信息,存储居住人员的详细信息

+ 2 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/IStaffManageService.java

@@ -1,5 +1,6 @@
 package com.ruoyi.system.service;
 
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.StaffManage;
 
 import java.util.List;
@@ -35,7 +36,7 @@ public interface IStaffManageService
      * @param staffManage 员工管理
      * @return 结果
      */
-    public int insertStaffManage(StaffManage staffManage);
+    public AjaxResult insertStaffManage(StaffManage staffManage);
 
     /**
      * 修改员工管理

+ 28 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/HouseInfoServiceImpl.java

@@ -1,8 +1,11 @@
 package com.ruoyi.system.service.impl;
 
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.ResidentInfo;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.system.domain.houseInfo.HouseInfo;
 import com.ruoyi.system.mapper.HouseInfoMapper;
+import com.ruoyi.system.mapper.ResidentInfoMapper;
 import com.ruoyi.system.service.IHouseInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -19,6 +22,8 @@ public class HouseInfoServiceImpl implements IHouseInfoService
 {
     @Autowired
     private HouseInfoMapper houseInfoMapper;
+    @Autowired
+    private ResidentInfoMapper residentInfoMapper;
 
     /**
      * 查询房屋信息
@@ -93,4 +98,27 @@ public class HouseInfoServiceImpl implements IHouseInfoService
     {
         return houseInfoMapper.deleteHouseInfoByHouseId(houseId);
     }
+
+    @Override
+    public AjaxResult importHouseInfo(List<HouseInfo> houseInfoList) {
+        if (houseInfoList == null || houseInfoList.size() < 1) {
+            return AjaxResult.error("当前表格数据为空");
+        }
+        try{
+            for (HouseInfo houseInfo : houseInfoList) {
+
+                houseInfo.setCreateTime(DateUtils.getNowDate());
+                houseInfoMapper.insertHouseInfo(houseInfo);
+                List<ResidentInfo> residentInfoList = houseInfo.getResidentInfoList();
+                for (ResidentInfo residentInfo : residentInfoList) {
+                    residentInfo.setHouseId(houseInfo.getHouseId());
+                }
+                residentInfoMapper.insertResidentInfoList(residentInfoList);
+
+            }
+            return AjaxResult.success("导入成功");
+        }catch (Exception e){
+            return AjaxResult.error("导入失败");
+        }
+    }
 }

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

@@ -1,9 +1,17 @@
 package com.ruoyi.system.service.impl;
 
+import com.ruoyi.common.constant.UserConstants;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.core.domain.entity.ResidentInfo;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.mapper.ResidentInfoMapper;
+import com.ruoyi.system.mapper.SysRoleMapper;
 import com.ruoyi.system.service.IResidentInfoService;
+import com.ruoyi.system.service.ISysDictDataService;
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -20,6 +28,12 @@ public class ResidentInfoServiceImpl implements IResidentInfoService
 {
     @Autowired
     private ResidentInfoMapper residentInfoMapper;
+    @Autowired
+    private SysRoleMapper roleMapper;
+    @Autowired
+    private ISysUserService userService;
+    @Autowired
+    private ISysDictDataService dictDataService;
 
     /**
      * 查询居住人员信息,存储居住人员的详细信息
@@ -53,10 +67,29 @@ public class ResidentInfoServiceImpl implements IResidentInfoService
      * @return 结果
      */
     @Override
-    public int insertResidentInfo(ResidentInfo residentInfo)
+    public AjaxResult insertResidentInfo(ResidentInfo residentInfo)
     {
+        //新增账号信息
+        SysUser user = new SysUser();
+        user.setUserName(residentInfo.getResidentPhone());
+        if (!userService.checkUserNameUnique(user))
+        {
+            return AjaxResult.error(user.getUserName() + "'失败,手机号已存在");
+        }
+        user.setPassword(SecurityUtils.encryptPassword(UserConstants.PASSWORD));
+        user.setPhonenumber(residentInfo.getResidentPhone());
+        user.setNickName(residentInfo.getResidentName());
+        //todo 部门  岗位
+        user.setSex(String.valueOf(residentInfo.getResidentGender()-1));
+        user.setStatus(UserConstants.DEPT_NORMAL);
+        //查询角色id
+        Long[] roleIds = {6L};
+        user.setRoleIds(roleIds);
+        userService.insertUser(user);
+
         residentInfo.setCreateTime(DateUtils.getNowDate());
-        return residentInfoMapper.insertResidentInfo(residentInfo);
+        int i = residentInfoMapper.insertResidentInfo(residentInfo);
+        return i > 0 ? AjaxResult.success() : AjaxResult.error();
     }
 
     /**

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

@@ -1,9 +1,18 @@
 package com.ruoyi.system.service.impl;
 
+import com.ruoyi.common.constant.UserConstants;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.core.domain.entity.StaffManage;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.mapper.StaffManageMapper;
+import com.ruoyi.system.mapper.SysRoleMapper;
 import com.ruoyi.system.service.IStaffManageService;
+import com.ruoyi.system.service.ISysDictDataService;
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -20,6 +29,12 @@ public class StaffManageServiceImpl implements IStaffManageService
 {
     @Autowired
     private StaffManageMapper staffManageMapper;
+    @Autowired
+    private SysRoleMapper roleMapper;
+    @Autowired
+    private ISysUserService userService;
+    @Autowired
+    private ISysDictDataService dictDataService;
 
     /**
      * 查询员工管理
@@ -52,10 +67,32 @@ public class StaffManageServiceImpl implements IStaffManageService
      * @return 结果
      */
     @Override
-    public int insertStaffManage(StaffManage staffManage)
+    public AjaxResult insertStaffManage(StaffManage staffManage)
     {
+        //新增账号信息
+        SysUser user = new SysUser();
+        user.setUserName(staffManage.getPhoneNumber());
+        if (!userService.checkUserNameUnique(user))
+        {
+            return AjaxResult.error(user.getUserName() + "'失败,手机号已存在");
+        }
+        user.setPassword(SecurityUtils.encryptPassword(UserConstants.PASSWORD));
+        user.setPhonenumber(staffManage.getPhoneNumber());
+        user.setNickName(staffManage.getStaffName());
+        //todo 部门  岗位
+        user.setSex(staffManage.getGender());
+        user.setStatus(UserConstants.DEPT_NORMAL);
+        //查询角色id
+        String roleKey = dictDataService.selectDictLabel(UserConstants.SYS_EMP_ROLE_TYPE, staffManage.getStaffCategory());
+        SysRole info = roleMapper.checkRoleKeyUnique(roleKey);
+        Long[] roleIds = {info.getRoleId()};
+        user.setRoleIds(roleIds);
+        userService.insertUser(user);
+
+        staffManage.setUserId(user.getUserId());
         staffManage.setCreateTime(DateUtils.getNowDate());
-        return staffManageMapper.insertStaffManage(staffManage);
+        int i = staffManageMapper.insertStaffManage(staffManage);
+        return i > 0 ? AjaxResult.success() : AjaxResult.error();
     }
 
     /**

+ 41 - 0
ruoyi-system/src/main/resources/mapper/system/ResidentInfoMapper.xml

@@ -101,6 +101,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="remark != null">#{remark},</if>
          </trim>
     </insert>
+    <insert id="insertResidentInfoList">
+        insert into resident_info(house_id,
+           user_id,
+            detailed_address,
+            resident_name,
+            resident_id_card,
+            resident_birthday,
+            resident_phone,
+            resident_gender,
+            resident_relationship,
+            is_householder,
+            is_tenant,
+            resident_employer,
+            resident_appearance,
+            create_by,
+            create_time,
+            update_by,
+            update_time,
+            remark,create_time,update_time)
+        <foreach item="residentInfo" index="index" collection="residentInfoList" separator=",">
+            (#{residentInfo.houseId},
+            #{residentInfo.userId},
+            #{residentInfo.detailedAddress},
+            #{residentInfo.residentName},
+            #{residentInfo.residentIdCard},
+            #{residentInfo.residentBirthday},
+            #{residentInfo.residentPhone},
+            #{residentInfo.residentGender},
+            #{residentInfo.residentRelationship},
+            #{residentInfo.isHouseholder},
+            #{residentInfo.isTenant},
+            #{residentInfo.residentEmployer},
+            #{residentInfo.residentAppearance},
+            #{vcreateBy},
+            #{residentInfo.createTime},
+            #{residentInfo.updateBy},
+            #{residentInfo.updateTime},
+            #{residentInforemark},
+            sysdate(),sysdate())
+        </foreach>
+    </insert>
 
     <update id="updateResidentInfo" parameterType="ResidentInfo">
         update resident_info