From d65551c0ee8131dd8da3bf049d5b34732384ec71 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 5 Sep 2022 18:33:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=8D=E5=88=B6BUG=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 | 16 +++++++++------- .../service/impl/JobServiceImpl.java | 2 +- .../util/coderule/CodeRuleUtil.java | 19 ++++++++++++++----- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index b25b5da0..97074828 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -468,6 +468,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService */ @Override public int copyDepartment(DeptCopyParam copyParam) { + // TODO 是否复制子部门信息,是否复制子部门岗位信息 HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notBlank(copyParam.getCompany(), "请指定需要复制的公司/分部"); int insertCount = 0; @@ -476,10 +477,11 @@ public class DepartmentServiceImpl extends Service implements DepartmentService maxShowOrder = null == maxShowOrder ? 0 : maxShowOrder; for (int i = 0; i < idList.size(); i++) { DepartmentPO deptById = getDepartmentMapper().getDeptById(idList.get(i)); - deptById.setDeptName(deptById.getDeptName() + "[复制]"); - deptById.setDeptNameShort(deptById.getDeptNameShort() + "[复制]"); + long timeMillis = System.currentTimeMillis(); + deptById.setDeptName(deptById.getDeptName() + "_" + timeMillis); + deptById.setDeptNameShort(deptById.getDeptNameShort()); // 处理自动编号 - deptById.setDeptNo(CodeRuleUtil.generateCode(RuleCodeType.DEPARTMENT, deptById.getDeptNo(), false)); + deptById.setDeptNo(CodeRuleUtil.generateCode(RuleCodeType.DEPARTMENT, deptById.getDeptNo(), timeMillis)); deptById.setParentComp(EcHrmRelationUtil.getJclCompanyId(copyParam.getCompany()).getId()); deptById.setEcCompany(Long.parseLong(copyParam.getCompany())); deptById.setParentDept(null); @@ -504,7 +506,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService if (maxJobOrder == null) { maxJobOrder = 0; } - recursionCopyJob((long) user.getUID(), jobPOS, deptById.getParentComp(), deptById.getId(), maxJobOrder); + recursionCopyJob((long) user.getUID(), jobPOS, deptById.getParentComp(), deptById.getId(), maxJobOrder, timeMillis); } } return insertCount; @@ -771,11 +773,11 @@ public class DepartmentServiceImpl extends Service implements DepartmentService * @param parentDeptId * @param orderNum */ - private void recursionCopyJob(Long creator, List jobPOS, Long parentCompId, Long parentDeptId, int orderNum) { + private void recursionCopyJob(Long creator, List jobPOS, Long parentCompId, Long parentDeptId, int orderNum, long timeMillis) { for (JobPO jobPO : jobPOS) { orderNum++; // 处理自动编号 - jobPO.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, jobPO.getJobNo(), false)); + jobPO.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, jobPO.getJobNo(), timeMillis)); jobPO.setParentDept(parentDeptId); jobPO.setCreator(creator); jobPO.setCreateTime(new Date()); @@ -787,7 +789,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 处理子级元素 List jobsByPid = MapperProxyFactory.getProxy(JobMapper.class).getJobsByPid(jobPO.getId()); if (CollectionUtils.isNotEmpty(jobsByPid)) { - recursionCopyJob(creator, jobsByPid, parentCompId, parentDeptId, orderNum); + recursionCopyJob(creator, jobsByPid, parentCompId, parentDeptId, orderNum, timeMillis); } } } diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index de207569..53ae3950 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -394,7 +394,7 @@ public class JobServiceImpl extends Service implements JobService { orderNum++; JobPO jobById = getJobMapper().getJobById(id); // 处理自动编号 - jobById.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, jobById.getJobNo(), false)); + jobById.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, jobById.getJobNo(), System.currentTimeMillis())); jobById.setParentDept(Long.parseLong(department)); jobById.setShowOrder(orderNum); insertCount += getJobMapper().insertIgnoreNull(jobById); diff --git a/src/com/engine/organization/util/coderule/CodeRuleUtil.java b/src/com/engine/organization/util/coderule/CodeRuleUtil.java index 465b4fbc..9b67fc57 100644 --- a/src/com/engine/organization/util/coderule/CodeRuleUtil.java +++ b/src/com/engine/organization/util/coderule/CodeRuleUtil.java @@ -2,6 +2,10 @@ package com.engine.organization.util.coderule; import com.engine.hrm.entity.RuleCodeType; import com.engine.hrm.util.CodeRuleManager; +import com.engine.organization.entity.codesetting.po.CodeRulePO; +import com.engine.organization.mapper.codesetting.CodeRuleMapper; +import com.engine.organization.util.db.MapperProxyFactory; +import weaver.general.Util; /** * @description: @@ -30,14 +34,19 @@ public class CodeRuleUtil { * * @param ruleCodeType * @param code - * @param isCopy + * @param timeMillis * @return */ - public static String generateCode(RuleCodeType ruleCodeType, String code, boolean isCopy) { - if (isCopy) { - return generateCode(ruleCodeType, code); + public static String generateCode(RuleCodeType ruleCodeType, String code, long timeMillis) { + if (isAutoCode(ruleCodeType)) { + return generateCode(ruleCodeType, ""); } else { - return generateCode(ruleCodeType, code + "_cp"); + return generateCode(ruleCodeType, Util.null2String(code) + "_" + timeMillis); } } + + private static boolean isAutoCode(RuleCodeType ruleCodeType) { + CodeRulePO codeRuleByType = MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleByType(ruleCodeType.getValue()); + return null != codeRuleByType && "1".equals(codeRuleByType.getSerialEnable()); + } }