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> <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>

View File

@ -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) {

View File

@ -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>

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; 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;
} }
} }

View File

@ -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;
} }
} }

View File

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

View File

@ -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);
} }

View File

@ -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) {