diff --git a/src/com/engine/organization/entity/DeleteParam.java b/src/com/engine/organization/entity/DeleteParam.java index 6583844b..a201954b 100644 --- a/src/com/engine/organization/entity/DeleteParam.java +++ b/src/com/engine/organization/entity/DeleteParam.java @@ -4,11 +4,10 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.commons.collections.CollectionUtils; import weaver.general.StringUtil; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -22,13 +21,18 @@ import java.util.stream.Collectors; @NoArgsConstructor @AllArgsConstructor public class DeleteParam { - private String ids; + private String ids; - public List getIds() { - if(StringUtil.isEmpty(ids)){ - return new ArrayList<>(); - } - return Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList()); - } + public List getIds() { + if (StringUtil.isEmpty(ids)) { + return new ArrayList<>(); + } + ArrayList list = new ArrayList<>(); + Set collect = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toSet()); + if (CollectionUtils.isNotEmpty(collect)) { + list.addAll(collect); + } + return list; + } } diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index 75381ec0..d6f7cec9 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -107,8 +107,8 @@ from hrmsubcompany t WHERE id IN - - #{id} + + NULL) OR id IN(#{id} diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.java b/src/com/engine/organization/mapper/resource/HrmResourceMapper.java index e926d5a1..53e8ea16 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.java +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.java @@ -1,9 +1,9 @@ package com.engine.organization.mapper.resource; import com.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.hrmresource.param.SearchTemplateParam; import com.engine.organization.entity.hrmresource.po.ResourceChartPO; import com.engine.organization.entity.hrmresource.po.ResourcePO; -import com.engine.organization.entity.hrmresource.param.SearchTemplateParam; import com.engine.organization.entity.hrmresource.po.SearchTemplatePO; import com.engine.organization.entity.resume.po.HrmFamilyInfoPO; import com.engine.organization.entity.resume.po.PersonnelResumePO; diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 7c1db295..cc52d564 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -296,14 +296,11 @@ public class ExtServiceImpl extends Service implements ExtService { List groupIds = dtInfoPOList.stream().map(ExtendInfoPO::getExtendGroupId).distinct().collect(Collectors.toList()); Map> poMaps = dtInfoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); - boolean deleteFlag = true; for (Long groupId : groupIds) { int rowNum = Util.getIntValue((String) params.get("rownum" + groupId)); - if (deleteFlag && rowNum > 0) { - // 删除原有明细表数据 - getExtDTMapper().deleteByMainID(tableName, id, groupId); - deleteFlag = false; - } + // 删除原有明细表数据 + getExtDTMapper().deleteByMainID(tableName, id, groupId); + List filterS = poMaps.get(groupId); for (int i = 0; i < rowNum; i++) { Map map = new HashMap<>(); @@ -319,6 +316,9 @@ public class ExtServiceImpl extends Service implements ExtService { map.put("delete_type", 0); map.put("create_time", new Date()); map.put("update_time", new Date()); + // 去除value为null的元素 + map.entrySet().removeIf(entry -> entry.getValue() == null); + getExtDTMapper().insertCompExtDT(tableName, map); } } diff --git a/src/com/engine/organization/service/impl/PersonnelResumeServiceImpl.java b/src/com/engine/organization/service/impl/PersonnelResumeServiceImpl.java index 5020590f..0ac98225 100644 --- a/src/com/engine/organization/service/impl/PersonnelResumeServiceImpl.java +++ b/src/com/engine/organization/service/impl/PersonnelResumeServiceImpl.java @@ -33,11 +33,13 @@ import com.engine.organization.util.tree.SearchTreeUtil; import com.engine.organization.util.word.CustomXWPFDocument; import com.engine.organization.util.word.WordUtil; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.xwpf.usermodel.Document; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFPictureData; import org.apache.xmlbeans.XmlOptions; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody; +import weaver.conn.RecordSet; import weaver.general.GCONST; import weaver.general.StringUtil; import weaver.general.Util; @@ -587,7 +589,10 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu // 补充人员所有岗位,关联人员及聚才林岗位 for (ResourcePO resource : resourcePOS) { - JobPO jobByResource = getJobMapper().getJobByResource(resource); + if (null == resource) { + continue; + } + JobPO jobByResource = getJobByResource(resource); if (null != jobByResource) { resource.setJobId(jobByResource.getId()); builderJobs.add(jobByResource); @@ -676,7 +681,10 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu // 补充人员所有岗位,关联人员及聚才林岗位 for (ResourcePO resource : resourcePOS) { - JobPO jobByResource = getJobMapper().getJobByResource(resource); + if (null == resource) { + continue; + } + JobPO jobByResource = getJobByResource(resource); if (null != jobByResource) { resource.setJobId(jobByResource.getId()); builderJobs.add(jobByResource); @@ -760,4 +768,87 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu buildParentComps(parentComp, builderComps, allMaps); } } + + private JobPO getJobByResource(ResourcePO resourcePO) { + RecordSet rs = new RecordSet(); + String sql = "select\n" + + " t.id,\n" + + " t.job_no,\n" + + " h.jobtitlename,\n" + + " t.ec_jobTitle,\n" + + " t.ec_company,\n" + + " t.ec_department,\n" + + " t.sequence_id,\n" + + " t.scheme_id,\n" + + " t.parent_job,\n" + + " t.is_key,\n" + + " t.workplace,\n" + + " t.description,\n" + + " t.work_duty,\n" + + " t.work_authority,\n" + + " t.show_order,\n" + + " t.forbidden_tag,\n" + + " t.grade_id,\n" + + " t.level_id\n" + + " from jcl_org_job t\n" + + " left join hrmjobtitles h on t.ec_jobTitle = h.id\n" + + " where t.delete_type = 0 "; + if (null != resourcePO.getSubcompanyid1()) { + sql += " and t.ec_company = '" + resourcePO.getSubcompanyid1() + "'"; + } + if (null == resourcePO.getSubcompanyid1()) { + sql += " and t.ec_company is null"; + } + if (null != resourcePO.getDepartmentid()) { + sql += " and t.ec_department = '" + resourcePO.getDepartmentid() + "'"; + } + if (null != resourcePO.getDepartmentid()) { + sql += " and t.ec_department is null"; + } + if (null != resourcePO.getJobtitle()) { + sql += " and t.ec_jobTitle = '" + resourcePO.getJobtitle() + "'"; + } + rs.executeQuery(sql); + if (rs.next()) { + String id = rs.getString("id"); + String job_no = rs.getString("job_no"); + String jobtitlename = rs.getString("jobtitlename"); + String ec_jobTitle = rs.getString("ec_jobTitle"); + String ec_company = rs.getString("ec_company"); + String ec_department = rs.getString("ec_department"); + String sequence_id = rs.getString("sequence_id"); + String scheme_id = rs.getString("scheme_id"); + String parent_job = rs.getString("parent_job"); + String is_key = rs.getString("is_key"); + String workplace = rs.getString("workplace"); + String description = rs.getString("description"); + String work_duty = rs.getString("work_duty"); + String work_authority = rs.getString("work_authority"); + String show_order = rs.getString("show_order"); + String forbidden_tag = rs.getString("forbidden_tag"); + String grade_id = rs.getString("grade_id"); + String level_id = rs.getString("level_id"); + JobPO jobPO = new JobPO(); + jobPO.setId(StringUtils.isBlank(id) ? null : Long.parseLong(id)); + jobPO.setJobNo(job_no); + jobPO.setJobTitleName(jobtitlename); + jobPO.setEcJobTitle(StringUtils.isBlank(ec_jobTitle) ? null : Integer.parseInt(ec_jobTitle)); + jobPO.setEcCompany(StringUtils.isBlank(ec_company) ? null : Integer.parseInt(ec_company)); + jobPO.setEcDepartment(StringUtils.isBlank(ec_department) ? null : Integer.parseInt(ec_department)); + jobPO.setSequenceId(StringUtils.isBlank(sequence_id) ? null : Long.parseLong(sequence_id)); + jobPO.setSchemeId(StringUtils.isBlank(scheme_id) ? null : Long.parseLong(scheme_id)); + jobPO.setParentJob(StringUtils.isBlank(parent_job) ? null : Long.parseLong(parent_job)); + jobPO.setIsKey(StringUtils.isBlank(is_key) ? null : Integer.parseInt(is_key)); + jobPO.setWorkplace(workplace); + jobPO.setDescription(description); + jobPO.setWorkDuty(work_duty); + jobPO.setWorkAuthority(work_authority); + jobPO.setShowOrder(StringUtils.isBlank(show_order) ? null : Integer.parseInt(show_order)); + jobPO.setForbiddenTag(StringUtils.isBlank(forbidden_tag) ? null : Integer.parseInt(forbidden_tag)); + jobPO.setGradeId(grade_id); + jobPO.setLevelId(level_id); + return jobPO; + } + return null; + } } diff --git a/src/com/engine/organization/util/saveimport/CompanyImport.java b/src/com/engine/organization/util/saveimport/CompanyImport.java index ff03b819..3de252d4 100644 --- a/src/com/engine/organization/util/saveimport/CompanyImport.java +++ b/src/com/engine/organization/util/saveimport/CompanyImport.java @@ -198,7 +198,7 @@ public class CompanyImport { } else if (StringUtils.isBlank(cellValue)) { reallyValue = ""; } else { - reallyValue = HrmFieldManagerForService.getReallyFieldvalue(infoPO.getJsonObject(cellValue), null != infoPO.getIsSystem() && 1 == infoPO.getIsSystem()); + reallyValue = HrmFieldManagerForService.getReallyFieldvalue(infoPO.getJsonObject(cellValue), true); } } catch (Exception e) { historyDetailPO.setOperateDetail(cellValue + "转换失败"); diff --git a/src/com/engine/organization/util/saveimport/DepartmentImport.java b/src/com/engine/organization/util/saveimport/DepartmentImport.java index 756741c7..33aebf4c 100644 --- a/src/com/engine/organization/util/saveimport/DepartmentImport.java +++ b/src/com/engine/organization/util/saveimport/DepartmentImport.java @@ -209,7 +209,7 @@ public class DepartmentImport { } else if (StringUtils.isBlank(cellValue)) { reallyValue = ""; } else { - reallyValue = HrmFieldManagerForService.getReallyFieldvalue(infoPO.getJsonObject(cellValue), null != infoPO.getIsSystem() && 1 == infoPO.getIsSystem()); + reallyValue = HrmFieldManagerForService.getReallyFieldvalue(infoPO.getJsonObject(cellValue), true); } } catch (Exception e) { historyDetailPO.setOperateDetail(cellValue + "转换失败");