From b1ed914ebc22c7b656599eef9bcc5107c068b85b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 19 Aug 2022 10:28:17 +0800 Subject: [PATCH 01/20] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D=EF=BC=8C=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/脚本/Mysql/0818补丁.sql | 17 +++++++++++ .../service/impl/CompServiceImpl.java | 2 +- .../thread/OrganizationRunable.java | 30 +++++++++++++++---- 3 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 docs/脚本/Mysql/0818补丁.sql diff --git a/docs/脚本/Mysql/0818补丁.sql b/docs/脚本/Mysql/0818补丁.sql new file mode 100644 index 00000000..2dd4c6c3 --- /dev/null +++ b/docs/脚本/Mysql/0818补丁.sql @@ -0,0 +1,17 @@ +update jcl_field_extendinfo set isrequired = 1 where table_name ='JCL_ORG_JOB' and field_name ='job_name'; + + +delete from SystemRightDetail where rightid =2714; +delete from SystemRightsLanguage where id =2714; +delete from SystemRights where id =2714; +delete from SystemRightToGroup where rightid =2714; +delete from SystemRightType where id =37; +delete from SystemRightGroups where id =-23; +insert into SystemRights (id,rightdesc,righttype,detachable) values (2714,'组织数据导入','37',0); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (2714,8,'Organization data import','Organization data import'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (2714,9,'組織數據導入','組織數據導入'); +insert into SystemRightsLanguage (id,languageid,rightname,rightdesc) values (2714,7,'组织数据导入','组织数据导入'); +insert into SystemRightDetail (id,rightdetailname,rightdetail,rightid) values (43998,'组织数据导入权限','DataImport:All',2714); +insert into SystemRightToGroup(rightid,groupid) values (2714,-23); +insert into SystemRightGroups (id,rightgroupmark, rightgroupname, rightgroupremark) values(-23,'ORGANIZATION','组织管理权限组','组织管理'); +insert into SystemRightType(id,rightTypeName,rightTypeDesc) VALUES (37,'组织管理','组织管理'); \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index a2abc11f..c710c247 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -199,7 +199,7 @@ public class CompServiceImpl extends Service implements CompService { OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); Map map = new HashMap<>(); map.put("id", StringUtils.join(ids, ",")); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.CANCELED, map)).start(); + new OrganizationRunable(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.CANCELED, map).run(); return getCompMapper().deleteByIds(ids); } diff --git a/src/com/engine/organization/thread/OrganizationRunable.java b/src/com/engine/organization/thread/OrganizationRunable.java index 1b6d7be2..700d2ae6 100644 --- a/src/com/engine/organization/thread/OrganizationRunable.java +++ b/src/com/engine/organization/thread/OrganizationRunable.java @@ -4,10 +4,12 @@ import com.engine.common.util.ServiceUtil; import com.engine.hrm.service.impl.HrmJobServiceImpl; import com.engine.hrm.service.impl.OrganizationServiceImpl; import com.engine.organization.entity.commom.RecordInfo; +import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.enums.OperateTypeEnum; +import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.job.JobMapper; @@ -407,17 +409,33 @@ public class OrganizationRunable implements Runnable { String forbiddenTag = Util.null2String(params.get("forbiddenTag")); List idList = new ArrayList<>(); String[] split = companyIds.split(","); - for (String s : split) { - idList.add(EcHrmRelationUtil.getEcCompanyId(s)); + if (StringUtils.isBlank(forbiddenTag)) { + long currentTimeMillis = System.currentTimeMillis(); + for (String s : split) { + // 更新名称为:名称+时间戳 + CompPO comp = MapperProxyFactory.getProxy(CompMapper.class).listById(Long.parseLong(s)); + params.put("parent_company", comp.getParentCompany()); + params.put("comp_no", comp.getCompNo()); + params.put("comp_name", comp.getCompName() + currentTimeMillis); + params.put("comp_name_short", comp.getCompNameShort() + currentTimeMillis); + params.put("show_order", comp.getShowOrder()); + updateCompany(); + idList.add(EcHrmRelationUtil.getEcCompanyId(s)); + } + } else { + for (String s : split) { + idList.add(EcHrmRelationUtil.getEcCompanyId(s)); + } } Map map = new HashMap<>(); map.put("id", StringUtils.join(idList, ",")); - if (StringUtils.isBlank(forbiddenTag) || "1".equals(forbiddenTag)) { - // 封存 - ServiceUtil.getService(OrganizationServiceImpl.class, user).doSubCompanyCancel(map, user); - } else { + + if ("0".equals(forbiddenTag)) { // 解封 ServiceUtil.getService(OrganizationServiceImpl.class, user).doSubCompanyISCanceled(map, user); + } else { + // 删除封存、禁用封存 + ServiceUtil.getService(OrganizationServiceImpl.class, user).doSubCompanyCancel(map, user); } } From 9c64467cc8e4b5a93360af725d57a3dedf67eb97 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 19 Aug 2022 10:37:05 +0800 Subject: [PATCH 02/20] =?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 --- .../service/impl/DepartmentServiceImpl.java | 2 +- .../thread/OrganizationRunable.java | 30 +++++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 82b27230..f7053a5f 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -251,7 +251,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); Map map = new HashMap<>(); map.put("id", StringUtils.join(ids, ",")); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map)).start(); + new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map).run(); return getDepartmentMapper().deleteByIds(ids); } diff --git a/src/com/engine/organization/thread/OrganizationRunable.java b/src/com/engine/organization/thread/OrganizationRunable.java index 700d2ae6..90689f41 100644 --- a/src/com/engine/organization/thread/OrganizationRunable.java +++ b/src/com/engine/organization/thread/OrganizationRunable.java @@ -5,11 +5,13 @@ import com.engine.hrm.service.impl.HrmJobServiceImpl; import com.engine.hrm.service.impl.OrganizationServiceImpl; import com.engine.organization.entity.commom.RecordInfo; import com.engine.organization.entity.company.po.CompPO; +import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.job.JobMapper; @@ -315,17 +317,33 @@ public class OrganizationRunable implements Runnable { String forbiddenTag = Util.null2String(params.get("forbiddenTag")); List idList = new ArrayList<>(); String[] split = departmentIds.split(","); - for (String s : split) { - idList.add(EcHrmRelationUtil.getEcDepartmentId(s)); + if (StringUtils.isBlank(forbiddenTag)) { + long currentTimeMillis = System.currentTimeMillis(); + for (String s : split) { + DepartmentPO departmentPO = MapperProxyFactory.getProxy(DepartmentMapper.class).getDeptById(Long.parseLong(s)); + params.put("dept_name_short", departmentPO.getDeptNameShort() + currentTimeMillis); + params.put("dept_name", departmentPO.getDeptName() + currentTimeMillis); + params.put("parent_comp", departmentPO.getParentComp()); + params.put("parent_dept", departmentPO.getParentDept()); + params.put("show_order", departmentPO.getShowOrder()); + params.put("dept_no", departmentPO.getDeptNo()); + params.put("dept_principal", departmentPO.getDeptPrincipal()); + updateDepartment(); + idList.add(EcHrmRelationUtil.getEcDepartmentId(s)); + } + } else { + for (String s : split) { + idList.add(EcHrmRelationUtil.getEcDepartmentId(s)); + } } Map map = new HashMap<>(); map.put("id", StringUtils.join(idList, ",")); - if (StringUtils.isBlank(forbiddenTag) || "1".equals(forbiddenTag)) { - // 封存 - ServiceUtil.getService(OrganizationServiceImpl.class, user).doDepartmentCancel(map, user); - } else { + if ("0".equals(forbiddenTag)) { // 解封 ServiceUtil.getService(OrganizationServiceImpl.class, user).doDepartmentISCanceled(map, user); + } else { + // 封存 + ServiceUtil.getService(OrganizationServiceImpl.class, user).doDepartmentCancel(map, user); } } From ff8660a586b4f44e25c0ee8087e3d82e28235449 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 22 Aug 2022 09:10:00 +0800 Subject: [PATCH 03/20] =?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 --- docs/脚本/Mysql/0818补丁.sql | 10 ++++++ .../organization/mapper/extend/ExtMapper.java | 3 ++ .../organization/mapper/extend/ExtMapper.xml | 5 +++ .../mapper/extend/ExtendInfoMapper.xml | 6 ++-- .../service/impl/CompServiceImpl.java | 7 +++++ .../service/impl/DepartmentServiceImpl.java | 8 ++++- .../service/impl/ImportCommonServiceImpl.java | 31 +++++++------------ .../service/impl/JobServiceImpl.java | 7 ++++- .../service/impl/StaffPlanServiceImpl.java | 12 +++++++ 9 files changed, 66 insertions(+), 23 deletions(-) diff --git a/docs/脚本/Mysql/0818补丁.sql b/docs/脚本/Mysql/0818补丁.sql index 2dd4c6c3..7c6ef079 100644 --- a/docs/脚本/Mysql/0818补丁.sql +++ b/docs/脚本/Mysql/0818补丁.sql @@ -1,4 +1,14 @@ update jcl_field_extendinfo set isrequired = 1 where table_name ='JCL_ORG_JOB' and field_name ='job_name'; +update jcl_field_extendinfo set isrequired = 1 where table_name ='JCL_ORG_JOB' and field_name ='ec_company'; +update jcl_field_extendinfo set custom_value='["browser",{"valueSpan":"行业","replaceDatas":[{"itemorderid":"63","name":"行业","id":"63","parenttitle":"客户","title":"客户-行业"}],"value":"63"}]' where table_name ='JCL_ORG_COMP' and field_name='industry' ; +update jcl_field_extendinfo set custom_value='["browser",{"valueSpan":"人力资源","replaceDatas":[{"name":"人力资源","id":"1"}],"value":"1"}]' where table_name ='JCL_ORG_COMP' and field_name='comp_principal' ; +update jcl_field_extendinfo set custom_value='["textarea","",""]' where table_name ='JCL_ORG_COMP' and field_name='description' ; +update jcl_field_extendinfo set custom_value='["browser",{"valueSpan":"人力资源","replaceDatas":[{"name":"人力资源","id":"1"}],"value":"1"}]' where table_name ='JCL_ORG_DEPT' and field_name='dept_principal' ; +update jcl_field_extendinfo set custom_value='["input","int"]' where table_name ='JCL_ORG_DEPT' and field_name='show_order' ; +update jcl_field_extendinfo set custom_value='["textarea","",""]' where table_name ='JCL_ORG_DEPT' and field_name='description' ; +update jcl_field_extendinfo set custom_value='["textarea","",""]' where table_name ='JCL_ORG_JOB' and field_name='description' ; +update jcl_field_extendinfo set custom_value='["textarea","",""]' where table_name ='JCL_ORG_JOB' and field_name='work_duty' ; +update jcl_field_extendinfo set custom_value='["textarea","",""]' where table_name ='JCL_ORG_JOB' and field_name='work_authority'; delete from SystemRightDetail where rightid =2714; diff --git a/src/com/engine/organization/mapper/extend/ExtMapper.java b/src/com/engine/organization/mapper/extend/ExtMapper.java index 7b91636a..2506e584 100644 --- a/src/com/engine/organization/mapper/extend/ExtMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtMapper.java @@ -1,6 +1,7 @@ package com.engine.organization.mapper.extend; import com.engine.organization.entity.extend.param.ExtendInfoParams; +import org.apache.ibatis.annotations.Param; import java.util.Map; @@ -51,4 +52,6 @@ public interface ExtMapper { * @return */ int updateTable(ExtendInfoParams params); + + int deleteByID(@Param("tableName") String tableName, @Param("id") long id); } diff --git a/src/com/engine/organization/mapper/extend/ExtMapper.xml b/src/com/engine/organization/mapper/extend/ExtMapper.xml index cddb6748..f2029aae 100644 --- a/src/com/engine/organization/mapper/extend/ExtMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtMapper.xml @@ -54,6 +54,11 @@ where id = #{id} + + delete + from ${tableName} + where id = #{id} + select ${fieldName} from ${tableName} + where delete_type = 0 @@ -207,6 +211,7 @@ #{id} + and is_show = '1' order by show_order diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 434bed68..f91add76 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -19,6 +19,8 @@ + + @@ -46,7 +48,9 @@ t.work_duty, t.work_authority, t.show_order, - t.forbidden_tag + t.forbidden_tag, + t.grade_id, + t.level_id - + select JCL_ORG_JOB_ID.currval from dual INSERT INTO jcl_org_job diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 28b15eaa..19b5f31e 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -273,7 +273,7 @@ public class CompServiceImpl extends Service implements CompService { if ("0".equals(groupId)) { groupId = GROUP_ID.toString(); } - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId)); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId),"1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { @@ -305,7 +305,7 @@ public class CompServiceImpl extends Service implements CompService { HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID,"1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { List items = getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_COMP, 2, extendTitle.getId() + "", "comp_no", RuleCodeType.SUBCOMPANY.getValue()); diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index de206a6c..17ffff8c 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -326,7 +326,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService if ("0".equals(groupId)) { groupId = GROUP_ID.toString(); } - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId)); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId),"1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { List items = getExtService(user).getExtForm(user, EXTEND_TYPE + "", GROUP_ID.equals(Long.parseLong(groupId)) ? JCL_ORG_DEPT : JCL_ORG_DEPTEXT, viewAttr, id, extendTitle.getId().toString(), ""); @@ -357,7 +357,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID,"1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 3a65782f..e625ca20 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -132,7 +132,7 @@ public class ExtServiceImpl extends Service implements ExtService { List> tables = new ArrayList<>(); List infoPOList = new ArrayList<>(); // 查询明细表 - List extendGroupList = getExtendGroupMapper().listGroupByPid(groupId); + List extendGroupList = getExtendGroupMapper().listGroupByPid(groupId, "1"); for (ExtendGroupPO extendGroup : extendGroupList) { infoPOList.addAll(getExtendInfoMapper().listFields(extendType, extendGroup.getId() + "", tableName, "", "1")); } @@ -188,7 +188,7 @@ public class ExtServiceImpl extends Service implements ExtService { List extendTitles = getExtendTitleMapper().getTitlesByIds(ids); Set groupIds = extendTitles.stream().map(ExtendTitlePO::getGroupId).collect(Collectors.toSet()); - List extendGroupList = getExtendGroupMapper().listByType(Integer.parseInt(extendType)); + List extendGroupList = getExtendGroupMapper().listByType(Integer.parseInt(extendType), "1"); // 拓展信息 if (CollectionUtils.isNotEmpty(extendGroupList) && CollectionUtils.isNotEmpty(groupIds)) { diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index e1e55dd4..f3719438 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -59,7 +59,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ @Override public List getTree(ModuleTypeEnum moduleTypeEnum) { Integer extendType = moduleTypeEnum.getValue(); - List extendGroupPOS = MapperProxyFactory.getProxy(ExtendGroupMapper.class).listByType(extendType); + List extendGroupPOS = MapperProxyFactory.getProxy(ExtendGroupMapper.class).listByType(extendType,null); return ExtendGroupBO.buildTypeTree(extendGroupPOS); } @@ -69,7 +69,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ Map datas = new HashMap<>(); Long groupId = Long.parseLong(groupType); String tableName = ExtendGroupBO.getTableNameByGroupPO(getExtendGroupMapper().getGroupById(groupId)); - List extendTitleList = getExtendTitleMapper().getTitlesByGroupID(groupId); + List extendTitleList = getExtendTitleMapper().getTitlesByGroupID(groupId,null); List> tabs = new ArrayList<>(); int idx = 1; for (ExtendTitlePO extendTitle : extendTitleList) { @@ -135,7 +135,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ Map datas = new HashMap<>(); Long groupType = param.getGroupType(); Set lsDelGroupId = new HashSet<>(); - List extendTitleList = getExtendTitleMapper().getTitlesByGroupID(groupType); + List extendTitleList = getExtendTitleMapper().getTitlesByGroupID(groupType,null); extendTitleList.forEach(item -> lsDelGroupId.add(item.getId())); String data = param.getData(); JSONObject jsonObject = JSON.parseObject(data); @@ -178,7 +178,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ public Map saveTitle(ExtendTitleSaveParam param) { Map datas = new HashMap<>(); - List titlesByGroupID = getExtendTitleMapper().getTitlesByGroupID(param.getGroupType()); + List titlesByGroupID = getExtendTitleMapper().getTitlesByGroupID(param.getGroupType(),null); ExtendTitlePO extendTitlePO = titlesByGroupID.stream().max(Comparator.comparing(ExtendTitlePO::getShowOrder)).orElse(ExtendTitlePO.builder().showOrder(1).build()); Set ids = titlesByGroupID.stream().map(ExtendTitlePO::getId).collect(Collectors.toSet()); ExtendTitlePO extendTitle = new ExtendTitlePO(); @@ -201,7 +201,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ @Override public void changeTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) { if (fieldTypeTreeParam.getId() == null) { - List extendGroupPOList = MapperProxyFactory.getProxy(ExtendGroupMapper.class).listByType(moduleTypeEnum.getValue()); + List extendGroupPOList = MapperProxyFactory.getProxy(ExtendGroupMapper.class).listByType(moduleTypeEnum.getValue(),null); ExtendGroupPO extendGroup = extendGroupPOList.stream().max(Comparator.comparing(ExtendGroupPO::getShowOrder)).get(); ExtendGroupPO extendGroupPO = buildExtendGroupType(moduleTypeEnum, fieldTypeTreeParam, extendGroup.getShowOrder()); MapperProxyFactory.getProxy(ExtendGroupMapper.class).insertIgnoreNull(extendGroupPO); @@ -217,7 +217,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ @Override public int deleteTitle(ExtendTitleSaveParam param) { getExtendTitleMapper().deleteExtendTitleByIds(DeleteParam.builder().ids(param.getId().toString()).build().getIds()); - List titlesByGroupID = getExtendTitleMapper().getTitlesByGroupID(param.getGroupType()); + List titlesByGroupID = getExtendTitleMapper().getTitlesByGroupID(param.getGroupType(),null); if (CollectionUtils.isEmpty(titlesByGroupID)) { // 删除整个分组 @@ -469,7 +469,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ @Override public void saveTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) { Set collect = MapperProxyFactory.getProxy(ExtendGroupMapper.class) - .listGroupByPid(fieldTypeTreeParam.getParentId()).stream().map(ExtendGroupPO::getId).collect(Collectors.toSet()); + .listGroupByPid(fieldTypeTreeParam.getParentId(),null).stream().map(ExtendGroupPO::getId).collect(Collectors.toSet()); Integer extendType = moduleTypeEnum.getValue(); List extendGroupPOS = JSONArray.parseArray(fieldTypeTreeParam.getData(), ExtendGroupPO.class); diff --git a/src/com/engine/organization/service/impl/GroupServiceImpl.java b/src/com/engine/organization/service/impl/GroupServiceImpl.java index 1588052c..fbf545c0 100644 --- a/src/com/engine/organization/service/impl/GroupServiceImpl.java +++ b/src/com/engine/organization/service/impl/GroupServiceImpl.java @@ -34,7 +34,6 @@ public class GroupServiceImpl extends Service implements GroupService { List addGroups = new ArrayList<>(); SearchConditionItem companyNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "总部名称", "companyname"); SearchConditionItem companyDescItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "总部全称", "companydesc"); - companyDescItem.setRules("required|string"); SearchConditionItem companyWebItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 1, 60, "公司网站", "companyweb"); // 赋值 diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index c2b88daa..d4cd3cd4 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -172,7 +172,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic public Map getSaveForm() { Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID,"1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_HRM, 2, extendTitle.getId() + "", null, null))); @@ -203,7 +203,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic if ("0".equals(groupId)) { groupId = GROUP_ID.toString(); } - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId)); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId),"1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 9030636b..064b2a3f 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -24,6 +24,7 @@ import com.engine.organization.entity.job.dto.JobListDTO; import com.engine.organization.entity.job.param.JobMergeParam; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.entity.scheme.po.GradePO; import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.enums.LogModuleNameEnum; @@ -36,6 +37,7 @@ import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.job.JobMapper; +import com.engine.organization.mapper.scheme.GradeMapper; import com.engine.organization.service.ExtService; import com.engine.organization.service.JobService; import com.engine.organization.thread.OrganizationRunable; @@ -248,7 +250,7 @@ public class JobServiceImpl extends Service implements JobService { HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID,"1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { List items = getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_JOB, 2, extendTitle.getId().toString(), "job_no", RuleCodeType.JOBTITLES.getValue(), "scheme_id", "parent_comp"); @@ -278,7 +280,7 @@ public class JobServiceImpl extends Service implements JobService { if ("0".equals(groupId)) { groupId = GROUP_ID.toString(); } - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId)); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId), "1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { List items = getExtService(user).getExtForm(user, EXTEND_TYPE + "", GROUP_ID.equals(Long.parseLong(groupId)) ? JCL_ORG_JOB : JCL_ORG_JOBEXT, viewAttr, id, extendTitle.getId().toString(), "scheme_id", "parent_comp"); @@ -301,6 +303,14 @@ public class JobServiceImpl extends Service implements JobService { Map apiDatas = new HashMap<>(); apiDatas.put("result", resultMap); + // 返回职等信息 + JobPO jobById = getJobMapper().getJobById(id); + if (null != jobById) { + GradePO gradeByID = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(jobById.getGradeId()); + if (null != gradeByID) { + apiDatas.put("levelIds", gradeByID.getLevelId()); + } + } return apiDatas; } From 564b30eed8d0b9353b4256f9b57031e325767c11 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 22 Aug 2022 15:04:38 +0800 Subject: [PATCH 05/20] =?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/scheme/GradeMapper.xml | 2 +- .../organization/mapper/scheme/LevelMapper.xml | 2 +- .../service/impl/DepartmentServiceImpl.java | 8 ++++++++ .../service/impl/GroupServiceImpl.java | 16 ++++++++-------- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.xml b/src/com/engine/organization/mapper/scheme/GradeMapper.xml index 9e668044..eecd8dc8 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.xml +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.xml @@ -56,7 +56,7 @@ + select fid, fname + from jcl_org_itemclass + + + + + + + + + + + + + + + + UPDATE jcl_org_item + SET fdelete = 1 + WHERE fdelete = 0 + AND fid IN + + #{id} + + + + + + UPDATE jcl_org_item + SET fdelete = 0 + WHERE fdelete = 1 + AND fid IN + + #{id} + + + + + + INSERT INTO jcl_org_item + + + fclassid, + + + fno, + + + fname, + + + fmemo, + + + fdelete, + + + creator, + + + create_time, + + + update_time, + + + + + #{fclassid}, + + + #{fno}, + + + #{fname}, + + + #{fmemo}, + + + #{fdelete}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/ResourceBasicInfoService.java b/src/com/engine/organization/service/ResourceBasicInfoService.java index 99498b3d..f9a68c12 100644 --- a/src/com/engine/organization/service/ResourceBasicInfoService.java +++ b/src/com/engine/organization/service/ResourceBasicInfoService.java @@ -1,7 +1,10 @@ package com.engine.organization.service; +import com.api.browser.bean.SearchConditionGroup; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.entity.hrmresource.po.ResourceItemPO; +import java.util.Collection; import java.util.List; import java.util.Map; @@ -25,4 +28,46 @@ public interface ResourceBasicInfoService { * @return */ List getTreeData(); + + /** + * 新增编辑表单 + * @param params + * @return + */ + List getForm(Map params); + + /** + * 删除/批量删除人员信息资料 + * @param ids + * @return + */ + int deletByIds(Collection ids); + + /** + * 恢复人员信息资料 + * @param ids + * @return + */ + int recoverByIds(Collection ids); + + /** + * 保存人员信息资料 + * @param resourceItemPO + * @return + */ + int save(ResourceItemPO resourceItemPO); + + /** + * 根据id获取人员信息资料 + * @param fid + * @return + */ + ResourceItemPO selectById(Integer fid); + + /** + * 更新人员信息资料 + * @param resourceItemPO + * @return + */ + int update(ResourceItemPO resourceItemPO); } diff --git a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java index efb3ca3e..e8464ba6 100644 --- a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java @@ -1,19 +1,29 @@ package com.engine.organization.service.impl; +import com.api.browser.bean.BrowserBean; +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.TreeData; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.entity.hrmresource.po.ResourceItemPO; import com.engine.organization.entity.hrmresource.vo.ResourceBasicInfoVO; +import com.engine.organization.mapper.hrmresource.ResourceBasicInfoMapper; import com.engine.organization.service.ResourceBasicInfoService; import com.engine.organization.util.HasRightUtil; +import com.engine.organization.util.OrganizationAssert; +import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.db.DBType; +import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; +import weaver.general.Util; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @Author weaver_cl @@ -25,6 +35,10 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas private static final String RIGHT_NAME = "ResourceBasicInfo:All"; + private ResourceBasicInfoMapper getResourceBasicInfoMapper() { + return MapperProxyFactory.getProxy(ResourceBasicInfoMapper.class); + } + @Override public Map listPage(Map params) { @@ -46,12 +60,99 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas @Override public List getTreeData() { + ArrayList treeDataList = getResourceBasicInfoMapper().getTreeData(); + TypeTreeVO build = TypeTreeVO.builder() + .childs(treeDataList.stream().map(e -> + TypeTreeVO.builder() + .domid(e.getKey()) + .key(Long.parseLong(e.getKey())) + .name(e.getTitle()) + .build()).collect(Collectors.toList())) + .haschild(true) + .domid("-1") + .key(-1L) + .name("全部类型").build(); + List typeTreeVOS = new ArrayList<>(); + typeTreeVOS.add(build); + return typeTreeVOS; + } + + @Override + public List getForm(Map params) { + + String id = Util.null2String(params.get("id")); + String fClassId = Util.null2String(params.get("fclassid")); + List selectItems = new ArrayList<>(); + List addGroups = new ArrayList<>(); + SearchConditionItem resourceTypeItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "类型", "161", "fclassid", "resourceTypeBrowser"); + resourceTypeItem.setRules("required|string"); + if (StringUtils.isNotBlank(fClassId)) { + BrowserBean browserBean = resourceTypeItem.getBrowserConditionParam(); + List> maps = getResourceBasicInfoMapper().browserDatas(DeleteParam.builder().ids(fClassId).build().getIds()); + browserBean.setReplaceDatas(maps); + resourceTypeItem.setBrowserConditionParam(browserBean); + } + + SearchConditionItem fNo = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "编号", "fno"); + fNo.setRules("required|string"); + SearchConditionItem fName = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "名称", "fname"); + fName.setRules("required|string"); + SearchConditionItem fMemo = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "说明", "fmemo"); + + if(StringUtils.isNotBlank(id)) { + ResourceItemPO resourceItemPO = getResourceBasicInfoMapper().getResourceItemByFid(Integer.parseInt(id)); + OrganizationAssert.notNull(resourceItemPO,"选择的数据不存在"); + BrowserBean browserBean = resourceTypeItem.getBrowserConditionParam(); + List> maps = getResourceBasicInfoMapper().browserDatas(DeleteParam.builder().ids(resourceItemPO.getFid().toString()).build().getIds()); + browserBean.setReplaceDatas(maps); + resourceTypeItem.setBrowserConditionParam(browserBean); + + fNo.setValue(resourceItemPO.getFno()); + fNo.setViewAttr(1); + fName.setValue(resourceItemPO.getFname()); + fMemo.setValue(resourceItemPO.getFmemo()); + } + + selectItems.add(resourceTypeItem); + selectItems.add(fNo); + selectItems.add(fName); + selectItems.add(fMemo); + addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); + return addGroups; + } + + @Override + public int deletByIds(Collection ids) { + OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); + return getResourceBasicInfoMapper().deleteByIds(ids); + } + + @Override + public int recoverByIds(Collection ids) { + OrganizationAssert.notEmpty(ids, "请选择要恢复的数据"); + return getResourceBasicInfoMapper().recoverByIds(ids); + } + + @Override + public int save(ResourceItemPO resourceItemPO) { + List list = getResourceBasicInfoMapper().selectItemByFNo(resourceItemPO.getFno()); + OrganizationAssert.isEmpty(list,"编号不允许重复"); + return getResourceBasicInfoMapper().insertIgnoreNull(resourceItemPO); + } + + @Override + public ResourceItemPO selectById(Integer fid) { return null; } + @Override + public int update(ResourceItemPO resourceItemPO) { + return 0; + } + private String buildSqlWhere(Map params) { DBType dbType = DBType.get(new RecordSet().getDBType()); - String sqlWhere = " where t.fdelete = 0 "; + String sqlWhere = " where 1 = 1 "; String fclassid = (String) params.get("fclassid"); if (StringUtils.isNotBlank(fclassid) && !"-1".equals(fclassid)) { sqlWhere += " AND t.fclassid = '" + fclassid + "'"; diff --git a/src/com/engine/organization/service/impl/SchemeServiceImpl.java b/src/com/engine/organization/service/impl/SchemeServiceImpl.java index bc310091..5b5151f4 100644 --- a/src/com/engine/organization/service/impl/SchemeServiceImpl.java +++ b/src/com/engine/organization/service/impl/SchemeServiceImpl.java @@ -178,7 +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 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/web/ResourceBasicInfoController.java b/src/com/engine/organization/web/ResourceBasicInfoController.java index 2e5d5329..6975d531 100644 --- a/src/com/engine/organization/web/ResourceBasicInfoController.java +++ b/src/com/engine/organization/web/ResourceBasicInfoController.java @@ -2,14 +2,18 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.hrmresource.po.ResourceItemPO; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.ResourceBasicInfoWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; +import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; @@ -28,6 +32,18 @@ public class ResourceBasicInfoController { return ServiceUtil.getService(ResourceBasicInfoWrapper.class,user); } + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).getHasRight()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + @GET @Path("/getTable") @@ -55,4 +71,68 @@ public class ResourceBasicInfoController { } } + @GET + @Path("/getForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).getForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + + @POST + @Path("/delete") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult delete(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).deleteByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + + @POST + @Path("/recover") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult recover(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).recoverByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @POST + @Path("/save") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult save(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ResourceItemPO resourceItemPO) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).save(resourceItemPO)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @POST + @Path("/update") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult update(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ResourceItemPO resourceItemPO) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).update(resourceItemPO)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + } diff --git a/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java b/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java index 73e7a547..e3d65d80 100644 --- a/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java +++ b/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java @@ -1,14 +1,23 @@ package com.engine.organization.wrapper; +import com.alibaba.fastjson.JSON; +import com.api.browser.bean.SearchConditionGroup; import com.engine.common.util.ServiceUtil; +import com.engine.organization.annotation.Log; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.entity.hrmresource.po.ResourceItemPO; +import com.engine.organization.enums.DeleteTypeEnum; +import com.engine.organization.enums.LogModuleNameEnum; +import com.engine.organization.enums.OperateTypeEnum; +import com.engine.organization.mapper.hrmresource.ResourceBasicInfoMapper; import com.engine.organization.service.ResourceBasicInfoService; import com.engine.organization.service.impl.ResourceBasicInfoServiceImpl; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationWrapper; +import com.engine.organization.util.db.MapperProxyFactory; import weaver.hrm.User; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @Author weaver_cl @@ -22,6 +31,10 @@ public class ResourceBasicInfoWrapper extends OrganizationWrapper { return ServiceUtil.getService(ResourceBasicInfoServiceImpl.class,user); } + private ResourceBasicInfoMapper getResourceBasicInfoMapper() { + return MapperProxyFactory.getProxy(ResourceBasicInfoMapper.class); + } + public Map getResourceBasicInfo(Map params) { return getResourceBasicInfoService(user).listPage(params); } @@ -29,4 +42,72 @@ public class ResourceBasicInfoWrapper extends OrganizationWrapper { public List getTreeData() { return getResourceBasicInfoService(user).getTreeData(); } + + + public List getForm(Map params) { + return getResourceBasicInfoService(user).getForm(params); + } + + public Map getHasRight() { + Map btnDatas = new HashMap<>(); + ArrayList topMenuList = new ArrayList<>(); + ArrayList rightMenuList = new ArrayList<>(); + // 新增 + topMenuList.add(MenuBtn.builder().isBatch("0").isTop("1").menuFun("addItemClass").menuIcon("icon-coms-New-Flow").menuName("新增类型").type("BTN_AddItemClass").build()); + topMenuList.add(MenuBtn.builder().isBatch("0").isTop("1").menuFun("editItemClass").menuIcon("icon-coms-edit").menuName("修改类型").type("BTN_EditItemClass").build()); + topMenuList.add(MenuBtn.builder().isBatch("0").isTop("1").menuFun("delItemClass").menuIcon("icon-coms-Delete").menuName("删除类型").type("BTN_DelItemClass").build()); + topMenuList.add(MenuBtn.topMenu_addNew()); + // 批量删除 + topMenuList.add(MenuBtn.topMenu_batchDelete()); + btnDatas.put("topMenu", topMenuList); + // 新增 + rightMenuList.add(MenuBtn.rightMenu_addNew()); + // 日志 + rightMenuList.add(MenuBtn.rightMenu_btnLog()); + // 显示列定制 + rightMenuList.add(MenuBtn.rightMenu_btnColumn()); + btnDatas.put("rightMenu", rightMenuList); + return btnDatas; + } + + @Log(operateType = OperateTypeEnum.DELETE, operateModule = LogModuleNameEnum.RESOURCE, operateDesc = "删除人员信息资料") + public int deleteByIds(Collection ids) { + List resourceItemPOS = getResourceBasicInfoMapper().selectItemByIds(ids); + int result = getResourceBasicInfoService(user).deletByIds(ids); + for (ResourceItemPO resourceItemPO : resourceItemPOS) { + writeOperateLog(new Object() {}.getClass(),resourceItemPO.getFname(), JSON.toJSONString(ids),"删除人员信息资料"); + } + return result; + } + + + @Log(operateType = OperateTypeEnum.RECOVER, operateModule = LogModuleNameEnum.RESOURCE, operateDesc = "恢复人员信息资料") + public int recoverByIds(Collection ids) { + List resourceItemPOS = getResourceBasicInfoMapper().selectItemByIds(ids); + int result = getResourceBasicInfoService(user).recoverByIds(ids); + for (ResourceItemPO resourceItemPO : resourceItemPOS) { + writeOperateLog(new Object() {}.getClass(),resourceItemPO.getFname(), JSON.toJSONString(ids),"恢复人员信息资料"); + } + return result; + } + + @Log(operateType = OperateTypeEnum.ADD, operateModule = LogModuleNameEnum.RESOURCE, operateDesc = "新增人员信息资料") + public int save(ResourceItemPO resourceItemPO) { + resourceItemPO.setCreateTime(new Date()); + resourceItemPO.setCreator((long)user.getUID()); + resourceItemPO.setFdelete(DeleteTypeEnum.NOT_DELETED.getValue()); + int result = getResourceBasicInfoService(user).save(resourceItemPO); + writeOperateLog(new Object() {}.getClass(),resourceItemPO.getFname(),JSON.toJSONString(resourceItemPO),"新增人员信息资料"); + return result; + } + + @Log(operateType = OperateTypeEnum.UPDATE, operateModule = LogModuleNameEnum.RESOURCE, operateDesc = "更新人员信息资料") + public int update(ResourceItemPO resourceItemPO) { + resourceItemPO.setUpdateTime(new Date()); + ResourceItemPO resourceItem = getResourceBasicInfoService(user).selectById(resourceItemPO.getFid()); + int result = getResourceBasicInfoService(user).update(resourceItemPO); + writeOperateLog(new Object() {}.getClass(),resourceItem.getFname(),JSON.toJSONString(resourceItemPO),resourceItem, + getResourceBasicInfoService(user).selectById(resourceItemPO.getFid())); + return result; + } } From 6bfc6eae275bf6f8bcfe3d5b696143272eca5b3c Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Fri, 26 Aug 2022 15:27:51 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hrmresource/vo/ResourceBasicInfoVO.java | 11 ++++++--- .../hrmresource/ResourceBasicInfoMapper.java | 4 +++- .../hrmresource/ResourceBasicInfoMapper.xml | 24 ++++++++++++------- .../impl/ResourceBasicInfoServiceImpl.java | 10 ++++---- .../engine/organization/util/ConfigTrans.java | 14 +++++++++++ 5 files changed, 46 insertions(+), 17 deletions(-) diff --git a/src/com/engine/organization/entity/hrmresource/vo/ResourceBasicInfoVO.java b/src/com/engine/organization/entity/hrmresource/vo/ResourceBasicInfoVO.java index 698adc08..abf878d6 100644 --- a/src/com/engine/organization/entity/hrmresource/vo/ResourceBasicInfoVO.java +++ b/src/com/engine/organization/entity/hrmresource/vo/ResourceBasicInfoVO.java @@ -1,6 +1,7 @@ package com.engine.organization.entity.hrmresource.vo; import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.OperatePopedom; import com.engine.organization.annotation.OrganizationTable; import com.engine.organization.annotation.OrganizationTableColumn; import com.engine.organization.annotation.OrganizationTableOperate; @@ -29,13 +30,17 @@ import lombok.NoArgsConstructor; fromSql = "FROM jcl_org_item t ", orderby = "fno", sortway = "asc", - primarykey = "id", + primarykey = "fid", operates = { @OrganizationTableOperate(index = "0", text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除"), @OrganizationTableOperate(index = "2", text = "恢复") }, - tableType = WeaTableType.CHECKBOX + tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatResourceOperates", otherpara = "column:fdelete" + ) + + ) public class ResourceBasicInfoVO { @@ -43,7 +48,7 @@ public class ResourceBasicInfoVO { * 主键 */ @OrganizationTableColumn(column = "fid", display = false) - private Integer id; + private Integer fId; /** diff --git a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java index e91833fd..a12a8c3e 100644 --- a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java +++ b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java @@ -33,7 +33,9 @@ public interface ResourceBasicInfoMapper { int recoverByIds(@Param("ids")Collection ids); - List selectItemByFNo(@Param("fno")String fno); + List selectItemByFNo(@Param("fno")String fno,@Param("fclassid")Integer fclassid); int insertIgnoreNull(ResourceItemPO resourceItemPO); + + int update(ResourceItemPO resourceItemPO); } diff --git a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml index 4fedb574..8825c0e2 100644 --- a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml +++ b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml @@ -12,8 +12,8 @@ - - + + select fid,fclassid,fno,fname,fmemo,fdelete,creator,create_time,update_time from jcl_org_item - where fdelete = 0 - AND fno = #{fno} + where fno = #{fno} + and fclassid = #{fclassid} @@ -81,8 +81,8 @@ - + INSERT INTO jcl_org_item @@ -143,5 +143,13 @@ - + + update jcl_org_item + + fname=#{fname}, + fmemo=#{fmemo}, + update_time=#{updateTime}, + + WHERE fid = #{fid} AND fdelete = 0 + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java index e8464ba6..1c18f783 100644 --- a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java @@ -80,13 +80,13 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas @Override public List getForm(Map params) { - String id = Util.null2String(params.get("id")); + String id = Util.null2String(params.get("fid")); String fClassId = Util.null2String(params.get("fclassid")); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); SearchConditionItem resourceTypeItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "类型", "161", "fclassid", "resourceTypeBrowser"); resourceTypeItem.setRules("required|string"); - if (StringUtils.isNotBlank(fClassId)) { + if (StringUtils.isNotBlank(fClassId) && !"-1".equals(fClassId)) { BrowserBean browserBean = resourceTypeItem.getBrowserConditionParam(); List> maps = getResourceBasicInfoMapper().browserDatas(DeleteParam.builder().ids(fClassId).build().getIds()); browserBean.setReplaceDatas(maps); @@ -135,19 +135,19 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas @Override public int save(ResourceItemPO resourceItemPO) { - List list = getResourceBasicInfoMapper().selectItemByFNo(resourceItemPO.getFno()); + List list = getResourceBasicInfoMapper().selectItemByFNo(resourceItemPO.getFno(),resourceItemPO.getFclassid()); OrganizationAssert.isEmpty(list,"编号不允许重复"); return getResourceBasicInfoMapper().insertIgnoreNull(resourceItemPO); } @Override public ResourceItemPO selectById(Integer fid) { - return null; + return getResourceBasicInfoMapper().getResourceItemByFid(fid); } @Override public int update(ResourceItemPO resourceItemPO) { - return 0; + return getResourceBasicInfoMapper().update(resourceItemPO); } private String buildSqlWhere(Map params) { diff --git a/src/com/engine/organization/util/ConfigTrans.java b/src/com/engine/organization/util/ConfigTrans.java index 0efbc1b9..a520f459 100644 --- a/src/com/engine/organization/util/ConfigTrans.java +++ b/src/com/engine/organization/util/ConfigTrans.java @@ -42,4 +42,18 @@ public class ConfigTrans { return list; } + public static List formatResourceOperates(String id,String isDefault) { + List list = Lists.newArrayList(); + if ("0".equals(isDefault)) { + list.add(true); + list.add(true); + list.add(false); + } else { + list.add(false); + list.add(false); + list.add(true); + } + return list; + } + } From 8968e44e09e27a2d799c45620f2b4ec4e01acc0c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 26 Aug 2022 15:36:06 +0800 Subject: [PATCH 13/20] =?UTF-8?q?=E5=88=86=E9=83=A8=E3=80=81=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E3=80=81=E5=B2=97=E4=BD=8D=E5=90=8C=E6=AD=A5EC?= =?UTF-8?q?=E9=87=8D=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/脚本/Mysql/浏览按钮mysql.sql | 2 +- docs/脚本/SqlServer/浏览按钮sqlserver.sql | 2 +- .../mapper/department/DepartmentMapper.xml | 17 +- .../service/impl/CompServiceImpl.java | 36 +- .../service/impl/DepartmentServiceImpl.java | 66 ++- .../service/impl/ExtServiceImpl.java | 1 + .../service/impl/ImportCommonServiceImpl.java | 96 +++- .../service/impl/JobServiceImpl.java | 32 +- .../thread/OrganizationSyncEc.java | 468 ++++++++++++++++++ 9 files changed, 643 insertions(+), 77 deletions(-) create mode 100644 src/com/engine/organization/thread/OrganizationSyncEc.java diff --git a/docs/脚本/Mysql/浏览按钮mysql.sql b/docs/脚本/Mysql/浏览按钮mysql.sql index 55e6f365..9b7e65cc 100644 --- a/docs/脚本/Mysql/浏览按钮mysql.sql +++ b/docs/脚本/Mysql/浏览按钮mysql.sql @@ -40,7 +40,7 @@ select @datashowset_id:= max(id) from datashowset; INSERT INTO datashowcacheset(showname, subcompanyid, isopencache, Createdate, createtime, Updatedate, Updatetime) VALUES ('PostInfoBrowser', '0', 0, @current_date, @current_time, NULL, NULL); INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(@datashowset_id, '编号', 'post_info_no', '', 1, 1, uuid(), NULL); INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(@datashowset_id, '名称', 'post_info_name', '', 0, 2, uuid(), NULL); -INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(@datashowset_id, '职务分类', 'post_id', '', 0, 3, uuid(), NULL); +INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(@datashowset_id, '职务分类', 'post_id', 'select post_name from jcl_org_post where id = {?currentvalue}', 0, 3, uuid(), NULL); INSERT INTO datasearchparam (MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES(@datashowset_id, '编号', 'post_info_no', '2', '', 1, uuid(), ''); INSERT INTO datasearchparam (MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES(@datashowset_id, '名称', 'post_info_name', '2', '', 2, uuid(), ''); diff --git a/docs/脚本/SqlServer/浏览按钮sqlserver.sql b/docs/脚本/SqlServer/浏览按钮sqlserver.sql index 7ccf88ad..dfdda47c 100644 --- a/docs/脚本/SqlServer/浏览按钮sqlserver.sql +++ b/docs/脚本/SqlServer/浏览按钮sqlserver.sql @@ -60,7 +60,7 @@ set @datashowset_id = (select max(id) from datashowset) INSERT INTO datashowcacheset(showname, subcompanyid, isopencache, Createdate, createtime, Updatedate, Updatetime) VALUES ('PostInfoBrowser', '0', 0, @current_date, @current_time, NULL, NULL) INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(@datashowset_id, '编号', 'post_info_no', '', 1, 1, newid(), NULL) INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(@datashowset_id, '名称', 'post_info_name', '', 0, 2, newid(), NULL) -INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(@datashowset_id, '职务分类', 'post_id', '', 0, 3, newid(), NULL) +INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(@datashowset_id, '职务分类', 'post_id', 'select post_name from jcl_org_post where id = {?currentvalue}', 0, 3, newid(), NULL) INSERT INTO datasearchparam (MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES(@datashowset_id, '编号', 'post_info_no', '2', '', 1, newid(), '') INSERT INTO datasearchparam (MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES(@datashowset_id, '名称', 'post_info_name', '2', '', 2, newid(), '') GO diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index b4da89d8..4221b0fe 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -223,6 +223,9 @@ description, + + uuid, + forbidden_tag, @@ -262,11 +265,15 @@ #{description}, + + #{uuid}, + 0, - - + + select JCL_ORG_DEPT_ID.currval from dual INSERT INTO jcl_org_dept @@ -308,6 +315,9 @@ description, + + uuid, + forbidden_tag, @@ -347,6 +357,9 @@ #{description}, + + #{uuid}, + 0, diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 19b5f31e..1143da41 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -13,6 +13,7 @@ import com.engine.hrm.entity.RuleCodeType; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.codesetting.po.CodeRulePO; +import com.engine.organization.entity.commom.RecordInfo; import com.engine.organization.entity.company.bo.CompBO; import com.engine.organization.entity.company.dto.CompListDTO; import com.engine.organization.entity.company.param.CompSearchParam; @@ -26,9 +27,10 @@ import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.extend.ExtDTMapper; import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; +import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.service.CompService; import com.engine.organization.service.ExtService; -import com.engine.organization.thread.OrganizationRunable; +import com.engine.organization.thread.OrganizationSyncEc; import com.engine.organization.util.*; import com.engine.organization.util.coderule.CodeRuleUtil; import com.engine.organization.util.db.MapperProxyFactory; @@ -73,6 +75,8 @@ public class CompServiceImpl extends Service implements CompService { private static final String RIGHT_NAME = "Company:All"; + private static final String HRM_COMPANY = "hrmsubcompany"; + /** * 公司/分部主表title指定ID */ @@ -86,6 +90,10 @@ public class CompServiceImpl extends Service implements CompService { return MapperProxyFactory.getProxy(ExtendTitleMapper.class); } + private SystemDataMapper getSystemDataMapper() { + return MapperProxyFactory.getProxy(SystemDataMapper.class); + } + private ExtService getExtService(User user) { return ServiceUtil.getService(ExtServiceImpl.class, user); } @@ -153,10 +161,14 @@ public class CompServiceImpl extends Service implements CompService { } params.put("show_order", maxShowOrder + 1); } - Long id = getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, "", null); - params.put("id", id); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.ADD, params)).start(); - return id; + Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.ADD, params).sync(); + String ecCompanyID = Util.null2String(syncMap.get("id")); + OrganizationAssert.isTrue(StringUtils.isNotBlank(ecCompanyID), syncMap.get("message").toString()); + // 查询UUID + RecordInfo recordInfo = getSystemDataMapper().getHrmObjectByID(HRM_COMPANY, ecCompanyID); + params.put("uuid", recordInfo.getUuid()); + return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, "", null); + } @Override @@ -166,7 +178,7 @@ public class CompServiceImpl extends Service implements CompService { Map map = new HashMap<>(); map.put("id", compPO.getId()); map.put("forbiddenTag", compPO.getForbiddenTag()); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.CANCELED, map)).start(); + new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.CANCELED, map).sync(); return getCompMapper().updateForbiddenTagById(compPO); } @@ -184,7 +196,7 @@ public class CompServiceImpl extends Service implements CompService { compNo = repeatDetermine(compNo); params.put("comp_no", compNo); } - new Thread(new OrganizationRunable(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params)).start(); + new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); // 更新主表数据 getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, "", searchParam.getId()); // 更新主表拓展表 @@ -200,13 +212,13 @@ public class CompServiceImpl extends Service implements CompService { HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); Map map = new HashMap<>(); - map.put("id", StringUtils.join(ids, ",")); for (Long id : ids) { + map.put("id", id); + new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.CANCELED, map).sync(); // 删除拓展表、明细表 MapperProxyFactory.getProxy(ExtMapper.class).deleteByID("jcl_org_compext", id); MapperProxyFactory.getProxy(ExtDTMapper.class).deleteByMainID("jcl_org_compext_dt1", id); } - new OrganizationRunable(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.CANCELED, map).run(); return getCompMapper().deleteByIds(ids); } @@ -273,7 +285,7 @@ public class CompServiceImpl extends Service implements CompService { if ("0".equals(groupId)) { groupId = GROUP_ID.toString(); } - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId),"1"); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId), "1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { @@ -305,7 +317,7 @@ public class CompServiceImpl extends Service implements CompService { HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID,"1"); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID, "1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { List items = getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_COMP, 2, extendTitle.getId() + "", "comp_no", RuleCodeType.SUBCOMPANY.getValue()); @@ -351,7 +363,7 @@ public class CompServiceImpl extends Service implements CompService { map.put("comp_name_short", compPO.getCompNameShort()); map.put("comp_name", compPO.getCompName()); map.put("show_order", compPO.getShowOrder()); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, map)).start(); + new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, map).sync(); return getCompMapper().updateBaseComp(compPO); } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 0e006e6d..914f2634 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -11,6 +11,7 @@ import com.engine.core.impl.Service; import com.engine.hrm.entity.RuleCodeType; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.codesetting.po.CodeRulePO; +import com.engine.organization.entity.commom.RecordInfo; import com.engine.organization.entity.company.bo.CompBO; import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.bo.DepartmentBO; @@ -32,10 +33,11 @@ import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.extend.ExtDTMapper; import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; +import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.service.DepartmentService; import com.engine.organization.service.ExtService; -import com.engine.organization.thread.OrganizationRunable; +import com.engine.organization.thread.OrganizationSyncEc; import com.engine.organization.util.*; import com.engine.organization.util.coderule.CodeRuleUtil; import com.engine.organization.util.db.MapperProxyFactory; @@ -87,6 +89,8 @@ public class DepartmentServiceImpl extends Service implements DepartmentService */ private static final Long GROUP_ID = 2L; + private static final String HRM_DEPARTMENT = "hrmdepartment"; + private static DepartmentMapper getDepartmentMapper() { return MapperProxyFactory.getProxy(DepartmentMapper.class); @@ -100,6 +104,10 @@ public class DepartmentServiceImpl extends Service implements DepartmentService return MapperProxyFactory.getProxy(ExtendTitleMapper.class); } + private SystemDataMapper getSystemDataMapper() { + return MapperProxyFactory.getProxy(SystemDataMapper.class); + } + private ExtService getExtService(User user) { return ServiceUtil.getService(ExtServiceImpl.class, user); } @@ -204,10 +212,13 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } params.put("show_order", maxShowOrder + 1); } - Long departmentId = getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", null); - params.put("id", departmentId); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.ADD, params)).start(); - return departmentId; + Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.ADD, params).sync(); + String ecCompanyID = Util.null2String(syncMap.get("id")); + OrganizationAssert.isTrue(StringUtils.isNotBlank(ecCompanyID), syncMap.get("message").toString()); + // 查询UUID + RecordInfo recordInfo = getSystemDataMapper().getHrmObjectByID(HRM_DEPARTMENT, ecCompanyID); + params.put("uuid", recordInfo.getUuid()); + return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", null); } @Override @@ -217,7 +228,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService Map map = new HashMap<>(); map.put("id", departmentPO.getId()); map.put("forbiddenTag", departmentPO.getForbiddenTag()); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map)).start(); + new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map).sync(); return getDepartmentMapper().updateForbiddenTagById(departmentPO); } @@ -236,9 +247,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptNo = repeatDetermine(deptNo); params.put("dept_no", deptNo); } + new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, params).sync(); // 更新主表数据 getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", searchParam.getId()); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, params)).start(); // 更新主表拓展表 getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, params, groupId, searchParam.getId()); //更新明细表 @@ -252,13 +263,15 @@ public class DepartmentServiceImpl extends Service implements DepartmentService HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); Map map = new HashMap<>(); - map.put("id", StringUtils.join(ids, ",")); + for (Long id : ids) { + map.put("id", id); + new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map).sync(); // 删除拓展表、明细表 MapperProxyFactory.getProxy(ExtMapper.class).deleteByID("jcl_org_deptext", id); MapperProxyFactory.getProxy(ExtDTMapper.class).deleteByMainID("jcl_org_deptext_dt1", id); } - new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map).run(); + return getDepartmentMapper().deleteByIds(ids); } @@ -326,7 +339,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService if ("0".equals(groupId)) { groupId = GROUP_ID.toString(); } - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId),"1"); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId), "1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { List items = getExtService(user).getExtForm(user, EXTEND_TYPE + "", GROUP_ID.equals(Long.parseLong(groupId)) ? JCL_ORG_DEPT : JCL_ORG_DEPTEXT, viewAttr, id, extendTitle.getId().toString(), ""); @@ -357,7 +370,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID,"1"); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID, "1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { @@ -416,9 +429,16 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptById.setParentDept(null); // 显示顺序字段 deptById.setShowOrder(maxShowOrder + i + 1); - insertCount += getDepartmentMapper().insertIgnoreNull(deptById); + deptById.setCreateTime(new Date()); // 新增EC表部门 - addEcDepartment(deptById); + Map syncMap = addEcDepartment(deptById); + String ecDepartmentID = Util.null2String(syncMap.get("id")); + OrganizationAssert.isTrue(StringUtils.isNotBlank(ecDepartmentID), syncMap.get("message").toString()); + // 查询UUID + RecordInfo recordInfo = getSystemDataMapper().getHrmObjectByID(HRM_DEPARTMENT, ecDepartmentID); + deptById.setUuid(recordInfo.getUuid()); + insertCount += getDepartmentMapper().insertIgnoreNull(deptById); + // 新增岗位信息 if ("1".equals(copyParam.getCopyJob())) { List jobPOS = MapperProxyFactory.getProxy(JobMapper.class).listJobsByDepartmentId(idList.get(i)); @@ -476,11 +496,12 @@ public class DepartmentServiceImpl extends Service implements DepartmentService mergeDepartment.setParentComp(parentComp); // 禁用 mergeDepartment.setForbiddenTag(1); - updateCount += getDepartmentMapper().updateBaseDept(mergeDepartment); // 更新EC表部门 updateEcDepartment(mergeDepartment); // 封存EC表部门 cancelEcDepartment(mergeDepartment.getId()); + + updateCount = getDepartmentMapper().updateBaseDept(mergeDepartment); // 合并后部门及子部门禁用 List deptList = getDepartmentMapper().getDeptListByPId(mergeParam.getId()); forbiddenChildTag(parentComp, deptList); @@ -536,10 +557,10 @@ public class DepartmentServiceImpl extends Service implements DepartmentService DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(department); deptById.setParentComp(parentDepartment.getParentComp()); } - int updateBaseDept = getDepartmentMapper().updateBaseDept(deptById); // 更新EC部门 updateEcDepartment(deptById); - return updateBaseDept; + + return getDepartmentMapper().updateBaseDept(deptById); } /** @@ -553,11 +574,12 @@ public class DepartmentServiceImpl extends Service implements DepartmentService for (DepartmentPO departmentPO : deptList) { departmentPO.setParentComp(parentComp); departmentPO.setForbiddenTag(1); - getDepartmentMapper().updateBaseDept(departmentPO); // 更新EC表部门 updateEcDepartment(departmentPO); // 封存EC表部门 cancelEcDepartment(departmentPO.getId()); + + getDepartmentMapper().updateBaseDept(departmentPO); List childList = getDepartmentMapper().getDeptListByPId(departmentPO.getId()); forbiddenChildTag(parentComp, childList); } @@ -689,15 +711,16 @@ public class DepartmentServiceImpl extends Service implements DepartmentService map.put("dept_no", departmentPO.getDeptNo()); map.put("dept_principal", departmentPO.getDeptPrincipal()); map.put("id", departmentPO.getId()); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, map)).start(); + new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, map).sync(); } /** * 新增EC表部门 * * @param departmentPO + * @return */ - private void addEcDepartment(DepartmentPO departmentPO) { + private Map addEcDepartment(DepartmentPO departmentPO) { Map map = new HashMap<>(); map.put("dept_name_short", departmentPO.getDeptNameShort()); map.put("dept_name", departmentPO.getDeptName()); @@ -707,7 +730,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService map.put("dept_no", departmentPO.getDeptNo()); map.put("dept_principal", departmentPO.getDeptPrincipal()); map.put("id", departmentPO.getId()); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.ADD, map)).start(); + return new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.ADD, map).sync(); } /** @@ -718,7 +741,8 @@ public class DepartmentServiceImpl extends Service implements DepartmentService private void cancelEcDepartment(Long id) { Map map = new HashMap<>(); map.put("id", id); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map)).start(); + map.put("forbiddenTag", 1); + new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map).sync(); } private void addDisableIds(Set disableIds, List deptListByPId) { diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index e625ca20..ab1f7ff1 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -207,6 +207,7 @@ public class ExtServiceImpl extends Service implements ExtService { Map map = new HashMap<>(); // 遍历Map Map collect = extInfoPOList.stream().collect(Collectors.toMap(ExtendInfoPO::getFieldName, item -> item)); + collect.put("uuid", new ExtendInfoPO()); for (Map.Entry entry : params.entrySet()) { String key = entry.getKey(); if (collect.containsKey(key)) { diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 463905b3..0496ae13 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -11,6 +11,7 @@ import com.engine.core.impl.Service; import com.engine.hrm.entity.FieldSelectOptionBean; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.SelectOptionParam; +import com.engine.organization.entity.commom.RecordInfo; import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; @@ -29,7 +30,7 @@ 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.OrganizationRunable; +import com.engine.organization.thread.OrganizationSyncEc; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; @@ -75,6 +76,8 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ private static final Long JOB_TYPE = 3L; private static final String RIGHT_NAME = "DataImport:All"; + private static final String HRM_COMPANY = "hrmsubcompany"; + private static final String HRM_DEPARTMENT = "hrmdepartment"; private ExtendInfoMapper getExtendInfoMapper() { @@ -651,12 +654,21 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if (StringUtils.isBlank(Util.null2String(map.get("forbidden_tag")))) { map.put("forbidden_tag", 0); } - ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("JCL_ORG_COMP").params(map).build(); - MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); - map.put("id", infoParams.getId()); - new OrganizationRunable(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.ADD, map).run(); - historyDetailPO.setOperateDetail("添加成功"); - historyDetailPO.setStatus("1"); + + Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.ADD, map, false).sync(); + if (isThrowError(syncMap)) { + // 查询UUID + String ecCompanyID = Util.null2String(syncMap.get("id")); + RecordInfo recordInfo = getSystemDataMapper().getHrmObjectByID(HRM_COMPANY, ecCompanyID); + map.put("uuid", recordInfo.getUuid()); + ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("JCL_ORG_COMP").params(map).build(); + MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); + historyDetailPO.setOperateDetail("添加成功"); + historyDetailPO.setStatus("1"); + } else { + historyDetailPO.setOperateDetail(Util.null2String(syncMap.get("message"))); + historyDetailPO.setStatus("0"); + } saveImportDetailLog(historyDetailPO); } else if ("update".equals(operateType)) { // 查询对应ID @@ -670,9 +682,14 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ 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); - new OrganizationRunable(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, map).run(); - historyDetailPO.setOperateDetail("更新成功"); - historyDetailPO.setStatus("1"); + Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, map, false).sync(); + if (isThrowError(syncMap)) { + historyDetailPO.setOperateDetail("更新成功"); + historyDetailPO.setStatus("1"); + } else { + historyDetailPO.setOperateDetail(Util.null2String(syncMap.get("message"))); + historyDetailPO.setStatus("0"); + } saveImportDetailLog(historyDetailPO); } else { historyDetailPO.setOperateDetail(compNo + "编号已存在"); @@ -836,12 +853,22 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if (StringUtils.isBlank(Util.null2String(map.get("forbidden_tag")))) { map.put("forbidden_tag", 0); } - ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("JCL_ORG_DEPT").params(map).build(); - MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); - map.put("id", infoParams.getId()); - new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.ADD, map).run(); - historyDetailPO.setOperateDetail("添加成功"); - historyDetailPO.setStatus("1"); + + Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.ADD, map, false).sync(); + if (isThrowError(syncMap)) { + // 查询UUID + String ecDepartmentID = Util.null2String(syncMap.get("id")); + RecordInfo recordInfo = getSystemDataMapper().getHrmObjectByID(HRM_DEPARTMENT, ecDepartmentID); + map.put("uuid", recordInfo.getUuid()); + ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("JCL_ORG_DEPT").params(map).build(); + MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); + map.put("id", infoParams.getId()); + historyDetailPO.setOperateDetail("添加成功"); + historyDetailPO.setStatus("1"); + } else { + historyDetailPO.setOperateDetail(Util.null2String(syncMap.get("message"))); + historyDetailPO.setStatus("0"); + } saveImportDetailLog(historyDetailPO); } else if ("update".equals(operateType)) { // 查询对应ID @@ -855,9 +882,14 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ 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); - new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, map).run(); - historyDetailPO.setOperateDetail("更新成功"); - historyDetailPO.setStatus("1"); + Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, map, false).sync(); + if (isThrowError(syncMap)) { + historyDetailPO.setOperateDetail("更新成功"); + historyDetailPO.setStatus("1"); + } else { + historyDetailPO.setOperateDetail(Util.null2String(syncMap.get("message"))); + historyDetailPO.setStatus("0"); + } saveImportDetailLog(historyDetailPO); } else { historyDetailPO.setOperateDetail(deptNo + "编号已存在"); @@ -1052,9 +1084,14 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); map.put("jobactivityid", JobServiceImpl.JOB_ACTIVITY_ID); map.put("id", infoParams.getId()); - new OrganizationRunable(user, LogModuleNameEnum.JOB, OperateTypeEnum.ADD, map).run(); - historyDetailPO.setOperateDetail("添加成功"); - historyDetailPO.setStatus("1"); + Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.ADD, map, false).sync(); + if (isThrowError(syncMap)) { + historyDetailPO.setOperateDetail("添加成功"); + historyDetailPO.setStatus("1"); + } else { + historyDetailPO.setOperateDetail(Util.null2String(syncMap.get("message"))); + historyDetailPO.setStatus("0"); + } saveImportDetailLog(historyDetailPO); } else if ("update".equals(operateType)) { // 查询对应ID @@ -1069,9 +1106,14 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ 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); - new OrganizationRunable(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, map).run(); - historyDetailPO.setOperateDetail("更新成功"); - historyDetailPO.setStatus("1"); + Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, map, false).sync(); + if (isThrowError(syncMap)) { + historyDetailPO.setOperateDetail("更新成功"); + historyDetailPO.setStatus("1"); + } else { + historyDetailPO.setOperateDetail(Util.null2String(syncMap.get("message"))); + historyDetailPO.setStatus("0"); + } saveImportDetailLog(historyDetailPO); } else { historyDetailPO.setOperateDetail(jobNo + "编号已存在"); @@ -1275,4 +1317,8 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ return excelPath; } + private boolean isThrowError(Map resultMap) { + return "1".equals(Util.null2String(resultMap.get("status"))) || "1".equals(Util.null2String(resultMap.get("sign"))); + } + } diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 0ece142b..76b736ad 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -40,7 +40,7 @@ import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.scheme.GradeMapper; import com.engine.organization.service.ExtService; import com.engine.organization.service.JobService; -import com.engine.organization.thread.OrganizationRunable; +import com.engine.organization.thread.OrganizationSyncEc; import com.engine.organization.util.*; import com.engine.organization.util.coderule.CodeRuleUtil; import com.engine.organization.util.db.MapperProxyFactory; @@ -340,11 +340,9 @@ public class JobServiceImpl extends Service implements JobService { } params.put("show_order", maxShowOrder + 1); } - Long jobId = getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOB, params, "", null); params.put("jobactivityid", JOB_ACTIVITY_ID); - params.put("id", jobId); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.JOB, OperateTypeEnum.ADD, params)).start(); - return jobId; + new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.ADD, params).sync(); + return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOB, params, "", null); } @Override @@ -374,7 +372,7 @@ public class JobServiceImpl extends Service implements JobService { params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(jclDepartment.getParentComp() + "")); } params.put("jobactivityid", JOB_ACTIVITY_ID); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, params, oldJobPO)).start(); + new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, params, oldJobPO).sync(); getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOB, params, "", searchParam.getId()); // 更新主表拓展表 getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, searchParam.getId()); @@ -407,7 +405,7 @@ public class JobServiceImpl extends Service implements JobService { public int updateForbiddenTagById(JobSearchParam params) { HasRightUtil.hasRight(user, RIGHT_NAME, false); JobPO jobPO = JobPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).jobName(getJobMapper().getJobById(params.getId()).getJobName()).build(); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.JOB, OperateTypeEnum.CANCELED, null, jobPO)).start(); + new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.CANCELED, null, jobPO).sync(); return getJobMapper().updateForbiddenTagById(jobPO.getId(), jobPO.getForbiddenTag()); } @@ -416,14 +414,14 @@ public class JobServiceImpl extends Service implements JobService { HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); List jobsByIds = getJobMapper().getJobsByIds(ids); - int delete = getJobMapper().deleteByIds(ids); for (JobPO jobsById : jobsByIds) { + jobsById.setForbiddenTag(1); + new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.CANCELED, null, jobsById).sync(); // 删除拓展表、明细表 MapperProxyFactory.getProxy(ExtMapper.class).deleteByID("jcl_org_jobext", jobsById.getId()); MapperProxyFactory.getProxy(ExtDTMapper.class).deleteByMainID("jcl_org_jobext_dt1", jobsById.getId()); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.JOB, OperateTypeEnum.CANCELED, null, jobsById)).start(); } - return delete; + return getJobMapper().deleteByIds(ids); } @Override @@ -439,7 +437,7 @@ public class JobServiceImpl extends Service implements JobService { public List getMergeForm() { List addGroups = new ArrayList<>(); List condition = new ArrayList<>(); - SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "合并到岗位", "161", "targetJob", "jobBrowser"); + SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "合并到岗位", "666", "targetJob", ""); deptBrowserItem.setRules("required"); condition.add(deptBrowserItem); addGroups.add(new SearchConditionGroup("", true, condition)); @@ -449,7 +447,7 @@ public class JobServiceImpl extends Service implements JobService { @Override public int mergeJob(JobMergeParam mergeParam) { HasRightUtil.hasRight(user, RIGHT_NAME, false); - int updateCount = 0; + int updateCount; OrganizationAssert.notNull(mergeParam.getTargetJob(), "请选择需要合并的部门"); Set disableIds = new HashSet<>(); disableIds.add(mergeParam.getId()); @@ -467,8 +465,12 @@ public class JobServiceImpl extends Service implements JobService { // 原岗位禁用 JobPO mergeJob = getJobMapper().getJobById(mergeParam.getId()); mergeJob.setForbiddenTag(1); - updateCount += getJobMapper().updateBaseJob(mergeJob); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.JOB, OperateTypeEnum.CANCELED, null, mergeJob)).start(); + mergeJob.setParentComp(targetJob.getParentComp()); + mergeJob.setParentDept(targetJob.getParentDept()); + mergeJob.setParentJob(targetJob.getId()); + new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.CANCELED, null, mergeJob).sync(); + + updateCount = getJobMapper().updateBaseJob(mergeJob); //TODO 合并该刚岗位下的人员 // 合并后岗位及子岗位禁用 @@ -644,8 +646,8 @@ public class JobServiceImpl extends Service implements JobService { job.setParentDept(parentDept); job.setParentJob(parentJob); job.setForbiddenTag(1); + new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.CANCELED, null, job).sync(); getJobMapper().updateBaseJob(job); - new Thread(new OrganizationRunable(user, LogModuleNameEnum.JOB, OperateTypeEnum.CANCELED, null, job)).start(); List childJobs = getJobMapper().getJobsByPid(job.getId()); forbiddenChildTag(parentComp, parentDept, job.getId(), childJobs); } diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java new file mode 100644 index 00000000..3d99738e --- /dev/null +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -0,0 +1,468 @@ +package com.engine.organization.thread; + +import com.engine.common.util.ServiceUtil; +import com.engine.hrm.service.impl.HrmJobServiceImpl; +import com.engine.hrm.service.impl.OrganizationServiceImpl; +import com.engine.organization.entity.commom.RecordInfo; +import com.engine.organization.entity.company.po.CompPO; +import com.engine.organization.entity.department.po.DepartmentPO; +import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.enums.LogModuleNameEnum; +import com.engine.organization.enums.OperateTypeEnum; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.mapper.department.DepartmentMapper; +import com.engine.organization.mapper.extend.ExtMapper; +import com.engine.organization.mapper.hrmresource.SystemDataMapper; +import com.engine.organization.mapper.job.JobMapper; +import com.engine.organization.util.OrganizationAssert; +import com.engine.organization.util.db.MapperProxyFactory; +import com.engine.organization.util.relation.EcHrmRelationUtil; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import weaver.general.Util; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author:dxfeng + * @createTime: 2022/08/26 + * @version: 1.0 + */ +public class OrganizationSyncEc { + private LogModuleNameEnum moduleName; + private OperateTypeEnum operateType; + private Map params; + private User user; + private JobPO oldJobPO; + Map resultMap; + private boolean throwException = true; + + private static final String HRM_COMPANY = "hrmsubcompany"; + private static final String HRM_DEPARTMENT = "hrmdepartment"; + + private static final String JCL_COMPANY = "jcl_org_comp"; + private static final String JCL_DEPARTMENT = "jcl_org_dept"; + + private SystemDataMapper getSystemDataMapper() { + return MapperProxyFactory.getProxy(SystemDataMapper.class); + } + + private ExtMapper getExtMapper() { + return MapperProxyFactory.getProxy(ExtMapper.class); + } + + public OrganizationSyncEc(User user, LogModuleNameEnum moduleName, OperateTypeEnum operateType, Map params) { + this.moduleName = moduleName; + this.operateType = operateType; + this.params = params; + this.user = user; + } + + public OrganizationSyncEc(User user, LogModuleNameEnum moduleName, OperateTypeEnum operateType, Map params, boolean throwException) { + this.moduleName = moduleName; + this.operateType = operateType; + this.params = params; + this.user = user; + this.throwException = throwException; + } + + public OrganizationSyncEc(User user, LogModuleNameEnum moduleName, OperateTypeEnum operateType, Map params, JobPO oldJobPO) { + this.moduleName = moduleName; + this.operateType = operateType; + this.params = params; + this.user = user; + this.oldJobPO = oldJobPO; + } + + public Map sync() { + switch (moduleName) { + case COMPANY: + refreshCompany(); + break; + case DEPARTMENT: + refreshDepartment(); + break; + case JOB: + refreshJob(); + break; + default: + break; + } + OrganizationAssert.isTrue(throwException && ("1".equals(Util.null2String(resultMap.get("status"))) || "1".equals(Util.null2String(resultMap.get("sign")))), Util.null2String(resultMap.get("message"))); + return resultMap; + } + + + /** + * 刷新HrmSubCompany表数据 + */ + private void refreshCompany() { + switch (operateType) { + case ADD: + addCompany(); + break; + case UPDATE: + updateCompany(); + break; + case CANCELED: + cancelCompany(); + break; + default: + break; + } + } + + /** + * 刷新HrmDepartment表数据 + */ + private void refreshDepartment() { + switch (operateType) { + case ADD: + addDepartment(); + break; + case UPDATE: + updateDepartment(); + break; + case CANCELED: + cancelDepartment(); + break; + default: + break; + } + } + + private void refreshJob() { + switch (operateType) { + case ADD: + addJob(); + break; + case UPDATE: + updateJob(); + break; + case CANCELED: + cancelJob(); + break; + default: + break; + } + } + + /** + * 新增岗位 + * + *

+ * 1、EC表HrmJobTitles + *

+ * 2、系统中新建“聚才林”、“默认职务”(sql写入) + *

+ * 3、检索岗位名称jobtitlename,如果已存在,判断是否封存,对已封存数据解封操作 + *

+ * 4、如果不存在,在“聚才林--默认职务”下新建岗位 + */ + private void addJob() { + // 判断是否存在同名岗位、存在不做处理,不存在,在“默认职务分类--默认职务”下新建岗位 + String jobName = Util.null2String(params.get("job_name")); + RecordInfo hrmJobActivity = getSystemDataMapper().getHrmJobTitleByName(jobName); + Map map = new HashMap<>(); + //存在且已封存,对岗位解封 + if (null != hrmJobActivity) { + map.put("ids", hrmJobActivity.getId()); + map.put("canceled", "docanceled"); + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).doCanceled(map, user); + } else { + // 不存在则新建职务 + map.put("operateIp", Util.null2String(user.getLoginip())); + map.put("jobtitlemark", jobName); + map.put("jobtitlename", jobName); + map.put("jobactivityid", Util.null2String(params.get("jobactivityid"))); + map.put("jobresponsibility", Util.null2String(params.get("work_duty"))); + map.put("jobcompetency", Util.null2String(params.get("work_authority"))); + map.put("jobtitleremark", Util.null2String(params.get("description"))); + map.put("jobtitlecode", Util.null2String(params.get("job_no"))); + + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).addJobTitle(map, user); + } + } + + /** + * 更新岗位 + */ + private void updateJob() { + Long jclJobId = oldJobPO.getId(); + String oldName = oldJobPO.getJobName(); + + String newName = Util.null2String(params.get("job_name")); + RecordInfo oldHrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(oldName); + + Map map = new HashMap<>(); + // 修改前不存在共用 + if (EcHrmRelationUtil.isNotExistJob(oldName, jclJobId)) { + // 修改后不存在共用、直接修改EC岗位表数据 + if (EcHrmRelationUtil.isNotExistJob(newName, jclJobId)) { + // 查询ec表ID + RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(oldName); + map.put("id", Util.null2String(hrmJobTitle.getId())); + map.put("operateIp", Util.null2String(user.getLoginip())); + map.put("jobtitlemark", newName); + map.put("jobtitlename", newName); + map.put("jobactivityid", Util.null2String(params.get("jobactivityid"))); + map.put("jobresponsibility", Util.null2String(params.get("work_duty"))); + map.put("jobcompetency", Util.null2String(params.get("work_authority"))); + map.put("jobtitleremark", Util.null2String(params.get("description"))); + map.put("jobtitlecode", Util.null2String(params.get("job_no"))); + // 修改岗位表数据 + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).editJobTitle(map, user); + } else { + // 修改后存在共用、不修改岗位表数据,更新对应人员的岗位信息为当前岗位的ID + RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(newName); + // 查询原分部、原岗位下的人员,并更新岗位ID + List hrmResourceIds = getSystemDataMapper().getHrmResourceIds(oldJobPO.getParentDept(), oldHrmJobTitle.getId()); + getSystemDataMapper().updateResourceJobTitleByIds(Util.null2String(hrmJobTitle.getId()), hrmResourceIds); + // 封存原名称岗位 + map.clear(); + map.put("ids", oldHrmJobTitle.getId()); + map.put("canceled", "canceled"); + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).doCanceled(map, user); + } + } else { + // 修改前存在共用,不对原有数据进行操作。 + + // 修改后不存在共用、新建岗位,更新原有岗位下人员的岗位ID + if (EcHrmRelationUtil.isNotExistJob(newName, jclJobId)) { + // 不存在则新建职务 + map.put("operateIp", Util.null2String(user.getLoginip())); + map.put("jobtitlemark", newName); + map.put("jobtitlename", newName); + map.put("jobactivityid", Util.null2String(params.get("jobactivityid"))); + map.put("jobresponsibility", Util.null2String(params.get("work_duty"))); + map.put("jobcompetency", Util.null2String(params.get("work_authority"))); + map.put("jobtitleremark", Util.null2String(params.get("description"))); + map.put("jobtitlecode", Util.null2String(params.get("job_no"))); + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).addJobTitle(map, user); + } else { + this.resultMap = new HashMap<>(); + this.resultMap.put("sign", "1"); + } + // 查询原分部、原岗位下的人员,并更新岗位ID + RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(newName); + List hrmResourceIds = getSystemDataMapper().getHrmResourceIds(oldJobPO.getParentDept(), oldHrmJobTitle.getId()); + if (CollectionUtils.isNotEmpty(hrmResourceIds)) { + getSystemDataMapper().updateResourceJobTitleByIds(Util.null2String(hrmJobTitle.getId()), hrmResourceIds); + } + } + } + + /** + * 封存、解封岗位 + */ + private void cancelJob() { + Map map = new HashMap<>(); + RecordInfo hrmJobTitleByName = getSystemDataMapper().getHrmJobTitleByName(oldJobPO.getJobName()); + if (0 == oldJobPO.getForbiddenTag()) { + // 启用 + map.put("ids", hrmJobTitleByName.getId()); + map.put("canceled", "docanceled"); + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).doCanceled(map, user); + } else { + // 禁用 + List jobPOS = MapperProxyFactory.getProxy(JobMapper.class).listByNameExceptId(oldJobPO.getJobName(), oldJobPO.getId()); + // 不存在共用 + if (CollectionUtils.isEmpty(jobPOS)) { + map.put("ids", hrmJobTitleByName.getId()); + map.put("canceled", "canceled"); + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).doCanceled(map, user); + } else { + List collect = jobPOS.stream().filter(item -> 0 == item.getForbiddenTag()).collect(Collectors.toList()); + // 不存在非禁用 + if (CollectionUtils.isEmpty(collect)) { + map.put("ids", hrmJobTitleByName.getId()); + map.put("canceled", "canceled"); + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).doCanceled(map, user); + } + } + } + } + + /** + * 新增部门 + */ + private void addDepartment() { + Map map = new HashMap<>(); + map.put("departmentmark", Util.null2String(params.get("dept_name_short"))); + map.put("departmentname", Util.null2String(params.get("dept_name"))); + + // 上级分部通过UUID联查ec表ID + String parentCompany = Util.null2String(params.get("parent_comp")); + if (StringUtils.isNotBlank(parentCompany)) { + map.put("subcompanyid1", EcHrmRelationUtil.getEcCompanyId(parentCompany)); + } + + // 上级部门通过UUID联查ec表ID + String parentDepartment = Util.null2String(params.get("parent_dept")); + if (StringUtils.isNotBlank(parentDepartment)) { + map.put("supdepid", EcHrmRelationUtil.getEcDepartmentId(parentDepartment)); + } + + map.put("showorder", Util.null2String(params.get("show_order"))); + map.put("departmentcode", Util.null2String(params.get("dept_no"))); + map.put("coadjutant", Util.null2String(params.get("dept_principal"))); + this.resultMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).addDepartment(map, user); + // 更新jcl_org_dept表 uuid字段 + //if ("1".equals(Util.null2String(resultMap.get("status"))) && null != resultMap.get("id")) { + // updateJclUUID(Util.null2String(resultMap.get("id")), HRM_DEPARTMENT, JCL_DEPARTMENT); + //} + } + + /** + * 封存、解封部门 + */ + private void cancelDepartment() { + String departmentIds = Util.null2String(params.get("id")); + String forbiddenTag = Util.null2String(params.get("forbiddenTag")); + List idList = new ArrayList<>(); + String[] split = departmentIds.split(","); + if (StringUtils.isBlank(forbiddenTag)) { + long currentTimeMillis = System.currentTimeMillis(); + for (String s : split) { + DepartmentPO departmentPO = MapperProxyFactory.getProxy(DepartmentMapper.class).getDeptById(Long.parseLong(s)); + params.put("dept_name_short", departmentPO.getDeptNameShort() + currentTimeMillis); + params.put("dept_name", departmentPO.getDeptName() + currentTimeMillis); + params.put("parent_comp", departmentPO.getParentComp()); + params.put("parent_dept", departmentPO.getParentDept()); + params.put("show_order", departmentPO.getShowOrder()); + params.put("dept_no", departmentPO.getDeptNo()); + params.put("dept_principal", departmentPO.getDeptPrincipal()); + updateDepartment(); + idList.add(EcHrmRelationUtil.getEcDepartmentId(s)); + } + } else { + for (String s : split) { + idList.add(EcHrmRelationUtil.getEcDepartmentId(s)); + } + } + Map map = new HashMap<>(); + map.put("id", StringUtils.join(idList, ",")); + if ("0".equals(forbiddenTag)) { + // 解封 + this.resultMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).doDepartmentISCanceled(map, user); + } else { + // 封存 + this.resultMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).doDepartmentCancel(map, user); + } + } + + /** + * 更新部门 + */ + private void updateDepartment() { + Map map = new HashMap<>(); + // 获取ec表ID + map.put("id", EcHrmRelationUtil.getEcDepartmentId(Util.null2String(params.get("id")))); + map.put("departmentmark", Util.null2String(params.get("dept_name_short"))); + map.put("departmentname", Util.null2String(params.get("dept_name"))); + + // 上级分部通过UUID联查ec表ID + String parentCompany = Util.null2String(params.get("parent_comp")); + if (StringUtils.isNotBlank(parentCompany)) { + map.put("subcompanyid1", EcHrmRelationUtil.getEcCompanyId(parentCompany)); + } + + // 上级部门通过UUID联查ec表ID + String parentDepartment = Util.null2String(params.get("parent_dept")); + if (StringUtils.isNotBlank(parentDepartment)) { + map.put("supdepid", EcHrmRelationUtil.getEcDepartmentId(parentDepartment)); + } + + map.put("showorder", Util.null2String(params.get("show_order"))); + map.put("departmentcode", Util.null2String(params.get("dept_no"))); + map.put("coadjutant", Util.null2String(params.get("dept_principal"))); + this.resultMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).editDepartment(map, user); + } + + /** + * 新增分部 + */ + private void addCompany() { + Map map = new HashMap<>(); + map.put("subcompanyname", Util.null2String(params.get("comp_name_short"))); + + // 上级分部通过UUID联查ec表ID + String parentCompany = Util.null2String(params.get("parent_company")); + if (StringUtils.isNotBlank(parentCompany)) { + map.put("supsubcomid", EcHrmRelationUtil.getEcCompanyId(parentCompany)); + } + + map.put("subcompanycode", params.get("comp_no").toString()); + map.put("subcompanydesc", params.get("comp_name").toString()); + map.put("showorder", Util.null2String(params.get("show_order"))); + this.resultMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).addSubCompany(map, user); + // + //// 更新jcl_org_comp表 uuid字段 + //if ("1".equals(Util.null2String(resultMap.get("status"))) && null != resultMap.get("id")) { + // updateJclUUID(Util.null2String(resultMap.get("id")), HRM_COMPANY, JCL_COMPANY); + //} + } + + /** + * 更新分部 + */ + private void updateCompany() { + Map map = new HashMap<>(); + // 获取ec表ID + map.put("id", EcHrmRelationUtil.getEcCompanyId(Util.null2String(params.get("id")))); + + // 上级分部通过UUID联查ec表ID + String parentCompany = Util.null2String(params.get("parent_company")); + if (StringUtils.isNotBlank(parentCompany)) { + map.put("supsubcomid", EcHrmRelationUtil.getEcCompanyId(parentCompany)); + } + map.put("subcompanycode", Util.null2String(params.get("comp_no"))); + map.put("subcompanyname", Util.null2String(params.get("comp_name_short"))); + map.put("subcompanydesc", Util.null2String(params.get("comp_name"))); + map.put("showorder", Util.null2String(params.get("show_order"))); + this.resultMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).editSubCompany(map, user); + } + + /** + * 封存、解封分部 + */ + private void cancelCompany() { + String companyIds = Util.null2String(params.get("id")); + String forbiddenTag = Util.null2String(params.get("forbiddenTag")); + List idList = new ArrayList<>(); + String[] split = companyIds.split(","); + if (StringUtils.isBlank(forbiddenTag)) { + long currentTimeMillis = System.currentTimeMillis(); + for (String s : split) { + // 更新名称为:名称+时间戳 + CompPO comp = MapperProxyFactory.getProxy(CompMapper.class).listById(Long.parseLong(s)); + params.put("parent_company", comp.getParentCompany()); + params.put("comp_no", comp.getCompNo()); + params.put("comp_name", comp.getCompName() + currentTimeMillis); + params.put("comp_name_short", comp.getCompNameShort() + currentTimeMillis); + params.put("show_order", comp.getShowOrder()); + updateCompany(); + idList.add(EcHrmRelationUtil.getEcCompanyId(s)); + } + } else { + for (String s : split) { + idList.add(EcHrmRelationUtil.getEcCompanyId(s)); + } + } + Map map = new HashMap<>(); + map.put("id", StringUtils.join(idList, ",")); + + if ("0".equals(forbiddenTag)) { + // 解封 + this.resultMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).doSubCompanyISCanceled(map, user); + } else { + // 删除封存、禁用封存 + this.resultMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).doSubCompanyCancel(map, user); + } + } +} From 6351109b7939ce73dc51e0d34f102ed956318df1 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 26 Aug 2022 17:36:26 +0800 Subject: [PATCH 14/20] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hrmresource/ResourceBasicInfoMapper.java | 24 ++- .../hrmresource/ResourceBasicInfoMapper.xml | 139 +++++++++++++++++- .../service/ResourceBasicInfoService.java | 39 +++++ .../impl/ResourceBasicInfoServiceImpl.java | 64 +++++++- .../web/ResourceBasicInfoController.java | 51 ++++++- .../wrapper/ResourceBasicInfoWrapper.java | 55 +++++-- 6 files changed, 344 insertions(+), 28 deletions(-) diff --git a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java index a12a8c3e..3658860c 100644 --- a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java +++ b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java @@ -2,6 +2,7 @@ package com.engine.organization.mapper.hrmresource; import com.engine.organization.entity.TreeData; +import com.engine.organization.entity.hrmresource.po.ResourceItemClassPO; import com.engine.organization.entity.hrmresource.po.ResourceItemPO; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param; @@ -25,17 +26,30 @@ public interface ResourceBasicInfoMapper { List> browserDatas(@Param("ids") Collection ids); - ResourceItemPO getResourceItemByFid(@Param("fid")Integer fid); + ResourceItemPO getResourceItemByFid(@Param("fid") Integer fid); - List selectItemByIds(@Param("ids")Collection ids); + List selectItemByIds(@Param("ids") Collection ids); - int deleteByIds(@Param("ids")Collection ids); + int deleteByIds(@Param("ids") Collection ids); - int recoverByIds(@Param("ids")Collection ids); + int recoverByIds(@Param("ids") Collection ids); - List selectItemByFNo(@Param("fno")String fno,@Param("fclassid")Integer fclassid); + List selectItemByFNo(@Param("fno") String fno, @Param("fclassid") Integer fclassid); int insertIgnoreNull(ResourceItemPO resourceItemPO); int update(ResourceItemPO resourceItemPO); + + ResourceItemClassPO getResourceItemClassByFid(@Param("fid") Integer fid); + + List selectItemClassByFNo(@Param("fno") String fno, @Param("fid") Integer fid); + + int saveResourceItemClass(ResourceItemClassPO itemClassPO); + + int updateResourceItemClass(ResourceItemClassPO itemClassPO); + + int deleteResourceItemClass(@Param("fid") Integer fid); + + List getItemByClassId(@Param("fclassid") Integer fclassid); + } diff --git a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml index 8825c0e2..9039d6f5 100644 --- a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml +++ b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml @@ -10,6 +10,12 @@ + + + + + + @@ -33,11 +39,19 @@ - @@ -53,10 +67,18 @@ @@ -81,7 +103,8 @@ - INSERT INTO jcl_org_item @@ -138,9 +161,10 @@ + - + @@ -152,4 +176,105 @@ WHERE fid = #{fid} AND fdelete = 0 + + + + + + INSERT INTO jcl_org_itemclass + + + fno, + + + fname, + + + fmemo, + + + creator, + + + create_time, + + + update_time, + + + + + #{fno}, + + + #{fname}, + + + #{fmemo}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + + + + + + + update jcl_org_itemclass + + fname=#{fname}, + fmemo=#{fmemo}, + update_time=#{updateTime}, + + WHERE fid = #{fid} + + + + delete + from jcl_org_itemclass + where fid = #{fid} + \ No newline at end of file diff --git a/src/com/engine/organization/service/ResourceBasicInfoService.java b/src/com/engine/organization/service/ResourceBasicInfoService.java index f9a68c12..2a5f44bd 100644 --- a/src/com/engine/organization/service/ResourceBasicInfoService.java +++ b/src/com/engine/organization/service/ResourceBasicInfoService.java @@ -2,6 +2,7 @@ package com.engine.organization.service; import com.api.browser.bean.SearchConditionGroup; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.entity.hrmresource.po.ResourceItemClassPO; import com.engine.organization.entity.hrmresource.po.ResourceItemPO; import java.util.Collection; @@ -18,6 +19,7 @@ public interface ResourceBasicInfoService { /** * 列表 + * * @param params * @return */ @@ -25,12 +27,14 @@ public interface ResourceBasicInfoService { /** * 获取左侧树 + * * @return */ List getTreeData(); /** * 新增编辑表单 + * * @param params * @return */ @@ -38,6 +42,7 @@ public interface ResourceBasicInfoService { /** * 删除/批量删除人员信息资料 + * * @param ids * @return */ @@ -45,6 +50,7 @@ public interface ResourceBasicInfoService { /** * 恢复人员信息资料 + * * @param ids * @return */ @@ -52,6 +58,7 @@ public interface ResourceBasicInfoService { /** * 保存人员信息资料 + * * @param resourceItemPO * @return */ @@ -59,6 +66,7 @@ public interface ResourceBasicInfoService { /** * 根据id获取人员信息资料 + * * @param fid * @return */ @@ -66,8 +74,39 @@ public interface ResourceBasicInfoService { /** * 更新人员信息资料 + * * @param resourceItemPO * @return */ int update(ResourceItemPO resourceItemPO); + + + /** + * 分类,新增编辑表单 + * @param params + * @return + */ + List getItemClassForm(Map params); + + /** + * 新增分类 + * @param itemClassPO + * @return + */ + int saveResourceItemClass(ResourceItemClassPO itemClassPO); + + /** + * 更新分类 + * @param itemClassPO + * @return + */ + int updateResourceItemClass(ResourceItemClassPO itemClassPO); + + /** + * 删除分类 + * @param fid + * @return + */ + int deleteResourceItemClass(Integer fid); + } diff --git a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java index 1c18f783..12b4f0ec 100644 --- a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java @@ -9,6 +9,7 @@ import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.TreeData; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.entity.hrmresource.po.ResourceItemClassPO; import com.engine.organization.entity.hrmresource.po.ResourceItemPO; import com.engine.organization.entity.hrmresource.vo.ResourceBasicInfoVO; import com.engine.organization.mapper.hrmresource.ResourceBasicInfoMapper; @@ -18,6 +19,7 @@ import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; @@ -42,13 +44,13 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas @Override public Map listPage(Map params) { - Map resultMap = new HashMap<>(); + Map resultMap = new HashMap<>(); boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); resultMap.put("hasRight", hasRight); if (!hasRight) { return resultMap; } - OrganizationWeaTable table = new OrganizationWeaTable<>(user,ResourceBasicInfoVO.class); + OrganizationWeaTable table = new OrganizationWeaTable<>(user, ResourceBasicInfoVO.class); String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); WeaResultMsg result = new WeaResultMsg(false); @@ -99,9 +101,9 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas fName.setRules("required|string"); SearchConditionItem fMemo = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "说明", "fmemo"); - if(StringUtils.isNotBlank(id)) { + if (StringUtils.isNotBlank(id)) { ResourceItemPO resourceItemPO = getResourceBasicInfoMapper().getResourceItemByFid(Integer.parseInt(id)); - OrganizationAssert.notNull(resourceItemPO,"选择的数据不存在"); + OrganizationAssert.notNull(resourceItemPO, "选择的数据不存在"); BrowserBean browserBean = resourceTypeItem.getBrowserConditionParam(); List> maps = getResourceBasicInfoMapper().browserDatas(DeleteParam.builder().ids(resourceItemPO.getFid().toString()).build().getIds()); browserBean.setReplaceDatas(maps); @@ -135,8 +137,8 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas @Override public int save(ResourceItemPO resourceItemPO) { - List list = getResourceBasicInfoMapper().selectItemByFNo(resourceItemPO.getFno(),resourceItemPO.getFclassid()); - OrganizationAssert.isEmpty(list,"编号不允许重复"); + List list = getResourceBasicInfoMapper().selectItemByFNo(resourceItemPO.getFno(), resourceItemPO.getFclassid()); + OrganizationAssert.isEmpty(list, "编号不允许重复"); return getResourceBasicInfoMapper().insertIgnoreNull(resourceItemPO); } @@ -150,6 +152,56 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas return getResourceBasicInfoMapper().update(resourceItemPO); } + @Override + public List getItemClassForm(Map params) { + String id = Util.null2String(params.get("fid")); + List selectItems = new ArrayList<>(); + List addGroups = new ArrayList<>(); + SearchConditionItem fNo = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "编号", "fno"); + fNo.setRules("required|string"); + SearchConditionItem fName = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "名称", "fname"); + fName.setRules("required|string"); + SearchConditionItem fMemo = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "说明", "fmemo"); + + if (StringUtils.isNotBlank(id)) { + ResourceItemClassPO resourceItemClassPO = getResourceBasicInfoMapper().getResourceItemClassByFid(Integer.parseInt(id)); + OrganizationAssert.notNull(resourceItemClassPO, "选择的数据不存在"); + fNo.setValue(resourceItemClassPO.getFno()); + fNo.setViewAttr(1); + fName.setValue(resourceItemClassPO.getFname()); + fMemo.setValue(resourceItemClassPO.getFmemo()); + } + selectItems.add(fNo); + selectItems.add(fName); + selectItems.add(fMemo); + addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); + return addGroups; + } + + @Override + public int saveResourceItemClass(ResourceItemClassPO itemClassPO) { + List list = getResourceBasicInfoMapper().selectItemClassByFNo(itemClassPO.getFno(), null); + OrganizationAssert.isEmpty(list, "编号不允许重复"); + itemClassPO.setCreator((long) user.getUID()); + itemClassPO.setCreateTime(new Date()); + return getResourceBasicInfoMapper().saveResourceItemClass(itemClassPO); + } + + @Override + public int updateResourceItemClass(ResourceItemClassPO itemClassPO) { + itemClassPO.setUpdateTime(new Date()); + return getResourceBasicInfoMapper().updateResourceItemClass(itemClassPO); + } + + @Override + public int deleteResourceItemClass(Integer fid) { + OrganizationAssert.notNull(fid, "选择的数据不存在"); + // 判断该分类下是否有数据 + List itemByClassId = getResourceBasicInfoMapper().getItemByClassId(fid); + OrganizationAssert.isTrue(CollectionUtils.isEmpty(itemByClassId), "当前分类已被禁用,无法删除"); + return getResourceBasicInfoMapper().deleteResourceItemClass(fid); + } + private String buildSqlWhere(Map params) { DBType dbType = DBType.get(new RecordSet().getDBType()); String sqlWhere = " where 1 = 1 "; diff --git a/src/com/engine/organization/web/ResourceBasicInfoController.java b/src/com/engine/organization/web/ResourceBasicInfoController.java index 6975d531..99e53cb3 100644 --- a/src/com/engine/organization/web/ResourceBasicInfoController.java +++ b/src/com/engine/organization/web/ResourceBasicInfoController.java @@ -3,6 +3,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.hrmresource.po.ResourceItemClassPO; import com.engine.organization.entity.hrmresource.po.ResourceItemPO; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.ResourceBasicInfoWrapper; @@ -29,7 +30,7 @@ import java.util.Map; public class ResourceBasicInfoController { private ResourceBasicInfoWrapper getResourceBasicInfoWrapper(User user) { - return ServiceUtil.getService(ResourceBasicInfoWrapper.class,user); + return ServiceUtil.getService(ResourceBasicInfoWrapper.class, user); } @GET @@ -134,5 +135,53 @@ public class ResourceBasicInfoController { } } + @GET + @Path("/getItemClassForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getItemClassForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).getItemClassForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @POST + @Path("/saveResourceItemClass") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveResourceItemClass(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ResourceItemClassPO resourceItemClassPO) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).saveResourceItemClass(resourceItemClassPO)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @POST + @Path("/updateResourceItemClass") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateResourceItemClass(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ResourceItemClassPO resourceItemClassPO) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).updateResourceItemClass(resourceItemClassPO)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @POST + @Path("/deleteResourceItemClass") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteResourceItemClass(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Integer fid) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).deleteResourceItemClass(fid)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } } diff --git a/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java b/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java index e3d65d80..aec06084 100644 --- a/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java +++ b/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java @@ -5,6 +5,7 @@ import com.api.browser.bean.SearchConditionGroup; import com.engine.common.util.ServiceUtil; import com.engine.organization.annotation.Log; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.entity.hrmresource.po.ResourceItemClassPO; import com.engine.organization.entity.hrmresource.po.ResourceItemPO; import com.engine.organization.enums.DeleteTypeEnum; import com.engine.organization.enums.LogModuleNameEnum; @@ -27,16 +28,16 @@ import java.util.*; **/ public class ResourceBasicInfoWrapper extends OrganizationWrapper { - private ResourceBasicInfoService getResourceBasicInfoService(User user){ - return ServiceUtil.getService(ResourceBasicInfoServiceImpl.class,user); + private ResourceBasicInfoService getResourceBasicInfoService(User user) { + return ServiceUtil.getService(ResourceBasicInfoServiceImpl.class, user); } private ResourceBasicInfoMapper getResourceBasicInfoMapper() { return MapperProxyFactory.getProxy(ResourceBasicInfoMapper.class); } - public Map getResourceBasicInfo(Map params) { - return getResourceBasicInfoService(user).listPage(params); + public Map getResourceBasicInfo(Map params) { + return getResourceBasicInfoService(user).listPage(params); } public List getTreeData() { @@ -75,7 +76,8 @@ public class ResourceBasicInfoWrapper extends OrganizationWrapper { List resourceItemPOS = getResourceBasicInfoMapper().selectItemByIds(ids); int result = getResourceBasicInfoService(user).deletByIds(ids); for (ResourceItemPO resourceItemPO : resourceItemPOS) { - writeOperateLog(new Object() {}.getClass(),resourceItemPO.getFname(), JSON.toJSONString(ids),"删除人员信息资料"); + writeOperateLog(new Object() { + }.getClass(), resourceItemPO.getFname(), JSON.toJSONString(ids), "删除人员信息资料"); } return result; } @@ -86,7 +88,8 @@ public class ResourceBasicInfoWrapper extends OrganizationWrapper { List resourceItemPOS = getResourceBasicInfoMapper().selectItemByIds(ids); int result = getResourceBasicInfoService(user).recoverByIds(ids); for (ResourceItemPO resourceItemPO : resourceItemPOS) { - writeOperateLog(new Object() {}.getClass(),resourceItemPO.getFname(), JSON.toJSONString(ids),"恢复人员信息资料"); + writeOperateLog(new Object() { + }.getClass(), resourceItemPO.getFname(), JSON.toJSONString(ids), "恢复人员信息资料"); } return result; } @@ -94,10 +97,11 @@ public class ResourceBasicInfoWrapper extends OrganizationWrapper { @Log(operateType = OperateTypeEnum.ADD, operateModule = LogModuleNameEnum.RESOURCE, operateDesc = "新增人员信息资料") public int save(ResourceItemPO resourceItemPO) { resourceItemPO.setCreateTime(new Date()); - resourceItemPO.setCreator((long)user.getUID()); + resourceItemPO.setCreator((long) user.getUID()); resourceItemPO.setFdelete(DeleteTypeEnum.NOT_DELETED.getValue()); int result = getResourceBasicInfoService(user).save(resourceItemPO); - writeOperateLog(new Object() {}.getClass(),resourceItemPO.getFname(),JSON.toJSONString(resourceItemPO),"新增人员信息资料"); + writeOperateLog(new Object() { + }.getClass(), resourceItemPO.getFname(), JSON.toJSONString(resourceItemPO), "新增人员信息资料"); return result; } @@ -106,8 +110,41 @@ public class ResourceBasicInfoWrapper extends OrganizationWrapper { resourceItemPO.setUpdateTime(new Date()); ResourceItemPO resourceItem = getResourceBasicInfoService(user).selectById(resourceItemPO.getFid()); int result = getResourceBasicInfoService(user).update(resourceItemPO); - writeOperateLog(new Object() {}.getClass(),resourceItem.getFname(),JSON.toJSONString(resourceItemPO),resourceItem, + writeOperateLog(new Object() { + }.getClass(), resourceItem.getFname(), JSON.toJSONString(resourceItemPO), resourceItem, getResourceBasicInfoService(user).selectById(resourceItemPO.getFid())); return result; } + + public List getItemClassForm(Map params) { + return getResourceBasicInfoService(user).getItemClassForm(params); + } + + @Log(operateType = OperateTypeEnum.ADD, operateModule = LogModuleNameEnum.RESOURCE, operateDesc = "新增人员信息分类") + public int saveResourceItemClass(ResourceItemClassPO resourceItemClassPO) { + int result = getResourceBasicInfoService(user).saveResourceItemClass(resourceItemClassPO); + writeOperateLog(new Object() { + }.getClass(), resourceItemClassPO.getFname(), JSON.toJSONString(resourceItemClassPO), "新增人员信息分类"); + return result; + } + + @Log(operateType = OperateTypeEnum.UPDATE, operateModule = LogModuleNameEnum.RESOURCE, operateDesc = "更新人员信息分类") + public int updateResourceItemClass(ResourceItemClassPO resourceItemClassPO) { + ResourceItemClassPO resourceItemClass = getResourceBasicInfoMapper().getResourceItemClassByFid(resourceItemClassPO.getFid()); + int result = getResourceBasicInfoService(user).updateResourceItemClass(resourceItemClassPO); + writeOperateLog(new Object() { + }.getClass(), resourceItemClassPO.getFname(), JSON.toJSONString(resourceItemClassPO), resourceItemClass, + getResourceBasicInfoMapper().getResourceItemClassByFid(resourceItemClassPO.getFid())); + return result; + } + + @Log(operateType = OperateTypeEnum.DELETE, operateModule = LogModuleNameEnum.RESOURCE, operateDesc = "删除人员信息分类") + public int deleteResourceItemClass(Integer fid) { + ResourceItemClassPO resourceItemClass = getResourceBasicInfoMapper().getResourceItemClassByFid(fid); + int result = getResourceBasicInfoService(user).deleteResourceItemClass(fid); + writeOperateLog(new Object() { + }.getClass(), resourceItemClass.getFname(), JSON.toJSONString(fid), "删除人员信息分类"); + + return result; + } } From 532a6d00ce2912cd66b3d85ad6bbfde199918754 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 29 Aug 2022 09:22:45 +0800 Subject: [PATCH 15/20] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ResourceBasicInfoService.java | 11 +++++++++++ .../service/impl/ResourceBasicInfoServiceImpl.java | 12 ++++++++++++ .../web/ResourceBasicInfoController.java | 12 ++++++++++++ .../wrapper/ResourceBasicInfoWrapper.java | 4 ++++ 4 files changed, 39 insertions(+) diff --git a/src/com/engine/organization/service/ResourceBasicInfoService.java b/src/com/engine/organization/service/ResourceBasicInfoService.java index 2a5f44bd..44cb6f63 100644 --- a/src/com/engine/organization/service/ResourceBasicInfoService.java +++ b/src/com/engine/organization/service/ResourceBasicInfoService.java @@ -83,6 +83,7 @@ public interface ResourceBasicInfoService { /** * 分类,新增编辑表单 + * * @param params * @return */ @@ -90,6 +91,7 @@ public interface ResourceBasicInfoService { /** * 新增分类 + * * @param itemClassPO * @return */ @@ -97,6 +99,7 @@ public interface ResourceBasicInfoService { /** * 更新分类 + * * @param itemClassPO * @return */ @@ -104,9 +107,17 @@ public interface ResourceBasicInfoService { /** * 删除分类 + * * @param fid * @return */ int deleteResourceItemClass(Integer fid); + /** + * 搜索条件 + * + * @return + */ + List getSearchCondition(); + } diff --git a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java index 12b4f0ec..eb9dab63 100644 --- a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java @@ -202,6 +202,18 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas return getResourceBasicInfoMapper().deleteResourceItemClass(fid); } + @Override + public List getSearchCondition() { + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + SearchConditionItem schemeNameCondition = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "fname"); + SearchConditionItem schemeNoCondition = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "fno"); + conditionItems.add(schemeNameCondition); + conditionItems.add(schemeNoCondition); + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + return addGroups; + } + private String buildSqlWhere(Map params) { DBType dbType = DBType.get(new RecordSet().getDBType()); String sqlWhere = " where 1 = 1 "; diff --git a/src/com/engine/organization/web/ResourceBasicInfoController.java b/src/com/engine/organization/web/ResourceBasicInfoController.java index 99e53cb3..559b188f 100644 --- a/src/com/engine/organization/web/ResourceBasicInfoController.java +++ b/src/com/engine/organization/web/ResourceBasicInfoController.java @@ -184,4 +184,16 @@ public class ResourceBasicInfoController { } } + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getResourceBasicInfoWrapper(user).getSearchCondition()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + } diff --git a/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java b/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java index aec06084..23692dcc 100644 --- a/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java +++ b/src/com/engine/organization/wrapper/ResourceBasicInfoWrapper.java @@ -147,4 +147,8 @@ public class ResourceBasicInfoWrapper extends OrganizationWrapper { return result; } + + public List getSearchCondition() { + return getResourceBasicInfoService(user).getSearchCondition(); + } } From 2744f85effbb276b7c93e3e14f9bb75fedba58f8 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 29 Aug 2022 11:07:10 +0800 Subject: [PATCH 16/20] =?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/entity/employee/vo/EmployeeTableVO.java | 2 +- .../entity/extend/param/ExtendInfoFieldParam.java | 5 +++++ .../organization/mapper/extend/ExtendInfoMapper.xml | 1 + .../service/impl/FieldDefinedServiceImpl.java | 2 +- .../engine/organization/transmethod/JobTransMethod.java | 8 ++++++++ 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java b/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java index ed1c9e78..1743372a 100644 --- a/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java +++ b/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java @@ -36,7 +36,7 @@ public class EmployeeTableVO { @OrganizationTableColumn(text = "姓名", width = "50%", column = "lastname") private String lastname; - @OrganizationTableColumn(text = "性别", width = "50%", column = "sex") + @OrganizationTableColumn(text = "性别", width = "50%", column = "sex",transmethod = "com.engine.organization.transmethod.JobTransMethod.getSexName") private String sex; diff --git a/src/com/engine/organization/entity/extend/param/ExtendInfoFieldParam.java b/src/com/engine/organization/entity/extend/param/ExtendInfoFieldParam.java index e8ea88b0..f55992af 100644 --- a/src/com/engine/organization/entity/extend/param/ExtendInfoFieldParam.java +++ b/src/com/engine/organization/entity/extend/param/ExtendInfoFieldParam.java @@ -94,6 +94,11 @@ public class ExtendInfoFieldParam { String dbLength = "100"; if (fieldType.size() > 2) { dbLength = fieldType.get(2).toString(); + if (Integer.parseInt(dbLength) == 0) { + dbLength = "50"; + fieldType.set(2,"50"); + } + } fp.setSimpleText(Util.getIntValue(browserType, -1), dbLength); } else if (controlType.equals("2")) { diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index 9229ba2c..1eee5d53 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -353,6 +353,7 @@ isrequired=#{isrequired}, edit_show=#{editShow}, show_order=#{showOrder}, + custom_value=#{customValue}, WHERE id = #{id} AND delete_type = 0 diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index d44ccf90..f93333be 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -116,9 +116,9 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ Long maxId = getExtendInfoMapper().getMaxId(); extendInfo.setFieldName("field" + (maxId + 1)); extendInfo.setIsSystemDefault(1); - updateCount += getExtendInfoMapper().insertExtendInfo(extendInfo); // 新增表结构 getExtendInfoMapper().addTableColumn(extendInfo.getTableName(), extendInfo.getFieldName(), extendInfo.getFieldType()); + updateCount += getExtendInfoMapper().insertExtendInfo(extendInfo); // 明细表且为浏览按钮字段,添加span字段 if (null != extendGroup.getPid() && 3 == extendInfo.getControlType()) { String dbType = infoFieldParam.getDbType("2", ""); diff --git a/src/com/engine/organization/transmethod/JobTransMethod.java b/src/com/engine/organization/transmethod/JobTransMethod.java index 645d4e3d..20850a8b 100644 --- a/src/com/engine/organization/transmethod/JobTransMethod.java +++ b/src/com/engine/organization/transmethod/JobTransMethod.java @@ -57,4 +57,12 @@ public class JobTransMethod { } } + public static String getSexName(String sexValue) { + String sexName = "男"; + if ("1".equals(sexValue)) { + sexName = "女"; + } + return sexName; + } + } From b6caffc74ffa7503cbaad16a4d2023b967898ab9 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 29 Aug 2022 14:12:06 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=88=86=E7=B1=BB=20=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hrmresource/ResourceBasicInfoMapper.java | 10 ++++++- .../hrmresource/ResourceBasicInfoMapper.xml | 27 +++++++++++++------ .../impl/ResourceBasicInfoServiceImpl.java | 9 +++++-- 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java index 3658860c..3ad80eb3 100644 --- a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java +++ b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.java @@ -34,6 +34,14 @@ public interface ResourceBasicInfoMapper { int recoverByIds(@Param("ids") Collection ids); + /** + * delete语句,删除人员信息 + * + * @param ids + * @return + */ + int deleteItemByIds(@Param("ids") Collection ids); + List selectItemByFNo(@Param("fno") String fno, @Param("fclassid") Integer fclassid); int insertIgnoreNull(ResourceItemPO resourceItemPO); @@ -50,6 +58,6 @@ public interface ResourceBasicInfoMapper { int deleteResourceItemClass(@Param("fid") Integer fid); - List getItemByClassId(@Param("fclassid") Integer fclassid); + List getItemByClassId(@Param("fclassid") Integer fclassid, @Param("fdelete") Integer fdelete); } diff --git a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml index 9039d6f5..b89e4277 100644 --- a/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml +++ b/src/com/engine/organization/mapper/hrmresource/ResourceBasicInfoMapper.xml @@ -250,16 +250,19 @@ @@ -277,4 +280,12 @@ from jcl_org_itemclass where fid = #{fid} + + delete + from jcl_org_item + where fid IN + + #{id} + + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java index eb9dab63..dbbbaee1 100644 --- a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java @@ -197,8 +197,13 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas public int deleteResourceItemClass(Integer fid) { OrganizationAssert.notNull(fid, "选择的数据不存在"); // 判断该分类下是否有数据 - List itemByClassId = getResourceBasicInfoMapper().getItemByClassId(fid); - OrganizationAssert.isTrue(CollectionUtils.isEmpty(itemByClassId), "当前分类已被禁用,无法删除"); + List itemByClassId = getResourceBasicInfoMapper().getItemByClassId(fid, 0); + OrganizationAssert.isTrue(CollectionUtils.isEmpty(itemByClassId), "当前分类下存在数据,无法删除"); + List deleteItems = getResourceBasicInfoMapper().getItemByClassId(fid, 1); + // 级联删除已停用数据 + if (CollectionUtils.isNotEmpty(deleteItems)) { + getResourceBasicInfoMapper().deleteItemByIds((deleteItems.stream().map(ResourceItemPO::getFid).collect(Collectors.toList()))); + } return getResourceBasicInfoMapper().deleteResourceItemClass(fid); } From cfc78875c642297c8357d11098ea74ed8821d0a1 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 29 Aug 2022 14:26:10 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ResourceBasicInfoServiceImpl.java | 2 +- .../organization/thread/OrganizationSyncEc.java | 16 +++------------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java index dbbbaee1..2dc94dff 100644 --- a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java @@ -105,7 +105,7 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas ResourceItemPO resourceItemPO = getResourceBasicInfoMapper().getResourceItemByFid(Integer.parseInt(id)); OrganizationAssert.notNull(resourceItemPO, "选择的数据不存在"); BrowserBean browserBean = resourceTypeItem.getBrowserConditionParam(); - List> maps = getResourceBasicInfoMapper().browserDatas(DeleteParam.builder().ids(resourceItemPO.getFid().toString()).build().getIds()); + List> maps = getResourceBasicInfoMapper().browserDatas(DeleteParam.builder().ids(resourceItemPO.getFclassid().toString()).build().getIds()); browserBean.setReplaceDatas(maps); resourceTypeItem.setBrowserConditionParam(browserBean); diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java index 3d99738e..461b6890 100644 --- a/src/com/engine/organization/thread/OrganizationSyncEc.java +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -11,7 +11,6 @@ import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; -import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.util.OrganizationAssert; @@ -42,20 +41,10 @@ public class OrganizationSyncEc { Map resultMap; private boolean throwException = true; - private static final String HRM_COMPANY = "hrmsubcompany"; - private static final String HRM_DEPARTMENT = "hrmdepartment"; - - private static final String JCL_COMPANY = "jcl_org_comp"; - private static final String JCL_DEPARTMENT = "jcl_org_dept"; - private SystemDataMapper getSystemDataMapper() { return MapperProxyFactory.getProxy(SystemDataMapper.class); } - private ExtMapper getExtMapper() { - return MapperProxyFactory.getProxy(ExtMapper.class); - } - public OrganizationSyncEc(User user, LogModuleNameEnum moduleName, OperateTypeEnum operateType, Map params) { this.moduleName = moduleName; this.operateType = operateType; @@ -93,7 +82,9 @@ public class OrganizationSyncEc { default: break; } - OrganizationAssert.isTrue(throwException && ("1".equals(Util.null2String(resultMap.get("status"))) || "1".equals(Util.null2String(resultMap.get("sign")))), Util.null2String(resultMap.get("message"))); + if (throwException) { + OrganizationAssert.isTrue("1".equals(Util.null2String(resultMap.get("status"))) || "1".equals(Util.null2String(resultMap.get("sign"))), Util.null2String(resultMap.get("message"))); + } return resultMap; } @@ -224,7 +215,6 @@ public class OrganizationSyncEc { List hrmResourceIds = getSystemDataMapper().getHrmResourceIds(oldJobPO.getParentDept(), oldHrmJobTitle.getId()); getSystemDataMapper().updateResourceJobTitleByIds(Util.null2String(hrmJobTitle.getId()), hrmResourceIds); // 封存原名称岗位 - map.clear(); map.put("ids", oldHrmJobTitle.getId()); map.put("canceled", "canceled"); this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).doCanceled(map, user); From 5dc920e36455a1eab3f61bf67b3c62b974becbcd Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 29 Aug 2022 15:39:35 +0800 Subject: [PATCH 19/20] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/DepartmentServiceImpl.java | 3 ++- src/com/engine/organization/service/impl/JobServiceImpl.java | 3 ++- .../service/impl/ResourceBasicInfoServiceImpl.java | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 914f2634..e0806d2f 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -418,7 +418,8 @@ public class DepartmentServiceImpl extends Service implements DepartmentService OrganizationAssert.notBlank(copyParam.getCompany(), "请指定需要复制的公司/分部"); int insertCount = 0; List idList = Arrays.stream(copyParam.getIds().split(",")).map(Long::parseLong).collect(Collectors.toList()); - int maxShowOrder = getDepartmentMapper().getMaxShowOrder(); + Integer maxShowOrder = getDepartmentMapper().getMaxShowOrder(); + maxShowOrder = null == maxShowOrder ? 0 : maxShowOrder; for (int i = 0; i < idList.size(); i++) { DepartmentPO deptById = getDepartmentMapper().getDeptById(idList.get(i)); deptById.setDeptName(deptById.getDeptName() + "[复制]"); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 76b736ad..ef5a8d2c 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -387,7 +387,8 @@ public class JobServiceImpl extends Service implements JobService { OrganizationAssert.notBlank(department, "请指定需要复制的部门"); int insertCount = 0; List idList = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList()); - int orderNum = getJobMapper().getMaxShowOrder(); + Integer orderNum = getJobMapper().getMaxShowOrder(); + orderNum = null == orderNum ? 0 : orderNum; for (Long id : idList) { orderNum++; JobPO jobById = getJobMapper().getJobById(id); diff --git a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java index 2dc94dff..ace9b40d 100644 --- a/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/ResourceBasicInfoServiceImpl.java @@ -163,7 +163,7 @@ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBas fName.setRules("required|string"); SearchConditionItem fMemo = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "说明", "fmemo"); - if (StringUtils.isNotBlank(id)) { + if (!"-1".equals(id) && StringUtils.isNotBlank(id)) { ResourceItemClassPO resourceItemClassPO = getResourceBasicInfoMapper().getResourceItemClassByFid(Integer.parseInt(id)); OrganizationAssert.notNull(resourceItemClassPO, "选择的数据不存在"); fNo.setValue(resourceItemClassPO.getFno()); From 31ab137195daa9f84bdf95656287ef67878b8810 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 30 Aug 2022 11:40:30 +0800 Subject: [PATCH 20/20] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=9E=B6=E6=9E=84=E5=9B=BE=E8=B7=B3=E8=BD=AC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrgChartServiceImpl.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index a8488b13..a75ed3b5 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -144,7 +144,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { } private void findCompanyItemByParantId(String id, int currentLevel, String level, RecordSet rs, List> list, String whereSql, boolean expand) { - rs.executeQuery("select id, fname, ftype, fparentid, fnumber from jcl_org_map " + whereSql + " and fparentid = " + id); + rs.executeQuery("select id, fname, ftype, fparentid,fobjid,fecid,fnumber from jcl_org_map " + whereSql + " and fparentid = " + id); List> currentList = new ArrayList<>(); while (rs.next()) { Map item = new HashMap<>(); @@ -153,6 +153,8 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("ftype", rs.getString("ftype")); item.put("parentId", rs.getString("fparentid")); item.put("fnumber", rs.getString("fnumber")); + item.put("fobjid", rs.getString("fobjid")); + item.put("fecid", rs.getString("fecid")); item.put("expand", expand ? "1" : "0"); item.put("hasChildren", hasChildren(rs.getString("id"), true)); currentList.add(item); @@ -203,7 +205,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { @Override public Map getUserData(Map request2Map, User user) { Map result = new HashMap<>(); - boolean hasRight = HasRightUtil.hasRight(user, USER_RIGHT, true); + boolean hasRight = HasRightUtil.hasRight(user, USER_RIGHT, true); result.put("hasRight", hasRight); if (!hasRight) { return result; @@ -244,6 +246,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("expand", "1"); item.put("fnumber", rs.getString("fnumber")); item.put("fleader", rs.getString("fleader")); + item.put("fobjid",rs.getString("fobjid")); list.add(item); } @@ -337,7 +340,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { private void findUserItemByParantId(String id, int currentLevel, String level, RecordSet rs, List> list, String whereSql, boolean expand) { - rs.executeQuery("select t.id, t.fname, t.ftype, t.fparentid, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber from jcl_org_map t " + whereSql + " and t.fparentid = " + id); + rs.executeQuery("select t.id, t.fname, t.ftype, t.fparentid, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber,t.fobjid,fecid from jcl_org_map t " + whereSql + " and t.fparentid = " + id); List> currentList = new ArrayList<>(); while (rs.next()) { Map item = new HashMap<>(); @@ -352,6 +355,8 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("fonjob", rs.getString("fonjob")); item.put("fnumber", rs.getString("fnumber")); item.put("expand", expand ? "1" : "0"); + item.put("fobjid", rs.getString("fobjid")); + item.put("fecid", rs.getString("fecid")); item.put("hasChildren", hasChildren(rs.getString("id"), false)); currentList.add(item); }