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

Merged
dxfeng merged 1 commits from feature/dxf into develop 2 years ago

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

Loading…
Cancel
Save