Bläddra i källkod

护理人员管理

qinyan 5 månader sedan
förälder
incheckning
66ef3193d0

+ 10 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/care/CareCompaniesController.java

@@ -120,4 +120,14 @@ public class CareCompaniesController extends BaseController
         user.setUpdateBy(getUsername());
         return toAjax(userService.resetPwd(user));
     }
+
+    /**
+     * 获取所有的公司信息
+     */
+    @GetMapping("/listAll")
+    public List<CareCompanies> listAll(CareCompanies careCompanies)
+    {
+        List<CareCompanies> list = careCompaniesService.selectCareCompaniesList(careCompanies);
+        return list;
+    }
 }

+ 123 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/care/CareNursesController.java

@@ -0,0 +1,123 @@
+package com.ruoyi.web.controller.care;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.service.ISysUserService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.care.domain.CareNurses;
+import com.ruoyi.care.service.ICareNursesService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 护理人员Controller
+ * 
+ * @author qy
+ * @date 2024-11-26
+ */
+@RestController
+@RequestMapping("/care/nurses")
+public class CareNursesController extends BaseController
+{
+    @Autowired
+    private ICareNursesService careNursesService;
+    @Autowired
+    private ISysUserService userService;
+    /**
+     * 查询护理人员列表
+     */
+    @PreAuthorize("@ss.hasPermi('care:nurses:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(CareNurses careNurses)
+    {
+        startPage();
+        List<CareNurses> list = careNursesService.selectCareNursesList(careNurses);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出护理人员列表
+     */
+    @PreAuthorize("@ss.hasPermi('care:nurses:export')")
+    @Log(title = "护理人员", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, CareNurses careNurses)
+    {
+        List<CareNurses> list = careNursesService.selectCareNursesList(careNurses);
+        ExcelUtil<CareNurses> util = new ExcelUtil<CareNurses>(CareNurses.class);
+        util.exportExcel(response, list, "护理人员数据");
+    }
+
+    /**
+     * 获取护理人员详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('care:nurses:query')")
+    @GetMapping(value = "/{nurseId}")
+    public AjaxResult getInfo(@PathVariable("nurseId") Long nurseId)
+    {
+        return success(careNursesService.selectCareNursesByNurseId(nurseId));
+    }
+
+    /**
+     * 新增护理人员
+     */
+    @PreAuthorize("@ss.hasPermi('care:nurses:add')")
+    @Log(title = "护理人员", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CareNurses careNurses)
+    {
+        return toAjax(careNursesService.insertCareNurses(careNurses));
+    }
+
+    /**
+     * 修改护理人员
+     */
+    @PreAuthorize("@ss.hasPermi('care:nurses:edit')")
+    @Log(title = "护理人员", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CareNurses careNurses)
+    {
+        return toAjax(careNursesService.updateCareNurses(careNurses));
+    }
+
+    /**
+     * 删除护理人员
+     */
+    @PreAuthorize("@ss.hasPermi('care:nurses:remove')")
+    @Log(title = "护理人员", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{nurseIds}")
+    public AjaxResult remove(@PathVariable Long[] nurseIds)
+    {
+        return toAjax(careNursesService.deleteCareNursesByNurseIds(nurseIds));
+    }
+
+    /**
+     * 重置密码
+     */
+    @PreAuthorize("@ss.hasPermi('care:nurses:resetPassword')")
+    @Log(title = "护理人员重置密码", businessType = BusinessType.UPDATE)
+    @PutMapping("/resetPassword/{userId}")
+    public AjaxResult resetPassword(@PathVariable("userId") Long userId)
+    {
+        SysUser user = userService.selectUserById(userId);
+        user.setPassword(SecurityUtils.encryptPassword("123456"));
+        user.setUpdateBy(getUsername());
+        return toAjax(userService.resetPwd(user));
+    }
+}

+ 206 - 0
ruoyi-system/src/main/java/com/ruoyi/care/domain/CareNurses.java

@@ -0,0 +1,206 @@
+package com.ruoyi.care.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 护理人员对象 care_nurses
+ * 
+ * @author qy
+ * @date 2024-11-26
+ */
+public class CareNurses extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 护理人员的唯一标识符 */
+    private Long nurseId;
+
+    /** 护理人员的名字 */
+    @Excel(name = "护理人员的名字")
+    private String name;
+    /** 护理人员的名字 */
+    @Excel(name = "护理人员的性别")
+    private String age;
+
+    public String getAge() {
+        return age;
+    }
+
+    public void setAge(String age) {
+        this.age = age;
+    }
+
+    /** 护理人员的出生日期 */
+    @Excel(name = "护理人员的出生日期")
+    private String dateOfBirth;
+
+    /** 护理人员的地址 */
+    @Excel(name = "护理人员的地址")
+    private String address;
+
+    /** 护理人员的联系电话 */
+    @Excel(name = "护理人员的联系电话")
+    private String phoneNumber;
+
+    /** 护理人员的执业许可证号码 */
+    @Excel(name = "护理人员的执业许可证号码")
+    private String licenseNumber;
+
+    /** 护理人员的工作经验年限 */
+    @Excel(name = "护理人员的工作经验年限")
+    private Long experienceYears;
+
+    /** 所在公司 */
+    @Excel(name = "所在公司")
+    private Long companyId;
+    @Excel(name = "公司名")
+    private String companyName;
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 登录名 */
+    private String loginName;
+
+    /** 登录密码 */
+    private String password;
+    /** 关联用户表id */
+    @Excel(name = "关联用户表id")
+    private Long userId;
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+    public void setNurseId(Long nurseId) 
+    {
+        this.nurseId = nurseId;
+    }
+
+    public Long getNurseId() 
+    {
+        return nurseId;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setDateOfBirth(String dateOfBirth) 
+    {
+        this.dateOfBirth = dateOfBirth;
+    }
+
+    public String getDateOfBirth() 
+    {
+        return dateOfBirth;
+    }
+    public void setAddress(String address) 
+    {
+        this.address = address;
+    }
+
+    public String getAddress() 
+    {
+        return address;
+    }
+    public void setPhoneNumber(String phoneNumber) 
+    {
+        this.phoneNumber = phoneNumber;
+    }
+
+    public String getPhoneNumber() 
+    {
+        return phoneNumber;
+    }
+    public void setLicenseNumber(String licenseNumber) 
+    {
+        this.licenseNumber = licenseNumber;
+    }
+
+    public String getLicenseNumber() 
+    {
+        return licenseNumber;
+    }
+    public void setExperienceYears(Long experienceYears) 
+    {
+        this.experienceYears = experienceYears;
+    }
+
+    public Long getExperienceYears() 
+    {
+        return experienceYears;
+    }
+    public void setCompanyId(Long companyId) 
+    {
+        this.companyId = companyId;
+    }
+
+    public Long getCompanyId() 
+    {
+        return companyId;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("nurseId", getNurseId())
+            .append("name", getName())
+            .append("dateOfBirth", getDateOfBirth())
+            .append("address", getAddress())
+            .append("phoneNumber", getPhoneNumber())
+            .append("licenseNumber", getLicenseNumber())
+            .append("experienceYears", getExperienceYears())
+            .append("companyId", getCompanyId())
+            .append("delFlag", getDelFlag())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/care/mapper/CareNursesMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.care.mapper;
+
+import java.util.List;
+import com.ruoyi.care.domain.CareNurses;
+
+/**
+ * 护理人员Mapper接口
+ * 
+ * @author qy
+ * @date 2024-11-26
+ */
+public interface CareNursesMapper 
+{
+    /**
+     * 查询护理人员
+     * 
+     * @param nurseId 护理人员主键
+     * @return 护理人员
+     */
+    public CareNurses selectCareNursesByNurseId(Long nurseId);
+
+    /**
+     * 查询护理人员列表
+     * 
+     * @param careNurses 护理人员
+     * @return 护理人员集合
+     */
+    public List<CareNurses> selectCareNursesList(CareNurses careNurses);
+
+    /**
+     * 新增护理人员
+     * 
+     * @param careNurses 护理人员
+     * @return 结果
+     */
+    public int insertCareNurses(CareNurses careNurses);
+
+    /**
+     * 修改护理人员
+     * 
+     * @param careNurses 护理人员
+     * @return 结果
+     */
+    public int updateCareNurses(CareNurses careNurses);
+
+    /**
+     * 删除护理人员
+     * 
+     * @param nurseId 护理人员主键
+     * @return 结果
+     */
+    public int deleteCareNursesByNurseId(Long nurseId);
+
+    /**
+     * 批量删除护理人员
+     * 
+     * @param nurseIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCareNursesByNurseIds(Long[] nurseIds);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/care/service/ICareNursesService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.care.service;
+
+import java.util.List;
+import com.ruoyi.care.domain.CareNurses;
+
+/**
+ * 护理人员Service接口
+ * 
+ * @author qy
+ * @date 2024-11-26
+ */
+public interface ICareNursesService 
+{
+    /**
+     * 查询护理人员
+     * 
+     * @param nurseId 护理人员主键
+     * @return 护理人员
+     */
+    public CareNurses selectCareNursesByNurseId(Long nurseId);
+
+    /**
+     * 查询护理人员列表
+     * 
+     * @param careNurses 护理人员
+     * @return 护理人员集合
+     */
+    public List<CareNurses> selectCareNursesList(CareNurses careNurses);
+
+    /**
+     * 新增护理人员
+     * 
+     * @param careNurses 护理人员
+     * @return 结果
+     */
+    public int insertCareNurses(CareNurses careNurses);
+
+    /**
+     * 修改护理人员
+     * 
+     * @param careNurses 护理人员
+     * @return 结果
+     */
+    public int updateCareNurses(CareNurses careNurses);
+
+    /**
+     * 批量删除护理人员
+     * 
+     * @param nurseIds 需要删除的护理人员主键集合
+     * @return 结果
+     */
+    public int deleteCareNursesByNurseIds(Long[] nurseIds);
+
+    /**
+     * 删除护理人员信息
+     * 
+     * @param nurseId 护理人员主键
+     * @return 结果
+     */
+    public int deleteCareNursesByNurseId(Long nurseId);
+}

+ 162 - 0
ruoyi-system/src/main/java/com/ruoyi/care/service/impl/CareNursesServiceImpl.java

@@ -0,0 +1,162 @@
+package com.ruoyi.care.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+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.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.SysUserRole;
+import com.ruoyi.system.mapper.SysRoleMapper;
+import com.ruoyi.system.mapper.SysUserMapper;
+import com.ruoyi.system.mapper.SysUserRoleMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.care.mapper.CareNursesMapper;
+import com.ruoyi.care.domain.CareNurses;
+import com.ruoyi.care.service.ICareNursesService;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 护理人员Service业务层处理
+ * 
+ * @author qy
+ * @date 2024-11-26
+ */
+@Service
+public class CareNursesServiceImpl implements ICareNursesService 
+{
+    @Autowired
+    private CareNursesMapper careNursesMapper;
+    @Autowired
+    private SysUserMapper userMapper;
+    @Autowired
+    private SysUserRoleMapper userRoleMapper;
+    @Autowired
+    private SysRoleMapper roleMapper;
+    /**
+     * 查询护理人员
+     * 
+     * @param nurseId 护理人员主键
+     * @return 护理人员
+     */
+    @Override
+    public CareNurses selectCareNursesByNurseId(Long nurseId)
+    {
+        return careNursesMapper.selectCareNursesByNurseId(nurseId);
+    }
+
+    /**
+     * 查询护理人员列表
+     * 
+     * @param careNurses 护理人员
+     * @return 护理人员
+     */
+    @Override
+    public List<CareNurses> selectCareNursesList(CareNurses careNurses)
+    {
+        return careNursesMapper.selectCareNursesList(careNurses);
+    }
+
+    /**
+     * 新增护理人员
+     * 
+     * @param careNurses 护理人员
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int insertCareNurses(CareNurses careNurses)
+    {
+        //新增用户信息
+        SysUser user = new SysUser();
+        user.setUserName(careNurses.getLoginName());
+        user.setNickName(careNurses.getName());
+        if(StringUtils.isNotEmpty(careNurses.getPassword())){
+            user.setPassword(SecurityUtils.encryptPassword(careNurses.getPassword()));
+        }
+        user.setUser_type("02");//护理人员
+        userMapper.insertUser(user);
+
+        // 新增护理人员信息
+        careNurses.setCreateTime(DateUtils.getNowDate());
+        careNurses.setUserId(user.getUserId());
+        int rows =careNursesMapper.insertCareNurses(careNurses);
+
+
+        //获取护理人员权限nurse
+        SysRole role=roleMapper.checkRoleKeyUnique("nurse");
+        // 新增用户与角色管理
+        insertUserRole(user.getUserId(), role.getRoleId());
+        careNurses.setCreateTime(DateUtils.getNowDate());
+        return rows;
+    }
+    /**
+     * 新增用户角色信息
+     *
+     * @param userId 用户ID
+     * @param roleId 角色组
+     */
+    public void insertUserRole(Long userId,Long roleId)
+    {
+        if (StringUtils.isNotEmpty(roleId.toString()))
+        {
+            // 新增用户与角色管理
+            List<SysUserRole> list = new ArrayList<SysUserRole>(0);
+            SysUserRole ur = new SysUserRole();
+            ur.setUserId(userId);
+            ur.setRoleId(roleId);
+            list.add(ur);
+            userRoleMapper.batchUserRole(list);
+        }
+    }
+    /**
+     * 修改护理人员
+     * 
+     * @param careNurses 护理人员
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int updateCareNurses(CareNurses careNurses)
+    {
+        Long userId = careNurses.getUserId();
+        // 修改用户信息
+        SysUser user=userMapper.selectUserById(userId);
+        user.setUserName(careNurses.getLoginName());
+        user.setNickName(careNurses.getName());
+        if(StringUtils.isNotEmpty(careNurses.getPassword())){
+            user.setPassword(SecurityUtils.encryptPassword(careNurses.getPassword()));
+        }
+        userMapper.updateUser(user);
+
+        careNurses.setUpdateTime(DateUtils.getNowDate());
+        return careNursesMapper.updateCareNurses(careNurses);
+    }
+
+    /**
+     * 批量删除护理人员
+     * 
+     * @param nurseIds 需要删除的护理人员主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCareNursesByNurseIds(Long[] nurseIds)
+    {
+        return careNursesMapper.deleteCareNursesByNurseIds(nurseIds);
+    }
+
+    /**
+     * 删除护理人员信息
+     * 
+     * @param nurseId 护理人员主键
+     * @return 结果
+     */
+    @Override
+    public int deleteCareNursesByNurseId(Long nurseId)
+    {
+        return careNursesMapper.deleteCareNursesByNurseId(nurseId);
+    }
+}

+ 163 - 0
ruoyi-system/src/main/resources/mapper/care/CareNursesMapper.xml

@@ -0,0 +1,163 @@
+<?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.care.mapper.CareNursesMapper">
+    
+    <resultMap type="CareNurses" id="CareNursesResult">
+        <result property="nurseId"    column="nurse_id"    />
+        <result property="name"    column="name"    />
+        <result property="dateOfBirth"    column="date_of_birth"    />
+        <result property="address"    column="address"    />
+        <result property="phoneNumber"    column="phone_number"    />
+        <result property="licenseNumber"    column="license_number"    />
+        <result property="experienceYears"    column="experience_years"    />
+        <result property="companyId"    column="company_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="loginName"    column="login_name"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+        <result property="age"    column="age"    />
+        <result property="companyName"    column="company_name"    />
+    </resultMap>
+
+    <sql id="selectCareNursesVo">
+        select nurse_id, name, date_of_birth, address, phone_number, license_number, experience_years, company_id, del_flag, create_by, create_time, update_by, update_time, remark,user_id,age from care_nurses
+    </sql>
+
+    <select id="selectCareNursesList" parameterType="CareNurses" resultMap="CareNursesResult">
+        SELECT
+        c.nurse_id,
+        c.NAME,
+        c.date_of_birth,
+        c.address,
+        c.phone_number,
+        c.license_number,
+        c.experience_years,
+        c.company_id,
+        c.del_flag,
+        c.create_by,
+        c.create_time,
+        c.age,
+        c.update_by,
+        c.update_time,
+        c.remark,
+        c.user_id,
+        u.user_name login_name ,p.`name` company_name
+        FROM
+        care_nurses c
+        LEFT JOIN sys_user u ON u.user_id = c.user_id
+        LEFT JOIN care_companies p on p.company_id=c.company_id
+        <where>
+            <if test="1==1"> and c.del_flag = '0'</if>
+            <if test="name != null  and name != ''"> and c.name like concat('%', #{name}, '%')</if>
+            <if test="dateOfBirth != null  and dateOfBirth != ''"> and c.date_of_birth = #{dateOfBirth}</if>
+            <if test="address != null  and address != ''"> and c.address = #{address}</if>
+            <if test="phoneNumber != null  and phoneNumber != ''"> and c.phone_number = #{phoneNumber}</if>
+            <if test="licenseNumber != null  and licenseNumber != ''"> and c.license_number = #{licenseNumber}</if>
+            <if test="experienceYears != null "> and c.experience_years = #{experienceYears}</if>
+            <if test="companyId != null "> and c.company_id = #{companyId}</if>
+        </where>
+    </select>
+    
+    <select id="selectCareNursesByNurseId" parameterType="Long" resultMap="CareNursesResult">
+        SELECT
+            c.nurse_id,
+            c.NAME,
+            c.date_of_birth,
+            c.address,
+            c.phone_number,
+            c.license_number,
+            c.experience_years,
+            c.company_id,
+            c.del_flag,
+            c.create_by,
+            c.create_time,
+            c.age,
+            c.update_by,
+            c.update_time,
+            c.remark,
+            c.user_id,
+            u.user_name login_name ,p.`name` company_name
+        FROM
+            care_nurses c
+                LEFT JOIN sys_user u ON u.user_id = c.user_id
+                LEFT JOIN care_companies p on p.company_id=c.company_id
+        where c.nurse_id = #{nurseId} and c.del_flag = '0'
+    </select>
+
+    <insert id="insertCareNurses" parameterType="CareNurses" useGeneratedKeys="true" keyProperty="nurseId">
+        insert into care_nurses
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="name != null and name != ''">name,</if>
+            <if test="dateOfBirth != null and dateOfBirth != ''">date_of_birth,</if>
+            <if test="address != null">address,</if>
+            <if test="phoneNumber != null and phoneNumber != ''">phone_number,</if>
+            <if test="licenseNumber != null and licenseNumber != ''">license_number,</if>
+            <if test="experienceYears != null">experience_years,</if>
+            <if test="companyId != null">company_id,</if>
+            <if test="userId != null">user_id,</if>
+            <if test="age != null">age,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="name != null and name != ''">#{name},</if>
+            <if test="dateOfBirth != null and dateOfBirth != ''">#{dateOfBirth},</if>
+            <if test="address != null">#{address},</if>
+            <if test="phoneNumber != null and phoneNumber != ''">#{phoneNumber},</if>
+            <if test="licenseNumber != null and licenseNumber != ''">#{licenseNumber},</if>
+            <if test="experienceYears != null">#{experienceYears},</if>
+            <if test="companyId != null">#{companyId},</if>
+            <if test="age != null">#{age},</if>
+            <if test="userId != null">#{userId},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateCareNurses" parameterType="CareNurses">
+        update care_nurses
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="name != null and name != ''">name = #{name},</if>
+            <if test="age != null and name != ''">age = #{age},</if>
+            <if test="dateOfBirth != null and dateOfBirth != ''">date_of_birth = #{dateOfBirth},</if>
+            <if test="address != null">address = #{address},</if>
+            <if test="phoneNumber != null and phoneNumber != ''">phone_number = #{phoneNumber},</if>
+            <if test="licenseNumber != null and licenseNumber != ''">license_number = #{licenseNumber},</if>
+            <if test="experienceYears != null">experience_years = #{experienceYears},</if>
+            <if test="companyId != null">company_id = #{companyId},</if>
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where nurse_id = #{nurseId}
+    </update>
+
+    <delete id="deleteCareNursesByNurseId" parameterType="Long">
+        update care_nurses set del_flag = '2' where nurse_id = #{nurseId}
+    </delete>
+
+    <delete id="deleteCareNursesByNurseIds" parameterType="String">
+        update care_nurses set del_flag = '2' where nurse_id  in
+        <foreach item="nurseId" collection="array" open="(" separator="," close=")">
+            #{nurseId}
+        </foreach>
+    </delete>
+</mapper>

+ 14 - 0
ruoyi-vue/src/api/care/nurses.js

@@ -42,3 +42,17 @@ export function delNurses(nurseId) {
     method: 'delete'
   })
 }
+// 查询所有的公司信息
+export function listAllCompany(query) {
+  return request({
+    url: '/care/companies/listAll',
+    method: 'get'
+  })
+}
+// 密码重置
+export function resetPassword(userId) {
+  return request({
+    url: '/care/nurses/resetPassword/' + userId,
+    method: 'put'
+  })
+}

+ 4 - 1
ruoyi-vue/src/views/care/companies/index.vue

@@ -233,6 +233,9 @@ const data = reactive({
     status: [
       { required: true, message: "公司状态不能为空", trigger: "change" }
     ],
+    phoneNumber: [
+      { required: true,pattern: /^1[3-9]\d{9}$/, message: '联系电话不能为空', trigger: 'blur' }
+    ],
     loginName: [
       { required: true, message: "用户名不能为空", trigger: "blur" }
     ],
@@ -324,7 +327,7 @@ function handleUpdate(row) {
 function handleResetPwd(row) {
   const _companyIds = row.companyId || ids.value;
   proxy.$modal.confirm('是否确认重置该护理公司编号为"' + _companyIds + '"的密码?').then(function() {
-    return resetPassword(_companyIds);
+    return resetPassword(row.userId);
   }).then(() => {
     getList();
     proxy.$modal.msgSuccess("重置成功");

+ 144 - 98
ruoyi-vue/src/views/care/nurses/index.vue

@@ -1,31 +1,15 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="护理人员的名字" prop="name">
+      <el-form-item label="姓名" prop="name">
         <el-input
           v-model="queryParams.name"
-          placeholder="请输入护理人员的名"
+          placeholder="请输入护理人员的名"
           clearable
           @keyup.enter="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="护理人员的出生日期" prop="dateOfBirth">
-        <el-input
-          v-model="queryParams.dateOfBirth"
-          placeholder="请输入护理人员的出生日期"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="护理人员的地址" prop="address">
-        <el-input
-          v-model="queryParams.address"
-          placeholder="请输入护理人员的地址"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="护理人员的联系电话" prop="phoneNumber">
+      <el-form-item label="联系电话" prop="phoneNumber">
         <el-input
           v-model="queryParams.phoneNumber"
           placeholder="请输入护理人员的联系电话"
@@ -33,37 +17,15 @@
           @keyup.enter="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="护理人员的执业许可证号码" prop="licenseNumber">
-        <el-input
-          v-model="queryParams.licenseNumber"
-          placeholder="请输入护理人员的执业许可证号码"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="护理人员的工作经验年限" prop="experienceYears">
-        <el-input
-          v-model="queryParams.experienceYears"
-          placeholder="请输入护理人员的工作经验年限"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
       <el-form-item label="所在公司" prop="companyId">
-        <el-input
-          v-model="queryParams.companyId"
-          placeholder="请输入所在公司"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="关联用户表id" prop="userId">
-        <el-input
-          v-model="queryParams.userId"
-          placeholder="请输入关联用户表id"
-          clearable
-          @keyup.enter="handleQuery"
-        />
+        <el-select v-model="queryParams.companyId" placeholder="所在公司" clearable>
+          <el-option
+              v-for="dict in companyList"
+              :key="dict.companyId"
+              :label="dict.name"
+              :value="dict.companyId"
+          ></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -115,20 +77,24 @@
 
     <el-table v-loading="loading" :data="nursesList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="护理人员的唯一标识符" align="center" prop="nurseId" />
-      <el-table-column label="护理人员的名字" align="center" prop="name" />
-      <el-table-column label="护理人员的出生日期" align="center" prop="dateOfBirth" />
-      <el-table-column label="护理人员的地址" align="center" prop="address" />
-      <el-table-column label="护理人员的联系电话" align="center" prop="phoneNumber" />
-      <el-table-column label="护理人员的执业许可证号码" align="center" prop="licenseNumber" />
-      <el-table-column label="护理人员的工作经验年限" align="center" prop="experienceYears" />
-      <el-table-column label="所在公司" align="center" prop="companyId" />
+      <el-table-column label="名字" align="center" prop="name" />
+      <el-table-column label="登录名" align="center" prop="loginName" />
+      <el-table-column label="性别" align="center" prop="age">
+        <template #default="scope">
+          <dict-tag :options="sys_user_sex" :value="scope.row.age"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="出生日期" align="center" prop="dateOfBirth" />
+      <el-table-column label="所在地址" align="center" prop="address" />
+      <el-table-column label="联系电话" align="center" prop="phoneNumber" />
+      <el-table-column label="工作经验年限" align="center" prop="experienceYears" />
+      <el-table-column label="所在公司" align="center" prop="companyName" />
       <el-table-column label="备注" align="center" prop="remark" />
-      <el-table-column label="关联用户表id" align="center" prop="userId" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="255">
         <template #default="scope">
-          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['care:nurses:edit']">修改</el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['care:nurses:remove']">删除</el-button>
+          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['care:companies:edit']">修改</el-button>
+          <el-button link type="warning" icon="Edit" @click="handleResetPwd(scope.row)" v-hasPermi="['care:companies:resetPassword']">重置密码</el-button>
+          <el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['care:companies:remove']">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -142,38 +108,92 @@
     />
 
     <!-- 添加或修改护理人员对话框 -->
-    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+    <el-dialog :title="title" v-model="open" width="700px" append-to-body>
       <el-form ref="nursesRef" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="护理人员的名字" prop="name">
-          <el-input v-model="form.name" placeholder="请输入护理人员的名字" />
-        </el-form-item>
-        <el-form-item label="护理人员的出生日期" prop="dateOfBirth">
-          <el-input v-model="form.dateOfBirth" placeholder="请输入护理人员的出生日期" />
-        </el-form-item>
-        <el-form-item label="护理人员的地址" prop="address">
-          <el-input v-model="form.address" placeholder="请输入护理人员的地址" />
-        </el-form-item>
-        <el-form-item label="护理人员的联系电话" prop="phoneNumber">
-          <el-input v-model="form.phoneNumber" placeholder="请输入护理人员的联系电话" />
-        </el-form-item>
-        <el-form-item label="护理人员的执业许可证号码" prop="licenseNumber">
-          <el-input v-model="form.licenseNumber" placeholder="请输入护理人员的执业许可证号码" />
-        </el-form-item>
-        <el-form-item label="护理人员的工作经验年限" prop="experienceYears">
-          <el-input v-model="form.experienceYears" placeholder="请输入护理人员的工作经验年限" />
-        </el-form-item>
-        <el-form-item label="所在公司" prop="companyId">
-          <el-input v-model="form.companyId" placeholder="请输入所在公司" />
-        </el-form-item>
-        <el-form-item label="删除标志" prop="delFlag">
-          <el-input v-model="form.delFlag" placeholder="请输入删除标志" />
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="关联用户表id" prop="userId">
-          <el-input v-model="form.userId" placeholder="请输入关联用户表id" />
-        </el-form-item>
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="姓名" prop="name">
+              <el-input v-model="form.name" placeholder="请输入护理人员的名字" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="性别" prop="gender">
+              <el-select v-model="form.age" placeholder="性别">
+                <el-option
+                    v-for="dict in sys_user_sex"
+                    :key="dict.value"
+                    :label="dict.label"
+                    :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="出生日期" prop="dateOfBirth">
+              <el-date-picker clearable
+                              v-model="form.dateOfBirth"
+                              type="date"
+                              value-format="YYYY-MM-DD"
+                              placeholder="请输入出生日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="联系电话" prop="phoneNumber">
+              <el-input v-model="form.phoneNumber" placeholder="请输入联系电话" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="登录名" prop="loginName">
+              <el-input v-model="form.loginName" placeholder="请输入登录名" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="登录密码" prop="password">
+              <el-input v-model="form.password" type="password" placeholder="请输入登录密码" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="所在地址" prop="address">
+              <el-input v-model="form.address" placeholder="请输入地址" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="所在公司" prop="companyId">
+              <el-select v-model="form.companyId" placeholder="所在公司">
+                <el-option
+                    v-for="dict in companyList"
+                    :key="dict.companyId"
+                    :label="dict.name"
+                    :value="dict.companyId"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="工作年限" prop="experienceYears">
+              <el-input v-model="form.experienceYears" placeholder="请输入工作经验年限" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="备注" prop="remark">
+              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+<!--        <el-form-item label="护理人员的执业许可证号码" prop="licenseNumber">-->
+<!--          <el-input v-model="form.licenseNumber" placeholder="请输入护理人员的执业许可证号码" />-->
+<!--        </el-form-item>-->
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -186,10 +206,10 @@
 </template>
 
 <script setup name="Nurses">
-import { listNurses, getNurses, delNurses, addNurses, updateNurses } from "@/api/care/nurses";
+import { listNurses, getNurses, delNurses, addNurses, updateNurses,listAllCompany,resetPassword } from "@/api/care/nurses";
 
 const { proxy } = getCurrentInstance();
-
+const { sys_user_sex } = proxy.useDict('sys_user_sex');
 const nursesList = ref([]);
 const open = ref(false);
 const loading = ref(true);
@@ -199,7 +219,7 @@ const single = ref(true);
 const multiple = ref(true);
 const total = ref(0);
 const title = ref("");
-
+const companyList=ref([]);
 const data = reactive({
   form: {},
   queryParams: {
@@ -222,7 +242,7 @@ const data = reactive({
       { required: true, message: "护理人员的出生日期不能为空", trigger: "blur" }
     ],
     phoneNumber: [
-      { required: true, message: "护理人员的联系电话不能为空", trigger: "blur" }
+      { required: true,pattern: /^1[3-9]\d{9}$/, message: '护理人员的联系电话不能为空', trigger: 'blur' }
     ],
     licenseNumber: [
       { required: true, message: "护理人员的执业许可证号码不能为空", trigger: "blur" }
@@ -233,6 +253,13 @@ const data = reactive({
     companyId: [
       { required: true, message: "所在公司不能为空", trigger: "blur" }
     ],
+    loginName: [
+      { required: true, message: "用户名不能为空", trigger: "blur" }
+    ],
+    password: [
+      { required: true, message: "密码不能为空", trigger: "change" }
+    ]
+
   }
 });
 
@@ -265,13 +292,16 @@ function reset() {
     licenseNumber: null,
     experienceYears: null,
     companyId: null,
+    age:null,
     delFlag: null,
     createBy: null,
     createTime: null,
     updateBy: null,
     updateTime: null,
     remark: null,
-    userId: null
+    userId: null,
+    loginName:null,
+    password:null
   };
   proxy.resetForm("nursesRef");
 }
@@ -281,7 +311,16 @@ function handleQuery() {
   queryParams.value.pageNum = 1;
   getList();
 }
-
+/** 充值密码操作 */
+function handleResetPwd(row) {
+  const nurseId = row.nurseId || ids.value;
+  proxy.$modal.confirm('是否确认重置该护理人员编号为"' + nurseId + '"的密码?').then(function() {
+    return resetPassword(row.userId);
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("重置成功");
+  }).catch(() => {});
+}
 /** 重置按钮操作 */
 function resetQuery() {
   proxy.resetForm("queryRef");
@@ -352,5 +391,12 @@ function handleExport() {
   }, `nurses_${new Date().getTime()}.xlsx`)
 }
 
+/** 查询公司列表 */
+function listCompany() {
+  listAllCompany().then(response => {
+    companyList.value = response;
+  });
+}
 getList();
+listCompany();
 </script>