编制、人员编号、岗位部门、自定义下拉框BUG修复 #25

Merged
dxfeng merged 4 commits from feature/dxf into develop 3 years ago

@ -33,8 +33,15 @@ public class SelectOptionParam {
int size = datas.size(); int size = datas.size();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
JSONObject jsonObject = (JSONObject) datas.get(i); JSONObject jsonObject = (JSONObject) datas.get(i);
SearchConditionOption option = new SearchConditionOption(StringUtils.isEmpty(jsonObject.getString("key")) ? i + "" : jsonObject.getString("key"), jsonObject.getString("option")); // 只显示未封存的数据
selectOptions.add(option); if (!"1".equals(jsonObject.getString("unuse"))) {
SearchConditionOption option = new SearchConditionOption(StringUtils.isEmpty(jsonObject.getString("key")) ? i + "" : jsonObject.getString("key"), jsonObject.getString("option"));
selectOptions.add(option);
// 设置默认数据
if ("1".equals(jsonObject.getString("default"))) {
option.setSelected(true);
}
}
} }
} }
return selectOptions; return selectOptions;

@ -22,4 +22,6 @@ public interface ResourceMapper {
int updateResourceJob(@Param("originalJobId") Long originalJobId, @Param("targetJobId") Long targetJobId, @Param("parentComp") Long parentComp, @Param("parentDept") Long parentDept, @Param("ecCompany") Long ecCompany, @Param("ecDepartment") Long ecDepartment); int updateResourceJob(@Param("originalJobId") Long originalJobId, @Param("targetJobId") Long targetJobId, @Param("parentComp") Long parentComp, @Param("parentDept") Long parentDept, @Param("ecCompany") Long ecCompany, @Param("ecDepartment") Long ecDepartment);
HrmResourcePO getResourceById(@Param("id") String id); HrmResourcePO getResourceById(@Param("id") String id);
List<HrmResourcePO> listByNo(@Param("workCode") String workCode);
} }

@ -102,6 +102,11 @@
<include refid="baseColumns"/> <include refid="baseColumns"/>
from jcl_org_hrmresource t where delete_type = 0 and id = #{id} from jcl_org_hrmresource t where delete_type = 0 and id = #{id}
</select> </select>
<select id="listByNo" resultMap="HrmResourceMap">
select
<include refid="baseColumns"/>
from jcl_org_hrmresource t where delete_type = 0 and work_code = #{workCode}
</select>
<sql id="likeSql"> <sql id="likeSql">
<if test="param.lastName != null and param.lastName != ''"> <if test="param.lastName != null and param.lastName != ''">

@ -6,9 +6,11 @@ import com.api.browser.bean.SearchConditionItem;
import com.cloudstore.eccom.result.WeaResultMsg; import com.cloudstore.eccom.result.WeaResultMsg;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service; import com.engine.core.impl.Service;
import com.engine.hrm.entity.RuleCodeType;
import com.engine.hrm.util.face.HrmFaceCheckManager; import com.engine.hrm.util.face.HrmFaceCheckManager;
import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.component.OrganizationWeaTable;
import com.engine.organization.entity.DeleteParam; 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.commom.RecordInfo;
import com.engine.organization.entity.company.bo.CompBO; import com.engine.organization.entity.company.bo.CompBO;
import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.company.po.CompPO;
@ -19,6 +21,7 @@ import com.engine.organization.entity.hrmresource.bo.HrmRelationBO;
import com.engine.organization.entity.hrmresource.param.HrmRelationSaveParam; import com.engine.organization.entity.hrmresource.param.HrmRelationSaveParam;
import com.engine.organization.entity.hrmresource.param.HrmResourceSearchParam; import com.engine.organization.entity.hrmresource.param.HrmResourceSearchParam;
import com.engine.organization.entity.hrmresource.po.HrmRelationPO; import com.engine.organization.entity.hrmresource.po.HrmRelationPO;
import com.engine.organization.entity.hrmresource.po.HrmResourcePO;
import com.engine.organization.entity.hrmresource.vo.HrmResourceVO; import com.engine.organization.entity.hrmresource.vo.HrmResourceVO;
import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.bo.JobBO;
import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.job.po.JobPO;
@ -26,6 +29,7 @@ import com.engine.organization.entity.searchtree.SearchTree;
import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.entity.searchtree.SearchTreeParams;
import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.enums.LogModuleNameEnum;
import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.enums.OperateTypeEnum;
import com.engine.organization.mapper.codesetting.CodeRuleMapper;
import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.comp.CompMapper;
import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.department.DepartmentMapper;
import com.engine.organization.mapper.extend.ExtendTitleMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper;
@ -35,6 +39,7 @@ import com.engine.organization.mapper.hrmresource.SystemDataMapper;
import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.job.JobMapper;
import com.engine.organization.mapper.post.PostInfoMapper; import com.engine.organization.mapper.post.PostInfoMapper;
import com.engine.organization.mapper.post.PostMapper; import com.engine.organization.mapper.post.PostMapper;
import com.engine.organization.mapper.resource.ResourceMapper;
import com.engine.organization.mapper.scheme.GradeMapper; import com.engine.organization.mapper.scheme.GradeMapper;
import com.engine.organization.mapper.scheme.LevelMapper; import com.engine.organization.mapper.scheme.LevelMapper;
import com.engine.organization.mapper.scheme.SchemeMapper; import com.engine.organization.mapper.scheme.SchemeMapper;
@ -47,6 +52,7 @@ import com.engine.organization.util.HasRightUtil;
import com.engine.organization.util.MenuBtn; import com.engine.organization.util.MenuBtn;
import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationAssert;
import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.OrganizationFormItemUtil;
import com.engine.organization.util.coderule.CodeRuleUtil;
import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.DBType;
import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.db.MapperProxyFactory;
import com.engine.organization.util.page.PageUtil; import com.engine.organization.util.page.PageUtil;
@ -153,6 +159,10 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
return MapperProxyFactory.getProxy(HrmResourceMapper.class); return MapperProxyFactory.getProxy(HrmResourceMapper.class);
} }
private static ResourceMapper getResourceMapper() {
return MapperProxyFactory.getProxy(ResourceMapper.class);
}
private ExtendTitleMapper getExtendTitleMapper() { private ExtendTitleMapper getExtendTitleMapper() {
return MapperProxyFactory.getProxy(ExtendTitleMapper.class); return MapperProxyFactory.getProxy(ExtendTitleMapper.class);
} }
@ -206,7 +216,10 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
@Override @Override
public Long saveBaseForm(Map<String, Object> params) { public Long saveBaseForm(Map<String, Object> params) {
HasRightUtil.hasRight(user, RIGHT_NAME, false); HasRightUtil.hasRight(user, RIGHT_NAME, false);
String workCode = (String) params.get("work_code");
// 判断是否开启自动编号
workCode = repeatDetermine(workCode);
params.put("work_code", workCode);
// 完善新增参数 // 完善新增参数
completeParams(params); completeParams(params);
@ -271,6 +284,13 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
if ("0".equals(groupId)) { if ("0".equals(groupId)) {
groupId = GROUP_ID.toString(); groupId = GROUP_ID.toString();
} }
// 判断编号是否重复
String workCode = Util.null2String(params.get("work_code"));
HrmResourcePO resourceById = getResourceMapper().getResourceById(id.toString());
if (!workCode.equals(resourceById.getWorkCode())) {
workCode = repeatDetermine(workCode);
params.put("work_code", workCode);
}
// 完善更新参数 // 完善更新参数
completeParams(params); completeParams(params);
@ -576,7 +596,9 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
for (DepartmentPO departmentPO : filterDeparts) { for (DepartmentPO departmentPO : filterDeparts) {
buildParentDepts(departmentPO, builderDeparts); buildParentDepts(departmentPO, builderDeparts);
} }
List<SearchTree> deptTrees = SearchTreeUtil.builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts, false)); List<SearchTree> departmentList = DepartmentBO.buildSetToSearchTree(builderDeparts, false);
List<SearchTree> deptTrees = SearchTreeUtil.builderTreeMode(departmentList);
List<SearchTree> searchTrees = SearchTreeUtil.builderTreeMode(departmentList, jobTrees);
// 添加部门的上级分部 // 添加部门的上级分部
String parentCompS = deptTrees.stream().map(SearchTree::getParentComp).collect(Collectors.joining(",")); String parentCompS = deptTrees.stream().map(SearchTree::getParentComp).collect(Collectors.joining(","));
if (!StringUtil.isEmpty(parentCompS)) { if (!StringUtil.isEmpty(parentCompS)) {
@ -589,7 +611,6 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
for (CompPO compPO : filterComps) { for (CompPO compPO : filterComps) {
buildParentComps(compPO, builderComps); buildParentComps(compPO, builderComps);
} }
List<SearchTree> searchTrees = SearchTreeUtil.builderTreeMode(deptTrees, jobTrees);
return SearchTreeUtil.builderTreeMode(CompBO.buildSetToSearchTree(builderComps), searchTrees); return SearchTreeUtil.builderTreeMode(CompBO.buildSetToSearchTree(builderComps), searchTrees);
} }
@ -682,8 +703,11 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
params.put("company_id", jobById.getParentComp()); params.put("company_id", jobById.getParentComp());
params.put("ec_department", jobById.getEcDepartment()); params.put("ec_department", jobById.getEcDepartment());
params.put("ec_company", jobById.getEcCompany()); params.put("ec_company", jobById.getEcCompany());
// 职级 // 等级方案、岗位序列、职等、职级
params.put("job_level", jobById.getGradeId()); params.put("scheme_id", jobById.getSchemeId());
params.put("sequence_id", jobById.getSequenceId());
params.put("job_level", jobById.getLevelId());
params.put("job_grade", jobById.getGradeId());
String showOrder = Util.null2String(params.get("show_order")); String showOrder = Util.null2String(params.get("show_order"));
// 初始化排序字段 // 初始化排序字段
if (StringUtils.isBlank(showOrder)) { if (StringUtils.isBlank(showOrder)) {
@ -698,4 +722,37 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
} }
} }
} }
/**
*
*
* @return
*/
public static String repeatDetermine(String workCode) {
CodeRulePO codeRuleByType = MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleByType(RuleCodeType.USER.getValue());
if (StringUtils.isNotBlank(workCode)) {
workCode = CodeRuleUtil.generateCode(RuleCodeType.USER, workCode);
List<HrmResourcePO> list = getResourceMapper().listByNo(Util.null2String(workCode));
OrganizationAssert.isEmpty(list, "编号不允许重复");
} else {
if (null != codeRuleByType && "1".equals(codeRuleByType.getSerialEnable())) {
workCode = autoCreateWorkCode();
}
}
return workCode;
}
/**
*
*
* @return
*/
private static String autoCreateWorkCode() {
String generateCode = CodeRuleUtil.generateCode(RuleCodeType.USER, "");
List<HrmResourcePO> list = getResourceMapper().listByNo(Util.null2String(generateCode));
if (CollectionUtils.isNotEmpty(list)) {
generateCode = autoCreateWorkCode();
}
return generateCode;
}
} }

@ -1376,7 +1376,18 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
saveImportDetailLog(historyDetailPO); saveImportDetailLog(historyDetailPO);
continue; continue;
} }
// 自动编号 // 自动编号
String workCode = Util.null2String(map.get("work_code"));
try {
// 自动编号
workCode = HrmResourceServiceImpl.repeatDetermine(workCode);
map.put("work_code", workCode);
} catch (Exception e) {
historyDetailPO.setOperateDetail(Util.null2String(e.getMessage()));
historyDetailPO.setStatus("0");
saveImportDetailLog(historyDetailPO);
}
map.put("creator", user.getUID()); map.put("creator", user.getUID());
map.put("delete_type", 0); map.put("delete_type", 0);
map.put("create_time", new Date()); map.put("create_time", new Date());

@ -361,12 +361,20 @@ public class JobServiceImpl extends Service implements JobService {
jobNo = repeatDetermine(jobNo); jobNo = repeatDetermine(jobNo);
params.put("job_no", jobNo); params.put("job_no", jobNo);
params.put("is_key", null == searchParam.getIsKey() ? 0 : searchParam.getIsKey()); params.put("is_key", null == searchParam.getIsKey() ? 0 : searchParam.getIsKey());
Long ecDepartment = searchParam.getEcDepartment(); if (null != searchParam.getParentJob()) {
DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(Util.null2String(ecDepartment)); JobPO parentJob = getJobMapper().getJobById(searchParam.getParentJob());
params.put("parent_dept", jclDepartment.getId()); params.put("parent_dept", parentJob.getParentDept());
params.put("parent_comp", jclDepartment.getParentComp()); params.put("parent_comp", parentJob.getParentComp());
if (null != jclDepartment.getParentComp()) { params.put("ec_company", parentJob.getEcCompany());
params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(Util.null2String(jclDepartment.getParentComp()))); params.put("ec_department", parentJob.getEcDepartment());
} else {
Long ecDepartment = searchParam.getEcDepartment();
DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(Util.null2String(ecDepartment));
params.put("parent_dept", jclDepartment.getId());
params.put("parent_comp", jclDepartment.getParentComp());
if (null != jclDepartment.getParentComp()) {
params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(Util.null2String(jclDepartment.getParentComp())));
}
} }
if (StringUtils.isBlank(params.get("show_order").toString())) { if (StringUtils.isBlank(params.get("show_order").toString())) {
@ -406,12 +414,20 @@ public class JobServiceImpl extends Service implements JobService {
// 更新主表数据 // 更新主表数据
params.put("is_key", searchParam.getIsKey()); params.put("is_key", searchParam.getIsKey());
Long ecDepartment = searchParam.getEcDepartment(); if (null != searchParam.getParentJob()) {
DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(Util.null2String(ecDepartment)); JobPO parentJob = getJobMapper().getJobById(searchParam.getParentJob());
params.put("parent_dept", jclDepartment.getId()); params.put("parent_dept", parentJob.getParentDept());
params.put("parent_comp", jclDepartment.getParentComp()); params.put("parent_comp", parentJob.getParentComp());
if (null != jclDepartment.getParentComp()) { params.put("ec_company", parentJob.getEcCompany());
params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(Util.null2String(jclDepartment.getParentComp()))); params.put("ec_department", parentJob.getEcDepartment());
} else {
Long ecDepartment = searchParam.getEcDepartment();
DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(Util.null2String(ecDepartment));
params.put("parent_dept", jclDepartment.getId());
params.put("parent_comp", jclDepartment.getParentComp());
if (null != jclDepartment.getParentComp()) {
params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(Util.null2String(jclDepartment.getParentComp())));
}
} }
params.put("jobactivityid", JOB_ACTIVITY_ID); params.put("jobactivityid", JOB_ACTIVITY_ID);
new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, params, oldJobPO).sync(); new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, params, oldJobPO).sync();

@ -78,7 +78,7 @@ public class StaffServiceImpl extends Service implements StaffService {
// 判断编制导入模板是否存在,不存在则创建该文件 // 判断编制导入模板是否存在,不存在则创建该文件
static { static {
try { try {
String outPutPath = GCONST.getRootPath() + "/hrm/import/template/staff.xls"; String outPutPath = GCONST.getRootPath() + File.separator + "hrm" + File.separator + "import" + File.separator + "template" + File.separator + "staff.xls";
File excelPathFile = new File(outPutPath); File excelPathFile = new File(outPutPath);
if (!excelPathFile.exists()) { if (!excelPathFile.exists()) {
String columns = "方案编号,方案名称,分部,部门,岗位,编制数"; String columns = "方案编号,方案名称,分部,部门,岗位,编制数";

@ -108,7 +108,7 @@ public class SearchTreeUtil {
Map<String, List<SearchTree>> childMap = deptTrees.stream().collect(Collectors.groupingBy(SearchTree::getParentComp)); Map<String, List<SearchTree>> childMap = deptTrees.stream().collect(Collectors.groupingBy(SearchTree::getParentComp));
boolean isAdd = !childMap.isEmpty(); boolean isAdd = !childMap.isEmpty();
return treeList.stream().peek(e -> { return treeList.stream().peek(e -> {
List<TreeNode> treeNodes = new ArrayList<>(); Set<TreeNode> treeNodes = new HashSet<>();
List<TreeNode> nodes = parentMap.get(e.getId()); List<TreeNode> nodes = parentMap.get(e.getId());
if (CollectionUtils.isNotEmpty(nodes)) { if (CollectionUtils.isNotEmpty(nodes)) {
treeNodes.addAll(nodes); treeNodes.addAll(nodes);
@ -119,7 +119,7 @@ public class SearchTreeUtil {
if (CollectionUtils.isNotEmpty(e.getSubs())) { if (CollectionUtils.isNotEmpty(e.getSubs())) {
treeNodes.addAll(e.getSubs()); treeNodes.addAll(e.getSubs());
} }
e.setSubs(treeNodes); e.setSubs( new ArrayList<>(treeNodes));
}).peek(item -> { }).peek(item -> {
if (CollectionUtils.isNotEmpty(item.getSubs())) { if (CollectionUtils.isNotEmpty(item.getSubs())) {
item.setIsParent(true); item.setIsParent(true);

Loading…
Cancel
Save