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> 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 = "ä¸è½½äººåæ¡£æ¡å¡") // @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)); // } //} 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; } 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; } 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> { } 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> { } 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); } 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> { } 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表id") 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; } 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ï¼id") 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; } 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; } 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; } 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> { } 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> { } 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); } 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> { } 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 { } 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 { } 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") + "äººåæ¡£æ¡", "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); // } // } // } //} 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 { } 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> 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> 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; } 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; } 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 é对表ãdepartment_lims(é¨é¨æç»)ãçæ°æ®åºæä½Mapper * @createDate 2024-05-22 14:08:17 * @Entity com.yuanchu.mom.pojo.DepartmentLims */ public interface DepartmentLimsMapper extends BaseMapper<DepartmentLims> { //è·åé¨é¨æ List<DepartmentDto> selectDepartment(); //æ ¹æ®é¨é¨id,æ¥è¯¢ä»çææåç±»id List<Integer> selectSonById(Integer id); } 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>