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