From 36be5055c0f7bd3fa0d8122fa7249c946e54d894 Mon Sep 17 00:00:00 2001 From: wangjie <805650258@qq.com> Date: Tue, 12 Mar 2024 10:32:36 +0800 Subject: [PATCH] =?UTF-8?q?#E10=E4=BA=BA=E4=BA=8B=E8=87=AA=E5=8A=A9?= =?UTF-8?q?=E9=97=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jcldoor/cmd/PortalBirthdayWishesCmd.java | 135 ++ .../jcldoor/cmd/PortalPerformanceInfoCmd.java | 346 +++ .../jcldoor/cmd/PortalRiskInfoCmd.java | 131 ++ .../jcldoor/cmd/PortalWorkAchievementCmd.java | 204 ++ .../seconddev/jcldoor/cmd/UserInfoCmd.java | 228 ++ .../controller/HrmSelfHelpController.java | 1906 +++++++++++++++++ .../controller/JucailinPortalController.java | 245 +++ .../jcldoor/domain/JucailinUserInfo.java | 152 ++ .../service/JucailinPortalService.java | 27 + .../impl/JucailinPortalServiceImpl.java | 204 ++ .../seconddev/jcldoor/util/CommonUtils.java | 395 ++++ .../seconddev/jcldoor/util/DatabaseUtils.java | 265 +++ 12 files changed, 4238 insertions(+) create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalBirthdayWishesCmd.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalPerformanceInfoCmd.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalRiskInfoCmd.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalWorkAchievementCmd.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/cmd/UserInfoCmd.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/controller/HrmSelfHelpController.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/controller/JucailinPortalController.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/domain/JucailinUserInfo.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/service/JucailinPortalService.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/service/impl/JucailinPortalServiceImpl.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/util/CommonUtils.java create mode 100644 src/main/java/com/weaver/seconddev/jcldoor/util/DatabaseUtils.java diff --git a/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalBirthdayWishesCmd.java b/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalBirthdayWishesCmd.java new file mode 100644 index 0000000..307ff6b --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalBirthdayWishesCmd.java @@ -0,0 +1,135 @@ +package com.weaver.seconddev.jcldoor.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +import com.weaver.seconddev.jcldoor.util.CommonUtils; +import com.weaver.seconddev.jcldoor.util.DatabaseUtils; +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 javax.servlet.http.HttpServletRequest; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 生日祝福 + * + * @author wangj + * @version 1.00版本 + * @Date 2024/3/5 + * @desc 由于用户信息表中没有找到生日字段,通过系统标准接口获取生日祝福信息 + */ +@Component +public class PortalBirthdayWishesCmd { + //日志 + private final static Logger log = LoggerFactory.getLogger(UserInfoCmd.class); + + @Autowired + private DatabaseUtils databaseUtils; + + /** + * 获取生日祝福信息 + * @param simpleEmployee + * @return + */ + public Map getInfo(HttpServletRequest request, SimpleEmployee simpleEmployee) { + Map result = new HashMap<>(100); + JSONArray list = new JSONArray(); + + try { + String groupId = "weaver-hr-service"; + String sourceType = "LOGIC"; + String tenant_key = "t7akvdnf84"; + + + SimpleDateFormat sdf = new SimpleDateFormat("MM-dd"); + Date date = new Date(); + String day = sdf.format(date); + + if (StringUtils.isNotBlank(day)) { + String dataSql = "select\n" + + " k.id,\n" + + " k.sex,\n" + + " k.username,\n" + + " right(left(BIRTHDAY, 10), 5) as BIRTHDAY,\n" + + " b.name as department,\n" + + " d.name as subcompany,\n" + + " c.name as position\n" + + "from\n" + + " hr_userinfo t\n" + + " inner join eteams.employee k on k.id = t.user\n" + + " inner join eteams.department b on k.department = b.id\n" + + " inner join eteams.department d on b.subcompanyid = d.id\n" + + " inner join eteams.position c on c.id = k.position\n" + + "where\n" + + " BIRTHDAY is not null\n" + + " and right(left(BIRTHDAY, 10), 5) = '"+day+"'\n" + + " and k.status = 'normal'\n" + + " and k.type = 'inside'\n" + + " and k.tenant_key = '" + tenant_key + "'"; + + log.error("getuserIfo--dataSql:" + dataSql); + Map data = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(data); + if (CollectionUtils.isNotEmpty(recordList)) { + for(Map map:recordList){ + String id = CommonUtils.null2String(map.get("id")); + String sextype = CommonUtils.null2String(map.get("sex")); + int sex = parseSex(sextype); + String username = CommonUtils.null2String(map.get("username")); + String department = CommonUtils.null2String(map.get("department")); + String subcompany = CommonUtils.null2String(map.get("subcompany")); + String position = CommonUtils.null2String(map.get("position")); + + JSONObject obj = new JSONObject(); + obj.put("id",id); + obj.put("sex",sex); + obj.put("username",username); + obj.put("department",department); + obj.put("subcompany",subcompany); + obj.put("position",position); + list.add(obj); + } + } + + } + } catch (Exception e) { + log.error("PortalBirthdayWishesCmd--Exception:" + e.getMessage()); + } + + result.put("list",list); + return result; + } + + + /** + * 转换性别类型 + * @param sextype + * @return + */ + private int parseSex(String sextype){ + //0:男 1:女 + int sex = 0; + switch (sextype){ + case "male": + sex = 0; + break; + case "female": + sex = 1; + break; + default: + sex = 0; + break; + } + + return sex; + } +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalPerformanceInfoCmd.java b/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalPerformanceInfoCmd.java new file mode 100644 index 0000000..02463d4 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalPerformanceInfoCmd.java @@ -0,0 +1,346 @@ +package com.weaver.seconddev.jcldoor.cmd; + +import com.weaver.seconddev.jcldoor.util.DatabaseUtils; +import com.weaver.teams.domain.user.SimpleEmployee; +import com.weaver.teams.security.context.UserContext; +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 javax.servlet.http.HttpServletRequest; +import java.time.LocalDate; +import java.time.Month; +import java.time.YearMonth; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 类的详细说明 + * + * @author wangj + * @version 1.00版本 + * @Date 2024/3/8 + */ +@Component +public class PortalPerformanceInfoCmd { + //日志 + private final static Logger log = LoggerFactory.getLogger(UserInfoCmd.class); + + @Autowired + private DatabaseUtils databaseUtils; + + public String tenant_key = "t7akvdnf84" ; + + + /** + * 获取生日祝福信息 + * @param simpleEmployee + * @return + */ + public Map getInfo(HttpServletRequest request, SimpleEmployee simpleEmployee) { + Map dataMap = new HashMap(100); + try { + + String employeeId = request.getParameter("employeeId"); + LocalDate currentDate = LocalDate.now(); + LocalDate lastMonthDate = currentDate.minusMonths(1); + int lastMonth = lastMonthDate.getMonthValue(); + + if(StringUtils.isBlank(employeeId)){ + employeeId = String.valueOf(UserContext.getCurrentEmployeeId()); + } + + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + + Map scoreMap = getLastMonthKpi2(employeeId,groupId,sourceType); + + List> yearList = getWholeYearKpi2(employeeId,groupId,sourceType); + + dataMap.put("scoreMap",scoreMap); + dataMap.put("yearList",yearList); + + } catch (Exception e) { + e.printStackTrace(); + log.error("PortalPerformanceInfoCmd :"+e); + dataMap.put("count","-1"); + } + + return dataMap; + } + + public Map getLastMonthKpi2(String employeeId, String groupId, String sourceType){ + + log.error("PortalPerformanceInfoCmd getLastMonthKpi2"); + + Map dataMap = new HashMap(); + + List> indicatorList = new ArrayList>(); + + if(StringUtils.isNotBlank(employeeId)){ + String sql =" select left(k.real_period,10) as real_period,left(k.real_period,7) as period_month,k.kpi_scheme,k.score\n" + + " from (select real_period,kpi_scheme,score\n" + + " from hr_kpi_flow \n" + + " where kpi_user='"+employeeId+"' \n" + + " and module = 'kpiFlow' \n" + + " and date_type = 'month' \n" + + " and delete_type = '0' " + + " and tenant_key='"+tenant_key+"'\n" + + " and FLOW_STATUS in('noApprove','approve','finished')\n" + + " order by real_period desc\n" + + ") k limit 1 "; + + log.error("sql20-1:"+sql); + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if(CollectionUtils.isNotEmpty(recordList)){ + Map recordMap = recordList.get(0); + if(!recordMap.isEmpty()){ + String score = String.valueOf(recordMap.get("score")); + String kpi_scheme = String.valueOf(recordMap.get("kpi_scheme")); + String real_period = String.valueOf(recordMap.get("real_period")); + String period_month = String.valueOf(recordMap.get("period_month")); + + dataMap.put("score",score); + dataMap.put("yearmonth",period_month); + dataMap.put("kpi_scheme",kpi_scheme); + dataMap.put("real_period",real_period); + } + } + } + + if(!dataMap.isEmpty()){ + String kpi_scheme = String.valueOf(dataMap.get("kpi_scheme")); + + log.error("kpi_scheme:"+kpi_scheme); + + if(StringUtils.isNotBlank(kpi_scheme)){ + String sql =" select indicator_type,indicator_description,weight \n" + + " from hr_kpi_scheme_indicator " + + " where scheme_id='"+kpi_scheme+"' " + + " and indicator_mode='quantify'\n" + + " and status='on' " + + " and delete_type = '0'" + + " and tenant_key = '"+tenant_key+"'" ; + + log.error("sql2:"+sql); + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + + log.error("recordList:"+recordList.size()); + + if(recordList.size()>=2){ + for(int i=0;i<2;i++){ + indicatorList.add(recordList.get(i)); + } + }else if(recordList.size() == 1){ + indicatorList.add(recordList.get(0)); + + Map indicatorMap = new HashMap(); + sql = " select name,data_row,property\n" + + " from hr_kpi_details_link\n" + + " where kpi_details in( " + + " select id\n" + + " from hr_kpi_details " + + " where KPI_SCHEME='"+kpi_scheme+"'\n" + + " and MODULE='kpiSchemeSetting'\n" + + " and TENANT_KEY='"+tenant_key+"'\n" + + " and DELETE_TYPE = 0" + + " )\n" + + " and module = 'kpiSchemeSetting'\n" + + " and tenant_key = '"+tenant_key+"'\n" + + " and delete_type = '0'\n" + + " and property in('weight', 'describe', 'type')\n" + + " and data_row in ( \n" + + " select p.data_row from (\n" + + " select w.data_row from (\n" + + " select data_row \n" + + " from hr_kpi_details_link\n" + + " where kpi_details in ( " + + " select id\n" + + " from hr_kpi_details " + + " where KPI_SCHEME='"+kpi_scheme+"'\n" + + " and MODULE='kpiSchemeSetting'\n" + + " and TENANT_KEY='"+tenant_key+"'\n" + + " and DELETE_TYPE = 0" + + " )\n" + + " and PROPERTY = 'weight'\n" + + " and MODULE = 'kpiSchemeSetting'\n" + + " and TENANT_KEY = '"+tenant_key+"'\n" + + " and DELETE_TYPE = '0'\n" + + " order by name desc\n" + + " ) w limit 1 \n" + + " ) p\n" + + " )"; + log.error("sql3:"+sql); + Map result2 = databaseUtils.execute(sourceType, groupId, sql); + List> recordList2 = databaseUtils.getDataSourceList(result2); + log.error("recordList2:"+recordList2.size()); + for(int i=0;i recordMap = recordList2.get(i); + String name = String.valueOf(recordMap.get("name")); + String property = String.valueOf(recordMap.get("property")); + + log.error("name:"+name); + log.error("property:"+property); + + if("weight".equalsIgnoreCase(property)){ + indicatorMap.put("weight",name); + } + if("describe".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_description",name); + } + if("type".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_type",name); + } + } + + if(!indicatorMap.isEmpty()){ + indicatorList.add(indicatorMap); + } + + }else{ + + sql = " select w.data_row from (\n" + + " select data_row\n" + + " from hr_kpi_details_link\n" + + " where kpi_details in( " + + " select id\n" + + " from hr_kpi_details " + + " where KPI_SCHEME='"+kpi_scheme+"'\n" + + " and MODULE='kpiSchemeSetting'\n" + + " and TENANT_KEY='"+tenant_key+"'\n" + + " and DELETE_TYPE = 0" + + " )\n" + + " and PROPERTY = 'weight'\n" + + " and MODULE = 'kpiSchemeSetting'\n" + + " and TENANT_KEY = '"+tenant_key+"'\n" + + " and DELETE_TYPE = '0'\n" + + " order by name desc\n" + + ") w limit 2" ; + log.error("sql4:"+sql); + Map result3 = databaseUtils.execute(sourceType, groupId, sql); + List> recordList3 = databaseUtils.getDataSourceList(result3); + for(int k=0;k recordMap3 = recordList3.get(k); + + String data_row = String.valueOf(recordMap3.get("data_row")); + + Map indicatorMap = new HashMap(); + + sql = " select name,data_row,property\n" + + " from hr_kpi_details_link\n" + + " where kpi_details in( " + + " select id\n" + + " from hr_kpi_details " + + " where KPI_SCHEME='"+kpi_scheme+"'\n" + + " and MODULE='kpiSchemeSetting'\n" + + " and TENANT_KEY='"+tenant_key+"'\n" + + " and DELETE_TYPE = 0" + + " )\n" + + " and MODULE = 'kpiSchemeSetting'\n" + + " and TENANT_KEY = '"+tenant_key+"'\n" + + " and DELETE_TYPE = '0'\n" + + " and property in('weight', 'describe', 'type')\n" + + " and data_row in("+data_row+")" ; + + log.error("sql5:"+sql); + + Map result2 = databaseUtils.execute(sourceType, groupId, sql); + List> recordList2 = databaseUtils.getDataSourceList(result2); + + for(int i=0;i recordMap = recordList2.get(i); + + String name = String.valueOf(recordMap.get("name")); + String property = String.valueOf(recordMap.get("property")); + if("weight".equalsIgnoreCase(property)){ + indicatorMap.put("weight",name); + } + if("describe".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_description",name); + } + if("type".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_type",name); + } + } + + indicatorList.add(indicatorMap); + } + } + } + dataMap.put("indicator",indicatorList); + } + return dataMap ; + } + + + public List> getWholeYearKpi2(String employeeId,String groupId,String sourceType){ + + List> dateList = new ArrayList>(); + + Map dataMap = null; + LocalDate localDate = LocalDate.now(); + int year = localDate.getYear() ; + int dayOfYear = 1 ; + String[] monthzw = new String[]{"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"}; + + for(int i=1;i<=12;i++){ + Month month = Month.of(i); + LocalDate startDay = YearMonth.of(year, month).atDay(dayOfYear); // 计算当前月份的首日 + LocalDate endDay = YearMonth.of(year, month).atEndOfMonth(); // 计算当前月份的最后一天 + + log.error("getWholeYearKpi2-startDay:"+startDay); + log.error("getWholeYearKpi2-endDay:"+endDay); + + String yearMonth = ""; + if(monthzw.length==12){ + yearMonth = monthzw[i-1]; + } + + String sql =" select score from hr_kpi_flow " + + " where kpi_user='"+employeeId+"' " + + " and left(real_period,10) >= '" +startDay+"'" + + " and left(real_period,10) <='" + endDay +"'" + + " and module = 'kpiFlow'" + + " and date_type = 'month'" + + " and flow_status in('noApprove','approve','finished') \n" + + " and delete_type = '0'" + + " and tenant_key='"+tenant_key+"' " ; + + log.error("getWholeYearKpi2-sql:"+sql); + + dataMap = new HashMap(); + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if(CollectionUtils.isNotEmpty(recordList)){ + Map recordMap = recordList.get(0); + if(!recordMap.isEmpty()){ + String score = String.valueOf(recordMap.get("score")); + if(StringUtils.isNotBlank(score)){ + dataMap.put(yearMonth,score); + } + } + }else{ + dataMap.put(yearMonth,"0"); + } + + dateList.add(dataMap); + } + return dateList ; + } + + + + public static String null2String(String s,String def) { + return s == null ?(def==null?"":def) : s; + + } +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalRiskInfoCmd.java b/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalRiskInfoCmd.java new file mode 100644 index 0000000..58d4415 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalRiskInfoCmd.java @@ -0,0 +1,131 @@ +package com.weaver.seconddev.jcldoor.cmd; + +import com.weaver.seconddev.jcldoor.util.DatabaseUtils; +import com.weaver.teams.domain.user.SimpleEmployee; +import com.weaver.teams.security.context.UserContext; +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 javax.servlet.http.HttpServletRequest; +import java.time.LocalDate; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 风险信息 + * + * @author wangj + * @version 1.00版本 + * @Date 2024/3/8 + */ +@Component +public class PortalRiskInfoCmd { + //日志 + private final static Logger log = LoggerFactory.getLogger(UserInfoCmd.class); + + @Autowired + private DatabaseUtils databaseUtils; + + public String tenant_key = "t7akvdnf84" ; + + + /** + * 获取风险信息 + * @param simpleEmployee + * @return + */ + public Map getInfo(HttpServletRequest request, SimpleEmployee simpleEmployee) { + Map recordMap = new HashMap(); + try { + + String day = null2String(request.getParameter("day"),"30"); + SimpleEmployee employee = UserContext.getCurrentUser(); + + String startDay = ""; + log.error("testSapi17 day:"+startDay); + if(StringUtils.isNotBlank(day)){ + int day_ = Integer.parseInt(day); + LocalDate today = LocalDate.now(); // 获取当前日期 + LocalDate tenDaysBefore = today.minusDays(day_); // 当前日期前10天 + startDay = tenDaysBefore.toString(); + }else{ + LocalDate today = LocalDate.now(); // 获取当前日期 + LocalDate tenDaysBefore = today.minusDays(30); // 当前日期前10天 + startDay = tenDaysBefore.toString(); + } + + log.error("testSapi17 startDay:"+startDay); + + long employeeId = UserContext.getCurrentEmployeeId(); + + + String groupId = "weaver-portrait-service"; + String sourceType = "LOGIC"; + + String sql =" SELECT \n" + + " t1.id typeid,\n" + + " t1.name typename,\n" + + " t2.id riskid,\n" + + " t2.name riskname,\n" + + " t.risk_value,\n" + + " e.username,\n" + + " t.tenant_key,\n" + + " t.userid,\n" + + " times \n" + + " FROM ( \n" + + " SELECT k.riskid,k.risk_value,k.tenant_key,k.userid,COUNT(k.riskid) times \n" + + " FROM (\n" + + " SELECT t.riskid,t.risk_value,t.tenant_key,t.userid\n" + + " FROM pr_indrisk_data t \n" + + " WHERE t.delete_type = 0 \n" + + " AND t.tenant_key = '"+tenant_key+"'\n" + + " AND t.risk_date >= '"+startDay+"'\n" + + " AND t.userid = '"+employeeId+"'\n" + + " union all\n" + + " SELECT t.riskid,t.risk_value,t.tenant_key,t.userid \n" + + " FROM pr_indrisk_data t \n" + + " WHERE t.delete_type = 0 \n" + + " AND t.tenant_key = '"+tenant_key+"' \n" + + " AND t.risk_date >= '"+startDay+"' \n" + + " AND t.userid IN (select cid from eteams.emp_link where pid= '"+employeeId+"' and relation = 'senior') \n" + + " ) k \n" + + " GROUP BY k.riskid,\n" + + " k.risk_value,\n" + + " k.tenant_key,\n" + + " k.userid\n" + + " ) t,\n" + + " pr_indrisk_type t1,\n" + + " pr_indrisk_info t2 ,\n" + + " eteams.employee e\n" + + " WHERE t.riskid = t2.id \n" + + " AND t2.risk_type = t1.id \n" + + " AND t.userid = e.id\n" + + " AND e.STATUS != 'unavailable' AND e.PERMANENTLY_DELETE = '0'\n" + + " AND t1.delete_type = 0 \n" + + " AND t2.delete_type = 0" ; + + log.error("PortalRiskInfoCmd:"+sql); + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + for(int i=0;i recordMap2 = recordList.get(i); + recordMap2.put("pid",i+""); + } + recordMap.put("datas",recordList); + } catch (Exception e) { + e.printStackTrace(); + log.error("PortalRiskInfoCmd E:"+e); + } + return recordMap; + } + + public static String null2String(String s,String def) { + return s == null ?(def==null?"":def) : s; + } +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalWorkAchievementCmd.java b/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalWorkAchievementCmd.java new file mode 100644 index 0000000..cb8b4bd --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/cmd/PortalWorkAchievementCmd.java @@ -0,0 +1,204 @@ +package com.weaver.seconddev.jcldoor.cmd; + +import com.alibaba.fastjson.JSONObject; +import com.weaver.seconddev.jcldoor.util.DatabaseUtils; +import com.weaver.teams.domain.user.SimpleEmployee; +import okhttp3.*; +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 javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * 人员工作成就 + * + * @author wangj + * @version 1.00版本 + * @Date 2024/3/4 + */ +@Component +public class PortalWorkAchievementCmd { + //日志 + private final static Logger log = LoggerFactory.getLogger(UserInfoCmd.class); + + @Autowired + private DatabaseUtils databaseUtils; + + /** + * 获取工作成就信息 + * @param simpleEmployee + * @return + */ + public Map getInfo(HttpServletRequest request, SimpleEmployee simpleEmployee) { + Map result = getSaleInfo(request,simpleEmployee); + + return result; + } + + public Map getSaleInfo(HttpServletRequest request, SimpleEmployee simpleEmployee){ + Map map = new HashMap<>(10); + String headcookie = request.getHeader("Cookie"); + //有效合同金额 + JSONObject yxhtjeObj = new JSONObject(); + try { + JSONObject params = new JSONObject(); + params.put("compId","e12a1c232bbe4238859da5963f5e9407"); + params.put("pageId","880065951867256872"); + params.put("filter","[{\"value\":\"f26759ae44ef4e2f866b8dc3359b8c8a\",\"conditionComId\":\"d84ed5ccd4204ef595885cad8dde1822\",\"funcType\":\"\",\"filterFields\":[],\"dataType\":\"classification\",\"conditionType\":\"and\"}]"); + params.put("pageFilter","[{\"dataset\":{\"id\":\"10\",\"text\":\"业绩达成表\",\"type\":\"LOGIC\",\"groupId\":\"weaver-ebuilder-contract-servicecmdatauFJXHS\",\"isPhysical\":false}}]"); + params.put("cusMenuId","838181366272991264"); + params.put("urlPageTitle","5ZCI5ZCM6Zeo5oi3"); + + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, params.toJSONString()); + Request requestPost = new Request.Builder() + .url("http://10.12.253.23:20600/api/ebuilder/coms/digitalpanel/getData") + .method("POST", body) + .addHeader("Cookie", headcookie) + .addHeader("Content-Type", "application/json") + .build(); + Response response = client.newCall(requestPost).execute(); + + int code = response.code(); + log.error("getSaleInfo yxhtjeObj:"+code); + String data = response.body().string(); + + log.error("getSaleInfo yxhtjeObj:"+data); + + if(StringUtils.isNotBlank(data)){ + yxhtjeObj = JSONObject.parseObject(data); + } + } catch (IOException e) { + e.printStackTrace(); + log.error("getSaleInfo yxhtjeObj:"+e); + } + map.put("yxhtjeObj",yxhtjeObj); + + + //新客户销售合同金额 + JSONObject xkhxshtjeObj = new JSONObject(); + try { + JSONObject params = new JSONObject(); + params.put("compId","c0a6f30332a04612b17487f894a9bdb2"); + params.put("pageId","880065951867256872"); + params.put("filter","[{\"value\":\"f26759ae44ef4e2f866b8dc3359b8c8a\",\"conditionComId\":\"d84ed5ccd4204ef595885cad8dde1822\",\"funcType\":\"\",\"filterFields\":[],\"dataType\":\"classification\",\"conditionType\":\"and\"}]"); + params.put("pageFilter","[{\"dataset\":{\"id\":\"40\",\"text\":\"类型分布表\",\"type\":\"LOGIC\",\"groupId\":\"weaver-ebuilder-contract-servicecmdatauFJXHS\",\"isPhysical\":false}}]"); + params.put("cusMenuId","838181366272991264"); + params.put("urlPageTitle","5ZCI5ZCM6Zeo5oi3"); + + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, params.toJSONString()); + Request requestPost = new Request.Builder() + .url("http://10.12.253.23:20600/api/ebuilder/coms/digitalpanel/getData") + .method("POST", body) + .addHeader("Cookie", headcookie) + .addHeader("Content-Type", "application/json") + .build(); + Response response = client.newCall(requestPost).execute(); + + int code = response.code(); + log.error("getSaleInfo xkhxshtjeObj:"+code); + String data = response.body().string(); + + log.error("getSaleInfo xkhxshtjeObj:"+data); + + if(StringUtils.isNotBlank(data)){ + xkhxshtjeObj = JSONObject.parseObject(data); + } + } catch (IOException e) { + e.printStackTrace(); + log.error("getSaleInfo xkhxshtjeObj:"+e); + } + map.put("xkhxshtjeObj",xkhxshtjeObj); + + + //老客户销售合同金额 + JSONObject lkhxshtjeObj = new JSONObject(); + try { + JSONObject params = new JSONObject(); + params.put("compId","eed91abb469f49928ef2a7a89ab02c93"); + params.put("pageId","880065951867256872"); + params.put("filter","[{\"value\":\"f26759ae44ef4e2f866b8dc3359b8c8a\",\"conditionComId\":\"d84ed5ccd4204ef595885cad8dde1822\",\"funcType\":\"\",\"filterFields\":[],\"dataType\":\"classification\",\"conditionType\":\"and\"}]"); + params.put("pageFilter","[{\"dataset\":{\"id\":\"40\",\"text\":\"类型分布表\",\"type\":\"LOGIC\",\"groupId\":\"weaver-ebuilder-contract-servicecmdatauFJXHS\",\"isPhysical\":false}}]"); + params.put("cusMenuId","838181366272991264"); + params.put("urlPageTitle","5ZCI5ZCM6Zeo5oi3"); + + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, params.toJSONString()); + Request requestPost = new Request.Builder() + .url("http://10.12.253.23:20600/api/ebuilder/coms/digitalpanel/getData") + .method("POST", body) + .addHeader("Cookie", headcookie) + .addHeader("Content-Type", "application/json") + .build(); + Response response = client.newCall(requestPost).execute(); + + int code = response.code(); + log.error("getSaleInfo lkhxshtjeObj:"+code); + String data = response.body().string(); + + log.error("getSaleInfo lkhxshtjeObj:"+data); + + if(StringUtils.isNotBlank(data)){ + lkhxshtjeObj = JSONObject.parseObject(data); + } + } catch (IOException e) { + e.printStackTrace(); + log.error("getSaleInfo lkhxshtjeObj:"+e); + } + map.put("lkhxshtjeObj",lkhxshtjeObj); + + + //已收款合同金额 + JSONObject yskhtjeObj = new JSONObject(); + try { + JSONObject params = new JSONObject(); + params.put("compId","f03ca1dcaecd456ebb573a23dbe5075b"); + params.put("pageId","880065951867256872"); + params.put("filter","[{\"value\":\"f26759ae44ef4e2f866b8dc3359b8c8a\",\"conditionComId\":\"d84ed5ccd4204ef595885cad8dde1822\",\"funcType\":\"\",\"filterFields\":[],\"dataType\":\"classification\",\"conditionType\":\"and\"}]"); + params.put("pageFilter","[{\"dataset\":{\"id\":\"30\",\"text\":\"合同收款表\",\"type\":\"LOGIC\",\"groupId\":\"weaver-ebuilder-contract-servicecmdatauFJXHS\",\"isPhysical\":false}}]"); + params.put("cusMenuId","838181366272991264"); + params.put("urlPageTitle","5ZCI5ZCM6Zeo5oi3"); + + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, params.toJSONString()); + Request requestPost = new Request.Builder() + .url("http://10.12.253.23:20600/api/ebuilder/coms/digitalpanel/getData") + .method("POST", body) + .addHeader("Cookie", headcookie) + .addHeader("Content-Type", "application/json") + .build(); + Response response = client.newCall(requestPost).execute(); + + int code = response.code(); + log.error("getSaleInfo yskhtjeObj:"+code); + String data = response.body().string(); + log.error("getSaleInfo yskhtjeObj:"+data); + if(StringUtils.isNotBlank(data)){ + yskhtjeObj = JSONObject.parseObject(data); + } + } catch (IOException e) { + e.printStackTrace(); + log.error("getSaleInfo yskhtjeObj:"+e); + } + map.put("yskhtjeObj",yskhtjeObj); + + + map.put("yxht","0"); + map.put("xkh","0");; + map.put("lkh","0"); + map.put("yskhtje","0"); + return map; + } + +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/cmd/UserInfoCmd.java b/src/main/java/com/weaver/seconddev/jcldoor/cmd/UserInfoCmd.java new file mode 100644 index 0000000..d15d2d7 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/cmd/UserInfoCmd.java @@ -0,0 +1,228 @@ +package com.weaver.seconddev.jcldoor.cmd; + +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.framework.rpc.annotation.RpcReference; +import com.weaver.seconddev.jcldoor.util.CommonUtils; +import com.weaver.seconddev.jcldoor.util.DatabaseUtils; +import com.weaver.teams.client.doc.remote.DocClientService; +import com.weaver.teams.domain.user.SimpleEmployee; +import com.weaver.teams.security.context.UserContext; +import com.weaver.workflow.common.constant.list.listdimension.RequestListInitDimensionTabEnum; +import com.weaver.workflow.common.entity.list.api.RequestListConditionApiEntity; +import com.weaver.workflow.common.entity.list.api.publicapi.RequestCountInfoPAEntity; +import com.weaver.workflow.list.api.rest.publicapi.WflRequestListRest; +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.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 人员基本信息 + * + * @author wangj + * @version 1.00版本 + * @Date 2024/3/4 + */ +@Component +public class UserInfoCmd { + //日志 + private final static Logger log = LoggerFactory.getLogger(UserInfoCmd.class); + + @Autowired + private DatabaseUtils databaseUtils; + + @RpcReference + DocClientService docClientService; + + @RpcReference(group = "workflow") + WflRequestListRest wflRequestListRest; + + /** + * 我在泛微信息(姓名,部门-岗位,入职天数:478天,人员交流:80人,创建文档:128个,参与群聊:128个,创建流程:239条,处理流程:439条) + * + * @param simpleEmployee + * @return + */ + public Map getUserInfo(SimpleEmployee simpleEmployee) { + Map map = new HashMap<>(100); + String userid = String.valueOf(simpleEmployee.getEmployeeId()); + String username = String.valueOf(simpleEmployee.getName()); + String userimageurl = "/profile/" + userid + "/personal"; + String department = ""; + String position = ""; + int days = 0; + String doccreate = "0"; + String wfcreate = "0"; + String wfdeal = "0"; + String cyqlsl = "0"; + String mtgtrs = "0"; + + try { + Map recordMap = new HashMap(); + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + String tenant_key = "t7akvdnf84"; + + if (StringUtils.isNotBlank(userid)) { + String dataSql = "select " + + " a.id, " + + " a.username, " + + " a.hiredate, " + + " b.name as department, " + + " c.name as position " + + "from " + + " eteams.employee a " + + " left join eteams.department b on a.department = b.id " + + " left join eteams.position c on c.id = a.position " + + "where " + + " a.id = '" + userid + "' " + + " and a.tenant_key = '" + tenant_key + "' " + + " and a.status = 'normal' " + + " and a.type = 'inside'"; + + log.error("getuserIfo--dataSql:" + dataSql); + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(result); + if (CollectionUtils.isNotEmpty(recordList)) { + recordMap = recordList.get(0); + } + username = CommonUtils.null2String(recordMap.get("username")); + department = CommonUtils.null2String(recordMap.get("department")); + position = CommonUtils.null2String(recordMap.get("position")); + String hiredate = CommonUtils.null2String(recordMap.get("hiredate")); + if (!"".equals(hiredate)) { + days = calculateMinute(hiredate); + } + //文档创建 + doccreate = getDocCreateNum(userid); + //流程创建 + wfcreate = getWfCreateNum(); + //流程处理 + wfdeal = getWfDealNum(); + + // + cyqlsl = "0"; + mtgtrs = "0"; + } + } catch (Exception e) { + log.error("getUserInfo--Exception:" + e.getMessage()); + } + map.put("userid", userid); + map.put("userimageurl",userimageurl); + map.put("username", username); + map.put("department", department); + map.put("position", position); + map.put("days", days); + map.put("doccreate", doccreate); + map.put("wfcreate", wfcreate); + map.put("wfdeal", wfdeal); + map.put("cyqlsl", cyqlsl); + map.put("mtgtrs", mtgtrs); + + return map; + } + + /** + * 获取文档创建数量 + * + * @param userid + * @return + */ + public String getDocCreateNum(String userid) { + String num = "0"; + try { + long employeeId = Long.parseLong(userid); + int doccreatecount = docClientService.countByCreator(employeeId); + num = doccreatecount + ""; + } catch (Exception e) { + e.printStackTrace(); + log.error("getDocCreateNum:" + e); + } + return num; + } + + /** + * 流程创建数量 + * + * @return + */ + public String getWfCreateNum() { + String num = "0"; + try { + SimpleEmployee employee = UserContext.getCurrentUser(); + RequestListConditionApiEntity conditionEntity = new RequestListConditionApiEntity(); + WeaResult RequestCountInfoPAEntity = wflRequestListRest.getRequestCountByTabId(employee, RequestListInitDimensionTabEnum.MINE_FLOWALL.getTabid(), conditionEntity); + Long count = RequestCountInfoPAEntity.getData().getCount(); + num = count + ""; + } catch (Exception e) { + e.printStackTrace(); + log.error("getWfCreateNum:" + e); + } + return num; + } + + /** + * 流程处理数量 + * + * @return + */ + public String getWfDealNum() { + String num = "0"; + try { + SimpleEmployee employee = UserContext.getCurrentUser(); + RequestListConditionApiEntity conditionEntity = new RequestListConditionApiEntity(); + WeaResult RequestCountInfoPAEntity = wflRequestListRest.getRequestCountByTabId(employee, RequestListInitDimensionTabEnum.DONE_FLOWALL.getTabid(), conditionEntity); + int code = RequestCountInfoPAEntity.getCode(); + Long count = RequestCountInfoPAEntity.getData().getCount(); + num = count + ""; + } catch (Exception e) { + e.printStackTrace(); + log.error("getWfDealNum:" + e); + } + return num; + } + + /** + * 计算日期相差天数 + * + * @param sdate + * @return + * @throws ParseException + */ + public static int calculateMinute(String sdate) throws ParseException { + long l = 0; + boolean flag = isTimestampFormat(sdate); + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Date etime = new Date(); + if (flag) { + Date stime = df.parse(sdate); + l = etime.getTime() - stime.getTime(); + } else { + l = etime.getTime() - new Long(sdate); + } + + int day = (int) (l / (24 * 60 * 60 * 1000)); + + return day; + } + + public static boolean isTimestampFormat(String inputDate) { + // 使用 simpleDateFormat 尝试将输入日期解析为时间戳格式 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + sdf.parse(inputDate); + return true; + } catch (Exception e) { + return false; + } + } + +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/controller/HrmSelfHelpController.java b/src/main/java/com/weaver/seconddev/jcldoor/controller/HrmSelfHelpController.java new file mode 100644 index 0000000..c55b2a9 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/controller/HrmSelfHelpController.java @@ -0,0 +1,1906 @@ +package com.weaver.seconddev.jcldoor.controller; + +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.authority.annotation.WeaPermission; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.em.msg.api.rest.OaRest; +import com.weaver.framework.remote.client.rest.RestClient; +import com.weaver.framework.rpc.annotation.RpcReference; +import com.weaver.seconddev.jcldoor.util.CommonUtils; +import com.weaver.seconddev.jcldoor.util.DatabaseUtils; +import com.weaver.teams.blog.domain.RemoteBlogInfoService; +import com.weaver.teams.client.doc.remote.DocClientService; +import com.weaver.teams.domain.hr.RemoteHrKpiService; +import com.weaver.teams.domain.hr.entity.FlowData; +import com.weaver.teams.domain.hr.entity.FlowDataListReq; +import com.weaver.teams.domain.hr.entity.FlowDataListRes; +import com.weaver.teams.domain.user.SimpleEmployee; +import com.weaver.teams.security.context.UserContext; +import com.weaver.workflow.common.constant.list.listdimension.RequestListInitDimensionTabEnum; +import com.weaver.workflow.common.entity.list.api.RequestListConditionApiEntity; +import com.weaver.workflow.common.entity.list.api.publicapi.RequestCountInfoPAEntity; +import com.weaver.workflow.common.entity.list.api.publicapi.RequestListInfoPAEntity; +import com.weaver.workflow.list.api.rest.publicapi.WflRequestListRest; +import com.weaver.workrelate.performance.api.rest.RemotePerformanceService; +import okhttp3.*; +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.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import sun.misc.BASE64Decoder; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.Month; +import java.time.YearMonth; +import java.time.temporal.TemporalAdjusters; +import java.util.*; + +@RestController +@RequestMapping("/api/secondev/njjcldoor") +public class HrmSelfHelpController { + + //日志 + private final Logger log = LoggerFactory.getLogger(HrmSelfHelpController.class); + + @Autowired + private RestClient restClient; + + @RpcReference + public RemotePerformanceService remotePerformanceService ; + + @RpcReference + public RemoteHrKpiService remoteHrKpiService ; + + @RpcReference(group = "workflow") + WflRequestListRest wflRequestListRest; + + @RpcReference + DocClientService docClientService; + + @RpcReference + private OaRest oaRest; + + @RpcReference + private RemoteBlogInfoService remoteBlogInfoService ; + + @Autowired + private DatabaseUtils databaseUtils; + + + public String tenant_key = "t7akvdnf84" ; + + /** + * + * @param request + * @return + */ + @GetMapping("/testSapi1") + @WeaPermission(publicPermission = true) + public WeaResult getColumsCustomerName(HttpServletRequest request){ + log.error("testSapi"); + Map response = new HashMap<>(); + String ids = request.getParameter("ids"); + + log.error("testSapi-ids:"+ids); + + try{ + response = restClient.postForObject("/openserver/sapi/architecture/v1/external/query/employee/list", request, Map.class); + log.error("testSapi-response"+response.toString()); + }catch (Exception e){ + log.error("testSapi-Exception:"+e); + } + + return WeaResult.success(response); + } + + +// @GetMapping("/testSapi2") +// @WeaPermission(publicPermission = true) +// public WeaResult getColumsCustomerName2(HttpServletRequest request){ +// // 1、请求头 +// HttpHeaders httpHeaders = new HttpHeaders(); +// +// httpHeaders.add("header", "value"); +// HttpEntity requestEntity = new HttpEntity<>(null, httpHeaders); +// // 3、请求体参数 +// List list = new ArrayList<>(100); +// list.add("6488080121949444347"); +// Map params = new HashMap<>(); +// params.put("ids",list); +// // 4、请求接⼝,获取返回信息,参数拼接在url后⾯ +// RestTemplate restTemplate = new RestTemplateBuilder().build(); +// ResponseEntity responseEntity = restTemplate.exchange(BaseHttpUtil.urlConcatenation("/sapi/architecture/v1/external/query/employee/list",params), HttpMethod.GET, requestEntity, WeaResult.class); +// // 5、获取返回信息 +// WeaResult weaResult = responseEntity.getBody(); +// return weaResult; + + + + @GetMapping("/testSapi3") + @WeaPermission(publicPermission = true) + public WeaResult testSapi3(HttpServletRequest request){ + String request_cookie = "" ; + Cookie[] cookies = request.getCookies(); + for (Cookie cookie : cookies){ + //判断携带的cookie是否正确 + String cookiename = cookie.getName(); + String cookievalue = cookie.getValue(); + + log.error("cookiename3:"+cookiename); + log.error("cookievalue3:"+cookievalue); + + request_cookie += StringUtils.isBlank(request_cookie) ? cookiename+"="+cookievalue : "; "+cookiename+"="+cookievalue ; + } + + log.error("request_cookie3:"+request_cookie); + log.error("3333333333"); + + JSONObject jsonObject = new JSONObject(); + try { + String content = "{\"beginDate\": \"2024-01-01\", \"endDate\": \"2024-01-31\", \"userId\": \"6488080121949444347\"}"; + + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, content); + Request request3 = new Request.Builder() + .url("http://10.12.253.23:20600/api/attend/web/attendInfoV2/getAttendInfoStatis") + .method("POST", body) + .addHeader("Cookie", request_cookie) + .addHeader("Content-Type", "application/json") + .build(); + Response response = client.newCall(request3).execute(); + + int code = response.code(); + String data = response.body().string(); + + log.error("code3:"+code); + log.error("data3:"+data); + + if(StringUtils.isNotBlank(data)){ + jsonObject = JSONObject.parseObject(data); + } + } catch (IOException e) { + e.printStackTrace(); + log.error("testSapi3-e:"+e); + } + + jsonObject.put("test111","testSapi3"); + return WeaResult.success(jsonObject.toString()); + } + + + @GetMapping("/testSapi4") + @WeaPermission(publicPermission = true) + public WeaResult testSapi4(HttpServletRequest request){ + + String urlip = request.getParameter("urlip") ; + String urlpath = request.getParameter("urlpath") ; + + log.error("urlip41:"+urlip); + log.error("urlpath41:"+urlpath); + + BASE64Decoder decoder = new BASE64Decoder(); + try { + if(StringUtils.isNotBlank(urlip)){ + urlip = new String(decoder.decodeBuffer(urlip),"UTF-8"); + } + log.error("urlip42:"+urlip); + + if(StringUtils.isNotBlank(urlpath)){ + urlpath = new String(decoder.decodeBuffer(urlpath),"UTF-8"); + } + log.error("urlpath42:"+urlpath); + + } catch (IOException e) { + e.printStackTrace(); + } + + + String beginDate = request.getParameter("beginDate") ; + String endDate = request.getParameter("endDate") ; + String userId = request.getParameter("userId") ; + String request_cookie = "" ; + + Cookie[] cookies = request.getCookies(); + for (Cookie cookie:cookies){ + //判断携带的cookie是否正确 + String cookiename = cookie.getName(); + String cookievalue = cookie.getValue(); + + log.error("cookiename4:"+cookiename); + log.error("cookievalue4:"+cookievalue); + + request_cookie += StringUtils.isBlank(request_cookie) ? cookiename+"="+cookievalue : "; "+cookiename+"="+cookievalue ; + + } + + log.error("request_cookie4:"+request_cookie); + log.error("4444444444444444"); + + JSONObject jsonObject = new JSONObject(); + + try { + String content = "{\"beginDate\": \""+beginDate+"\", \"endDate\": \""+endDate+"\", \"userId\": \""+userId+"\"}" ; + + log.error("content4:"+content); + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, content); + Request request3 = new Request.Builder() + .url(urlip+urlpath) + .method("POST", body) + .addHeader("Cookie", request_cookie) + .addHeader("Content-Type", "application/json") + .build(); + Response response = client.newCall(request3).execute(); + String data = response.body().toString(); + log.error("data4:"+data); + if(StringUtils.isNotBlank(data)){ + jsonObject = JSONObject.parseObject(data); + } + } catch (IOException e) { + e.printStackTrace(); + log.error("testSapi4-e:"+e); + } + log.error("jsonObject4:"+jsonObject.toString()); + + return WeaResult.success(jsonObject.toString()); + } + + + @GetMapping("/testSapi5") + @WeaPermission(publicPermission = true) + public WeaResult testSapi5(HttpServletRequest request){ + + String request_cookie = "" ; + Cookie[] cookies = request.getCookies(); + + for (Cookie cookie : cookies){ + //判断携带的cookie是否正确 + log.error("getName5:" + cookie.getName()); + log.error("getValue5:" + cookie.getValue()); + + String cookiename = cookie.getName(); + String cookievalue = cookie.getValue(); + if("langType".equals(cookiename) || " ETEAMS_TGC".equals(cookiename) || "JSESSIONID".equals(cookiename) || "ETEAMSID".equals(cookiename)){ + request_cookie += StringUtils.isBlank(request_cookie) ? cookiename+"="+cookievalue : "; "+cookiename+"="+cookievalue ; + } + + } + + log.error("request_cookie5:"+request_cookie); + log.error("55555555"); + + JSONObject jsonObject = new JSONObject(); + try { + String content = "{\"beginDate\": \"2024-01-01\", \"endDate\": \"2024-01-31\", \"userId\": \"6488080121949444347\"}"; + + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, content); + Request request3 = new Request.Builder() + .url("http://10.12.253.23:20600/api/attend/web/attendInfoV2/getAttendInfoStatis") + .method("POST", body) + .addHeader("Cookie", request_cookie) + .addHeader("Content-Type", "application/json") + .build(); + Response response = client.newCall(request3).execute(); + int code = response.code(); + log.error("code5:"+code); + + String data = response.body().string(); + log.error("data5:"+data); + + if(StringUtils.isNotBlank(data)){ + jsonObject = JSONObject.parseObject(data); + } + } catch (IOException e) { + e.printStackTrace(); + log.error("testSapi5-e:"+e); + } + jsonObject.put("test111","testSapi5"); + return WeaResult.success(jsonObject.toString()); + } + + + + @GetMapping("/testSapi6") + @WeaPermission(publicPermission = true) + public WeaResult testSapi6(HttpServletRequest request){ + + String headcookie = request.getHeader("Cookie"); + String Eteamsid = request.getHeader("Eteamsid"); + + log.error("testSapi6"); + + log.error("headcookie6:"+headcookie); + log.error("6666666111111"); + log.error("Eteamsid:"+Eteamsid); + log.error("66666222222"); + + JSONObject jsonObject = new JSONObject(); + try { + String content = "{\"beginDate\": \"2024-01-01\", \"endDate\": \"2024-01-31\", \"userId\": \"6488080121949444347\"}"; + + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, content); + Request request3 = new Request.Builder() + .url("http://10.12.253.23:20600/api/attend/web/attendInfoV2/getAttendInfoStatis") + .method("POST", body) + .addHeader("Cookie", headcookie) + .addHeader("Eteamsid", Eteamsid) + .addHeader("Content-Type", "application/json") + .build(); + Response response = client.newCall(request3).execute(); + + int code = response.code(); + log.error("code6:"+code); + + String data = response.body().string(); + log.error("data6:"+data); + + if(StringUtils.isNotBlank(data)){ + jsonObject = JSONObject.parseObject(data); + } + } catch (IOException e) { + e.printStackTrace(); + log.error("testSapi6:"+e); + } + + jsonObject.put("test111","testSapi6"); + return WeaResult.success(jsonObject.toString()); + } + + + @GetMapping("/testSapi7") + @WeaPermission(publicPermission = true) + public WeaResult testSapi7(HttpServletRequest request){ + + String headcookie = request.getHeader("Cookie"); + + log.error("testSapi7"); + + log.error("testSapi7:"+headcookie); + log.error("6666666111111"); + + JSONObject jsonObject = new JSONObject(); + try { + String content = "{\"beginDate\": \"2024-04-01\", \"endDate\": \"2024-04-30\", \"userId\": \"6488080121949444347\"}"; + + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, "{\"beginDate\": \"2024-01-01\", \"endDate\": \"2024-01-31\", \"userId\": \"6488080121949444347\"}"); + Request request3 = new Request.Builder() + .url("http://10.12.253.23:20600/api/attend/web/attendInfoV2/getAttendInfoStatis") + .method("POST", body) + .addHeader("Cookie", headcookie) + .addHeader("Content-Type", "application/json") + .build(); + Response response = client.newCall(request3).execute(); + + int code = response.code(); + log.error("code7:"+code); + String data = response.body().string(); + + log.error("data7:"+data); + + if(StringUtils.isNotBlank(data)){ + jsonObject = JSONObject.parseObject(data); + } + } catch (IOException e) { + e.printStackTrace(); + log.error("testSapi6:"+e); + } + + jsonObject.put("test111","testSapi7"); + return WeaResult.success(jsonObject.toString()); + } + + + @GetMapping("/testSapi8") + @WeaPermission(publicPermission = true) + public WeaResult testSapi8(HttpServletRequest request){ + + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + + Map dataMap = new HashMap(); + dataMap.put("test","testSapi8"); + try { + FlowDataListReq flowDataListReq = new FlowDataListReq(); + flowDataListReq.setCurrent(1); + flowDataListReq.setPageSize(20); + flowDataListReq.setStartTime("2024-01-01"); + flowDataListReq.setEndTime("2024-01-31"); + flowDataListReq.setDateType("month"); + flowDataListReq.setTenantKey("t7akvdnf84"); + List userList = new ArrayList(); + Long employeeId = UserContext.getCurrentEmployeeId(); + userList.add(employeeId); + flowDataListReq.setUserList(userList); + FlowData flowData = remotePerformanceService.queryFlowData(flowDataListReq); + + Long total = flowData.getTotal(); + dataMap.put("total",total+""); + List flowDataList = flowData.getDataList(); + for(int i = 0 ;i testSapi9(HttpServletRequest request){ + + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + Map dataMap = new HashMap(); + dataMap.put("test","testSapi9"); + try { + Long employeeId = UserContext.getCurrentEmployeeId(); + String TenantKey = "t7akvdnf84"; + dataMap = remoteHrKpiService.getKpiFLowById(employeeId,TenantKey); + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi8:"+e); + } + return WeaResult.success(dataMap); + } + + + @GetMapping("/testSapi10") + @WeaPermission(publicPermission = true) + public WeaResult testSapi10(HttpServletRequest request){ + + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + Map dataMap = new HashMap(); + dataMap.put("test","testSapi10"); + try { + + SimpleEmployee employee = UserContext.getCurrentUser(); + + RequestListConditionApiEntity conditionEntity = new RequestListConditionApiEntity(); + WeaResult RequestCountInfoPAEntity = wflRequestListRest.getRequestCountByTabId(employee, RequestListInitDimensionTabEnum.DONE_FLOWALL.getTabid(), conditionEntity); + int code = RequestCountInfoPAEntity.getCode(); + Long count = RequestCountInfoPAEntity.getData().getCount(); + + dataMap.put("code",code); + dataMap.put("count",count); + + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi10:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(dataMap); + } + + + @GetMapping("/testSapi11") + @WeaPermission(publicPermission = true) + public WeaResult testSapi11(HttpServletRequest request){ + + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + Map dataMap = new HashMap(); + dataMap.put("test","testSapi11"); + try { + SimpleEmployee employee = UserContext.getCurrentUser(); + + + + RequestListConditionApiEntity conditionEntity = new RequestListConditionApiEntity(); + WeaResult RequestCountInfoPAEntity = wflRequestListRest.getRequestCountByTabId(employee, RequestListInitDimensionTabEnum.MINE_FLOWALL.getTabid(), conditionEntity); + int code = RequestCountInfoPAEntity.getCode(); + Long count = RequestCountInfoPAEntity.getData().getCount(); + + dataMap.put("code",code); + dataMap.put("count",count); + + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi11:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(dataMap); + } + + + @GetMapping("/testSapi12") + @WeaPermission(publicPermission = true) + public WeaResult testSapi12(HttpServletRequest request){ + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + Map dataMap = new HashMap(); + dataMap.put("test","testSapi12"); + try { + long employeeId = UserContext.getCurrentEmployeeId(); + int doccreatecount = docClientService.countByCreator(employeeId); + dataMap.put("employeeId",employeeId); + dataMap.put("count",doccreatecount); + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi12:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(dataMap); + } + + + + @GetMapping("/testSapi13") + @WeaPermission(publicPermission = true) + public WeaResult testSapi13(HttpServletRequest request){ + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + Map dataMap = new HashMap(); + dataMap.put("test","testSapi13"); + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + try { + + SimpleEmployee employee = UserContext.getCurrentUser(); + + Calendar cal = Calendar.getInstance(); + int year = cal.get(Calendar.YEAR); + String startDate = year+"-01-01"; + + //设置当前时间 + cal.setTime(new Date()); + //同理增加一天的方法: + cal.add(Calendar.DATE, 1); + String endDate = format.format(cal.getTime()); + + Long cid = employee.getCid(); + String pageSize = "100"; + String pageNum = "1"; + + Map json = new HashMap(); + json.put("cid",cid); + json.put("pageNum",pageNum); + json.put("pageSize",pageSize); + json.put("startDate",startDate); + json.put("endDate",endDate); + + com.weaver.em.msg.api.entity.Request emrequest = new com.weaver.em.msg.api.entity.Request(); + emrequest.setUrl("/user-profile/groupSession"); + emrequest.setParamsMap(json); + com.weaver.em.msg.api.entity.Response response = oaRest.executeIm(emrequest); + + String data = response.getData(); + dataMap.put("datas",data); + + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi13:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(dataMap); + } + + + @GetMapping("/testSapi14") + @WeaPermission(publicPermission = true) + public WeaResult testSapi14(HttpServletRequest request){ + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + Map dataMap = new HashMap(); + dataMap.put("test","testSapi14"); + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + try { + + SimpleEmployee employee = UserContext.getCurrentUser(); + + Calendar cal = Calendar.getInstance(); + int year = cal.get(Calendar.YEAR); + String startDate = year+"-01-01"; + + //设置当前时间 + cal.setTime(new Date()); + //同理增加一天的方法: + cal.add(Calendar.DATE, 1); + String endDate = format.format(cal.getTime()); + + Long cid = employee.getCid(); + String pageSize = "100"; + String pageNum = "1"; + + Map json = new HashMap(); + json.put("cid",cid); + json.put("pageNum",pageNum); + json.put("pageSize",pageSize); + json.put("startDate",startDate); + json.put("endDate",endDate); + + com.weaver.em.msg.api.entity.Request emrequest = new com.weaver.em.msg.api.entity.Request(); + emrequest.setUrl("/user-profile/dailySingleSession"); + emrequest.setParamsMap(json); + com.weaver.em.msg.api.entity.Response response = oaRest.executeIm(emrequest); + + String data = response.getData(); + dataMap.put("datas",data); + + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi14:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(dataMap); + } + + + @GetMapping("/testSapi15") + @WeaPermission(publicPermission = true) + public WeaResult testSapi15(HttpServletRequest request){ + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + Map dataMap = new HashMap(); + dataMap.put("test","testSapi15"); + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + try { + + LocalDate currentDate = LocalDate.now(); + LocalDate lastMonthDate = currentDate.minusMonths(1); + int lastMonth = lastMonthDate.getMonthValue(); + log.error("上个月的月份是:" + lastMonth); + + SimpleEmployee employee = UserContext.getCurrentUser(); + + long employeeId = UserContext.getCurrentEmployeeId(); + + String groupId = "weaver-wr-performance-service"; + String sourceType = "LOGIC"; + + Map dataMap1 = getLastMonthKpi(employeeId,groupId,sourceType); + + Map dataMap2 = getWholeYearKpi(employeeId,groupId,sourceType); + + dataMap.putAll(dataMap1); + dataMap.putAll(dataMap2); + + // " select * from HR_KPI_FLOW where kpi_user='6488080121949444347' and REAL_PERIOD>='2024-01-01' and REAL_PERIOD<='2024-01-31' " ; + // KPI_SCHEME + + //select * from hr_kpi_details where kpi_scheme like '%100001230000006534%' + + + //select * from hr_kpi_details_link where + //KPI_DETAILS like '%100001200000006534%' + //and PROPERTY='describe' + +// select * from hr_kpi_details_link where +// KPI_DETAILS like '%100001200000006534%' +// and PROPERTY = 'weight' + +// select * from hr_kpi_details_link where +// KPI_DETAILS like '%100001200000006534%' +// and PROPERTY = 'type' + + +// select * from hr_kpi_scheme_indicator +// where SCHEME_ID='100001230000006534' + + + + + + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi14:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(dataMap); + } + + + /*** + * + * @param employeeId + * @param groupId + * @param sourceType + * @return + */ + public Map getWholeYearKpi(long employeeId,String groupId,String sourceType){ + + Map dataMap = new HashMap(); + LocalDate localDate = LocalDate.now(); + int year = localDate.getYear() ; + int dayOfYear = 1 ; + for(int i=1;i<=12;i++){ + Month month = Month.of(i); + LocalDate startDay = YearMonth.of(year, month).atDay(dayOfYear); // 计算当前月份的首日 + LocalDate endDay = YearMonth.of(year, month).atEndOfMonth(); // 计算当前月份的最后一天 + String yearMonth = ""; + if(i<10){ + yearMonth = year+"-0"+i ; + }else{ + yearMonth = year+"-"+i ; + } + + String sql =" select score from wr-performance.hr_kpi_flow " + + " where kpi_user='"+employeeId+"' " + + " and REAL_PERIOD >= '" +startDay+"'" + + " and REAL_PERIOD <='" + endDay +"'" + + " and module = 'kpiFlow'" + + " and DATE_TYPE = 'month'" + + " and FLOW_STATUS = 'finished'" + + " and delete_type = '0'" + + " and tenant_key='"+tenant_key+"' " ; + + log.error("sql:"+sql); + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if(CollectionUtils.isNotEmpty(recordList)){ + Map recordMap = recordList.get(0); + if(!recordMap.isEmpty()){ + String score = String.valueOf(recordMap.get("score")); + if(StringUtils.isNotBlank(score)){ + dataMap.put(yearMonth,score); + } + } + } + } + return dataMap ; + } + + + public Map getLastMonthKpi(long employeeId, String groupId, String sourceType){ + + log.error("getLastMonthKpi:"); + + Map dataMap = new HashMap(); + + List> indicatorList = new ArrayList>(); + + LocalDate localDate = LocalDate.now(); + int year = localDate.getYear() ; + for(int i=0;i<=12;i++){ + LocalDate previousMonth = localDate.minusMonths(i); + String startDay = previousMonth.with(TemporalAdjusters.lastDayOfMonth()).toString(); + String endDay = previousMonth.with(TemporalAdjusters.firstDayOfMonth()).toString(); + log.error("startDay:"+startDay); + log.error("endDay:"+endDay); + + String yearMonth = ""; + if(i<10){ + yearMonth = year+"-0"+i ; + }else{ + yearMonth = year+"-"+i ; + } + + String sql =" select kpi_scheme,score " + + " from wr-performance.hr_kpi_flow " + + " where kpi_user='"+employeeId+"' " + + " and real_period >= '" +startDay+"'" + + " and real_period <='" + endDay +"'" + + " and module = 'kpiFlow'" + + " and date_type = 'month'" + + " and flow_status = 'finished'" + + " and delete_type = '0'" + + " and tenant_key='"+tenant_key+"' " ; + log.error("sql:"+sql); + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if(CollectionUtils.isNotEmpty(recordList)){ + Map recordMap = recordList.get(0); + if(!recordMap.isEmpty()){ + String score = String.valueOf(recordMap.get("score")); + String kpi_scheme = String.valueOf(recordMap.get("kpi_scheme")); + log.error("score:"+score); + log.error("kpi_scheme:"+kpi_scheme); + if(StringUtils.isNotBlank(score)){ + dataMap.put("score",score); + dataMap.put("yearmonth",yearMonth); + dataMap.put("kpi_scheme",kpi_scheme); + break; + } + } + } + } + + if(!dataMap.isEmpty()){ + String kpi_scheme = String.valueOf(dataMap.get("kpi_scheme")); + + log.error("kpi_scheme:"+kpi_scheme); + + if(StringUtils.isNotBlank(kpi_scheme)){ + String sql =" select indicator_type,indicator_description,weight \n" + + " from wr-performance.hr_kpi_scheme_indicator " + + " where scheme_id='"+kpi_scheme+"' " + + " and indicator_mode='quantify'\n" + + " and status='on' " + + " and delete_type = '0'" + + " and tenant_key = '"+tenant_key+"'" ; + log.error("sql:"+sql); + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + + log.error("recordList:"+recordList.size()); + + if(recordList.size()>=2){ + for(int i=0;i<2;i++){ + indicatorList.add(recordList.get(i)); + } + }else if(recordList.size() == 1){ + indicatorList.add(recordList.get(0)); + + Map indicatorMap = new HashMap(); + sql = " select name,data_row,property\n" + + " from wr-performance.hr_kpi_details_link\n" + + " where kpi_details = '"+kpi_scheme+"'\n" + + " and module = 'kpiSchemeSetting'\n" + + " and tenant_key = '"+tenant_key+"'\n" + + " and delete_type = '0'\n" + + " and property in('weight', 'describe', 'type')\n" + + " and data_row in ( \n" + + " select p.data_row from (\n" + + " select w.data_row from (\n" + + " select data_row \n" + + " from wr-performance.hr_kpi_details_link\n" + + " where KPI_DETAILS = '"+kpi_scheme+"'\n" + + " and PROPERTY = 'weight'\n" + + " and MODULE = 'kpiSchemeSetting'\n" + + " and TENANT_KEY = '"+tenant_key+"'\n" + + " and DELETE_TYPE = '0'\n" + + " order by name desc\n" + + " ) w limit 1 \n" + + " ) p\n" + + " )"; + log.error("sql:"+sql); + Map result2 = databaseUtils.execute(sourceType, groupId, sql); + List> recordList2 = databaseUtils.getDataSourceList(result2); + log.error("recordList2:"+recordList2.size()); + for(int i=0;i recordMap = recordList2.get(i); + String name = String.valueOf(recordMap.get("name")); + String property = String.valueOf(recordMap.get("property")); + + log.error("name:"+name); + log.error("property:"+property); + + if("weight".equalsIgnoreCase(property)){ + indicatorMap.put("weight",name); + } + if("describe".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_description",name); + } + if("type".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_type",name); + } + } + + if(!indicatorMap.isEmpty()){ + indicatorList.add(indicatorMap); + } + + }else{ + + sql = " select w.data_row from (\n" + + " select data_row\n" + + " from wr-performance.hr_kpi_details_link\n" + + " where KPI_DETAILS = '"+kpi_scheme+"'\n" + + " and PROPERTY = 'weight'\n" + + " and MODULE = 'kpiSchemeSetting'\n" + + " and TENANT_KEY = '"+tenant_key+"'\n" + + " and DELETE_TYPE = '0'\n" + + " order by name desc\n" + + " limit 2\n" + + ") w " ; + + Map result3 = databaseUtils.execute(sourceType, groupId, sql); + List> recordList3 = databaseUtils.getDataSourceList(result3); + for(int k=0;k recordMap3 = recordList3.get(k); + + String data_row = String.valueOf(recordMap3.get("data_row")); + + Map indicatorMap = new HashMap(); + + sql = " select name,data_row,property\n" + + " from wr-performance.hr_kpi_details_link\n" + + " where KPI_DETAILS = '"+kpi_scheme+"'\n" + + " and MODULE = 'kpiSchemeSetting'\n" + + " and TENANT_KEY = '"+tenant_key+"'\n" + + " and DELETE_TYPE = '0'\n" + + " and property in('weight', 'describe', 'type')\n" + + " and data_row in("+data_row+")" ; + + Map result2 = databaseUtils.execute(sourceType, groupId, sql); + List> recordList2 = databaseUtils.getDataSourceList(result2); + + for(int i=0;i recordMap = recordList2.get(i); + + String name = String.valueOf(recordMap.get("name")); + String property = String.valueOf(recordMap.get("property")); + if("weight".equalsIgnoreCase(property)){ + indicatorMap.put("weight",name); + } + if("describe".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_description",name); + } + if("type".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_type",name); + } + } + } + } + } + } + + return dataMap ; + } + + + @GetMapping("/testSapi16") + @WeaPermission(publicPermission = true) + public WeaResult testSapi16(HttpServletRequest request){ + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + Map dataMap = new HashMap(); + dataMap.put("test","testSapi16"); + + Map recordMap = new HashMap(); + try { + + String day = "30"; + SimpleEmployee employee = UserContext.getCurrentUser(); + + long employeeId = UserContext.getCurrentEmployeeId(); + dataMap.put("day",day); + dataMap.put("employeeId",employeeId); + + String groupId = "weaver-portrait-service"; + String sourceType = "LOGIC"; + + String sql =" SELECT \n" + + " t1.id typeid,\n" + + " t1.name typename,\n" + + " t2.id riskid,\n" + + " t2.name riskname,\n" + + " t.risk_value,\n" + + " t.tenant_key,\n" + + " t.userid," + + " e.username,\n" + + " times \n" + + " FROM (\n" + + " SELECT k.riskid,k.risk_value,k.tenant_key,k.userid,COUNT(k.riskid) times \n" + + " FROM (\n" + + " SELECT t.riskid,t.risk_value,t.tenant_key,t.userid\n" + + " FROM pr_indrisk_data t \n" + + " WHERE t.delete_type = 0 \n" + + " AND t.tenant_key = '"+tenant_key+"'\n" + + " AND t.risk_date >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 30 DAY), '%Y-%m-%d')\n" + + " AND t.userid = '"+employeeId+"'\n" + + " union all\n" + + " SELECT t.riskid,t.risk_value,t.tenant_key,t.userid\n" + + " FROM pr_indrisk_data t \n" + + " WHERE t.delete_type = 0 \n" + + " AND t.tenant_key = '"+tenant_key+"'\n" + + " AND t.risk_date >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 30 DAY), '%Y-%m-%d')\n" + + " AND t.userid IN (select cid from eteams.emp_link where pid= '"+employeeId+"' and relation = 'senior') \n" + + " ) k \n" + + " GROUP BY k.riskid,\n" + + " k.risk_value,\n" + + " k.tenant_key,\n" + + " k.userid\n" + + " ) t,\n" + + " pr_indrisk_type t1,\n" + + " pr_indrisk_info t2 ,\n" + + " eteams.employee e\n" + + " WHERE t.riskid = t2.id \n" + + " AND t2.risk_type = t1.id \n" + + " AND t.userid = e.id\n" + + " AND e.STATUS != 'unavailable' AND e.PERMANENTLY_DELETE = '0'\n" + + " AND t1.delete_type = 0 \n" + + " AND t2.delete_type = 0" ; + + log.error("testSapi16:"+sql); + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + recordMap.put("datas",recordList); + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi16:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(recordMap); + } + + + @GetMapping("/testSapi17") + @WeaPermission(publicPermission = true) + public WeaResult testSapi17(HttpServletRequest request){ + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + Map dataMap = new HashMap(); + dataMap.put("test","testSapi17"); + + Map recordMap = new HashMap(); + try { + + String day = null2String(request.getParameter("day"),"30"); + SimpleEmployee employee = UserContext.getCurrentUser(); + + long employeeId = UserContext.getCurrentEmployeeId(); + + dataMap.put("day",day); + dataMap.put("employeeId",employeeId); + + String groupId = "weaver-portrait-service"; + String sourceType = "LOGIC"; + + String sql =" SELECT \n" + + " t1.id typeid,\n" + + " t1.name typename,\n" + + " t2.id riskid,\n" + + " t2.name riskname,\n" + + " t.risk_value,\n" + + " t.tenant_key,\n" + + " t.userid,\n" + + " e.username,\n" + + " times \n" + + " FROM (\n" + + " SELECT k.riskid,k.risk_value,k.tenant_key,k.userid,COUNT(k.riskid) times \n" + + " FROM (\n" + + " SELECT t.riskid,t.risk_value,t.tenant_key,t.userid\n" + + " FROM portrait.pr_indrisk_data t \n" + + " WHERE t.delete_type = 0 \n" + + " AND t.tenant_key = '"+tenant_key+"'\n" + + " AND t.risk_date >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL "+day+" DAY), '%Y-%m-%d')\n" + + " AND t.userid = '"+employeeId+"'\n" + + " union all\n" + + " SELECT t.riskid,t.risk_value,t.tenant_key,t.userid\n" + + " FROM portrait.pr_indrisk_data t \n" + + " WHERE t.delete_type = 0 \n" + + " AND t.tenant_key = '"+tenant_key+"'\n" + + " AND t.risk_date >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL "+day+" DAY), '%Y-%m-%d')\n" + + " AND t.userid IN (select cid from eteams.emp_link where pid= '"+employeeId+"' and relation = 'senior') \n" + + " ) k \n" + + " GROUP BY k.riskid,\n" + + " k.risk_value,\n" + + " k.tenant_key,\n" + + " k.userid\n" + + " ) t,\n" + + " portrait.pr_indrisk_type t1,\n" + + " portrait.pr_indrisk_info t2 ,\n" + + " eteams.employee e\n" + + " WHERE t.riskid = t2.id \n" + + " AND t2.risk_type = t1.id \n" + + " AND t.userid = e.id\n" + + " AND e.STATUS != 'unavailable' AND e.PERMANENTLY_DELETE = '0'\n" + + " AND t1.delete_type = 0 \n" + + " AND t2.delete_type = 0" ; + + log.error("testSapi17:"+sql); + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + recordMap.put("datas",recordList); + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi17:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(recordMap); + } + + + @GetMapping("/testSapi18") + @WeaPermission(publicPermission = true) + public WeaResult testSapi18(HttpServletRequest request){ + //com.weaver.workrelate.performance.api.rest.RemotePerformanceService#queryFlowData + Map dataMap = new HashMap(); + dataMap.put("test","testSapi18"); + + Map recordMap = new HashMap(); + try { + + String day = null2String(request.getParameter("day"),"30"); + SimpleEmployee employee = UserContext.getCurrentUser(); + + String startDay = ""; + if(StringUtils.isNotBlank(day)){ + int day_ = Integer.parseInt(day); + LocalDate today = LocalDate.now(); // 获取当前日期 + LocalDate tenDaysBefore = today.minusDays(day_); // 当前日期前10天 + startDay = tenDaysBefore.toString(); + }else{ + LocalDate today = LocalDate.now(); // 获取当前日期 + LocalDate tenDaysBefore = today.minusDays(30); // 当前日期前10天 + startDay = tenDaysBefore.toString(); + } + long employeeId = UserContext.getCurrentEmployeeId(); + + dataMap.put("day",day); + dataMap.put("employeeId",employeeId); + + String groupId = "weaver-portrait-service"; + String sourceType = "LOGIC"; + + String sql =" SELECT \n" + + " t1.id typeid,\n" + + " t1.name typename,\n" + + " t2.id riskid,\n" + + " t2.name riskname,\n" + + " t.risk_value,\n" + + " t.tenant_key,\n" + + " t.userid,\n" + + " e.username,\n" + + " times \n" + + " FROM ( \n" + + " SELECT k.riskid,k.risk_value,k.tenant_key,k.userid,COUNT(k.riskid) times \n" + + " FROM (\n" + + " SELECT t.riskid,t.risk_value,t.tenant_key,t.userid\n" + + " FROM pr_indrisk_data t \n" + + " WHERE t.delete_type = 0 \n" + + " AND t.tenant_key = '"+tenant_key+"'\n" + + " AND t.risk_date >= '"+startDay+"'\n" + + " AND t.userid = '"+employeeId+"'\n" + + " union all\n" + + " SELECT t.riskid,t.risk_value,t.tenant_key,t.userid \n" + + " FROM pr_indrisk_data t \n" + + " WHERE t.delete_type = 0 \n" + + " AND t.tenant_key = '"+tenant_key+"' \n" + + " AND t.risk_date >= '"+startDay+"' \n" + + " AND t.userid IN (select cid from eteams.emp_link where pid= '"+employeeId+"' and relation = 'senior') \n" + + " ) k \n" + + " GROUP BY k.riskid,\n" + + " k.risk_value,\n" + + " k.tenant_key,\n" + + " k.userid\n" + + " ) t,\n" + + " pr_indrisk_type t1,\n" + + " pr_indrisk_info t2 ,\n" + + " eteams.employee e\n" + + " WHERE t.riskid = t2.id \n" + + " AND t2.risk_type = t1.id \n" + + " AND t.userid = e.id\n" + + " AND e.STATUS != 'unavailable' AND e.PERMANENTLY_DELETE = '0'\n" + + " AND t1.delete_type = 0 \n" + + " AND t2.delete_type = 0" ; + + log.error("testSapi17:"+sql); + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + for(int i=0;i recordMap2 = recordList.get(i); + recordMap2.put("pid",i+""); + } + recordMap.put("datas",recordList); + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi17:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(recordMap); + } + + + + @GetMapping("/testSapi20") + @WeaPermission(publicPermission = true) + public WeaResult testSapi20(HttpServletRequest request){ + Map dataMap = new HashMap(); + dataMap.put("test","testSapi20"); + + try { + + String employeeId = request.getParameter("employeeId"); + LocalDate currentDate = LocalDate.now(); + LocalDate lastMonthDate = currentDate.minusMonths(1); + int lastMonth = lastMonthDate.getMonthValue(); + log.error("上个月的月份是20:" + lastMonth); + + SimpleEmployee employee = UserContext.getCurrentUser(); + + if(StringUtils.isBlank(employeeId)){ + employeeId = String.valueOf(UserContext.getCurrentEmployeeId()); + } + + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + + Map scoreMap = getLastMonthKpi2(employeeId,groupId,sourceType); + + List> yearList = getWholeYearKpi2(employeeId,groupId,sourceType); + + dataMap.put("scoreMap",scoreMap); + dataMap.put("yearList",yearList); + + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi20:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(dataMap); + } + + + + public Map getLastMonthKpi2(String employeeId, String groupId, String sourceType){ + + log.error("getLastMonthKpi20"); + + Map dataMap = new HashMap(); + + List> indicatorList = new ArrayList>(); + + if(StringUtils.isNotBlank(employeeId)){ + String sql =" select left(k.real_period,10) as real_period,left(k.real_period,7) as period_month,k.kpi_scheme,k.score\n" + + " from (select real_period,kpi_scheme,score\n" + + " from hr_kpi_flow \n" + + " where kpi_user='"+employeeId+"' \n" + + " and module = 'kpiFlow' \n" + + " and date_type = 'month' \n" + + " and delete_type = '0' " + + " and tenant_key='"+tenant_key+"'\n" + + " and FLOW_STATUS in('noApprove','approve','finished')\n" + + " order by real_period desc\n" + + ") k limit 1 "; + + log.error("sql20-1:"+sql); + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if(CollectionUtils.isNotEmpty(recordList)){ + Map recordMap = recordList.get(0); + if(!recordMap.isEmpty()){ + String score = String.valueOf(recordMap.get("score")); + String kpi_scheme = String.valueOf(recordMap.get("kpi_scheme")); + String real_period = String.valueOf(recordMap.get("real_period")); + String period_month = String.valueOf(recordMap.get("period_month")); + + dataMap.put("score",score); + dataMap.put("yearmonth",period_month); + dataMap.put("kpi_scheme",kpi_scheme); + dataMap.put("real_period",real_period); + } + } + } + +// LocalDate localDate = LocalDate.now(); +// int year = localDate.getYear() ; +// for(int i=0;i<=12;i++){ +// LocalDate previousMonth = localDate.minusMonths(i); +// String startDay = previousMonth.with(TemporalAdjusters.lastDayOfMonth()).toString(); +// String endDay = previousMonth.with(TemporalAdjusters.firstDayOfMonth()).toString(); +// log.error("startDay20:"+startDay); +// log.error("endDay20:"+endDay); +//// " select kpi_scheme,score " + +//// " from hr_kpi_flow " + +//// " where kpi_user='"+employeeId+"' " + +//// " and real_period >= '" +startDay+"'" + +//// " and real_period <='" + endDay +"'" + +//// " and module = 'kpiFlow'" + +//// " and date_type = 'month'" + +//// " and flow_status = 'finished'" + +//// " and delete_type = '0'" + +//// " and tenant_key='"+tenant_key+"' "; +// String yearMonth = ""; +// if(i<10){ +// yearMonth = year+"-0"+i ; +// }else{ +// yearMonth = year+"-"+i ; +// } +// } + + if(!dataMap.isEmpty()){ + String kpi_scheme = String.valueOf(dataMap.get("kpi_scheme")); + + log.error("kpi_scheme:"+kpi_scheme); + + if(StringUtils.isNotBlank(kpi_scheme)){ + String sql =" select indicator_type,indicator_description,weight \n" + + " from hr_kpi_scheme_indicator " + + " where scheme_id='"+kpi_scheme+"' " + + " and indicator_mode='quantify'\n" + + " and status='on' " + + " and delete_type = '0'" + + " and tenant_key = '"+tenant_key+"'" ; + + log.error("sql2:"+sql); + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + + log.error("recordList:"+recordList.size()); + + if(recordList.size()>=2){ + for(int i=0;i<2;i++){ + indicatorList.add(recordList.get(i)); + } + }else if(recordList.size() == 1){ + indicatorList.add(recordList.get(0)); + + Map indicatorMap = new HashMap(); + sql = " select name,data_row,property\n" + + " from hr_kpi_details_link\n" + + " where kpi_details in( " + + " select id\n" + + " from hr_kpi_details " + + " where KPI_SCHEME='"+kpi_scheme+"'\n" + + " and MODULE='kpiSchemeSetting'\n" + + " and TENANT_KEY='"+tenant_key+"'\n" + + " and DELETE_TYPE = 0" + + " )\n" + + " and module = 'kpiSchemeSetting'\n" + + " and tenant_key = '"+tenant_key+"'\n" + + " and delete_type = '0'\n" + + " and property in('weight', 'describe', 'type')\n" + + " and data_row in ( \n" + + " select p.data_row from (\n" + + " select w.data_row from (\n" + + " select data_row \n" + + " from hr_kpi_details_link\n" + + " where kpi_details in ( " + + " select id\n" + + " from hr_kpi_details " + + " where KPI_SCHEME='"+kpi_scheme+"'\n" + + " and MODULE='kpiSchemeSetting'\n" + + " and TENANT_KEY='"+tenant_key+"'\n" + + " and DELETE_TYPE = 0" + + " )\n" + + " and PROPERTY = 'weight'\n" + + " and MODULE = 'kpiSchemeSetting'\n" + + " and TENANT_KEY = '"+tenant_key+"'\n" + + " and DELETE_TYPE = '0'\n" + + " order by name desc\n" + + " ) w limit 1 \n" + + " ) p\n" + + " )"; + log.error("sql3:"+sql); + Map result2 = databaseUtils.execute(sourceType, groupId, sql); + List> recordList2 = databaseUtils.getDataSourceList(result2); + log.error("recordList2:"+recordList2.size()); + for(int i=0;i recordMap = recordList2.get(i); + String name = String.valueOf(recordMap.get("name")); + String property = String.valueOf(recordMap.get("property")); + + log.error("name:"+name); + log.error("property:"+property); + + if("weight".equalsIgnoreCase(property)){ + indicatorMap.put("weight",name); + } + if("describe".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_description",name); + } + if("type".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_type",name); + } + } + + if(!indicatorMap.isEmpty()){ + indicatorList.add(indicatorMap); + } + + }else{ + + sql = " select w.data_row from (\n" + + " select data_row\n" + + " from hr_kpi_details_link\n" + + " where kpi_details in( " + + " select id\n" + + " from hr_kpi_details " + + " where KPI_SCHEME='"+kpi_scheme+"'\n" + + " and MODULE='kpiSchemeSetting'\n" + + " and TENANT_KEY='"+tenant_key+"'\n" + + " and DELETE_TYPE = 0" + + " )\n" + + " and PROPERTY = 'weight'\n" + + " and MODULE = 'kpiSchemeSetting'\n" + + " and TENANT_KEY = '"+tenant_key+"'\n" + + " and DELETE_TYPE = '0'\n" + + " order by name desc\n" + + ") w limit 2" ; + log.error("sql4:"+sql); + Map result3 = databaseUtils.execute(sourceType, groupId, sql); + List> recordList3 = databaseUtils.getDataSourceList(result3); + for(int k=0;k recordMap3 = recordList3.get(k); + + String data_row = String.valueOf(recordMap3.get("data_row")); + + Map indicatorMap = new HashMap(); + + sql = " select name,data_row,property\n" + + " from hr_kpi_details_link\n" + + " where kpi_details in( " + + " select id\n" + + " from hr_kpi_details " + + " where KPI_SCHEME='"+kpi_scheme+"'\n" + + " and MODULE='kpiSchemeSetting'\n" + + " and TENANT_KEY='"+tenant_key+"'\n" + + " and DELETE_TYPE = 0" + + " )\n" + + " and MODULE = 'kpiSchemeSetting'\n" + + " and TENANT_KEY = '"+tenant_key+"'\n" + + " and DELETE_TYPE = '0'\n" + + " and property in('weight', 'describe', 'type')\n" + + " and data_row in("+data_row+")" ; + + log.error("sql5:"+sql); + + Map result2 = databaseUtils.execute(sourceType, groupId, sql); + List> recordList2 = databaseUtils.getDataSourceList(result2); + + for(int i=0;i recordMap = recordList2.get(i); + + String name = String.valueOf(recordMap.get("name")); + String property = String.valueOf(recordMap.get("property")); + if("weight".equalsIgnoreCase(property)){ + indicatorMap.put("weight",name); + } + if("describe".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_description",name); + } + if("type".equalsIgnoreCase(property)){ + indicatorMap.put("indicator_type",name); + } + } + + indicatorList.add(indicatorMap); + } + } + } + dataMap.put("indicator",indicatorList); + } + return dataMap ; + } + + + + public List> getWholeYearKpi2(String employeeId,String groupId,String sourceType){ + + List> dateList = new ArrayList>(); + + Map dataMap = null; + LocalDate localDate = LocalDate.now(); + int year = localDate.getYear() ; + int dayOfYear = 1 ; + String[] monthzw = new String[]{"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"}; + + for(int i=1;i<=12;i++){ + Month month = Month.of(i); + LocalDate startDay = YearMonth.of(year, month).atDay(dayOfYear); // 计算当前月份的首日 + LocalDate endDay = YearMonth.of(year, month).atEndOfMonth(); // 计算当前月份的最后一天 + + log.error("getWholeYearKpi2-startDay:"+startDay); + log.error("getWholeYearKpi2-endDay:"+endDay); + + String yearMonth = ""; + if(monthzw.length==12){ + yearMonth = monthzw[i-1]; + } + + String sql =" select score from hr_kpi_flow " + + " where kpi_user='"+employeeId+"' " + + " and left(real_period,10) >= '" +startDay+"'" + + " and left(real_period,10) <='" + endDay +"'" + + " and module = 'kpiFlow'" + + " and date_type = 'month'" + + " and flow_status in('noApprove','approve','finished') \n" + + " and delete_type = '0'" + + " and tenant_key='"+tenant_key+"' " ; + + log.error("getWholeYearKpi2-sql:"+sql); + + dataMap = new HashMap(); + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if(CollectionUtils.isNotEmpty(recordList)){ + Map recordMap = recordList.get(0); + if(!recordMap.isEmpty()){ + String score = String.valueOf(recordMap.get("score")); + if(StringUtils.isNotBlank(score)){ + dataMap.put(yearMonth,score); + } + } + }else{ + dataMap.put(yearMonth,"0"); + } + + dateList.add(dataMap); + } + return dateList ; + } + + + + public static String null2String(String s,String def) { + return s == null ?(def==null?"":def) : s; + + } + + + @GetMapping("/testSapi30") + @WeaPermission(publicPermission = true) + public WeaResult testSapi30(HttpServletRequest request){ + Map dataMap = new HashMap(); + dataMap.put("test","testSapi30"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + try { + + String employeeId = request.getParameter("employeeId"); + String startday = request.getParameter("startday"); + String endday = request.getParameter("endday"); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + if(StringUtils.isBlank(startday)){ + startday = year+"-01-01"; + } + if(StringUtils.isBlank(endday)){ + endday = sdf.format(new Date()); + } + if(StringUtils.isBlank(employeeId)){ + employeeId = String.valueOf(UserContext.getCurrentEmployeeId()); + } + + dataMap.put("employeeId",employeeId); + dataMap.put("startday",startday); + dataMap.put("endday",endday); + + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + + String sql =" select sum(cast(t1.htzje as decimal(18,2))) as htzje," + + " sum(cast(t1.htyxje as decimal(18,2))) as htyxje," + + " sum(cast(t1.sumsk as decimal(18,2))) as sumsk " + + " from uf_jxhs_xmys t1 \n" + + " where t1.ysrq>='" +startday+"' and t1.ysrq<='"+endday+"' " + + " and ( t1.qyjl = '"+employeeId+"' "+ + " or t1.qyjl in (select cid from eteams.EMP_LINK where RELATION in ('othersenior','senior') and pid= '"+employeeId+"')\n" + + " or t1.ysry = '"+employeeId+"'\n" + + " or t1.ysry in (select cid from eteams.EMP_LINK where RELATION in ('othersenior','senior') and pid= '"+employeeId+"')\n" + + " or t1.dqfzr = '"+employeeId+"'\n" + + " or t1.dqfzr in (select cid from eteams.EMP_LINK where RELATION in ('othersenior','senior') and pid= '"+employeeId+"')\n" + + " or t1.tdjl = '"+employeeId+"'\n" + + " or t1.tdjl in (select cid from eteams.EMP_LINK where RELATION in ('othersenior','senior') and pid= '"+employeeId+"')\n" + + " or t1.tdfzr = '"+employeeId+"'\n" + + " or t1.tdfzr in (select cid from eteams.EMP_LINK where RELATION in ('othersenior','senior') and pid= '"+employeeId+"')\n" + + " or t1.jgfzr = '"+employeeId+"'\n" + + " or t1.jgfzr in (select cid from eteams.EMP_LINK where RELATION in ('othersenior','senior') and pid= '"+employeeId+"')\n" + + " or t1.dqzj = '"+employeeId+"'\n" + + " or t1.dqzj in (select cid from eteams.EMP_LINK where RELATION in ('othersenior','senior') and pid= '"+employeeId+"') " + + " ) " ; + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + dataMap.put("datas",recordList); + + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi30:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(dataMap); + } + + + @GetMapping("/testSapi31") + @WeaPermission(publicPermission = true) + public WeaResult testSapi31(HttpServletRequest request){ + Map dataMap = new HashMap(); + dataMap.put("test","testSapi31"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + try { + + String startday = request.getParameter("startday"); + String endday = request.getParameter("endday"); + String employeeId = request.getParameter("employeeId"); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + if(StringUtils.isBlank(startday)){ + startday = year+"-01-01"; + } + if(StringUtils.isBlank(endday)){ + endday = sdf.format(new Date()); + } + + if(StringUtils.isBlank(employeeId)){ + employeeId = String.valueOf(UserContext.getCurrentEmployeeId()); + } + + dataMap.put("employeeId",employeeId); + dataMap.put("startday",startday); + dataMap.put("endday",endday); + + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + + String sql =" SELECT \n" + + " sum(cast(t1.skje as decimal(18,2))) as skje,\n" + //收款金额 + " sum(cast(t1.xmskje as decimal(18,2))) as xmskje,\n" + // 项目收款金额 + " sum(cast(t1.xsyxje as decimal(18,2))) as xsyxje," + // 销售有效金额 + " sum(cast(t1.xsje as decimal(18,2))) as xsje," + // 销售金额 + " sum(cast(t1.xmyxje as decimal(18,2))) as xmyxje," + //项目有效金额 + " sum(cast(t1.xsjxhk as decimal(18,2))) as xsjxhk," + //有效绩效回款 + " sum(cast(t1.sumsk as decimal(18,2))) as sumsk," + //总收款金额 + " sum(cast(t1.sjjsk as decimal(18,2))) as sjjsk," + //实际结算款 + " sum(cast(t1.skjs as decimal(18,2))) as skjs " + //收款结算 + " FROM uf_jxhs_skmx t1\n" + + " LEFT JOIN uf_jxhs_zxhtzb t2 ON t1.hth = t2.hth AND t2.hth != '' AND t2.hth IS NOT NULL \n" + + " JOIN ebdf_physical_data epd on t1.id = epd.form_data_id and epd.delete_type = 0 \n" + + " WHERE t1.skje != 0 \n" + + " and t1.skje IS NOT NULL " + + " and t1.skrq >= '" + startday+"' and skrq <='"+endday+"' "+ + " and (" + + " '"+employeeId+"' IN ( 2, 27, 166, 10285, 11661, 300, 876, 3593, 1416, 1647, 1844,3044480226941419013,794508876297846787 ) \n" + + " or cast(t1.xsjl AS decimal(25,0)) in( \n" + + " SELECT cid AS id FROM eteams.emp_link WHERE pid = '"+employeeId+"' and RELATION in ('othersenior','senior') \n" + + " UNION " + + " SELECT id FROM eteams.employee WHERE id = '"+employeeId+"' " + + " )\n" + + " or cast(t1.kfry AS decimal(25,0)) in(\n" + + " SELECT cid AS id FROM eteams.emp_link WHERE pid = '"+employeeId+"' and RELATION in ('othersenior','senior') \n" + + " UNION " + + " SELECT id FROM eteams.employee WHERE id = '"+employeeId+"' " + + " )\n" + + " or cast(t1.qdjl AS decimal(25,0)) in(\n" + + " SELECT cid AS id FROM eteams.emp_link WHERE pid = '"+employeeId+"' and RELATION in ('othersenior','senior') \n" + + " UNION " + + " SELECT id FROM eteams.employee WHEREHERE id = '"+employeeId+"' " + + " )\n" + + " or cast(t1.xmjl AS decimal(25,0)) in(\n" + + " SELECT cid AS id FROM eteams.emp_link WHERE pid = '"+employeeId+"' and RELATION in ('othersenior','senior') \n" + + " UNION " + + " SELECT id FROM eteams.employee WHERE id = '"+employeeId+"' " + + " )\n" + + " )\n" + + " order by t1.id " ; + + log.error("sql:"+sql); + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + dataMap.put("datas",recordList); + + } catch (Exception e) { + e.printStackTrace(); + log.error("testSapi30:"+e); + dataMap.put("count","-1"); + } + return WeaResult.success(dataMap); + } + + + /** + * 流程信息(我发起的) + * @param request + * @return + */ + @GetMapping("/getWorkFlowInfo") + @WeaPermission(publicPermission = true) + public WeaResult getWfInfoCreate(HttpServletRequest request){ + log.error("getWorkFlowInfo"); + + List requestListInfoPAEntityList = new ArrayList(); + try{ + RequestListConditionApiEntity conditionEntity = new RequestListConditionApiEntity(); + SimpleEmployee employee = UserContext.getCurrentUser(); + String keyword = CommonUtils.null2String(request.getParameter("keyword")); + if(!"".equals(keyword)){ + conditionEntity.setRequestname(keyword); + } + String type = CommonUtils.null2String(request.getParameter("type"),"0"); + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),10); + int pageNo = CommonUtils.getIntValue(request.getParameter("pageNo"),1); + // 0 我发起的; 1 我的待办; 2 我的已办 + if("0".equals(type)){ + WeaResult> requestResult = wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.PORTAL_MINE.getTabid(), pageNo, pageSize, conditionEntity); + int code = requestResult.getCode(); + if(code == 200){ + requestListInfoPAEntityList = requestResult.getData(); + } + }else if("1".equals(type)){ + WeaResult> requestResult = wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.TODO_FLOWALL.getTabid(), pageNo, pageSize, conditionEntity); + + int code = requestResult.getCode(); + if(code == 200){ + requestListInfoPAEntityList = requestResult.getData(); + } + + }else if("2".equals(type)){ + WeaResult> requestResult = wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.DONE_FLOWALL.getTabid(), pageNo, pageSize, conditionEntity); + + int code = requestResult.getCode(); + if(code == 200){ + requestListInfoPAEntityList = requestResult.getData(); + } + } + }catch (Exception e){ + log.error("getWorkFlowInfo-Exception:"+e.getMessage()); + return WeaResult.fail(500,"程序执行异常"); + } + return WeaResult.success(requestListInfoPAEntityList); + } + + + @GetMapping("/getPortalWorkFlowInfo") + @WeaPermission(publicPermission = true) + public WeaResult getPortalWorkFlowInfo(HttpServletRequest request){ + log.error("getPortalWorkFlowInfo"); + + Map dataMap = new HashMap(); + try{ + RequestListConditionApiEntity conditionEntity = new RequestListConditionApiEntity(); + SimpleEmployee employee = UserContext.getCurrentUser(); + String keyword = CommonUtils.null2String(request.getParameter("keyword")); + if(!"".equals(keyword)){ + conditionEntity.setRequestname(keyword); + } + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),10); + int pageNo = CommonUtils.getIntValue(request.getParameter("pageNo"),1); + // 0 我发起的; 1 我的待办; 2 我的已办 + + WeaResult> requestResult0 = wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.PORTAL_MINE.getTabid(), pageNo, pageSize, conditionEntity); + int code0 = requestResult0.getCode(); + if(code0 == 200){ + List requestList0 = requestResult0.getData(); + + dataMap.put("PORTAL_MINE",requestList0); + } + + WeaResult> requestResult1 = wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.TODO_FLOWALL.getTabid(), pageNo, pageSize, conditionEntity); + int code1 = requestResult1.getCode(); + if(code1 == 200){ + List requestList1 = requestResult1.getData(); + dataMap.put("TODO_FLOWALL",requestList1); + } + + + WeaResult> requestResult2 = wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.DONE_FLOWALL.getTabid(), pageNo, pageSize, conditionEntity); + int code2 = requestResult2.getCode(); + if(code2 == 200){ + List requestList2 = requestResult2.getData(); + dataMap.put("DONE_FLOWALL",requestList2); + } + }catch (Exception e){ + log.error("getWorkFlowInfo-Exception:"+e.getMessage()); + return WeaResult.fail(500,"程序执行异常"); + } + return WeaResult.success(dataMap); + } + + + @GetMapping("/testSapi50") + @WeaPermission(publicPermission = true) + public WeaResult testSapi50(HttpServletRequest request){ + log.error("getPortalWorkFlowInfo"); + int blogcount = 0 ; + try{ + long employeeId = UserContext.getCurrentEmployeeId(); + blogcount = remoteBlogInfoService.countByCreator(tenant_key,employeeId); + }catch (Exception e){ + log.error("getWorkFlowInfo-Exception:"+e.getMessage()); + return WeaResult.fail(500,"程序执行异常"); + } + return WeaResult.success(blogcount); + } + + + @GetMapping("/testSapi51") + @WeaPermission(publicPermission = true) + public WeaResult testSapi51(HttpServletRequest request){ + log.error("getPortalWorkFlowInfo"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + String groupId = "weaver-cowork-service"; + String sourceType = "LOGIC"; + + Map dataMap = new HashMap(); + try{ + String startday = request.getParameter("startday"); + String endday = request.getParameter("endday"); + String employeeId = request.getParameter("employeeId"); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + if(StringUtils.isBlank(startday)){ + startday = year+"-01-01"; + } + if(StringUtils.isBlank(endday)){ + endday = sdf.format(new Date()); + } + + if(StringUtils.isBlank(employeeId)){ + employeeId = String.valueOf(UserContext.getCurrentEmployeeId()); + } + + String sql = " select count(1) as cou from cw_content " + + " where CREATOR='"+employeeId+"'\n" + + " and left(CREATE_TIME,10)>='"+startday+"' and left(CREATE_TIME,10) <= '"+endday+"'" ; + + log.error("sql:"+sql); + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if(recordList.size()>0){ + dataMap = recordList.get(0); + } + + }catch (Exception e){ + log.error("testSapi51-Exception:"+e.getMessage()); + return WeaResult.fail(500,"程序执行异常"); + } + return WeaResult.success(dataMap); + } + + + @GetMapping("/testSapi52") + @WeaPermission(publicPermission = true) + public WeaResult testSapi52(HttpServletRequest request){ + log.error("getPortalWorkFlowInfo"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + String groupId = "weaver-doc-service"; + String sourceType = "LOGIC"; + + + Map dataMap = new HashMap(); + try{ + String startday = request.getParameter("startday"); + String endday = request.getParameter("endday"); + String employeeId = request.getParameter("employeeId"); + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + + if(StringUtils.isBlank(startday)){ + startday = year+"-01-01"; + } + if(StringUtils.isBlank(endday)){ + endday = sdf.format(new Date()); + } + + if(StringUtils.isBlank(employeeId)){ + employeeId = String.valueOf(UserContext.getCurrentEmployeeId()); + } + + String sql = " select count(1) as cou from document " + + " where CREATOR='"+employeeId+"'\n" + + " and left(create_time,10)>='"+startday+"' and left(create_time,10) <= '"+endday+"'" ; + + log.error("sql:"+sql); + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if(recordList.size()>0){ + dataMap = recordList.get(0); + } + + }catch (Exception e){ + log.error("testSapi51-Exception:"+e.getMessage()); + return WeaResult.fail(500,"程序执行异常"); + } + return WeaResult.success(dataMap); + } + + + + + + +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/controller/JucailinPortalController.java b/src/main/java/com/weaver/seconddev/jcldoor/controller/JucailinPortalController.java new file mode 100644 index 0000000..40eda71 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/controller/JucailinPortalController.java @@ -0,0 +1,245 @@ +package com.weaver.seconddev.jcldoor.controller; + +import com.weaver.common.authority.annotation.WeaPermission; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.framework.rpc.annotation.RpcReference; +import com.weaver.seconddev.jcldoor.service.JucailinPortalService; +import com.weaver.seconddev.jcldoor.util.CommonUtils; +import com.weaver.teams.domain.user.SimpleEmployee; +import com.weaver.teams.security.context.UserContext; +import com.weaver.workflow.common.constant.list.listdimension.RequestListInitDimensionTabEnum; +import com.weaver.workflow.common.entity.list.api.RequestListConditionApiEntity; +import com.weaver.workflow.common.entity.list.api.publicapi.RequestListInfoPAEntity; +import com.weaver.workflow.list.api.rest.publicapi.WflRequestListRest; +import groovy.util.logging.Slf4j; +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.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +@Slf4j +@RestController +@RequestMapping("/api/secondev/njjucailin/portal") +public class JucailinPortalController { + + + private final Logger log = LoggerFactory.getLogger(JucailinPortalController.class); + + @Autowired + private JucailinPortalService jucailinPortalService; + + @RpcReference(group = "workflow") + WflRequestListRest wflRequestListRest; + + /** + * 人员基本信息接口 + * @param request + * @return + */ + @GetMapping("/getPortalUser") + @WeaPermission(publicPermission = true) + public WeaResult getPortalUser(HttpServletRequest request){ + log.error("getPortalUser"); + Map recordMap = new HashMap(); + SimpleEmployee simpleEmployee = UserContext.getCurrentUser(); + + try{ + recordMap = jucailinPortalService.getPortalUserData(simpleEmployee); + }catch (Exception e){ + log.error("getPortalUser-Exception:"+e); + } + return WeaResult.success(recordMap); + } + + /** + * + * @param request + * @return + */ + @GetMapping("/getPortalAttendance") + @WeaPermission(publicPermission = true) + public WeaResult getPortalAttendance(HttpServletRequest request){ + log.error("getPortalAttendance"); + + Map recordMap = new HashMap(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + + SimpleEmployee simpleEmployee = UserContext.getCurrentUser(); + + try{ + recordMap = jucailinPortalService.getPortalAttendanceData(simpleEmployee); + }catch (Exception e){ + log.error("testSapi-Exception:"+e); + } + + return WeaResult.success(recordMap); + } + + + @GetMapping("/getPortalPerformance") + @WeaPermission(publicPermission = true) + public WeaResult getPortalPerformance(HttpServletRequest request){ + log.error("getPortalPerformance"); + + Map recordMap = new HashMap(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + + SimpleEmployee simpleEmployee = UserContext.getCurrentUser(); + + try{ + recordMap = jucailinPortalService.getPortalPerformanceData(simpleEmployee); + }catch (Exception e){ + log.error("testSapi-Exception:"+e); + } + + return WeaResult.success(recordMap); + } + + + /** + * 人员工作成就信息 + * @param request + * @return + */ + @GetMapping("/getPortalWorkAchievement") + @WeaPermission(publicPermission = true) + public WeaResult getPortalWorkAchievement(HttpServletRequest request){ + log.error("getPortalWorkAchievement"); + + Map recordMap = new HashMap(); + + SimpleEmployee simpleEmployee = UserContext.getCurrentUser(); + + try{ + recordMap = jucailinPortalService.getPortalWorkAchievement(request,simpleEmployee); + }catch (Exception e){ + log.error("getPortalWorkAchievement-Exception:"+e); + } + + return WeaResult.success(recordMap); + } + + /** + * 人员工作成就信息 + * @param request + * @return + */ + @GetMapping("/getPortalBirthdayWishes") + @WeaPermission(publicPermission = true) + public WeaResult getPortalBirthdayWishes(HttpServletRequest request){ + log.error("getPortalBirthdayWishes"); + + Map recordMap = new HashMap(); + + SimpleEmployee simpleEmployee = UserContext.getCurrentUser(); + + try{ + recordMap = jucailinPortalService.getPortalBirthdayWishes(request,simpleEmployee); + }catch (Exception e){ + log.error("getPortalBirthdayWishes-Exception:"+e); + } + + return WeaResult.success(recordMap); + } + + + /** + * 风险信息 + * @param request + * @return + */ + @GetMapping("/getPortalRiskInfo") + @WeaPermission(publicPermission = true) + public WeaResult getPortalRiskInfo(HttpServletRequest request){ + log.error("getPortalRiskInfo"); + + Map recordMap = new HashMap(); + + SimpleEmployee simpleEmployee = UserContext.getCurrentUser(); + + try{ + recordMap = jucailinPortalService.getPortalRiskInfo(request,simpleEmployee); + }catch (Exception e){ + log.error("getPortalRiskInfo-Exception:"+e); + } + + return WeaResult.success(recordMap); + } + + + /** + * 绩效信息 + * @param request + * @return + */ + @GetMapping("/getPortalPerformanceInfo") + @WeaPermission(publicPermission = true) + public WeaResult getPortalPerformanceInfo(HttpServletRequest request){ + log.error("getPortalPerformanceInfo"); + + Map recordMap = new HashMap(); + SimpleEmployee simpleEmployee = UserContext.getCurrentUser(); + try{ + recordMap = jucailinPortalService.getPortalPerformanceInfo(request,simpleEmployee); + }catch (Exception e){ + log.error("getPortalPerformanceInfo-Exception:"+e.getMessage()); + } + + return WeaResult.success(recordMap); + } + + + + /** + * 流程信息(我发起的) + * @param request + * @return + */ + @GetMapping("/getWorkFlowInfo") + @WeaPermission(publicPermission = true) + public WeaResult> getWfInfoCreate(HttpServletRequest request){ + log.error("getWorkFlowInfo"); + try{ + RequestListConditionApiEntity conditionEntity = new RequestListConditionApiEntity(); + SimpleEmployee employee = new SimpleEmployee(); + String keyword = CommonUtils.null2String(request.getParameter("keyword")); + if(!"".equals(keyword)){ + conditionEntity.setRequestname(keyword); + } + + String type = CommonUtils.null2String(request.getParameter("type")); + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),10); + int pageNo = CommonUtils.getIntValue(request.getParameter("pageNo"),1); + + // 0 我发起的; 1 我的待办; 2 我的已办 + if("0".equals(type)){ + return wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.PORTAL_MINE.getTabid(), pageNo, pageSize, conditionEntity); + }else if("1".equals(type)){ + return wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.TODO_FLOWALL.getTabid(), pageNo, pageSize, conditionEntity); + }else if("2".equals(type)){ + return wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.DONE_FLOWALL.getTabid(), pageNo, pageSize, conditionEntity); + }else{ + return wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.PORTAL_MINE.getTabid(), pageNo, pageSize, conditionEntity); + } + }catch (Exception e){ + log.error("getWorkFlowInfo-Exception:"+e.getMessage()); + } + return null; + } + + + + + + +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/domain/JucailinUserInfo.java b/src/main/java/com/weaver/seconddev/jcldoor/domain/JucailinUserInfo.java new file mode 100644 index 0000000..e3f8ad1 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/domain/JucailinUserInfo.java @@ -0,0 +1,152 @@ +package com.weaver.seconddev.jcldoor.domain; + +public class JucailinUserInfo { + + protected Long userid; + protected Long lastname; + protected Long userinfourl; + protected Long userimageurl; + + protected Long jobtitlename; + + protected Long doccreate; + protected Long doccreateurl; + protected Long wfcreate; + protected Long wfcreateurl; + protected Long wfdeal; + protected Long wfdealurl; + + protected Long rzts; + protected Long rznf; + protected Long rzsyts; + protected Long cyqlsl; + protected Long mtgtrs; + + public Long getUserid() { + return userid; + } + + public void setUserid(Long userid) { + this.userid = userid; + } + + public Long getLastname() { + return lastname; + } + + public void setLastname(Long lastname) { + this.lastname = lastname; + } + + public Long getUserinfourl() { + return userinfourl; + } + + public void setUserinfourl(Long userinfourl) { + this.userinfourl = userinfourl; + } + + public Long getUserimageurl() { + return userimageurl; + } + + public void setUserimageurl(Long userimageurl) { + this.userimageurl = userimageurl; + } + + public Long getJobtitlename() { + return jobtitlename; + } + + public void setJobtitlename(Long jobtitlename) { + this.jobtitlename = jobtitlename; + } + + public Long getDoccreate() { + return doccreate; + } + + public void setDoccreate(Long doccreate) { + this.doccreate = doccreate; + } + + public Long getDoccreateurl() { + return doccreateurl; + } + + public void setDoccreateurl(Long doccreateurl) { + this.doccreateurl = doccreateurl; + } + + public Long getWfcreate() { + return wfcreate; + } + + public void setWfcreate(Long wfcreate) { + this.wfcreate = wfcreate; + } + + public Long getWfcreateurl() { + return wfcreateurl; + } + + public void setWfcreateurl(Long wfcreateurl) { + this.wfcreateurl = wfcreateurl; + } + + public Long getWfdeal() { + return wfdeal; + } + + public void setWfdeal(Long wfdeal) { + this.wfdeal = wfdeal; + } + + public Long getWfdealurl() { + return wfdealurl; + } + + public void setWfdealurl(Long wfdealurl) { + this.wfdealurl = wfdealurl; + } + + public Long getRzts() { + return rzts; + } + + public void setRzts(Long rzts) { + this.rzts = rzts; + } + + public Long getRznf() { + return rznf; + } + + public void setRznf(Long rznf) { + this.rznf = rznf; + } + + public Long getRzsyts() { + return rzsyts; + } + + public void setRzsyts(Long rzsyts) { + this.rzsyts = rzsyts; + } + + public Long getCyqlsl() { + return cyqlsl; + } + + public void setCyqlsl(Long cyqlsl) { + this.cyqlsl = cyqlsl; + } + + public Long getMtgtrs() { + return mtgtrs; + } + + public void setMtgtrs(Long mtgtrs) { + this.mtgtrs = mtgtrs; + } +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/service/JucailinPortalService.java b/src/main/java/com/weaver/seconddev/jcldoor/service/JucailinPortalService.java new file mode 100644 index 0000000..f5ba0d8 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/service/JucailinPortalService.java @@ -0,0 +1,27 @@ +package com.weaver.seconddev.jcldoor.service; + +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.teams.domain.user.SimpleEmployee; +import com.weaver.workflow.common.entity.list.api.publicapi.RequestListInfoPAEntity; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +public interface JucailinPortalService { + + public Map getPortalUserData(SimpleEmployee simpleEmployee); + + public Map getPortalAttendanceData(SimpleEmployee simpleEmployee); + + public Map getPortalPerformanceData(SimpleEmployee simpleEmployee); + + public Map getPortalWorkAchievement(HttpServletRequest request,SimpleEmployee simpleEmployee); + + public Map getPortalBirthdayWishes(HttpServletRequest request,SimpleEmployee simpleEmployee); + + public Map getPortalRiskInfo(HttpServletRequest request,SimpleEmployee simpleEmployee); + + public Map getPortalPerformanceInfo(HttpServletRequest request,SimpleEmployee simpleEmployee); + +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/service/impl/JucailinPortalServiceImpl.java b/src/main/java/com/weaver/seconddev/jcldoor/service/impl/JucailinPortalServiceImpl.java new file mode 100644 index 0000000..fbc7ff0 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/service/impl/JucailinPortalServiceImpl.java @@ -0,0 +1,204 @@ +package com.weaver.seconddev.jcldoor.service.impl; + + +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.seconddev.jcldoor.cmd.*; +import com.weaver.seconddev.jcldoor.service.JucailinPortalService; +import com.weaver.teams.domain.user.SimpleEmployee; +import com.weaver.workflow.common.entity.list.api.publicapi.RequestListInfoPAEntity; +import groovy.util.logging.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import javax.sound.sampled.Port; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + + +@Slf4j +@Service +public class JucailinPortalServiceImpl implements JucailinPortalService { + + private final Logger log = LoggerFactory.getLogger(JucailinPortalServiceImpl.class); + + @Autowired + private UserInfoCmd userInfoCmd; + + @Autowired + private PortalWorkAchievementCmd portalWorkAchievementCmd; + + @Autowired + private PortalBirthdayWishesCmd portalBirthdayWishesCmd; + + @Autowired + private PortalPerformanceInfoCmd portalPerformanceInfoCmd; + + @Autowired + private PortalRiskInfoCmd portalRiskInfoCmd; + + + @Override + public Map getPortalUserData(SimpleEmployee simpleEmployee) { + Map dataMap = userInfoCmd.getUserInfo(simpleEmployee); + return dataMap; + } + + @Override + public Map getPortalAttendanceData(SimpleEmployee simpleEmployee) { + + Map dataMap = new HashMap(); + + String zjkqnj = "0.00"; + String lnkqnj = "0.00"; + String jnkqnj = "0.00"; + + String ycqts = "0.00"; + String wcts = "0.00" ; + double xjts = 0.00; + int cdsc = 0; + int qkcs = 0; + String ydkcs = "0.00"; + dataMap.put("zjkqnj",zjkqnj); //总计可请年假 + dataMap.put("lnkqnj",lnkqnj); //历年可请年假 + dataMap.put("jnkqnj",jnkqnj); //今年可请年假 + dataMap.put("wcts",wcts); //外出天数 + dataMap.put("xjts",xjts); //休假天数 + dataMap.put("cdsc",cdsc); //迟到次数 + dataMap.put("qkcs",qkcs); // 缺卡次数 + dataMap.put("ydkcs",ydkcs); //已打卡次数 + dataMap.put("ycqts",ycqts); //应出勤天数 + dataMap.put("employeeid",simpleEmployee.getEmployeeId()); //应出勤天数 + + return dataMap; + } + + @Override + public Map getPortalPerformanceData(SimpleEmployee simpleEmployee) { + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String type = ""; + String year = "2024"; + String month = "02"; + + String startdate = ""; + String enddate = ""; + int currentYear = 0 ; + int currentMonth = 0; + int lastYear = 0; + int lastMonth = 0 ; + int last2Year = 0; + int last2Month = 0 ; + if("1".equals(type)){ + + try { + Calendar cal = Calendar.getInstance(); + cal.setTime(sdf.parse(year+"-"+month+"-01")); + currentYear = cal.get(Calendar.YEAR);//获取年 + currentMonth = cal.get(Calendar.MONTH)+1;//获取月(月份从0开始,如果按照中国的习惯,需要加一) + } catch (ParseException e) { + e.printStackTrace(); + } + + try { + Calendar cal = Calendar.getInstance(); + cal.setTime(sdf.parse(year+"-"+month+"-01")); + cal.add(Calendar.MONTH, -1); + lastYear = cal.get(Calendar.YEAR);//获取年 + lastMonth = cal.get(Calendar.MONTH)+1;//获取月(月份从0开始,如果按照中国的习惯,需要加一) + } catch (ParseException e) { + e.printStackTrace(); + } + + try { + Calendar cal = Calendar.getInstance(); + cal.setTime(sdf.parse(year+"-"+month+"-01")); + cal.add(Calendar.MONTH, -2); + last2Year = cal.get(Calendar.YEAR);//获取年 + last2Month = cal.get(Calendar.MONTH)+1;//获取月(月份从0开始,如果按照中国的习惯,需要加一) + } catch (ParseException e) { + e.printStackTrace(); + } + + if(currentMonth == 1){ + startdate = (currentYear-1)+"-01-01"; + enddate = (currentYear-1)+"-12-31"; + }else{ + startdate = currentYear+"-01-01"; + enddate = currentYear+"-12-31"; + } + + }else{ + + Calendar cal1 = Calendar.getInstance(); + currentYear = cal1.get(Calendar.YEAR);//获取年 + currentMonth = cal1.get(Calendar.MONTH)+1;//获取月(月份从0开始,如果按照中国的习惯,需要加一) + + + Calendar cal2 = Calendar.getInstance(); + cal2.setTime(new Date()); + cal2.add(Calendar.MONTH, -1); + lastYear = cal2.get(Calendar.YEAR);//获取年 + lastMonth = cal2.get(Calendar.MONTH)+1;//获取月(月份从0开始,如果按照中国的习惯,需要加一) + + + Calendar cal3 = Calendar.getInstance(); + cal3.setTime(new Date()); + cal3.add(Calendar.MONTH, -2); + last2Year = cal3.get(Calendar.YEAR);//获取年 + last2Month = cal3.get(Calendar.MONTH)+1;//获取月(月份从0开始,如果按照中国的习惯,需要加一) + + if(currentMonth == 1){ + startdate = (currentYear-1)+"-01-01"; + enddate = (currentYear-1)+"-12-31"; + }else{ + startdate = currentYear+"-01-01"; + enddate = currentYear+"-12-31"; + } + } + + Long userid = simpleEmployee.getEmployeeId(); + List monthList = new ArrayList(); + List> data = new ArrayList>(); + List> item = new ArrayList>(); + Map lastscop = new HashMap(); + Map dataMap = new HashMap(); + dataMap.put("scoreData",data); + dataMap.put("scoreYear",currentYear); + dataMap.put("itemData",item); + dataMap.put("lastScoreData",lastscop); + dataMap.put("startdate",startdate); + dataMap.put("enddate",enddate); + dataMap.put("userid",userid); + + return dataMap; + } + + @Override + public Map getPortalWorkAchievement(HttpServletRequest request,SimpleEmployee simpleEmployee) { + Map dataMap = portalWorkAchievementCmd.getInfo(request,simpleEmployee); + return dataMap; + } + + @Override + public Map getPortalBirthdayWishes(HttpServletRequest request, SimpleEmployee simpleEmployee) { + Map dataMap = portalBirthdayWishesCmd.getInfo(request,simpleEmployee); + return dataMap; + } + + @Override + public Map getPortalRiskInfo(HttpServletRequest request, SimpleEmployee simpleEmployee) { + Map dataMap = portalRiskInfoCmd.getInfo(request,simpleEmployee); + return dataMap; + } + + @Override + public Map getPortalPerformanceInfo(HttpServletRequest request, SimpleEmployee simpleEmployee) { + Map dataMap = portalPerformanceInfoCmd.getInfo(request,simpleEmployee); + return dataMap; + } + +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/util/CommonUtils.java b/src/main/java/com/weaver/seconddev/jcldoor/util/CommonUtils.java new file mode 100644 index 0000000..257d36c --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/util/CommonUtils.java @@ -0,0 +1,395 @@ +package com.weaver.seconddev.jcldoor.util; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Map; + +@Component +public class CommonUtils { + + private final static Logger log = LoggerFactory.getLogger(CommonUtils.class); + + public static JSONObject toJSON(String data){ + if(!StringUtils.isEmpty(data)){ + try { + return JSONObject.parseObject(data); + }catch (Throwable t){ + log.error(t.getMessage(),t); + } + } + return null; + } + + public static Long getJSONLong(JSONObject json,String key){ + if(json != null && json.containsKey(key)){ + try { + return json.getLong(key); + }catch (Throwable t){ + log.error(t.getMessage(),t); + } + } + return null; + } + + public static Integer getJSONInteger(JSONObject json,String key){ + if(json != null && json.containsKey(key)){ + try { + return json.getInteger(key); + }catch (Throwable t){ + log.error(t.getMessage(),t); + } + } + return -1; + } + + public static String getJSONString(JSONObject json,String key){ + if(json != null && json.containsKey(key)){ + try { + return null2String(json.getString(key)); + }catch (Throwable t){ + log.error(t.getMessage(),t); + } + } + return ""; + } + + public static JSONObject getJSONObject(JSONObject json,String key){ + if(json != null && json.containsKey(key)){ + try { + return json.getJSONObject(key); + }catch (Throwable t){ + log.error(t.getMessage(),t); + } + } + return null; + } + + public static JSONArray getJSONArray(JSONObject json, String key){ + if(json != null && json.containsKey(key)){ + try { + return json.getJSONArray(key); + }catch (Throwable t){ + log.error(t.getMessage(),t); + } + } + return null; + } + + public static JSONObject getJSONObject(JSONArray json, int idx){ + if(json != null && json.size() > idx){ + try { + return json.getJSONObject(idx); + }catch (Throwable t){ + log.error(t.getMessage(),t); + } + } + return null; + } + + public static String mapToStrData(Map para){ + if(para != null) { + return JSONObject.toJSON(para).toString(); + } + return ""; + } + + public static void strToLongList(List list,String strs){ + strToLongList(list,strs,true); + } + + public static void strToLongList(List list,String strs,boolean isDist){ + if(list == null){ + return; + } + if(StringUtils.isEmpty(strs)){ + return; + } + + String[] strList = StringUtils.split(strs, ","); + for(String str:strList){ + if(StringUtils.isEmpty(str)){ + continue; + } + + long id = getLongValue(str); + if(id > 0l && (isDist == false || !list.contains(id))){ + list.add(id); + } + } + } + + public static long getLongValue(Object v){ + return getLongValue(null2String(v)); + } + + public static long getLongValue(String v) { + return getLongValue(v, -1); + } + + public static long getLongValue(String v, long def) { + try { + return Long.parseLong(v); + } catch (Exception ex) { + return def; + } + } + + public static int getIntValue(Object o){ + return getIntValue(null2String(o)); + } + + public static int getIntValue(String s){ + return getIntValue(s,-1); + } + + public static int getIntValue(String s, int def){ + try { + return NumberUtils.toInt(s); + } catch (Exception ex) { + return def; + } + + } + + public static String null2String(Object s) { + return s == null ? "" : s.toString(); + } + + public static String null2String(Object s, String def) { + return s == null ? (def == null ? "" : def) : s.toString(); + } + + + public static String stringReplace(String sou, String s1, String s2) { + //int idx = sou.indexOf(s1); + //if (idx < 0) { + // return sou; + //} + //return sou.substring(0, idx) + s2 + StringReplace(sou.substring(idx + s1.length()), s1, s2); + sou = null2String(sou); + s1 = null2String(s1); + s2 = null2String(s2); + try{ + sou = sou.replace(s1, s2); + }catch(Exception e){ + //System.out.println(e);//将未知异常打印出来,便于检查错误。 + } + return sou; + } + + /** + * 替换特殊字符 + * + * @param s 要替换特殊的字符串 + * @return 替换完成的字符串 + */ + public static String toScreen(String s) { + char c[] = s.toCharArray(); + char ch; + int i = 0; + StringBuffer buf = new StringBuffer(); + + while (i < c.length) { + ch = c[i++]; + + if (ch == '\r') + buf.append(""); + else if (ch == '\n') + buf.append(""); + else + buf.append(ch); + } + return buf.toString(); + } + + /** + * 替换特殊字符 + * + * @param s 要替换特殊的字符串 + * @return 替换完成的字符串 + */ + public static String toExcel(String s) { + if (s == null) return ""; + //因本方法会将字符串 &符号转换,故先将欧元符号转义符转换为其Unicode码 + s = s.replaceAll("€", "\u20AC"); + String str = toScreen(s); + str = stringReplace(str, "∠", "∠"); + str = stringReplace(str, "φ", "φ"); + str = stringReplace(str, """, "\""); + str = stringReplace(str, " ", "%nbsp"); + //str=Util.StringReplace(str,"'","‘"); + str = stringReplace(str, "<", "<"); + str = stringReplace(str, ">", ">"); + str = stringReplace(str, "&dt;&at;", "
"); + str = stringReplace(str, "&", "&"); + str = stringReplace(str, "
", "&dt;&at;"); + if ("&dt;&at;".equals(str)) { + str = ""; + } + //在方法最后,又将欧元符号置换为转义符 + str = str.replaceAll("\u20AC", "€"); + return str; + } + + public static String delHtml(final String inputString) { + String htmlStr = toExcel(inputString); // 含html标签的字符串 + + String textStr = ""; + java.util.regex.Pattern p_script; + java.util.regex.Matcher m_script; + java.util.regex.Pattern p_html; + java.util.regex.Matcher m_html; + + try { + String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式 + + String regEx_script = "<[/s]*?script[^>]*?>[/s/S]*?<[/s]*?//[/s]*?script[/s]*?>"; // 定义script的正则表达式{或]*?>[/s/S]*? + + p_script = java.util.regex.Pattern.compile(regEx_script, java.util.regex.Pattern.CASE_INSENSITIVE); + m_script = p_script.matcher(htmlStr); + htmlStr = m_script.replaceAll(""); // 过滤script标签 + + p_html = java.util.regex.Pattern.compile(regEx_html, java.util.regex.Pattern.CASE_INSENSITIVE); + m_html = p_html.matcher(htmlStr); + htmlStr = m_html.replaceAll(""); // 过滤html标签 + + textStr = htmlStr; + + } catch (Exception e) { + System.err.println("Html2Text: " + e.getMessage()); + } + + return htmlToTxt(textStr).trim();// 返回文本字符串 + } + + /** + * 删除字符串中的html格式 + * + * @param input + * @return + */ + public static String htmlToTxt(String input) { + if (input == null || input.trim().equals("")) { + return ""; + } + // 去掉所有html元素, + String str = input.replaceAll("<[a-zA-Z]+[1-9]?[^><]*>", ""); + return str; + } + + + //==new= + + public static int getIntValue(Object s, int def){ + return getIntValue(null2String(s)); + } + + public static List strToLongList(String strs){ + List list = new ArrayList(); + strToLongList(list,strs,true); + return list; + } + + + public static int dateInterval(String fromdate, String todate) { + Calendar fromcalendar = getCalendar(fromdate); + Calendar tocalendar = getCalendar(todate); + + if (fromcalendar == null || tocalendar == null) + return 0; + + return (int) ((tocalendar.getTimeInMillis() - fromcalendar.getTimeInMillis()) / 3600 / 24 / 1000); + } + + /** + * @param datetime - 给定的日期时间,格式为 '2004-05-12 12:00:23' 或者 '2004-05-12' + * @return 返回给定日历, 如果格式不正确,返回null + */ + public static Calendar getCalendar(String datetime) { + int datetimelength = datetime.length() ; + + switch(datetimelength) { + case 19 : + return getCalendar(datetime , "yyyy'-'MM'-'dd' 'HH:mm:ss") ; + case 10 : + return getCalendar(datetime , "yyyy'-'MM'-'dd") ; + default : + return null ; + } + + } + + + /** + * @param datetime - 给定的日期时间 + * @param formart - 给定的日期时间的格式 + * @return 返回给定日历, 如果格式不正确,返回null + */ + public static Calendar getCalendar(String datetime, String formart) { + SimpleDateFormat SDF = new SimpleDateFormat(formart) ; + + Calendar calendar = Calendar.getInstance() ; + try { + calendar.setTime(SDF.parse(datetime)) ; + } catch (ParseException e) { + return null ; + } + + return calendar ; + } + + /** + * @return 返回当前时间字符,格式为 yyyy'-'MM'-'dd + * + * 返回当前时间字符,默认格式为yyyy'-'MM'-'dd + * + * 如 2004-09-07 + */ + public static String getCurrentDateString() { + String timestrformart = "yyyy'-'MM'-'dd" ; + SimpleDateFormat SDF = new SimpleDateFormat(timestrformart) ; + Calendar calendar = Calendar.getInstance() ; + + return SDF.format(calendar.getTime()) ; + } + + public static String getMessage(String msgMode,String key,String val){ + key = null2String(key).trim(); + val = null2String(val).trim(); + msgMode = null2String(msgMode).trim(); + if(!"".equals(msgMode) && !"".equals(key)) { + msgMode = msgMode.replaceAll(key, val); + } + return msgMode; + } + + public static List tranStrToLongList(Object idListObj){ + List docIds = new ArrayList(); + if(idListObj != null) { + try { + JSONArray idObjs = JSONArray.parseArray(null2String(idListObj)); + for (Object idObj : idObjs) { + long id = getLongValue(idObj); + if (id > 0l) { + docIds.add(id); + } + } + } catch (Exception e) { + log.error("trans error :{}", idListObj); + log.error(e.getMessage(), e); + } + } + return docIds; + } +} diff --git a/src/main/java/com/weaver/seconddev/jcldoor/util/DatabaseUtils.java b/src/main/java/com/weaver/seconddev/jcldoor/util/DatabaseUtils.java new file mode 100644 index 0000000..3c9f687 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/jcldoor/util/DatabaseUtils.java @@ -0,0 +1,265 @@ +package com.weaver.seconddev.jcldoor.util; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import com.weaver.ebuilder.datasource.api.query.dto.dw.DynamicParamDto; +import com.weaver.ebuilder.datasource.api.query.dto.dw.FieldQuery; +import com.weaver.ebuilder.datasource.api.query.dto.dw.GroupQuery; +import com.weaver.ebuilder.datasource.api.query.dto.dw.TableQuery; +import com.weaver.ebuilder.datasource.api.entity.ExecuteSqlEntity; +import com.weaver.ebuilder.datasource.api.enums.SourceType; +import com.weaver.ebuilder.datasource.api.service.DataSetService; +import com.weaver.ebuilder.datasource.api.service.impl.EbFormDataService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * DatabaseUtil 是一个数据库工具类,提供了一些执行 SQL 查询和操作的方法。 + */ + + +@Component +public class DatabaseUtils { + + private final static Logger log = LoggerFactory.getLogger(DatabaseUtils.class); + + @Autowired + private DataSetService dataSetService; + + @Autowired + private EbFormDataService dataService; + + + /** + * 执行 SQL 并返回结果。 + * + * @param entity 包含执行 SQL 的相关信息的对象 + * @return 包含查询结果的 Map 对象 + * @throws RuntimeException 当 SQL 执行失败时抛出异常 + */ + public Map executeSql(ExecuteSqlEntity entity) { + Map map = dataSetService.executeSql(entity); + if ("FAIL".equals(CommonUtils.null2String(map.get("status")).toUpperCase(Locale.ROOT))) { + log.error("sql执行失败=>{}", JSONObject.toJSONString(map)); + throw new RuntimeException("sql执行异常"); + } else { + return map; + } + } + + /** + * 执行分页 SQL 查询并返回结果。 + * + * @param entity 包含执行 SQL 和分页信息的对象 + * @param pageNo 当前页码 + * @param pageSize 每页的数据条数 + * @return 包含查询结果的 Map 对象 + * @throws RuntimeException 当 SQL 执行失败时抛出异常 + */ + public Map executeSql(ExecuteSqlEntity entity, int pageNo, int pageSize) { + entity.setPageNo(pageNo); + entity.setPageSize(pageSize); + Map map = dataSetService.executeForQuery(entity); + if ("FAIL".equals(CommonUtils.null2String(map.get("status")).toUpperCase(Locale.ROOT))) { + log.error("sql执行失败=>{}", JSONObject.toJSONString(map)); + throw new RuntimeException("sql执行异常"); + } else { + return map; + } + } + + /** + * 创建一个包含执行 SQL 的对象。 + * + * @param sql 需要执行的 SQL + * @param groupId 数据源分组的 ID + * @paramDesc 数据源分组的 ID 获取方式 【select APPLICATION_MARK,APPLICATION_name from eteams.ds_mark_service_relation】 + * @return 包含执行 SQL 的对象 + */ + public ExecuteSqlEntity getExecuteSqlEntity(String sql, String groupId) { + log.error("sql=>{}", sql); + ExecuteSqlEntity executeSqlEntity = new ExecuteSqlEntity(); + executeSqlEntity.setSql(base64(sql)); + executeSqlEntity.setGroupId(groupId); + executeSqlEntity.setSourceType(SourceType.LOGIC); + executeSqlEntity.setGroupKey("0"); + return executeSqlEntity; + } + + /** + * 对 SQL 进行 Base64 编码。 + * + * @param sql 需要进行编码的 SQL + * @return 编码后的字符串 + */ + public String base64(String sql) { + return Base64.encode(sql); + } + + /** + * 获取数据源列表。 + * + * @param map 包含数据源列表信息的 Map 对象 + * @return 数据源列表的 Map 对象 + */ + public List> getDataSourceList(Map map) { + List> entity = new ArrayList(); + if ("OK".equals(CommonUtils.null2String(map.get("status")).toUpperCase(Locale.ROOT)) && map.get("count") != null && CommonUtils.getIntValue(map.get("count")) > 0) { + entity = (List) map.get("records"); + } + + return keyToLowerCase((List) entity); + } + + public Map getOneDataSource(Map map) { + List> entity = getDataSourceList(map); + return (Map)(CollectionUtil.isNotEmpty(entity) ? (Map)entity.get(0) : new HashMap()); + } + + /** + * 将 Map 对象中的键转换为小写。 + * + * @param orgMapList 需要转换键的 Map 对象列表 + * @return 转换后的 Map 对象列表 + */ + public List> keyToLowerCase(List> orgMapList) { + List> resultList = new ArrayList(); + Iterator var2 = orgMapList.iterator(); + + while (var2.hasNext()) { + Map stringObjectMap = (Map) var2.next(); + resultList.add(keyToLowerCase(stringObjectMap)); + } + + return resultList; + } + + /** + * 将 Map 对象中的键转换为小写。 + * + * @param orgMap 需要转换键的 Map 对象 + * @return 转换后的 Map 对象 + */ + public Map keyToLowerCase(Map orgMap) { + Map resultMap = new HashMap(); + if (orgMap != null && !orgMap.isEmpty()) { + Set> entrySet = orgMap.entrySet(); + Iterator var3 = entrySet.iterator(); + + while (var3.hasNext()) { + Map.Entry entry = (Map.Entry) var3.next(); + String key = (String) entry.getKey(); + Object value = entry.getValue(); + resultMap.put(key.toLowerCase(), value); + } + return resultMap; + } else { + return resultMap; + } + } + + + /** + * 根据数据库类型 找到对应数据库 + * + * @param sourceType sourceType 枚举类 + * ETEAMS :数据仓库 + * FORM: ebuilder表单 + * LOGIC: 各模块提供业务数据(逻辑表) + * EXTERNAL: 外部数据源 + * @return + */ + public List> getDataGroups(String sourceType, Boolean flag) { + GroupQuery query = new GroupQuery(); + query.setSourceType(SourceType.valueOf(sourceType)); + query.setShowSqlDataset(flag); + + + DynamicParamDto dynamicParamDto = new DynamicParamDto(); + dynamicParamDto.setUserId(10000L); + dynamicParamDto.setTenantKey("tk"); + + query.setDynamicParamDto(dynamicParamDto); + + return dataSetService.getDataGroups(query); + } + + + /** + * 获取数据表 + * + * @param sourceType + * @param groupId + * @param pageNum + * @param pageSize + * @return + */ + public Map getDataSets(String sourceType, String groupId, Integer pageNum, Integer pageSize) { + + TableQuery tableQuery = new TableQuery(); + tableQuery.setSourceType(SourceType.valueOf(sourceType)); + tableQuery.setGroupId(groupId); + //非必传 + //tableQuery.setName(name); + tableQuery.setPageNo(pageNum); + tableQuery.setPageSize(pageSize); + return dataSetService.getDataSetsByPage(tableQuery); + } + + /** + * 获取表字段 + * sourceType :LOGIC + * sourceId : 8494845523559165780 + * groupId : weaver-crm-service + * + * @param + * @return + */ + public List> getFields(String sourceType, String sourceId, String groupId) { + FieldQuery query = new FieldQuery(); + query.setSourceType(SourceType.valueOf(sourceType)); + query.setSourceId(sourceId); + query.setGroupId(groupId); + return dataSetService.getFields(query); + } + + /** + * 执行sql + * sourceType :LOGIC + * groupId : weaver-ebuilder-app-service + * sql : select * from ebda_app limit 10 + * + * @param + * @return + */ + public Map execute(String sourceType, String groupId, String sql) { + //执行sql 参数sourceType groupId sql + ExecuteSqlEntity executeSqlEntity = new ExecuteSqlEntity(); + executeSqlEntity.setSql(base64(sql)); + executeSqlEntity.setGroupId(groupId); + executeSqlEntity.setSourceType(SourceType.valueOf(sourceType)); + return dataSetService.executeSql(executeSqlEntity); + } + + + public String getMysqlPagedSql(String sql,int pageNo, int pageSize) { + if(pageNo<=0){ + pageNo = 1; + } + + if(pageSize<=0){ + pageSize = 20; + } + + int start = (pageNo-1)*pageSize; + int end = pageNo*pageSize; + + return new StringBuffer().append(sql).append( + " LIMIT "+start+","+(end-start)).toString(); + } +}