From bd1bdf40c5dcd2c4e20a203dcd2e9a8468c64b28 Mon Sep 17 00:00:00 2001 From: shilei <798989044@qq.com> Date: Thu, 30 May 2024 17:05:25 +0800 Subject: [PATCH] =?UTF-8?q?#E10-40#=20=E5=A2=9E=E5=8A=A0=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cockpit/cmd/CockpitProjectDataCmd.java | 216 ++++++++++++++++++ .../cockpit/cmd/CockpitUserDataCmd.java | 31 ++- .../cockpit/cmd/CockpitWorkDate3TypeCmd.java | 2 +- .../cmd/CockpitWorkflowAnalysisCmd.java | 72 ++++-- .../controller/JucailinCockpitController.java | 17 ++ .../service/JucailinCockpitService.java | 2 + .../impl/JucailinCockpitServiceimpl.java | 9 + 7 files changed, 331 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitProjectDataCmd.java diff --git a/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitProjectDataCmd.java b/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitProjectDataCmd.java new file mode 100644 index 0000000..f2abd24 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitProjectDataCmd.java @@ -0,0 +1,216 @@ +package com.weaver.seconddev.cockpit.cmd; + + +import com.weaver.ebuilder.datasource.api.entity.SqlParamEntity; +import com.weaver.ebuilder.datasource.api.enums.SqlParamType; +import com.weaver.framework.rpc.annotation.RpcReference; +import com.weaver.project.entity.SimpleMainline; +import com.weaver.project.service.RemoteMainlineService; +import com.weaver.seconddev.cockpit.util.DatabaseUtils; +import com.weaver.teams.domain.user.SimpleEmployee; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class CockpitProjectDataCmd { + + //日志 + private final static Logger log = LoggerFactory.getLogger(CockpitProjectDataCmd.class); + + @RpcReference + RemoteMainlineService remoteMainlineService ; + + @Autowired + private DatabaseUtils databaseUtils; + + + public Map getDataInfo(SimpleEmployee employee, Map paramMap, String tenantKey) { + + Map recordMap = new HashMap(); + + List> projectDate2 = new ArrayList>(); + List> projectDate3 = new ArrayList>(); + + try { + projectDate2 = getProjectDate2(employee,tenantKey); + projectDate3 = getProjectDate3(employee,tenantKey); + + } catch (Exception e) { + e.printStackTrace(); + log.error("PortalPerformanceInfoCmd :" + e); + } + + recordMap.put("projectDate2",projectDate2); + recordMap.put("projectDate3",projectDate3); + return recordMap; + } + + public List> getProjectDate2(SimpleEmployee employee, String tenantKey) { + + List> projectList = new ArrayList>(); + String groupId = "weaver-project-service"; + String sourceType = "LOGIC"; + + long employeeid = employee.getEmployeeId(); + + try { + + String sql =" select w.* from (\n" + + " select convert(m.id,char) as mainline_id,m.name as mainline_name,\n" + + " convert(m.manager,char) as manager_id,\n" + + " convert(p.rel_custom,char) as rel_custom,p.proj_amount,p.proj_approval_date,\n" + + " p.actual_val_date \n" + + " from ec_customerservice.mainline m \n" + + " inner JOIN ec_customerservice.mainline_form_data f ON f.mainline_id = m.id \n" + + " inner join ec_customerservice.proj_pms_base p on p.form_data_id = f.form_data_id \n" + + " inner join ec_customerservice.mainline_status_custom msc on msc.mainline_id = m.id \n" + + " inner join ec_customerservice.mainline_cust_status mcs on msc.status_id = mcs.id\n" + + " where m.group_id = '4527875868755238091' \n" + + " and m.manager in( select id\n" + + " from eteams.employee \n" + + " where (superior = "+employeeid+" or id = "+employeeid+")\n" + + " and status='normal'\n" + + " and delete_type=0" + + " and tenant_key = '"+tenantKey+"'\n" + + " and password is not null\n" + + " )\n" + + " and m.delete_type = 0 \n" + + " and m.tenant_key = '"+tenantKey+"'\n" + + " and f.delete_type = 0 \n" + + " and f.tenant_key = '"+tenantKey+"'\n" + + " and p.delete_type = 0\n" + + " and p.tenant_key = '"+tenantKey+"'\n" + + " and msc.delete_type = 0\n" + + " and msc.tenant_key = '"+tenantKey+"'\n" + + " and mcs.delete_type = 0\n" + + " and mcs.tenant_key = '"+tenantKey+"'\n" + + " and mcs.enabled = 1 \n" + + " and mcs.name <> '结案'\n" + + " order by m.create_time desc\n" + + ") w limit 6"; + + log.error("sql:"+sql); + + Map result = databaseUtils.execute(sourceType, groupId, sql); + projectList = databaseUtils.getDataSourceList(result); + + } catch (Exception e) { + e.printStackTrace(); + log.error("getProjectDate2-Exception:" + e); + } + return projectList; + } + + + public List> getProjectDate3(SimpleEmployee employee, String tenantKey) { + + List> projectList = new ArrayList>(); + String groupId = "weaver-project-service"; + String sourceType = "LOGIC"; + + String groupid = "4527875868755238091"; + long employeeid = employee.getEmployeeId(); + + try { + + String sql =" select w.* from (\n" + + " select convert(m.id,char) as mainline_id,m.name as mainline_name,\n" + + " convert(m.manager,char) as manager_id,\n" + + " convert(p.rel_custom,char) as rel_custom,p.proj_amount,p.proj_approval_date,\n" + + " p.actual_val_date \n" + + " from ec_customerservice.mainline m \n" + + " inner JOIN ec_customerservice.mainline_form_data f ON f.mainline_id = m.id \n" + + " inner join ec_customerservice.proj_pms_base p on p.form_data_id = f.form_data_id \n" + + " inner join ec_customerservice.mainline_status_custom msc on msc.mainline_id = m.id \n" + + " inner join ec_customerservice.mainline_cust_status mcs on msc.status_id = mcs.id\n" + + " where m.group_id = ? \n" + + " and m.manager in( select id\n" + + " from eteams.employee \n" + + " where (superior = ? or id = ?)\n" + + " and status='normal'\n" + + " and delete_type=0" + + " and tenant_key = ?\n" + + " and password is not null\n" + + " )\n" + + " and m.delete_type = 0 \n" + + " and m.tenant_key = ?\n" + + " and f.delete_type = 0 \n" + + " and f.tenant_key = ?\n" + + " and p.delete_type = 0\n" + + " and p.tenant_key = ?\n" + + " and msc.delete_type = 0\n" + + " and msc.tenant_key = ?\n" + + " and mcs.delete_type = 0\n" + + " and mcs.tenant_key = ?\n" + + " and mcs.enabled = 1 \n" + + " and mcs.name <> '结案'\n" + + " order by m.create_time desc\n" + + ") w limit 6"; + + log.error("sql:"+sql); + List sqlparam = new ArrayList(); + SqlParamEntity sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.LONG); + sqlParamEntity.setValue(groupid); + sqlparam.add(sqlParamEntity); + + sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.LONG); + sqlParamEntity.setValue(employeeid+""); + sqlparam.add(sqlParamEntity); + + sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.LONG); + sqlParamEntity.setValue(employeeid+""); + sqlparam.add(sqlParamEntity); + + sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.VARCHAR); + sqlParamEntity.setValue(tenantKey+""); + sqlparam.add(sqlParamEntity); + + + sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.VARCHAR); + sqlParamEntity.setValue(tenantKey+""); + sqlparam.add(sqlParamEntity); + + sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.VARCHAR); + sqlParamEntity.setValue(tenantKey+""); + sqlparam.add(sqlParamEntity); + + sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.VARCHAR); + sqlParamEntity.setValue(tenantKey+""); + sqlparam.add(sqlParamEntity); + + sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.VARCHAR); + sqlParamEntity.setValue(tenantKey+""); + sqlparam.add(sqlParamEntity); + + sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.VARCHAR); + sqlParamEntity.setValue(tenantKey+""); + sqlparam.add(sqlParamEntity); + + Map result = databaseUtils.executeForQuery(sourceType, groupId, sql,sqlparam); + projectList = databaseUtils.getDataSourceList(result); + + } catch (Exception e) { + e.printStackTrace(); + log.error("getProjectDate2-Exception:" + e); + } + return projectList; + } + + +} diff --git a/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitUserDataCmd.java b/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitUserDataCmd.java index 8fd761e..875e3f0 100644 --- a/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitUserDataCmd.java +++ b/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitUserDataCmd.java @@ -36,6 +36,8 @@ public class CockpitUserDataCmd { Map recordMap = new HashMap(); String sourceType = "LOGIC"; try { + String subcompanynme = ""; + String employeeId = String.valueOf(employee.getEmployeeId()); log.error("employeeId:"+employeeId); String username = employee.getName(); @@ -43,8 +45,7 @@ public class CockpitUserDataCmd { String deptnme = employee.getDepartment().getName(); log.error("deptnme:"+deptnme); - String subcompanynme = employee.getDepartment().getParent().getName(); - log.error("subcompanynme:"+subcompanynme); + long subCompanyid = employee.getDepartment().getSubCompanyId(); String positionname = employee.getPosition().getName(); log.error("positionname:"+positionname); @@ -90,6 +91,32 @@ public class CockpitUserDataCmd { long jobcallid = employee.getJobCall(); log.error("jobcallid:"+jobcallid); + if(StringUtils.isNotBlank(subCompanyid+"")){ + String sql = " select name " + + " from department " + + " where id= ? and type='subcompany' " + + " and delete_type=0 and TENANT_KEY = ? "; + + log.error("sql:"+sql); + List sqlparam = new ArrayList(); + SqlParamEntity sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.LONG); + sqlParamEntity.setValue(subCompanyid+""); + sqlparam.add(sqlParamEntity); + + sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.VARCHAR); + sqlParamEntity.setValue(tenantKey); + sqlparam.add(sqlParamEntity); + + Map result = databaseUtils.executeForQuery(sourceType, groupId, sql,sqlparam); + List> recordList = databaseUtils.getDataSourceList(result); + if(!recordList.isEmpty() && recordList.size()>0){ + subcompanynme = String.valueOf(recordList.get(0).get("name")); + } + } + log.error("subcompanynme:"+subcompanynme); + if(StringUtils.isNotBlank(jobcallid+"")){ String sql =" select data_name from eteams.hrm_jobcall " + " where id = ? "+ diff --git a/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitWorkDate3TypeCmd.java b/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitWorkDate3TypeCmd.java index e2aff5c..ecd9c90 100644 --- a/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitWorkDate3TypeCmd.java +++ b/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitWorkDate3TypeCmd.java @@ -205,7 +205,7 @@ public class CockpitWorkDate3TypeCmd { sqlParamEntity.setValue(tenantKey+""); sqlparam.add(sqlParamEntity); - Map result = databaseUtils.execute(sourceType, groupId, sql); + Map result = databaseUtils.executeForQuery(sourceType, groupId, sql,sqlparam); projectList = databaseUtils.getDataSourceList(result); } catch (Exception e) { diff --git a/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitWorkflowAnalysisCmd.java b/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitWorkflowAnalysisCmd.java index 35bb0cf..49e45ea 100644 --- a/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitWorkflowAnalysisCmd.java +++ b/src/main/java/com/weaver/seconddev/cockpit/cmd/CockpitWorkflowAnalysisCmd.java @@ -81,6 +81,7 @@ public class CockpitWorkflowAnalysisCmd { wfMap.put("count",wf_count1); wfMap.put("name",wf_name1); wfMap.put("url",wf_url1); + wfMap.put("key","dcllcsl"); wflist.add(wfMap); wfMap = new HashMap(); @@ -91,6 +92,7 @@ public class CockpitWorkflowAnalysisCmd { wfMap.put("count",wf_count2); wfMap.put("name",wf_name2); wfMap.put("url",wf_url2); + wfMap.put("key","wcjdlc"); wflist.add(wfMap); wfMap = new HashMap(); @@ -101,6 +103,7 @@ public class CockpitWorkflowAnalysisCmd { wfMap.put("count",wf_count3); wfMap.put("name",wf_name3); wfMap.put("url",wf_url3); + wfMap.put("key","wcldlc"); wflist.add(wfMap); @@ -112,6 +115,7 @@ public class CockpitWorkflowAnalysisCmd { wfMap.put("count",wf_count4); wfMap.put("name",wf_name4); wfMap.put("url",wf_url4); + wfMap.put("key","wdbdlc"); wflist.add(wfMap); @@ -123,14 +127,16 @@ public class CockpitWorkflowAnalysisCmd { wfMap.put("count",wf_count5); wfMap.put("name",wf_name5); wfMap.put("url",wf_url5); + wfMap.put("key","wgzdlc"); wflist.add(wfMap); - wfMap = getWorkflowDayOperateCount(employee,tenantKey,wf_count3); - wflist.add(wfMap); + List> daylist = getWorkflowDayOperateCount(employee,tenantKey,wf_count3,wf_count2); + wflist.addAll(daylist); wfMap = getWorkflowOperateAverageTime(employee,tenantKey); wflist.add(wfMap); + } catch (Exception e) { e.printStackTrace(); log.error("DevQuestCountCmd-Exception:" + e); @@ -172,20 +178,27 @@ public class CockpitWorkflowAnalysisCmd { String count = "0.0"; try{ RequestListConditionApiEntity conditionEntity = new RequestListConditionApiEntity(); - WeaResult> requestListData = wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.TODO_FLOWALL.getTabid(), 1, 10, conditionEntity); + WeaResult> requestListData = wflRequestListRest.getRequestListByTabId(employee, RequestListInitDimensionTabEnum.DONE_FLOWALL.getTabid(), 1, 500, conditionEntity); int code = requestListData.getCode(); if(code == 200){ Long minutescount = 0L; List requestCountInfoPAEntityList = requestListData.getData(); int requestLength = requestCountInfoPAEntityList.size() ; + log.error("requestLength:"+requestLength); for(int i=0;i 0 && minutescount > 0){ double average = minutescount/requestLength ; count = String.valueOf(average); @@ -202,14 +215,20 @@ public class CockpitWorkflowAnalysisCmd { wfMap.put("count",count); wfMap.put("name",wf_name1); wfMap.put("url",wf_url1); + wfMap.put("key","pjlcclsj"); return wfMap; } - public Map getWorkflowDayOperateCount(SimpleEmployee employee,String tenantKey,String wf_count3) { - String count = "0.0"; - String diffdays = "0"; + public List> getWorkflowDayOperateCount(SimpleEmployee employee,String tenantKey,String wf_count3,String wf_count2) { + String count2 = "0.0"; + String count3 = "0.0"; + String diffdays = "1"; + + log.error("wf_count3:"+wf_count3); + log.error("wf_count2:"+wf_count2); + String groupId = "weaver-ebuilder-form-service"; String sourceType = "LOGIC"; log.error("wf_count3:"+wf_count3); @@ -241,21 +260,44 @@ public class CockpitWorkflowAnalysisCmd { Long days = Long.parseLong(diffdays); BigDecimal bg = new BigDecimal((double) dealcount/(days*1.00)); - count = String.valueOf(bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + count3 = String.valueOf(bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + + if(StringUtils.isNotBlank(wf_count2) && StringUtils.isNotBlank(diffdays)){ + Long dealcount = Long.parseLong(wf_count2); + Long days = Long.parseLong(diffdays); + + BigDecimal bg = new BigDecimal((double) dealcount/(days*1.00)); + count2 = String.valueOf(bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); } } catch (Exception e) { log.error("PortalWfDealCountCmd-Exception:" + e); } + List> dayList = new ArrayList>(); Map wfMap = new HashMap(); - String wf_name1 = "平均每天处理"; - String wf_pkey1 = "workflow.average.amount"; - String wf_url1 = jucailinCockpitUtils.getUfPropData(wf_pkey1,tenantKey); - wfMap.put("count",count); - wfMap.put("name",wf_name1); - wfMap.put("url",wf_url1); - - return wfMap; + String wf_name2 = "平均每日发起流程"; + String wf_pkey2 = "workflow.average.amount"; + String wf_url2 = jucailinCockpitUtils.getUfPropData(wf_pkey2,tenantKey); + wfMap.put("count",count2); + wfMap.put("name",wf_name2); + wfMap.put("url",wf_url2); + wfMap.put("key","pjmrfqlc"); + dayList.add(wfMap); + + wfMap = new HashMap(); + String wf_name3 = "平均每日处理流程"; + String wf_pkey3 = "workflow.average.amount"; + String wf_url3 = jucailinCockpitUtils.getUfPropData(wf_pkey3,tenantKey); + wfMap.put("count",count3); + wfMap.put("name",wf_name3); + wfMap.put("url",wf_url3); + wfMap.put("key","pjmrcllc"); + dayList.add(wfMap); + + return dayList; } + + } diff --git a/src/main/java/com/weaver/seconddev/cockpit/controller/JucailinCockpitController.java b/src/main/java/com/weaver/seconddev/cockpit/controller/JucailinCockpitController.java index 19e65b3..0992542 100644 --- a/src/main/java/com/weaver/seconddev/cockpit/controller/JucailinCockpitController.java +++ b/src/main/java/com/weaver/seconddev/cockpit/controller/JucailinCockpitController.java @@ -167,6 +167,23 @@ public class JucailinCockpitController { } + @GetMapping("/getProjectData") + @WeaPermission(publicPermission = true) + public WeaResult getProjectData(HttpServletRequest request){ + log.error("getWorkData"); + Map dataList = new HashMap(); + SimpleEmployee simpleEmployee = UserContext.getCurrentUser(); + Map params = jucailinCockpitUtils.request2Map(request); + + try{ + dataList = jucailinCockpitService.getProjectData(simpleEmployee,params,tenant_key); + }catch (Exception e){ + log.error("getWorkData-Exception:"+e.getMessage()); + } + return WeaResult.success(dataList); + } + + @GetMapping("/getBlogData") diff --git a/src/main/java/com/weaver/seconddev/cockpit/service/JucailinCockpitService.java b/src/main/java/com/weaver/seconddev/cockpit/service/JucailinCockpitService.java index 451cc3d..5acf77f 100644 --- a/src/main/java/com/weaver/seconddev/cockpit/service/JucailinCockpitService.java +++ b/src/main/java/com/weaver/seconddev/cockpit/service/JucailinCockpitService.java @@ -20,6 +20,8 @@ public interface JucailinCockpitService { Map getUserData3Type(SimpleEmployee simpleEmployee,Map paramMap,String tenantKey); + Map getProjectData(SimpleEmployee simpleEmployee,Map paramMap,String tenantKey); + Map getBlogData(SimpleEmployee simpleEmployee,Map paramMap,String tenantKey); } diff --git a/src/main/java/com/weaver/seconddev/cockpit/service/impl/JucailinCockpitServiceimpl.java b/src/main/java/com/weaver/seconddev/cockpit/service/impl/JucailinCockpitServiceimpl.java index fe84d09..786d33b 100644 --- a/src/main/java/com/weaver/seconddev/cockpit/service/impl/JucailinCockpitServiceimpl.java +++ b/src/main/java/com/weaver/seconddev/cockpit/service/impl/JucailinCockpitServiceimpl.java @@ -35,6 +35,10 @@ public class JucailinCockpitServiceimpl implements JucailinCockpitService { @Autowired private CockpitWorkDate3TypeCmd cockpitWorkDate3TypeCmd; + @Autowired + private CockpitProjectDataCmd cockpitProjectDataCmd; + + @Override public Map getMonthPerformanceData(SimpleEmployee simpleEmployee, Map paramMap,String tenantKey) { @@ -80,6 +84,11 @@ public class JucailinCockpitServiceimpl implements JucailinCockpitService { return dataMap; } + @Override + public Map getProjectData(SimpleEmployee simpleEmployee, Map paramMap, String tenantKey) { + Map dataMap = cockpitProjectDataCmd.getDataInfo(simpleEmployee,paramMap,tenantKey); + return dataMap; + } @Override