feat(REQ-2960): 优化泰州人员同步机制,增加链路信息

This commit is contained in:
周敏 2024-10-21 15:54:54 +08:00
parent 8a57a46d91
commit 03be21796a
9 changed files with 177 additions and 133 deletions

View File

@ -52,6 +52,11 @@
<artifactId>axzo-log-api</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.axzo.framework.logging</groupId>
<artifactId>axzo-common-trace</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>

View File

@ -9,7 +9,7 @@ import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
@Slf4j
@SpringBootApplication(scanBasePackages = "cn.axzo")
@SpringBootApplication(scanBasePackages = {"cn.axzo", "com.axzo.framework"})
@EnableFeignClients(basePackages = {"cn.axzo"})
public class Application {
public static void main(String[] args) {

View File

@ -88,7 +88,10 @@
<groupId>cn.axzo.platform</groupId>
<artifactId>axzo-log-api</artifactId>
</dependency>
<dependency>
<groupId>cn.axzo.framework.logging</groupId>
<artifactId>axzo-common-trace</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibaba-dingtalk-service-sdk</artifactId>

View File

@ -0,0 +1,8 @@
package cn.axzo.riven.third.common;
public class MdcLogConstant {
/**
* MDC 日志 KEY
*/
public static final String CTX_LOG_ID_MDC = "ctxLogId";
}

View File

@ -1,5 +1,6 @@
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.ThirdProjectPerson;
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.taizhou.entity.TaiZhouProject;
import cn.axzo.riven.third.taizhou.service.TaiZhouService;
import cn.azxo.framework.common.logger.JobLoggerTemplate;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
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.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -29,7 +30,6 @@ import java.util.Map;
@Component
public class TaiZhouProjectPersonIncJob extends IJobHandler {
@Autowired
ThirdProjectPersonService thirdProjectPersonService;
@ -42,9 +42,13 @@ public class TaiZhouProjectPersonIncJob extends IJobHandler {
@Autowired
TaiZhouService taiZhouService;
@Autowired
JobLoggerTemplate jobLoggerTemplate;
@XxlJob("taiZhouProjectPersonIncJob")
@Override
public ReturnT<String> execute(String s) throws Exception {
return jobLoggerTemplate.execute(MdcLogConstant.CTX_LOG_ID_MDC, () -> {
log.info("taiZhouProjectPersonJob-inc start");
@ -118,5 +122,6 @@ public class TaiZhouProjectPersonIncJob extends IJobHandler {
log.info("taiZhouProjectPersonIncJob end");
return ReturnT.SUCCESS;
});
}
}

View File

@ -1,5 +1,6 @@
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.ThirdProjectPerson;
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.taizhou.entity.TaiZhouProject;
import cn.axzo.riven.third.taizhou.service.TaiZhouService;
import cn.azxo.framework.common.logger.JobLoggerTemplate;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.ImmutableList;
import com.xxl.job.core.biz.model.ReturnT;
@ -40,10 +42,12 @@ public class TaiZhouProjectPersonJob extends IJobHandler {
@Autowired
TaiZhouService taiZhouService;
@Autowired
JobLoggerTemplate jobLoggerTemplate;
@XxlJob("taiZhouProjectPersonJob")
@Override
public ReturnT<String> execute(String s) throws Exception {
return jobLoggerTemplate.execute(MdcLogConstant.CTX_LOG_ID_MDC, () -> {
log.info("taiZhouProjectPersonJob start");
//获取泰州所有的项目信息
@ -106,5 +110,6 @@ public class TaiZhouProjectPersonJob extends IJobHandler {
log.info("taiZhouProjectPersonJob end");
return ReturnT.SUCCESS;
});
}
}

View File

@ -55,7 +55,6 @@ public class ThirdProjectPersonServiceImpl implements ThirdProjectPersonService
.update();
}
}
@Override

View File

@ -119,9 +119,10 @@ public class TaiZhouClient {
RestTemplateUtils restTemplateUtils = new RestTemplateUtils(taiZhouConfig.getHttpConnectTimeout(), taiZhouConfig.getHttpReadTimeout());
if (StringUtils.hasText(requestBody)) {
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);
} else {
log.info("请求泰州住建局apiFullUrl = {}, paramReq = {}", apiFullUrl, JSON.toJSONString(paramReq));
responseEntity = restTemplateUtils.post(apiFullUrl, headers, String.class);
}

View File

@ -724,6 +724,16 @@ public class TaiZhouServiceImpl implements TaiZhouService {
}
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()
.eq(ThirdPerson::getThirdCode, thirdPerson.getThirdCode())
.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.getThirdSex()), ThirdPerson::getThirdSex, thirdPerson.getThirdSex())
.update();
// compare and log
if (updated) {
ThirdPerson toUpdate = BeanUtil.toBean(thirdPerson, ThirdPerson.class);
toUpdate.setId(oldThirdPerson.getId());
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) {