编制、人员编号、岗位部门、自定义下拉框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();
for (int i = 0; i < size; 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;

@ -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);
HrmResourcePO getResourceById(@Param("id") String id);
List<HrmResourcePO> listByNo(@Param("workCode") String workCode);
}

@ -102,6 +102,11 @@
<include refid="baseColumns"/>
from jcl_org_hrmresource t where delete_type = 0 and id = #{id}
</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">
<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.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.hrm.entity.RuleCodeType;
import com.engine.hrm.util.face.HrmFaceCheckManager;
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.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.HrmResourceSearchParam;
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.job.bo.JobBO;
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.enums.LogModuleNameEnum;
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.department.DepartmentMapper;
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.post.PostInfoMapper;
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.LevelMapper;
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.OrganizationAssert;
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.MapperProxyFactory;
import com.engine.organization.util.page.PageUtil;
@ -153,6 +159,10 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
return MapperProxyFactory.getProxy(HrmResourceMapper.class);
}
private static ResourceMapper getResourceMapper() {
return MapperProxyFactory.getProxy(ResourceMapper.class);
}
private ExtendTitleMapper getExtendTitleMapper() {
return MapperProxyFactory.getProxy(ExtendTitleMapper.class);
}
@ -206,7 +216,10 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
@Override
public Long saveBaseForm(Map<String, Object> params) {
HasRightUtil.hasRight(user, RIGHT_NAME, false);
String workCode = (String) params.get("work_code");
// 判断是否开启自动编号
workCode = repeatDetermine(workCode);
params.put("work_code", workCode);
// 完善新增参数
completeParams(params);
@ -271,6 +284,13 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
if ("0".equals(groupId)) {
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);
@ -576,7 +596,9 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
for (DepartmentPO departmentPO : filterDeparts) {
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(","));
if (!StringUtil.isEmpty(parentCompS)) {
@ -589,7 +611,6 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
for (CompPO compPO : filterComps) {
buildParentComps(compPO, builderComps);
}
List<SearchTree> searchTrees = SearchTreeUtil.builderTreeMode(deptTrees, jobTrees);
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("ec_department", jobById.getEcDepartment());
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"));
// 初始化排序字段
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);
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("delete_type", 0);
map.put("create_time", new Date());

@ -361,12 +361,20 @@ public class JobServiceImpl extends Service implements JobService {
jobNo = repeatDetermine(jobNo);
params.put("job_no", jobNo);
params.put("is_key", null == searchParam.getIsKey() ? 0 : searchParam.getIsKey());
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 (null != searchParam.getParentJob()) {
JobPO parentJob = getJobMapper().getJobById(searchParam.getParentJob());
params.put("parent_dept", parentJob.getParentDept());
params.put("parent_comp", parentJob.getParentComp());
params.put("ec_company", parentJob.getEcCompany());
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())) {
@ -406,12 +414,20 @@ public class JobServiceImpl extends Service implements JobService {
// 更新主表数据
params.put("is_key", searchParam.getIsKey());
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 (null != searchParam.getParentJob()) {
JobPO parentJob = getJobMapper().getJobById(searchParam.getParentJob());
params.put("parent_dept", parentJob.getParentDept());
params.put("parent_comp", parentJob.getParentComp());
params.put("ec_company", parentJob.getEcCompany());
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);
new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, params, oldJobPO).sync();

@ -78,7 +78,7 @@ public class StaffServiceImpl extends Service implements StaffService {
// 判断编制导入模板是否存在,不存在则创建该文件
static {
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);
if (!excelPathFile.exists()) {
String columns = "方案编号,方案名称,分部,部门,岗位,编制数";

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

Loading…
Cancel
Save