From b49a25742a907351d8115ffa1b2c8812060c2942 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 1 Sep 2022 16:57:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A6=E5=8F=91=E5=99=A8=E3=80=81=E9=9D=9E?= =?UTF-8?q?=E6=A0=87=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/NonStandardOptController.java | 12 ++ .../organization/entity/map/JclOrgMap.java | 37 ++++++ .../mapper/jclorgmap/JclOrgMapper.java | 12 ++ .../mapper/jclorgmap/JclOrgMapper.xml | 16 +++ .../mapper/trigger/GroupTriggerMapper.java | 24 ++++ .../mapper/trigger/GroupTriggerMapper.xml | 35 ++++++ .../trigger/HrmResourceTriggerMapper.java | 17 +++ .../trigger/HrmResourceTriggerMapper.xml | 17 +++ .../service/NonStandardOptService.java | 16 +++ .../service/impl/GroupServiceImpl.java | 7 +- .../service/impl/ImportCommonServiceImpl.java | 30 ++++- .../impl/NonStandardOptServiceImpl.java | 83 ++++++++++++++ .../service/impl/SchemeServiceImpl.java | 4 +- .../thread/CompanyTriggerRunnable.java | 105 ++++++----------- .../thread/DepartmentTriggerRunnable.java | 106 ++++++------------ .../thread/GroupTriggerRunnable.java | 91 +++++++++++++++ .../thread/HrmResourceTriggerRunnable.java | 88 +++++++++++++++ .../thread/JobTriggerRunnable.java | 84 ++++---------- .../cusfielddata/CusFieldDataTrigger.java | 3 + .../hrmimport/HrmImportProcessE9.java | 5 + .../web/NonStandardOptController.java | 46 ++++++++ .../wrapper/NonStandardOptWrapper.java | 22 ++++ 22 files changed, 652 insertions(+), 208 deletions(-) create mode 100644 src/com/api/organization/web/NonStandardOptController.java create mode 100644 src/com/engine/organization/entity/map/JclOrgMap.java create mode 100644 src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java create mode 100644 src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml create mode 100644 src/com/engine/organization/mapper/trigger/GroupTriggerMapper.java create mode 100644 src/com/engine/organization/mapper/trigger/GroupTriggerMapper.xml create mode 100644 src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java create mode 100644 src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml create mode 100644 src/com/engine/organization/service/NonStandardOptService.java create mode 100644 src/com/engine/organization/service/impl/NonStandardOptServiceImpl.java create mode 100644 src/com/engine/organization/thread/GroupTriggerRunnable.java create mode 100644 src/com/engine/organization/thread/HrmResourceTriggerRunnable.java create mode 100644 src/com/engine/organization/web/NonStandardOptController.java create mode 100644 src/com/engine/organization/wrapper/NonStandardOptWrapper.java diff --git a/src/com/api/organization/web/NonStandardOptController.java b/src/com/api/organization/web/NonStandardOptController.java new file mode 100644 index 00000000..56b8fbc6 --- /dev/null +++ b/src/com/api/organization/web/NonStandardOptController.java @@ -0,0 +1,12 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @author:dxfeng + * @createTime: 2022/09/01 + * @version: 1.0 + */ +@Path("/bs/hrmorganization/nonStandard") +public class NonStandardOptController extends com.engine.organization.web.NonStandardOptController { +} diff --git a/src/com/engine/organization/entity/map/JclOrgMap.java b/src/com/engine/organization/entity/map/JclOrgMap.java new file mode 100644 index 00000000..e584c393 --- /dev/null +++ b/src/com/engine/organization/entity/map/JclOrgMap.java @@ -0,0 +1,37 @@ +package com.engine.organization.entity.map; + +import lombok.Data; + +import java.sql.Date; + +/** + * @author:dxfeng + * @createTime: 2022/09/01 + * @version: 1.0 + */ +@Data +public class JclOrgMap { + Integer id; + Integer fType; + Integer fObjId; + Integer fEcId; + String uuid; + Integer fClass; + String fClassName; + String fNumber; + String fName; + Integer fLeader; + String fLeaderImg; + String fLeaderName; + Integer fLeaderJobId; + String fLeaderJob; + String fLeaderLv; + String fLeaderSt; + Integer fParentId; + Integer fObjParentId; + Integer fPlan; + Integer fOnJob; + Integer fIsVitual; + Date fDateBegin; + Date fDateEnd; +} diff --git a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java new file mode 100644 index 00000000..0ff44758 --- /dev/null +++ b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java @@ -0,0 +1,12 @@ +package com.engine.organization.mapper.jclorgmap; + +import com.engine.organization.entity.map.JclOrgMap; + +/** + * @author:dxfeng + * @createTime: 2022/09/01 + * @version: 1.0 + */ +public interface JclOrgMapper { + int insertMap(JclOrgMap jclOrgMap); +} diff --git a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml new file mode 100644 index 00000000..df066023 --- /dev/null +++ b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml @@ -0,0 +1,16 @@ + + + + + + insert into jcl_org_map + (id, ftype, fobjid, fecid, uuid, fclass, fclassname, fnumber, fname, fleader, fleaderimg, + fleadername, fleaderjobid, fleaderjob, fleaderlv, fleaderst, fparentid, fobjparentid, + fplan, fonjob, fisvitual, fdatebegin, fdateend) + values (#{id}, #{fType}, #{fObjId}, #{fEcId}, #{uuid}, #{fClass}, #{fClassName}, #{fNumber}, #{fName}, + #{fLeader}, #{fLeaderImg}, + #{fLeaderName}, #{fLeaderJobId}, #{fLeaderJob}, #{fLeaderLv}, #{fLeaderSt}, #{fParentId}, + #{fObjParentId}, + #{fPlan}, #{fOnJob}, #{fIsVitual}, #{fDateBegin}, #{fDateEnd}) + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.java b/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.java new file mode 100644 index 00000000..1ddde191 --- /dev/null +++ b/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.java @@ -0,0 +1,24 @@ +package com.engine.organization.mapper.trigger; + + +import org.apache.ibatis.annotations.Param; + +import java.sql.Date; + +/** + * @Author dxfeng + * @Date 2022/8/30 + * @Version V1.0 + **/ +public interface GroupTriggerMapper { + + int getInfoValue(@Param("id") Integer id); + + Integer sumStaffNum(@Param("fdatebegin") Date fdatebegin); + + Integer countHrmResource(); + + int deleteMap(@Param("fobjid") Integer fobjid, @Param("fdatebegin") Date fdatebegin); + + int updateMap(@Param("fobjid") Integer fobjid, @Param("fdatebegin") Date fdatebegin, @Param("fdate") Date fdate); +} diff --git a/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.xml new file mode 100644 index 00000000..d204f765 --- /dev/null +++ b/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.xml @@ -0,0 +1,35 @@ + + + + + update jcl_org_map + set fdateend=dateadd(day,-1, #{fdate}) + where fobjid = #{fobjid} + and fdateend > #{fdatebegin} + + + delete + from jcl_org_map + where fobjid = 0 + and fdatebegin = #{fdatebegin} + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java new file mode 100644 index 00000000..0125a2cd --- /dev/null +++ b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java @@ -0,0 +1,17 @@ +package com.engine.organization.mapper.trigger; + +import com.alibaba.fastjson.JSONObject; +import org.apache.ibatis.annotations.Param; +import weaver.hrm.passwordprotection.domain.HrmResource; + +/** + * @author:dxfeng + * @createTime: 2022/09/01 + * @version: 1.0 + */ +public interface HrmResourceTriggerMapper { + HrmResource getHrmResource(@Param("id") Long id); + + JSONObject getCusFieldDataById(@Param("fObjId") Integer fObjId); + +} diff --git a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml new file mode 100644 index 00000000..37649663 --- /dev/null +++ b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/NonStandardOptService.java b/src/com/engine/organization/service/NonStandardOptService.java new file mode 100644 index 00000000..1cabae50 --- /dev/null +++ b/src/com/engine/organization/service/NonStandardOptService.java @@ -0,0 +1,16 @@ +package com.engine.organization.service; + +/** + * @author:dxfeng + * @createTime: 2022/09/01 + * @version: 1.0 + */ +public interface NonStandardOptService { + /** + * 非标开关启用、禁用后操作 + * + * @param method + * @param ids + */ + void NonStandardOpt(String method, String ids); +} diff --git a/src/com/engine/organization/service/impl/GroupServiceImpl.java b/src/com/engine/organization/service/impl/GroupServiceImpl.java index 59614035..6f215188 100644 --- a/src/com/engine/organization/service/impl/GroupServiceImpl.java +++ b/src/com/engine/organization/service/impl/GroupServiceImpl.java @@ -5,6 +5,7 @@ import com.api.browser.bean.SearchConditionItem; import com.engine.core.impl.Service; import com.engine.organization.entity.TopTab; import com.engine.organization.service.GroupService; +import com.engine.organization.thread.GroupTriggerRunnable; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; @@ -45,7 +46,7 @@ public class GroupServiceImpl extends Service implements GroupService { rs.executeQuery(sql); int colcount = rs.getColCounts(); while (rs.next()) { - Map row = new HashMap(); + Map row = new HashMap<>(); for (int i = 1; i <= colcount; i++) { row.put(rs.getColumnName(i).toLowerCase(), Util.null2String(rs.getString(i))); } @@ -81,7 +82,9 @@ public class GroupServiceImpl extends Service implements GroupService { String companydesc = (String) params.get("companydesc"); String companyweb = (String) params.get("companyweb"); RecordSet rs = new RecordSet(); - return rs.executeUpdate("update HrmCompany set COMPANYNAME = ?,COMPANYDESC=?,COMPANYWEB=? where id = ?", companyname, companydesc, companyweb, id); + boolean executeUpdate = rs.executeUpdate("update HrmCompany set COMPANYNAME = ?,COMPANYDESC=?,COMPANYWEB=? where id = ?", companyname, companydesc, companyweb, id); + new Thread(new GroupTriggerRunnable(params)).start(); + return executeUpdate; } diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 0496ae13..c595b426 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -30,6 +30,9 @@ 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.service.ImportCommonService; +import com.engine.organization.thread.CompanyTriggerRunnable; +import com.engine.organization.thread.DepartmentTriggerRunnable; +import com.engine.organization.thread.JobTriggerRunnable; import com.engine.organization.thread.OrganizationSyncEc; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.OrganizationAssert; @@ -663,6 +666,8 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ map.put("uuid", recordInfo.getUuid()); ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("JCL_ORG_COMP").params(map).build(); MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); + // 刷新组织架构图 + new Thread(new CompanyTriggerRunnable(infoParams.getId())).start(); historyDetailPO.setOperateDetail("添加成功"); historyDetailPO.setStatus("1"); } else { @@ -680,10 +685,13 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ } if (checkRepeatNo(compNo, COMPANY_TYPE, companyId)) { map.put("update_time", new Date()); - MapperProxyFactory.getProxy(ExtMapper.class).updateTable(ExtendInfoParams.builder().id(companyId).tableName("JCL_ORG_COMP").params(map).build()); map.put("id", companyId); Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, map, false).sync(); if (isThrowError(syncMap)) { + map.remove("id"); + MapperProxyFactory.getProxy(ExtMapper.class).updateTable(ExtendInfoParams.builder().id(companyId).tableName("JCL_ORG_COMP").params(map).build()); + // 刷新组织架构图 + new Thread(new CompanyTriggerRunnable(companyId)).start(); historyDetailPO.setOperateDetail("更新成功"); historyDetailPO.setStatus("1"); } else { @@ -862,6 +870,8 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ map.put("uuid", recordInfo.getUuid()); ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("JCL_ORG_DEPT").params(map).build(); MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); + // 刷新组织架构图 + new Thread(new DepartmentTriggerRunnable(infoParams.getId())).start(); map.put("id", infoParams.getId()); historyDetailPO.setOperateDetail("添加成功"); historyDetailPO.setStatus("1"); @@ -880,10 +890,13 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ } if (checkRepeatNo(deptNo, DEPARTMENT_TYPE, departmentId)) { map.put("update_time", new Date()); - MapperProxyFactory.getProxy(ExtMapper.class).updateTable(ExtendInfoParams.builder().id(departmentId).tableName("JCL_ORG_DEPT").params(map).build()); map.put("id", departmentId); Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, map, false).sync(); if (isThrowError(syncMap)) { + map.remove("id"); + MapperProxyFactory.getProxy(ExtMapper.class).updateTable(ExtendInfoParams.builder().id(departmentId).tableName("JCL_ORG_DEPT").params(map).build()); + // 刷新组织架构图 + new Thread(new DepartmentTriggerRunnable(departmentId)).start(); historyDetailPO.setOperateDetail("更新成功"); historyDetailPO.setStatus("1"); } else { @@ -1081,11 +1094,16 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ map.put("forbidden_tag", 0); } ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("JCL_ORG_JOB").params(map).build(); - MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); + map.put("jobactivityid", JobServiceImpl.JOB_ACTIVITY_ID); map.put("id", infoParams.getId()); Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.ADD, map, false).sync(); if (isThrowError(syncMap)) { + map.remove("id"); + map.remove("jobactivityid"); + MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); + // 更新组织架构图 + new Thread(new JobTriggerRunnable(jobId)).start(); historyDetailPO.setOperateDetail("添加成功"); historyDetailPO.setStatus("1"); } else { @@ -1103,11 +1121,15 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ } if (checkRepeatNo(jobNo, JOB_TYPE, jobId)) { map.put("update_time", new Date()); - MapperProxyFactory.getProxy(ExtMapper.class).updateTable(ExtendInfoParams.builder().id(jobId).tableName("JCL_ORG_JOB").params(map).build()); map.put("jobactivityid", JobServiceImpl.JOB_ACTIVITY_ID); map.put("id", jobId); Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, map, false).sync(); if (isThrowError(syncMap)) { + map.remove("id"); + map.remove("jobactivityid"); + MapperProxyFactory.getProxy(ExtMapper.class).updateTable(ExtendInfoParams.builder().id(jobId).tableName("JCL_ORG_JOB").params(map).build()); + // 更新组织架构图 + new Thread(new JobTriggerRunnable(jobId)).start(); historyDetailPO.setOperateDetail("更新成功"); historyDetailPO.setStatus("1"); } else { diff --git a/src/com/engine/organization/service/impl/NonStandardOptServiceImpl.java b/src/com/engine/organization/service/impl/NonStandardOptServiceImpl.java new file mode 100644 index 00000000..6b952291 --- /dev/null +++ b/src/com/engine/organization/service/impl/NonStandardOptServiceImpl.java @@ -0,0 +1,83 @@ +package com.engine.organization.service.impl; + +import com.engine.core.impl.Service; +import com.engine.organization.service.NonStandardOptService; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; + +import java.util.Arrays; + +/** + * @author:dxfeng + * @createTime: 2022/09/01 + * @version: 1.0 + */ +public class NonStandardOptServiceImpl extends Service implements NonStandardOptService { + private static final String NON_STANDARD_NUM = "151"; + private static final String START = "start"; + private static final String STOP = "stop"; + + @Override + public void NonStandardOpt(String method, String ids) { + if (StringUtils.isAnyBlank(ids, method)) { + return; + } + // 判断是否包含151非标号 + boolean contains = Arrays.asList(ids.split(",")).contains(NON_STANDARD_NUM); + if (contains) { + switch (method.toLowerCase()) { + case START: + Start(); + break; + case STOP: + Stop(); + break; + default: + break; + } + } + } + + private void Start() { + RecordSet rs = new RecordSet(); + // 更新人员表系统字段 + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=1,allowhide=-1 where fieldname='sex'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=-1 where fieldname='departmentid'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=-1 where fieldname='jobtitle'"); + rs.executeUpdate("update hrm_formfield set isuse=0,ismand=0,allowhide=-1 where fieldname='jobactivity'"); + rs.executeUpdate("update hrm_formfield set isuse=0,ismand=0,allowhide=-1 where fieldname='joblevel'"); + rs.executeUpdate("update hrm_formfield set isuse=0,ismand=0,allowhide=-1 where fieldname='jobcall'"); + rs.executeUpdate("update hrm_formfield set isuse=0,ismand=0,allowhide=-1 where fieldname='jobGroupId'"); + rs.executeUpdate("update hrm_formfield set isuse=0,ismand=0,allowhide=-1 where fieldname='jobactivitydesc'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=1,groupid=1,fieldorder=18 where fieldname='managerid'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=1,groupid=1,fieldorder=99 where fieldname='systemlanguage'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=1,groupid=1,fieldorder=21 where fieldname='assistantid'"); + + // 更新聚才林自定义字段 + rs.executeUpdate("update cus_formfield set ISMAND = 1, ISUSE = 1 where SCOPE = 'HrmCustomFieldByInfoType' and SCOPEID = -1 and FIELDID in(100001,100002,100003)"); + rs.executeUpdate("update cus_formfield set ISMAND = 0, ISUSE = 1 where scope = 'HrmCustomFieldByInfoType' and SCOPEID = 3 and FIELDID in(100005, 100006, 100007, 100008, 100009, 100010, 100004)"); + + + } + + private void Stop() { + RecordSet rs = new RecordSet(); + // 更新人员表系统字段 + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=1 where fieldname='sex'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=1,allowhide=-1 where fieldname='departmentid'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=1,allowhide=-1 where fieldname='jobtitle'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=1,allowhide=1 where fieldname='jobactivity'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=1 where fieldname='joblevel'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=1 where fieldname='jobcall'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=1 where fieldname='jobGroupId'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=1 where fieldname='jobactivitydesc'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=1,allowhide=-1,groupid=3,fieldorder=21 where fieldname='managerid'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=1,groupid=1,fieldorder=12 where fieldname='systemlanguage'"); + rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=1,groupid=3,fieldorder=22 where fieldname='assistantid'"); + + // 更新聚才林自定义字段 + rs.executeUpdate("update cus_formfield set ISMAND = 0, ISUSE = 0 where SCOPE = 'HrmCustomFieldByInfoType' and SCOPEID = -1 and FIELDID in(100001,100002,100003)"); + rs.executeUpdate("update cus_formfield set ISMAND = 0, ISUSE = 0 where scope = 'HrmCustomFieldByInfoType' and SCOPEID = 3 and FIELDID in(100005, 100006, 100007, 100008, 100009, 100010, 100004)"); + + } +} diff --git a/src/com/engine/organization/service/impl/SchemeServiceImpl.java b/src/com/engine/organization/service/impl/SchemeServiceImpl.java index 5b5151f4..de09e89a 100644 --- a/src/com/engine/organization/service/impl/SchemeServiceImpl.java +++ b/src/com/engine/organization/service/impl/SchemeServiceImpl.java @@ -178,8 +178,8 @@ public class SchemeServiceImpl extends Service implements SchemeService { */ private String buildSqlWhere(Map params) { DBType dbType = DBType.get(new RecordSet().getDBType()); - //String sqlWhere = " where delete_type ='0' "; - String sqlWhere = " where 1 = 1 "; + String sqlWhere = " where delete_type ='0' "; + //String sqlWhere = " where 1 = 1 "; String name = (String) params.get("schemeName"); if (StringUtils.isNotBlank(name)) { sqlWhere += " AND scheme_name " + dbType.like(name); diff --git a/src/com/engine/organization/thread/CompanyTriggerRunnable.java b/src/com/engine/organization/thread/CompanyTriggerRunnable.java index f0a44859..e1532df4 100644 --- a/src/com/engine/organization/thread/CompanyTriggerRunnable.java +++ b/src/com/engine/organization/thread/CompanyTriggerRunnable.java @@ -2,10 +2,10 @@ package com.engine.organization.thread; import com.alibaba.fastjson.JSONObject; import com.engine.organization.entity.company.po.CompPO; -import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.entity.logview.bo.FieldBaseEquator; +import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.mapper.comp.CompMapper; -import com.engine.organization.mapper.extend.ExtMapper; +import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.trigger.CompTriggerMapper; import com.engine.organization.util.OrganizationDateUtil; import com.engine.organization.util.db.MapperProxyFactory; @@ -15,9 +15,7 @@ import weaver.hrm.passwordprotection.domain.HrmResource; import java.sql.Date; import java.util.Calendar; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @author:dxfeng @@ -58,86 +56,57 @@ public class CompanyTriggerRunnable implements Runnable { } // 判断 if (diffFields.contains("compName") || diffFields.contains("compPrincipal") || diffFields.contains("parentCompany") || diffFields.contains("forbiddenTag") || diffFields.contains("deleteType")) { - Integer fType = 1; + JclOrgMap jclMap = new JclOrgMap(); + + jclMap.setFType(1); // 更新逻辑 - Integer fObjId = newCompany.getId().intValue(); - Integer id = newCompany.getId().intValue(); - String uuid = newCompany.getUuid(); - String fNumber = newCompany.getCompNo(); - String fName = newCompany.getCompName(); - Integer fLeader = newCompany.getCompPrincipal(); - Integer fParentId = null == newCompany.getParentCompany() ? 0 : newCompany.getParentCompany().intValue(); - Integer fObjParentId = null == newCompany.getParentCompany() ? 0 : newCompany.getParentCompany().intValue(); - // delete - - Integer fEcId = getCompTriggerMapper().getEcCompanyIdByUuid(uuid); - - - int fClass = 0; - String fClassName = "行政维度"; - HrmResource hrmResourceById = getCompTriggerMapper().getHrmResourceById(fLeader); - - String fLeaderImg = ""; - String fLeaderName = ""; - Integer fLeaderJobId = 0; + jclMap.setFObjId(newCompany.getId().intValue()); + jclMap.setId(newCompany.getId().intValue()); + jclMap.setUuid(newCompany.getUuid()); + jclMap.setFNumber(newCompany.getCompNo()); + jclMap.setFName(newCompany.getCompName()); + jclMap.setFLeader(newCompany.getCompPrincipal()); + jclMap.setFParentId(null == newCompany.getParentCompany() ? 0 : newCompany.getParentCompany().intValue()); + jclMap.setFObjParentId(null == newCompany.getParentCompany() ? 0 : newCompany.getParentCompany().intValue()); + jclMap.setFEcId(getCompTriggerMapper().getEcCompanyIdByUuid(jclMap.getUuid())); + + + jclMap.setFClass(0); + jclMap.setFClassName("行政维度"); + HrmResource hrmResourceById = getCompTriggerMapper().getHrmResourceById(jclMap.getFLeader()); + + if (null != hrmResourceById) { - fLeaderImg = hrmResourceById.getMessagerurl(); - fLeaderName = hrmResourceById.getLastname(); - fLeaderJobId = hrmResourceById.getJobtitle(); + jclMap.setFLeaderImg(hrmResourceById.getMessagerurl()); + jclMap.setFLeaderName(hrmResourceById.getLastname()); + jclMap.setFLeaderJobId(hrmResourceById.getJobtitle()); } - String fLeaderJob = getCompTriggerMapper().getJobTitleMarkById(fLeaderJobId); + jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId())); - JSONObject cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(fLeader); - String fLeaderSt = ""; - String fLeaderLv = ""; + JSONObject cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclMap.getFLeader()); if (null != cusFieldDataById) { - fLeaderSt = cusFieldDataById.getString("field100008"); - fLeaderLv = cusFieldDataById.getString("field100007"); + jclMap.setFLeaderSt(cusFieldDataById.getString("field100008")); + jclMap.setFLeaderLv(cusFieldDataById.getString("field100007")); } - Date fDateBegin = new Date(System.currentTimeMillis()); - Date fDateEnd = new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()); + jclMap.setFDateBegin(new Date(System.currentTimeMillis())); + jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); - Integer fPlan = getCompTriggerMapper().sumStaffNum(fDateBegin, fObjId); - Integer fonJob = getCompTriggerMapper().countHrmResource(fEcId); - int fIsVitual = 0; + jclMap.setFPlan(getCompTriggerMapper().sumStaffNum(jclMap.getFDateBegin(), jclMap.getFObjId())); + jclMap.setFOnJob(getCompTriggerMapper().countHrmResource(jclMap.getFEcId())); + jclMap.setFIsVitual(0); Calendar cal = Calendar.getInstance(); - cal.setTime(fDateBegin); + cal.setTime(jclMap.getFDateBegin()); Calendar calendar = DateUtil.addDay(cal, -1); Date time = new Date(calendar.getTime().getTime()); - getCompTriggerMapper().deleteMap(fType, fObjId, fDateBegin); - getCompTriggerMapper().updateMap(fType, fObjId, fDateBegin, time); + getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin()); + getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time); if (1 != newCompany.getDeleteType() && 1 != newCompany.getForbiddenTag()) { - Map params = new HashMap<>(); - params.put("id", id); - params.put("ftype", fType); - params.put("fobjid", fObjId); - params.put("fecid", fEcId); - params.put("uuid", uuid); - params.put("fclass", fClass); - params.put("fclassname", fClassName); - params.put("fnumber", fNumber); - params.put("fname", fName); - params.put("fleader", fLeader); - params.put("fleaderimg", fLeaderImg); - params.put("fleadername", fLeaderName); - params.put("fleaderjobid", fLeaderJobId); - params.put("fleaderjob", fLeaderJob); - params.put("fleaderlv", fLeaderLv); - params.put("fleaderst", fLeaderSt); - params.put("fparentid", fParentId); - params.put("fobjparentid", fObjParentId); - params.put("fplan", null == fPlan ? 0 : fPlan); - params.put("fonjob", fonJob); - params.put("fisvitual", fIsVitual); - params.put("fdatebegin", fDateBegin); - params.put("fdateend", fDateEnd); - ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("jcl_org_map").params(params).build(); - MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); + MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap); } diff --git a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java index 5dbb1934..293aefbf 100644 --- a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java +++ b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java @@ -2,10 +2,10 @@ package com.engine.organization.thread; import com.alibaba.fastjson.JSONObject; import com.engine.organization.entity.department.po.DepartmentPO; -import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.entity.logview.bo.FieldBaseEquator; +import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.mapper.department.DepartmentMapper; -import com.engine.organization.mapper.extend.ExtMapper; +import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.trigger.CompTriggerMapper; import com.engine.organization.mapper.trigger.DepartmentTriggerMapper; import com.engine.organization.util.OrganizationDateUtil; @@ -16,9 +16,7 @@ import weaver.hrm.passwordprotection.domain.HrmResource; import java.sql.Date; import java.util.Calendar; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @author:dxfeng @@ -63,87 +61,57 @@ public class DepartmentTriggerRunnable implements Runnable { } // 判断 if (diffFields.contains("deptName") || diffFields.contains("deptPrincipal") || diffFields.contains("parentComp") || diffFields.contains("parentDept") || diffFields.contains("forbiddenTag") || diffFields.contains("deleteType")) { - Integer fType = 2; + JclOrgMap jclMap = new JclOrgMap(); + jclMap.setFType(2); int st = 100000000; // 更新逻辑 - Integer fObjId = newDepartment.getId().intValue(); - Integer id = newDepartment.getId().intValue() + st; - String uuid = newDepartment.getUuid(); - String fNumber = newDepartment.getDeptNo(); - String fName = newDepartment.getDeptName(); - Integer fLeader = null == newDepartment.getDeptPrincipal() ? null : newDepartment.getDeptPrincipal().intValue(); - Long fParentId = null == newDepartment.getParentDept() ? newDepartment.getParentComp() : newDepartment.getParentDept() + st; - Long fObjParentId = null == newDepartment.getParentDept() ? newDepartment.getParentComp() : newDepartment.getParentDept(); - // delete - - Integer fEcId = getDepartmentTriggerMapper().getEcDepartmentIdByUuid(uuid); - - - int fClass = 0; - String fClassName = "行政维度"; - HrmResource hrmResourceById = getCompTriggerMapper().getHrmResourceById(fLeader); - - String fLeaderImg = ""; - String fLeaderName = ""; - Integer fLeaderJobId = null; + jclMap.setFObjId(newDepartment.getId().intValue()); + jclMap.setId(newDepartment.getId().intValue() + st); + jclMap.setUuid(newDepartment.getUuid()); + jclMap.setFNumber(newDepartment.getDeptNo()); + jclMap.setFName(newDepartment.getDeptName()); + jclMap.setFLeader(null == newDepartment.getDeptPrincipal() ? null : newDepartment.getDeptPrincipal().intValue()); + jclMap.setFParentId(null == newDepartment.getParentDept() ? newDepartment.getParentComp().intValue() : newDepartment.getParentDept().intValue() + st); + jclMap.setFObjParentId(null == newDepartment.getParentDept() ? newDepartment.getParentComp().intValue() : newDepartment.getParentDept().intValue()); + + jclMap.setFEcId(getDepartmentTriggerMapper().getEcDepartmentIdByUuid(jclMap.getUuid())); + + + jclMap.setFClass(0); + jclMap.setFClassName("行政维度"); + HrmResource hrmResourceById = getCompTriggerMapper().getHrmResourceById(jclMap.getFLeader()); + + if (null != hrmResourceById) { - fLeaderImg = hrmResourceById.getMessagerurl(); - fLeaderName = hrmResourceById.getLastname(); - fLeaderJobId = hrmResourceById.getJobtitle(); + jclMap.setFLeaderImg(hrmResourceById.getMessagerurl()); + jclMap.setFLeaderName(hrmResourceById.getLastname()); + jclMap.setFLeaderJobId(hrmResourceById.getJobtitle()); } - String fLeaderJob = getCompTriggerMapper().getJobTitleMarkById(fLeaderJobId); + jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId())); - JSONObject cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(fLeader); - String fLeaderSt = ""; - String fLeaderLv = ""; + JSONObject cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclMap.getFLeader()); if (null != cusFieldDataById) { - fLeaderSt = cusFieldDataById.getString("field100008"); - fLeaderLv = cusFieldDataById.getString("field100007"); + jclMap.setFLeaderSt(cusFieldDataById.getString("field100008")); + jclMap.setFLeaderLv(cusFieldDataById.getString("field100007")); } - Date fDateBegin = new Date(System.currentTimeMillis()); - Date fDateEnd = new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()); + jclMap.setFDateBegin(new Date(System.currentTimeMillis())); + jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); - Integer fPlan = getDepartmentTriggerMapper().sumStaffNum(fDateBegin, fObjId); - Integer fonJob = getDepartmentTriggerMapper().countHrmResource(fEcId); - int fIsVitual = 0; + jclMap.setFPlan(getDepartmentTriggerMapper().sumStaffNum(jclMap.getFDateBegin(), jclMap.getFObjId())); + jclMap.setFOnJob(getDepartmentTriggerMapper().countHrmResource(jclMap.getFEcId())); + jclMap.setFIsVitual(0); Calendar cal = Calendar.getInstance(); - cal.setTime(fDateBegin); + cal.setTime(jclMap.getFDateBegin()); Calendar calendar = DateUtil.addDay(cal, -1); Date time = new Date(calendar.getTime().getTime()); - getCompTriggerMapper().deleteMap(fType, fObjId, fDateBegin); - getCompTriggerMapper().updateMap(fType, fObjId, fDateBegin, time); - + getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin()); + getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time); if (1 != newDepartment.getDeleteType() && 1 != newDepartment.getForbiddenTag()) { - Map params = new HashMap<>(); - params.put("id", id); - params.put("ftype", fType); - params.put("fobjid", fObjId); - params.put("fecid", fEcId); - params.put("uuid", uuid); - params.put("fclass", fClass); - params.put("fclassname", fClassName); - params.put("fnumber", fNumber); - params.put("fname", fName); - params.put("fleader", fLeader); - params.put("fleaderimg", fLeaderImg); - params.put("fleadername", fLeaderName); - params.put("fleaderjobid", fLeaderJobId); - params.put("fleaderjob", fLeaderJob); - params.put("fleaderlv", fLeaderLv); - params.put("fleaderst", fLeaderSt); - params.put("fparentid", fParentId); - params.put("fobjparentid", fObjParentId); - params.put("fplan", null == fPlan ? 0 : fPlan); - params.put("fonjob", fonJob); - params.put("fisvitual", fIsVitual); - params.put("fdatebegin", fDateBegin); - params.put("fdateend", fDateEnd); - ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("jcl_org_map").params(params).build(); - MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); + MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap); } } } diff --git a/src/com/engine/organization/thread/GroupTriggerRunnable.java b/src/com/engine/organization/thread/GroupTriggerRunnable.java new file mode 100644 index 00000000..6c264d94 --- /dev/null +++ b/src/com/engine/organization/thread/GroupTriggerRunnable.java @@ -0,0 +1,91 @@ +package com.engine.organization.thread; + +import com.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.map.JclOrgMap; +import com.engine.organization.mapper.jclorgmap.JclOrgMapper; +import com.engine.organization.mapper.trigger.CompTriggerMapper; +import com.engine.organization.mapper.trigger.GroupTriggerMapper; +import com.engine.organization.util.OrganizationDateUtil; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; +import weaver.common.DateUtil; +import weaver.general.Util; +import weaver.hrm.passwordprotection.domain.HrmResource; + +import java.sql.Date; +import java.util.Calendar; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2022/08/30 + * @version: 1.0 + */ +public class GroupTriggerRunnable implements Runnable { + Map params; + + private CompTriggerMapper getCompTriggerMapper() { + return MapperProxyFactory.getProxy(CompTriggerMapper.class); + } + + private GroupTriggerMapper getGroupTriggerMapper() { + return MapperProxyFactory.getProxy(GroupTriggerMapper.class); + } + + public GroupTriggerRunnable(Map params) { + this.params = params; + } + + + @Override + public void run() { + JclOrgMap jclOrgMap = new JclOrgMap(); + //id = 0; + jclOrgMap.setId(0); + //ftype = 0; + jclOrgMap.setFType(0); + jclOrgMap.setFObjId(0); + jclOrgMap.setFEcId(parseString2Int(params.get("id"))); + jclOrgMap.setUuid(Util.null2String(params.get("uuid"))); + jclOrgMap.setFNumber("00"); + jclOrgMap.setFName(Util.null2String(params.get("companyname"))); + jclOrgMap.setFClass(0); + jclOrgMap.setFClassName("行政维度"); + jclOrgMap.setFLeader(getGroupTriggerMapper().getInfoValue(1)); + HrmResource hrmResourceById = getCompTriggerMapper().getHrmResourceById(jclOrgMap.getFLeader()); + if (null != hrmResourceById) { + jclOrgMap.setFLeaderImg(hrmResourceById.getMessagerurl()); + jclOrgMap.setFLeaderName(hrmResourceById.getLastname()); + jclOrgMap.setFLeaderJobId(hrmResourceById.getJobtitle()); + } + jclOrgMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclOrgMap.getFLeaderJobId())); + JSONObject cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclOrgMap.getFLeader()); + if (null != cusFieldDataById) { + jclOrgMap.setFLeaderSt(cusFieldDataById.getString("field100008")); + jclOrgMap.setFLeaderLv(cusFieldDataById.getString("field100007")); + } + jclOrgMap.setFParentId(1); + jclOrgMap.setFObjParentId(0); + jclOrgMap.setFDateBegin(new Date(System.currentTimeMillis())); + jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); + jclOrgMap.setFPlan(getGroupTriggerMapper().sumStaffNum(jclOrgMap.getFDateBegin())); + jclOrgMap.setFOnJob(getGroupTriggerMapper().countHrmResource()); + jclOrgMap.setFIsVitual(0); + Calendar cal = Calendar.getInstance(); + cal.setTime(jclOrgMap.getFDateBegin()); + Calendar calendar = DateUtil.addDay(cal, -1); + Date time = new Date(calendar.getTime().getTime()); + getGroupTriggerMapper().deleteMap(0, jclOrgMap.getFDateBegin()); + getGroupTriggerMapper().updateMap(0, jclOrgMap.getFDateBegin(), time); + + MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclOrgMap); + } + + private Integer parseString2Int(Object args) { + String s = Util.null2String(args); + if (StringUtils.isBlank(s)) { + return null; + } + return Integer.parseInt(s); + } +} diff --git a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java new file mode 100644 index 00000000..6ea82ab4 --- /dev/null +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -0,0 +1,88 @@ +package com.engine.organization.thread; + +import com.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.map.JclOrgMap; +import com.engine.organization.mapper.jclorgmap.JclOrgMapper; +import com.engine.organization.mapper.trigger.CompTriggerMapper; +import com.engine.organization.mapper.trigger.HrmResourceTriggerMapper; +import com.engine.organization.util.OrganizationDateUtil; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang.StringUtils; +import weaver.common.DateUtil; +import weaver.hrm.passwordprotection.domain.HrmResource; + +import java.sql.Date; +import java.util.Calendar; + +/** + * @author:dxfeng + * @createTime: 2022/09/01 + * @version: 1.0 + */ +public class HrmResourceTriggerRunnable implements Runnable { + Long userId; + + private CompTriggerMapper getCompTriggerMapper() { + return MapperProxyFactory.getProxy(CompTriggerMapper.class); + } + + private HrmResourceTriggerMapper getHrmResourceTriggerMapper() { + return MapperProxyFactory.getProxy(HrmResourceTriggerMapper.class); + } + + public HrmResourceTriggerRunnable(Long id) { + this.userId = id; + } + + @Override + public void run() { + int st = 100000000; + int sj = 200000000; + int sk = 300000000; + Integer delete = null; + JclOrgMap jclMap = new JclOrgMap(); + jclMap.setFType(4); + // 查询当前人员信息数据 + HrmResource hrmResource = getHrmResourceTriggerMapper().getHrmResource(userId); + if (null != hrmResource) { + jclMap.setFObjId(hrmResource.getId()); + jclMap.setId(hrmResource.getId() + sk); + jclMap.setFNumber(hrmResource.getWorkcode()); + jclMap.setFName(hrmResource.getLastname()); + delete = hrmResource.getStatus() <= 3 ? 0 : 1; + jclMap.setFLeaderImg(hrmResource.getMessagerurl()); + jclMap.setFLeaderName(hrmResource.getLastname()); + jclMap.setFLeaderJobId(hrmResource.getJobtitle()); + JSONObject cusFieldDataById = getHrmResourceTriggerMapper().getCusFieldDataById(jclMap.getFObjId()); + if (null != cusFieldDataById) { + String field100002 = cusFieldDataById.getString("field100002"); + if (StringUtils.isNotBlank(field100002)) { + int index = field100002.indexOf('_'); + jclMap.setFObjParentId(Integer.parseInt(field100002.substring(index + 1))); + jclMap.setFParentId(jclMap.getFObjParentId() + sj); + } + jclMap.setFLeaderSt(cusFieldDataById.getString("field100008")); + jclMap.setFLeaderLv(cusFieldDataById.getString("field100007")); + } + jclMap.setFClass(0); + jclMap.setFClassName("行政维度"); + jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId())); + jclMap.setFDateBegin(new Date(System.currentTimeMillis())); + jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); + jclMap.setFIsVitual(0); + + Calendar cal = Calendar.getInstance(); + cal.setTime(jclMap.getFDateBegin()); + Calendar calendar = DateUtil.addDay(cal, -1); + Date time = new Date(calendar.getTime().getTime()); + + getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin()); + getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time); + if (0 == delete) { + MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap); + } + } + + + } +} diff --git a/src/com/engine/organization/thread/JobTriggerRunnable.java b/src/com/engine/organization/thread/JobTriggerRunnable.java index 9428bfdb..e2448159 100644 --- a/src/com/engine/organization/thread/JobTriggerRunnable.java +++ b/src/com/engine/organization/thread/JobTriggerRunnable.java @@ -1,9 +1,9 @@ package com.engine.organization.thread; -import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.logview.bo.FieldBaseEquator; -import com.engine.organization.mapper.extend.ExtMapper; +import com.engine.organization.entity.map.JclOrgMap; +import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.trigger.CompTriggerMapper; import com.engine.organization.mapper.trigger.JobTriggerMapper; @@ -14,9 +14,7 @@ import weaver.common.DateUtil; import java.sql.Date; import java.util.Calendar; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @author:dxfeng @@ -61,80 +59,40 @@ public class JobTriggerRunnable implements Runnable { } // 判断 if (diffFields.contains("jobName") || diffFields.contains("parentDept") || diffFields.contains("parentJob") || diffFields.contains("forbiddenTag") || diffFields.contains("deleteType")) { + JclOrgMap jclMap = new JclOrgMap(); int st = 100000000; int sj = 200000000; - Integer fType = 3; + jclMap.setFType(3); // 更新逻辑 - Integer fObjId = newJob.getId().intValue(); - Integer id = newJob.getId().intValue() + sj; - String uuid = ""; - String fNumber = newJob.getJobNo(); - String fName = newJob.getJobName(); - Integer fLeader = null; - Integer fParentId = null == newJob.getParentJob() ? newJob.getParentDept().intValue() + st : newJob.getParentJob().intValue() + sj; - Integer fObjParentId = null == newJob.getParentJob() ? newJob.getParentDept().intValue() : newJob.getParentJob().intValue(); + jclMap.setFObjId(newJob.getId().intValue()); + jclMap.setId(newJob.getId().intValue() + sj); + jclMap.setFNumber(newJob.getJobNo()); + jclMap.setFName(newJob.getJobName()); + jclMap.setFParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() + st : newJob.getParentJob().intValue() + sj); + jclMap.setFObjParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() : newJob.getParentJob().intValue()); Integer parentdept = newJob.getParentDept().intValue(); - // delete - Integer fEcId = null; + jclMap.setFClass(0); + jclMap.setFClassName("行政维度"); + jclMap.setFDateBegin(new Date(System.currentTimeMillis())); + jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); - int fClass = 0; - String fClassName = "行政维度"; - String fLeaderImg = ""; - String fLeaderName = ""; - Integer fLeaderJobId = 0; - - - String fLeaderJob = ""; - - String fLeaderSt = ""; - String fLeaderLv = ""; - - Date fDateBegin = new Date(System.currentTimeMillis()); - Date fDateEnd = new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()); - - - Integer fPlan = getJobTriggerMapper().sumStaffNum(fDateBegin, fObjId); - Integer fonJob = getJobTriggerMapper().countHrmResource(parentdept, fName); - int fIsVitual = 0; + jclMap.setFPlan(getJobTriggerMapper().sumStaffNum(jclMap.getFDateBegin(), jclMap.getFObjId())); + jclMap.setFOnJob(getJobTriggerMapper().countHrmResource(parentdept, jclMap.getFName())); + jclMap.setFIsVitual(0); Calendar cal = Calendar.getInstance(); - cal.setTime(fDateBegin); + cal.setTime(jclMap.getFDateBegin()); Calendar calendar = DateUtil.addDay(cal, -1); Date time = new Date(calendar.getTime().getTime()); - getCompTriggerMapper().deleteMap(fType, fObjId, fDateBegin); - getCompTriggerMapper().updateMap(fType, fObjId, fDateBegin, time); + getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin()); + getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time); if (1 != newJob.getDeleteType() && 1 != newJob.getForbiddenTag()) { - Map params = new HashMap<>(); - params.put("id", id); - params.put("ftype", fType); - params.put("fobjid", fObjId); - params.put("fecid", fEcId); - params.put("uuid", uuid); - params.put("fclass", fClass); - params.put("fclassname", fClassName); - params.put("fnumber", fNumber); - params.put("fname", fName); - params.put("fleader", fLeader); - params.put("fleaderimg", fLeaderImg); - params.put("fleadername", fLeaderName); - params.put("fleaderjobid", fLeaderJobId); - params.put("fleaderjob", fLeaderJob); - params.put("fleaderlv", fLeaderLv); - params.put("fleaderst", fLeaderSt); - params.put("fparentid", fParentId); - params.put("fobjparentid", fObjParentId); - params.put("fplan", null == fPlan ? 0 : fPlan); - params.put("fonjob", fonJob); - params.put("fisvitual", fIsVitual); - params.put("fdatebegin", fDateBegin); - params.put("fdateend", fDateEnd); - ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("jcl_org_map").params(params).build(); - MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); + MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap); } diff --git a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java index 714efe42..18a34cd9 100644 --- a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java +++ b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java @@ -19,6 +19,7 @@ import com.engine.organization.mapper.scheme.GradeMapper; import com.engine.organization.mapper.scheme.LevelMapper; import com.engine.organization.mapper.scheme.SchemeMapper; import com.engine.organization.mapper.sequence.SequenceMapper; +import com.engine.organization.thread.HrmResourceTriggerRunnable; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -118,5 +119,7 @@ public class CusFieldDataTrigger { if (updateFlag) { MapperProxyFactory.getProxy(SystemDataMapper.class).updateCusFieldData(directionData); } + // 刷新组织结构图 + new Thread(new HrmResourceTriggerRunnable(id)).start(); } } diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java index c8f6dbd4..e9b0b219 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.thread.HrmResourceTriggerRunnable; import com.engine.organization.trigger.cusfielddata.CusFieldDataTrigger; import com.engine.organization.util.db.MapperProxyFactory; import com.weaver.integration.ldap.sync.oa.OaSync; @@ -817,6 +818,8 @@ public class HrmImportProcessE9 extends BaseBean { HrmFaceCheckManager.sync(id + "", HrmFaceCheckManager.getOptInsert(), "hrm_e9_import_resource", HrmFaceCheckManager.getOaResource()); new HrmDateCheck().calWorkInfo("" + id); + // 刷新组织结构图 + new Thread(new HrmResourceTriggerRunnable((long) id)).start(); } @@ -1484,6 +1487,8 @@ public class HrmImportProcessE9 extends BaseBean { } else { resultList.add(createLog(vo, "更新", "失败", "系统错误,请联系管理员")); } + // 刷新组织结构图 + new Thread(new HrmResourceTriggerRunnable((long) keyMap.get(key))).start(); } } catch (Exception e) { //数据异常 diff --git a/src/com/engine/organization/web/NonStandardOptController.java b/src/com/engine/organization/web/NonStandardOptController.java new file mode 100644 index 00000000..1395f38a --- /dev/null +++ b/src/com/engine/organization/web/NonStandardOptController.java @@ -0,0 +1,46 @@ +package com.engine.organization.web; + +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.NonStandardOptWrapper; +import weaver.general.Util; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2022/09/01 + * @version: 1.0 + */ +public class NonStandardOptController { + public NonStandardOptWrapper getNonStandardOptWrapper(User user) { + return ServiceUtil.getService(NonStandardOptWrapper.class, user); + } + + @POST + @Path("/operation") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult operation(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + String method = Util.null2String(map.get("method")); + String ids = Util.null2String(map.get("ids")); + getNonStandardOptWrapper(user).NonStandardOpt(method, ids); + return ReturnResult.successed(); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + +} diff --git a/src/com/engine/organization/wrapper/NonStandardOptWrapper.java b/src/com/engine/organization/wrapper/NonStandardOptWrapper.java new file mode 100644 index 00000000..99086c55 --- /dev/null +++ b/src/com/engine/organization/wrapper/NonStandardOptWrapper.java @@ -0,0 +1,22 @@ +package com.engine.organization.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.service.NonStandardOptService; +import com.engine.organization.service.impl.NonStandardOptServiceImpl; +import weaver.hrm.User; + +/** + * @author:dxfeng + * @createTime: 2022/09/01 + * @version: 1.0 + */ +public class NonStandardOptWrapper extends Service { + private NonStandardOptService getNonStandardOptService(User user) { + return ServiceUtil.getService(NonStandardOptServiceImpl.class, user); + } + + public void NonStandardOpt(String method, String ids) { + getNonStandardOptService(user).NonStandardOpt(method, ids); + } +}