diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/controller/SysDepartmentController.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/controller/SysDepartmentController.java index 11fa756..2a4e52b 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/controller/SysDepartmentController.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/controller/SysDepartmentController.java @@ -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 mergeDepartment(@RequestBody Department department){ + log.error("mergeDepartment department:[{}]",department); + Map actionMap = new HashMap<>(); + sysDepartmentService.mergeDepartment(department); + return actionMap; + } + + /** + * 部门拆分 + * @return + */ + @WeaPermission(publicPermission = true) + @Produces(MediaType.APPLICATION_JSON) + @PostMapping("/splitDepartment") + public Map splitDepartment(@RequestBody List list){ + log.error("splitDepartment list:[{}]",list); + Map actionMap = new HashMap<>(); + sysDepartmentService.splitDepartment(list); + return actionMap; + } + } \ No newline at end of file diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/entity/Department.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/entity/Department.java index b5f068c..5e9dca5 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/entity/Department.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/entity/Department.java @@ -76,6 +76,14 @@ public class Department { * 所属成本 */ private String sscb; + /** + * 部门自定义表:form_id + */ + private String form_id; + /** + * 部门自定义表:layout_id + */ + private String layout_id; } \ No newline at end of file diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/SysDepartmentService.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/SysDepartmentService.java index 990427f..8fc60a0 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/SysDepartmentService.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/SysDepartmentService.java @@ -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> checkIsNotDisableDept(String deptId); + + void mergeDepartment(Department department); + + void splitDepartment(List list); } diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/impl/SysDepartmentServiceImpl.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/impl/SysDepartmentServiceImpl.java index 20e5d42..97449af 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/impl/SysDepartmentServiceImpl.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/service/impl/SysDepartmentServiceImpl.java @@ -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 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 apiInfo = getApiInfo(ebTablePzName); + String host = String.valueOf(apiInfo.get("ipdz")); + log.error("mergeDepartment.apiInfo:{}", apiInfo); + /** + * 新增部门 + */ + addSysDept(department, apiInfo, host); + + /** + * 封存部门 + */ + List departmentId = getDepartmentId(department.getBhbbmid()); + Map 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 firstLevelDepts = getFirstLevelDepts(bhbbmcode); + log.error("mergeDepartment.firstLevelDepts:{}", firstLevelDepts); + /** + * 更改下级部门的上级部门为新增部门以及被合并部门下的全部人员 + */ + updateFirstLevelDeptAndEmployee(code, firstLevelDepts, bhbbmcode); + } + + @Override + public void splitDepartment(List list) { + /** + * 多租户查询主表名称(JCL_开放平台接口配置表) + */ + Map 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 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 departmentId = getDepartmentId(list.get(0).getBcfzzid()); + Map deleteMap = deleteSysDept(departmentId, apiInfo, host); + log.error("splitDepartment.deleteMap:{}", deleteMap); + } + } + /** - * 根据应用id和表单tag获取当前租户下对应表单id和表名 + * 根据接口标识查询开放平台接口参数 + * @return */ - private Map getEbTableInfo(String appTag,String objTag){ - Map 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 getApiInfo(String ebTablePzName){ + Map 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); List> 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 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); List> 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 detailForms = ebuilderform.getAllTablesByMasterId(objId, RecruitModuleUtils.getCurrentTenantKey()); - log.info("getDetailTableNameByMasterId.detailForms:{}",detailForms); - if (CollectionUtils.isEmpty(detailForms)) { - return null; - } + private Map addSysDept(Department department,Map apiInfo,String host){ + Map result = new HashMap<>(); + log.error("addSysDept.department:{}", department); + //for (Map 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> personFormList = databaseUtils.getDataSourceList(rs); + log.error("addSysDept.personFormList:{}", personFormList); + Map 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 deleteSysDept(List bhbbmids,Map apiInfo,String host){ + /** + * 3.组装数据 + */ + Map 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 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> 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 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> 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 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> 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 rt = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", str); + List> 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 rt = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> 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 rw = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sdf); + List> 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> 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 rt = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> 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 rs2 = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> records2 = databaseUtils.getDataSourceList(rs2); + log.error("insertFormdata.records2:{}", records2); } }