修复并发情况下,岗位数据重复问题

pull/181/head
dxfeng 2 years ago
parent d2e1cacfa1
commit d9ea8fe266

@ -580,27 +580,30 @@ public class JobServiceImpl extends Service implements JobService {
@Override @Override
public void refresh() { public void refresh() {
//1.人员表查询 // 解决并发情况下,岗位数据重复问题
List<ResourcePO> resourcePOS = getHrmResourceMapper().selectFilterDatas(); synchronized(JobServiceImpl.class) {
//2.数据过滤 //1.人员表查询
//3.数据插入 List<ResourcePO> resourcePOS = getHrmResourceMapper().selectFilterDatas();
resourcePOS.forEach(resourcePO -> { //2.数据过滤
if (Objects.nonNull(resourcePO) && null != resourcePO.getJobtitle() && resourcePO.getJobtitle() > 0) { //3.数据插入
int count = getJobMapper().selectByConditions(resourcePO); resourcePOS.forEach(resourcePO -> {
if (count == 0) { if (Objects.nonNull(resourcePO) && null != resourcePO.getJobtitle() && resourcePO.getJobtitle() > 0) {
JobPO jobPO = JobPO.builder() int count = getJobMapper().selectByConditions(resourcePO);
.ecCompany(resourcePO.getSubcompanyid1()) if (count == 0) {
.ecDepartment(resourcePO.getDepartmentid()) JobPO jobPO = JobPO.builder()
.ecJobTitle(resourcePO.getJobtitle()) .ecCompany(resourcePO.getSubcompanyid1())
.isKey(0) .ecDepartment(resourcePO.getDepartmentid())
.deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) .ecJobTitle(resourcePO.getJobtitle())
.createTime(new Date()) .isKey(0)
.updateTime(new Date()) .deleteType(DeleteTypeEnum.NOT_DELETED.getValue())
.build(); .createTime(new Date())
getJobMapper().insertIgnoreNull(jobPO); .updateTime(new Date())
.build();
getJobMapper().insertIgnoreNull(jobPO);
}
} }
} });
}); }
} }

Loading…
Cancel
Save