From 8c8be02883e58d28727d3b510e5260474fc955ae Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期一, 24 二月 2025 10:55:13 +0800 Subject: [PATCH] 人员沟通记录移植 --- cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonCommunicationAbilityDto.java | 14 cnas-personnel/src/main/resources/mapper/PersonCommunicationAbilityMapper.xml | 19 + cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java | 2 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityExportDto.java | 101 +++++ cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPersonnelCapacityMapper.java | 29 + cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java | 186 +++++----- cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonCommunicationAbilityController.java | 61 +++ cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java | 113 ++++++ cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java | 158 +++++++++ cnas-personnel/src/main/resources/mapper/PersonPersonnelCapacityMapper.xml | 118 ++++++ cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonCommunicationAbility.java | 61 +++ cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityDto.java | 30 + cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonCommunicationAbilityMapper.java | 21 + cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonCommunicationAbilityService.java | 25 + cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java | 69 ++-- 15 files changed, 878 insertions(+), 129 deletions(-) diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java index 0251cac..c5b1067 100644 --- a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java +++ b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java @@ -71,7 +71,7 @@ */ @ApiOperation(value = "瀹㈡埛婊℃剰搴﹁皟鏌ユ柊澧�") - @GetMapping("/delClientSatisfaction") + @DeleteMapping("/delClientSatisfaction") public Result updateClientSatisfaction(Integer clientSatisfactionId){ return Result.success(clientSatisfactionService.removeById(clientSatisfactionId)); } diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonCommunicationAbilityController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonCommunicationAbilityController.java new file mode 100644 index 0000000..3aef8b9 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonCommunicationAbilityController.java @@ -0,0 +1,61 @@ +package com.ruoyi.personnel.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.personnel.dto.PersonCommunicationAbilityDto; +import com.ruoyi.personnel.pojo.PersonCommunicationAbility; +import com.ruoyi.personnel.service.PersonCommunicationAbilityService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 娌熼�氳褰� 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 12:00:57 + */ +@Api(tags = "浜哄憳 - 娌熼�氳褰�") +@RestController +@RequestMapping("/personCommunicationAbility") +public class PersonCommunicationAbilityController { + + @Autowired + private PersonCommunicationAbilityService personCommunicationAbilityService; + + @ApiOperation(value = "鏂板/鏇存柊 娌熼�氳褰�") + @PostMapping("addOrUpdatePersonCommunicationAbility") + public Result<?> addOrUpdatePersonCommunicationAbility(@RequestBody PersonCommunicationAbility personCommunicationAbility) { + personCommunicationAbilityService.saveOrUpdate(personCommunicationAbility); + return Result.success(); + } + + @ApiOperation(value = "鍒犻櫎 娌熼�氳褰�") + @DeleteMapping("deletePersonCommunicationAbility") + public Result<?> deletePersonCommunicationAbility(@RequestParam("id") Integer id) { + personCommunicationAbilityService.removeById(id); + return Result.success(); + } + + + @ApiOperation(value = "鏌ヨ 娌熼�氳褰�") + @GetMapping("personPersonCommunicationAbilityPage") + public Result<IPage<PersonCommunicationAbilityDto>> personPersonCommunicationAbilityPage(Page page, + Integer departLimsId, + Integer userId, + String userName) { + return Result.success(personCommunicationAbilityService.personPersonCommunicationAbilityPage(page, departLimsId, userId, userName)); + } + + @ApiOperation(value = "瀵煎嚭娌熼�氳褰�") + @PostMapping("exportPersonCommunicationAbility") + public void exportPersonCommunicationAbility(Integer id, HttpServletResponse response) throws Exception{ + personCommunicationAbilityService.exportPersonCommunicationAbility(id,response); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java index b98f1de..a066615 100644 --- a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java @@ -1,94 +1,92 @@ -//package com.ruoyi.personnel.controller; -// -//import com.baomidou.mybatisplus.core.metadata.IPage; -//import com.baomidou.mybatisplus.core.toolkit.Wrappers; -//import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -//import com.yuanchu.mom.annotation.ValueAuth; -//import com.yuanchu.mom.common.GetLook; -//import com.yuanchu.mom.dto.PersonPersonnelCapacityDto; -//import com.yuanchu.mom.pojo.PersonPersonnelCapacity; -//import com.yuanchu.mom.service.PersonPersonnelCapacityService; -//import com.yuanchu.mom.vo.Result; -//import io.swagger.annotations.Api; -//import io.swagger.annotations.ApiOperation; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.web.bind.annotation.*; -// -//import javax.servlet.http.HttpServletResponse; -//import java.time.LocalDateTime; -// -///** -// * <p> -// * 浜哄憳鑳藉姏 鍓嶇鎺у埗鍣� -// * </p> -// * -// * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 -// * @since 2024-10-10 11:26:18 -// */ -//@Api(tags = "浜哄憳 - 浜哄憳鑳藉姏") -//@RestController -//@RequestMapping("/personPersonnelCapacity") -//public class PersonPersonnelCapacityController { -// -// @Autowired -// private PersonPersonnelCapacityService personPersonnelCapacityService; -// -// -// @ApiOperation(value = "鏂板/鏇存柊 浜哄憳鑳藉姏") -// @PostMapping("addOrUpdatePersonPersonnelCapacity") -// public Result<?> addOrUpdatePersonPersonnelCapacity(@RequestBody PersonPersonnelCapacity personPersonnelCapacity) { -// personPersonnelCapacityService.saveOrUpdate(personPersonnelCapacity); -// return Result.success(); -// } -// -// @ApiOperation(value = "鍒犻櫎 浜哄憳鑳藉姏") -// @DeleteMapping("deletePersonPersonnelCapacity") -// public Result<?> deletePersonPersonnelCapacity(@RequestParam("id") Integer id) { -// // 鍒犻櫎鏁版嵁 -// personPersonnelCapacityService.removeById(id); -// return Result.success(); -// } -// -// @ApiOperation(value = "鏌ヨ 浜哄憳鑳藉姏") -// @GetMapping("personPersonnelCapacityPage") -// public Result<IPage<PersonPersonnelCapacityDto>> personPersonnelCapacityPage(Page page, -// Integer departmentId, -// Integer userId, -// String userName) { -// return Result.success(personPersonnelCapacityService.personPersonnelCapacityPage(page, departmentId, userId, userName)); -// } -// -// @ApiOperation(value = "纭 浜哄憳鑳藉姏") -// @GetMapping("confirmPersonnelCapability") -// public Result<?> confirmPersonnelCapability(@RequestParam("id") Integer id) { -// Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); -// personPersonnelCapacityService.update(Wrappers.<PersonPersonnelCapacity>lambdaUpdate() -// .eq(PersonPersonnelCapacity::getId, id) -// .set(PersonPersonnelCapacity::getConfirmOperatingPersonnelId, userId) -// .set(PersonPersonnelCapacity::getConfirmDate, LocalDateTime.now())); -// return Result.success(); -// } -// -// /** -// * 瀵煎嚭浜哄憳鑳藉姏 -// * @return -// */ -// @ValueAuth -// @ApiOperation(value = "瀵煎嚭浜哄憳鑳藉姏") -// @GetMapping("/exportPersonnelCapacity") -// public void exportPersonnelCapacity(Integer id, HttpServletResponse response){ -// personPersonnelCapacityService.exportPersonnelCapacity(id, response); -// } -// -// /** -// * 鎻愪氦纭浜哄憳鑳藉姏 -// * @param personPersonnelCapacity -// * @return -// */ -// @ApiOperation(value = "鎻愪氦") -// @PostMapping("submitConfirmPersonnelCapability") -// public Result<?> submitConfirmPersonnelCapability(@RequestBody PersonPersonnelCapacity personPersonnelCapacity) { -// personPersonnelCapacityService.submitConfirmPersonnelCapability(personPersonnelCapacity); -// return Result.success(); -// } -//} +package com.ruoyi.personnel.controller; + +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.common.core.domain.Result; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.personnel.dto.PersonPersonnelCapacityDto; +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; +import com.ruoyi.personnel.service.PersonPersonnelCapacityService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.time.LocalDateTime; + +/** + * <p> + * 浜哄憳鑳藉姏 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-10 11:26:18 + */ +@Api(tags = "浜哄憳 - 浜哄憳鑳藉姏") +@RestController +@RequestMapping("/personPersonnelCapacity") +public class PersonPersonnelCapacityController { + + @Autowired + private PersonPersonnelCapacityService personPersonnelCapacityService; + + + @ApiOperation(value = "鏂板/鏇存柊 浜哄憳鑳藉姏") + @PostMapping("addOrUpdatePersonPersonnelCapacity") + public Result<?> addOrUpdatePersonPersonnelCapacity(@RequestBody PersonPersonnelCapacity personPersonnelCapacity) { + personPersonnelCapacityService.saveOrUpdate(personPersonnelCapacity); + return Result.success(); + } + + @ApiOperation(value = "鍒犻櫎 浜哄憳鑳藉姏") + @DeleteMapping("deletePersonPersonnelCapacity") + public Result<?> deletePersonPersonnelCapacity(@RequestParam("id") Integer id) { + // 鍒犻櫎鏁版嵁 + personPersonnelCapacityService.removeById(id); + return Result.success(); + } + + @ApiOperation(value = "鏌ヨ 浜哄憳鑳藉姏") + @GetMapping("personPersonnelCapacityPage") + public Result<IPage<PersonPersonnelCapacityDto>> personPersonnelCapacityPage(Page page, + Integer departmentId, + Integer userId, + String userName) { + return Result.success(personPersonnelCapacityService.personPersonnelCapacityPage(page, departmentId, userId, userName)); + } + + @ApiOperation(value = "纭 浜哄憳鑳藉姏") + @GetMapping("confirmPersonnelCapability") + public Result<?> confirmPersonnelCapability(@RequestParam("id") Integer id) { + Integer userId = SecurityUtils.getUserId().intValue(); + personPersonnelCapacityService.update(Wrappers.<PersonPersonnelCapacity>lambdaUpdate() + .eq(PersonPersonnelCapacity::getId, id) + .set(PersonPersonnelCapacity::getConfirmOperatingPersonnelId, userId) + .set(PersonPersonnelCapacity::getConfirmDate, LocalDateTime.now())); + return Result.success(); + } + + /** + * 瀵煎嚭浜哄憳鑳藉姏 + * @return + */ + @ApiOperation(value = "瀵煎嚭浜哄憳鑳藉姏") + @GetMapping("/exportPersonnelCapacity") + public void exportPersonnelCapacity(Integer id, HttpServletResponse response){ + personPersonnelCapacityService.exportPersonnelCapacity(id, response); + } + + /** + * 鎻愪氦纭浜哄憳鑳藉姏 + * @param personPersonnelCapacity + * @return + */ + @ApiOperation(value = "鎻愪氦") + @PostMapping("submitConfirmPersonnelCapability") + public Result<?> submitConfirmPersonnelCapability(@RequestBody PersonPersonnelCapacity personPersonnelCapacity) { + personPersonnelCapacityService.submitConfirmPersonnelCapability(personPersonnelCapacity); + return Result.success(); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonCommunicationAbilityDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonCommunicationAbilityDto.java new file mode 100644 index 0000000..d3cb18e --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonCommunicationAbilityDto.java @@ -0,0 +1,14 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonCommunicationAbility; +import lombok.Data; + +@Data +public class PersonCommunicationAbilityDto extends PersonCommunicationAbility { + + private String userName; + + private String account; + + private String createUserName; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityDto.java new file mode 100644 index 0000000..5e77690 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityDto.java @@ -0,0 +1,30 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PersonPersonnelCapacityDto extends PersonPersonnelCapacity { + + @ApiModelProperty("鎿嶄綔浜哄鍚�") + private String confirmOperatingPersonnelName; + + @ApiModelProperty("浜哄憳濮撳悕") + private String userName; + + @ApiModelProperty("宀椾綅鍚嶇О") + private String postName; + + @ApiModelProperty("宀椾綅鑱岃矗") + private String responsibilities; + + @ApiModelProperty("宸ヤ綔缁忓巻") + private String placeWork; + + @ApiModelProperty("涓撲笟") + private String major; + + @ApiModelProperty(value = "鑱岀О") + private String professionalTitle; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityExportDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityExportDto.java new file mode 100644 index 0000000..20526b6 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityExportDto.java @@ -0,0 +1,101 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/11/28 + */ +@Data +public class PersonPersonnelCapacityExportDto extends PersonPersonnelCapacity { + + @ApiModelProperty("宀椾綅鍚嶇О") + private String postName; + + @ApiModelProperty("浜哄憳濮撳悕") + private String userName; + + @ApiModelProperty("瀛﹀巻") + private String officialAcademicRedentials; + + @ApiModelProperty("涓撲笟") + private String major; + + @ApiModelProperty("鑱岀О") + private String professionalTitle; + + @ApiModelProperty("宸ヤ綔缁忓巻") + private String placeWork; + + @ApiModelProperty("瀛﹀巻 绗﹀悎涓庡惁(1锛氱鍚�)") + private String academicConformNot1 = "鈻�"; + @ApiModelProperty("瀛﹀巻 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String academicConformNot2 = "鈻�"; + @ApiModelProperty("瀛﹀巻 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String academicConformNot3 = "鈻�"; + + @ApiModelProperty("鐩稿叧骞撮檺 绗﹀悎涓庡惁(1锛氱鍚�)") + private String relatedYearsConformNot1 = "鈻�"; + @ApiModelProperty("鐩稿叧骞撮檺 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String relatedYearsConformNot2 = "鈻�"; + @ApiModelProperty("鐩稿叧骞撮檺 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String relatedYearsConformNot3 = "鈻�"; + + @ApiModelProperty("鐩稿叧鍩硅 绗﹀悎涓庡惁(1锛氱鍚�)") + private String relatedTrainingConformNot1 = "鈻�"; + @ApiModelProperty("鐩稿叧鍩硅 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String relatedTrainingConformNot2 = "鈻�"; + @ApiModelProperty("鐩稿叧鍩硅 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String relatedTrainingConformNot3 = "鈻�"; + + @ApiModelProperty("鐩稿叧缁忛獙 绗﹀悎涓庡惁(1锛氱鍚�)") + private String relevantExperienceConformNot1 = "鈻�"; + @ApiModelProperty("鐩稿叧缁忛獙 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String relevantExperienceConformNot2 = "鈻�"; + @ApiModelProperty("鐩稿叧缁忛獙 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String relevantExperienceConformNot3 = "鈻�"; + + @ApiModelProperty("涓婂矖璇� 绗﹀悎涓庡惁(1锛氱鍚�)") + private String workLicenseConformNot1 = "鈻�"; + @ApiModelProperty("涓婂矖璇� 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String workLicenseConformNot2 = "鈻�"; + @ApiModelProperty("涓婂矖璇� 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String workLicenseConformNot3 = "鈻�"; + + @ApiModelProperty("宀椾綅鑱岃矗1(鐔熸倝鏈矖浣嶇殑浜у搧妫�娴嬫牱鍝佸埗澶囧拰鐩稿叧浜у搧鍩虹鐭ヨ瘑)") + private String jobResponsibilities1 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗2(鐔熸倝鏈矖浣嶆牱鍝佹娴嬫祦绋�)") + private String jobResponsibilities2 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗3(姝g‘鐔熺粌鎿嶄綔鏈矖浣嶄华琛ㄨ澶�)") + private String jobResponsibilities3 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗4(鐔熸倝鏈矖浣嶇浉鍏虫娴嬫爣鍑�)") + private String jobResponsibilities4 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗5(鐔熸倝鏈矖浣嶄骇鍝佹�ц兘鍙婄粨鏋滃垽鏂�佸垎鏋�)") + private String jobResponsibilities5 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗6(瀹屾垚鐩稿簲鐨勫巶楠屻�佽璇�)") + private String jobResponsibilities6 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗7(缂栧啓鐩稿叧妫�娴嬫墜椤�)") + private String jobResponsibilities7 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗8(浜嗚В浠櫒璁惧鍩烘湰缁撴瀯涓庣畝鍗曠淮鎶や繚鍏�)") + private String jobResponsibilities8 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗9(鍏峰鎶�鑳藉煿璁殑鑳藉姏)") + private String jobResponsibilities9 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗10(鍏峰妫�娴嬩华鍣ㄦ敼閫犺兘鍔�)") + private String jobResponsibilities10 = "鈻�"; + + @ApiModelProperty("宀椾綅鑱岃矗 绗﹀悎涓庡惁(1锛氱鍚�)") + private String jobResponsibilitiesConformNot1 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String jobResponsibilitiesConformNot2 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String jobResponsibilitiesConformNot3 = "鈻�"; + + @ApiModelProperty("缁煎悎璇勪环1(鍙儨浠昏宀椾綅)") + private String comprehensiveAssessment1 = "鈻�"; + @ApiModelProperty("缁煎悎璇勪环2(鍙竟鍩硅杈逛笂宀�)") + private String comprehensiveAssessment2 = "鈻�"; + @ApiModelProperty("缁煎悎璇勪环3(涓嶈儨浠昏宀椾綅)") + private String comprehensiveAssessment3 = "鈻�"; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonCommunicationAbilityMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonCommunicationAbilityMapper.java new file mode 100644 index 0000000..0888b35 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonCommunicationAbilityMapper.java @@ -0,0 +1,21 @@ +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.personnel.dto.PersonCommunicationAbilityDto; +import com.ruoyi.personnel.pojo.PersonCommunicationAbility; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 娌熼�氳兘鍔� Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 12:00:57 + */ +public interface PersonCommunicationAbilityMapper extends BaseMapper<PersonCommunicationAbility> { + + IPage<PersonCommunicationAbilityDto> personPersonCommunicationAbilityPage(Page page, @Param("departLimsId") Integer departLimsId, @Param("userId") Integer userId, @Param("userName") String userName); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPersonnelCapacityMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPersonnelCapacityMapper.java new file mode 100644 index 0000000..b2bb671 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPersonnelCapacityMapper.java @@ -0,0 +1,29 @@ +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.personnel.dto.PersonPersonnelCapacityDto; +import com.ruoyi.personnel.dto.PersonPersonnelCapacityExportDto; +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 浜哄憳鑳藉姏 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-10 11:26:18 + */ +public interface PersonPersonnelCapacityMapper extends BaseMapper<PersonPersonnelCapacity> { + + IPage<PersonPersonnelCapacityDto> personPersonnelCapacityPage(Page page, Integer departLimsId, Integer userId, String userName); + + /** + * 鏌ヨ浜哄憳鑳藉姏鎺ュ彛 + * @param id + * @return + */ + PersonPersonnelCapacityExportDto selectExportPersonnelCapacity(@Param("id") Integer id); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonCommunicationAbility.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonCommunicationAbility.java new file mode 100644 index 0000000..4df192d --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonCommunicationAbility.java @@ -0,0 +1,61 @@ +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.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 娌熼�氳褰� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 12:00:57 + */ +@Getter +@Setter +@TableName("cnas_person_communication_ability") +@ApiModel(value = "PersonCommunicationAbility瀵硅薄", description = "娌熼�氳褰�") +public class PersonCommunicationAbility implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("涓婚敭id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("娌熼�氫汉id") + private String userId; + + @ApiModelProperty("娌熼�氭椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime communicationTime; + + @ApiModelProperty("娌熼�氬湴鐐�") + private String communicationPlace; + + @ApiModelProperty("娌熼�氬唴瀹�") + private String communicationContent; + + @ApiModelProperty("鍒涘缓浜篿d") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty(value = "鏇存柊浜篿d", hidden = true) + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true) + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true) + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonCommunicationAbilityService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonCommunicationAbilityService.java new file mode 100644 index 0000000..a5186be --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonCommunicationAbilityService.java @@ -0,0 +1,25 @@ +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.personnel.dto.PersonCommunicationAbilityDto; +import com.ruoyi.personnel.pojo.PersonCommunicationAbility; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 娌熼�氳兘鍔� 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 12:00:57 + */ +public interface PersonCommunicationAbilityService extends IService<PersonCommunicationAbility> { + + IPage<PersonCommunicationAbilityDto> personPersonCommunicationAbilityPage(Page page, + Integer departLimsId, Integer userId, String userName); + + void exportPersonCommunicationAbility(Integer id, HttpServletResponse response)throws Exception; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java index 44820ed..dfff72a 100644 --- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java @@ -1,34 +1,35 @@ -//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.personnel.pojo.PersonPersonnelCapacity; -// -//import javax.servlet.http.HttpServletResponse; -// -///** -// * <p> -// * 浜哄憳鑳藉姏 鏈嶅姟绫� -// * </p> -// * -// * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 -// * @since 2024-10-10 11:26:18 -// */ -//public interface PersonPersonnelCapacityService extends IService<PersonPersonnelCapacity> { -// -// IPage<PersonPersonnelCapacityDto> personPersonnelCapacityPage(Page page, Integer departLimsId, Integer userId, String userName); -// -// /** -// * 瀵煎嚭浜哄憳鑳藉姏 -// * @param id -// * @param response -// */ -// void exportPersonnelCapacity(Integer id, HttpServletResponse response); -// -// /** -// * submitConfirmPersonnelCapability -// * @param personPersonnelCapacity -// */ -// void submitConfirmPersonnelCapability(PersonPersonnelCapacity personPersonnelCapacity); -//} +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.personnel.dto.PersonPersonnelCapacityDto; +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 浜哄憳鑳藉姏 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-10 11:26:18 + */ +public interface PersonPersonnelCapacityService extends IService<PersonPersonnelCapacity> { + + IPage<PersonPersonnelCapacityDto> personPersonnelCapacityPage(Page page, Integer departLimsId, Integer userId, String userName); + + /** + * 瀵煎嚭浜哄憳鑳藉姏 + * @param id + * @param response + */ + void exportPersonnelCapacity(Integer id, HttpServletResponse response); + + /** + * submitConfirmPersonnelCapability + * @param personPersonnelCapacity + */ + void submitConfirmPersonnelCapability(PersonPersonnelCapacity personPersonnelCapacity); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java new file mode 100644 index 0000000..2c1a227 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java @@ -0,0 +1,113 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.config.ConfigureBuilder; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.personnel.dto.PersonCommunicationAbilityDto; +import com.ruoyi.personnel.mapper.PersonCommunicationAbilityMapper; +import com.ruoyi.personnel.pojo.PersonCommunicationAbility; +import com.ruoyi.personnel.service.PersonCommunicationAbilityService; +import com.ruoyi.system.mapper.UserMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; + +/** + * <p> + * 娌熼�氳兘鍔� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 12:00:57 + */ +@Service +public class PersonCommunicationAbilityServiceImpl extends ServiceImpl<PersonCommunicationAbilityMapper, PersonCommunicationAbility> implements PersonCommunicationAbilityService { + + @Resource + private UserMapper userMapper; + + @Override + public IPage<PersonCommunicationAbilityDto> personPersonCommunicationAbilityPage(Page page, Integer departLimsId, Integer userId, String userName) { + IPage<PersonCommunicationAbilityDto> personCommunicationAbilityDtoIPage = baseMapper.personPersonCommunicationAbilityPage(page, departLimsId, userId, userName); + List<PersonCommunicationAbilityDto> collect = personCommunicationAbilityDtoIPage.getRecords().stream().map(personCommunicationAbilityDto -> { + if (ObjectUtils.isNotEmpty(personCommunicationAbilityDto.getUserId())) { + List<String> account = new ArrayList<>(); + List<String> name = new ArrayList<>(); + for (String s : personCommunicationAbilityDto.getUserId().split(",")) { + User user = userMapper.selectById(Integer.parseInt(s)); + account.add(user.getAccount()); + name.add(user.getName()); + } + personCommunicationAbilityDto.setAccount(account.stream().collect(Collectors.joining(","))); + personCommunicationAbilityDto.setUserName(name.stream().collect(Collectors.joining(","))); + } + return personCommunicationAbilityDto; // 杩欓噷鍙互瀵硅繑鍥炵殑鏁版嵁杩涜澶勭悊锛屽娣诲姞涓�浜涙柊鐨勫睘鎬ф垨杞崲绛夈�� + }).collect(Collectors.toList()); + personCommunicationAbilityDtoIPage.setRecords(collect); + return personCommunicationAbilityDtoIPage; + } + + @Override + public void exportPersonCommunicationAbility(Integer id, HttpServletResponse response) throws Exception { + PersonCommunicationAbility personCommunicationAbility = baseMapper.selectById(id); + //娌熼�氫汉 + String collect = " "; + if (ObjectUtils.isNotEmpty(personCommunicationAbility.getUserId())) { + List<String> name = new ArrayList<>(); + for (String s : personCommunicationAbility.getUserId().split(",")) { + User user = userMapper.selectById(Integer.parseInt(s)); + name.add(user.getName()); + } + collect = name.stream().collect(Collectors.joining(",")); + } + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"); + + //鏃堕棿 + String communicationTime = ""; + if (ObjectUtils.isNotEmpty(personCommunicationAbility.getCommunicationTime())) { + communicationTime = personCommunicationAbility.getCommunicationTime().format(formatter); + } + + InputStream inputStream = this.getClass().getResourceAsStream("/static/communication-deal.docx"); + ConfigureBuilder builder = Configure.builder(); + builder.useSpringEL(true); + String finalCollect = collect; + String finalCommunicationTime = communicationTime; + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("userName", finalCollect); + put("communicationTime", finalCommunicationTime); + put("communicationPlace", personCommunicationAbility.getCommunicationPlace()); + put("communicationContent", personCommunicationAbility.getCommunicationContent()); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "娌熼�氳褰�", "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("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java new file mode 100644 index 0000000..0c056f1 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java @@ -0,0 +1,158 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.config.ConfigureBuilder; +import com.deepoove.poi.data.Pictures; +import com.ruoyi.common.core.domain.entity.InformationNotification; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.DateImageUtil; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.WxCpUtils; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.personnel.dto.PersonPersonnelCapacityDto; +import com.ruoyi.personnel.dto.PersonPersonnelCapacityExportDto; +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; +import com.ruoyi.personnel.mapper.PersonPersonnelCapacityMapper; +import com.ruoyi.personnel.service.PersonPersonnelCapacityService; +import com.ruoyi.system.mapper.UserMapper; +import com.ruoyi.system.service.InformationNotificationService; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.util.HashMap; + +/** + * <p> + * 浜哄憳鑳藉姏 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-10 11:26:18 + */ +@Service +public class PersonPersonnelCapacityServiceImpl extends ServiceImpl<PersonPersonnelCapacityMapper, PersonPersonnelCapacity> implements PersonPersonnelCapacityService { + + @Resource + private UserMapper userMapper; + @Resource + private InformationNotificationService informationNotificationService; + + @Resource + private ThreadPoolTaskExecutor threadPoolTaskExecutor; + + + @Value("${file.path}") + private String imgUrl; + + @Override + public IPage<PersonPersonnelCapacityDto> personPersonnelCapacityPage(Page page, Integer departLimsId, Integer userId, String userName) { + return baseMapper.personPersonnelCapacityPage(page, departLimsId, userId, userName); + } + + /** + * 瀵煎嚭浜哄憳鑳藉姏 + * @param id + * @param response + */ + @Override + public void exportPersonnelCapacity(Integer id, HttpServletResponse response) { + PersonPersonnelCapacityExportDto capacityExportDto = baseMapper.selectExportPersonnelCapacity(id); + + // 纭浜� + String confirmUrl = null; + if (capacityExportDto.getConfirmOperatingPersonnelId() != null) { + confirmUrl = userMapper.selectById(capacityExportDto.getConfirmOperatingPersonnelId()).getSignatureUrl(); + if (StringUtils.isBlank(confirmUrl)) { + throw new ErrorException("缂哄皯纭浜虹鍚�"); + } + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/personnel-capacity.docx"); + ConfigureBuilder builder = Configure.builder(); + builder.useSpringEL(true); + String finalConfirmUrl = confirmUrl; + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("capacity", capacityExportDto); + put("confirmUrl", StringUtils.isNotBlank(finalConfirmUrl) ? Pictures.ofLocal(imgUrl + "/" + finalConfirmUrl).create() : null); + put("confirmDateUrl", capacityExportDto.getConfirmDate() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(capacityExportDto.getConfirmDate())).create() : null); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "浜哄憳鑳藉姏", "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("瀵煎嚭澶辫触"); + } + } + + /** + * 鎻愪氦纭浜哄憳鑳藉姏 + * @param personPersonnelCapacity + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void submitConfirmPersonnelCapability(PersonPersonnelCapacity personPersonnelCapacity) { + if (personPersonnelCapacity.getConfirmOperatingPersonnelId() == null) { + throw new ErrorException("缂哄皯纭浜�"); + } + User formUser = userMapper.selectById(personPersonnelCapacity.getUserId()); + + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + // 娑堟伅鍙戦�� + InformationNotification info = new InformationNotification(); + // 鍙戦�佷汉 + info.setCreateUser(user.getName()); + info.setMessageType("6"); + info.setTheme("CNAS浜哄憳鑳藉姏纭閫氱煡"); + info.setContent(formUser.getName() + "鐨勪汉鍛樿兘鍔涘緟纭"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(personPersonnelCapacity.getConfirmOperatingPersonnelId()); + info.setJumpPath("a6-personnel"); + informationNotificationService.addInformationNotification(info); + this.saveOrUpdate(personPersonnelCapacity); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鎺ユ敹浜� + User personnel = userMapper.selectById(personPersonnelCapacity.getConfirmOperatingPersonnelId()); + + String message = ""; + message += "CNAS浜哄憳鑳藉姏纭閫氱煡"; + message += "\n璇峰幓璧勬簮绠$悊-浜哄憳-浜哄憳鑳藉姏濉啓"; + message += "\n" + formUser.getName() + "鐨勪汉鍛樿兘鍔涘緟纭"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(personnel.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + + } + +} diff --git a/cnas-personnel/src/main/resources/mapper/PersonCommunicationAbilityMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonCommunicationAbilityMapper.xml new file mode 100644 index 0000000..2ea0c72 --- /dev/null +++ b/cnas-personnel/src/main/resources/mapper/PersonCommunicationAbilityMapper.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.personnel.mapper.PersonCommunicationAbilityMapper"> + + + <select id="personPersonCommunicationAbilityPage" resultType="com.ruoyi.personnel.dto.PersonCommunicationAbilityDto"> + select cpca.*, us.name create_user_name + from cnas_person_communication_ability cpca + left join user us on cpca.create_user = us.id + <where> + <if test="userId != null and userId != ''"> + and FIND_IN_SET(#{userId},cpca.user_id) + </if> + <if test="departLimsId != null and departLimsId != ''"> + and FIND_IN_SET(#{departLimsId},us.depart_lims_id) + </if> + </where> + </select> +</mapper> diff --git a/cnas-personnel/src/main/resources/mapper/PersonPersonnelCapacityMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonPersonnelCapacityMapper.xml new file mode 100644 index 0000000..96e0358 --- /dev/null +++ b/cnas-personnel/src/main/resources/mapper/PersonPersonnelCapacityMapper.xml @@ -0,0 +1,118 @@ +<?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.personnel.mapper.PersonPersonnelCapacityMapper"> + + <select id="personPersonnelCapacityPage" resultType="com.ruoyi.personnel.dto.PersonPersonnelCapacityDto"> + select cppc.*, + u2.name confirm_operating_personnel_name, + u3.name user_name, + cpbi.post_name, + ecp.responsibilities, + cpbi.professional_title, + TRIM(',' FROM CONCAT(cpbi.major1, ',', cpbi.major2)) AS major + from cnas_person_personnel_capacity cppc + left join user u2 on cppc.confirm_operating_personnel_id = u2.id + left join user u3 on cppc.user_id = u3.id + -- 鍙栧矖浣� + left join cnas_person_basic_info cpbi on cpbi.user_id = cppc.user_id + -- 鍙栦汉鍛樿兘鍔涚殑宀椾綅鑱岃矗 + left join (SELECT GROUP_CONCAT(e.label) responsibilities, cppc.id + from cnas_person_personnel_capacity cppc + left join enums e on FIND_IN_SET(e.value, cppc.job_responsibilities) + where e.category = '宀椾綅鑱岃矗' + GROUP BY cppc.id) ecp on ecp.id = cppc.id + <where> + <if test="userId != null and userId != ''"> + and cppc.user_id = #{userId} + </if> + <if test="departLimsId != null and departLimsId != ''"> + and FIND_IN_SET(#{departLimsId}, u3.depart_lims_id) + </if> + <if test="userName != null and userName != ''"> + and u3.name like concat('%', #{userName}, '%') + </if> + </where> + </select> + + <!-- 鏌ヨ浜哄憳鑳藉姏鎺ュ彛 --> + <select id="selectExportPersonnelCapacity" + resultType="com.ruoyi.personnel.dto.PersonPersonnelCapacityExportDto"> + select cppc.*, + cpbi.post_name, + u1.name userName, + cpbi.official_academic_redentials, + cpbi.major1, + cpbi.professional_title, + p.place_work, + TRIM(',' FROM CONCAT(cpbi.major1, ',', cpbi.major2)) AS major, + case when cppc.academic_conform_not = 1 then '鈽�' + else '鈻�' end academicConformNot1,-- 瀛﹀巻 + case when cppc.academic_conform_not = 2 then '鈽�' + else '鈻�' end academicConformNot2, + case when cppc.academic_conform_not = 3 then '鈽�' + else '鈻�' end academicConformNot3, + case when cppc.related_years_conform_not = 1 then '鈽�' + else '鈻�' end relatedYearsConformNot1,-- 鐩稿叧骞撮檺 + case when cppc.related_years_conform_not = 2 then '鈽�' + else '鈻�' end relatedYearsConformNot2, + case when cppc.related_years_conform_not = 3 then '鈽�' + else '鈻�' end relatedYearsConformNot3, + case when cppc.related_training_conform_not = 1 then '鈽�' + else '鈻�' end relatedTrainingConformNot1,-- 鐩稿叧鍩硅 + case when cppc.related_training_conform_not = 2 then '鈽�' + else '鈻�' end relatedTrainingConformNot2, + case when cppc.related_training_conform_not = 3 then '鈽�' + else '鈻�' end relatedTrainingConformNot3, + case when cppc.relevant_experience_conform_not = 1 then '鈽�' + else '鈻�' end relevantExperienceConformNot1,-- 鐩稿叧缁忛獙 + case when cppc.relevant_experience_conform_not = 2 then '鈽�' + else '鈻�' end relevantExperienceConformNot2, + case when cppc.relevant_experience_conform_not = 3 then '鈽�' + else '鈻�' end relevantExperienceConformNot3, + case when cppc.work_license_conform_not = 1 then '鈽�' + else '鈻�' end workLicenseConformNot1,-- 涓婂矖璇� + case when cppc.work_license_conform_not = 2 then '鈽�' + else '鈻�' end workLicenseConformNot2, + case when cppc.work_license_conform_not = 3 then '鈽�' + else '鈻�' end workLicenseConformNot3, + case when cppc.job_responsibilities_conform_not = 1 then '鈽�' + else '鈻�' end jobResponsibilitiesConformNot1,-- 宀椾綅鑱岃矗 + case when cppc.job_responsibilities_conform_not = 2 then '鈽�' + else '鈻�' end jobResponsibilitiesConformNot2, + case when cppc.job_responsibilities_conform_not = 3 then '鈽�' + else '鈻�' end jobResponsibilitiesConformNot3, + case when cppc.comprehensive_assessment = 'Qualified this position' then '鈽�' + else '鈻�' end comprehensiveAssessment1,-- 缁煎悎璇勪环 + case when cppc.comprehensive_assessment = 'You can work while training' then '鈽�' + else '鈻�' end comprehensiveAssessment2, + case when cppc.comprehensive_assessment = 'Iconpetent for the position' then '鈽�' + else '鈻�' end comprehensiveAssessment3, + case when find_in_set(1, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities1, + case when find_in_set(2, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities2, + case when find_in_set(3, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities3, + case when find_in_set(4, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities4, + case when find_in_set(5, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities5, + case when find_in_set(6, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities6, + case when find_in_set(7, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities7, + case when find_in_set(8, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities8, + case when find_in_set(9, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities9, + case when find_in_set(10, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities10 + from cnas_person_personnel_capacity cppc + left join user u1 on cppc.user_id = u1.id + left join cnas_person_basic_info cpbi on cpbi.user_id = cppc.user_id + left join (select GROUP_CONCAT(cptr.work_experience) place_work, cptr.user_id + from cnas_person_basic_info_work cptr + GROUP BY cptr.user_id) p on u1.id = p.user_id + where cppc.id = #{id} + </select> +</mapper> -- Gitblit v1.9.3