From 41436e3e814a7944fac729a250cba92646028544 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 28 Aug 2024 14:20:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=EF=BC=8C=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84=E3=80=81=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E4=BF=A1=E6=81=AF=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kr/cornjob/SyncKqOrgDataJob.java | 134 ++++++++++-------- 1 file changed, 72 insertions(+), 62 deletions(-) diff --git a/src/weaver/interfaces/kr/cornjob/SyncKqOrgDataJob.java b/src/weaver/interfaces/kr/cornjob/SyncKqOrgDataJob.java index a0f51d5..e0157c3 100644 --- a/src/weaver/interfaces/kr/cornjob/SyncKqOrgDataJob.java +++ b/src/weaver/interfaces/kr/cornjob/SyncKqOrgDataJob.java @@ -6,6 +6,7 @@ import com.engine.kr.entity.sync.KqResourceData; import com.engine.kr.exception.CustomizeRunTimeException; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import weaver.common.DateUtil; import weaver.conn.RecordSet; import weaver.formmode.IgnoreCaseHashMap; import weaver.general.Util; @@ -29,15 +30,15 @@ import java.util.stream.Collectors; */ public class SyncKqOrgDataJob extends BaseCronJob { private static final String COMPANY_TABLE = "hrmcompany"; - private static final String SUB_COMPANY_TABLE = "uf_hrmsubcompany"; - private static final String DEPARTMENT_TABLE = "uf_hrmdepartment"; - private static final String RESOURCE_TABLE = "uf_hrmresource"; - - private static final boolean IS_DEV = false; + private static final String SUB_COMPANY_TABLE = "hrmsubcompany"; + private static final String DEPARTMENT_TABLE = "hrmdepartment"; + private static final String RESOURCE_TABLE = "hrmresource"; // 组织唯一代码 Map sysIdMap = new HashMap<>(); + private String syncType; + @Override public void execute() { RecordSet rs = new RecordSet(); @@ -88,45 +89,49 @@ public class SyncKqOrgDataJob extends BaseCronJob { } } - if (IS_DEV) { - // 查询人员数据 - rs.executeSqlWithDataSource("select empno,empname,empsexid,empstatusid,dptsysid,empbirthday,empidno,empgrpdate,empnormaldate,empleavedate,empmobile,emplocaladdr,emphomeaddr from rs_emp ", "KAOQIN"); - List resourceList = new ArrayList<>(); - while (rs.next()) { - KqResourceData resourceData = new KqResourceData(); - resourceData.setEmpno(rs.getString("empno")); - resourceData.setEmpname(rs.getString("empname")); - resourceData.setEmpsexid(rs.getString("empsexid")); - resourceData.setEmpstatusid(rs.getString("empstatusid")); - resourceData.setDptsysid(rs.getString("dptsysid")); - resourceData.setEmpbirthday(rs.getString("empbirthday")); - resourceData.setEmpidno(rs.getString("empidno")); - resourceData.setEmpgrpdate(rs.getString("empgrpdate")); - resourceData.setEmpnormaldate(rs.getString("empnormaldate")); - resourceData.setEmpleavedate(rs.getString("empleavedate")); - resourceData.setEmpmobile(rs.getString("empmobile")); - resourceData.setEmplocaladdr(rs.getString("emplocaladdr")); - resourceData.setEmphomeaddr(rs.getString("emphomeaddr")); - - resourceList.add(resourceData); - } + + //TODO 按照指定时间 查询人员数据 + String sql = "select empno,empname,empsexid,empstatusid,dptsysid,empbirthday,empidno,empgrpdate,empnormaldate,empleavedate,empmobile,emplocaladdr,emphomeaddr from rs_emp "; + if (!"all".equals(syncType)) { + String currentDate = DateUtil.getCurrentDate(); + sql += "where empgrpdate = '" + currentDate + "' or empleavedate = '" + currentDate + "'"; + } + rs.executeSqlWithDataSource(sql, "KAOQIN"); + List resourceList = new ArrayList<>(); + while (rs.next()) { + KqResourceData resourceData = new KqResourceData(); + resourceData.setEmpno(rs.getString("empno")); + resourceData.setEmpname(rs.getString("empname")); + resourceData.setEmpsexid(rs.getString("empsexid")); + resourceData.setEmpstatusid(rs.getString("empstatusid")); + resourceData.setDptsysid(rs.getString("dptsysid")); + resourceData.setEmpbirthday(rs.getString("empbirthday")); + resourceData.setEmpidno(rs.getString("empidno")); + resourceData.setEmpgrpdate(rs.getString("empgrpdate")); + resourceData.setEmpnormaldate(rs.getString("empnormaldate")); + resourceData.setEmpleavedate(rs.getString("empleavedate")); + resourceData.setEmpmobile(rs.getString("empmobile")); + resourceData.setEmplocaladdr(rs.getString("emplocaladdr")); + resourceData.setEmphomeaddr(rs.getString("emphomeaddr")); + + resourceList.add(resourceData); + } - // 处理人员数据 - for (KqResourceData resourceData : resourceList) { - KqOrgData kqOrgData = sysIdMap.get(resourceData.getDptsysid()); - if (null == kqOrgData || StringUtils.isBlank(kqOrgData.getOaId()) || StringUtils.isBlank(kqOrgData.getSubCompanyId())) { - // 上级部门不存在的,或者非部门下的人员,该组织下的人员跳过处理 - continue; - } - String departmentId = kqOrgData.getOaId(); - String subCompanyId = kqOrgData.getSubCompanyId(); + // 处理人员数据 + for (KqResourceData resourceData : resourceList) { + KqOrgData kqOrgData = sysIdMap.get(resourceData.getDptsysid()); + if (null == kqOrgData || StringUtils.isBlank(kqOrgData.getOaId()) || StringUtils.isBlank(kqOrgData.getSubCompanyId())) { + // 上级部门不存在的,或者非部门下的人员,该组织下的人员跳过处理 + continue; + } + String departmentId = kqOrgData.getOaId(); + String subCompanyId = kqOrgData.getSubCompanyId(); - // 只做更新,不新增 - syncResourceData(rs, resourceData, subCompanyId, departmentId); + // 只做更新,不新增 + syncResourceData(rs, resourceData, subCompanyId, departmentId); - } } rs.writeLog("考勤组织信息同步任务结束"); } catch (Exception e) { @@ -135,7 +140,7 @@ public class SyncKqOrgDataJob extends BaseCronJob { } private void dealDepartmentData(RecordSet rs, KqOrgData departmentData, Map> parentMap, String subCompanyId, String supDepId) { - //TODO 同步部门数据 + // 同步部门数据 syncDepartmentData(rs, departmentData, subCompanyId, supDepId); List departmentList = parentMap.get(departmentData.getDptprcno()); @@ -155,7 +160,7 @@ public class SyncKqOrgDataJob extends BaseCronJob { } if (StringUtils.isBlank(id)) { - // rs.writeLog("当前人员未在OA中查询到,"+JSON.toJSONString(resourceData)); + rs.writeLog("当前人员未在OA中查询到," + JSON.toJSONString(resourceData)); return; } @@ -180,6 +185,7 @@ public class SyncKqOrgDataJob extends BaseCronJob { // 更新离职日期 + rs.executeUpdate("update cus_fielddata set field16 = ? where `SCOPE` ='HrmCustomFieldByInfoType' and SCOPEID =3 and id = ?", resourceData.getEmpleavedate(), id); new ResourceComInfo().updateCache(id); } @@ -196,12 +202,12 @@ public class SyncKqOrgDataJob extends BaseCronJob { IgnoreCaseHashMap dataMap = new IgnoreCaseHashMap<>(); dataMap.put("departmentmark", departmentData.getDptname()); dataMap.put("departmentname", departmentData.getDptname()); - dataMap.put("departmentcode", departmentData.getDptprcno()); + dataMap.put("departmentcode", departmentData.getDptno()); dataMap.put("subcompanyid1", subCompanyId); dataMap.put("supdepid", supDepId); dataMap.put("canceled", departmentData.getIsdelete()); // 判断有无当前分部数据 - rs.executeQuery("select id from " + DEPARTMENT_TABLE + " where departmentcode = ? ", departmentData.getDptprcno()); + rs.executeQuery("select id from " + DEPARTMENT_TABLE + " where departmentcode = ? ", departmentData.getDptno()); if (rs.next()) { // 更新 dataMap.put("id", rs.getString("id")); @@ -210,21 +216,21 @@ public class SyncKqOrgDataJob extends BaseCronJob { // 新增 insertData(dataMap, DEPARTMENT_TABLE); } - rs.executeQuery("select id from " + DEPARTMENT_TABLE + " where departmentcode = ? ", departmentData.getDptprcno()); + rs.executeQuery("select id from " + DEPARTMENT_TABLE + " where departmentcode = ? ", departmentData.getDptno()); if (rs.next()) { // 赋值OA中的ID departmentData.setOaId(rs.getString("id")); departmentData.setSubCompanyId(subCompanyId); sysIdMap.put(departmentData.getDptsysid(), departmentData); - if(IS_DEV) { - DepartmentComInfo dci = new DepartmentComInfo(); - dci.removeCompanyCache(); - dci.addCache(departmentData.getOaId()); - HrmServiceManager hrmServiceManager = new HrmServiceManager(); - hrmServiceManager.SynInstantDepartment(departmentData.getOaId(), "2"); - MatrixUtil.updateDepartmentData(departmentData.getOaId()); - } + + DepartmentComInfo dci = new DepartmentComInfo(); + dci.removeCompanyCache(); + dci.addCache(departmentData.getOaId()); + HrmServiceManager hrmServiceManager = new HrmServiceManager(); + hrmServiceManager.SynInstantDepartment(departmentData.getOaId(), "2"); + MatrixUtil.updateDepartmentData(departmentData.getOaId()); + } else { throw new CustomizeRunTimeException("当前部门同步失败," + JSON.toJSONString(departmentData)); } @@ -243,12 +249,12 @@ public class SyncKqOrgDataJob extends BaseCronJob { IgnoreCaseHashMap dataMap = new IgnoreCaseHashMap<>(); dataMap.put("subcompanyname", subCompany.getDptname()); dataMap.put("subcompanydesc", subCompany.getDptname()); - dataMap.put("subcompanycode", subCompany.getDptprcno()); + dataMap.put("subcompanycode", subCompany.getDptno()); dataMap.put("companyid", companyId); dataMap.put("supsubcomid", "0"); dataMap.put("canceled", subCompany.getIsdelete()); // 判断有无当前分部数据 - rs.executeQuery("select id from " + SUB_COMPANY_TABLE + " where subcompanycode = ? ", subCompany.getDptprcno()); + rs.executeQuery("select id from " + SUB_COMPANY_TABLE + " where subcompanycode = ? ", subCompany.getDptno()); if (rs.next()) { // 更新 dataMap.put("id", rs.getString("id")); @@ -257,20 +263,18 @@ public class SyncKqOrgDataJob extends BaseCronJob { // 新增 insertData(dataMap, SUB_COMPANY_TABLE); } - rs.executeQuery("select id from " + SUB_COMPANY_TABLE + " where subcompanycode = ? ", subCompany.getDptprcno()); + rs.executeQuery("select id from " + SUB_COMPANY_TABLE + " where subcompanycode = ? ", subCompany.getDptno()); if (rs.next()) { // 赋值OA中的ID subCompany.setOaId(rs.getString("id")); sysIdMap.put(subCompany.getDptsysid(), subCompany); // 刷新缓存 - if (IS_DEV) { - SubCompanyComInfo sci = new SubCompanyComInfo(); - sci.removeCompanyCache(); - sci.addCache(subCompany.getOaId()); - MatrixUtil.updateSubcompayData(subCompany.getOaId()); - new weaver.hrm.appdetach.AppDetachComInfo().initSubDepAppData(); - } + SubCompanyComInfo sci = new SubCompanyComInfo(); + sci.removeCompanyCache(); + sci.addCache(subCompany.getOaId()); + MatrixUtil.updateSubcompayData(subCompany.getOaId()); + new weaver.hrm.appdetach.AppDetachComInfo().initSubDepAppData(); } else { throw new CustomizeRunTimeException("当前分部同步失败," + JSON.toJSONString(subCompany)); } @@ -370,5 +374,11 @@ public class SyncKqOrgDataJob extends BaseCronJob { } } + public String getSyncType() { + return syncType; + } + public void setSyncType(String syncType) { + this.syncType = syncType; + } }