feat(REQ-2960): 优化泰州人员同步机制,增加链路信息
This commit is contained in:
parent
8a57a46d91
commit
03be21796a
5
pom.xml
5
pom.xml
@ -52,6 +52,11 @@
|
|||||||
<artifactId>axzo-log-api</artifactId>
|
<artifactId>axzo-log-api</artifactId>
|
||||||
<version>1.0.0-SNAPSHOT</version>
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.axzo.framework.logging</groupId>
|
||||||
|
<artifactId>axzo-common-trace</artifactId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.github.openfeign</groupId>
|
<groupId>io.github.openfeign</groupId>
|
||||||
<artifactId>feign-httpclient</artifactId>
|
<artifactId>feign-httpclient</artifactId>
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import org.springframework.context.ConfigurableApplicationContext;
|
|||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@SpringBootApplication(scanBasePackages = "cn.axzo")
|
@SpringBootApplication(scanBasePackages = {"cn.axzo", "com.axzo.framework"})
|
||||||
@EnableFeignClients(basePackages = {"cn.axzo"})
|
@EnableFeignClients(basePackages = {"cn.axzo"})
|
||||||
public class Application {
|
public class Application {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|||||||
@ -88,7 +88,10 @@
|
|||||||
<groupId>cn.axzo.platform</groupId>
|
<groupId>cn.axzo.platform</groupId>
|
||||||
<artifactId>axzo-log-api</artifactId>
|
<artifactId>axzo-log-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.axzo.framework.logging</groupId>
|
||||||
|
<artifactId>axzo-common-trace</artifactId>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.aliyun</groupId>
|
<groupId>com.aliyun</groupId>
|
||||||
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
|
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
|
||||||
|
|||||||
@ -0,0 +1,8 @@
|
|||||||
|
package cn.axzo.riven.third.common;
|
||||||
|
|
||||||
|
public class MdcLogConstant {
|
||||||
|
/**
|
||||||
|
* MDC 日志 KEY
|
||||||
|
*/
|
||||||
|
public static final String CTX_LOG_ID_MDC = "ctxLogId";
|
||||||
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
package cn.axzo.riven.third.job;
|
package cn.axzo.riven.third.job;
|
||||||
|
|
||||||
|
import cn.axzo.riven.third.common.MdcLogConstant;
|
||||||
import cn.axzo.riven.third.entity.ThirdPerson;
|
import cn.axzo.riven.third.entity.ThirdPerson;
|
||||||
import cn.axzo.riven.third.entity.ThirdProjectPerson;
|
import cn.axzo.riven.third.entity.ThirdProjectPerson;
|
||||||
import cn.axzo.riven.third.service.ThirdPersonService;
|
import cn.axzo.riven.third.service.ThirdPersonService;
|
||||||
@ -7,6 +8,7 @@ import cn.axzo.riven.third.service.ThirdProjectPersonService;
|
|||||||
import cn.axzo.riven.third.service.ThirdProjectService;
|
import cn.axzo.riven.third.service.ThirdProjectService;
|
||||||
import cn.axzo.riven.third.taizhou.entity.TaiZhouProject;
|
import cn.axzo.riven.third.taizhou.entity.TaiZhouProject;
|
||||||
import cn.axzo.riven.third.taizhou.service.TaiZhouService;
|
import cn.axzo.riven.third.taizhou.service.TaiZhouService;
|
||||||
|
import cn.azxo.framework.common.logger.JobLoggerTemplate;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
@ -17,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -29,7 +30,6 @@ import java.util.Map;
|
|||||||
@Component
|
@Component
|
||||||
public class TaiZhouProjectPersonIncJob extends IJobHandler {
|
public class TaiZhouProjectPersonIncJob extends IJobHandler {
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
ThirdProjectPersonService thirdProjectPersonService;
|
ThirdProjectPersonService thirdProjectPersonService;
|
||||||
|
|
||||||
@ -42,81 +42,86 @@ public class TaiZhouProjectPersonIncJob extends IJobHandler {
|
|||||||
@Autowired
|
@Autowired
|
||||||
TaiZhouService taiZhouService;
|
TaiZhouService taiZhouService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
JobLoggerTemplate jobLoggerTemplate;
|
||||||
|
|
||||||
@XxlJob("taiZhouProjectPersonIncJob")
|
@XxlJob("taiZhouProjectPersonIncJob")
|
||||||
@Override
|
@Override
|
||||||
public ReturnT<String> execute(String s) throws Exception {
|
public ReturnT<String> execute(String s) throws Exception {
|
||||||
|
return jobLoggerTemplate.execute(MdcLogConstant.CTX_LOG_ID_MDC, () -> {
|
||||||
|
|
||||||
log.info("taiZhouProjectPersonJob-inc start");
|
log.info("taiZhouProjectPersonJob-inc start");
|
||||||
|
|
||||||
//获取泰州所有的项目信息
|
//获取泰州所有的项目信息
|
||||||
List<TaiZhouProject> taiZhouProjectList = taiZhouService.queryThirdProjectForTaiZhou();
|
List<TaiZhouProject> taiZhouProjectList = taiZhouService.queryThirdProjectForTaiZhou();
|
||||||
|
|
||||||
|
if (CollectionUtils.isEmpty(taiZhouProjectList)) {
|
||||||
|
log.info("DB中泰州项目为空,同步结束");
|
||||||
|
return ReturnT.SUCCESS;
|
||||||
|
}
|
||||||
|
log.info("taiZhouProjectPersonJob-inc--项目list:{}", JSON.toJSONString(taiZhouProjectList));
|
||||||
|
|
||||||
|
|
||||||
|
log.info("taiZhouProjectPersonJob-inc 同步项目用工信息--开始");
|
||||||
|
Map<String, List<ThirdProjectPerson>> incThirdProjectPeople = new HashMap<>();
|
||||||
|
taiZhouProjectList.forEach(x -> {
|
||||||
|
log.info("taiZhouProjectPersonJob-inc 同步项目用工信息--项目ID:{} 远程获取开始", x.getThirdProjectId());
|
||||||
|
//基于项目维度进行获取项目下的员工信息
|
||||||
|
List<ThirdProjectPerson> thirdProjectPersonList = taiZhouService.remoteQueryProjectPersonInc(x);
|
||||||
|
|
||||||
|
//更新入库
|
||||||
|
if (!CollectionUtils.isEmpty(thirdProjectPersonList)) {
|
||||||
|
log.info("taiZhouProjectPersonJob-inc 同步项目用工信息--项目ID:{},size:{}", x.getThirdProjectId(), thirdProjectPersonList.size());
|
||||||
|
thirdProjectPersonList.forEach(thirdProjectPerson -> {
|
||||||
|
thirdProjectPersonService.addOrUpdateThirdProjectPerson(thirdProjectPerson, true);
|
||||||
|
});
|
||||||
|
incThirdProjectPeople.put(x.getThirdProjectId(), thirdProjectPersonList);
|
||||||
|
} else {
|
||||||
|
log.info("taiZhouProjectPersonJob-inc 同步项目用工信息--项目ID:{},size:0", x.getThirdProjectId());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
log.info("taiZhouProjectPersonJob-inc 同步项目用工信息--结束");
|
||||||
|
|
||||||
|
if (incThirdProjectPeople.isEmpty()) {
|
||||||
|
log.info("taiZhouProjectPersonJob-inc 泰州job同步项目人员信息--本次无新增数据,无需处理");
|
||||||
|
return ReturnT.SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("泰州job同步项目人员信息--开始");
|
||||||
|
|
||||||
|
//根据项目信息获取调用泰州的项目人员接口
|
||||||
|
taiZhouProjectList.forEach(x -> {
|
||||||
|
log.info("taiZhouProjectPersonJob-inc 同步项目人员信息--项目ID:{} 开始", x.getThirdProjectId());
|
||||||
|
|
||||||
|
List<ThirdProjectPerson> thirdProjectPeople = incThirdProjectPeople.get(x.getThirdProjectId());
|
||||||
|
if (CollUtil.isEmpty(thirdProjectPeople)) {
|
||||||
|
log.info("taiZhouProjectPersonJob-inc 同步项目人员信息--项目ID:{} 结束 - 当前项目没有新增的项目用工信息", x.getThirdProjectId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ThirdPerson> thirdPersonList = taiZhouService.remoteQueryPerson(x, thirdProjectPeople);
|
||||||
|
|
||||||
|
//更新入库
|
||||||
|
if (!CollectionUtils.isEmpty(thirdPersonList)) {
|
||||||
|
log.info("taiZhouProjectPersonJob-inc 同步项目人员信息--项目ID:{},size:{}", x.getThirdProjectId(), thirdPersonList.size());
|
||||||
|
|
||||||
|
thirdPersonList.forEach(thirdPerson -> {
|
||||||
|
try {
|
||||||
|
taiZhouService.handlePerson(thirdPerson, x, TaiZhouService.HandlerPersonType.ADD);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("泰州人员:{} 处理异常,对应泰州ID:{}", thirdPerson.getThirdPersonName(), thirdPerson.getThirdUniquePersonId(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
log.info("taiZhouProjectPersonJob-inc 同步项目人员信息--项目ID:{},size:0", x.getThirdProjectId());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
log.info("taiZhouProjectPersonIncJob 泰州job同步项目用工信息--结束");
|
||||||
|
|
||||||
|
log.info("taiZhouProjectPersonIncJob end");
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(taiZhouProjectList)) {
|
|
||||||
log.info("DB中泰州项目为空,同步结束");
|
|
||||||
return ReturnT.SUCCESS;
|
return ReturnT.SUCCESS;
|
||||||
}
|
|
||||||
log.info("taiZhouProjectPersonJob-inc--项目list:{}", JSON.toJSONString(taiZhouProjectList));
|
|
||||||
|
|
||||||
|
|
||||||
log.info("taiZhouProjectPersonJob-inc 同步项目用工信息--开始");
|
|
||||||
Map<String, List<ThirdProjectPerson>> incThirdProjectPeople = new HashMap<>();
|
|
||||||
taiZhouProjectList.forEach(x -> {
|
|
||||||
log.info("taiZhouProjectPersonJob-inc 同步项目用工信息--项目ID:{} 远程获取开始", x.getThirdProjectId());
|
|
||||||
//基于项目维度进行获取项目下的员工信息
|
|
||||||
List<ThirdProjectPerson> thirdProjectPersonList = taiZhouService.remoteQueryProjectPersonInc(x);
|
|
||||||
|
|
||||||
//更新入库
|
|
||||||
if (!CollectionUtils.isEmpty(thirdProjectPersonList)) {
|
|
||||||
log.info("taiZhouProjectPersonJob-inc 同步项目用工信息--项目ID:{},size:{}", x.getThirdProjectId(), thirdProjectPersonList.size());
|
|
||||||
thirdProjectPersonList.forEach(thirdProjectPerson -> {
|
|
||||||
thirdProjectPersonService.addOrUpdateThirdProjectPerson(thirdProjectPerson, true);
|
|
||||||
});
|
|
||||||
incThirdProjectPeople.put(x.getThirdProjectId(), thirdProjectPersonList);
|
|
||||||
} else {
|
|
||||||
log.info("taiZhouProjectPersonJob-inc 同步项目用工信息--项目ID:{},size:0", x.getThirdProjectId());
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
log.info("taiZhouProjectPersonJob-inc 同步项目用工信息--结束");
|
|
||||||
|
|
||||||
if (incThirdProjectPeople.isEmpty()) {
|
|
||||||
log.info("taiZhouProjectPersonJob-inc 泰州job同步项目人员信息--本次无新增数据,无需处理");
|
|
||||||
return ReturnT.SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("泰州job同步项目人员信息--开始");
|
|
||||||
|
|
||||||
//根据项目信息获取调用泰州的项目人员接口
|
|
||||||
taiZhouProjectList.forEach(x -> {
|
|
||||||
log.info("taiZhouProjectPersonJob-inc 同步项目人员信息--项目ID:{} 开始", x.getThirdProjectId());
|
|
||||||
|
|
||||||
List<ThirdProjectPerson> thirdProjectPeople = incThirdProjectPeople.get(x.getThirdProjectId());
|
|
||||||
if (CollUtil.isEmpty(thirdProjectPeople)) {
|
|
||||||
log.info("taiZhouProjectPersonJob-inc 同步项目人员信息--项目ID:{} 结束 - 当前项目没有新增的项目用工信息", x.getThirdProjectId());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<ThirdPerson> thirdPersonList = taiZhouService.remoteQueryPerson(x, thirdProjectPeople);
|
|
||||||
|
|
||||||
//更新入库
|
|
||||||
if (!CollectionUtils.isEmpty(thirdPersonList)) {
|
|
||||||
log.info("taiZhouProjectPersonJob-inc 同步项目人员信息--项目ID:{},size:{}", x.getThirdProjectId(), thirdPersonList.size());
|
|
||||||
|
|
||||||
thirdPersonList.forEach(thirdPerson -> {
|
|
||||||
try {
|
|
||||||
taiZhouService.handlePerson(thirdPerson, x, TaiZhouService.HandlerPersonType.ADD);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("泰州人员:{} 处理异常,对应泰州ID:{}", thirdPerson.getThirdPersonName(), thirdPerson.getThirdUniquePersonId(), e);
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
log.info("taiZhouProjectPersonJob-inc 同步项目人员信息--项目ID:{},size:0", x.getThirdProjectId());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
log.info("taiZhouProjectPersonIncJob 泰州job同步项目用工信息--结束");
|
|
||||||
|
|
||||||
log.info("taiZhouProjectPersonIncJob end");
|
|
||||||
|
|
||||||
return ReturnT.SUCCESS;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package cn.axzo.riven.third.job;
|
package cn.axzo.riven.third.job;
|
||||||
|
|
||||||
|
import cn.axzo.riven.third.common.MdcLogConstant;
|
||||||
import cn.axzo.riven.third.entity.ThirdPerson;
|
import cn.axzo.riven.third.entity.ThirdPerson;
|
||||||
import cn.axzo.riven.third.entity.ThirdProjectPerson;
|
import cn.axzo.riven.third.entity.ThirdProjectPerson;
|
||||||
import cn.axzo.riven.third.service.ThirdPersonService;
|
import cn.axzo.riven.third.service.ThirdPersonService;
|
||||||
@ -7,6 +8,7 @@ import cn.axzo.riven.third.service.ThirdProjectPersonService;
|
|||||||
import cn.axzo.riven.third.service.ThirdProjectService;
|
import cn.axzo.riven.third.service.ThirdProjectService;
|
||||||
import cn.axzo.riven.third.taizhou.entity.TaiZhouProject;
|
import cn.axzo.riven.third.taizhou.entity.TaiZhouProject;
|
||||||
import cn.axzo.riven.third.taizhou.service.TaiZhouService;
|
import cn.axzo.riven.third.taizhou.service.TaiZhouService;
|
||||||
|
import cn.azxo.framework.common.logger.JobLoggerTemplate;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
@ -40,71 +42,74 @@ public class TaiZhouProjectPersonJob extends IJobHandler {
|
|||||||
@Autowired
|
@Autowired
|
||||||
TaiZhouService taiZhouService;
|
TaiZhouService taiZhouService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
JobLoggerTemplate jobLoggerTemplate;
|
||||||
@XxlJob("taiZhouProjectPersonJob")
|
@XxlJob("taiZhouProjectPersonJob")
|
||||||
@Override
|
@Override
|
||||||
public ReturnT<String> execute(String s) throws Exception {
|
public ReturnT<String> execute(String s) throws Exception {
|
||||||
|
return jobLoggerTemplate.execute(MdcLogConstant.CTX_LOG_ID_MDC, () -> {
|
||||||
|
log.info("taiZhouProjectPersonJob start");
|
||||||
|
|
||||||
log.info("taiZhouProjectPersonJob start");
|
//获取泰州所有的项目信息
|
||||||
|
List<TaiZhouProject> taiZhouProjectList = taiZhouService.queryThirdProjectForTaiZhou();
|
||||||
|
|
||||||
//获取泰州所有的项目信息
|
if (CollectionUtils.isEmpty(taiZhouProjectList)) {
|
||||||
List<TaiZhouProject> taiZhouProjectList = taiZhouService.queryThirdProjectForTaiZhou();
|
log.info("DB中泰州项目为空,同步结束");
|
||||||
|
return ReturnT.SUCCESS;
|
||||||
|
}
|
||||||
|
log.info("taiZhouProjectPersonJob--项目list:{}", JSON.toJSONString(taiZhouProjectList));
|
||||||
|
|
||||||
|
|
||||||
|
log.info("taiZhouProjectPersonJob 同步项目用工信息--开始");
|
||||||
|
taiZhouProjectList.forEach(x -> {
|
||||||
|
log.info("taiZhouProjectPersonJob 同步项目用工信息--项目ID:{} 远程获取开始", x.getThirdProjectId());
|
||||||
|
//基于项目维度进行获取项目下的员工信息
|
||||||
|
List<ThirdProjectPerson> thirdProjectPersonList = taiZhouService.remoteQueryProjectPerson(x);
|
||||||
|
|
||||||
|
//更新入库
|
||||||
|
if (!CollectionUtils.isEmpty(thirdProjectPersonList)) {
|
||||||
|
log.info("taiZhouProjectPersonJob 同步项目用工信息--项目ID:{},size:{}", x.getThirdProjectId(), thirdProjectPersonList.size());
|
||||||
|
thirdProjectPersonList.forEach(thirdProjectPerson -> {
|
||||||
|
// 全量更新不插入thirdProjectPerson数据。只做更新操作。新增由增量更新处理
|
||||||
|
thirdProjectPersonService.addOrUpdateThirdProjectPerson(thirdProjectPerson, false);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
log.info("taiZhouProjectPersonJob 同步项目用工信息--项目ID:{},size:0", x.getThirdProjectId());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
log.info("taiZhouProjectPersonJob 同步项目用工信息--结束");
|
||||||
|
|
||||||
|
log.info("taiZhouProjectPersonJob 泰州job同步项目人员信息--开始");
|
||||||
|
|
||||||
|
//根据项目信息获取调用泰州的项目人员接口
|
||||||
|
taiZhouProjectList.forEach(x -> {
|
||||||
|
|
||||||
|
log.info("taiZhouProjectPersonJob 同步项目人员信息--项目ID:{} 开始", x.getThirdProjectId());
|
||||||
|
|
||||||
|
// 全量更新接口,直接返回全量的用户数据,主要处理人员信息变更的情况
|
||||||
|
List<ThirdPerson> thirdPersonList = taiZhouService.remoteQueryPerson(x, ImmutableList.of());
|
||||||
|
|
||||||
|
//更新入库
|
||||||
|
if (!CollectionUtils.isEmpty(thirdPersonList)) {
|
||||||
|
log.info("taiZhouProjectPersonJob 同步项目人员信息--项目ID:{},size:{}", x.getThirdProjectId(), thirdPersonList.size());
|
||||||
|
|
||||||
|
thirdPersonList.forEach(thirdPerson -> {
|
||||||
|
try {
|
||||||
|
taiZhouService.handlePerson(thirdPerson, x, TaiZhouService.HandlerPersonType.UPDATE);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("泰州人员:{} 处理异常,对应泰州ID:{}", thirdPerson.getThirdPersonName(), thirdPerson.getThirdUniquePersonId(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
log.info("taiZhouProjectPersonJob 同步项目人员信息--项目ID:{},size:0", x.getThirdProjectId());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
log.info("taiZhouProjectPersonJob 泰州job同步项目人员信息--结束");
|
||||||
|
|
||||||
|
log.info("taiZhouProjectPersonJob end");
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(taiZhouProjectList)) {
|
|
||||||
log.info("DB中泰州项目为空,同步结束");
|
|
||||||
return ReturnT.SUCCESS;
|
return ReturnT.SUCCESS;
|
||||||
}
|
|
||||||
log.info("taiZhouProjectPersonJob--项目list:{}", JSON.toJSONString(taiZhouProjectList));
|
|
||||||
|
|
||||||
|
|
||||||
log.info("taiZhouProjectPersonJob 同步项目用工信息--开始");
|
|
||||||
taiZhouProjectList.forEach(x -> {
|
|
||||||
log.info("taiZhouProjectPersonJob 同步项目用工信息--项目ID:{} 远程获取开始", x.getThirdProjectId());
|
|
||||||
//基于项目维度进行获取项目下的员工信息
|
|
||||||
List<ThirdProjectPerson> thirdProjectPersonList = taiZhouService.remoteQueryProjectPerson(x);
|
|
||||||
|
|
||||||
//更新入库
|
|
||||||
if (!CollectionUtils.isEmpty(thirdProjectPersonList)) {
|
|
||||||
log.info("taiZhouProjectPersonJob 同步项目用工信息--项目ID:{},size:{}", x.getThirdProjectId(), thirdProjectPersonList.size());
|
|
||||||
thirdProjectPersonList.forEach(thirdProjectPerson -> {
|
|
||||||
// 全量更新不插入thirdProjectPerson数据。只做更新操作。新增由增量更新处理
|
|
||||||
thirdProjectPersonService.addOrUpdateThirdProjectPerson(thirdProjectPerson, false);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
log.info("taiZhouProjectPersonJob 同步项目用工信息--项目ID:{},size:0", x.getThirdProjectId());
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
log.info("taiZhouProjectPersonJob 同步项目用工信息--结束");
|
|
||||||
|
|
||||||
log.info("taiZhouProjectPersonJob 泰州job同步项目人员信息--开始");
|
|
||||||
|
|
||||||
//根据项目信息获取调用泰州的项目人员接口
|
|
||||||
taiZhouProjectList.forEach(x -> {
|
|
||||||
|
|
||||||
log.info("taiZhouProjectPersonJob 同步项目人员信息--项目ID:{} 开始", x.getThirdProjectId());
|
|
||||||
|
|
||||||
// 全量更新接口,直接返回全量的用户数据,主要处理人员信息变更的情况
|
|
||||||
List<ThirdPerson> thirdPersonList = taiZhouService.remoteQueryPerson(x, ImmutableList.of());
|
|
||||||
|
|
||||||
//更新入库
|
|
||||||
if (!CollectionUtils.isEmpty(thirdPersonList)) {
|
|
||||||
log.info("taiZhouProjectPersonJob 同步项目人员信息--项目ID:{},size:{}", x.getThirdProjectId(), thirdPersonList.size());
|
|
||||||
|
|
||||||
thirdPersonList.forEach(thirdPerson -> {
|
|
||||||
try {
|
|
||||||
taiZhouService.handlePerson(thirdPerson, x, TaiZhouService.HandlerPersonType.UPDATE);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("泰州人员:{} 处理异常,对应泰州ID:{}", thirdPerson.getThirdPersonName(), thirdPerson.getThirdUniquePersonId(), e);
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
log.info("taiZhouProjectPersonJob 同步项目人员信息--项目ID:{},size:0", x.getThirdProjectId());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
log.info("taiZhouProjectPersonJob 泰州job同步项目人员信息--结束");
|
|
||||||
|
|
||||||
log.info("taiZhouProjectPersonJob end");
|
|
||||||
|
|
||||||
return ReturnT.SUCCESS;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -55,7 +55,6 @@ public class ThirdProjectPersonServiceImpl implements ThirdProjectPersonService
|
|||||||
.update();
|
.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -119,9 +119,10 @@ public class TaiZhouClient {
|
|||||||
RestTemplateUtils restTemplateUtils = new RestTemplateUtils(taiZhouConfig.getHttpConnectTimeout(), taiZhouConfig.getHttpReadTimeout());
|
RestTemplateUtils restTemplateUtils = new RestTemplateUtils(taiZhouConfig.getHttpConnectTimeout(), taiZhouConfig.getHttpReadTimeout());
|
||||||
if (StringUtils.hasText(requestBody)) {
|
if (StringUtils.hasText(requestBody)) {
|
||||||
String body = AesUtil.encryptPkcs5(requestBody, taiZhouConfig.getKey());
|
String body = AesUtil.encryptPkcs5(requestBody, taiZhouConfig.getKey());
|
||||||
log.info("请求泰州住建局body:{}", body);
|
log.info("请求泰州住建局,apiFullUrl = {}, paramReq = {}, originBody = {} ,encodedBody = {}", apiFullUrl, JSON.toJSONString(paramReq), requestBody, body);
|
||||||
responseEntity = restTemplateUtils.post(apiFullUrl, headers, body, String.class);
|
responseEntity = restTemplateUtils.post(apiFullUrl, headers, body, String.class);
|
||||||
} else {
|
} else {
|
||||||
|
log.info("请求泰州住建局,apiFullUrl = {}, paramReq = {}", apiFullUrl, JSON.toJSONString(paramReq));
|
||||||
responseEntity = restTemplateUtils.post(apiFullUrl, headers, String.class);
|
responseEntity = restTemplateUtils.post(apiFullUrl, headers, String.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -724,6 +724,16 @@ public class TaiZhouServiceImpl implements TaiZhouService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateThirdPerson(ThirdPerson oldThirdPerson, ThirdPerson thirdPerson) {
|
private void updateThirdPerson(ThirdPerson oldThirdPerson, ThirdPerson thirdPerson) {
|
||||||
|
if (isNotChanged(thirdPerson.getThirdPersonName(), oldThirdPerson.getThirdPersonName())
|
||||||
|
&& isNotChanged(thirdPerson.getThirdPersonPhone(), oldThirdPerson.getThirdPersonPhone())
|
||||||
|
&& isNotChanged(thirdPerson.getThirdPersonPhoto(), oldThirdPerson.getThirdPersonPhoto())
|
||||||
|
&& isNotChanged(thirdPerson.getThirdAuthority(), oldThirdPerson.getThirdAuthority())
|
||||||
|
&& isNotChanged(thirdPerson.getThirdIdNumber(), oldThirdPerson.getThirdIdNumber())
|
||||||
|
&& isNotChanged(thirdPerson.getThirdPersonFaceUrl(), oldThirdPerson.getThirdPersonFaceUrl())
|
||||||
|
&& isNotChanged(thirdPerson.getThirdSex(), oldThirdPerson.getThirdSex())) {
|
||||||
|
log.info("泰州人员:{} thirdPerson 泰州侧关键信息未变更,不更新ThirdPerson表泰州侧信息", thirdPerson.getThirdPersonName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
boolean updated = thirdPersonDao.lambdaUpdate()
|
boolean updated = thirdPersonDao.lambdaUpdate()
|
||||||
.eq(ThirdPerson::getThirdCode, thirdPerson.getThirdCode())
|
.eq(ThirdPerson::getThirdCode, thirdPerson.getThirdCode())
|
||||||
.eq(ThirdPerson::getThirdUniquePersonId, thirdPerson.getThirdUniquePersonId())
|
.eq(ThirdPerson::getThirdUniquePersonId, thirdPerson.getThirdUniquePersonId())
|
||||||
@ -735,15 +745,23 @@ public class TaiZhouServiceImpl implements TaiZhouService {
|
|||||||
.set(!Objects.isNull(thirdPerson.getThirdPersonFaceUrl()), ThirdPerson::getThirdPersonFaceUrl, thirdPerson.getThirdPersonFaceUrl())
|
.set(!Objects.isNull(thirdPerson.getThirdPersonFaceUrl()), ThirdPerson::getThirdPersonFaceUrl, thirdPerson.getThirdPersonFaceUrl())
|
||||||
.set(!Objects.isNull(thirdPerson.getThirdSex()), ThirdPerson::getThirdSex, thirdPerson.getThirdSex())
|
.set(!Objects.isNull(thirdPerson.getThirdSex()), ThirdPerson::getThirdSex, thirdPerson.getThirdSex())
|
||||||
.update();
|
.update();
|
||||||
|
|
||||||
// compare and log
|
// compare and log
|
||||||
if (updated) {
|
if (updated) {
|
||||||
ThirdPerson toUpdate = BeanUtil.toBean(thirdPerson, ThirdPerson.class);
|
ThirdPerson toUpdate = BeanUtil.toBean(thirdPerson, ThirdPerson.class);
|
||||||
toUpdate.setId(oldThirdPerson.getId());
|
toUpdate.setId(oldThirdPerson.getId());
|
||||||
operateLogService.save(buildOperateParam(oldThirdPerson.getPersonId(), oldThirdPerson.getPersonId(), OperateLogService.OperateType.UPDATE, toUpdate,
|
operateLogService.save(buildOperateParam(oldThirdPerson.getPersonId(), oldThirdPerson.getPersonId(), OperateLogService.OperateType.UPDATE, toUpdate,
|
||||||
"泰州用户:信息变更", new JSONObject().fluentPut("oldValue", oldThirdPerson).fluentPut("newValue", toUpdate)));
|
String.format("泰州用户 %s:信息变更", thirdPerson.getThirdPersonName()),
|
||||||
|
new JSONObject().fluentPut("oldValue", oldThirdPerson).fluentPut("newValue", toUpdate)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isNotChanged(Object oldValue, Object newValue) {
|
||||||
|
if (newValue == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return Objects.equals(oldValue, newValue);
|
||||||
|
}
|
||||||
|
|
||||||
private void convertPhone(ThirdPerson thirdPerson, TaiZhouProject taiZhouProject) {
|
private void convertPhone(ThirdPerson thirdPerson, TaiZhouProject taiZhouProject) {
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user