From 8a9370ee9ea60a5808960029f9b5007b0778f37f Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 20 Sep 2022 18:46:05 +0800 Subject: [PATCH] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/mapper/job/JobMapper.java | 2 ++ .../organization/mapper/job/JobMapper.xml | 8 ++++++ .../cusfielddata/CusFieldDataTrigger.java | 6 +++++ .../hrmimport/HrmImportProcessE9.java | 26 ++++++++++++++++++- 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/mapper/job/JobMapper.java b/src/com/engine/organization/mapper/job/JobMapper.java index f5dbbab8..2b7f7c0b 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.java +++ b/src/com/engine/organization/mapper/job/JobMapper.java @@ -162,6 +162,8 @@ public interface JobMapper { */ Long getIdByNameAndPid(@Param("jobName") String jobName, @Param("parentCompany") Long parentCompany, @Param("parentDepartment") Long parentDepartment, @Param("parentJob") Long parentJob); + Long getIdByNameAndEcId(@Param("jobName") String jobName, @Param("ecCompany") String ecCompany, @Param("ecDepartment") String ecDepartment); + int checkRepeatNo(@Param("jobNo") String jobNo, @Param("id") Long id); /** diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 4a850d3b..31d88509 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -548,6 +548,14 @@ WHERE SCOPE = 'HrmCustomFieldByInfoType' AND SCOPEID = -1 + and ifnull(parent_job,0) = diff --git a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java index e6ef04cc..58a27efb 100644 --- a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java +++ b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java @@ -113,6 +113,12 @@ public class CusFieldDataTrigger { } } } + } else { + directionData.setField100002(null); + directionData.setField100008(null); + directionData.setField100006(null); + directionData.setField100007(null); + directionData.setField100005(null); } // field100001更新,职等职级 diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java index e42ab128..c0c62e57 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java @@ -13,6 +13,7 @@ import com.engine.hrm.util.face.bean.CheckItemBean; import com.engine.organization.entity.jclimport.po.JclImportHistoryDetailPO; import com.engine.organization.mapper.jclimport.JclImportHistoryDetailMapper; import com.engine.organization.mapper.jclimport.JclImportHistoryMapper; +import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.thread.HrmResourceTriggerRunnable; import com.engine.organization.trigger.cusfielddata.CusFieldDataTrigger; import com.engine.organization.util.db.MapperProxyFactory; @@ -1579,6 +1580,17 @@ public class HrmImportProcessE9 extends BaseBean { fielddbType = jsonObject.getString("fielddbtype"); jsonObject.put("fieldvalue", baseValues[i]); String fieldvalue = HrmFieldManager.getReallyFieldvalue(jsonObject); + // 处理自动获取时,或取到已删除的数据 + if ("field100002".equalsIgnoreCase(fieldname)) { + // 根据分部、部门,获取对应的岗位ID + recordSet.execute("select subcompanyid1,departmentid from hrmresource where id = " + id); + while (recordSet.next()) { + String ecCompany = recordSet.getString("subcompanyid1"); + String ecDepartment = recordSet.getString("departmentid"); + Long jobId = MapperProxyFactory.getProxy(JobMapper.class).getIdByNameAndEcId(baseValues[i], ecCompany, ecDepartment); + fieldvalue = null == jobId ? "" : jobId.toString(); + } + } EncryptFieldEntity encryptFieldEntity = new EncryptFieldConfigComInfo().getFieldEncryptConfig("cus_fielddata", fieldname, "HrmCustomFieldByInfoType", scopeId); if (encryptFieldEntity != null && encryptFieldEntity.getIsEncrypt().equals("1")) { @@ -1657,6 +1669,18 @@ public class HrmImportProcessE9 extends BaseBean { fielddbType = jsonObject.getString("fielddbtype"); jsonObject.put("fieldvalue", baseValues[i]); String fieldvalue = HrmFieldManager.getReallyFieldvalue(jsonObject); + // 处理自动获取时,或取到已删除的数据 + if ("field100002".equalsIgnoreCase(fieldname)) { + // 根据分部、部门,获取对应的岗位ID + recordSet.execute("select subcompanyid1,departmentid from hrmresource where id = " + id); + while (recordSet.next()) { + String ecCompany = recordSet.getString("subcompanyid1"); + String ecDepartment = recordSet.getString("departmentid"); + Long jobId = MapperProxyFactory.getProxy(JobMapper.class).getIdByNameAndEcId(baseValues[i], ecCompany, ecDepartment); + fieldvalue = null == jobId ? "" : jobId.toString(); + new BaseBean().writeLog("岗位[" + baseValues[i] + "],jobId[" + Util.null2String(jobId) + "],ecCompany[" + ecCompany + "],ecDepartment[" + ecDepartment + "]"); + } + } EncryptFieldEntity encryptFieldEntity = new EncryptFieldConfigComInfo().getFieldEncryptConfig("cus_fielddata", fieldname, "HrmCustomFieldByInfoType", scopeId); if (encryptFieldEntity != null && encryptFieldEntity.getIsEncrypt().equals("1")) { //是否需要加密 @@ -1664,7 +1688,7 @@ public class HrmImportProcessE9 extends BaseBean { } if (fieldvalue.startsWith(",")) fieldvalue = fieldvalue.substring(1); if (fieldvalue.endsWith(",")) fieldvalue = fieldvalue.substring(0, fieldvalue.length() - 1); - if (!fieldvalue.equals("")) { + if (!fieldvalue.equals("") || "field100002".equalsIgnoreCase(fieldname)) { flag = true; if (fielddbType.toLowerCase().startsWith("char") || fielddbType.toLowerCase().startsWith("varchar") || fielddbType.toLowerCase().startsWith("text")) setStr.append(",").append(baseFields[i]).append("='").append(fieldvalue).append("'");