zss
2024-04-15 bf066a3ea106919183b1ab6ddb5e110f6da36747
人员明细+用户上传图片
已修改7个文件
已添加7个文件
330 ■■■■■ 文件已修改
cnas-server/src/main/java/com/yuanchu/mom/controller/DepartmentController.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DepartmentDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/Department.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DepartmentService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DepartmentMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system-run/src/main/resources/application-dev.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/mom/controller/UserController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/mom/pojo/User.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/mom/service/UserService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/resources/mapper/UserMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DepartmentController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package com.yuanchu.mom.controller;
import com.yuanchu.mom.pojo.Department;
import com.yuanchu.mom.service.DepartmentService;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
/**
 * <p>
 * éƒ¨é—¨æ˜Žç»† å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-04-15 04:01:48
 */
@Api(tags = "人员明细")
@AllArgsConstructor
@RestController
@RequestMapping("/department")
public class DepartmentController {
    DepartmentService departmentService;
    @ApiOperation(value = "添加部门")
    @PostMapping("/addDepartment")
    public Result addDepartment(@RequestBody Department department){
        return Result.success(departmentService.addDepartment(department));
    }
    @ApiOperation(value = "获取部门树")
    @GetMapping("/selectDepartment")
    public Result selectDepartment(){
        return Result.success(departmentService.selectDepartment());
    }
    @ApiOperation(value = "删除部门")
    @PostMapping("/delDepartment")
    public Result delDepartment(Integer id){
        return Result.success(departmentService.delDepartment(id));
    }
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DepartmentDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
@AllArgsConstructor
public class DepartmentDto {
    private Integer id;
    private String name;
    private Integer fatherId;
    private List<DepartmentDto> children;
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.yuanchu.mom.mapper;
import com.yuanchu.mom.dto.DepartmentDto;
import com.yuanchu.mom.pojo.Department;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
 * <p>
 * éƒ¨é—¨æ˜Žç»† Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-04-15 04:01:48
 */
public interface DepartmentMapper extends BaseMapper<Department> {
    //获取部门树
    List<Department> selectDepartment();
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/Department.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * éƒ¨é—¨æ˜Žç»†
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-04-15 04:01:48
 */
@Getter
@Setter
@ApiModel(value = "Department对象", description = "部门明细")
public class Department implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("名称")
    private String name;
    @ApiModelProperty("父级id")
    private Integer fatherId;
    private Integer createUser;
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    private Integer updateUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/service/DepartmentService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.yuanchu.mom.service;
import com.yuanchu.mom.dto.DepartmentDto;
import com.yuanchu.mom.pojo.Department;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * <p>
 * éƒ¨é—¨æ˜Žç»† æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-04-15 04:01:48
 */
public interface DepartmentService extends IService<Department> {
    //添加部门
    int addDepartment(Department department);
    //获取部门树
    List<DepartmentDto> selectDepartment();
    //删除部门
    boolean delDepartment(Integer id);
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yuanchu.mom.dto.DepartmentDto;
import com.yuanchu.mom.pojo.Department;
import com.yuanchu.mom.mapper.DepartmentMapper;
import com.yuanchu.mom.service.DepartmentService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.var;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Wrapper;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * éƒ¨é—¨æ˜Žç»† æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-04-15 04:01:48
 */
@Service
@AllArgsConstructor
@Transactional(rollbackFor = Exception.class)
public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Department> implements DepartmentService {
    DepartmentMapper departmentMapper;
    //添加部门
    @Override
    public int addDepartment(Department department) {
        departmentMapper.insert(department);
        return department.getId();
    }
    //获取部门树
    @Override
    public List<DepartmentDto> selectDepartment() {
        List<Department> departments = departmentMapper.selectDepartment();
        // å‡è®¾ resultSet æ˜¯ä»Žæ•°æ®åº“查询返回的结果集
        List<DepartmentDto> departmentDtos = new ArrayList<>();
        Map<Integer, DepartmentDto> departmentMap = new HashMap<>();
        for (Department department : departments) {
            DepartmentDto departmentDto = new DepartmentDto(department.getId(), department.getName(), department.getFatherId(), new ArrayList<DepartmentDto>());
            departmentMap.put(department.getId(), departmentDto);
            if (department.getFatherId() == null) {
                // æ ¹éƒ¨é—¨
                departmentDtos.add(departmentDto);
            } else {
                // å°†å½“前部门添加到父部门的 children åˆ—表中
                DepartmentDto parent = departmentMap.get(department.getFatherId());
                if (parent != null) {
                    parent.getChildren().add(departmentDto);
                }
            }
        }
        return departmentDtos;
    }
    //删除部门
    @Override
    public boolean delDepartment(Integer id) {
        //判断是否有子类,直到没有为止
        List<Department> department = getDepartment(id);
        return removeBatchByIds(department);
    }
    //判断是否有子类,直到没有为止
    public List<Department> getDepartment(Integer id){
        List<Department> list = new ArrayList<>();
        Department depart = baseMapper.selectById(id);
        list.add(depart);
        List<Department> departments = baseMapper.selectList(Wrappers.<Department>lambdaQuery().eq(Department::getFatherId, id));
        if (ObjectUtils.isNotEmpty(departments)){
            list.addAll(departments);
            for (Department department : departments){
                list.addAll(getDepartment(department.getId()));
            }
        }
        return list;
    }
}
cnas-server/src/main/resources/mapper/DepartmentMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
<?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.yuanchu.mom.mapper.DepartmentMapper">
    <select id="selectDepartment" resultType="com.yuanchu.mom.pojo.Department">
        WITH RECURSIVE DepartmentHierarchy AS (
            SELECT id, name, father_id
            FROM department
            WHERE father_id IS NULL
            UNION ALL
            SELECT d.id, d.name, d.father_id
            FROM department d
                     JOIN DepartmentHierarchy dh ON d.father_id = dh.id
        )
        SELECT id, name, father_id
        FROM DepartmentHierarchy;
    </select>
</mapper>
system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java
@@ -15,11 +15,11 @@
// æ¼”示例子,执行 main æ–¹æ³•控制台输入模块表名回车自动生成对应项目目录中
public class CodeGenerator {
    public static String database_url = "jdbc:mysql://192.168.110.209:3306/mom_ocean?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
    public static String database_username = "user";
    public static String database_url = "jdbc:mysql://114.132.189.42:9004/center-lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8";
    public static String database_username = "root";
    public static String database_password= "123456";
    public static String author = "江苏鵷雏网络科技有限公司";
    public static String model_name = "/inspect-server"; // å¦‚果为分布式填子模块名称,如果不是分布式为空即可
    public static String model_name = "/cnas-server"; // å¦‚果为分布式填子模块名称,如果不是分布式为空即可
    public static String setParent = "com.yuanchu.mom"; // åŒ…路径
    public static void main(String[] args) {
        String projectPath = System.getProperty("user.dir");
system-run/src/main/resources/application-dev.yml
@@ -37,6 +37,7 @@
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    #url: jdbc:mysql://localhost:3306/center_lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    url: jdbc:mysql://114.132.189.42:9004/center-lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    username: root
    password: 123456
user-server/src/main/java/com/yuanchu/mom/controller/UserController.java
@@ -15,8 +15,10 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.Map;
user-server/src/main/java/com/yuanchu/mom/pojo/User.java
@@ -95,4 +95,16 @@
    private String code;
    /**
     * ç­¾åç…§ç‰‡åœ°å€
     */
    @ValueTableShow(value = 12,name = "签名照片地址")
    private String signatureUrl;
    /**
     * è‡ªèº«ç…§ç‰‡åœ°å€
     */
    @ValueTableShow(value = 13,name = "自身照片地址")
    private String pictureUrl;
}
user-server/src/main/java/com/yuanchu/mom/service/UserService.java
@@ -1,8 +1,10 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.UserPageDto;
import com.yuanchu.mom.pojo.User;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
@@ -3,7 +3,9 @@
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.dto.UserPageDto;
@@ -13,23 +15,33 @@
import com.yuanchu.mom.service.UserService;
import com.yuanchu.mom.utils.Jwt;
import com.yuanchu.mom.utils.QueryWrappers;
import com.yuanchu.mom.vo.Result;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@AllArgsConstructor
public class UserServiceImp implements UserService {
    @Resource
    UserMapper userMapper;
    @Resource
    Jwt jwt;
    @Resource
    private GetLook getLook;
    @Override
    public User selectUserByPwd(String account, String password) {
@@ -99,4 +111,5 @@
        user.setPassword(DigestUtils.md5DigestAsHex(newPassWord.getBytes()));
        return userMapper.updateById(user);
    }
}
user-server/src/main/resources/mapper/UserMapper.xml
@@ -3,7 +3,9 @@
<mapper namespace="com.yuanchu.mom.mapper.UserMapper">
    <select id="selectUserDtoPageList" resultType="com.yuanchu.mom.dto.UserPageDto">
        select * from (
            select u1.id, u1.account, u1.name, u1.state, u1.create_time, u1.update_time, u1.create_user, u1.update_user, u1.age, u1.email, u1.phone, u1.department, u1.company, u1.address, u1.is_custom, u1.role_id, u2.name create_user_name, u3.name update_user_name, r.name role_name
        select u1.id, u1.account, u1.name, u1.state, u1.create_time, u1.update_time, u1.create_user, u1.update_user,
        u1.age, u1.email, u1.phone, u1.department, u1.company, u1.address, u1.is_custom, u1.role_id, u2.name
        create_user_name, u3.name update_user_name, r.name role_name,u1.signature_url,u1.picture_url
            from user u1
            left join user u2 on u2.id = u1.create_user
            left join user u3 on u3.id = u1.update_user
@@ -14,6 +16,8 @@
        </if>
    </select>
    <select id="getDeviceManager" resultType="com.yuanchu.mom.dto.UserPageDto">
        select id,name from user where state=1
        select id, name
        from user
        where state = 1
    </select>
</mapper>