From d9ea8fe26678c7d54b4839e2ea29fed667331ccd Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 6 Jul 2023 17:03:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B9=B6=E5=8F=91=E6=83=85?= =?UTF-8?q?=E5=86=B5=E4=B8=8B=EF=BC=8C=E5=B2=97=E4=BD=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/JobServiceImpl.java | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index e6ea51a2..978d858b 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -580,27 +580,30 @@ public class JobServiceImpl extends Service implements JobService { @Override public void refresh() { - //1.人员表查询 - List 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 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); + } } - } - }); + }); + } }