From bf066a3ea106919183b1ab6ddb5e110f6da36747 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 15 四月 2024 18:11:49 +0800 Subject: [PATCH] 人员明细+用户上传图片 --- cnas-server/src/main/java/com/yuanchu/mom/pojo/Department.java | 47 +++++++ cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java | 96 ++++++++++++++++ user-server/src/main/resources/mapper/UserMapper.xml | 16 +- cnas-server/src/main/java/com/yuanchu/mom/controller/DepartmentController.java | 49 ++++++++ user-server/src/main/java/com/yuanchu/mom/pojo/User.java | 12 ++ cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java | 22 +++ system-run/src/main/resources/application-dev.yml | 1 user-server/src/main/java/com/yuanchu/mom/controller/UserController.java | 2 cnas-server/src/main/java/com/yuanchu/mom/dto/DepartmentDto.java | 20 +++ cnas-server/src/main/java/com/yuanchu/mom/service/DepartmentService.java | 27 ++++ user-server/src/main/java/com/yuanchu/mom/service/UserService.java | 2 system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java | 6 cnas-server/src/main/resources/mapper/DepartmentMapper.xml | 19 +++ user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java | 29 +++- 14 files changed, 331 insertions(+), 17 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/DepartmentController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/DepartmentController.java new file mode 100644 index 0000000..6925d5e --- /dev/null +++ b/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)); + } + + + + +} diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DepartmentDto.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DepartmentDto.java new file mode 100644 index 0000000..b8dc71c --- /dev/null +++ b/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; +} diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DepartmentMapper.java new file mode 100644 index 0000000..112fe5a --- /dev/null +++ b/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(); +} diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Department.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Department.java new file mode 100644 index 0000000..4d846cf --- /dev/null +++ b/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; +} diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/DepartmentService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/DepartmentService.java new file mode 100644 index 0000000..5f96bf1 --- /dev/null +++ b/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); +} diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java new file mode 100644 index 0000000..62c43c3 --- /dev/null +++ b/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; + } + +} diff --git a/cnas-server/src/main/resources/mapper/DepartmentMapper.xml b/cnas-server/src/main/resources/mapper/DepartmentMapper.xml new file mode 100644 index 0000000..87ba206 --- /dev/null +++ b/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> diff --git a/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java b/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java index 48f2da3..ebee0b5 100644 --- a/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java +++ b/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"); diff --git a/system-run/src/main/resources/application-dev.yml b/system-run/src/main/resources/application-dev.yml index 7b63943..87cdec8 100644 --- a/system-run/src/main/resources/application-dev.yml +++ b/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 diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java b/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java index 716d8b8..a645ff0 100644 --- a/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java +++ b/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; diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/User.java b/user-server/src/main/java/com/yuanchu/mom/pojo/User.java index 5b50345..f123b20 100644 --- a/user-server/src/main/java/com/yuanchu/mom/pojo/User.java +++ b/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; + } diff --git a/user-server/src/main/java/com/yuanchu/mom/service/UserService.java b/user-server/src/main/java/com/yuanchu/mom/service/UserService.java index 2b8d2d1..01fde83 100644 --- a/user-server/src/main/java/com/yuanchu/mom/service/UserService.java +++ b/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; diff --git a/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java index 5f307a2..5b8d801 100644 --- a/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java +++ b/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,30 +15,40 @@ 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) { QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("account", account).eq("password", DigestUtils.md5DigestAsHex(password.getBytes())).eq("state", 1); List<User> list = userMapper.selectList(wrapper); - return list.size()>0?list.get(0):null; + return list.size() > 0 ? list.get(0) : null; } //鏍规嵁鐢ㄦ埛id鏌ヨ鐢ㄦ埛鍚� @@ -51,7 +63,7 @@ Map<String, Object> map = new HashMap<>(); map.put("head", PrintChina.printChina(UserPageDto.class)); Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectUserList"); - if(map1.get("look")==1) user.setCreateUser(map1.get("userId")); + if (map1.get("look") == 1) user.setCreateUser(map1.get("userId")); map.put("body", userMapper.selectUserDtoPageList(page, QueryWrappers.queryWrappers(user))); return map; } @@ -80,23 +92,24 @@ @Override public User getUserNow() { Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); - return userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getId, map1.get("userId")).eq(User::getIsCustom, 1).select(User::getId,User::getCompany,User::getName,User::getCode)); + return userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getId, map1.get("userId")).eq(User::getIsCustom, 1).select(User::getId, User::getCompany, User::getName, User::getCode)); } @Override public User getUserInfo() { Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); - return userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getId, map1.get("userId")).select(User::getId,User::getCompany,User::getName,User::getCode)); + return userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getId, map1.get("userId")).select(User::getId, User::getCompany, User::getName, User::getCode)); } @Override public int upUserPassword(String oldPassword, String newPassWord) { Map<String, Integer> map = getLook.selectPowerByMethodAndUserId(null); User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getId, map.get("userId")).eq(User::getPassword, DigestUtils.md5DigestAsHex(oldPassword.getBytes())).select(User::getId)); - if(BeanUtil.isEmpty(user)){ + if (BeanUtil.isEmpty(user)) { throw new ErrorException("瀵嗙爜涓嶆纭�"); } user.setPassword(DigestUtils.md5DigestAsHex(newPassWord.getBytes())); return userMapper.updateById(user); } + } diff --git a/user-server/src/main/resources/mapper/UserMapper.xml b/user-server/src/main/resources/mapper/UserMapper.xml index 5c58eb1..593aecd 100644 --- a/user-server/src/main/resources/mapper/UserMapper.xml +++ b/user-server/src/main/resources/mapper/UserMapper.xml @@ -3,17 +3,21 @@ <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 - from user u1 - left join user u2 on u2.id = u1.create_user - left join user u3 on u3.id = u1.update_user - left join role r on u1.role_id = r.id + 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 + left join role r on u1.role_id = r.id ) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </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> \ No newline at end of file -- Gitblit v1.9.3