From b620ed21a126a5a138685e51056b4b8f679bd372 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期六, 22 二月 2025 20:08:00 +0800 Subject: [PATCH] 人员移植 --- ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentLims.java | 42 + cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/Annex.java | 48 ++ cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/AnnexServiceImpl.java | 13 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoWorkService.java | 16 pom.xml | 8 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDto.java | 47 ++ cnas-personnel/src/main/java/com/ruoyi/personnel/service/AnnexService.java | 7 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/UserPageDto.java | 24 + cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoFileService.java | 16 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java | 336 ++++++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/DepartmentLimsMapper.java | 27 + ruoyi-system/src/main/resources/mapper/system/DepartmentLimsMapper.xml | 25 + cnas-personnel/pom.xml | 46 ++ cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoWork.java | 53 ++ cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonBasicInfoController.java | 225 +++++++++ ruoyi-admin/pom.xml | 12 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoFileMapper.java | 16 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoFileServiceImpl.java | 20 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentDto.java | 23 + cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoWorkMapper.java | 16 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoWorkServiceImpl.java | 20 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfo.java | 156 ++++++ cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoService.java | 45 + cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/AnnexMapper.java | 9 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoMapper.java | 42 + cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoFile.java | 58 ++ 26 files changed, 1,350 insertions(+), 0 deletions(-) diff --git a/cnas-personnel/pom.xml b/cnas-personnel/pom.xml new file mode 100644 index 0000000..689a7a9 --- /dev/null +++ b/cnas-personnel/pom.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi</artifactId> + <version>3.8.9</version> + </parent> + + <artifactId>cnas-personnel</artifactId> + + <dependencies> + <!-- 閫氱敤宸ュ叿--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-common</artifactId> + </dependency> + + <!-- 鏍稿績妯″潡--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-framework</artifactId> + </dependency> + + <!-- 绯荤粺妯″潡--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-system</artifactId> + </dependency> + + <!-- 绯荤粺妯″潡--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>inspect-server</artifactId> + </dependency> + </dependencies> + + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + +</project> diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonBasicInfoController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonBasicInfoController.java new file mode 100644 index 0000000..32b9224 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonBasicInfoController.java @@ -0,0 +1,225 @@ +//package com.ruoyi.personnel.controller; +// +//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +//import com.baomidou.mybatisplus.core.metadata.IPage; +//import com.baomidou.mybatisplus.core.toolkit.Wrappers; +//import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +//import com.ruoyi.personnel.service.AnnexService; +//import com.ruoyi.personnel.service.PersonBasicInfoFileService; +//import com.ruoyi.personnel.service.PersonBasicInfoService; +//import com.ruoyi.personnel.service.PersonBasicInfoWorkService; +//import io.swagger.annotations.Api; +//import io.swagger.annotations.ApiOperation; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RestController; +//import org.springframework.web.multipart.MultipartFile; +// +//import javax.annotation.Resource; +//import javax.servlet.http.HttpServletResponse; +//import java.util.List; +//import java.util.Map; +// +///** +// * <p> +// * 鍓嶇鎺у埗鍣� +// * </p> +// * +// * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 +// * @since 2024-08-30 09:19:57 +// */ +//@Api(tags = "浜哄憳-浜哄憳鍩烘湰淇℃伅") +//@RestController +//@RequestMapping("/personBasicInfo") +//public class PersonBasicInfoController { +// +// @Resource +// private PersonBasicInfoService personBasicInfoService; +// +// @Resource +// private PersonBasicInfoFileService personBasicInfoFileService; +// @Resource +// private PersonBasicInfoWorkService personBasicInfoWorkService; +// +// @Resource +// private AnnexService annexService; +// +// +// @ValueClassify("浜哄憳鍩烘湰淇℃伅") +// @ApiOperation(value = "鏌ヨCNAS浜哄憳渚ц竟鏍�") +// @GetMapping("/selectCNSAPersonTree") +// public Result<List<DepartmentDto>> selectCNSAPersonTree() { +// return Result.success(personBasicInfoService.selectCNSAPersonTree()); +// } +// +// @ValueClassify("浜哄憳鍩烘湰淇℃伅") +// @ApiOperation(value = "鑾峰彇CNAS浜哄憳鍩烘湰淇℃伅") +// @GetMapping("/getCNASPersonnelInfo") +// public Result getCNASPersonnelInfo(Integer userId) { +// return Result.success(personBasicInfoService.getCNASPersonnelInfo(userId)); +// } +// +// @ValueClassify("浜哄憳鍩烘湰淇℃伅") +// @ApiOperation(value = "淇濆瓨CNAS浜哄憳鍩烘湰淇℃伅") +// @PostMapping("/saveCNASPersonnelInfo") +// public Result saveCNASPersonnelInfo(@RequestBody PersonBasicInfoDto personBasicInfoDto) { +// personBasicInfoService.saveCNASPersonnelInfo(personBasicInfoDto); +// return Result.success(); +// } +// +// @ApiOperation(value = "浜哄憳鏄庣粏鍒嗛〉鏌ヨ") +// @ValueClassify("浜哄憳鍩烘湰淇℃伅") +// @GetMapping("basicInformationOfPersonnelSelectPage") +// public Result<IPage<Map<String, Object>>> basicInformationOfPersonnelSelectPage(Page<List<PersonBasicInfoDetailsDto>> page, String name, Integer departmentId) { +// return Result.success(personBasicInfoService.basicInformationOfPersonnelSelectPage(page, name, departmentId)); +// } +// +// // 涓婁紶鏂囦欢鎺ュ彛 +// @ApiOperation(value = "涓婁紶鏂囦欢鎺ュ彛") +// @PostMapping("/saveCNASFile") +// public Result saveFile(@RequestPart("file") MultipartFile file) { +// String s = FileSaveUtil.uploadWordFile(file); +// return Result.success("涓婁紶鎴愬姛", s); +// } +// +// @GetMapping("/getAnnexByUserId") +// public Result<List<Annex>> getAnnexByUserId(Integer userId) { +// List<Annex> list = annexService.list(new LambdaQueryWrapper<Annex>().eq(Annex::getUserId, userId)); +// return Result.success(list); +// } +// +// // 鍒犻櫎鏂囦欢 +// @DeleteMapping("/deleteCNASFile") +// public Result saveFile(String fileName) { +// String[] split = fileName.split(","); +// for (String s : split) { +// FileSaveUtil.DeleteFile(s); +// } +// return Result.success(); +// +// } +// +// /** +// * 浜哄憳鍩烘湰淇℃伅闄勪欢鏂板 +// */ +// @PostMapping("/addAnnex") +// public Result addAnnex(@RequestBody Annex annex) { +// annexService.save(annex); +// return Result.success(); +// } +// +// @GetMapping("/getAnnex") +// public Result<Annex> getAnnex(Integer id) { +// return Result.success(annexService.getById(id)); +// } +// /** +// * 浜哄憳鍩烘湰淇℃伅闄勪欢鍒犻櫎 +// */ +// @DeleteMapping("/deleteAnnex/{id}") +// public Result deleteAnnex(@PathVariable("id") Integer id) { +// annexService.removeById(id); +// return Result.success(); +// } +// +// /** +// * 浜哄憳鍩烘湰淇℃伅闄勪欢淇敼 +// * +// */ +// @PostMapping("/updateAnnex") +// public Result updateAnnex(@RequestBody Annex annex) { +// annexService.updateById(annex); +// return Result.success(); +// } +// +// @ApiOperation(value = "瀵煎嚭浜哄憳鍩烘湰淇℃伅") +// @PostMapping("/exportPersonBasicInfo") +// public void exportPersonBasicInfo(@RequestBody Map<String, Object> data, HttpServletResponse response) throws Exception { +// UserPageDto userPageDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), UserPageDto.class); +// personBasicInfoService.exportPersonBasicInfo(userPageDto,response); +// } +// +// @ApiOperation(value = "涓嬭浇浜哄憳妗f鍗�") +// @GetMapping("/exportPersonBasicInfoById") +// public Result exportPersonBasicInfoById(Integer id, HttpServletResponse response) { +// return Result.success(personBasicInfoService.exportPersonBasicInfoById(id,response)); +// } +// +// /** +// * 浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鏂板 +// * @param userId +// * @param file +// * @return +// */ +// @ApiOperation(value = "浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鏂板") +// @PostMapping("/uploadBasicInfoFile") +// public Result<?> uploadBasicInfoFile(Integer userId, MultipartFile file) { +// return Result.success(personBasicInfoService.uploadBasicInfoFile(userId, file)); +// } +// +// +// /** +// * 浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鍒楄〃 +// * @return +// */ +// @ApiOperation(value = "浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鍒楄〃") +// @GetMapping("/getBasicInfoFileList") +// public Result<List<PersonBasicInfoFile>> getBasicInfoFileList(Integer userId){ +// return Result.success(personBasicInfoFileService.list(Wrappers.<PersonBasicInfoFile>lambdaQuery() +// .eq(PersonBasicInfoFile::getUserId, userId))); +// } +// +// /** +// * 浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鍒犻櫎 +// * @return +// */ +// @ApiOperation(value = "浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鍒犻櫎") +// @GetMapping("/delBasicInfoFileList") +// public Result delBasicInfoFileList(Integer basicInfoFileId){ +// return Result.success(personBasicInfoFileService.removeById(basicInfoFileId)); +// } +// +// /** +// * 浜哄憳鍩硅鍩烘湰淇℃伅宸ヤ綔缁忓巻鏂板 +// * @return +// */ +// @ApiOperation(value = "浜哄憳鍩硅鍩烘湰淇℃伅宸ヤ綔缁忓巻鏂板") +// @PostMapping("/addBasicInfoWork") +// public Result<?> addBasicInfoWork(@RequestBody PersonBasicInfoWork basicInfoWork) { +// if (basicInfoWork.getUserId() == null) { +// throw new ErrorException("缂哄皯浜哄憳id"); +// } +// basicInfoWork.setUserId(basicInfoWork.getUserId()); +// return Result.success(personBasicInfoWorkService.save(basicInfoWork)); +// } +// +// +// /** +// * 浜哄憳宸ヤ綔缁忓巻鍒楄〃 +// * @return +// */ +// @ApiOperation(value = "浜哄憳宸ヤ綔缁忓巻鍒楄〃") +// @GetMapping("/getBasicInfoWorkList") +// public Result<List<PersonBasicInfoWork>> getBasicInfoWorkList(Integer userId){ +// return Result.success(personBasicInfoWorkService.list(Wrappers.<PersonBasicInfoWork>lambdaQuery() +// .eq(PersonBasicInfoWork::getUserId, userId))); +// } +// +// /** +// * 浜哄憳宸ヤ綔缁忓巻鍒犻櫎 +// * @return +// */ +// @ApiOperation(value = "浜哄憳宸ヤ綔缁忓巻鍒犻櫎") +// @GetMapping("/delBasicInfoWorkList") +// public Result delBasicInfoWorkList(Integer basicInfoWorkId){ +// return Result.success(personBasicInfoWorkService.removeById(basicInfoWorkId)); +// } +// +// /** +// * 浜哄憳鍩烘湰淇℃伅闄勪欢鍒犻櫎 +// * @return +// */ +// @ApiOperation(value = "浜哄憳宸ヤ綔缁忓巻淇敼") +// @PostMapping("/updateBasicInfoWorkList") +// public Result updateBasicInfoWorkList(@RequestBody PersonBasicInfoWork basicInfoWork){ +// return Result.success(personBasicInfoWorkService.updateById(basicInfoWork)); +// } +//} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDto.java new file mode 100644 index 0000000..b5cd643 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDto.java @@ -0,0 +1,47 @@ +package com.ruoyi.personnel.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.ruoyi.personnel.pojo.PersonBasicInfo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +@ExcelIgnoreUnannotated +public class PersonBasicInfoDto extends PersonBasicInfo { + @ApiModelProperty(value = "璐﹀彿") + @ExcelProperty("鍛樺伐缂栧彿") + private String account; + + @ApiModelProperty(value = "濮撳悕") + @ExcelProperty("濮撳悕") + private String name; + + @ApiModelProperty(value = "濮撳悕(鑻辨枃)") + private String nameEn; + + @ApiModelProperty(value = "骞撮緞") + private Integer age; + + @ApiModelProperty(value = "鐢佃瘽鍙风爜") + @ExcelProperty("鎵嬫満鍙�") + private String phone; + + @ApiModelProperty(value = "閭") + private String email; + + @ApiModelProperty(value = "閮ㄩ棬") + private String department; + + @ApiModelProperty(value = "lims缁勭粐鏋舵瀯") + private String departLimsId; + + @ApiModelProperty(value = "绛惧悕鐓х墖鍦板潃") + private String signatureUrl; + + @ApiModelProperty(value = "鑷韩鐓х墖鍦板潃") + private String pictureUrl; + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/UserPageDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/UserPageDto.java new file mode 100644 index 0000000..856b6f4 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/UserPageDto.java @@ -0,0 +1,24 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.common.core.domain.entity.User; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class UserPageDto extends User { + + @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛") + private String createUserName; + + @ApiModelProperty(value = "鏇存柊鐢ㄦ埛") + private String updateUserName; + + @ApiModelProperty(value = "瑙掕壊") + private String roleName; + + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/AnnexMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/AnnexMapper.java new file mode 100644 index 0000000..9fee604 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/AnnexMapper.java @@ -0,0 +1,9 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.personnel.pojo.Annex; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AnnexMapper extends BaseMapper<Annex> { +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoFileMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoFileMapper.java new file mode 100644 index 0000000..fb0e2f5 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoFileMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.personnel.pojo.PersonBasicInfoFile; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅闄勪欢 Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:28:55 + */ +public interface PersonBasicInfoFileMapper extends BaseMapper<PersonBasicInfoFile> { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoMapper.java new file mode 100644 index 0000000..f23ba5f --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoMapper.java @@ -0,0 +1,42 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.entity.DepartmentDto; +import com.ruoyi.personnel.dto.PersonBasicInfoDto; +import com.ruoyi.personnel.pojo.PersonBasicInfo; + +import java.util.List; +import java.util.Map; + +/** + * <p> + * Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-08-30 09:19:57 + */ +public interface PersonBasicInfoMapper extends BaseMapper<PersonBasicInfo> { + + List<DepartmentDto> selectLimsUser(); + + PersonBasicInfoDto getCNASPersonnelInfo(Integer userId); + + /** + * 浜哄憳鍩烘湰淇℃伅鍒嗛〉鏌ヨ + * @param page + * @param name + * @param departmentId + * @return + */ + IPage<Map<String, Object>> selectPersonBasecInfoAndUser(Page page, String name, Integer departmentId); + + /** + * 瀵煎嚭鏌ヨ浜哄憳淇℃伅 + * @param userId + * @return + */ + Map<String, Object> selectexportPersonBasic(Integer userId); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoWorkMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoWorkMapper.java new file mode 100644 index 0000000..df8d2d4 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoWorkMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.personnel.pojo.PersonBasicInfoWork; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅 Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:45:04 + */ +public interface PersonBasicInfoWorkMapper extends BaseMapper<PersonBasicInfoWork> { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/Annex.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/Annex.java new file mode 100644 index 0000000..bbf2017 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/Annex.java @@ -0,0 +1,48 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +@Data +@TableName("cnas_annex") +@ApiModel("浜哄憳鍩烘湰淇℃伅闄勪欢琛�") +public class Annex implements Serializable { + + @TableId(type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "user琛╥d") + private Integer userId; + + @ApiModelProperty(value = "璇佷欢鍙�") + private String idNumber; + + @ApiModelProperty(value = "鍙戣瘉鍗曚綅") + private String issueUnit; + + @ApiModelProperty(value = "鏂囦欢鍚嶇О") + private String fileName; + + @ApiModelProperty(value = "绾у埆") + private String level; + + @ApiModelProperty(value = "鏈夋晥鏈�") + private String periodValidity; + + @ApiModelProperty(value = "娣诲姞鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty(value = "澶嶅嵃浠�") + private String copy; + + @ApiModelProperty(value = "鍘熶欢") + private String original; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfo.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfo.java new file mode 100644 index 0000000..abf3880 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfo.java @@ -0,0 +1,156 @@ +package com.ruoyi.personnel.pojo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-08-30 09:19:57 + */ +@Getter +@Setter +@TableName("cnas_person_basic_info") +@ApiModel(value = "PersonBasicInfo瀵硅薄", description = "") +public class PersonBasicInfo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("涓婚敭id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("褰撳墠鐘舵��") + private String currentState; + + @ApiModelProperty("鑱岀О") + @ExcelProperty("鑱岀О") + private String professionalTitle; + + @ApiModelProperty("鎬у埆") + private String sex; + + @ApiModelProperty("浜哄憳鍒嗙被") + private String personnelClassification; + + @ApiModelProperty("鍑虹敓鏃ユ湡") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime dateBirth; + + @ApiModelProperty("韬唤璇佸彿") + @ExcelProperty("璇佷欢鍙风爜") + private String identityCard; + + @ApiModelProperty("姘戞棌") + private String nation; + + @ApiModelProperty("鏀挎不闈㈣矊") + private String politicalStatus; + + @ApiModelProperty("鏈�楂樺鍘�") + @ExcelProperty("鏈�楂樺鍘�") + private String officialAcademicRedentials; + + @ApiModelProperty("姣曚笟鏃堕棿1") + @ExcelProperty("姣曚笟鏃堕棿") + private LocalDateTime graduationTime1; + + @ApiModelProperty("姣曚笟闄㈡牎1") + @ExcelProperty("姣曚笟闄㈡牎") + private String graduatedInstitutions1; + + @ApiModelProperty("涓撲笟1") + @ExcelProperty("鎵�瀛︿笓涓�") + private String major1; + + @ApiModelProperty("姣曚笟鏃堕棿2") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime graduationTime2; + + @ApiModelProperty("姣曚笟闄㈡牎2") + private String graduatedInstitutions2; + + @ApiModelProperty("涓撲笟2") + private String major2; + + @ApiModelProperty("鎵嬫満鍙�") + private String telephone; + + @ApiModelProperty("澶囨敞") + private String remarks; + + @ApiModelProperty("鐢ㄦ埛琛紙user锛塱d") + private Integer userId; + + @ApiModelProperty("鍏徃鍚嶇О") + private String corporateName; + + @ApiModelProperty("宀椾綅鍚嶇О") + private String postName; + + @ApiModelProperty("鍏ラ泦鍥㈡椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + @ExcelProperty("鍏ラ泦鍥㈡椂闂�") + private LocalDateTime groupTime; + + @ApiModelProperty("鍔冲姩鍏崇郴") + private Integer laborRelations; + + @ApiModelProperty("宸ヤ綔鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime workingTime; + + @ApiModelProperty("鍚堝悓鏈夋晥鏈�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime contractLifeTime; + + @ApiModelProperty("绫嶈疮") + @ExcelProperty("绫嶈疮") + private String nativePlace; + + @ApiModelProperty("璇佷欢鏈夋晥鏈�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime validityPeriod; + + @ApiModelProperty("濠氬Щ鐘跺喌") + private Integer maritalStatus; + + @ApiModelProperty("璇佷欢鍦板潃") + @ExcelProperty("璇佷欢鍦板潃") + private String idAddress; + + @ApiModelProperty("璇佷欢璇︾粏鍦板潃") + private String idDetailAddress; + + @ApiModelProperty("鍏ュ厷/鍥㈡椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime dumplingTime; + + @ApiModelProperty("鏈�楂樺浣�") + @ExcelProperty("鏈�楂樺浣�") + private String highestDegree; + + @ApiModelProperty("鏈�鍚庢洿鏂版椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime lastUpdateTime; + + + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoFile.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoFile.java new file mode 100644 index 0000000..0b366f8 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoFile.java @@ -0,0 +1,58 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅闄勪欢 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:28:55 + */ +@Getter +@Setter +@TableName("cnas_person_basic_info_file") +@ApiModel(value = "PersonBasicInfoFile瀵硅薄", description = "浜哄憳鍩烘湰淇℃伅闄勪欢") +public class PersonBasicInfoFile implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "basic_info_file_id", type = IdType.AUTO) + private Integer basicInfoFileId; + + @ApiModelProperty("浜哄憳鍩烘湰淇℃伅id") + private Integer userId; + + @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢") + private Integer type; + + @ApiModelProperty("闄勪欢璺緞") + private String fileUrl; + + @ApiModelProperty("闄勪欢鍚嶇О") + private String fileName; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoWork.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoWork.java new file mode 100644 index 0000000..2d15afa --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoWork.java @@ -0,0 +1,53 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:45:04 + */ +@Getter +@Setter +@TableName("cnas_person_basic_info_work") +@ApiModel(value = "PersonBasicInfoWork瀵硅薄", description = "浜哄憳鍩烘湰淇℃伅") +public class PersonBasicInfoWork implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "basic_info_work_id", type = IdType.AUTO) + private Integer basicInfoWorkId; + + @ApiModelProperty("浜哄憳id") + private Integer userId; + + @ApiModelProperty("宸ヤ綔缁忓巻") + private String workExperience; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/AnnexService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/AnnexService.java new file mode 100644 index 0000000..8de7b15 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/AnnexService.java @@ -0,0 +1,7 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.pojo.Annex; + +public interface AnnexService extends IService<Annex> { +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoFileService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoFileService.java new file mode 100644 index 0000000..1fb5ba6 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoFileService.java @@ -0,0 +1,16 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.pojo.PersonBasicInfoFile; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅闄勪欢 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:28:55 + */ +public interface PersonBasicInfoFileService extends IService<PersonBasicInfoFile> { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoService.java new file mode 100644 index 0000000..fcc4d69 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoService.java @@ -0,0 +1,45 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.domain.entity.DepartmentDto; +import com.ruoyi.personnel.dto.PersonBasicInfoDto; +import com.ruoyi.personnel.dto.UserPageDto; +import com.ruoyi.personnel.pojo.PersonBasicInfo; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-08-30 09:19:57 + */ +public interface PersonBasicInfoService extends IService<PersonBasicInfo> { + + List<DepartmentDto> selectCNSAPersonTree(); + + Map<String,Object> getCNASPersonnelInfo(Integer userId); + + void saveCNASPersonnelInfo(PersonBasicInfoDto personBasicInfoDto); + + IPage<Map<String, Object>> basicInformationOfPersonnelSelectPage(Page page, String name, Integer departmentId); + + void exportPersonBasicInfo(UserPageDto userPageDto, HttpServletResponse response) throws Exception; + + String exportPersonBasicInfoById(Integer id, HttpServletResponse response); + + /** + * 浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鏂板 + * @param basicInfoId + * @param file + * @return + */ + boolean uploadBasicInfoFile(Integer basicInfoId, MultipartFile file); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoWorkService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoWorkService.java new file mode 100644 index 0000000..cfd944f --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoWorkService.java @@ -0,0 +1,16 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.pojo.PersonBasicInfoWork; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:45:04 + */ +public interface PersonBasicInfoWorkService extends IService<PersonBasicInfoWork> { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/AnnexServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/AnnexServiceImpl.java new file mode 100644 index 0000000..d944b3b --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/AnnexServiceImpl.java @@ -0,0 +1,13 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.personnel.mapper.AnnexMapper; +import com.ruoyi.personnel.pojo.Annex; +import com.ruoyi.personnel.service.AnnexService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +public class AnnexServiceImpl extends ServiceImpl<AnnexMapper, Annex> implements AnnexService { +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoFileServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoFileServiceImpl.java new file mode 100644 index 0000000..a70f196 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoFileServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.personnel.mapper.PersonBasicInfoFileMapper; +import com.ruoyi.personnel.pojo.PersonBasicInfoFile; +import com.ruoyi.personnel.service.PersonBasicInfoFileService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅闄勪欢 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:28:55 + */ +@Service +public class PersonBasicInfoFileServiceImpl extends ServiceImpl<PersonBasicInfoFileMapper, PersonBasicInfoFile> implements PersonBasicInfoFileService { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java new file mode 100644 index 0000000..7d0e695 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java @@ -0,0 +1,336 @@ +//package com.ruoyi.personnel.service.impl; +// +//import com.alibaba.excel.EasyExcel; +//import com.alibaba.excel.ExcelWriter; +//import com.alibaba.excel.write.metadata.WriteSheet; +//import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +//import com.alibaba.fastjson2.JSON; +//import com.alibaba.fastjson2.JSONObject; +//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +//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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +//import com.ruoyi.common.core.domain.entity.DepartmentDto; +//import com.ruoyi.common.core.domain.entity.DepartmentLims; +//import com.ruoyi.common.core.domain.entity.User; +//import com.ruoyi.common.utils.QueryWrappers; +//import com.ruoyi.framework.exception.ErrorException; +//import com.ruoyi.personnel.dto.PersonBasicInfoDto; +//import com.ruoyi.personnel.dto.UserPageDto; +//import com.ruoyi.personnel.mapper.AnnexMapper; +//import com.ruoyi.personnel.mapper.PersonBasicInfoFileMapper; +//import com.ruoyi.personnel.mapper.PersonBasicInfoMapper; +//import com.ruoyi.personnel.mapper.PersonBasicInfoWorkMapper; +//import com.ruoyi.personnel.pojo.Annex; +//import com.ruoyi.personnel.pojo.PersonBasicInfo; +//import com.ruoyi.personnel.pojo.PersonBasicInfoFile; +//import com.ruoyi.personnel.pojo.PersonBasicInfoWork; +//import com.ruoyi.personnel.service.PersonBasicInfoService; +//import com.ruoyi.system.mapper.DepartmentLimsMapper; +//import com.ruoyi.system.mapper.UserMapper; +//import org.apache.poi.xwpf.usermodel.XWPFTable; +//import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; +//import org.springframework.beans.BeanUtils; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +//import org.springframework.web.multipart.MultipartFile; +// +//import javax.annotation.Resource; +//import javax.servlet.http.HttpServletResponse; +//import java.io.File; +//import java.io.IOException; +//import java.io.InputStream; +//import java.io.OutputStream; +//import java.net.URLEncoder; +//import java.time.LocalDateTime; +//import java.time.format.DateTimeFormatter; +//import java.util.*; +//import java.util.stream.Collectors; +// +///** +// * <p> +// * 鏈嶅姟瀹炵幇绫� +// * </p> +// * +// * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 +// * @since 2024-08-30 09:19:57 +// */ +// +//@Service +//@Transactional(rollbackFor = Exception.class) +//public class PersonBasicInfoServiceImpl extends ServiceImpl<PersonBasicInfoMapper, PersonBasicInfo> implements PersonBasicInfoService { +// +// @Autowired +// private DepartmentLimsMapper departmentMapper; +// @Value("${file.path}") +// private String imgUrl; +// @Value("${wordUrl}") +// private String wordUrl; +// @Resource +// private UserMapper userMapper; +// @Resource +// private AnnexMapper annexMapper; +// @Resource +// private PersonBasicInfoFileMapper personBasicInfoFileMapper; +// @Resource +// private PersonBasicInfoWorkMapper personBasicInfoWorkMapper; +// +// @Override +// public List<DepartmentDto> selectCNSAPersonTree() { +// List<DepartmentDto> departments = departmentMapper.selectDepartment(); +// List<DepartmentDto> limsUser = baseMapper.selectLimsUser(); +// departments.addAll(limsUser); +// //鑾峰彇鐖惰妭鐐� +// return departments.stream().filter(m -> m.getFatherId() == null).peek( +// (m) -> m.setChildren(getChildren(m, departments)) +// ).collect(Collectors.toList()); +// } +// +// @Override +// public Map<String,Object> getCNASPersonnelInfo(Integer userId) { +// Map<String, Object> map = new HashMap<>(); +// Map<Integer,List<DepartmentLims>> childrenMap = new HashMap<>(); +// List<DepartmentLims> deptS = departmentMapper.selectList(null); +// for (DepartmentLims dept : deptS) { +// if(!Objects.isNull(dept.getFatherId())) { +// if(!childrenMap.containsKey(dept.getFatherId())) { +// childrenMap.put(dept.getFatherId(),new ArrayList<>()); +// } +// childrenMap.get(dept.getFatherId()).add(dept); +// } +// } +// // 鐖惰妭鐐� +// List<DepartmentLims> deptF = new ArrayList<>(); +// for (DepartmentLims dept : deptS) { +// if(Objects.isNull(dept.getFatherId())) { +// deptF.add(buildTree(dept,childrenMap)); +// } +// } +// map.put("department",deptF); +// map.put("PersonBasicInfoDto",baseMapper.getCNASPersonnelInfo(userId)); +// map.put("annexList",annexMapper.selectList(new LambdaQueryWrapper<Annex>().eq(Annex::getUserId,userId))); +// return map; +// } +// +// private DepartmentLims buildTree(DepartmentLims departmentLims, Map<Integer,List<DepartmentLims>> childrenMap) { +// if(childrenMap.containsKey(departmentLims.getId())) { +// departmentLims.setChildren(childrenMap.get(departmentLims.getId())); +// for (DepartmentLims departmentLims1 : departmentLims.getChildren()) { +// buildTree(departmentLims1,childrenMap); +// } +// } +// return departmentLims; +// } +// +// @Override +// public void saveCNASPersonnelInfo(PersonBasicInfoDto personBasicInfoDto) { +// User user = new User(); +// user.setId(personBasicInfoDto.getUserId()); +// user.setAccount(personBasicInfoDto.getAccount()); +// user.setName(personBasicInfoDto.getName()); +// user.setNameEn(personBasicInfoDto.getNameEn()); +// user.setAge(personBasicInfoDto.getAge()); +// user.setPhone(personBasicInfoDto.getPhone()); +// user.setEmail(personBasicInfoDto.getEmail()); +// user.setSignatureUrl(personBasicInfoDto.getSignatureUrl()); +// user.setPictureUrl(personBasicInfoDto.getPictureUrl()); +// user.setDepartLimsId(personBasicInfoDto.getDepartLimsId()); +// userMapper.updateById(user); +// PersonBasicInfo personBasicInfo = JSONObject.parseObject(JSON.toJSONString(personBasicInfoDto), PersonBasicInfo.class); +// PersonBasicInfo one = baseMapper.selectOne(new LambdaQueryWrapper<PersonBasicInfo>() +// .eq(PersonBasicInfo::getUserId, personBasicInfoDto.getUserId())); +// if(Objects.isNull(one)) { +// baseMapper.insert(personBasicInfo); +// }else { +// baseMapper.updateById(personBasicInfo); +// } +// } +// +// @Override +// public IPage<Map<String, Object>> basicInformationOfPersonnelSelectPage(Page page, String name, Integer departmentId) { +// return baseMapper.selectPersonBasecInfoAndUser(page, name, departmentId); +// } +// +// @Override +// public void exportPersonBasicInfo(UserPageDto userPageDto, HttpServletResponse response) throws Exception { +// ArrayList<PersonBasicInfoDto> data = new ArrayList<>(); +// List<User> list = userMapper.selectUserDtoPageList(new Page(-1, -1), QueryWrappers.queryWrappers(userPageDto)).getRecords(); +// for (User user : list) { +// PersonBasicInfoDto personBasicInfoDto = new PersonBasicInfoDto(); +// PersonBasicInfo personBasicInfo = baseMapper.selectOne(Wrappers.<PersonBasicInfo>lambdaQuery().eq(PersonBasicInfo::getUserId, user.getId())); +// if (ObjectUtils.isNotEmpty(personBasicInfo)) { +// BeanUtils.copyProperties(personBasicInfo, personBasicInfoDto); +// } +// personBasicInfoDto.setName(user.getName()); +// personBasicInfoDto.setAccount(user.getAccount()); +// personBasicInfoDto.setPhone(ObjectUtils.isNotEmpty(user.getPhone()) ? user.getPhone() : " "); +// data.add(personBasicInfoDto); +// } +// response.setContentType("application/vnd.ms-excel"); +// response.setCharacterEncoding("UTF-8"); +// String fileName = URLEncoder.encode("浜哄憳鍩烘湰淇℃伅鍒楄〃瀵煎嚭", "UTF-8"); +// response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); +// try { +// // 鏂板缓ExcelWriter +// ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); +// WriteSheet mainSheet = EasyExcel.writerSheet(0, "浜哄憳鍩烘湰淇℃伅瀵煎嚭").head(PersonBasicInfoDto.class).build(); +// excelWriter.write(data, mainSheet); +// // 鍏抽棴娴� +// excelWriter.finish(); +// } catch (IOException e) { +// throw new RuntimeException("瀵煎嚭澶辫触"); +// } +// } +// +// @Override +// public String exportPersonBasicInfoById(Integer id, HttpServletResponse response) { +// Map<String, Object> userMap = baseMapper.selectexportPersonBasic(id); +// User user = userMapper.selectById(id); +// PersonBasicInfo personBasicInfo = baseMapper.selectOne(Wrappers.<PersonBasicInfo>lambdaQuery().eq(PersonBasicInfo::getUserId, user.getId())); +// if (ObjectUtils.isEmpty(personBasicInfo)){ +// throw new ErrorException("璇ョ敤鎴风殑鍩烘湰淇℃伅娌℃湁褰曞叆,鏆傛棤娉曞鍑�"); +// } +// // 璇佷欢 +// List<Annex> annexList = annexMapper.selectList(Wrappers.<Annex>lambdaQuery() +// .eq(Annex::getUserId, id)); +// // 宸ヤ綔缁忓巻 +// List<PersonBasicInfoWork> personBasicInfoWorks = personBasicInfoWorkMapper.selectList(Wrappers.<PersonBasicInfoWork>lambdaQuery() +// .eq(PersonBasicInfoWork::getUserId, id)); +// +// List<PersonBasicInfoWorkDto> workList = personBasicInfoWorks.stream().map(basicInfoWork -> { +// PersonBasicInfoWorkDto personBasicInfoWorkDto = new PersonBasicInfoWorkDto(); +// personBasicInfoWorkDto.setWorkExperience(basicInfoWork.getWorkExperience()); +// personBasicInfoWorkDto.setFill("涓昏宸ヤ綔缁忓巻\nMain work experience鈭�1"); +// return personBasicInfoWorkDto; +// }).collect(Collectors.toList()); +// +// // 妫�鏌ュ垪琛ㄩ暱搴﹀苟濉厖绌哄璞� +// while (annexList.size() < 10) { +// annexList.add(new Annex()); +// } +// +// // 妫�鏌ュ垪琛ㄩ暱搴﹀苟濉厖绌哄璞� +// while (workList.size() < 4) { +// workList.add(new PersonBasicInfoWorkDto()); +// } +// +// // 鑾峰彇璺緞 +// InputStream inputStream = this.getClass().getResourceAsStream("/static/person-basic-info.docx"); +// Configure configure = Configure.builder() +// .bind("annexList", new HackLoopTableRenderPolicy()) +// .bind("workList", new HackLoopTableRenderPolicy()) +// .build(); +// XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( +// new HashMap<String, Object>() {{ +// put("user", userMap); +// put("annexList", annexList); +// put("workList", workList); +// }}); +// +// try { +// response.setContentType("application/msword"); +// String fileName = URLEncoder.encode( +// userMap.get("name") + "浜哄憳妗f", "UTF-8"); +// response.setHeader("Content-disposition", +// "attachment;filename=" + fileName + ".docx"); +// OutputStream os = response.getOutputStream(); +// template.write(os); +// os.flush(); +// os.close(); +// } catch (Exception e) { +// e.printStackTrace(); +// throw new RuntimeException("瀵煎嚭澶辫触"); +// } +// +// return null; +// } +// +// /** +// * 浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鏂板 +// * @param userId +// * @param file +// * @return +// */ +// @Override +// public boolean uploadBasicInfoFile(Integer userId, MultipartFile file) { +// if (userId == null) { +// throw new ErrorException("缂哄皯浜哄憳id"); +// } +// +// String urlString; +// String pathName; +// String path; +// String filename = file.getOriginalFilename(); +// String contentType = file.getContentType(); +// PersonBasicInfoFile personBasicInfoFile = new PersonBasicInfoFile(); +// personBasicInfoFile.setUserId(userId); +// personBasicInfoFile.setFileName(filename); +// if (contentType != null && contentType.startsWith("image/")) { +// // 鏄浘鐗� +// path = imgUrl; +// personBasicInfoFile.setType(1); +// } else { +// // 鏄枃浠� +// path = wordUrl; +// personBasicInfoFile.setType(2); +// } +// try { +// File realpath = new File(path); +// if (!realpath.exists()) { +// realpath.mkdirs(); +// } +// pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename(); +// urlString = realpath + "/" + pathName; +// file.transferTo(new File(urlString)); +// personBasicInfoFile.setFileUrl(pathName); +// personBasicInfoFileMapper.insert(personBasicInfoFile); +// return true; +// } catch (Exception e) { +// e.printStackTrace(); +// System.err.println("闄勪欢涓婁紶閿欒"); +// return false; +// } +// } +// +// /** +// * 閫掑綊鏌ヨ瀛愯妭鐐� +// * @param root 鏍硅妭鐐� +// * @param all 鎵�鏈夎妭鐐� +// * @return 鏍硅妭鐐逛俊鎭� +// */ +// private List<DepartmentDto> getChildren(DepartmentDto root, List<DepartmentDto> all) { +// if (ObjectUtils.isNotEmpty(root.getId())) { +// return all.stream().filter(m -> Objects.equals(m.getFatherId(), root.getId())).peek( +// (m) -> m.setChildren(getChildren(m, all)) +// ).collect(Collectors.toList()); +// } else { +// return Collections.emptyList(); +// } +// } +// +// // 姘村钩鍚堝苟鍗曞厓鏍� +// private static void mergeCellsHorizontally(XWPFTable table, int row, int fromCol, int toCol) { +// for (int i = fromCol; i <= toCol; i++) { +// if (i == fromCol) { +// table.getRow(row).getCell(i).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART); +// } else { +// table.getRow(row).getCell(i).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE); +// } +// } +// } +// +// // 鍨傜洿鍚堝苟鍗曞厓鏍� +// private static void mergeCellsVertically(XWPFTable table, int col, int fromRow, int toRow) { +// for (int i = fromRow; i <= toRow; i++) { +// if (i == fromRow) { +// table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART); +// } else { +// table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE); +// } +// } +// } +//} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoWorkServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoWorkServiceImpl.java new file mode 100644 index 0000000..3ed8882 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoWorkServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.personnel.mapper.PersonBasicInfoWorkMapper; +import com.ruoyi.personnel.pojo.PersonBasicInfoWork; +import com.ruoyi.personnel.service.PersonBasicInfoWorkService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:45:04 + */ +@Service +public class PersonBasicInfoWorkServiceImpl extends ServiceImpl<PersonBasicInfoWorkMapper, PersonBasicInfoWork> implements PersonBasicInfoWorkService { + +} diff --git a/pom.xml b/pom.xml index 9d36e98..0dbf825 100644 --- a/pom.xml +++ b/pom.xml @@ -278,6 +278,13 @@ <version>${ruoyi.version}</version> </dependency> + <!--cnas浜哄憳--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>cnas-personnel</artifactId> + <version>${ruoyi.version}</version> + </dependency> + <!-- minio --> <dependency> <groupId>io.minio</groupId> @@ -392,6 +399,7 @@ <module>cnas-manage</module> <module>cnas-device</module> <module>cnas-process</module> + <module>cnas-personnel</module> </modules> <packaging>pom</packaging> diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 7dd0fdb..485e28d 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -97,6 +97,18 @@ <artifactId>cnas-device</artifactId> </dependency> + <!--cnas璧勬簮瑕佹眰--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>cnas-process</artifactId> + </dependency> + + <!--cnas浜哄憳--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>cnas-personnel</artifactId> + </dependency> + </dependencies> diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentDto.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentDto.java new file mode 100644 index 0000000..9fa947a --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentDto.java @@ -0,0 +1,23 @@ +package com.ruoyi.common.core.domain.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DepartmentDto { + + private Integer id; + + private String name; + + private Integer userId; + + private Integer fatherId; + + private List<DepartmentDto> children; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentLims.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentLims.java new file mode 100644 index 0000000..4ec52e2 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentLims.java @@ -0,0 +1,42 @@ +package com.ruoyi.common.core.domain.entity; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 閮ㄩ棬鏄庣粏 + * @TableName department_lims + */ +@TableName(value ="department_lims") +@Data +public class DepartmentLims implements Serializable { + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("鍚嶇О") + private String name; + + @ApiModelProperty("鐖剁骇id") + private Integer fatherId; + + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @TableField(exist = false) + private List<DepartmentLims> children; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DepartmentLimsMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DepartmentLimsMapper.java new file mode 100644 index 0000000..3e2a51e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DepartmentLimsMapper.java @@ -0,0 +1,27 @@ +package com.ruoyi.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.core.domain.entity.DepartmentDto; +import com.ruoyi.common.core.domain.entity.DepartmentLims; + +import java.util.List; + +/** +* @author z1292 +* @description 閽堝琛ㄣ�恉epartment_lims(閮ㄩ棬鏄庣粏)銆戠殑鏁版嵁搴撴搷浣淢apper +* @createDate 2024-05-22 14:08:17 +* @Entity com.yuanchu.mom.pojo.DepartmentLims +*/ +public interface DepartmentLimsMapper extends BaseMapper<DepartmentLims> { + + //鑾峰彇閮ㄩ棬鏍� + List<DepartmentDto> selectDepartment(); + + //鏍规嵁閮ㄩ棬id,鏌ヨ浠栫殑鎵�鏈夊瓙绫籭d + List<Integer> selectSonById(Integer id); + +} + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/DepartmentLimsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/DepartmentLimsMapper.xml new file mode 100644 index 0000000..48c7d39 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/DepartmentLimsMapper.xml @@ -0,0 +1,25 @@ +<?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.system.mapper.DepartmentLimsMapper"> + + + <select id="selectDepartment" resultType="com.ruoyi.common.core.domain.entity.DepartmentDto"> + SELECT id, name, father_id + FROM department_lims + </select> + + <select id="selectSonById" resultType="java.lang.Integer"> + SELECT au.id + FROM (SELECT * FROM department_lims WHERE father_id IS NOT NULL) au, + (SELECT @father_id := #{id}) pd + WHERE FIND_IN_SET(father_id, @father_id) > 0 + AND @father_id := concat(@father_id, ',', id) + UNION + SELECT id + FROM department_lims + WHERE id = #{id} + ORDER BY id + </select> +</mapper> -- Gitblit v1.9.3