From 0823f962a64cc540d9d7514d1dafe2e5bfbcd730 Mon Sep 17 00:00:00 2001 From: liuliang <401809302@qq.com> Date: Thu, 10 Apr 2025 14:07:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E8=A1=A8?= =?UTF-8?q?=E5=90=8D=E8=8E=B7=E5=BE=97e-builder=E4=BF=A1=E6=81=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E5=B0=86=E4=BA=BA=E5=8A=9B=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=90=8C=E6=AD=A5=E7=BB=99=E5=91=98=E5=B7=A5?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jcl/common/JclCommonController.java | 36 +++++++++ .../jcl/common/service/CommonService.java | 2 + .../service/impl/CommonServiceImpl.java | 35 +++++++++ .../EmployeeInformationController.java | 17 ++++ .../esb/SynchronousFieldInitialization.java | 31 ++++++++ .../importAdvice/ImportEmployeeAdvice.java | 23 ++++++ .../service/EmployeeInformationService.java | 2 + .../impl/EmployeeInformationServiceImpl.java | 78 +++++++++++++++++-- .../jcl/organization/util/CommonUtils.java | 12 +++ .../jcl/organization/util/Constants.java | 2 +- .../jcl/organization/util/DatabaseUtils.java | 1 + 11 files changed, 233 insertions(+), 6 deletions(-) create mode 100644 jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/JclCommonController.java create mode 100644 jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/esb/SynchronousFieldInitialization.java create mode 100644 jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/importAdvice/ImportEmployeeAdvice.java diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/JclCommonController.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/JclCommonController.java new file mode 100644 index 0000000..d7b4917 --- /dev/null +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/JclCommonController.java @@ -0,0 +1,36 @@ +package com.weaver.seconddev.jcl.common; + +import com.weaver.common.authority.annotation.WeaPermission; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.seconddev.jcl.common.service.CommonService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 聚才林公共接口 + */ +@Slf4j +@RestController +@RequestMapping("/api/secondev/jcl/common") +public class JclCommonController { + + @Autowired + CommonService commonService; + /** + * 根据表名获得模块id、应用id及模块下的表单视图id + * @return + */ + @WeaPermission(publicPermission = true) + @GetMapping("/getTableContainInformation") + @ResponseBody + public WeaResult> getTableContainInformation(@RequestParam("tableNames") String tableNames){ + Map tableInfomationmap = commonService.getTableContainInformation(tableNames); + + return WeaResult.success(tableInfomationmap); + } +} diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/service/CommonService.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/service/CommonService.java index c5354d1..cd96d76 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/service/CommonService.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/service/CommonService.java @@ -6,4 +6,6 @@ public interface CommonService { Map updateCommon(Map param); Map insertCommon(Map param); + + Map getTableContainInformation(String tableNames); } diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/service/impl/CommonServiceImpl.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/service/impl/CommonServiceImpl.java index 6d13e62..0977e28 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/service/impl/CommonServiceImpl.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/common/service/impl/CommonServiceImpl.java @@ -1,6 +1,8 @@ package com.weaver.seconddev.jcl.common.service.impl; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.gson.Gson; import com.weaver.seconddev.jcl.common.service.CommonService; import com.weaver.seconddev.jcl.organization.util.CommonUtils; import com.weaver.seconddev.jcl.organization.util.DatabaseUtils; @@ -10,6 +12,8 @@ import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; @Slf4j @Service @@ -61,4 +65,35 @@ public class CommonServiceImpl implements CommonService { log.error("needInsertDate: [{}]",dataList); return databaseUtils.execute(insertSql,dataList); } + + @Override + public Map getTableContainInformation(String tableNames) { + String[] tableNameArr = tableNames.split(","); + List list = Lists.newArrayList(); + for (String tableName:tableNameArr){ + list.add("'"+tableName+"'"); + } + String sql = "select id,app_id,form_id,table_name from ebdf_obj where table_name in ("+String.join(",",list)+") and delete_type='0'"; + log.error("getTableContainInformation sql "+sql); + List> objList = CommonUtils.convertList(databaseUtils.getSqlList(sql)); + + + Set formIdList = objList.stream().map(e->"'"+e.get("form_id").toString()+"'").collect(Collectors.toSet()); + sql = "select id,name,form_id from form_layout_multiple where form_id in ("+String.join(",",formIdList)+") and delete_type='0'"; + log.error("getTableContainInformation sql "+sql); + List> multipleIds = CommonUtils.convertList(databaseUtils.getSqlList(sql)); + log.error("multipleIds :[{}] "+multipleIds); + Map resultMap = Maps.newHashMap(); + Gson gson = new Gson(); + for (Map objMap:objList){ + String form_id = CommonUtils.null2String(objMap.get("form_id")); + log.error("form_id :[{}] "+form_id); + List> havemultipleIds = multipleIds.stream().filter(e->CommonUtils.null2String(e.get("form_id")).equals(form_id)).collect(Collectors.toList()); + log.error("havemultipleIds :[{}] "+havemultipleIds); + objMap.put("multiple",gson.toJson(havemultipleIds)); + resultMap.put(objMap.get("table_name"),objMap); + } + + return resultMap; + } } diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/controller/EmployeeInformationController.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/controller/EmployeeInformationController.java index 521bbcc..51f3088 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/controller/EmployeeInformationController.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/controller/EmployeeInformationController.java @@ -110,4 +110,21 @@ public class EmployeeInformationController extends EmployeeCommonController { return WeaResult.success(actionMap); } } + + /** + * 将人力信息字段同步给员工信息 + * @return + */ + @WeaPermission(publicPermission = true) + @GetMapping("/synchronousFieldByHrm") + @ResponseBody + public WeaResult> synchronousFieldByHrm(){ + Map actionMap = new HashMap<>(); + List errorMessage = employeeInformationService.synchronousFieldByHrm(this.getCurrentUser()); + if (errorMessage.size() > 0){ + return WeaResult.fail(errorMessage.toString(),true); + }else { + return WeaResult.success(actionMap); + } + } } \ No newline at end of file diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/esb/SynchronousFieldInitialization.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/esb/SynchronousFieldInitialization.java new file mode 100644 index 0000000..7f5ea9f --- /dev/null +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/esb/SynchronousFieldInitialization.java @@ -0,0 +1,31 @@ +package com.weaver.seconddev.jcl.organization.esb; + +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.jcl.organization.service.EmployeeInformationService; +import com.weaver.teams.domain.user.SimpleEmployee; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * 初始化员工信息和人力资源基本信息以及个人信息自定义字段的同步 + */ +@Service("synchronousFieldInitialization_jcl") +public class SynchronousFieldInitialization implements EsbServerlessRpcRemoteInterface { + + @Autowired + EmployeeInformationService employeeInformationService; + @Override + public WeaResult> execute(Map params) { + List errorList = employeeInformationService.synchronousField(new SimpleEmployee()); + + if (errorList.size() > 0){ + return WeaResult.fail(errorList.toString(),true); + }else { + return WeaResult.success(); + } + } +} diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/importAdvice/ImportEmployeeAdvice.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/importAdvice/ImportEmployeeAdvice.java new file mode 100644 index 0000000..6b24e3c --- /dev/null +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/importAdvice/ImportEmployeeAdvice.java @@ -0,0 +1,23 @@ +package com.weaver.seconddev.jcl.organization.importAdvice; + +import com.google.gson.Gson; +import com.weaver.ebuilder.form.client.service.batch.advice.ImportDataAdvice; +import com.weaver.ebuilder.form.client.service.batch.dto.BaseImportDataAdviceDto; +import com.weaver.ebuilder.form.client.service.batch.dto.DataForImportEntity; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + + +@Component +@Slf4j +public class ImportEmployeeAdvice implements ImportDataAdvice { + @Override + public void dataAdvice(BaseImportDataAdviceDto req) { + List> dataList = req.getDataList(); + Gson gson = new Gson(); + log.error("ImportEmployeeAdvice info :[{}] ",gson.toJson(dataList)); + + } +} diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/EmployeeInformationService.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/EmployeeInformationService.java index f44fda4..3ef8650 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/EmployeeInformationService.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/EmployeeInformationService.java @@ -34,6 +34,8 @@ public interface EmployeeInformationService { List synchronousFieldByEmployee(SimpleEmployee employee); + List synchronousFieldByHrm(SimpleEmployee employee); + /** * 获得字段信息 * @param entity diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/impl/EmployeeInformationServiceImpl.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/impl/EmployeeInformationServiceImpl.java index ca24f7e..25cc6b4 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/impl/EmployeeInformationServiceImpl.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/impl/EmployeeInformationServiceImpl.java @@ -223,7 +223,7 @@ public class EmployeeInformationServiceImpl implements EmployeeInformationServic List errorMessage = Lists.newArrayList(); WeaResult> result = batchSaveInformation(employee_form_id,employeeFieldList,dataList,ModuleSource.ebuilderform,null,null); if (result.getCode() != 200){ - errorMessage.add(result.getMsg()); + errorMessage.add("员工信息表"+result.getMsg()); } //保存人力资源-基本信息 @@ -231,14 +231,14 @@ public class EmployeeInformationServiceImpl implements EmployeeInformationServic customParam.put("formId",personCustomfieldFormid); WeaResult> result2 = batchSaveInformation(personCustomfieldFormid,personCustomFieldList,null,ModuleSource.hrm,customParam,null); if (result2.getCode() != 200){ - errorMessage.add(result2.getMsg()); + errorMessage.add("人力资源基本信息自定义表"+result2.getMsg()); } //保存人力资源-个人信息 Map customParam2 = Maps.newHashMap(); customParam2.put("apiModule","hr"); WeaResult> result3 = batchSaveInformation(personInfCustomFormid,personInfCustomFieldList,null,ModuleSource.hruserinfo,customParam2,null); if (result3.getCode() != 200){ - errorMessage.add(result3.getMsg()); + errorMessage.add("人力资源个人信息自定义表"+result3.getMsg()); } return errorMessage; } @@ -312,18 +312,86 @@ public class EmployeeInformationServiceImpl implements EmployeeInformationServic customParam.put("formId",personCustomfieldFormid); WeaResult> result2 = batchSaveInformation(personCustomfieldFormid,personCustomFieldList,null,ModuleSource.hrm,customParam,personCustomids); if (result2.getCode() != 200){ - errorMessage.add(result2.getMsg()); + errorMessage.add("基本信息表"+result2.getMsg()); } //保存人力资源-个人信息 Map customParam2 = Maps.newHashMap(); customParam2.put("apiModule","hr"); WeaResult> result3 = batchSaveInformation(personInfCustomFormid,personInfCustomFieldList,null,ModuleSource.hruserinfo,customParam2,personInfCustomIds); if (result3.getCode() != 200){ - errorMessage.add(result3.getMsg()); + errorMessage.add("个人信息表"+result3.getMsg()); } return errorMessage; } + @Override + public List synchronousFieldByHrm(SimpleEmployee employee) { + String sql = "select form_id from form_table where table_name=? and delete_type='0'"; + List paramList = Lists.newArrayList(); + paramList.add(Constants.EMPLOYEE_INFORMATION); + String employee_form_id = CommonUtils.null2String(databaseUtils.getSqlList(sql,paramList).get(0).get("form_id")); + + sql = "select id,module from FORM where (module='hrm' and ownership='personal') or module='hruserinfo'"; + List> personFormList = databaseUtils.getSqlList(sql); + Map personFormMap = personFormList.stream().collect(Collectors.toMap(e->e.get("module").toString(),e->e.get("id").toString())); + //基本信息自定义字段表 + String personCustomfieldFormid=personFormMap.get("hrm"); + //人力资源-个人信息自定义字段 + String personInfCustomFormid=personFormMap.get("hrm"); + + + List formIdParamList = Lists.newArrayList(); + formIdParamList.add(employee_form_id); + sql = "select id,group_name from form_field_group where form_id=? and delete_type='0'"; + List> fieldGroupList = databaseUtils.getSqlList(sql,formIdParamList); + Map fieldGroup = fieldGroupList.stream().collect(Collectors.toMap(e->e.get("group_name").toString(),e->e.get("id").toString())); + formIdParamList.add(personCustomfieldFormid); + + /** + * 员工信息表所有字段 + */ + FieldManageParam ownEntity = getFieldManageParam(employee_form_id,ModuleSource.ebuilderform); + List> employeeFieldList = getFieldList(ownEntity,employee); + /** + * 人力资源-基本信息自定义字段 + */ + FieldManageParam personCustomEntity = getFieldManageParam(personCustomfieldFormid,ModuleSource.hrm); + + + List> personCustomFieldList = getFieldList(personCustomEntity,employee); + List> customFieldList = personCustomFieldList.stream().filter(e->!e.get("componentKey").equals("BaseField")).collect(Collectors.toList()); + /** + * 人力资源-个人信息自定义字段 + */ + FieldManageParam personInfCustomEntity = getFieldManageParam(personInfCustomFormid,ModuleSource.hruserinfo); + List> personInfCustomFieldList = getFieldList(personInfCustomEntity,employee); + List> infcustomFieldList = personInfCustomFieldList.stream().filter(e->!e.get("componentKey").equals("BaseField")).collect(Collectors.toList()); + + //组装员工信息 + List deleteIds = packageBatchSaveParamHaveDelete(employeeFieldList,customFieldList,fieldGroup.get(Constants.BASIC_INFORMATION)); + deleteIds.addAll(packageBatchSaveParamHaveDelete(employeeFieldList,infcustomFieldList,fieldGroup.get(Constants.PERSONAL_INFORMATION))); + + + + log.error("employeeFieldList : [{}]",employeeFieldList); + log.error("personCustomFieldList : [{}]",personCustomFieldList); + log.error("personInfCustomFieldList : [{}]",personInfCustomFieldList); + + /** + * 批量保存 + */ + //员工信息表 + sql = "select b.id formtableid,a.* from sub_form a left join form_table b on a.id=b.form_id where a.form_id=?"; + List> dataList = databaseUtils.getSqlList(sql,CommonUtils.getParamList(employee_form_id)); + List errorMessage = Lists.newArrayList(); + WeaResult> result = batchSaveInformation(employee_form_id,employeeFieldList,dataList,ModuleSource.ebuilderform,null,deleteIds); + if (result.getCode() != 200){ + errorMessage.add("员工信息表"+result.getMsg()); + } + + return errorMessage; + } + @Override public List> getFieldList(FieldManageParam entity,SimpleEmployee employee) { diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/CommonUtils.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/CommonUtils.java index d3a762d..3d99894 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/CommonUtils.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/CommonUtils.java @@ -477,4 +477,16 @@ public class CommonUtils { } } + public static List> convertList(List> objList){ + List> resultList = Lists.newArrayList(); + for (Map map:objList){ + Map resultMap = Maps.newHashMap(); + for (Map.Entry entry :map.entrySet()){ + resultMap.put(entry.getKey(),CommonUtils.null2String(entry.getValue())); + } + resultList.add(resultMap); + } + return resultList; + } + } diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/Constants.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/Constants.java index 2157f38..c052436 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/Constants.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/Constants.java @@ -14,5 +14,5 @@ public class Constants { /** * 员工信息表 */ - public static final String EMPLOYEE_INFORMATION="uf_ygxxglfzcswd"; + public static final String EMPLOYEE_INFORMATION="uf_jcl_employee_information"; } diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/DatabaseUtils.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/DatabaseUtils.java index c62469d..f2ef6b4 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/DatabaseUtils.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/util/DatabaseUtils.java @@ -343,6 +343,7 @@ public class DatabaseUtils { return recordList; } + /*** * * @param sourceType