You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

286 lines
12 KiB
Java

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.DatabaseUtils;
import com.weaver.seconddev.cockpit.util.JucailinCockpitUtils;
import com.weaver.teams.domain.user.SimpleEmployee;
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.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<String, Object> getDataInfo(SimpleEmployee employee, Map<String, Object> paramMap,String tenantKey) {
Map<String, Object> recordMap = new HashMap<String, Object>();
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<SqlParamEntity> sqlparam = new ArrayList<SqlParamEntity>();
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<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, sql,sqlparam);
List<Map<String,Object>> 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<SqlParamEntity> sqlparam = new ArrayList<SqlParamEntity>();
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<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, sql,sqlparam);
List<Map<String,Object>> 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<SqlParamEntity> sqlparam = new ArrayList<SqlParamEntity>();
SqlParamEntity sqlParamEntity = new SqlParamEntity();
sqlParamEntity.setParamType(SqlParamType.LONG);
sqlParamEntity.setValue(formdata+"");
sqlparam.add(sqlParamEntity);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, sql,sqlparam);
List<Map<String,Object>> 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<Map<String,String>> customList = new ArrayList<Map<String,String>>();
// Map<String,String> customMap = new HashMap<String,String>();
// customMap.put("name","销售排名");
// customMap.put("value","TOP1");
// customList.add(customMap);
//
// customMap = new HashMap<String,String>();
// customMap.put("name","职称");
// customMap.put("value","高级工程师");
// customList.add(customMap);
//
// customMap = new HashMap<String,String>();
// customMap.put("name","熟悉领域");
// customMap.put("value","项目实施");
// customList.add(customMap);
//
// customMap = new HashMap<String,String>();
// customMap.put("name","技能证书");
// customMap.put("value","人力资源管理师");
// customList.add(customMap);
List<Map<String,Object>> customList = getCustomType(employee,tenantKey);
recordMap.put("customType",customList);
} catch (Exception e) {
e.printStackTrace();
log.error("PortalPerformanceInfoCmd :" + e);
}
try{
String avatarUrl = employee.getAvatar().getPreviewUrl();
log.error("CockpitUserDataCmd-test-avatarUrl:"+avatarUrl);
Long SubCompanyId = employee.getDepartment().getSubCompanyId();
log.error("CockpitUserDataCmd-test-SubCompanyId:"+SubCompanyId);
}catch (Exception e){
}
return recordMap;
}
/***
*
* @return
*/
public List<Map<String,Object>> getCustomType(SimpleEmployee employee,String tenantKey){
List<Map<String,Object>> recordList = new ArrayList<Map<String,Object>>();
String groupId = "weaver-doc-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<SqlParamEntity> sqlparam = new ArrayList<SqlParamEntity>();
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<String, Object> 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<String,Object> nullMap = new HashMap<String,Object>();
recordList.add(nullMap);
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("getRightViewData:" + e);
}
return recordList;
}
}