表同步

main
liuliang 3 weeks ago
parent 07223a3dfc
commit 5af90ad077

@ -0,0 +1,55 @@
package com.weaver.seconddev.jcl.common.web;
import com.weaver.common.hrm.util.HrmCommonUtil;
import com.weaver.form.controller.FormBaseController;
import com.weaver.form.controller.core.FormBaseServiceHandler;
import com.weaver.teams.domain.user.SimpleEmployee;
import com.weaver.teams.security.context.UserContext;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
public class EmployeeCommonController {
@Autowired
private HrmCommonUtil hrmCommonUtil;
@Autowired
private FormBaseServiceHandler formBaseServiceHandler;
@Autowired
protected HttpServletRequest request;
protected SimpleEmployee getCurrentUser(Long employeeId) {
if (employeeId != null) {
SimpleEmployee employee = this.hrmCommonUtil.getSimpleEmployee(employeeId);
return employee != null ? this.getCurrentUserCommon(employee) : this.getCurrentUser();
} else {
return this.getCurrentUser();
}
}
protected SimpleEmployee getCurrentUser() {
SimpleEmployee se = (SimpleEmployee) UserContext.getCurrentUser();
return this.getCurrentUserCommon(se);
}
private SimpleEmployee getCurrentUserCommon(SimpleEmployee se) {
if (se == null) {
return null;
} else {
SimpleEmployee simple = new SimpleEmployee();
simple.setId(se.getId());
simple.setUserId(se.getUserId());
simple.setUsername(se.getUsername());
simple.setPinyin(se.getPinyin());
simple.setImUid(se.getImUid());
simple.setImCid(se.getImCid());
simple.setTenantKey(se.getTenantKey());
simple.setDepartment(se.getDepartment());
simple.setAdmin(se.isAdmin());
simple.setModuleAdmin(se.isModuleAdmin());
simple.setModules(se.getModules());
simple.setIsPartTime(se.getIsPartTime() != null && se.getIsPartTime());
simple.setCurrentExtraId(se.getCurrentExtraId());
return simple;
}
}
}

@ -2,6 +2,7 @@ package com.weaver.seconddev.jcl.organization.controller;
import com.weaver.common.authority.annotation.WeaPermission;
import com.weaver.seconddev.jcl.common.web.EmployeeCommonController;
import com.weaver.seconddev.jcl.organization.entity.Employee;
import com.weaver.seconddev.jcl.organization.entity.PendingEmployee;
import com.weaver.seconddev.jcl.organization.service.EmployeeInformationService;
@ -25,7 +26,7 @@ import java.util.Map;
@Slf4j
@RestController
@RequestMapping("/api/secondev/jcl/employeeInformation")
public class EmployeeInformationController {
public class EmployeeInformationController extends EmployeeCommonController {
@Autowired
private EmployeeInformationService employeeInformationService;
@ -62,7 +63,7 @@ public class EmployeeInformationController {
}
/**
*
*
* @return
*/
@WeaPermission(publicPermission = true)
@ -73,6 +74,19 @@ public class EmployeeInformationController {
Map<String, Object> actionMap = new HashMap<>();
employeeInformationService.updatePendingEmploy(employee);
return actionMap;
}
/**
*
* @return
*/
@WeaPermission(publicPermission = true)
@Produces(MediaType.APPLICATION_JSON)
@GetMapping("/synchronousField")
public Map<String, Object> synchronousField(){
Map<String, Object> actionMap = new HashMap<>();
employeeInformationService.synchronousField(this.getCurrentUser());
return actionMap;
}
}

@ -1,7 +1,9 @@
package com.weaver.seconddev.jcl.organization.service;
import com.weaver.common.form.param.FieldManageParam;
import com.weaver.seconddev.jcl.organization.entity.Employee;
import com.weaver.seconddev.jcl.organization.entity.PendingEmployee;
import com.weaver.teams.domain.user.SimpleEmployee;
import java.util.List;
import java.util.Map;
@ -13,4 +15,14 @@ public interface EmployeeInformationService {
List<Map<String, Object>> getPendingEmployment(Employee employee);
void updatePendingEmploy(PendingEmployee pendingEmployee);
void synchronousField(SimpleEmployee employee);
/**
*
* @param entity
* @param employee
* @return
*/
List<Map<Object, Object>> getFieldList(FieldManageParam entity, SimpleEmployee employee);
}

@ -2,21 +2,38 @@ package com.weaver.seconddev.jcl.organization.service.impl;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.gson.Gson;
import com.weaver.common.base.entity.result.WeaResult;
import com.weaver.common.form.dto.form.FormTableDto;
import com.weaver.common.form.fieldmanage.service.FormFieldManageService;
import com.weaver.common.form.metadata.ModuleSource;
import com.weaver.common.form.param.FieldManageParam;
import com.weaver.common.form.physical.enums.FormTableType;
import com.weaver.common.form.service.IdGeneratorService;
import com.weaver.form.controller.FormBaseController;
import com.weaver.form.controller.manage.FormFieldManageController;
import com.weaver.form.entity.FormFieldManageParam;
import com.weaver.seconddev.jcl.common.service.CommonService;
import com.weaver.seconddev.jcl.organization.entity.Employee;
import com.weaver.seconddev.jcl.organization.entity.PendingEmployee;
import com.weaver.seconddev.jcl.organization.service.EmployeeInformationService;
import com.weaver.seconddev.jcl.organization.util.CommonUtils;
import com.weaver.seconddev.jcl.organization.util.Constants;
import com.weaver.seconddev.jcl.organization.util.DatabaseUtils;
import com.weaver.teams.domain.user.SimpleEmployee;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
*/
@Slf4j
@Service
public class EmployeeInformationServiceImpl implements EmployeeInformationService {
@ -24,12 +41,15 @@ public class EmployeeInformationServiceImpl implements EmployeeInformationServic
private DatabaseUtils databaseUtils;
@Autowired
private CommonService commonService;
@Autowired
private IdGeneratorService idGeneratorService;
@Autowired
private FormFieldManageController fieldManageController;
@Override
public List<Map<String, Object>> getInformation(Employee employee) {
String sql = "select * from uf_jcl_employee_information where (delete_type is null or delete_type=false) and (";
String sql = "select * from uf_jcl_employee_information where delete_type='0' and (";
List<String> paramList = Lists.newArrayList();
if (employee.getMobile() != null && !"".equals(employee.getMobile())){
@ -56,7 +76,7 @@ public class EmployeeInformationServiceImpl implements EmployeeInformationServic
String ygzt = CommonUtils.null2String(userMap.get("personnel_status"));
if (ygzt.equals("5")){
//离职
sql = "select zhgzr,lzqbm from uf_jcl_lzxxjl where glyg=? and (delete_type is null or delete_type<>'1') ";
sql = "select zhgzr,lzqbm from uf_jcl_lzxxjl where glyg=? and delete_type='0' ";
List<Map<String, Object>> resignList = databaseUtils.getSqlList(sql, CommonUtils.getParamList(userMap.get("id").toString()));
if (resignList.size() > 0){
userMap.put("zhgzr",resignList.get(0).get("zhgzr"));
@ -64,7 +84,7 @@ public class EmployeeInformationServiceImpl implements EmployeeInformationServic
ssbm = CommonUtils.null2String(resignList.get(0).get("lzqbm"));
}else if (ygzt.equals("6")){
//退休
sql = "select zhgzr,txqbm from uf_jcl_txxxjl where glyg=? and (delete_type is null or delete_type<>'1') ";
sql = "select zhgzr,txqbm from uf_jcl_txxxjl where glyg=? and delete_type='0' ";
List<Map<String, Object>> retireList = databaseUtils.getSqlList(sql, CommonUtils.getParamList(userMap.get("id").toString()));
if (retireList.size() > 0){
userMap.put("zhgzr",retireList.get(0).get("zhgzr"));
@ -85,7 +105,7 @@ public class EmployeeInformationServiceImpl implements EmployeeInformationServic
@Override
public List<Map<String, Object>> getPendingEmployment(Employee employee) {
String sql = "select * from uf_jcl_rzgl where (delete_type is null or delete_type<>'1') and (";
String sql = "select * from uf_jcl_rzgl where delete_type<>'0' and (";
List<String> paramList = Lists.newArrayList();
if (employee.getMobile() != null && !"".equals(employee.getMobile())){
@ -127,4 +147,157 @@ public class EmployeeInformationServiceImpl implements EmployeeInformationServic
param.put("condition",condition);
commonService.updateCommon(param);
}
@Override
public void synchronousField(SimpleEmployee employee) {
String sql = "select form_id from form_table where table_name=? and delete_type='0'";
List<String> paramList = Lists.newArrayList();
paramList.add(Constants.EMPLOYEE_INFORMATION);
String employee_form_id = CommonUtils.null2String(databaseUtils.getSqlList(sql,paramList).get(0).get("form_id"));
//基本信息自定义字段表
String personCustomfieldFormid="1088177870727446575";
List<String> 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<Map<String, Object>> fieldGroupList = databaseUtils.getSqlList(sql,formIdParamList);
Map<String,String> fieldGroup = fieldGroupList.stream().collect(Collectors.toMap(e->e.get("group_name").toString(),e->e.get("id").toString()));
formIdParamList.add(personCustomfieldFormid);
// sql = "select * from form_field where form_id in ("+String.join(",",formIdParamList)+") and delete_type='0'";
// List<Map<String, Object>> fieldList = databaseUtils.getSqlList(sql,formIdParamList);
// Map<String,List<Map<String, Object>>> fieldGroupMapping = fieldList.stream().collect(Collectors.groupingBy(e->e.get("form_id").toString()));
/**
*
*/
FieldManageParam ownEntity = new FieldManageParam();
ownEntity.setFormId(Long.valueOf(employee_form_id));
ownEntity.setModule(ModuleSource.ebuilderform);
ownEntity.setNeedDataCount(true);
ownEntity.setNeedPanelField(true);
List<Map<Object, Object>> employeeFieldList = getFieldList(ownEntity,employee);
//员工信息主表-基本信息字段
List<Map<Object, Object>> mainFormBasicFieldList = employeeFieldList.stream().filter(e->fieldGroup.get(Constants.BASIC_INFORMATION).equals(e.get("groupId")) && "".equals(CommonUtils.null2String(e.get("subFormId")))).collect(Collectors.toList());
//员工信息主表-账户信息字段
List<Map<Object, Object>> mainFormAccountFieldList = employeeFieldList.stream().filter(e->fieldGroup.get(Constants.ACCOUNT_INFORMATION).equals(e.get("groupId")) && "".equals(CommonUtils.null2String(e.get("subFormId")))).collect(Collectors.toList());
//员工信息主表-个人信息字段
List<Map<Object, Object>> mainFormPersonFieldList = employeeFieldList.stream().filter(e->fieldGroup.get(Constants.PERSONAL_INFORMATION).equals(e.get("groupId")) && "".equals(CommonUtils.null2String(e.get("subFormId")))).collect(Collectors.toList());
/**
* -
*/
FieldManageParam personCustomEntity = new FieldManageParam();
personCustomEntity.setFormId(Long.valueOf(personCustomfieldFormid));
personCustomEntity.setModule(ModuleSource.hrm);
personCustomEntity.setNeedDataCount(true);
personCustomEntity.setNeedPanelField(true);
List<Map<Object, Object>> personCustomFieldList = getFieldList(personCustomEntity,employee);
List<Map<Object, Object>> customFieldList = personCustomFieldList.stream().filter(e->!e.get("componentKey").equals("BaseField")).collect(Collectors.toList());
for (Map<Object, Object> customField:customFieldList){
List<Map<Object, Object>> list = mainFormBasicFieldList.stream().filter(e->e.get("dataKey").equals(customField.get("dataKey"))).collect(Collectors.toList());
if (list.size() == 0){
customField.put("formId",employeeFieldList.get(0).get("formId"));
customField.put("formTableId",employeeFieldList.get(0).get("formTableId"));
customField.put("groupId",fieldGroup.get(Constants.BASIC_INFORMATION));
customField.put("fieldId",idGeneratorService.generatorIds(1)[0]);
employeeFieldList.add(customField);
}
}
for (Map<Object, Object> formBasicField:mainFormBasicFieldList){
List<Map<Object, Object>> list = customFieldList.stream().filter(e->e.get("dataKey").equals(formBasicField.get("dataKey"))).collect(Collectors.toList());
if (list.size() == 0){
formBasicField.put("formId",personCustomFieldList.get(0).get("formId"));
formBasicField.put("formTableId",personCustomFieldList.get(0).get("formTableId"));
formBasicField.put("groupId","-1");
formBasicField.put("fieldId",idGeneratorService.generatorIds(1)[0]);
personCustomFieldList.add(formBasicField);
}
}
Gson gson = new Gson();
log.error("employeeFieldList : [{}]",employeeFieldList);
log.error("personCustomFieldList : [{}]",personCustomFieldList);
/**
*
*/
//员工信息表
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<Map<String, Object>> dataList = databaseUtils.getSqlList(sql,CommonUtils.getParamList(employee_form_id));
FormFieldManageParam saveEmployeeEntity = new FormFieldManageParam();
saveEmployeeEntity.setFormId(Long.valueOf(employee_form_id));
saveEmployeeEntity.setModule(ModuleSource.ebuilderform);
saveEmployeeEntity.setJsonObjList(getJsonObjList(employeeFieldList));
List<FormTableDto> forms = Lists.newArrayList();
for (Map<String, Object> map:dataList){
FormTableDto formTableDto = new FormTableDto();
formTableDto.setDataCount(1);
formTableDto.setDataKey(map.get("data_key").toString());
if (map.get("delete_type").equals("0")){
formTableDto.setDelete(false);
formTableDto.setDeleteType(false);
}else {
formTableDto.setDelete(true);
formTableDto.setDeleteType(true);
}
formTableDto.setDescribe(map.get("describe").toString());
formTableDto.setEditTable(true);
formTableDto.setFormTableId(Long.valueOf(map.get("formtableid").toString()));
formTableDto.setId(Long.valueOf(map.get("id").toString()));
formTableDto.setFormId(Long.valueOf(map.get("id").toString()));
formTableDto.setName(CommonUtils.null2String(map.get("title")));
formTableDto.setTableName(map.get("data_key").toString());
formTableDto.setTableType(FormTableType.MAIN);
formTableDto.setOrder(CommonUtils.null2String(map.get("show_order")));
forms.add(formTableDto);
}
saveEmployeeEntity.setForms(forms);
WeaResult<Map<String, Object>>result = batchSaveFormField(saveEmployeeEntity);
log.error("save saveEmployeeEntity : [{}]",gson.toJson(result));
//保存人力资源-基本信息
FormFieldManageParam savePersonCustomEntiy = new FormFieldManageParam();
savePersonCustomEntiy.setFormId(Long.valueOf(personCustomfieldFormid));
savePersonCustomEntiy.setModule(ModuleSource.hrm);
savePersonCustomEntiy.setJsonObjList(getJsonObjList(personCustomFieldList));
Map<String, Object> customParam = Maps.newHashMap();
customParam.put("formId",personCustomfieldFormid);
savePersonCustomEntiy.setCustomParam(customParam);
WeaResult<Map<String, Object>> result2 = batchSaveFormField(savePersonCustomEntiy);
log.error("save PersonCustom : [{}]",gson.toJson(result2));
}
@Override
public List<Map<Object, Object>> getFieldList(FieldManageParam entity,SimpleEmployee employee) {
// List<Map<Object, Object>> fieldList = (CommonUtils.getRealService(module.name(), "FormFieldManageService", FormFieldManageService.class)).getFormFieldJsonByFormId(entity, employee);
WeaResult<Map<String, Object>> result = fieldManageController.getFormFieldList(entity);
Gson gson = new Gson();
log.error("getFieldList :[{}]",gson.toJson(result));
Map<String, Object> resultMap = result.getData();
return (List<Map<Object, Object>>)resultMap.get("data");
}
/**
*
* @param entity
* @return
*/
public WeaResult<Map<String, Object>> batchSaveFormField(FormFieldManageParam entity) {
return fieldManageController.batchSaveFormField(entity);
}
public List<String> getJsonObjList(List<Map<Object, Object>> list){
Gson gson = new Gson();
List<String> josnObjList = Lists.newArrayList();
for (Map<Object, Object> map:list){
josnObjList.add(gson.toJson(map));
}
return josnObjList;
}
}

@ -4,10 +4,12 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.weaver.common.form.context.SpringContext;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
@ -455,5 +457,24 @@ public class CommonUtils {
return dataMap;
}
public static <T> T getRealService(String module, String serviceName, Class<T> tClass) {
try {
module = SpringContext.convertModule(module);
return SpringContext.getBean(module + "_" + serviceName, tClass);
} catch (BeansException var9) {
try {
module = SpringContext.convertModule(module);
return SpringContext.getBean(module + serviceName, tClass);
} catch (BeansException var8) {
if (serviceName != null && serviceName.length() > 1) {
String start = serviceName.substring(0, 1).toLowerCase(Locale.ROOT);
String end = serviceName.substring(1);
return SpringContext.getBean(start + end, tClass);
} else {
throw new RuntimeException("未找到名为" + serviceName + "的实例对象,请实现" + tClass.getName() + "接口并添加@Service(\"" + module + "_" + serviceName + "\")注解");
}
}
}
}
}

@ -2,5 +2,17 @@ package com.weaver.seconddev.jcl.organization.util;
public class Constants {
public static final String SOURCE_TYPE="LOGIC";
public static final String GROUP_ID="weaver-ebuilder-form-service";
public static final String BASIC_INFORMATION="基本信息";
public static final String ACCOUNT_INFORMATION="账户信息";
public static final String PERSONAL_INFORMATION="个人信息";
/**
*
*/
public static final String EMPLOYEE_INFORMATION="uf_ygxxglfzcswd";
}

@ -337,6 +337,11 @@ public class DatabaseUtils {
List<Map<String, Object>> recordList = getDataSourceList(result);
return recordList;
}
public List<Map<String, Object>> getSqlList(String dataSql){
Map<String, Object> result = execute(dataSql);
List<Map<String, Object>> recordList = getDataSourceList(result);
return recordList;
}
/***
*

Loading…
Cancel
Save