Sfoglia il codice sorgente

1、增加python-知识图谱数据同步接口

rayson 10 mesi fa
parent
commit
cf5ab41dec
61 ha cambiato i file con 650 aggiunte e 205 eliminazioni
  1. 19 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/python/GraphApi.java
  2. 47 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/python/GraphSendDTO.java
  3. 3 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ApiConstants.java
  4. 2 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/DictTypeConstants.java
  5. 19 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/sync/SyncConstants.java
  6. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseController.java
  7. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/job/JobAdvertisedController.java
  8. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/job/JobCvRelController.java
  9. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/job/JobInterestedController.java
  10. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/person/PersonInfoController.java
  11. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/hire/AppHireJobCvRelRespVO.java
  12. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/job/AppJobInterestedRespVO.java
  13. 1 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/cv/AppRecruitJobCvRelRespVO.java
  14. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/hire/AppRecruitHireJobCvRelRespVO.java
  15. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/job/AppRecruitJobInterestedRespVO.java
  16. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/RecruitJobCvRelAnalysisRespVO.java
  17. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseDetailRespVO.java
  18. 1 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterprisePageReqVO.java
  19. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedReqVO.java
  20. 7 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedRespVO.java
  21. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/HireJobCvRelRespVO.java
  22. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelPageReqVO.java
  23. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelRespVO.java
  24. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelSaveReqVO.java
  25. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelSimpleRespVO.java
  26. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/interested/JobInterestedPageReqVO.java
  27. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/interested/JobInterestedRespVO.java
  28. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/interested/JobInterestedSaveReqVO.java
  29. 41 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/info/PersonDetailRespVO.java
  30. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EduExpConvert.java
  31. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/JobAdvertisedConvert.java
  32. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/JobInterestedConvert.java
  33. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/PersonConvert.java
  34. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/ProjectExpConvert.java
  35. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/TrainExpConvert.java
  36. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/WorkExpConvert.java
  37. 29 11
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseMapper.java
  38. 1 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java
  39. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobCvRelMapper.java
  40. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobInterestedMapper.java
  41. 9 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonInfoMapper.java
  42. 3 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/framework/rpc/config/RpcConfiguration.java
  43. 24 12
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/ESConsumer.java
  44. 6 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/message/ESJobAdvertisedMergeSendMessage.java
  45. 11 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/producer/ESProducer.java
  46. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseService.java
  47. 65 14
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java
  48. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedService.java
  49. 115 68
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java
  50. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelService.java
  51. 2 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelServiceImpl.java
  52. 0 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java
  53. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobInterestedService.java
  54. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobInterestedServiceImpl.java
  55. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationService.java
  56. 110 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationServiceImpl.java
  57. 33 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/info/PersonInfoServiceImpl.java
  58. 2 10
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/sync/ESDataSyncServiceImpl.java
  59. 0 21
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/util/ESOperateEnum.java
  60. 2 2
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/job/JobCvRelServiceImplTest.java
  61. 2 2
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/job/JobInterestedServiceImplTest.java

+ 19 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/python/GraphApi.java

@@ -0,0 +1,19 @@
+package com.citu.module.menduner.system.api.python;
+
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.module.menduner.system.enums.ApiConstants;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@FeignClient(name = ApiConstants.PYTHON_MENDUNR_NAME)
+@Tag(name = "RPC 服务 - python 知识图谱")
+public interface GraphApi {
+
+    @PostMapping("/rocket/receive/data")
+    @Operation(summary = "发生数据到知识图谱")
+    <T> CommonResult<Boolean> send(@RequestBody GraphSendDTO<T> resp);
+
+}

+ 47 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/python/GraphSendDTO.java

@@ -0,0 +1,47 @@
+package com.citu.module.menduner.system.api.python;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Collections;
+import java.util.List;
+
+@Data
+@Schema(description = "知识图谱同步")
+public class GraphSendDTO<T> {
+
+
+    public final static String SYNC_GRAPH_TOPIC = "SYNC_GRAPH_TOPIC";
+
+
+    /**
+     * 操作
+     **/
+    private String operate;
+
+    /**
+     * 数据类型
+     **/
+    private String type;
+
+    /**
+     * 数据
+     **/
+    private List<T> dataList;
+
+    public GraphSendDTO() {
+
+    }
+
+    public GraphSendDTO(String operate, String type, List<T> dataList) {
+        this.operate = operate;
+        this.type = type;
+        this.dataList = dataList;
+    }
+
+    public GraphSendDTO(String operate, String type, T data) {
+        this.operate = operate;
+        this.type = type;
+        this.dataList = Collections.singletonList(data);
+    }
+}

+ 3 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ApiConstants.java

@@ -20,4 +20,7 @@ public class ApiConstants {
 
     public static final String VERSION = "1.0.0";
 
+
+    // ========== python ==========
+    public static final String PYTHON_MENDUNR_NAME = "python-mendunr";
 }

+ 2 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/DictTypeConstants.java

@@ -27,4 +27,6 @@ public interface DictTypeConstants {
     String MENDUNER_JOB_STATUS = "menduner_job_status"; // 求职状态
     String MENDUNER_SEX = "menduner_sex";
 
+
+    String MENDUNER_MARITAL_STATUS = "menduner_marital_status";    // 婚姻状况
 }

+ 19 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/sync/SyncConstants.java

@@ -0,0 +1,19 @@
+package com.citu.module.menduner.system.enums.sync;
+/**
+ * 数据同步常量
+ *
+ * @author Rayson
+ */
+public class SyncConstants {
+
+    // ========== 操作类型 ==========
+    public final static String SYNC_ALL = "sync_all";
+    public final static String ADD = "add";
+    public final static String UPDATE = "update";
+    public final static String DELETE = "delete";
+
+    // ========== 数据类型 ==========
+    public final static String JOB = "job";
+    public final static String ENTERPRISE = "enterprise";
+    public final static String PERSON = "person";
+}

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseController.java

@@ -97,4 +97,11 @@ public class EnterpriseController {
         return success(BeanUtils.toBean(list, EnterpriseSimpleRespVO.class));
     }
 
+    @GetMapping("/sync/graph")
+    @Operation(summary = "同步知识图谱数据")
+    public CommonResult<Boolean> syncGraph() {
+        enterpriseService.syncGraph();
+        return success(true);
+    }
+
 }

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/job/JobAdvertisedController.java

@@ -13,6 +13,7 @@ import com.citu.module.menduner.system.controller.base.job.JobAdvertisedReqVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.service.job.JobAdvertisedService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -104,8 +105,7 @@ public class JobAdvertisedController {
     @GetMapping("/sync/graph")
     @Operation(summary = "同步知识图谱数据")
     public CommonResult<Boolean> syncGraph() {
-        // 获取字典
-        // DictFrameworkUtils.getDictDataLabel();
+        jobAdvertisedService.syncGraph();
         return success(true);
     }
 

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/job/JobCvRelController.java

@@ -6,9 +6,9 @@ import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelSaveReqVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelRespVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 import com.citu.module.menduner.system.service.job.JobCvRelService;
 import io.swagger.v3.oas.annotations.Operation;

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/job/JobInterestedController.java

@@ -6,9 +6,9 @@ import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
-import com.citu.module.menduner.system.controller.base.job.JobInterestedPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobInterestedRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobInterestedSaveReqVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedRespVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.service.job.JobInterestedService;
 import io.swagger.v3.oas.annotations.Operation;

+ 10 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/person/PersonInfoController.java

@@ -7,6 +7,7 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
+import com.citu.module.menduner.system.service.person.PersonIntegrationService;
 import com.citu.module.menduner.system.service.person.info.PersonInfoService;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
@@ -36,6 +37,9 @@ public class PersonInfoController {
     @Resource
     private PersonInfoService personInfoService;
 
+    @Resource
+    private PersonIntegrationService personIntegrationService;
+
     @PostMapping("/create")
     @Operation(summary = "创建人才信息-人才档案")
     @PreAuthorize("@ss.hasPermission('menduner:system:person-info:create')")
@@ -90,4 +94,10 @@ public class PersonInfoController {
                 BeanUtils.toBean(list, PersonInfoRespVO.class));
     }
 
+    @GetMapping("/sync/graph")
+    @Operation(summary = "同步知识图谱数据")
+    public CommonResult<Boolean> syncGraph() {
+        personIntegrationService.syncGraph();
+        return success(true);
+    }
 }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/hire/AppHireJobCvRelRespVO.java

@@ -1,7 +1,7 @@
 package com.citu.module.menduner.system.controller.app.jobhunt.job.hire;
 
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseSimpleRespVO;
-import com.citu.module.menduner.system.controller.base.job.HireJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.base.job.cv.HireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonSimpleRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/job/AppJobInterestedRespVO.java

@@ -1,6 +1,6 @@
 package com.citu.module.menduner.system.controller.app.jobhunt.person.job;
 
-import com.citu.module.menduner.system.controller.base.job.JobInterestedRespVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 1 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/cv/AppRecruitJobCvRelRespVO.java

@@ -2,12 +2,10 @@ package com.citu.module.menduner.system.controller.app.recruit.person.cv;
 
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonSimpleRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSimpleRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelSimpleRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
-import java.time.LocalDateTime;
-
 
 @Schema(description = "menduner - 招聘职位简历投递分页 Response VO")
 @Data

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/hire/AppRecruitHireJobCvRelRespVO.java

@@ -2,7 +2,7 @@ package com.citu.module.menduner.system.controller.app.recruit.person.hire;
 
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonSimpleRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSimpleRespVO;
-import com.citu.module.menduner.system.controller.base.job.HireJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.base.job.cv.HireJobCvRelRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/job/AppRecruitJobInterestedRespVO.java

@@ -1,6 +1,6 @@
 package com.citu.module.menduner.system.controller.app.recruit.person.job;
 
-import com.citu.module.menduner.system.controller.base.job.JobInterestedRespVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/RecruitJobCvRelAnalysisRespVO.java

@@ -2,7 +2,7 @@ package com.citu.module.menduner.system.controller.base.analysis;
 
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSimpleRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonSimpleRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelSimpleRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseDetailRespVO.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.controller.base.enterprise.vo;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.citu.module.menduner.system.controller.base.enterprise.business.EnterpriseBusinessRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -13,4 +14,6 @@ public class EnterpriseDetailRespVO extends EnterpriseRespVO {
     @Schema(description = "所在行业", example = "16657")
     private String industryName;
 
+    @Schema(description = "企业工商信息", example = "16657")
+    private EnterpriseBusinessRespVO businessResp;
 }

+ 1 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterprisePageReqVO.java

@@ -3,9 +3,7 @@ package com.citu.module.menduner.system.controller.base.enterprise.vo;
 
 import com.citu.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
+import lombok.*;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDateTime;

+ 6 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedReqVO.java

@@ -1,12 +1,18 @@
 package com.citu.module.menduner.system.controller.base.job;
 
 import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.util.List;
 
 @Schema(description = "招聘职位查询条件 Request VO")
 @Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
 public class JobAdvertisedReqVO {
 
     @Schema(description = "招聘职位id", example = "29465")

+ 7 - 5
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedRespVO.java

@@ -12,8 +12,7 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
-import static com.citu.module.menduner.system.enums.DictTypeConstants.MENDUNER_JOB_TYPE;
-import static com.citu.module.menduner.system.enums.DictTypeConstants.MENDUNER_STATUS;
+import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
 
 @Schema(description = "招聘职位 Response VO")
 @Data
@@ -50,11 +49,13 @@ public class JobAdvertisedRespVO {
     private String type;
 
     @Schema(description = "工作经验", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @ExcelProperty("工作经验")
+    @ExcelProperty(value = "工作经验", converter = DictConvert.class)
+    @DictFormat(MENDUNER_EXP_TYPE)
     private String expType;
 
     @Schema(description = "学历要求", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @ExcelProperty("学历要求")
+    @ExcelProperty(value = "学历要求", converter = DictConvert.class)
+    @DictFormat(MENDUNER_EDUCATION_TYPE)
     private String eduType;
 
     @Schema(description = "薪酬from")
@@ -66,7 +67,8 @@ public class JobAdvertisedRespVO {
     private BigDecimal payTo;
 
     @Schema(description = "薪酬单位")
-    @ExcelProperty("薪酬单位")
+    @ExcelProperty(value = "薪酬单位", converter = DictConvert.class)
+    @DictFormat(MENDUNER_PAY_UNIT)
     private String payUnit;
 
     @Schema(description = "职位标签")

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/HireJobCvRelRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/HireJobCvRelRespVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.job;
+package com.citu.module.menduner.system.controller.base.job.cv;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobCvRelPageReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelPageReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.job;
+package com.citu.module.menduner.system.controller.base.job.cv;
 
 import com.citu.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobCvRelRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelRespVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.job;
+package com.citu.module.menduner.system.controller.base.job.cv;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobCvRelSaveReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelSaveReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.job;
+package com.citu.module.menduner.system.controller.base.job.cv;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobCvRelSimpleRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelSimpleRespVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.job;
+package com.citu.module.menduner.system.controller.base.job.cv;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobInterestedPageReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/interested/JobInterestedPageReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.job;
+package com.citu.module.menduner.system.controller.base.job.interested;
 
 import lombok.*;
 import java.util.*;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobInterestedRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/interested/JobInterestedRespVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.job;
+package com.citu.module.menduner.system.controller.base.job.interested;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobInterestedSaveReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/interested/JobInterestedSaveReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.job;
+package com.citu.module.menduner.system.controller.base.job.interested;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;

+ 41 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/info/PersonDetailRespVO.java

@@ -0,0 +1,41 @@
+package com.citu.module.menduner.system.controller.base.person.info;
+
+
+import com.citu.module.menduner.system.controller.base.eduexp.EduExpRespVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedRespVO;
+import com.citu.module.menduner.system.controller.base.person.skill.PersonSkillRespVO;
+import com.citu.module.menduner.system.controller.base.projectexp.ProjectExpRespVO;
+import com.citu.module.menduner.system.controller.base.trainexp.TrainExpRespVO;
+import com.citu.module.menduner.system.controller.base.workexp.WorkExpRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "menduner - 人才详情信息 Response VO")
+@Data
+public class PersonDetailRespVO {
+
+    @Schema(description = "人才信息")
+    private PersonInfoRespVO person;
+
+    @Schema(description = "求职意向")
+    private List<JobInterestedRespVO> interestedList;
+
+    @Schema(description = "人才技能")
+    private List<PersonSkillRespVO> skillList;
+
+    @Schema(description = "人才教育经历")
+    private List<EduExpRespVO> eduList;
+
+    @Schema(description = "人才工作经历")
+    private List<WorkExpRespVO> workList;
+
+    @Schema(description = "人才项目经历")
+    private List<ProjectExpRespVO> projectList;
+
+    @Schema(description = "人才培训经历")
+    private List<TrainExpRespVO> trainList;
+
+
+}

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EduExpConvert.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.convert;
 
 import com.citu.module.menduner.system.controller.app.jobhunt.person.eduexp.AppEduExpRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.eduexp.AppRecruitEduExpRespVO;
+import com.citu.module.menduner.system.controller.base.eduexp.EduExpRespVO;
 import com.citu.module.menduner.system.dal.dataobject.eduexp.EduExpDO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
@@ -16,4 +17,6 @@ public interface EduExpConvert {
     List<AppEduExpRespVO> convertList(List<EduExpDO> list);
 
     List<AppRecruitEduExpRespVO> convertList2(List<EduExpDO> list);
+
+    List<EduExpRespVO> convertList3(List<EduExpDO> list);
 }

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/JobAdvertisedConvert.java

@@ -7,6 +7,7 @@ import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJ
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalysisRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.excel.RecruitJobAnalysisExcelRespVO;
+import com.citu.module.menduner.system.controller.base.job.JobAdvertisedRespVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.es.job.ESJobAdvertisedMergeDO;
 import org.mapstruct.Mapper;
@@ -44,4 +45,10 @@ public interface JobAdvertisedConvert {
     RecruitJobAnalysisExcelRespVO convert6(RecruitJobAnalysisRespVO bean);
 
     List<RecruitJobAnalysisExcelRespVO> convertList6(List<RecruitJobAnalysisRespVO> list);
+
+    @Named("convert7")
+    JobAdvertisedRespVO convert7(JobAdvertisedDO bean);
+
+    @Named("convertList7")
+    List<JobAdvertisedRespVO> convertList7(List<JobAdvertisedDO> list);
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/JobInterestedConvert.java

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.convert;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedDetailRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.job.AppJobInterestedRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.job.AppRecruitJobInterestedRespVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedRespVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
@@ -19,4 +20,6 @@ public interface JobInterestedConvert  {
     AppJobAdvertisedDetailRespVO convert(JobInterestedDO bean);
 
     List<AppRecruitJobInterestedRespVO> convertList2(List<JobInterestedDO> list);
+
+    List<JobInterestedRespVO> convertList3(List<JobInterestedDO> list);
 }

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/PersonConvert.java

@@ -4,6 +4,8 @@ import com.citu.module.menduner.system.controller.app.jobhunt.person.skill.AppPe
 import com.citu.module.menduner.system.controller.app.jobhunt.person.vo.AppPersonInfoRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.skill.AppRecruitPersonSkillRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonInfoRespVO;
+import com.citu.module.menduner.system.controller.base.person.info.PersonDetailRespVO;
+import com.citu.module.menduner.system.controller.base.person.skill.PersonSkillRespVO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonSkillDO;
 import org.mapstruct.Mapper;
@@ -24,4 +26,6 @@ public interface PersonConvert {
 
     AppRecruitPersonInfoRespVO convert2(PersonInfoDO bean);
 
+    List<PersonSkillRespVO> convertList3(List<PersonSkillDO> list);
+
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/ProjectExpConvert.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.convert;
 
 import com.citu.module.menduner.system.controller.app.jobhunt.person.projectexp.AppProjectExpRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.projectexp.AppRecruitProjectExpRespVO;
+import com.citu.module.menduner.system.controller.base.projectexp.ProjectExpRespVO;
 import com.citu.module.menduner.system.dal.dataobject.projectexp.ProjectExpDO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
@@ -16,4 +17,6 @@ public interface ProjectExpConvert {
     List<AppProjectExpRespVO> convertList(List<ProjectExpDO> list);
 
     List<AppRecruitProjectExpRespVO> convertList2(List<ProjectExpDO> list);
+
+    List<ProjectExpRespVO> convertList3(List<ProjectExpDO> list);
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/TrainExpConvert.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.convert;
 
 import com.citu.module.menduner.system.controller.app.jobhunt.person.trainexp.AppTrainExpRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.trainexp.AppRecruitTrainExpRespVO;
+import com.citu.module.menduner.system.controller.base.trainexp.TrainExpRespVO;
 import com.citu.module.menduner.system.dal.dataobject.trainexp.TrainExpDO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
@@ -16,4 +17,6 @@ public interface TrainExpConvert {
     List<AppTrainExpRespVO> convertList(List<TrainExpDO> list);
 
     List<AppRecruitTrainExpRespVO> convertList2(List<TrainExpDO> list);
+
+    List<TrainExpRespVO> convertList3(List<TrainExpDO> list);
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/WorkExpConvert.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.convert;
 
 import com.citu.module.menduner.system.controller.app.jobhunt.person.workexp.AppWorkExpRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.workexp.AppRecruitWorkExpRespVO;
+import com.citu.module.menduner.system.controller.base.workexp.WorkExpRespVO;
 import com.citu.module.menduner.system.dal.dataobject.workexp.WorkExpDO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
@@ -16,4 +17,6 @@ public interface WorkExpConvert {
     List<AppWorkExpRespVO> convertList(List<WorkExpDO> list);
 
     List<AppRecruitWorkExpRespVO> convertList2(List<WorkExpDO> list);
+
+    List<WorkExpRespVO> convertList3(List<WorkExpDO> list);
 }

+ 29 - 11
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseMapper.java

@@ -16,9 +16,7 @@ import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAddre
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseBusinessDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.industry.IndustryDO;
-import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonEnterpriseSubscribeDO;
-import com.citu.module.menduner.system.dal.dataobject.person.PersonJobFavoriteDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.util.StringUtils;
@@ -48,12 +46,16 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
                 .orderByDesc(EnterpriseDO::getId));
     }
 
-    /** 分页查询企业信息,返回详细的企业信息 **/
+    /**
+     * 分页查询企业信息,返回详细的企业信息
+     **/
     default PageResult<EnterpriseDetailRespVO> page(EnterprisePageReqVO reqVO) {
         MPJLambdaWrapperX<EnterpriseDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(EnterpriseDO.class);
         query.selectAs(IndustryDO::getNameCn, EnterpriseDetailRespVO::getIndustryName);
+        query.selectAssociation(EnterpriseBusinessDO.class,EnterpriseDetailRespVO::getBusinessResp);
         query.leftJoin(IndustryDO.class, IndustryDO::getId, EnterpriseDO::getIndustryId);
+        query.leftJoin(EnterpriseBusinessDO.class, EnterpriseBusinessDO::getEnterpriseId, EnterpriseDO::getId);
         query.eqIfPresent(EnterpriseDO::getParentId, reqVO.getParentId());
         query.eqIfPresent(EnterpriseDO::getStatus, reqVO.getStatus());
         query.likeIfPresent(EnterpriseDO::getName, reqVO.getName());
@@ -67,7 +69,9 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
         return selectJoinPage(reqVO, EnterpriseDetailRespVO.class, query);
     }
 
-    /** 根据企业id获取企业信息,返回详细的企业信息 **/
+    /**
+     * 根据企业id获取企业信息,返回详细的企业信息
+     **/
     default EnterpriseDetailRespVO get(Long id) {
         MPJLambdaWrapperX<EnterpriseDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(EnterpriseDO.class);
@@ -77,14 +81,18 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
         return selectJoinOne(EnterpriseDetailRespVO.class, query);
     }
 
-    /** 分页查询企业信息,返回简易的企业信息 **/
+    /**
+     * 分页查询企业信息,返回简易的企业信息
+     **/
     default PageResult<EnterpriseBaseSimpleRespVO> selectPage(PageParam pageParam) {
         MPJLambdaWrapperX<EnterpriseDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(EnterpriseDO.class);
         return selectJoinPage(pageParam, EnterpriseBaseSimpleRespVO.class, query);
     }
 
-    /** 根据用户id查询收藏的企业 **/
+    /**
+     * 根据用户id查询收藏的企业
+     **/
     default PageResult<EnterpriseBaseSimpleRespVO> selectSubscribePage(PageParam pageParam, Long userId) {
         MPJLambdaWrapperX<EnterpriseDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(EnterpriseDO.class);
@@ -95,7 +103,9 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
         return selectJoinPage(pageParam, EnterpriseBaseSimpleRespVO.class, query);
     }
 
-     /** 根据查询条件搜索企业信息,返回简易的企业信息 **/
+    /**
+     * 根据查询条件搜索企业信息,返回简易的企业信息
+     **/
     default PageResult<EnterpriseBaseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO) {
         MPJLambdaWrapperX<EnterpriseDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(EnterpriseDO.class);
@@ -126,19 +136,25 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
         return selectJoinPage(reqVO, EnterpriseBaseSimpleRespVO.class, query);
     }
 
-    /** 根据查询条件查询企业信息,返回企业信息 **/
+    /**
+     * 根据查询条件查询企业信息,返回企业信息
+     **/
     default List<EnterpriseDO> selectList(EnterpriseListReqVO reqVO) {
         return selectList(new LambdaQueryWrapperX<EnterpriseDO>()
                 .likeIfPresent(EnterpriseDO::getName, reqVO.getName())
                 .eqIfPresent(EnterpriseDO::getStatus, reqVO.getStatus()));
     }
 
-    /** 根据父级id查询下级企业信息,返回企业信息 **/
+    /**
+     * 根据父级id查询下级企业信息,返回企业信息
+     **/
     default List<EnterpriseDO> selectListByParentId(Collection<Long> parentIds) {
         return selectList(EnterpriseDO::getParentId, parentIds);
     }
 
-    /** 根据名称模糊搜索正常状态的企业信息,返回企业信息 **/
+    /**
+     * 根据名称模糊搜索正常状态的企业信息,返回企业信息
+     **/
     default List<CommonRespVO> searchByName(String name) {
         MPJLambdaWrapperX<EnterpriseDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectAs(EnterpriseDO::getId, "`key`");
@@ -148,7 +164,9 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
         return selectJoinList(CommonRespVO.class, wrapper);
     }
 
-    /** 根据企业id查询正常状态的企业信息,返回企业信息 **/
+    /**
+     * 根据企业id查询正常状态的企业信息,返回企业信息
+     **/
     default EnterpriseDO selectListById(Long id) {
         return selectOne(new LambdaQueryWrapperX<EnterpriseDO>()
                 .eq(EnterpriseDO::getId, id)

+ 1 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java

@@ -356,4 +356,5 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
 
         return selectJoinPage(reqVO, AppRecruitJobExportRespVO.class, query);
     }
+
 }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobCvRelMapper.java

@@ -14,7 +14,7 @@ import com.citu.module.menduner.system.controller.app.recruit.person.hire.AppRec
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisReqVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobCvRelAnalysisRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobInterestedMapper.java

@@ -3,7 +3,7 @@ package com.citu.module.menduner.system.dal.mysql.job;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
-import com.citu.module.menduner.system.controller.base.job.JobInterestedPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedPageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import org.apache.ibatis.annotations.Mapper;
 

+ 9 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonInfoMapper.java

@@ -3,11 +3,17 @@ package com.citu.module.menduner.system.dal.mysql.person;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.citu.framework.mybatis.core.query.MPJLambdaWrapperX;
+import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonDetailRespVO;
+import com.citu.module.menduner.system.controller.base.person.info.PersonDetailRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.util.StringUtils;
 
+import java.util.List;
+
 /**
  * 人才信息-人才档案 Mapper
  *
@@ -34,7 +40,8 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
                 .orderByDesc(PersonInfoDO::getId));
     }
 
-
-
+    default PersonInfoDO getByUserId(Long userId) {
+        return selectOne(PersonInfoDO::getUserId, userId);
+    }
 
 }

+ 3 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/framework/rpc/config/RpcConfiguration.java

@@ -1,5 +1,6 @@
 package com.citu.module.menduner.system.framework.rpc.config;
 
+import com.citu.module.menduner.system.api.python.GraphApi;
 import com.citu.module.pay.api.order.PayOrderApi;
 import com.citu.module.pay.api.refund.PayRefundApi;
 import com.citu.module.pay.api.wallet.PayWalletApi;
@@ -18,7 +19,8 @@ import org.springframework.context.annotation.Configuration;
         SocialClientApi.class,
         PayOrderApi.class,
         PayRefundApi.class,
-        PayWalletApi.class
+        PayWalletApi.class,
+        GraphApi.class
 })
 public class RpcConfiguration {
 }

+ 24 - 12
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/ESConsumer.java

@@ -31,6 +31,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import static com.citu.module.menduner.system.enums.sync.SyncConstants.*;
+
 /**
  * es 消费
  * 不需要强一致性
@@ -63,30 +65,40 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
     private ApplicationContext applicationContext;
 
 
+    // TODO 赶时间写法,待改
     @Override
     public void onMessage(ESJobAdvertisedMergeSendMessage message) {
         log.info("接收到队列消息[{}]", message);
         switch (message.getOperate()) {
             case SYNC_ALL:
-                sync();
+                if (JOB.equals(message.getType())) {
+                    sync();
+                } else if (ENTERPRISE.equals(message.getType())) {
+
+                }
                 break;
             case ADD:
-                jobAdd(message.getId());
+                if (JOB.equals(message.getType())) {
+                    jobAdd(message.getId());
+                } else {
+
+                }
                 break;
             case UPDATE:
-                jobUpdate(message.getId());
+                if (JOB.equals(message.getType())) {
+                    jobUpdate(message.getId());
+                } else {
+                    enterpriseUpdate(message.getId());
+                }
                 break;
             case DELETE:
-                jobDel(message.getId());
-                break;
-            case ENTERPRISE_ADD:
-                break;
-            case ENTERPRISE_UPDATE:
-                enterpriseUpdate(message.getId());
-                break;
-            case ENTERPRISE_DELETE:
-                enterpriseDel(message.getId());
+                if (JOB.equals(message.getType())) {
+                    jobDel(message.getId());
+                } else {
+                    enterpriseDel(message.getId());
+                }
                 break;
+
             default:
                 break;
         }

+ 6 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/message/ESJobAdvertisedMergeSendMessage.java

@@ -1,7 +1,6 @@
 package com.citu.module.menduner.system.mq.message;
 
 
-import com.citu.module.menduner.system.util.ESOperateEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -22,8 +21,13 @@ public class ESJobAdvertisedMergeSendMessage {
     // 10s
     public static final int LEVEL = 3;
 
+    /** 数据id **/
     private Long id;
 
-    private ESOperateEnum operate;
+    /** 数据类型 SyncConstants **/
+    private String type;
+
+    /** 操作 SyncConstants **/
+    private String operate;
 
 }

+ 11 - 7
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/producer/ESProducer.java

@@ -1,7 +1,7 @@
 package com.citu.module.menduner.system.mq.producer;
 
+import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import com.citu.module.menduner.system.mq.message.ESJobAdvertisedMergeSendMessage;
-import com.citu.module.menduner.system.util.ESOperateEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.rocketmq.spring.core.RocketMQTemplate;
 import org.springframework.messaging.Message;
@@ -22,25 +22,29 @@ public class ESProducer {
     @Resource
     private RocketMQTemplate rocketMQTemplate;
 
-    public void sync() {
+    public void sync(String type) {
         ESJobAdvertisedMergeSendMessage content = ESJobAdvertisedMergeSendMessage.builder()
-                .operate(ESOperateEnum.SYNC_ALL)
+                .type(type)
+                .operate(SyncConstants.SYNC_ALL)
                 .build();
         send(content);
     }
 
-    public void send(ESOperateEnum operateEnum, Long id) {
+    public void send(String type,String operate, Long id) {
         ESJobAdvertisedMergeSendMessage content = ESJobAdvertisedMergeSendMessage.builder()
                 .id(id)
-                .operate(operateEnum)
+                .type(type)
+                .operate(operate)
                 .build();
+
         send(content);
     }
 
-    public void sendDel(Long id) {
+    public void sendDel(Long id,String type) {
         ESJobAdvertisedMergeSendMessage content = ESJobAdvertisedMergeSendMessage.builder()
                 .id(id)
-                .operate(ESOperateEnum.DELETE)
+                .type(type)
+                .operate(SyncConstants.DELETE)
                 .build();
         send(content);
     }

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseService.java

@@ -170,6 +170,11 @@ public interface EnterpriseService {
      **/
     List<CommonRespVO> searchByName(String name);
 
+    /**
+     * 同步所有企业数据到知识图谱
+     **/
+    void syncGraph();
+
     // ========== 招聘端 ==========
 
     /**

+ 65 - 14
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java

@@ -6,13 +6,16 @@ import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.datapermission.core.annotation.DataPermission;
+import com.citu.framework.dict.core.DictFrameworkUtils;
 import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.api.python.GraphApi;
+import com.citu.module.menduner.system.api.python.GraphSendDTO;
 import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterpriseClickReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterpriseDetailRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterpriseSearchPageReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.enterprise.vo.*;
-import com.citu.module.menduner.system.controller.base.enterprise.vo.*;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.*;
 import com.citu.module.menduner.system.convert.EnterpriseConvert;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAddressDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseBusinessDO;
@@ -22,11 +25,11 @@ import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseBusinessMa
 import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
 import com.citu.module.menduner.system.dal.redis.RedisKeyConstants;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
+import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import com.citu.module.menduner.system.enums.visits.MdeVisitsEnum;
 import com.citu.module.menduner.system.mq.producer.ESProducer;
 import com.citu.module.menduner.system.mq.producer.MdeVisitsProducer;
 import com.citu.module.menduner.system.service.area.AreaService;
-import com.citu.module.menduner.system.util.ESOperateEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
@@ -39,6 +42,7 @@ import java.util.stream.Collectors;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.framework.common.util.collection.CollectionUtils.convertSet;
+import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
 import static com.citu.module.menduner.system.enums.ErrorCodeConstants.MDE_ENTERPRISE_NOT_EXISTS;
 
 /**
@@ -69,6 +73,9 @@ public class EnterpriseServiceImpl implements EnterpriseService {
     @Resource
     private ESProducer esProducer;
 
+    @Resource
+    private GraphApi graphApi;
+
 
     @Override
     @CacheEvict(cacheNames = {
@@ -94,7 +101,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         // 更新
         EnterpriseDO updateObj = BeanUtils.toBean(updateReqVO, EnterpriseDO.class);
         enterpriseMapper.updateById(updateObj);
-        noticeES(updateObj.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
+        noticeES(updateObj.getId(),  SyncConstants.UPDATE);
     }
 
     @Override
@@ -107,7 +114,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         validateEnterpriseExists(id);
         // 删除
         enterpriseMapper.deleteById(id);
-        noticeES(id, ESOperateEnum.ENTERPRISE_DELETE);
+        noticeES(id,  SyncConstants.DELETE);
     }
 
     private void validateEnterpriseExists(Long id) {
@@ -138,7 +145,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 
     @Override
     @DataPermission(enable = false) // 禁用数据权限,避免建立不正确的缓存
-    @Cacheable(cacheNames = RedisKeyConstants.ENTERPRISE_CHILDREN_IDS, key = "#id",unless = "#result == null")
+    @Cacheable(cacheNames = RedisKeyConstants.ENTERPRISE_CHILDREN_IDS, key = "#id", unless = "#result == null")
     public Set<Long> getChildEnterpriseIdListFromCache(Long id) {
         List<EnterpriseDO> children = getChildEnterpriseList(id);
         return convertSet(children, EnterpriseDO::getId);
@@ -187,7 +194,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
     }, allEntries = true)
     public void updateParent(Long id, Long parentId) {
         EnterpriseDO enterprise = getEnterprise(id);
-        if(null ==enterprise) {
+        if (null == enterprise) {
             throw exception(MDE_ENTERPRISE_NOT_EXISTS);
         }
 
@@ -200,7 +207,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
             RedisKeyConstants.MDE_ENTERPRISE_TREE,
             RedisKeyConstants.ENTERPRISE_CHILDREN_IDS
     }, allEntries = true)
-    public Long createSimpleEnterprise(String name,String contactName, String phone, Boolean prepare) {
+    public Long createSimpleEnterprise(String name, String contactName, String phone, Boolean prepare) {
         EnterpriseDO enterprise = new EnterpriseDO();
         enterprise.setName(name);
         enterprise.setContact(contactName);
@@ -278,13 +285,38 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         return enterprise;
     }
 
+    @Override
+    public void syncGraph() {
+        EnterprisePageReqVO condition = new EnterprisePageReqVO();
+        condition.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<EnterpriseDetailRespVO> list = enterpriseMapper.page(condition).getList();
+        for (EnterpriseDetailRespVO resp : list) {
+            if(null!=resp.getScale()) {
+                resp.setScale(DictFrameworkUtils.getDictDataLabel(MENDUNER_SCALE, resp.getScale()));
+            }
+            if(null!=resp.getFinancingStatus()) {
+                resp.setFinancingStatus(DictFrameworkUtils.getDictDataLabel(MENDUNER_FINANCING_STATUS, resp.getFinancingStatus()));
+            }
+            resp.setStatus(DictFrameworkUtils.getDictDataLabel(MENDUNER_STATUS, resp.getStatus()));
+        }
+        graphApi.send(
+                new GraphSendDTO<EnterpriseDetailRespVO>
+                        (
+                                SyncConstants.ENTERPRISE,
+                                SyncConstants.SYNC_ALL,
+                                list
+                        )
+        ).getCheckedData();
+
+    }
+
     @Override
     @DSTransactional
     public void uploadLogo(String logoUrl) {
         EnterpriseDO enterprise = selectEnterprise();
         enterprise.setLogoUrl(logoUrl);
         enterpriseMapper.updateById(enterprise);
-        noticeES(enterprise.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
+        noticeES(enterprise.getId(),  SyncConstants.UPDATE);
     }
 
     @Override
@@ -293,7 +325,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         EnterpriseDO enterprise = selectEnterprise();
         enterprise.setAlbumList(reqVO.getAlbumList());
         enterpriseMapper.updateById(enterprise);
-        noticeES(enterprise.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
+        noticeES(enterprise.getId(),  SyncConstants.UPDATE);
     }
 
     @Override
@@ -302,7 +334,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         EnterpriseDO enterprise = selectEnterprise();
         enterprise.setWelfareList(reqVO.getWelfareList());
         enterpriseMapper.updateById(enterprise);
-        noticeES(enterprise.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
+        noticeES(enterprise.getId(),  SyncConstants.UPDATE);
     }
 
     @Override
@@ -311,7 +343,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         EnterpriseDO enterprise = selectEnterprise();
         enterprise.setTagList(reqVO.getTagList());
         enterpriseMapper.updateById(enterprise);
-        noticeES(enterprise.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
+        noticeES(enterprise.getId(), SyncConstants.UPDATE);
     }
 
     @Override
@@ -322,11 +354,30 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         EnterpriseDO updateObj = EnterpriseConvert.INSTANCE.convert12(reqVO);
         updateObj.setId(enterprise.getId());
         enterpriseMapper.updateById(updateObj);
-        noticeES(updateObj.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
+        noticeES(updateObj.getId(), SyncConstants.UPDATE);
     }
 
-    private void noticeES(Long id, ESOperateEnum operate) {
-        esProducer.send(operate, id);
+    private void noticeES(Long id, String operate) {
+        esProducer.send(SyncConstants.ENTERPRISE, operate, id);
+
+        if (SyncConstants.DELETE.equals(operate)) {
+            // 删除
+            graphApi.send(
+                    new GraphSendDTO<Long>
+                            (SyncConstants.ENTERPRISE, SyncConstants.DELETE, id)
+            ).getCheckedData();
+        } else {
+            // 修改 || 新增
+            graphApi.send(
+                    new GraphSendDTO<EnterpriseDetailRespVO>
+                            (
+                                    SyncConstants.ENTERPRISE,
+                                    operate,
+                                    enterpriseMapper.get(id)
+                            )
+            ).getCheckedData();
+        }
+
     }
 
     @Override

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedService.java

@@ -140,6 +140,11 @@ public interface JobAdvertisedService {
      **/
     List<CommonRespVO> getJobAreaCountByEnterpriseId(Long enterpriseId);
 
+    /**
+     * 同步所有职位数据到知识图谱
+     **/
+    void syncGraph();
+
     // ========== 招聘端 ==========
 
     /**

+ 115 - 68
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java

@@ -6,8 +6,11 @@ import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.dict.core.DictFrameworkUtils;
 import com.citu.framework.security.core.LoginUser;
 import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.api.python.GraphApi;
+import com.citu.module.menduner.system.api.python.GraphSendDTO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppEnterpriseJobHomeRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedDetailRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedHomeRespVO;
@@ -21,31 +24,34 @@ import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserCon
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedPageReqVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedReqVO;
+import com.citu.module.menduner.system.controller.base.job.JobAdvertisedRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSaveReqVO;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobInterestedMapper;
-import com.citu.module.menduner.system.enums.cv.JobCvRelStatusEnum;
 import com.citu.module.menduner.system.enums.job.JobStatusEnum;
+import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import com.citu.module.menduner.system.mq.producer.ESProducer;
 import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
 import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
-import com.citu.module.menduner.system.service.record.UserAccountRecordService;
-import com.citu.module.menduner.system.util.ESOperateEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
 import java.time.LocalDateTime;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
+import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.MDE_JOB_ADVERTISED_BALANCE_UPDATE;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.MDE_JOB_ADVERTISED_NOT_EXISTS;
 import static com.citu.module.menduner.system.util.RecruitAnalysisUtils.generateDateTimeRange;
 
 /**
@@ -60,7 +66,7 @@ import static com.citu.module.menduner.system.util.RecruitAnalysisUtils.generate
 public class JobAdvertisedServiceImpl implements JobAdvertisedService {
 
     @Resource
-    private JobAdvertisedMapper jobAdvertisedMapper;
+    private JobAdvertisedMapper mapper;
 
     @Resource
     private JobInterestedMapper jobInterestedMapper;
@@ -72,17 +78,17 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     private EnterpriseUserBindService userBindService;
 
     @Resource
-    private UserAccountRecordService accountRecordService;
+    private ESProducer esProducer;
 
     @Resource
-    private ESProducer esProducer;
+    private GraphApi graphApi;
 
 
     @Override
     public Long createJobAdvertised(JobAdvertisedSaveReqVO createReqVO) {
         // 插入
         JobAdvertisedDO jobAdvertised = BeanUtils.toBean(createReqVO, JobAdvertisedDO.class);
-        jobAdvertisedMapper.insert(jobAdvertised);
+        mapper.insert(jobAdvertised);
         // 返回
         return jobAdvertised.getId();
     }
@@ -93,7 +99,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         validateJobAdvertisedExists(updateReqVO.getId());
         // 更新
         JobAdvertisedDO updateObj = BeanUtils.toBean(updateReqVO, JobAdvertisedDO.class);
-        jobAdvertisedMapper.updateById(updateObj);
+        mapper.updateById(updateObj);
     }
 
     @Override
@@ -101,28 +107,28 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         // 校验存在
         validateJobAdvertisedExists(id);
         // 删除
-        jobAdvertisedMapper.deleteById(id);
+        mapper.deleteById(id);
     }
 
     private void validateJobAdvertisedExists(Long id) {
-        if (jobAdvertisedMapper.selectById(id) == null) {
+        if (mapper.selectById(id) == null) {
             throw exception(MDE_JOB_ADVERTISED_NOT_EXISTS);
         }
     }
 
     @Override
     public JobAdvertisedDO getJobAdvertised(Long id) {
-        return jobAdvertisedMapper.selectById(id);
+        return mapper.selectById(id);
     }
 
     @Override
     public PageResult<JobAdvertisedDO> getJobAdvertisedPage(JobAdvertisedPageReqVO pageReqVO) {
-        return jobAdvertisedMapper.selectPage(pageReqVO);
+        return mapper.selectPage(pageReqVO);
     }
 
     @Override
     public List<JobAdvertisedDO> list(JobAdvertisedReqVO reqVO) {
-        return jobAdvertisedMapper.list(reqVO);
+        return mapper.list(reqVO);
     }
 
     @Override
@@ -136,18 +142,18 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         Long userId = LoginUserContext.getUserId2();
         if (null == userId) {
             // 未登录
-            PageResult<AppJobAdvertisedHomeRespVO> result = jobAdvertisedMapper.selectPage(pageReqVO);
+            PageResult<AppJobAdvertisedHomeRespVO> result = mapper.selectPage(pageReqVO);
             if (CollUtil.isEmpty(result.getList())) {
                 // 没有数据, 再算一遍
                 pageReqVO.setTop(null);
-                return jobAdvertisedMapper.selectPage(pageReqVO);
+                return mapper.selectPage(pageReqVO);
             }
         }
 
         // 基于求职意向计算
         List<JobInterestedDO> interestList = jobInterestedMapper.selectByUserIdList(userId);
         if (CollUtil.isEmpty(interestList)) {
-            return jobAdvertisedMapper.selectPage(pageReqVO);
+            return mapper.selectPage(pageReqVO);
         }
         // 感兴趣的职位
         List<Long> positionIds = interestList.stream()
@@ -186,7 +192,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         );
         pageReqVO.setAcquainted(true);
         pageReqVO.setTop(false);
-        return jobAdvertisedMapper.selectPage(pageReqVO);
+        return mapper.selectPage(pageReqVO);
 
 
     }
@@ -196,14 +202,14 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         AppJobAdvertisedPageReqVO pageReqVO =
                 new AppJobAdvertisedPageReqVO(pageParam, AppJobAdvertisedPageReqVO.NEW);
         pageReqVO.setHire(false);
-        return jobAdvertisedMapper.selectPage(pageReqVO);
+        return mapper.selectPage(pageReqVO);
     }
 
 
     @Override
     public PageResult<AppJobAdvertisedHomeRespVO> getAcquaintedPage(AppJobAdvertisedPageReqVO pageReqVO) {
         pageReqVO.setMark(AppJobAdvertisedPageReqVO.ACQUAINTED);
-        return jobAdvertisedMapper.selectPage(pageReqVO);
+        return mapper.selectPage(pageReqVO);
     }
 
     @Override
@@ -211,13 +217,13 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         AppJobAdvertisedPageReqVO pageReqVO =
                 new AppJobAdvertisedPageReqVO(pageParam, AppJobAdvertisedPageReqVO.HIRE);
         pageReqVO.setHire(true);
-        return jobAdvertisedMapper.selectPage(pageReqVO);
+        return mapper.selectPage(pageReqVO);
     }
 
     @Override
     public PageResult<AppEnterpriseJobHomeRespVO> getHotEnterpriseJobPage(PageParam pageParam) {
         PageResult<AppEnterpriseJobHomeRespVO> result =
-                jobAdvertisedMapper.getEnterpriseJobPage(pageParam);
+                mapper.getEnterpriseJobPage(pageParam);
         if (result.getList().isEmpty()) {
             return result;
         }
@@ -226,7 +232,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
                 .collect(Collectors.toList());
 
         // 一次性获取相关企业的数据
-        Map<Long, List<JobAdvertisedDO>> jobMap = jobAdvertisedMapper
+        Map<Long, List<JobAdvertisedDO>> jobMap = mapper
                 .selectByEnterpriseIdList(idList)
                 .stream()
                 .collect(Collectors.groupingBy(JobAdvertisedDO::getEnterpriseId));
@@ -245,14 +251,14 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
 
     @Override
     public AppJobAdvertisedDetailRespVO detail(Long id) {
-        JobAdvertisedDO job = jobAdvertisedMapper.selectById(id);
+        JobAdvertisedDO job = mapper.selectById(id);
         if (null == job) {
             throw exception(MDE_JOB_ADVERTISED_NOT_EXISTS);
         }
         // 转换
         AppJobAdvertisedDetailRespVO respVO = JobAdvertisedConvert.INSTANCE.convert(job);
         // 设置招聘职位数量
-        respVO.setJobAdvertisedNum(jobAdvertisedMapper.countByEnterpriseId(job.getEnterpriseId()));
+        respVO.setJobAdvertisedNum(mapper.countByEnterpriseId(job.getEnterpriseId()));
 
         // 查询企业信息
         EnterpriseBaseSimpleRespVO enterprise = enterpriseService.
@@ -270,7 +276,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     @Override
     public List<CommonRespVO> getJobPositionCountByEnterpriseId(Long enterpriseId) {
         List<CommonRespVO> list = new ArrayList<>();
-        List<JobAdvertisedDO> jobList = jobAdvertisedMapper
+        List<JobAdvertisedDO> jobList = mapper
                 .selectByEnterpriseIdAndNotExpireTime(enterpriseId);
         // 分组
         Map<Long, Long> groupedMap = jobList.stream()
@@ -290,7 +296,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     @Override
     public List<CommonRespVO> getJobAreaCountByEnterpriseId(Long enterpriseId) {
         List<CommonRespVO> list = new ArrayList<>();
-        List<JobAdvertisedDO> jobList = jobAdvertisedMapper
+        List<JobAdvertisedDO> jobList = mapper
                 .selectByEnterpriseIdAndNotExpireTime(enterpriseId);
         // 分组
         Map<Long, Long> groupedMap = jobList.stream()
@@ -307,6 +313,33 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         return list;
     }
 
+    @Override
+    public void syncGraph() {
+
+        List<JobAdvertisedDO> list = mapper.list(
+                JobAdvertisedReqVO.builder().build()
+        );
+        List<JobAdvertisedRespVO> respList = JobAdvertisedConvert.INSTANCE.convertList7(list);
+        for (JobAdvertisedRespVO resp : respList) {
+            // 设置字典真实值
+            resp.setType(DictFrameworkUtils.getDictDataLabel(MENDUNER_JOB_TYPE, resp.getType()));
+            resp.setEduType(DictFrameworkUtils.getDictDataLabel(MENDUNER_EDUCATION_TYPE, resp.getEduType()));
+            resp.setExpType(DictFrameworkUtils.getDictDataLabel(MENDUNER_EXP_TYPE, resp.getExpType()));
+            resp.setPayUnit(DictFrameworkUtils.getDictDataLabel(MENDUNER_PAY_UNIT, resp.getPayUnit()));
+            resp.setStatus(DictFrameworkUtils.getDictDataLabel(MENDUNER_JOB_STATUS, resp.getStatus()));
+        }
+
+        graphApi.send(
+                new GraphSendDTO<JobAdvertisedRespVO>
+                        (
+                                SyncConstants.JOB,
+                                SyncConstants.SYNC_ALL,
+                                respList
+                        )
+        ).getCheckedData();
+
+    }
+
     @Override
     @DSTransactional
     public Long save(AppRecruitJobSaveReqVO reqVO) {
@@ -324,13 +357,13 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
                 job.setStatus(JobStatusEnum.ENABLE.getStatus());
             }
             // 后置处理
-            jobOperateAfter(enterpriseId, loginUser.getId(), job, ESOperateEnum.ADD);
+            jobOperateAfter(job, SyncConstants.ADD);
 
         } else {
             // 修改
             JobAdvertisedDO entity = get(reqVO.getId());
             // 效验
-            validUpdate(enterpriseId, loginUser.getId(), entity, reqVO);
+            validUpdate(entity, reqVO);
             // 是否是平台职位切换成众聘的职位
             if (reqVO.getHire() && !entity.getHire()) {
                 // 普通职位切换众聘职位则进入判断,众聘切普通不进入判断
@@ -338,7 +371,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
             }
             job.setId(entity.getId());
             // 后置处理
-            jobOperateAfter(enterpriseId, loginUser.getId(), job, ESOperateEnum.UPDATE);
+            jobOperateAfter(job, SyncConstants.UPDATE);
         }
         return job.getId();
     }
@@ -347,15 +380,12 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     /**
      * 效验职位发布的编辑
      *
-     * @param enterpriseId 当前操作账户所在的企业
-     * @param userId       操作的用户
-     * @param entity       职位
-     * @param reqVO        编辑的职位信息
+     * @param entity 职位
+     * @param reqVO  编辑的职位信息
      **/
-    public void validUpdate(Long enterpriseId,
-                            Long userId,
-                            JobAdvertisedDO entity,
-                            AppRecruitJobSaveReqVO reqVO) {
+    public void validUpdate(
+            JobAdvertisedDO entity,
+            AppRecruitJobSaveReqVO reqVO) {
 
         if (reqVO.getHire()) {
             // price 不为空 && 之前是众聘的职位(防止平台职位切换成众聘职位这种情况)
@@ -370,7 +400,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     }
 
     public JobAdvertisedDO get(Long id) {
-        JobAdvertisedDO job = jobAdvertisedMapper.selectById(id);
+        JobAdvertisedDO job = mapper.selectById(id);
         if (null == job) {
             throw exception(MDE_JOB_ADVERTISED_NOT_EXISTS);
         }
@@ -387,8 +417,8 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
                 return true;
             }
             job.setStatus(JobStatusEnum.ENABLE.getStatus());
-            jobAdvertisedMapper.updateById(job);
-            jobDataSync(job, ESOperateEnum.UPDATE);
+            mapper.updateById(job);
+            jobDataSync(job, SyncConstants.UPDATE);
         }
         return true;
     }
@@ -403,8 +433,8 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
                 return true;
             }
             job.setStatus(JobStatusEnum.DISABLE.getStatus());
-            jobAdvertisedMapper.updateById(job);
-            jobDataSync(job, ESOperateEnum.UPDATE);
+            mapper.updateById(job);
+            jobDataSync(job, SyncConstants.UPDATE);
         }
         return true;
     }
@@ -415,14 +445,14 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         for (Long id : ids) {
             JobAdvertisedDO job = get(id);
             job.setUpdateTime(LocalDateTime.now());
-            jobAdvertisedMapper.updateById(job);
-            jobDataSync(job, ESOperateEnum.UPDATE);
+            mapper.updateById(job);
+            jobDataSync(job, SyncConstants.UPDATE);
         }
     }
 
     @Override
     public List<AppRecruitJobSimpleRespVO> getList() {
-        return jobAdvertisedMapper.list(
+        return mapper.list(
                 LoginUserContext.getEnterpriseId(),
                 LoginUserContext.getUserId()
         );
@@ -439,29 +469,26 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
             }
             job.setUpdateTime(LocalDateTime.now());
             job.setTop(true);
-            jobAdvertisedMapper.updateById(job);
-            jobDataSync(job, ESOperateEnum.UPDATE);
+            mapper.updateById(job);
+            jobDataSync(job, SyncConstants.UPDATE);
         }
     }
 
     /**
      * 职位操作最后的操作
      *
-     * @param enterpriseId 当前操作账户所在的企业
-     * @param userId       操作的用户
-     * @param job          职位对象
-     * @param operate      操作类型
+     * @param job     职位对象
+     * @param operate 操作类型
      **/
-    public void jobOperateAfter(Long enterpriseId,
-                                Long userId,
-                                JobAdvertisedDO job,
-                                ESOperateEnum operate) {
+    public void jobOperateAfter(
+            JobAdvertisedDO job,
+            String operate) {
 
 
-        if (ESOperateEnum.ADD.getType().equals(operate.getType())) {
-            jobAdvertisedMapper.insert(job);
+        if (SyncConstants.ADD.equals(operate)) {
+            mapper.insert(job);
         } else {
-            jobAdvertisedMapper.updateById(job);
+            mapper.updateById(job);
         }
 
         // ========== ES数据同步处理 ==========
@@ -475,29 +502,49 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
      * @param job     职位对象
      * @param operate 操作类型
      **/
-    public void jobDataSync(JobAdvertisedDO job, ESOperateEnum operate) {
-        if (ESOperateEnum.ADD.getType().equals(operate.getType())) {
-            esProducer.send(ESOperateEnum.ADD, job.getId());
+    public void jobDataSync(JobAdvertisedDO job, String operate) {
+        if (SyncConstants.ADD.equals(operate)) {
+            // es
+            esProducer.send(SyncConstants.JOB,SyncConstants.ADD, job.getId());
+            // 图数据库
+            graphApi.send(
+                    new GraphSendDTO<JobAdvertisedRespVO>
+                            (
+                                    SyncConstants.JOB,
+                                    SyncConstants.ADD,
+                                    JobAdvertisedConvert.INSTANCE.convert(job)
+                            )
+            ).getCheckedData();
         } else {
-            esProducer.send(ESOperateEnum.UPDATE, job.getId());
+            // es
+            esProducer.send(SyncConstants.JOB,SyncConstants.UPDATE, job.getId());
+            // 图数据库
+            graphApi.send(
+                    new GraphSendDTO<JobAdvertisedRespVO>
+                            (
+                                    SyncConstants.JOB,
+                                    SyncConstants.UPDATE,
+                                    JobAdvertisedConvert.INSTANCE.convert(job)
+                            )
+            ).getCheckedData();
         }
     }
 
     @Override
     public PageResult<RecruitJobAnalysisRespVO> getBrowseNum(RecruitAnalysisReqVO reqVO) {
         LocalDateTime[] timeRange = generateDateTimeRange(reqVO);
-        return jobAdvertisedMapper.getAnalysisDetail(reqVO,timeRange[0], timeRange[1]);
+        return mapper.getAnalysisDetail(reqVO, timeRange[0], timeRange[1]);
     }
 
     @Override
     public Long getBrowseNumCount(RecruitAnalysisReqVO reqVO) {
         LocalDateTime[] timeRange = generateDateTimeRange(reqVO);
-        return jobAdvertisedMapper.getBrowseNumCount(reqVO,timeRange[0], timeRange[1]);
+        return mapper.getBrowseNumCount(reqVO, timeRange[0], timeRange[1]);
     }
 
     @Override
     public PageResult<RecruitJobAnalysisRespVO> getJobNum(RecruitAnalysisReqVO reqVO) {
         LocalDateTime[] timeRange = generateDateTimeRange(reqVO);
-        return jobAdvertisedMapper.getJobNum(reqVO,timeRange[0], timeRange[1]);
+        return mapper.getJobNum(reqVO, timeRange[0], timeRange[1]);
     }
 }

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelService.java

@@ -10,8 +10,8 @@ import com.citu.module.menduner.system.controller.app.recruit.person.hire.AppRec
 import com.citu.module.menduner.system.controller.app.recruit.person.hire.AppRecruitHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobCvRelAnalysisRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelSaveReqVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 
 import javax.validation.Valid;

+ 2 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelServiceImpl.java

@@ -1,6 +1,5 @@
 package com.citu.module.menduner.system.service.job;
 
-import cn.hutool.core.collection.CollUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
@@ -14,8 +13,8 @@ import com.citu.module.menduner.system.controller.app.recruit.person.hire.AppRec
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisReqVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobCvRelAnalysisRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelSaveReqVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 import com.citu.module.menduner.system.dal.mysql.job.JobCvRelMapper;
@@ -30,7 +29,6 @@ import org.springframework.validation.annotation.Validated;
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.Comparator;
-import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;

+ 0 - 5
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java

@@ -18,15 +18,10 @@ import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
 import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserSummaryRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.base.person.favorite.PersonJobFavoritePageReqVO;
-import com.citu.module.menduner.system.controller.base.person.subscribe.PersonEnterpriseSubscribePageReqVO;
 import com.citu.module.menduner.system.convert.EnterpriseConvert;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
-import com.citu.module.menduner.system.dal.dataobject.person.PersonEnterpriseSubscribeDO;
-import com.citu.module.menduner.system.dal.dataobject.person.PersonJobFavoriteDO;
 import com.citu.module.menduner.system.dal.es.job.ESJobAdvertisedMergeDO;
 import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobInterestedService.java

@@ -1,8 +1,8 @@
 package com.citu.module.menduner.system.service.job;
 
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.base.job.JobInterestedPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobInterestedSaveReqVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.job.AppJobInterestedSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import org.springframework.web.bind.annotation.RequestBody;

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobInterestedServiceImpl.java

@@ -4,8 +4,8 @@ import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.job.AppJobInterestedSaveReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobInterestedPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobInterestedSaveReqVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.dal.mysql.job.JobInterestedMapper;
 import com.citu.module.menduner.common.util.LoginUserContext;

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationService.java

@@ -15,4 +15,9 @@ public interface PersonIntegrationService {
      * @return AppRecruitPersonDetailRespVO
      **/
     AppRecruitPersonDetailRespVO detail(Long userId);
+
+    /**
+     * 同步所有人才数据到知识图谱
+     **/
+    void syncGraph();
 }

+ 110 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationServiceImpl.java

@@ -1,25 +1,41 @@
 package com.citu.module.menduner.system.service.person;
 
+import com.citu.framework.dict.core.DictFrameworkUtils;
+import com.citu.module.menduner.system.api.python.GraphApi;
+import com.citu.module.menduner.system.api.python.GraphSendDTO;
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonDetailRespVO;
+import com.citu.module.menduner.system.controller.base.person.info.PersonDetailRespVO;
 import com.citu.module.menduner.system.convert.*;
+import com.citu.module.menduner.system.dal.dataobject.eduexp.EduExpDO;
+import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
+import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
+import com.citu.module.menduner.system.dal.dataobject.person.PersonSkillDO;
+import com.citu.module.menduner.system.dal.dataobject.projectexp.ProjectExpDO;
+import com.citu.module.menduner.system.dal.dataobject.trainexp.TrainExpDO;
+import com.citu.module.menduner.system.dal.dataobject.workexp.WorkExpDO;
 import com.citu.module.menduner.system.dal.mysql.eduexp.EduExpMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobInterestedMapper;
+import com.citu.module.menduner.system.dal.mysql.person.PersonInfoMapper;
 import com.citu.module.menduner.system.dal.mysql.person.PersonSkillMapper;
 import com.citu.module.menduner.system.dal.mysql.projectexp.ProjectExpMapper;
 import com.citu.module.menduner.system.dal.mysql.trainexp.TrainExpMapper;
 import com.citu.module.menduner.system.dal.mysql.workexp.WorkExpMapper;
-import com.citu.module.menduner.system.service.person.info.PersonInfoService;
+import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
 
 @Service
 @Validated
 public class PersonIntegrationServiceImpl implements PersonIntegrationService {
 
     @Resource
-    private PersonInfoService personInfoService;
+    private PersonInfoMapper personInfoMapper;
 
     @Resource
     private JobInterestedMapper jobInterestedMapper;
@@ -39,13 +55,16 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
     @Resource
     private PersonSkillMapper personSkillMapper;
 
+    @Resource
+    private GraphApi graphApi;
+
 
     @Override
     public AppRecruitPersonDetailRespVO detail(Long userId) {
         AppRecruitPersonDetailRespVO respVO = new AppRecruitPersonDetailRespVO();
 
         respVO.setPerson(
-                PersonConvert.INSTANCE.convert2(personInfoService.getUserInfoByUserId(userId))
+                PersonConvert.INSTANCE.convert2(personInfoMapper.getByUserId(userId))
         );
 
         respVO.setInterestedList(
@@ -74,4 +93,92 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
 
         return respVO;
     }
+
+
+    @Override
+    public void syncGraph() {
+        List<PersonDetailRespVO> list = new ArrayList<>();
+        List<PersonInfoDO> personList = personInfoMapper.selectList();
+        for (PersonInfoDO person : personList) {
+            PersonDetailRespVO resp = new PersonDetailRespVO();
+
+            // 人员基本信息
+            if (null != person.getMaritalStatus()) {
+                person.setMaritalStatus(DictFrameworkUtils.getDictDataLabel(MENDUNER_MARITAL_STATUS, person.getMaritalStatus()));
+            }
+            if (null != person.getJobType()) {
+                person.setJobType(DictFrameworkUtils.getDictDataLabel(MENDUNER_JOB_TYPE, person.getJobType()));
+            }
+            if (null != person.getJobStatus()) {
+                person.setJobStatus(DictFrameworkUtils.getDictDataLabel(MENDUNER_JOB_STATUS, person.getJobStatus()));
+            }
+            if (null != person.getSex()) {
+                person.setSex(DictFrameworkUtils.getDictDataLabel(MENDUNER_SEX, person.getSex()));
+            }
+            if (null != person.getEduType()) {
+                person.setEduType(DictFrameworkUtils.getDictDataLabel(MENDUNER_EDUCATION_TYPE, person.getEduType()));
+            }
+            if (null != person.getExpType()) {
+                person.setExpType(DictFrameworkUtils.getDictDataLabel(MENDUNER_EXP_TYPE, person.getExpType()));
+            }
+            resp.setPerson(PersonConvert.INSTANCE.convert(person));
+
+            // 求职意向
+            List<JobInterestedDO> interestList = jobInterestedMapper.selectByUserIdList(person.getUserId());
+            for (JobInterestedDO interest : interestList) {
+                if (null != interest.getJobType()) {
+                    interest.setJobType(DictFrameworkUtils.getDictDataLabel(MENDUNER_JOB_TYPE, interest.getJobType()));
+                }
+            }
+            resp.setInterestedList(JobInterestedConvert.INSTANCE.convertList3(interestList));
+
+            // 人才技能
+            List<PersonSkillDO> skillList = personSkillMapper.selectByUserIdList(person.getUserId());
+            resp.setSkillList(PersonConvert.INSTANCE.convertList3(skillList));
+
+            // 人才教育经历
+            List<EduExpDO> eduList = eduExpMapper.selectByUserIdList(person.getUserId());
+            for (EduExpDO edu : eduList) {
+                if (null != edu.getEducationType()) {
+                    edu.setEducationType(DictFrameworkUtils.getDictDataLabel(MENDUNER_EDUCATION_TYPE, edu.getEducationType()));
+                }
+                if (null != edu.getEducationSystemType()) {
+                    edu.setEducationSystemType(DictFrameworkUtils.getDictDataLabel(MENDUNER_EDUCATION_SYSTEM_TYPE, edu.getEducationSystemType()));
+                }
+            }
+            resp.setEduList(EduExpConvert.INSTANCE.convertList3(eduList));
+
+            // 人才工作经历
+            List<WorkExpDO> workExpList = workExpMapper.selectByUserIdList(person.getUserId());
+            for (WorkExpDO work : workExpList) {
+                if (null != work.getCurrencyType()) {
+                    work.setCurrencyType(DictFrameworkUtils.getDictDataLabel(MENDUNER_CURRENCY_TYPE, work.getCurrencyType()));
+                }
+                if (null != work.getPayUnit()) {
+                    work.setPayUnit(DictFrameworkUtils.getDictDataLabel(MENDUNER_PAY_UNIT, work.getPayUnit()));
+                }
+            }
+            resp.setWorkList(WorkExpConvert.INSTANCE.convertList3(workExpList));
+
+            // 人才项目经历
+            List<ProjectExpDO> projectExpList = projectExpMapper.selectByUserIdList(person.getUserId());
+            resp.setProjectList(ProjectExpConvert.INSTANCE.convertList3(projectExpList));
+
+            // 人才培训经历
+            List<TrainExpDO> trainExpList = trainExpMapper.selectByUserIdList(person.getUserId());
+            resp.setTrainList(TrainExpConvert.INSTANCE.convertList3(trainExpList));
+
+            list.add(resp);
+
+        }
+
+        graphApi.send(
+                new GraphSendDTO<PersonDetailRespVO>
+                        (
+                                SyncConstants.PERSON,
+                                SyncConstants.SYNC_ALL,
+                                list
+                        )
+        ).getCheckedData();
+    }
 }

+ 33 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/info/PersonInfoServiceImpl.java

@@ -3,14 +3,18 @@ package com.citu.module.menduner.system.service.person.info;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.module.menduner.system.api.python.GraphApi;
+import com.citu.module.menduner.system.api.python.GraphSendDTO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonAdvantageSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoSaveSimpleReqVO;
+import com.citu.module.menduner.system.controller.base.person.info.PersonDetailRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.dal.mysql.person.PersonInfoMapper;
 import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -32,6 +36,10 @@ public class PersonInfoServiceImpl implements PersonInfoService {
     @Resource
     private PersonInfoMapper personInfoMapper;
 
+
+    @Resource
+    private GraphApi graphApi;
+
     @Override
     @DSTransactional // 单机+多数据源方案,使用 @DSTransactional 保证本地事务,以及数据源的切换
     public Long createUserInfo(PersonInfoSaveReqVO createReqVO) {
@@ -79,7 +87,7 @@ public class PersonInfoServiceImpl implements PersonInfoService {
 
     @Override
     public PersonInfoDO getUserInfoByUserId(Long userId) {
-        return personInfoMapper.selectOne(PersonInfoDO::getUserId, userId);
+        return personInfoMapper.getByUserId(userId);
     }
 
     @Override
@@ -91,9 +99,25 @@ public class PersonInfoServiceImpl implements PersonInfoService {
         userInfo.setUserId(userId);
         if (null == info) {
             personInfoMapper.insert(userInfo);
+            graphApi.send(
+                    new GraphSendDTO<PersonInfoDO>
+                            (
+                                    SyncConstants.PERSON,
+                                    SyncConstants.ADD,
+                                    userInfo
+                            )
+            ).getCheckedData();
         } else {
             userInfo.setId(info.getId());
             personInfoMapper.updateById(userInfo);
+            graphApi.send(
+                    new GraphSendDTO<PersonInfoDO>
+                            (
+                                    SyncConstants.PERSON,
+                                    SyncConstants.UPDATE,
+                                    userInfo
+                            )
+            ).getCheckedData();
         }
         return true;
     }
@@ -137,6 +161,14 @@ public class PersonInfoServiceImpl implements PersonInfoService {
         }
         info.setAdvantage(reqVO.getContent());
         personInfoMapper.updateById(info);
+        graphApi.send(
+                new GraphSendDTO<PersonInfoDO>
+                        (
+                                SyncConstants.PERSON,
+                                SyncConstants.UPDATE,
+                                info
+                        )
+        ).getCheckedData();
 
         return true;
     }

+ 2 - 10
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/sync/ESDataSyncServiceImpl.java

@@ -1,20 +1,12 @@
 package com.citu.module.menduner.system.service.sync;
 
-import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
-import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
-import com.citu.module.menduner.system.dal.es.job.ESJobAdvertisedMergeDO;
-import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
-import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
-import com.citu.module.menduner.system.dal.repository.ESJobAdvertisedMergeRepository;
+import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import com.citu.module.menduner.system.mq.producer.ESProducer;
-import com.citu.module.menduner.system.util.ESOperateEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.List;
 
 /**
  * es 数据同步接口 实现类
@@ -30,7 +22,7 @@ public class ESDataSyncServiceImpl implements ESDataSyncService {
     @Async
     @Override
     public void syncData() {
-        esProducer.sync();
+        esProducer.sync(SyncConstants.JOB);
     }
 
 }

+ 0 - 21
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/util/ESOperateEnum.java

@@ -1,21 +0,0 @@
-package com.citu.module.menduner.system.util;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/** es 操作枚举 新增 修改 删除 | 企业新增 企业修改 删除企业 **/
-@Getter
-@AllArgsConstructor
-public enum ESOperateEnum {
-    SYNC_ALL("sync_all","同步所有"),
-    ADD("add", "新增"),
-    UPDATE("update", "修改"),
-    DELETE("delete", "删除"),
-    ENTERPRISE_ADD("enterprise_add", "企业新增"),
-    ENTERPRISE_UPDATE("enterprise_update", "企业修改"),
-    ENTERPRISE_DELETE("enterprise_delete", "企业删除");
-
-    final String type;
-    final String name;
-
-}

+ 2 - 2
menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/job/JobCvRelServiceImplTest.java

@@ -2,8 +2,8 @@ package com.citu.module.menduner.system.service.job;
 
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.test.core.ut.BaseDbUnitTest;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobCvRelSaveReqVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 import com.citu.module.menduner.system.dal.mysql.job.JobCvRelMapper;
 import org.junit.jupiter.api.Disabled;

+ 2 - 2
menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/job/JobInterestedServiceImplTest.java

@@ -1,7 +1,7 @@
 package com.citu.module.menduner.system.service.job;
 
-import com.citu.module.menduner.system.controller.base.job.JobInterestedPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobInterestedSaveReqVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedSaveReqVO;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;