新增部门合并、拆分接口
This commit is contained in:
parent
2bc014699b
commit
e2669b8b56
|
|
@ -1,14 +1,12 @@
|
|||
package com.weaver.seconddev.jcl.organization.controller;
|
||||
|
||||
import com.weaver.common.authority.annotation.WeaPermission;
|
||||
import com.weaver.seconddev.jcl.organization.entity.Department;
|
||||
import com.weaver.seconddev.jcl.organization.service.SysDepartmentService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -54,4 +52,32 @@ public class SysDepartmentController {
|
|||
return actionMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 部门合并
|
||||
* @return
|
||||
*/
|
||||
@WeaPermission(publicPermission = true)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@PostMapping("/mergeDepartment")
|
||||
public Map<String, Object> mergeDepartment(@RequestBody Department department){
|
||||
log.error("mergeDepartment department:[{}]",department);
|
||||
Map<String, Object> actionMap = new HashMap<>();
|
||||
sysDepartmentService.mergeDepartment(department);
|
||||
return actionMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 部门拆分
|
||||
* @return
|
||||
*/
|
||||
@WeaPermission(publicPermission = true)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@PostMapping("/splitDepartment")
|
||||
public Map<String, Object> splitDepartment(@RequestBody List<Department> list){
|
||||
log.error("splitDepartment list:[{}]",list);
|
||||
Map<String, Object> actionMap = new HashMap<>();
|
||||
sysDepartmentService.splitDepartment(list);
|
||||
return actionMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -76,6 +76,14 @@ public class Department {
|
|||
* 所属成本
|
||||
*/
|
||||
private String sscb;
|
||||
/**
|
||||
* 部门自定义表:form_id
|
||||
*/
|
||||
private String form_id;
|
||||
/**
|
||||
* 部门自定义表:layout_id
|
||||
*/
|
||||
private String layout_id;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,9 +1,15 @@
|
|||
package com.weaver.seconddev.jcl.organization.service;
|
||||
|
||||
import com.weaver.seconddev.jcl.organization.entity.Department;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface SysDepartmentService {
|
||||
|
||||
Map<String,List<String>> checkIsNotDisableDept(String deptId);
|
||||
|
||||
void mergeDepartment(Department department);
|
||||
|
||||
void splitDepartment(List<Department> list);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,32 +1,44 @@
|
|||
package com.weaver.seconddev.jcl.organization.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||
import com.weaver.ebuilder.form.client.entity.obj.Obj;
|
||||
import com.weaver.ebuilder.form.client.service.obj.RemoteEBObjService;
|
||||
import com.weaver.common.distribution.genid.IdGenerator;
|
||||
import com.weaver.publishkit.api.util.PublishKitRuntimeUtil;
|
||||
import com.weaver.seconddev.jcl.organization.entity.Department;
|
||||
import com.weaver.seconddev.jcl.organization.service.SysDepartmentService;
|
||||
import com.weaver.seconddev.jcl.organization.util.DatabaseUtils;
|
||||
import com.weaver.seconddev.jcl.organization.util.RecruitModuleUtils;
|
||||
import com.weaver.seconddev.jcl.organization.util.SyncDataUtils;
|
||||
import com.weaver.teams.security.context.UserContext;
|
||||
import com.weaver.teams.security.user.User;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class SysDepartmentServiceImpl implements SysDepartmentService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(SysDepartmentServiceImpl.class);
|
||||
|
||||
private static final String tenantKey = RecruitModuleUtils.getCurrentTenantKey();
|
||||
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
|
||||
@Autowired
|
||||
private DatabaseUtils databaseUtils;
|
||||
@Autowired
|
||||
PublishKitRuntimeUtil publishKitRuntimeUtil;
|
||||
@Autowired
|
||||
private SyncDataUtils syncDataUtils;
|
||||
@Autowired
|
||||
RecruitModuleUtils recruitModuleUtils;
|
||||
|
||||
public static String path = "/api/hrm/restful/syncDepartment";
|
||||
public static String deletedPath = "/api/hrm/restful/disableDepartment";
|
||||
|
||||
|
||||
@Override
|
||||
|
|
@ -64,74 +76,462 @@ public class SysDepartmentServiceImpl implements SysDepartmentService {
|
|||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mergeDepartment(Department department) {
|
||||
|
||||
|
||||
/**
|
||||
* 多租户查询主表名称(JCL_开放平台接口配置表)
|
||||
*/
|
||||
Map<String, String> ebTablePzInfo = recruitModuleUtils.getEbTableInfo("uf_jcl_employee_information_apptag", "uf_jcl_kfptjkpzb_tag");
|
||||
String objPzId = ebTablePzInfo.get("objId");
|
||||
String ebTablePzName = ebTablePzInfo.get("table_name");
|
||||
log.error("mergeDepartment.objPzId:{},ebTablePzName:{}", objPzId, ebTablePzName);
|
||||
|
||||
/**
|
||||
* 获取token系统参数信息查询
|
||||
*/
|
||||
Map<String, Object> apiInfo = getApiInfo(ebTablePzName);
|
||||
String host = String.valueOf(apiInfo.get("ipdz"));
|
||||
log.error("mergeDepartment.apiInfo:{}", apiInfo);
|
||||
/**
|
||||
* 新增部门
|
||||
*/
|
||||
addSysDept(department, apiInfo, host);
|
||||
|
||||
/**
|
||||
* 封存部门
|
||||
*/
|
||||
List<String> departmentId = getDepartmentId(department.getBhbbmid());
|
||||
Map<String, Object> deleteMap = deleteSysDept(departmentId, apiInfo, host);
|
||||
log.error("mergeDepartment.deleteMap:{}", deleteMap);
|
||||
|
||||
/**
|
||||
* 查询被合并部门的一级下级部门
|
||||
*/
|
||||
String bhbbmcode = null!= department.getBhbbmid()? department.getBhbbmid() : "";
|
||||
String code = null!= department.getBh()? department.getBh() : "";
|
||||
List<String> firstLevelDepts = getFirstLevelDepts(bhbbmcode);
|
||||
log.error("mergeDepartment.firstLevelDepts:{}", firstLevelDepts);
|
||||
/**
|
||||
* 更改下级部门的上级部门为新增部门以及被合并部门下的全部人员
|
||||
*/
|
||||
updateFirstLevelDeptAndEmployee(code, firstLevelDepts, bhbbmcode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void splitDepartment(List<Department> list) {
|
||||
/**
|
||||
* 多租户查询主表名称(JCL_开放平台接口配置表)
|
||||
*/
|
||||
Map<String, String> ebTablePzInfo = recruitModuleUtils.getEbTableInfo("uf_jcl_employee_information_apptag", "uf_jcl_kfptjkpzb_tag");
|
||||
String objPzId = ebTablePzInfo.get("objId");
|
||||
String ebTablePzName = ebTablePzInfo.get("table_name");
|
||||
log.error("splitDepartment.objPzId:{},ebTablePzName:{}", objPzId, ebTablePzName);
|
||||
|
||||
/**
|
||||
* 获取token系统参数信息查询
|
||||
*/
|
||||
Map<String, Object> apiInfo = getApiInfo(ebTablePzName);
|
||||
String host = String.valueOf(apiInfo.get("ipdz"));
|
||||
log.error("splitDepartment.apiInfo:{}", apiInfo);
|
||||
|
||||
/**
|
||||
* 新增部门
|
||||
*/
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
for (Department department : list) {
|
||||
addSysDept(department, apiInfo, host);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 封存部门
|
||||
*/
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
List<String> departmentId = getDepartmentId(list.get(0).getBcfzzid());
|
||||
Map<String, Object> deleteMap = deleteSysDept(departmentId, apiInfo, host);
|
||||
log.error("splitDepartment.deleteMap:{}", deleteMap);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据应用id和表单tag获取当前租户下对应表单id和表名
|
||||
* 根据接口标识查询开放平台接口参数
|
||||
* @return
|
||||
*/
|
||||
private Map<String,String> getEbTableInfo(String appTag,String objTag){
|
||||
Map<String,String> map = new HashMap<>();
|
||||
String appId = getEbAppId(appTag);
|
||||
log.error("getEbTableName.appId:{}", appId);
|
||||
String sql = "select id, table_name from ebdf_obj where tag = '"+objTag+"' and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' and app_id = "+appId;
|
||||
log.error("getEbTableName.sql:{}", sql);
|
||||
public Map<String, Object> getApiInfo(String ebTablePzName){
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
String sql = "select id,ipdz,jkbs,app_key,app_sec,corpid from "+ebTablePzName+" where DELETE_TYPE=0 and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' and jkbs ='syncDepartment' ";
|
||||
log.error("getApiInfo.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("getEbTableName.recordList:{}", recordList);
|
||||
log.error("getApiInfo.recordList:{}", recordList);
|
||||
if(CollectionUtils.isNotEmpty(recordList)){
|
||||
String objId = String.valueOf(recordList.get(0).get("id"));
|
||||
String table_name = String.valueOf(recordList.get(0).get("table_name"));
|
||||
map.put("objId",objId);
|
||||
map.put("table_name",table_name);
|
||||
map = recordList.get(0);
|
||||
}
|
||||
log.error("getEbTableName.map:{}", map);
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据应用标签和租户key获取当前租户下对应标签的应用
|
||||
* 根据部门code获取部门id
|
||||
* @return
|
||||
*/
|
||||
private String getEbAppId(String appTag){
|
||||
String appId = "";
|
||||
String sql = "select id from ebda_app where tag = '"+appTag+"' and tenant_key = '" + RecruitModuleUtils.getCurrentTenantKey()+"'";
|
||||
log.error("getEbAppId.sql:{}", sql);
|
||||
public List<String> getDepartmentId(String bh){
|
||||
log.error("getDepartmentId.bh:{}", bh);
|
||||
String sql = "select id from eteams.department where code in ("+ bh +") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("getDepartmentId.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("getEbAppId.recordList:{}", recordList);
|
||||
if(CollectionUtils.isNotEmpty(recordList)){
|
||||
appId = String.valueOf(recordList.get(0).get("id"));
|
||||
}
|
||||
log.error("getEbAppId.appId:{}", appId);
|
||||
return appId;
|
||||
log.error("getDepartmentId.recordList:{}", recordList);
|
||||
return recordList.stream().filter(map -> map.containsKey("id")).map(map -> map.get("id").toString()).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取明细表名称
|
||||
* @param objId
|
||||
* @param originTableName
|
||||
* 新增部门
|
||||
* @param department
|
||||
* @return
|
||||
*/
|
||||
public String getDetailTableNameByMasterId(long objId, String originTableName) {
|
||||
RemoteEBObjService ebuilderform = publishKitRuntimeUtil.buildRpcService(RemoteEBObjService.class, "ebuilderform", "1109718089457483777");
|
||||
log.info("getDetailTableNameByMasterId.ebuilderform:{}",ebuilderform);
|
||||
List<Obj> detailForms = ebuilderform.getAllTablesByMasterId(objId, RecruitModuleUtils.getCurrentTenantKey());
|
||||
log.info("getDetailTableNameByMasterId.detailForms:{}",detailForms);
|
||||
if (CollectionUtils.isEmpty(detailForms)) {
|
||||
return null;
|
||||
}
|
||||
private Map<String, Object> addSysDept(Department department,Map<String, Object> apiInfo,String host){
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
log.error("addSysDept.department:{}", department);
|
||||
//for (Map<String, Object> map : addList) {
|
||||
String bh = null!=department.getBh()? department.getBh() :"";
|
||||
String zz = null!=department.getZz()? department.getZz() :"";
|
||||
String sjzz = null!=department.getSjzz()? department.getSjzz() :"";
|
||||
String sjzzbh = null!=department.getSjzzbh()? department.getSjzzbh() :"";
|
||||
String bmfzr = null!=department.getBmfzr()? department.getBmfzr() :"";
|
||||
String fgld = null!=department.getFgld()? department.getFgld() :"";
|
||||
String sscb = null!=department.getSscb()? department.getSscb() :"";
|
||||
String bmsqcj = null!=department.getBmsqcj()? department.getBmsqcj() :"";
|
||||
String bz = null!=department.getBz()? department.getBz() :"";
|
||||
String zzmc = null!=department.getZzmc()? department.getZzmc() :"";
|
||||
String form_id = null!=department.getForm_id()? department.getForm_id() :"";
|
||||
String layout_id = null!=department.getLayout_id()? department.getLayout_id() :"";
|
||||
/**
|
||||
* 3.组装数据
|
||||
*/
|
||||
JSONArray paramArray = new JSONArray();
|
||||
|
||||
String tableName = null;
|
||||
for (Obj obj : detailForms) {
|
||||
//DataKey不为空的才是明细表
|
||||
if (StringUtils.isEmpty(obj.getDataKey())) {
|
||||
continue;
|
||||
JSONObject paramJson = new JSONObject();
|
||||
paramJson.put("name",zzmc);
|
||||
paramJson.put("code", bh);
|
||||
paramJson.put("parent", sjzzbh);
|
||||
paramArray.add(paramJson);
|
||||
|
||||
/***
|
||||
* 数据规则
|
||||
*/
|
||||
JSONObject dataRule = new JSONObject();
|
||||
dataRule.put("employee","id");
|
||||
dataRule.put("department","code");
|
||||
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("data",paramArray);
|
||||
jsonObject.put("dataRule",dataRule);
|
||||
log.error("addSysDept.jsonObject:{}", jsonObject);
|
||||
try {
|
||||
String accessToken = syncDataUtils.getToken(apiInfo);
|
||||
log.error("addSysDept.accessToken:{}", accessToken);
|
||||
if(StringUtils.isNotBlank(accessToken)){
|
||||
jsonObject.put("access_token",accessToken);
|
||||
result = syncDataUtils.doPostHttp(jsonObject, path,host);
|
||||
log.error("addSysDept.result:111{}", result);
|
||||
/**
|
||||
* 新增部门成功之后,需要同步插入部门自定义表字段信息
|
||||
*/
|
||||
String tenant_key = RecruitModuleUtils.getCurrentTenantKey();
|
||||
log.error("syncDepartment.tenant_key:{}", tenant_key);
|
||||
String sql = "select id,module from eteams.FORM where (module='hrm' and ownership='company' and delete_type='0' and SORT=2) and TENANT_KEY= '"+tenant_key+"' ";
|
||||
log.error("addSysDept.FORM:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> personFormList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("addSysDept.personFormList:{}", personFormList);
|
||||
Map<String,String> deptFormMap = personFormList.stream().collect(Collectors.toMap(e->e.get("module").toString(), e->e.get("id").toString()));
|
||||
log.error("addSysDept.deptFormMap:{}", deptFormMap);
|
||||
String deptCustomfieldFormid=deptFormMap.get("hrm");
|
||||
String tableName = "ft_"+deptCustomfieldFormid;
|
||||
/**
|
||||
* 根据编号查询系统是否已有此部门
|
||||
*/
|
||||
boolean b = checkIsNotDept(bh);
|
||||
if(b){
|
||||
//修改部门信息
|
||||
String formData = getDeptFormData(bh);
|
||||
updatatDeptCustomField(tableName, formData, bmfzr, fgld, sscb, bmsqcj);
|
||||
}else{
|
||||
//给部门自定义表插入入参信息
|
||||
insertDeptCustomField(tableName,bh,bmfzr,fgld,sscb,bmsqcj,form_id,layout_id);
|
||||
}
|
||||
}else{
|
||||
result.put("status2","fail");
|
||||
}
|
||||
if (obj.getTableName().startsWith(originTableName)) {
|
||||
tableName = obj.getName();
|
||||
log.info("getDetailTableNameByMasterId.obj:{}",obj);
|
||||
log.info("getDetailTableNameByMasterId.obj:{}",obj.getShowName());
|
||||
log.error("addSysDept.result:{}", result);
|
||||
}catch (Exception e) {
|
||||
result.put("status2","exception");
|
||||
log.error("Exception_em:"+e);
|
||||
}
|
||||
//}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 封存部门
|
||||
* @param bhbbmids
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> deleteSysDept(List<String> bhbbmids,Map<String, Object> apiInfo,String host){
|
||||
/**
|
||||
* 3.组装数据
|
||||
*/
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
JSONArray paramArray = new JSONArray();
|
||||
//String[] ids = bhbbmids.split(",");
|
||||
for (String s : bhbbmids) {
|
||||
JSONObject paramJson = new JSONObject();
|
||||
//此处应该有多个id
|
||||
paramJson.put("id", s);
|
||||
paramArray.add(paramJson);
|
||||
}
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("datas", paramArray);
|
||||
log.error("SyncDepartmentChanges222.jsonObject:{}", jsonObject);
|
||||
try {
|
||||
String accessToken = syncDataUtils.getToken(apiInfo);
|
||||
log.error("SyncDepartmentChanges222.accessToken:{}", accessToken);
|
||||
if (StringUtils.isNotBlank(accessToken)) {
|
||||
jsonObject.put("access_token", accessToken);
|
||||
result = syncDataUtils.doPostHttp(jsonObject, deletedPath, host);
|
||||
log.error("SyncDepartmentChanges222.result:111{}", result);
|
||||
} else {
|
||||
result.put("status2", "fail");
|
||||
}
|
||||
log.error("SyncDepartmentChanges222.result:{}", result);
|
||||
} catch (Exception e) {
|
||||
result.put("status2", "exception");
|
||||
log.error("Exception_em:" + e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询被合并部门的一级下级部门
|
||||
* @return deptids
|
||||
*/
|
||||
public List<String> getFirstLevelDepts(String dept){
|
||||
/**
|
||||
* 根据部门code查询新增部门id
|
||||
*/
|
||||
String sql = "select id from eteams.department where code in (" + dept+ ") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("getFirstLevelDepts111.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("getFirstLevelDepts111.recordList:{}", recordList);
|
||||
String deptid = recordList.stream()
|
||||
.map(map -> String.valueOf(map.get("id"))) // 提取 "id" 的值并转为 String
|
||||
.filter(id -> id != null && !id.isEmpty()) // 过滤掉 null 或空值
|
||||
.collect(Collectors.joining(", "));
|
||||
log.error("getFirstLevelDepts111.deptid:{}", deptid);
|
||||
List<String> deptids = new ArrayList<>();
|
||||
//String depts = splitStr(deptid);
|
||||
//log.error("getFirstLevelDepts111.depts:{}", depts);
|
||||
sql = "select id from eteams.department where parent in (" + deptid+ ") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("getFirstLevelDepts111.sql:{}", sql);
|
||||
rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> records = databaseUtils.getDataSourceList(rs);
|
||||
log.error("getFirstLevelDepts111.records:{}", records);
|
||||
if(CollectionUtils.isNotEmpty(records)){
|
||||
deptids = records.stream()
|
||||
.map(map -> map.get("id").toString())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
return deptids;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更改下级部门的上级部门为新增部门
|
||||
* @return
|
||||
*/
|
||||
public void updateFirstLevelDeptAndEmployee(String code,List<String> firstLevelDepts,String dept){
|
||||
/**
|
||||
* 根据部门code查询新增部门id
|
||||
*/
|
||||
String sql = "select id from eteams.department where code = '"+ code +"' and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("updateFirstLevelDept111.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("updateFirstLevelDept.recordList:{}", recordList);
|
||||
String deptid = String.valueOf(recordList.get(0).get("id"));
|
||||
log.error("updateFirstLevelDept111.deptid:{}", deptid);
|
||||
if(CollectionUtils.isNotEmpty(firstLevelDepts)){
|
||||
String departmentids = String.join(",", firstLevelDepts);
|
||||
log.error("updateFirstLevelDept111.departmentids:{}", departmentids);
|
||||
/**
|
||||
* 更新新增部门id为新上级
|
||||
*/
|
||||
String str = "update eteams.department set parent = '"+deptid+"' where id in (" + departmentids + ") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("updateFirstLevelDept111.str:{}", str);
|
||||
Map<String, Object> rt = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", str);
|
||||
List<Map<String, Object>> records = databaseUtils.getDataSourceList(rt);
|
||||
log.error("updateFirstLevelDept111.records:{}", records);
|
||||
}
|
||||
/**
|
||||
* 根据部门code查询新增部门id
|
||||
*/
|
||||
sql = "select id from eteams.department where code in (" + dept+ ") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("updateFirstLevelDept111.sql:{}", sql);
|
||||
Map<String, Object> rt = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> records = databaseUtils.getDataSourceList(rt);
|
||||
log.error("updateFirstLevelDept111.recordList:{}", records);
|
||||
String deptids = records.stream()
|
||||
.map(map -> String.valueOf(map.get("id"))) // 提取 "id" 的值并转为 String
|
||||
.filter(id -> id != null && !id.isEmpty()) // 过滤掉 null 或空值
|
||||
.collect(Collectors.joining(", "));
|
||||
log.error("getFirstLevelDepts111.deptid:{}", deptid);
|
||||
String depts = splitStr(deptids);
|
||||
log.error("updateFirstLevelDept.depts:{}", depts);
|
||||
/**
|
||||
* 更新depts部门中的人员为新部门下人员
|
||||
*/
|
||||
String sdf = "update eteams.employee set department = '"+deptid+"' where department in (" + depts + ") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("updateFirstLevelDept111.sdf:{}", sdf);
|
||||
Map<String, Object> rw = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sdf);
|
||||
List<Map<String, Object>> record = databaseUtils.getDataSourceList(rw);
|
||||
log.error("updateFirstLevelDept111.record:{}", record);
|
||||
}
|
||||
|
||||
/**
|
||||
* 字符串转化
|
||||
*/
|
||||
private String splitStr(String str){
|
||||
// 使用 split 方法将字符串分割为数组
|
||||
String[] parts = str.split(",");
|
||||
// 使用 StringBuilder 构建结果字符串
|
||||
StringBuilder result = new StringBuilder();
|
||||
for (String part : parts) {
|
||||
// 在每个部分前后添加单引号
|
||||
result.append("'").append(part).append("',");
|
||||
}
|
||||
// 移除最后一个多余的逗号
|
||||
if (result.length() > 0) {
|
||||
result.setLength(result.length() - 1);
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据部门code查询是否存在此部门
|
||||
* @return
|
||||
*/
|
||||
public boolean checkIsNotDept(String code){
|
||||
boolean flag= false;
|
||||
log.error("checkIsNotDept.code:{}", code);
|
||||
String sql = "select id from eteams.department where code = '"+ code +"' and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("checkIsNotDept.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("checkIsNotDept.recordList:{}", recordList);
|
||||
if(CollectionUtils.isNotEmpty(recordList)){
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据部门code查询部门自定义表form_data_id
|
||||
* @param code
|
||||
* @return formdata
|
||||
*/
|
||||
public String getDeptFormData(String code) {
|
||||
String formdata = "";
|
||||
String sql = "SELECT formdata FROM eteams.department WHERE code = '" + code + "' ";
|
||||
log.error("getDeptFormData.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("getDeptFormData.recordList:{}", recordList);
|
||||
if(CollectionUtils.isNotEmpty(recordList)){
|
||||
Object formdataValue = recordList.get(0).get("formdata");
|
||||
if (formdataValue instanceof Long) {
|
||||
formdata = String.valueOf(formdataValue); // 转换为 String
|
||||
} else if (formdataValue instanceof String) {
|
||||
formdata = (String) formdataValue; // 如果是 String 类型,直接赋值
|
||||
}else {
|
||||
formdata = String.valueOf(formdataValue);
|
||||
}
|
||||
}
|
||||
log.info("getDetailTableNameByMasterId.tableName:{}",tableName);
|
||||
return tableName;
|
||||
return formdata;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改部门自定义表
|
||||
* @return
|
||||
*/
|
||||
public void updatatDeptCustomField(String tableName,String deptFormData,String bmfzr,String fgld,String cbzx,String sqcj){
|
||||
String tableNameNew = "eteams."+tableName;
|
||||
String sql="update "+tableNameNew+" set bmfzr = '"+bmfzr+"',fgld = '"+fgld+"',cbzx='"+cbzx+"',sqcj='"+sqcj+"'" +
|
||||
" where FORM_DATA_ID = '"+deptFormData+"' ";
|
||||
log.error("updatatDeptCustomField.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("updatatDeptCustomField.recordList:{}", recordList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 写入部门自定义表
|
||||
* @return
|
||||
*/
|
||||
public void insertDeptCustomField(String tableName,String code,String bmfzr,String fgld,String cbzx,String sqcj,String form_id,String layout_id){
|
||||
// 生成随机 ID
|
||||
long id = IdGenerator.generate();
|
||||
log.error("insertDeptCustomField.id:{}", id);
|
||||
/**
|
||||
* 根据部门编号查询部门表:formdata
|
||||
*/
|
||||
//String formData = getDepartmentFormData(code);
|
||||
//当前时间
|
||||
// 获取当前时间
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
// 定义日期时间格式化器
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
// 格式化当前日期
|
||||
String nowData = now.format(formatter);
|
||||
log.error("insertDeptCustomField.nowData:{}", nowData);
|
||||
String tenant_key = RecruitModuleUtils.getCurrentTenantKey();
|
||||
log.error("insertDeptCustomField.tenant_key:{}", tenant_key);
|
||||
User currentUser = UserContext.getCurrentUser();
|
||||
log.error("insertDeptCustomField.currentUser:{}", currentUser);
|
||||
String userId = "1147262704872284161";
|
||||
log.error("insertDeptCustomField.userId:{}", userId);
|
||||
String tableNameNew = "eteams."+tableName;
|
||||
String sql="insert into "+tableNameNew+"(ID, FORM_DATA_ID, DATA_INDEX, CREATE_TIME, UPDATE_TIME, TENANT_KEY, " +
|
||||
" IS_DELETE, CREATOR, UPDATER, DELETE_TYPE, FT_STATUS, bmfzr,fgld,cbzx,sqcj)" +
|
||||
" values('" + id + "','" + id + "','0','"+nowData+"','" + nowData + "','" + tenant_key + "','0'," +
|
||||
" '"+userId+"','"+userId+"','0','0','" + bmfzr + "','" + fgld + "','" + cbzx + "','" + sqcj + "')";
|
||||
log.error("insertDeptCustomField.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("insertDeptCustomField.recordList:{}", recordList);
|
||||
/**
|
||||
* 跟新部门主表的formdata字段
|
||||
*/
|
||||
sql="update eteams.department set formdata = '"+id+"' where code = '"+code+"' ";
|
||||
log.error("updatatDeptCustomField222.sql:{}", sql);
|
||||
Map<String, Object> rt = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> records = databaseUtils.getDataSourceList(rt);
|
||||
log.error("insertDeptCustomField.records:{}", records);
|
||||
/**
|
||||
* 插入formdata表
|
||||
*/
|
||||
sql="insert into eteams.formdata(id, form_id, layout_id, data_status, tenant_key, operator, create_time, update_time, " +
|
||||
" module, client, is_delete, creator, delete_type)" +
|
||||
" values('" + id + "','" + form_id + "','" + layout_id + "','submit','" + tenant_key + "','" +userId + "','" + nowData + "'," +
|
||||
" '" + nowData + "','hrm','pc','0','" + userId + "','0')";
|
||||
log.error("insertFormdata333.sql:{}", sql);
|
||||
Map<String, Object> rs2 = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> records2 = databaseUtils.getDataSourceList(rs2);
|
||||
log.error("insertFormdata.records2:{}", records2);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue