package com.weaver.seconddev.cockpit.cmd; import com.weaver.ebuilder.datasource.api.entity.SqlParamEntity; import com.weaver.ebuilder.datasource.api.enums.SqlParamType; import com.weaver.seconddev.cockpit.util.CommonUtils; import com.weaver.seconddev.cockpit.util.DatabaseUtils; import com.weaver.seconddev.cockpit.util.JucailinCockpitUtils; import com.weaver.teams.domain.user.SimpleEmployee; import org.apache.commons.collections.CollectionUtils; 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.Component; import java.text.SimpleDateFormat; import java.util.*; /** * 流程、日程、协助、文档 4个类型数据 * * @author shil * @version 1.00版本 * @Date 2024/5/22 */ @Component public class CockpitUserDataCmd { //日志 private final static Logger log = LoggerFactory.getLogger(CockpitUserDataCmd.class); @Autowired private JucailinCockpitUtils jucailinCockpitUtils; @Autowired private DatabaseUtils databaseUtils; public Map getDataInfo(SimpleEmployee employee, Map paramMap, String tenantKey) { Map recordMap = new HashMap(); String sourceType = "LOGIC"; try { String subcompanynme = ""; String employeeId = String.valueOf(employee.getEmployeeId()); log.error("employeeId:" + employeeId); String username = employee.getName(); log.error("username:" + username); String deptname = employee.getDepartment().getName(); log.error("deptname:" + deptname); Long deptid = employee.getDepartment().getId(); log.error("deptid:" + deptid); // long subCompanyid = employee.getDepartment().getSubCompanyId(); String positionname = employee.getPosition().getName(); log.error("positionname:" + positionname); String gradename = employee.getGrade().getName(); log.error("gradename:" + gradename); String personnelstatusname = ""; String personnelstatus = employee.getPersonnelStatus(); log.error("personnelstatus:" + personnelstatus); if ("1".equals(personnelstatus)) { personnelstatusname = "试用员工"; } else if ("2".equals(personnelstatus)) { personnelstatusname = "试用延期员工"; } else if ("3".equals(personnelstatus)) { personnelstatusname = "正式员工"; } else if ("4".equals(personnelstatus)) { personnelstatusname = "临时员工"; } else if ("5".equals(personnelstatus)) { personnelstatusname = "实习员工"; } else if ("6".equals(personnelstatus)) { personnelstatusname = "离职员工"; } else if ("7".equals(personnelstatus)) { personnelstatusname = "退休员工"; } else if ("9".equals(personnelstatus)) { personnelstatusname = "解聘员工"; } else if ("10".equals(personnelstatus)) { personnelstatusname = "无效员工"; } log.error("personnelstatusname:" + personnelstatusname); String userimageurl = "/profile/" + employeeId + "/personal"; long formdata = employee.getFormdata(); log.error("formdata:" + formdata); String pkey = "field69.groupId"; String groupId = jucailinCockpitUtils.getUfPropData(pkey, tenantKey); log.error("groupId:" + groupId); String jobcallname = ""; long jobcallid = employee.getJobCall(); log.error("jobcallid:" + jobcallid); if (StringUtils.isNotBlank(deptid + "")) { String sql = " select name from eteams.department where id in( " + " select subcompanyid from eteams.department where id = ? and delete_type=0 and tenant_key = ?" + " ) and delete_type=0 and tenant_key = ?"; log.error("sql:" + sql); List sqlparam = new ArrayList(); SqlParamEntity sqlParamEntity = new SqlParamEntity(); sqlParamEntity.setParamType(SqlParamType.LONG); sqlParamEntity.setValue(deptid + ""); sqlparam.add(sqlParamEntity); sqlParamEntity = new SqlParamEntity(); sqlParamEntity.setParamType(SqlParamType.VARCHAR); sqlParamEntity.setValue(tenantKey); sqlparam.add(sqlParamEntity); sqlParamEntity = new SqlParamEntity(); sqlParamEntity.setParamType(SqlParamType.VARCHAR); sqlParamEntity.setValue(tenantKey); sqlparam.add(sqlParamEntity); Map result = databaseUtils.executeForQuery(sourceType, groupId, sql, sqlparam); List> recordList = databaseUtils.getDataSourceList(result); if (!recordList.isEmpty() && recordList.size() > 0) { subcompanynme = String.valueOf(recordList.get(0).get("name")); } } log.error("subcompanynme:" + subcompanynme); if (StringUtils.isNotBlank(jobcallid + "")) { String sql = " select data_name from eteams.hrm_jobcall " + " where id = ? " + " and delete_type = 0\n" + " and tenant_key = ? \n"; log.error("sql:" + sql); List sqlparam = new ArrayList(); SqlParamEntity sqlParamEntity = new SqlParamEntity(); sqlParamEntity.setParamType(SqlParamType.LONG); sqlParamEntity.setValue(jobcallid + ""); sqlparam.add(sqlParamEntity); sqlParamEntity = new SqlParamEntity(); sqlParamEntity.setParamType(SqlParamType.VARCHAR); sqlParamEntity.setValue(tenantKey); sqlparam.add(sqlParamEntity); Map result = databaseUtils.executeForQuery(sourceType, groupId, sql, sqlparam); List> recordList = databaseUtils.getDataSourceList(result); if (!recordList.isEmpty() && recordList.size() > 0) { jobcallname = String.valueOf(recordList.get(0).get("data_name")); } } String field69 = ""; if (StringUtils.isNotBlank(formdata + "")) { String sql = " select field69 from eteams.Hrmemployeedefined where form_data_id = ?"; log.error("getSelfServiceData--sql:" + sql); List sqlparam = new ArrayList(); SqlParamEntity sqlParamEntity = new SqlParamEntity(); sqlParamEntity.setParamType(SqlParamType.LONG); sqlParamEntity.setValue(formdata + ""); sqlparam.add(sqlParamEntity); Map result = databaseUtils.executeForQuery(sourceType, groupId, sql, sqlparam); List> recordList = databaseUtils.getDataSourceList(result); if (recordList.size() > 0) { field69 = String.valueOf(recordList.get(0).get("field69")); } if ("1".equals(field69)) { field69 = "销售"; } else if ("2".equals(field69)) { field69 = "项目"; } else if ("3".equals(field69)) { field69 = "技术"; } else if ("4".equals(field69)) { field69 = "客服"; } else if ("5".equals(field69)) { field69 = "运营"; } } log.error("field69:" + field69); recordMap.put("employeeId", employeeId); recordMap.put("username", username); recordMap.put("deptmentnnme", subcompanynme + "-" + deptname); recordMap.put("positionname", positionname); recordMap.put("userimageurl", userimageurl); recordMap.put("jobcallname", jobcallname); recordMap.put("personnelstatusname", personnelstatusname); recordMap.put("personnelstatus", personnelstatus); recordMap.put("gradename", gradename); recordMap.put("field69", field69); String avatarUrl = ""; if (StringUtils.isBlank(avatarUrl)) { avatarUrl = "/build/hrm/static/media/male.png"; } recordMap.put("avatarUrl", avatarUrl); // List> customList = new ArrayList>(); // Map customMap = new HashMap(); // customMap.put("name","销售排名"); // customMap.put("value","TOP1"); // customList.add(customMap); // // customMap = new HashMap(); // customMap.put("name","职称"); // customMap.put("value","高级工程师"); // customList.add(customMap); // // customMap = new HashMap(); // customMap.put("name","熟悉领域"); // customMap.put("value","项目实施"); // customList.add(customMap); // // customMap = new HashMap(); // customMap.put("name","技能证书"); // customMap.put("value","人力资源管理师"); // customList.add(customMap); List> customList = getCustomType(employee, tenantKey); recordMap.put("customType", customList); String employeeId2 = String.valueOf(paramMap.get("userid")); if (StringUtils.isNotBlank(employeeId2)) { employeeId = employeeId2; } List> changeList = getEmpChangeData(employeeId, tenantKey); recordMap.put("changeList", changeList); } catch (Exception e) { e.printStackTrace(); log.error("PortalPerformanceInfoCmd :" + e); } try { log.error("CockpitUserDataCmd-333333"); Long avatarid = employee.getAvatarId(); log.error("CockpitUserDataCmd-avatarid:" + avatarid); String url = employee.getAvatar().getUrl(); log.error("CockpitUserDataCmd-url:" + url); String avatarUrl = employee.getAvatar().getPreviewUrl(); log.error("CockpitUserDataCmd-test-avatarUrl:" + avatarUrl); Long SubCompanyId = employee.getDepartment().getSubCompanyId(); log.error("CockpitUserDataCmd-test-SubCompanyId:" + SubCompanyId); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date hireDate = employee.getHiredate(); log.error("hireDate:" + sdf.format(hireDate)); } catch (Exception e) { } return recordMap; } /*** * * @return */ public List> getCustomType(SimpleEmployee employee, String tenantKey) { List> recordList = new ArrayList>(); String groupId = "weaver-ebuilder-form-service"; String sourceType = "LOGIC"; Long employeeId = employee.getEmployeeId(); try { String sql = " select p.bqmc,p.bqnr \n" + " from(\n" + " select bqmc,bqnr " + " from uf_rcbq " + " where ry = ? \n" + " and delete_type = 0\n" + " and tenant_key = ? \n" + " order by xssx desc\n" + " ) p limit 4"; List sqlparam = new ArrayList(); SqlParamEntity sqlParamEntity = new SqlParamEntity(); sqlParamEntity.setParamType(SqlParamType.LONG); sqlParamEntity.setValue(employeeId + ""); sqlparam.add(sqlParamEntity); sqlParamEntity = new SqlParamEntity(); sqlParamEntity.setParamType(SqlParamType.VARCHAR); sqlParamEntity.setValue(tenantKey); sqlparam.add(sqlParamEntity); Map result = databaseUtils.executeForQuery(sourceType, groupId, sql, sqlparam); recordList = databaseUtils.getDataSourceList(result); if (recordList.size() < 4) { for (int i = 0; i < (4 - recordList.size()); i++) { Map nullMap = new HashMap(); recordList.add(nullMap); } } } catch (Exception e) { e.printStackTrace(); log.error("getRightViewData:" + e); } return recordList; } public List> getEmpChangeData(String employeeId, String tenantKey) { List> changeList = new ArrayList>(); String groupId = "weaver-ebuilder-form-service"; String sourceType = "LOGIC"; try { //入职 Map hireMap = getEmployeeHireData(employeeId, tenantKey, groupId, sourceType); if (hireMap != null && hireMap.size() > 0) { changeList.add(hireMap); } //变更 List> changeDataList = getEmployeeChangeData(employeeId, tenantKey, groupId, sourceType); if (CollectionUtils.isNotEmpty(changeDataList)) { changeList.addAll(changeDataList); } // //离职 // Map departMap = getEmployeeDepartData(employeeId,tenantKey,groupId,sourceType); // if(departMap !=null && departMap.size()>0){ // changeList.add(departMap); // } } catch (Exception e) { e.printStackTrace(); log.error("getEmpChangeData:" + e); } return changeList; } /*** * * @param employeeId * @param tenantKey * @return */ public Map getEmployeeHireData(String employeeId, String tenantKey, String groupId, String sourceType) { Map map = new HashMap(); try { String hiredate = ""; String dataSql = " select date_format(a.hiredate,'%Y-%m-%d') hiredate " + " from eteams.employee a " + " where a.id = ? " + " and a.tenant_key = ? " + " and a.status = 'normal' " + " and a.type = 'inside'" + " and delete_type = 0"; log.error("getuserIfo--dataSql:" + dataSql); List strlist = new ArrayList<>(100); strlist.add(employeeId + ""); strlist.add(tenantKey); List sqlparam = databaseUtils.getSqlParamEntity(strlist); Map result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlparam); List> recordList = databaseUtils.getDataSourceList(result); if (CollectionUtils.isNotEmpty(recordList)) { Map recordMap = recordList.get(0); hiredate = CommonUtils.null2String(recordMap.get("hiredate")); } if (StringUtils.isNotBlank(hiredate)) { map.put("changedate", hiredate); map.put("operator_type", "entry"); map.put("operator_type_name", "入职"); map.put("data_type", ""); map.put("data_value", ""); map.put("change_id", ""); } } catch (Exception e) { e.printStackTrace(); log.error("getEmployeeHireData:" + e); } return map; } // public Map getEmployeeDepartData(Long employeeId,String tenantKey,String groupId,String sourceType){ // // Map map = new HashMap(); // try { // String hiredate = ""; // String dataSql =" select t.change_id,k.change_date,k.operator_type \n" + // " from hrm_empchange_user t \n" + // " inner join hrm_empchange k on k.id = t.change_id \n" + // " where t.employeeid = ? \n" + // " and t.delete_type = 0 \n" + // " and t.tenant_key = ? " + // " and k.delete_type = 0 \n" + // " and k.tenant_key = ? " + // " and k.batch_status = 2 \n" + // " and k.operator_type = 'dismiss' "; // // log.error("getuserIfo--dataSql:" + dataSql); // List strlist = new ArrayList<>(100); // strlist.add(employeeId + ""); // strlist.add(tenantKey); // List sqlparam = databaseUtils.getSqlParamEntity(strlist); // Map result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlparam); // List> recordList = databaseUtils.getDataSourceList(result); // if (CollectionUtils.isNotEmpty(recordList)) { // Map recordMap = recordList.get(0); // change_date = CommonUtils.null2String(recordMap.get("change_date")); // } // // if (StringUtils.isNotBlank(hiredate)) { // map.put("changedate", hiredate); // map.put("operator_type", "entry"); // map.put("operator_type_name", "入职"); // map.put("data_type", ""); // map.put("data_value", ""); // map.put("change_id", ""); // } // }catch (Exception e){ // e.printStackTrace(); // log.error("getEmployeeHireData:"+e); // } // return map; // // } public List> getEmployeeChangeData(String employeeId, String tenantKey, String groupId, String sourceType) { List> changeList = new ArrayList>(); try { String dataSql = " select t.change_id,date_format(k.change_date,'%Y-%m-%d') change_date,k.operator_type,p.data_type,p.data_value \n" + " from eteams.hrm_empchange_user t\n" + " inner join eteams.hrm_empchange k on k.id = t.change_id\n" + " inner join eteams.hrm_empchange_userdetail p on p.change_id = t.CHANGE_ID\n" + " where t.employeeid = ?\n" + " and length(p.data_value)>0\n" + " and k.batch_status = 2' \n" + " and t.delete_type = 0 \n" + " and t.tenant_key = ? \n" + " and p.delete_type = 0 \n" + " and p.tenant_key = ? \n" + " and k.delete_type = 0 \n" + " and k.tenant_key = ? " + " and p.data_type in('newDepartment','newPosition','newSuperior','changeStatus')\n " + " order by k.change_date \n"; log.error("getuserIfo--dataSql:" + dataSql); List strlist = new ArrayList<>(100); strlist.add(employeeId + ""); strlist.add(tenantKey); strlist.add(tenantKey); strlist.add(tenantKey); List sqlparam = databaseUtils.getSqlParamEntity(strlist); Map result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlparam); List> recordList = databaseUtils.getDataSourceList(result); if (CollectionUtils.isNotEmpty(recordList)) { for (int i = 0; i < recordList.size(); i++) { Map recordMap = recordList.get(i); String operator_type = String.valueOf(recordMap.get("operator_type")); String operator_type_name = ""; if ("trial".equals(operator_type)) { operator_type_name = "试用"; } else if ("hire".equals(operator_type)) { operator_type_name = "转正"; } else if ("extend".equals(operator_type)) { operator_type_name = "续签"; } else if ("redeploy".equals(operator_type)) { operator_type_name = "调动"; } else if ("dismiss".equals(operator_type)) { operator_type_name = "离职"; } else if ("retire".equals(operator_type)) { operator_type_name = "退休"; } else if ("quit".equals(operator_type)) { operator_type_name = "解聘"; } else if ("rehire".equals(operator_type)) { operator_type_name = "返聘"; } else if ("custom".equals(operator_type)) { operator_type_name = "变更"; } recordMap.put("operator_type_name", operator_type_name); String data_type = String.valueOf(recordMap.get("data_type")); String data_type_name = ""; String data_value = String.valueOf(recordMap.get("data_value")); String data_value_name = ""; if ("newDepartment".equals(data_type)) { data_type_name = "部门"; } else if ("newPosition".equals(data_type)) { data_type_name = "岗位"; } else if ("newSuperior".equals(data_type)) { data_type_name = "上级"; } recordMap.put("data_type_name", data_type_name); recordMap.put("data_value_name", data_value_name); } } } catch (Exception e) { e.printStackTrace(); log.error("getEmpChangeData:" + e); } return changeList; } }