commit f5f3d5d1df23b551dc95e2b259a14de2e6129eb7 Author: shilei <798989044@qq.com> Date: Wed Jun 5 17:33:39 2024 +0800 #weaver-njpmsreport-1# 初始化代码 diff --git a/src/main/java/com/weaver/seconddev/njprojectreport/controller/ProjectColumnsController.java b/src/main/java/com/weaver/seconddev/njprojectreport/controller/ProjectColumnsController.java new file mode 100644 index 0000000..88afef2 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/njprojectreport/controller/ProjectColumnsController.java @@ -0,0 +1,781 @@ +package com.weaver.seconddev.njprojectreport.controller; + +import com.weaver.common.authority.annotation.WeaPermission; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.common.hrm.service.HrmCommonEmployeeService; +import com.weaver.seconddev.njprojectreport.util.ColumnsUtils; +import com.weaver.seconddev.njprojectreport.util.CommonUtils; +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.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +@RestController +@RequestMapping("/api/secondev/njpmscolum") +public class ProjectColumnsController { + + //日志 + private final Logger log = LoggerFactory.getLogger(ProjectColumnsController.class); + + @Autowired + private ColumnsUtils columnsUtils; + + @Autowired + private HrmCommonEmployeeService hrmCommonEmployeeService; + + public String tenant_key = "t7akvdnf84" ; + public String subcompany_sw = "4969965898641618640" ; + public String subcompany_sd = "4969965907418519261" ; + public String subcompany_sx = "4969965916961119875" ; + public String subcompany_hn = "4969965914880119650" ; + public String jtjname = "第三集团军"; + public String qiyuesuoid = "9081413488803384317"; + public String group_id = "" ; + public String permissionEmployee = "9078080309085655917,6488080121949444347" ; + + + /** + * 获取客户名称 + * @param request + * @return + */ + @GetMapping("/getColumsCustomerName") + @WeaPermission(publicPermission = true) + public WeaResult getColumsCustomerName(HttpServletRequest request){ + String customerid = CommonUtils.null2String(request.getParameter("customerid")).trim(); + + Map recordMap = columnsUtils.getColumsCustomerName(customerid,tenant_key); + return WeaResult.success(recordMap); + } + + /** + * 获取客户名称 + * @param request + * @return + */ + @PostMapping("/queryColumsCustomerName") + @WeaPermission(publicPermission = true) + public WeaResult queryColumsCustomerName(HttpServletRequest request){ + String customerid = CommonUtils.null2String(request.getParameter("customerid")).trim(); + Map recordMap = columnsUtils.getColumsCustomerName(customerid,tenant_key); + return WeaResult.success(recordMap); + } + + + /** + * 机构负责人 + * @param request + * @return + */ + @GetMapping("/getColumsSubcompanyManager") + @WeaPermission(publicPermission = true) + public WeaResult getColumsSubcompanyManager(HttpServletRequest request){ + String departmentid = CommonUtils.null2String(request.getParameter("departmentid")).trim(); + Map recordMap = columnsUtils.getColumsSubcompanyManager(departmentid,tenant_key); + return WeaResult.success(recordMap); + } + + /** + * 机构负责人 + * @param request + * @return + */ + @PostMapping("/queryColumsSubcompanyManager") + @WeaPermission(publicPermission = true) + public WeaResult queryColumsSubcompanyManager(HttpServletRequest request){ + String departmentid = CommonUtils.null2String(request.getParameter("departmentid")).trim(); + Map recordMap = columnsUtils.getColumsSubcompanyManager(departmentid,tenant_key); + return WeaResult.success(recordMap); + } + + /** + * 合同号 + * @param request + * @return + */ + @GetMapping("/getProjectContractNo") + @WeaPermission(publicPermission = true) + public WeaResult getProjectContractNo(HttpServletRequest request){ + + String mainline_id = CommonUtils.null2String(request.getParameter("mainlineid")).trim(); + Map recordMap = columnsUtils.getContractByMainlineId(mainline_id,tenant_key); + return WeaResult.success(recordMap); + } + + /** + * 合同号 + * @param request + * @return + */ + @PostMapping("/queryProjectContractNo") + @WeaPermission(publicPermission = true) + public WeaResult queryProjectContractNo(HttpServletRequest request){ + String mainline_id = CommonUtils.null2String(request.getParameter("mainlineid")).trim(); + Map recordMap = columnsUtils.getContractByMainlineId(mainline_id,tenant_key); + return WeaResult.success(recordMap); + } + + /*** + * 项目分享状态 + * @param request + * @return + */ + @GetMapping("/getColumsProjectStatus") + @WeaPermission(publicPermission = true) + public WeaResult getColumsProjectStatus(HttpServletRequest request){ + + String actual_val_date = CommonUtils.null2String(request.getParameter("actual_val_date")).trim() ; + String proj_amount = CommonUtils.null2String(request.getParameter("proj_amount")).trim() ; + String mainlineid = CommonUtils.null2String(request.getParameter("mainlineid")).trim() ; + + Map recordMap = columnsUtils.getColumsProjectStatus(actual_val_date,proj_amount,mainlineid,tenant_key); + return WeaResult.success(recordMap); + } + + /*** + * 项目分享状态 + * @param request + * @return + */ + @PostMapping("/queryColumsProjectStatus") + @WeaPermission(publicPermission = true) + public WeaResult queryColumsProjectStatus(HttpServletRequest request){ + String actual_val_date = CommonUtils.null2String(request.getParameter("actual_val_date")).trim() ; + String proj_amount = CommonUtils.null2String(request.getParameter("proj_amount")).trim() ; + String mainlineid = CommonUtils.null2String(request.getParameter("mainlineid")).trim() ; + + Map recordList = columnsUtils.getColumsProjectStatus(actual_val_date,proj_amount,mainlineid,tenant_key); + + return WeaResult.success(recordList); + } + + + @GetMapping("/getColumsRequestExtension") + @WeaPermission(publicPermission = true) + public WeaResult getColumsRequestExtension(HttpServletRequest request){ + String mainlineid = CommonUtils.null2String(request.getParameter("mainlineid")).trim() ; + + Map recordList = columnsUtils.queryColumsRequestExtension(mainlineid,tenant_key); + + return WeaResult.success(recordList); + } + + + @PostMapping("/queryColumsRequestExtension") + @WeaPermission(publicPermission = true) + public WeaResult queryColumsRequestExtension(HttpServletRequest request){ + String mainlineid = CommonUtils.null2String(request.getParameter("mainlineid")).trim() ; + + Map recordList = columnsUtils.queryColumsRequestExtension(mainlineid,tenant_key); + + return WeaResult.success(recordList); + } + + + /** + * 合同号 + * @param request + * @return + */ + @PostMapping("/queryProjectRequestId") + @WeaPermission(publicPermission = true) + public WeaResult queryProjectRequestId(HttpServletRequest request){ + + String mainline_id = CommonUtils.null2String(request.getParameter("mainlineid")).trim(); + List> recordList = columnsUtils.getColumsRequestId(mainline_id,tenant_key); + return WeaResult.success(recordList); + } + + + @GetMapping("/getProjectRequestId") + @WeaPermission(publicPermission = true) + public WeaResult getProjectRequestId(HttpServletRequest request){ + + String mainline_id = CommonUtils.null2String(request.getParameter("mainlineid")).trim(); + List> recordList = columnsUtils.getColumsRequestId(mainline_id,tenant_key); + return WeaResult.success(recordList); + } + + + /*** + * + * @param request + * @return + */ + @GetMapping("/getprojectlist") + @WeaPermission(publicPermission = true) + public WeaResult getprojectlist(HttpServletRequest request){ + + String otherid = CommonUtils.null2String(request.getParameter("otherid")).trim(); + if(StringUtils.isBlank(otherid)){ + otherid = permissionEmployee; + } + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + String employee_id = CommonUtils.null2String(employeeId); + log.info("queryprojectlist-employeeId----:"+employeeId); + SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); + log.info("queryprojectlist-employee----:"+employee.toString()); + log.info("queryprojectlist-getUserId----:"+employee.getUserId().toString()); + + String userid = CommonUtils.null2String(employee.getUserId()); + + String subcompanyids = "" ; + if(otherid.contains(employee_id)){ + subcompanyids = columnsUtils.getEmployeeByProjectTeam4Other(jtjname,qiyuesuoid,employee_id,tenant_key); + }else{ + subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + } + + Map data = new HashMap(); + log.info("queryprojectlist----:"+userid); + +// String subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,userid,tenant_key); + List> recordList = new ArrayList>(); + if(StringUtils.isNotBlank(subcompanyids)){ + String baseSql = columnsUtils.queryProjectSql(subcompanyids,xm_mc,xm_xmjl,xm_bm,xm_id,xm_jg,xm_ysrq_start,xm_ysrq_end); + recordList = columnsUtils.queryProjectList(baseSql); + } + log.info("queryprojectlist---recordList:"+recordList.size()); + log.info("totalSize:"+recordList.size()); + data.put("prodata", recordList); + data.put("totalSize", recordList.size()); + data.put("total", recordList.size()); + return WeaResult.success(data); + + } + + @PostMapping("/queryprojectlist") + @WeaPermission(publicPermission = true) + public WeaResult queryprojectlist(HttpServletRequest request){ + + String otherid = CommonUtils.null2String(request.getParameter("otherid")).trim(); + if(StringUtils.isBlank(otherid)){ + otherid = permissionEmployee; + } + + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + log.info("queryprojectlist-employeeId----:"+employeeId); + String employee_id = CommonUtils.null2String(employeeId); + SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); + String userid = CommonUtils.null2String(employee.getUserId()); + log.info("queryprojectlist-employee----:"+employee.toString()); + log.info("queryprojectlist-getUserId----:"+employee.getUserId().toString()); + + String subcompanyids = "" ; + if(otherid.contains(employee_id)){ + subcompanyids = columnsUtils.getEmployeeByProjectTeam4Other(jtjname,qiyuesuoid,employee_id,tenant_key); + }else{ + subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + } + + + + Map data = new HashMap(); + log.info("queryprojectlist----:"+userid); +// String subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,userid,tenant_key); + String baseSql = columnsUtils.queryProjectSql(subcompanyids,xm_mc,xm_xmjl,xm_bm,xm_id,xm_jg,xm_ysrq_start,xm_ysrq_end); + + List> recordList = columnsUtils.queryProjectList(baseSql); + log.info("queryprojectlist---recordList:"+recordList.size()); + + log.info("totalSize:"+recordList.size()); + data.put("prodata", recordList); + data.put("totalSize", recordList.size()); + data.put("total", recordList.size()); + return WeaResult.success(data); + + } + + + @GetMapping("/getprojectlistbypage") + @WeaPermission(publicPermission = true) + public WeaResult getprojectlistbypage(HttpServletRequest request){ + + int pageNo = CommonUtils.getIntValue(request.getParameter("pageNo"),1); + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),20); + + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + String employee_id = CommonUtils.null2String(employeeId); + SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); + String userid = CommonUtils.null2String(employee.getUserId()); + + Map data = new HashMap(); + log.info("queryprojectlistdata3----:"+userid); + + String subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + + String baseSql = columnsUtils.queryProjectSql(subcompanyids,xm_mc,xm_xmjl,xm_bm,xm_id,xm_jg,xm_ysrq_start,xm_ysrq_end); + + int total = columnsUtils.queryProjectCount(baseSql); + + List> recordList = columnsUtils.queryProjectListByPage(baseSql,pageNo,pageSize); + log.info("queryprojectlist---recordList:"+recordList.size()); + + data.put("prodata", recordList); + data.put("totalSize",total); + data.put("total", total); + return WeaResult.success(data); + + } + + + @PostMapping("/queryprojectlistbypage") + @WeaPermission(publicPermission = true) + public WeaResult queryprojectlistbypage(HttpServletRequest request){ + + int pageNo = CommonUtils.getIntValue(request.getParameter("pageNo"),1); + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),20); + + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + String employee_id = CommonUtils.null2String(employeeId); + SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); + String userid = CommonUtils.null2String(employee.getUserId()); + + Map data = new HashMap(); + log.info("queryprojectlistdata3----:"+userid); + + String subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + String baseSql = columnsUtils.queryProjectSql(subcompanyids,xm_mc,xm_xmjl,xm_bm,xm_id,xm_jg,xm_ysrq_start,xm_ysrq_end); + + int total = columnsUtils.queryProjectCount(baseSql); + List> recordList = columnsUtils.queryProjectListByPage(baseSql,pageNo,pageSize); + log.info("queryprojectlist---recordList:"+recordList.size()); + + data.put("prodata", recordList); + data.put("totalSize",total); + data.put("total", total); + return WeaResult.success(data); + } + + @GetMapping("/getprojectlistbypage2") + @WeaPermission(publicPermission = true) + public WeaResult getprojectlistbypage2(HttpServletRequest request){ + log.info("getprojectlistbypage2"); + int pageNo = CommonUtils.getIntValue(request.getParameter("pageNo"),1); + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),20); + + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + String employee_id = CommonUtils.null2String(employeeId); + SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); + String userid = CommonUtils.null2String(employee.getUserId()); + log.info("getprojectlistbypage2--xm_id:"+xm_id); + + Map data = new HashMap(); + + String subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + String baseSql = columnsUtils.queryProjectSql(subcompanyids,xm_mc,xm_xmjl,xm_bm,xm_id,xm_jg,xm_ysrq_start,xm_ysrq_end); + + int total = columnsUtils.queryProjectCount(baseSql); + log.info("total:"+total); + data.put("totalSize", total); + data.put("total", total); + + List> recordList = columnsUtils.queryProjectListByPage(baseSql,pageNo,pageSize); + + log.info("getprojectlistbypage2--recordList:"+recordList.size()); + for(int i=0;i recordMap = recordList.get(i); + String mainline_id = String.valueOf(recordMap.get("mainline_id")); + String managerid = String.valueOf(recordMap.get("manager_id")); + String rel_custom = String.valueOf(recordMap.get("rel_custom")); + String actual_val_date = String.valueOf(recordMap.get("actual_val_date")); + String proj_amount = String.valueOf(recordMap.get("proj_amount")); + String departmentid = String.valueOf(recordMap.get("department_id")); + + log.info("getprojectlistbypage2--mainline_id:"+mainline_id); + String hths = "" ; + if(StringUtils.isNotBlank(mainline_id)){ + Map mainlineMap = columnsUtils.getContractByMainlineId(mainline_id,tenant_key); + if(mainlineMap.containsKey("hth")){ + hths = CommonUtils.null2String(mainlineMap.get("hth")) ; + } + } + log.info("hths:"+hths); + recordMap.put("hth",hths); + + String customername = "" ; + if(StringUtils.isNotBlank(rel_custom)){ + Map customMap = columnsUtils.getColumsCustomerName(rel_custom,tenant_key); + if(!customMap.isEmpty()){ + customername = String.valueOf(customMap.get("name")); + } + } + String zt = "" ; + String cjrq = "" ; + String sqyy = "" ; + String wdfj = "" ; + String sqyqys = "" ; + String ztmc = "" ; + String requestname = "" ; + String requestid = "" ; + + log.info("getprojectlistbypage2--actual_val_date:"+actual_val_date); + if(StringUtils.isNotBlank(actual_val_date)){ + + Map shareMap = columnsUtils.getColumsProjectStatus(actual_val_date,proj_amount,mainline_id,tenant_key); + if(shareMap.containsKey("zt")){ + zt = shareMap.get("zt"); + } + + if(shareMap.containsKey("cjrq")){ + cjrq = shareMap.get("cjrq"); + } + + if(shareMap.containsKey("sqyy")){ + sqyy = shareMap.get("sqyy"); + } + + if(shareMap.containsKey("wdfj")){ + wdfj = shareMap.get("wdfj"); + } + + if(shareMap.containsKey("ztmc")){ + ztmc = shareMap.get("ztmc"); + } + + if(shareMap.containsKey("sqyqys")){ + sqyqys = shareMap.get("sqyqys"); + } + + if(shareMap.containsKey("requestid")){ + requestid = shareMap.get("requestid"); + } + + if(shareMap.containsKey("requestname")){ + requestname = shareMap.get("requestname"); + } + } + + log.info("zt:"+zt); + log.info("cjrq:"+cjrq); + log.info("sqyy:"+sqyy); + log.info("wdfj:"+wdfj); + + String fzrid = "" ; + String fzrxm = "" ; + if(StringUtils.isNotBlank(departmentid)){ + Map fzrMap = columnsUtils.getColumsSubcompanyManager(departmentid,tenant_key); + if(fzrMap.containsKey("id")){ + fzrid = String.valueOf(fzrMap.get("id")); + } + + if(fzrMap.containsKey("username")){ + fzrxm = String.valueOf(fzrMap.get("username")); + } + } + + log.info("fzrid:"+fzrid); + log.info("fzrxm:"+fzrxm); + log.info("customername:"+customername); + + + recordMap.put("fzrid",fzrid); + recordMap.put("fzrxm",fzrxm); + + recordMap.put("customername",customername); + recordMap.put("zt",zt); + + recordMap.put("cjrq",cjrq); + recordMap.put("sqyy",sqyy); + recordMap.put("wdfj",wdfj); + + recordMap.put("sqyqys",sqyqys); + recordMap.put("ztmc",ztmc); + recordMap.put("requestid",requestid); + recordMap.put("requestname",requestname); + } + + data.put("prodata", recordList); + return WeaResult.success(data); + } + + @PostMapping("/queryprojectlistbypage2") + @WeaPermission(publicPermission = true) + public WeaResult queryprojectlistbypage2(HttpServletRequest request){ + + int pageNo = CommonUtils.getIntValue(request.getParameter("pageNo"),1); + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),20); + + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + String employee_id = CommonUtils.null2String(employeeId); + SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); + String userid = CommonUtils.null2String(employee.getUserId()); + + Map data = new HashMap(); + log.info("getprojectlist:"+userid); + + String subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + + String baseSql = columnsUtils.queryProjectSql(subcompanyids,xm_mc,xm_xmjl,xm_bm,xm_id,xm_jg,xm_ysrq_start,xm_ysrq_end); + + int total = columnsUtils.queryProjectCount(baseSql); + + data.put("totalSize", total); + data.put("total", total); + + List> recordList = columnsUtils.queryProjectListByPage(baseSql,pageNo,pageSize); + + log.info("recordList:"+recordList.size()); + for(int i=0;i recordMap = recordList.get(i); + String projectid = String.valueOf(recordMap.get("mainline_id")); + String managerid = String.valueOf(recordMap.get("manager_id")); + String rel_custom = String.valueOf(recordMap.get("rel_custom")); + String actual_val_date = String.valueOf(recordMap.get("actual_val_date")); + String proj_amount = String.valueOf(recordMap.get("proj_amount")); + String departmentid = String.valueOf(recordMap.get("department_id")); + + log.info("projectid:"+projectid); + String hths = "" ; + if(StringUtils.isNotBlank(projectid)){ + Map mainlineMap = columnsUtils.getContractByMainlineId(projectid,tenant_key); + if(mainlineMap.containsKey("hth")){ + hths = CommonUtils.null2String(mainlineMap.get("hth")); + } + } + log.info("hths:"+hths); + recordMap.put("hth",hths); + + String customername = "" ; + if(StringUtils.isNotBlank(rel_custom)){ + Map customMap = columnsUtils.getColumsCustomerName(rel_custom,tenant_key); + if(!customMap.isEmpty()){ + customername = String.valueOf(customMap.get("name")); + } + } + String zt = "" ; + String cjrq = "" ; + String sqyy = "" ; + String wdfj = "" ; + String sqyqys = "" ; + String ztmc = "" ; + String requestname = "" ; + String requestid = "" ; + + if(StringUtils.isNotBlank(actual_val_date)){ + Map shareMap = columnsUtils.getColumsProjectStatus(actual_val_date,proj_amount,projectid,tenant_key); + if(shareMap.containsKey("zt")){ + zt = shareMap.get("zt"); + } + + if(shareMap.containsKey("cjrq")){ + cjrq = shareMap.get("cjrq"); + } + + if(shareMap.containsKey("sqyy")){ + sqyy = shareMap.get("sqyy"); + } + + if(shareMap.containsKey("wdfj")){ + wdfj = shareMap.get("wdfj"); + } + + if(shareMap.containsKey("ztmc")){ + ztmc = shareMap.get("ztmc"); + } + + if(shareMap.containsKey("sqyqys")){ + sqyqys = shareMap.get("sqyqys"); + } + + if(shareMap.containsKey("requestid")){ + requestid = shareMap.get("requestid"); + } + + if(shareMap.containsKey("requestname")){ + requestname = shareMap.get("requestname"); + } + } + + log.info("zt:"+zt); + log.info("cjrq:"+cjrq); + log.info("sqyy:"+sqyy); + log.info("wdfj:"+wdfj); + + String fzrid = "" ; + String fzrxm = "" ; + if(StringUtils.isNotBlank(departmentid)){ + Map fzrMap = columnsUtils.getColumsSubcompanyManager(departmentid,tenant_key); + if(fzrMap.containsKey("id")){ + fzrid = String.valueOf(fzrMap.get("id")); + } + + if(fzrMap.containsKey("username")){ + fzrxm = String.valueOf(fzrMap.get("username")); + } + } + + log.info("fzrid:"+fzrid); + log.info("fzrxm:"+fzrxm); + + recordMap.put("fzrid",fzrid); + recordMap.put("fzrxm",fzrxm); + + log.info("customername:"+customername); + recordMap.put("customername",customername); + recordMap.put("zt",zt); + + recordMap.put("cjrq",cjrq); + recordMap.put("sqyy",sqyy); + recordMap.put("wdfj",wdfj); + + recordMap.put("sqyqys",sqyqys); + recordMap.put("ztmc",ztmc); + recordMap.put("requestid",requestid); + recordMap.put("requestname",requestname); + } + data.put("prodata", recordList); + return WeaResult.success(data); + } + + /*** + * + * @param request + * @return + */ + @GetMapping("/getAllProjectData") + @WeaPermission(publicPermission = true) + public WeaResult getAllProjectData(HttpServletRequest request){ + List> list = columnsUtils.getdataBysql(); + return WeaResult.success(list); + } + + + /** + * 查询分组下的所有表名 + * @return + */ + @GetMapping("/queryTableData") + @WeaPermission(publicPermission = true) + public WeaResult queryTableData(HttpServletRequest request){ + + int pageNo = CommonUtils.getIntValue(request.getParameter("pageNo"),1); + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),20); + String tablename = CommonUtils.null2String(request.getParameter("tablename")); + String sourceType = CommonUtils.null2String(request.getParameter("sourceType")); + String groupId = CommonUtils.null2String(request.getParameter("groupId")); + String datakey = CommonUtils.null2String(request.getParameter("datakey")); + String datavalue = CommonUtils.null2String(request.getParameter("datavalue")); + + List> recordList = columnsUtils.queryTableData(sourceType,groupId,tablename,pageNo,pageSize,datakey,datavalue); + return WeaResult.success(recordList); + } + + + @GetMapping("/getprojectcount") + @WeaPermission(publicPermission = true) + public WeaResult getprojectcount(HttpServletRequest request){ + + String otherid = CommonUtils.null2String(request.getParameter("otherid")).trim(); + if(StringUtils.isBlank(otherid)){ + otherid = permissionEmployee; + } + + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),150); + + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + String employee_id = CommonUtils.null2String(employeeId); +// SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); +// String userid = CommonUtils.null2String(employee.getUserId()); + + Map data = new HashMap(); +// log.info("queryprojectlistdata3----:"+userid); + + String subcompanyids = "" ; + if(otherid.contains(employee_id)){ + subcompanyids = columnsUtils.getEmployeeByProjectTeam4Other(jtjname,qiyuesuoid,employee_id,tenant_key); + }else{ + subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + } + String baseSql = columnsUtils.queryProjectSql(subcompanyids,xm_mc,xm_xmjl,xm_bm,xm_id,xm_jg,xm_ysrq_start,xm_ysrq_end); + + int total = columnsUtils.queryProjectCount(baseSql); + + List> recordList = columnsUtils.getprojectcount(baseSql,pageSize); + log.info("queryprojectlist---recordList:"+recordList.size()); + + data.put("prodata", recordList); + data.put("totalSize",total); + data.put("total", total); + return WeaResult.success(data); + + + } + + +} diff --git a/src/main/java/com/weaver/seconddev/njprojectreport/controller/ProjectDownloadController.java b/src/main/java/com/weaver/seconddev/njprojectreport/controller/ProjectDownloadController.java new file mode 100644 index 0000000..ef2f3ac --- /dev/null +++ b/src/main/java/com/weaver/seconddev/njprojectreport/controller/ProjectDownloadController.java @@ -0,0 +1,425 @@ +package com.weaver.seconddev.njprojectreport.controller; + +import com.weaver.common.authority.annotation.WeaPermission; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.common.hrm.service.HrmCommonEmployeeService; +import com.weaver.seconddev.njprojectreport.util.ColumnsUtils; +import com.weaver.seconddev.njprojectreport.util.CommonUtils; +import com.weaver.teams.domain.user.SimpleEmployee; +import com.weaver.teams.security.context.UserContext; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +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 javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/api/secondev/njpmsdownload") +public class ProjectDownloadController { + + //日志 + private final Logger log = LoggerFactory.getLogger(ProjectColumnsController.class); + + @Autowired + private ColumnsUtils columnsUtils; + + @Autowired + private HrmCommonEmployeeService hrmCommonEmployeeService; + + public String tenant_key = "t7akvdnf84" ; + public String permissionEmployee = "9078080309085655917,6488080121949444347" ; + public String jtjname = "第三集团军"; + public String qiyuesuoid = "9081413488803384317"; + + @GetMapping(value = "/excledownload",produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) + @WeaPermission(publicPermission = true) + public void downloadExcel(HttpServletRequest request, HttpServletResponse response) throws Exception { + + String otherid = CommonUtils.null2String(request.getParameter("otherid")).trim(); + if(StringUtils.isBlank(otherid)){ + otherid = permissionEmployee; + } + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + log.info("downloadExcel----employeeId:"+employeeId); + String employee_id = CommonUtils.null2String(employeeId); + + SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); + String userid = CommonUtils.null2String(employee.getUserId()); + log.info("downloadExcel----userid:"+userid); + + String subcompanyids = "" ; + if(otherid.contains(employee_id)){ + subcompanyids = columnsUtils.getEmployeeByProjectTeam4Other(jtjname,qiyuesuoid,employee_id,tenant_key); + }else{ + subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + } + log.info("downloadExcel----2222:"+employee_id); + List> recordList = new ArrayList>(); + + log.info("downloadExcel----recordList:" + recordList.size()); + String name = "第三集团军知识分享报表.xlsx"; + String sheetName = "知识分享报表" ; + // 1.创建一个工作簿。 + SXSSFWorkbook workbook = new SXSSFWorkbook(); + // 2.创建一个工作表 + Sheet sheet = workbook.createSheet(sheetName); + // 3.创建行。 + List> headList = columnsUtils.getExcelHead(); + + + Row headRow = sheet.createRow(0); + for (int i = 0; i < headList.size(); i++) { + Map headData = headList.get(i); + Cell cell = headRow.createCell(i); + cell.setCellValue(headData.get("name")); + } + + if(StringUtils.isNotBlank(subcompanyids)) { + String baseSql = columnsUtils.queryProjectSql(subcompanyids, xm_mc, xm_xmjl, xm_bm, xm_id, xm_jg, xm_ysrq_start, xm_ysrq_end); + columnsUtils.queryProjectListByExcel(baseSql, tenant_key,jtjname,headList,sheet); + } + + response.reset(); + response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(name, "UTF-8")); + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + + OutputStream output = response.getOutputStream(); + workbook.write(output); + output.flush(); + output.close(); + workbook.dispose(); + } + + +// @ApiOperation(notes = "文件下载", value = "文件下载") +// @GetMapping("/downloadfile") +// public org.springframework.http.ResponseEntity downloadFile(HttpServletResponse response) { +// String fileName = null; // 文件名称的编码 +// InputStream in = null; +// OutputStream out = null; +// try { +// +// List> recordList = new ArrayList>(); +// log.info("downloadExcel----recordList:" + recordList.size()); +// String name = "第三集团军知识分享报表.xlsx"; +// String sheetName = "知识分享报表" ; +// // 1.创建一个工作簿。 +// SXSSFWorkbook workbook = new SXSSFWorkbook(); +// // 2.创建一个工作表 +// Sheet sheet = workbook.createSheet(sheetName); +// // 3.创建行。 +// List> headList = columnsUtils.getExcelHead(); +// +// Row headRow = sheet.createRow(0); +// for (int i = 0; i < headList.size(); i++) { +// Map headData = headList.get(i); +// Cell cell = headRow.createCell(i); +// cell.setCellValue(headData.get("name")); +// } +// +// for (int i = 0; i < recordList.size(); i++) { +// Row row = sheet.createRow(i+1); +// Map dataMap = recordList.get(i); +// System.out.println("i:"+i); +// +// for (int k = 0; k < headList.size(); k++) { +// Map headData = headList.get(k); +// String key = headData.get("key"); +// System.out.println("key:"+key); +// if(StringUtils.isNotBlank(key) && dataMap.containsKey(key)){ +// Cell cell = row.createCell(k); +// cell.setCellValue(CommonUtils.null2String(dataMap.get(key))); +// }else{ +// Cell cell = row.createCell(k); +// cell.setCellValue(""); +// } +// } +// } +// +// +// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); +// workbook.write(byteArrayOutputStream); +// +// +// byte[] buffer = byteArrayOutputStream.toByteArray(); +// InputStream inputStream = new ByteArrayInputStream(buffer); +// +// +// +// HttpHeaders headers = new HttpHeaders(); +// headers.add("Cache-Control", "no-cache, no-store, must-revalidate"); +// headers.add("Content-Disposition", "attachment; filename=" + fileName); +// headers.add("Pragma", "no-cache"); +// headers.add("Expires", "0"); +// headers.add("Last-Modified", new Date().toString()); +// headers.add("ETag", String.valueOf(System.currentTimeMillis())); +// return org.springframework.http.ResponseEntity +// .ok() +// .headers(headers) +// .contentType(MediaType.parseMediaType("application/octet-stream")) +// .); +// +// } catch (Exception e) { +// e.printStackTrace(); +// log.info("dfsId:{}下载文件失败,cause:{}",fielId,e); +// }finally { +// } +// return org.springframework.http.ResponseEntity.status(Integer.parseInt(MsgCode.DEFINED_ERROR.getCode())).build(); +// } + +// @GetMapping("/downloadFile2") +// public void downloadFile2(HttpServletResponse response) throws IOException { +// // 设置响应头,指定文件名 +// response.setHeader("Content-Disposition", "attachment; filename=file.txt"); +// +// // 获取文件输入流 +// InputStream inputStream = new FileInputStream("path/to/file.txt"); +// +// +// List> recordList = new ArrayList>(); +// +// log.info("downloadExcel----recordList:" + recordList.size()); +// String name = "第三集团军知识分享报表.xlsx"; +// String sheetName = "知识分享报表" ; +// // 1.创建一个工作簿。 +// SXSSFWorkbook workbook = new SXSSFWorkbook(); +// // 2.创建一个工作表 +// Sheet sheet = workbook.createSheet(sheetName); +// // 3.创建行。 +// List> headList = columnsUtils.getExcelHead(); +// +// Row headRow = sheet.createRow(0); +// for (int i = 0; i < headList.size(); i++) { +// Map headData = headList.get(i); +// Cell cell = headRow.createCell(i); +// cell.setCellValue(headData.get("name")); +// } +// +// for (int i = 0; i < recordList.size(); i++) { +// Row row = sheet.createRow(i+1); +// Map dataMap = recordList.get(i); +// System.out.println("i:"+i); +// +// for (int k = 0; k < headList.size(); k++) { +// Map headData = headList.get(k); +// String key = headData.get("key"); +// System.out.println("key:"+key); +// if(StringUtils.isNotBlank(key) && dataMap.containsKey(key)){ +// Cell cell = row.createCell(k); +// cell.setCellValue(CommonUtils.null2String(dataMap.get(key))); +// }else{ +// Cell cell = row.createCell(k); +// cell.setCellValue(""); +// } +// } +// } +// +// workbook. +// FileOutputStream fileOutputStream = new FileOutputStream(path + URLEncoder.encode(filename, "utf-8")+".xlsx"); +// // 输出 +// workbook.write(fileOutputStream); +// // 6.关闭流 +// fileOutputStream.close(); +// // 7.清除临时文件 +// ((SXSSFWorkbook) workbook).dispose(); +// +// +// // 创建StreamingResponseBody对象,将文件内容写入响应输出流 +// StreamingResponseBody responseBody = outputStream -> { +// byte[] buffer = new byte[1024]; +// int bytesRead; +// while ((bytesRead = inputStream.read(buffer)) != -1) { +// outputStream.write(buffer, 0, bytesRead); +// } +// inputStream.close(); +// }; +// +// // 返回StreamingResponseBody对象 +// response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); +// responseBody.writeTo(response.getOutputStream()); +// } + + + @GetMapping(value = "/excledownload2",produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) + @WeaPermission(publicPermission = true) + public void downloadExcel2(HttpServletRequest request, HttpServletResponse response) throws Exception { + + String otherid = CommonUtils.null2String(request.getParameter("otherid")).trim(); + if(StringUtils.isBlank(otherid)){ + otherid = permissionEmployee; + } + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + + + int pageNo = CommonUtils.getIntValue(request.getParameter("pageNo"),1); + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),20); + + Long employeeId = UserContext.getCurrentEmployeeId(); + log.info("downloadExcel----employeeId:"+employeeId); + String employee_id = CommonUtils.null2String(employeeId); + + SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); + String userid = CommonUtils.null2String(employee.getUserId()); + log.info("downloadExcel----userid:"+userid); + + String subcompanyids = "" ; + if(otherid.contains(employee_id)){ + subcompanyids = columnsUtils.getEmployeeByProjectTeam4Other(jtjname,qiyuesuoid,employee_id,tenant_key); + }else{ + subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + } + log.info("downloadExcel----2222:"+employee_id); + List> recordList = new ArrayList>(); + + log.info("downloadExcel----recordList:" + recordList.size()); + String name = "第三集团军知识分享报表.xlsx"; + String sheetName = "知识分享报表" ; + // 1.创建一个工作簿。 + SXSSFWorkbook workbook = new SXSSFWorkbook(); + // 2.创建一个工作表 + Sheet sheet = workbook.createSheet(sheetName); + // 3.创建行。 + List> headList = columnsUtils.getExcelHead(); + + + Row headRow = sheet.createRow(0); + for (int i = 0; i < headList.size(); i++) { + Map headData = headList.get(i); + Cell cell = headRow.createCell(i); + cell.setCellValue(headData.get("name")); + } + + if(StringUtils.isNotBlank(subcompanyids)) { + String baseSql = columnsUtils.queryProjectSql(subcompanyids, xm_mc, xm_xmjl, xm_bm, xm_id, xm_jg, xm_ysrq_start, xm_ysrq_end); + columnsUtils.queryProjectListByExcel2(baseSql, tenant_key,jtjname,headList,sheet,pageNo,pageSize); + } + + response.reset(); + response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(name, "UTF-8")); + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + + OutputStream output = response.getOutputStream(); + workbook.write(output); + output.flush(); + output.close(); + workbook.dispose(); + } + + + /** + * 获取项目数量 + * @param request + * @return + */ + @GetMapping("/getProjectListCount") + @WeaPermission(publicPermission = true) + public WeaResult getProjectListCount(HttpServletRequest request){ + + String otherid = CommonUtils.null2String(request.getParameter("otherid")).trim(); + if(StringUtils.isBlank(otherid)){ + otherid = permissionEmployee; + } + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + log.info("downloadExcel----employeeId:"+employeeId); + String employee_id = CommonUtils.null2String(employeeId); + + SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); + String userid = CommonUtils.null2String(employee.getUserId()); + log.info("downloadExcel----userid:"+userid); + + String subcompanyids = "" ; + if(otherid.contains(employee_id)){ + subcompanyids = columnsUtils.getEmployeeByProjectTeam4Other(jtjname,qiyuesuoid,employee_id,tenant_key); + }else{ + subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + } + log.info("downloadExcel----2222:"+employee_id); + List> dataList = new ArrayList>(); + int count = 0; + if(StringUtils.isNotBlank(subcompanyids)) { + String baseSql = columnsUtils.queryProjectSql(subcompanyids, xm_mc, xm_xmjl, xm_bm, xm_id, xm_jg, xm_ysrq_start, xm_ysrq_end); + count = columnsUtils.getProjectListCount(baseSql); + } + Map data = new HashMap(); + data.put("count",count); + return WeaResult.success(data); + } + + + @GetMapping("/getprojectlist") + @WeaPermission(publicPermission = true) + public WeaResult getprojectlist(HttpServletRequest request){ + + int pageNo = CommonUtils.getIntValue(request.getParameter("pageNo"),1); + int pageSize = CommonUtils.getIntValue(request.getParameter("pageSize"),20); + + String xm_id = CommonUtils.null2String(request.getParameter("xmid")).trim(); + String xm_mc = CommonUtils.null2String(request.getParameter("xmmc")).trim(); + String xm_xmjl = CommonUtils.null2String(request.getParameter("xmjl")).trim(); + String xm_bm = CommonUtils.null2String(request.getParameter("bm")).trim(); + String xm_jg = CommonUtils.null2String(request.getParameter("jg")).trim(); + String xm_ysrq_start = CommonUtils.null2String(request.getParameter("ysrq_start")).trim(); + String xm_ysrq_end = CommonUtils.null2String(request.getParameter("ysrq_end")).trim(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + String employee_id = CommonUtils.null2String(employeeId); + SimpleEmployee employee = hrmCommonEmployeeService.getEmployeeById(employeeId, tenant_key); + String userid = CommonUtils.null2String(employee.getUserId()); + + Map data = new HashMap(); + log.info("queryprojectlistdata3----:"+userid); + + String subcompanyids = columnsUtils.getEmployeeByProjectTeam(jtjname,qiyuesuoid,employee_id,tenant_key); + + String baseSql = columnsUtils.queryProjectSql(subcompanyids,xm_mc,xm_xmjl,xm_bm,xm_id,xm_jg,xm_ysrq_start,xm_ysrq_end); + + int total = columnsUtils.queryProjectCount(baseSql); + + data.put("count", total); + return WeaResult.success(data); + + } + + +} diff --git a/src/main/java/com/weaver/seconddev/njprojectreport/controller/ProjectRequestController.java b/src/main/java/com/weaver/seconddev/njprojectreport/controller/ProjectRequestController.java new file mode 100644 index 0000000..a1db36f --- /dev/null +++ b/src/main/java/com/weaver/seconddev/njprojectreport/controller/ProjectRequestController.java @@ -0,0 +1,199 @@ +package com.weaver.seconddev.njprojectreport.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.authority.annotation.WeaPermission; +import com.weaver.common.cache.tablecache.impl.ComInfoCache; +import com.weaver.project.service.RemoteMainlineService; +import com.weaver.teams.security.context.UserContext; +import com.weaver.workflow.common.util.OrgUtil; +import com.weaver.workflow.core.entity.publicApi.RequestPAResultMessageEntity; +import com.weaver.workflow.common.entity.org.WeaUser; +import com.weaver.workflow.common.framework.util.ServiceUtil; +import com.weaver.workflow.core.entity.publicApi.RequestPAResultEntity; +import com.weaver.workflow.core.services.RequestPAService; +import com.weaver.workflow.core.services.impl.RequestPAServiceImpl; +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.*; +import com.weaver.seconddev.njprojectreport.util.RequestUtil; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + + +@RestController +@RequestMapping("/api/secondev/njpmsrequest") +public class ProjectRequestController { + + //日志 + private final Logger log = LoggerFactory.getLogger(ProjectRequestController.class); + + public String tenant_key = "t7akvdnf84" ; + + /** + * + * @param request + * @return + */ + @RequestMapping({"/doCreateRequest"}) + @WeaPermission(publicPermission = true) + public RequestPAResultEntity doCreateRequest(HttpServletRequest request) { + + log.info("doCreateRequest"); + RequestPAResultEntity paResult = new RequestPAResultEntity(); + + Long employeeId = UserContext.getCurrentEmployeeId(); + String requestname = "验收项目知识分享流程超时未提交提醒" ; + String remark = "请尽快提交" ; + + String userId = request.getParameter("userId"); + String workflowId = request.getParameter("workflowId"); + String isnextflow = request.getParameter("isnextflow"); + String requestLevel= request.getParameter("requestLevel"); + String managerid = request.getParameter("managerid"); + String mainlineid = request.getParameter("mainlineid"); + + if(StringUtils.isBlank(requestLevel)){ + requestLevel = "0"; + } + if(StringUtils.isBlank(isnextflow)){ + isnextflow = "0"; + } + + log.info("doCreateRequest-userId:"+userId); + log.info("doCreateRequest-workflowId:"+workflowId); + log.info("doCreateRequest-isnextflow:"+isnextflow); + log.info("doCreateRequest-requestLevel:"+requestLevel); + + log.info("doCreateRequest-managerid:"+managerid); + log.info("doCreateRequest-mainlineid:"+mainlineid); + + if(StringUtils.isBlank(workflowId)){ + RequestPAResultMessageEntity resultMessage = new RequestPAResultMessageEntity(); + resultMessage.setErrcode("300"); + resultMessage.setErrmsg("获取创建的流程为空,无法提交"); + paResult.setMessage(resultMessage); + return paResult; + } + + if(StringUtils.isBlank(userId)){ + RequestPAResultMessageEntity resultMessage = new RequestPAResultMessageEntity(); + resultMessage.setErrcode("300"); + resultMessage.setErrmsg("获取创建人为空,无法提交"); + paResult.setMessage(resultMessage); + return paResult; + } + +// if(StringUtils.isBlank(managerid)){ +// RequestPAResultMessageEntity resultMessage = new RequestPAResultMessageEntity(); +// resultMessage.setErrcode("300"); +// resultMessage.setErrmsg("项目的项目经理为空,无法提交"); +// paResult.setMessage(resultMessage); +// return paResult; +// } +// +// if(StringUtils.isBlank(mainlineid)){ +// RequestPAResultMessageEntity resultMessage = new RequestPAResultMessageEntity(); +// resultMessage.setErrcode("300"); +// resultMessage.setErrmsg("项目编码空,无法提交"); +// paResult.setMessage(resultMessage); +// return paResult; +// } + + String managerSubcompanyId = "" ; + String mainlinename = "" ; + String username = ""; + +// if(StringUtils.isNotEmpty(userId)){ +// HrmEmployeeComInfo hrmEmployeeComInfo = comInfoCache.getCacheById(HrmEmployeeComInfo.class,userId) ; +// username = CommonUtils.null2String(hrmEmployeeComInfo.getUsername()+"") ; +// } +// +// if(StringUtils.isNotEmpty(managerid)){ +// HrmEmployeeComInfo hrmEmployeeComInfo = comInfoCache.getCacheById(HrmEmployeeComInfo.class,managerid) ; +// managerSubcompanyId = CommonUtils.null2String(hrmEmployeeComInfo.getSubcompanyId()+"") ; +// } + +// if(StringUtils.isNotEmpty(mainlineid)){ +// SimpleMainline simpleMainline = remoteMainlineService.get(Long.parseLong(mainlineid),tenant_key); +// log.info("simpleMainline:"+simpleMainline.toString()); +// Map recordMap = RequestUtil.getmainlinename(mainlineid,tenant_key); +// if(recordMap !=null && recordMap.size()>0){ +// mainlinename = CommonUtils.null2String(recordMap.get("name")); +// } +// } + + Map requestMap = new HashMap(); + requestMap.put("userId",userId); + requestMap.put("workflowId",workflowId); + requestMap.put("requestname",requestname); + requestMap.put("remark",remark); + requestMap.put("isnextflow",isnextflow); + requestMap.put("requestLevel",requestLevel); + + JSONObject formData = new JSONObject(); + + JSONArray dataDetails = new JSONArray(); + JSONObject dataDetail = new JSONObject(); + dataDetail.put("dataKey","resource_n"); + dataDetail.put("content",employeeId); + dataDetails.add(dataDetail); + +// dataDetail = new JSONObject(); +// dataDetail.put("dataKey","mutiresource"); +// dataDetail.put("content",managerid); +// dataDetails.add(dataDetail); + + dataDetail = new JSONObject(); + dataDetail.put("dataKey","fenbu"); + dataDetail.put("content",managerSubcompanyId); + dataDetails.add(dataDetail); + +// dataDetail = new JSONObject(); +// dataDetail.put("dataKey","Project"); +// dataDetail.put("content",mainlineid); +// dataDetails.add(dataDetail); + + dataDetail = new JSONObject(); + dataDetail.put("dataKey","description"); + dataDetail.put("content","1111"); + dataDetails.add(dataDetail); + + dataDetail = new JSONObject(); + dataDetail.put("dataKey","duohangwenbenhtml"); + dataDetail.put("content","

项目:"+mainlinename+" 未提交<第三集团军知识分享提交流程>,请务必尽快提交,如有疑问,请联系:"+username+"

"); + + dataDetails.add(dataDetail); + + formData.put("dataDetails",dataDetails); + requestMap.put("formData",formData); + + log.info("doCreateRequest-create:params:{}", JSON.toJSONString(requestMap)); + + WeaUser user = getUser(Long.parseLong(userId)); + RequestPAService paService = (RequestPAService) ServiceUtil.getService(RequestPAServiceImpl.class, user); + + return paService.create(requestMap); + + } + + /*** + * + * @param userId + * @return + */ + private WeaUser getUser(long userId) { + if (userId > 0L) { + WeaUser user = OrgUtil.getUser(userId); + if (user != null && user.getUserId() != null && user.getUserId() > 0L) { + return user; + } + } + return null; + } + +} diff --git a/src/main/java/com/weaver/seconddev/njprojectreport/test/test1.java b/src/main/java/com/weaver/seconddev/njprojectreport/test/test1.java new file mode 100644 index 0000000..658654f --- /dev/null +++ b/src/main/java/com/weaver/seconddev/njprojectreport/test/test1.java @@ -0,0 +1,118 @@ +package com.weaver.seconddev.njprojectreport.test; + +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.Month; +import java.time.YearMonth; +import java.time.format.DateTimeFormatter; +import java.time.temporal.TemporalAdjusters; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +public class test1 { + +// public static void main(String[] args) { +//// int count = 200; +//// int size = 30; +//// System.out.println((int)Math.ceil(count/(size*1.0))); +// +// LocalDate currentDate = LocalDate.now(); +// LocalDate lastMonthDate = currentDate.minusMonths(1); +// +// LocalDate firstDay = lastMonthDate.with(TemporalAdjusters.firstDayOfMonth()); +// // 获取当前月的最后一天 +// LocalDate lastDay = lastMonthDate.with(TemporalAdjusters.lastDayOfMonth()); +// +// // System.out.println(lastMonthDate.getMonth().toString()); +// +// System.out.println("firstDay:" + firstDay.toString()); +// System.out.println("lastDay:" + lastDay.toString()); +// +// } + + +// public static void main(String[] args) { +// +// Calendar calendar = Calendar.getInstance(); +// int year = calendar.get(Calendar.YEAR); +// int dayOfYear = 1 ; +// +// LocalDate localDate = LocalDate.now(); +// int year1 = localDate.getYear() ; +// System.out.println("year1 " + year1); +// +// 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(); +// System.out.println("startDay:"+startDay); +// System.out.println("endDay:"+endDay); +// } +// +// for (int i = 1; i <= 12; i++) { +// Month month = Month.of(i); +// LocalDate firstDayOfMonth = YearMonth.of(year, month).atDay(dayOfYear); // 计算当前月份的首日 +// LocalDate lastDayOfMonth = YearMonth.of(year, month).atEndOfMonth(); // 计算当前月份的最后一天 +// String yearMonth = ""; +// if(i<10){ +// yearMonth = year+"-0"+i ; +// }else{ +// yearMonth = year+"-"+i ; +// } +// +// System.out.println("月份 " + yearMonth + ":"); +// System.out.println("开始日期: " + firstDayOfMonth); +// System.out.println("结束日期: " + lastDayOfMonth); +// System.out.println("\n"); +// } +// +// +// List dataList = new ArrayList(); +// dataList.add("1"); +// dataList.add("2"); +// dataList.add("3"); +// dataList.add("4"); +// System.out.println(dataList.subList(0,2).toString()); +// +// } + + +// public static void main(String[] args) { +// +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); +// +// Calendar calendar = Calendar.getInstance(); +// for(int i=0;i<12;i++){ +// calendar.set(Calendar.MONTH, i); +// String dat = sdf.format(calendar.getTime()); +// System.out.println("dat:"+dat); +// +// +// } +// } + + + public static void main(String[] args) { + + + +// Calendar calendar = Calendar.getInstance(); +// int year = calendar.get(Calendar.YEAR); +// +// calendar.set(Calendar.MONTH,calendar.getActualMaximum(Calendar.MONTH)); +// calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); +// Date currYearLast = calendar.getTime(); +// String lastDayOfYear = new SimpleDateFormat("yyyy-MM-dd").format(currYearLast)+" 23:59:59"; +// System.out.println("本年度的最后一天: " + lastDayOfYear); + + LocalDate today = LocalDate.now(); // 获取当前日期 + LocalDate tenDaysBefore = today.minusDays(30); // 当前日期前10天 + System.out.println("10天前的日期是: " + tenDaysBefore.toString()); + + + } + +} + diff --git a/src/main/java/com/weaver/seconddev/njprojectreport/util/ColumnsUtils.java b/src/main/java/com/weaver/seconddev/njprojectreport/util/ColumnsUtils.java new file mode 100644 index 0000000..cef0736 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/njprojectreport/util/ColumnsUtils.java @@ -0,0 +1,1471 @@ +package com.weaver.seconddev.njprojectreport.util; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import java.io.IOException; +import java.util.*; + +@Component +public class ColumnsUtils { + + //日志 + private final Logger log = LoggerFactory.getLogger(ColumnsUtils.class); + + @Autowired + private DatabaseUtils databaseUtils; + + /*** + * + * @param customerid + * @return + */ + public Map getColumsCustomerName(String customerid,String tenant_key){ + Map recordMap = new HashMap(); + + String groupId = "weaver-crm-service"; + String sourceType = "LOGIC"; + + if(StringUtils.isNotBlank(customerid)){ + String sql =" select id,name from customer " + + " where id='"+customerid+"' " + + " and tenant_key='"+tenant_key+"' " + + " and deleted='0' " ; + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if(CollectionUtils.isNotEmpty(recordList)){ + recordMap = recordList.get(0); + } + } + return recordMap; + } + + /*** + * + * @param departmentid + * @return + */ + public Map getColumsSubcompanyManager(String departmentid,String tenant_key){ + Map recordMap = new HashMap(); + + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + + if(StringUtils.isNotBlank(departmentid)) { + String dataSql =" select id,username" + + " from eteams.employee " + + " where id in( " + + " select oxmfzr from uf_proj_teams where td1='" + departmentid + "' and tenant_key='"+tenant_key+"' and IS_DELETE='false'" + + " ) " + + " and tenant_key='"+tenant_key+"'\n" + + " and status='normal'" + + " and type='inside'"; + + log.info("getSubcompanyFzr--dataSql:"+dataSql); + + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(result); + if (CollectionUtils.isNotEmpty(recordList)) { + recordMap = recordList.get(0); + } + } + return recordMap; + } + + + /** + * + * @param mainline_id + * @return + */ + public Map getContractByMainlineId(String mainline_id,String tenant_key){ + + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + + Map recordMap = new HashMap() ; + if(StringUtils.isNotBlank(mainline_id)){ + String sql =" select group_concat(pc.hth) as hth "+ + " FROM uf_proj_contract pc "+ + " WHERE pc.tenant_key = '"+tenant_key+"'\n" + + " and pc.is_delete='false' " + + " and pc.glxm_p402 = '"+mainline_id+"' " ; + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if (CollectionUtils.isNotEmpty(recordList)) { + recordMap = recordList.get(0); + } + } + return recordMap; + } + + + /*** + * + * @param actual_val_date + * @param proj_amount + * @param mainlineid + * @return + */ + public Map getColumsProjectStatus(String actual_val_date,String proj_amount,String mainlineid,String tenant_key){ + Map recordMap = new HashMap(); + String groupId = "weaver-workflow-report-serviceworkflowreport"; + String sourceType = "LOGIC"; + + String cjrq = "" ; + String sqyy = "" ; + String wdfj = "" ; + String zt = "" ; + String ztmc = "" ; + String requestname = "" ; + String requestid = "" ; + String sqyqys = "" ; + try{ + log.info("getColumsProjectStatus---proj_amount:"+proj_amount); + double projamount = 0.0 ; + if(StringUtils.isNotBlank(proj_amount)){ + projamount = Double.parseDouble(proj_amount); + } + log.info("getColumsProjectStatus--projamount:"+projamount); + if(projamount < 50000){ + zt = "1"; + }else{ + if(StringUtils.isNotBlank(mainlineid)) + { + String dataSql =" select w.* from (\n" + + " select d.id,p.requestname,l.requestid,d.create_time\n" + + " from wfc_form_data l\n" + + " inner join formtable_main_3786 d on d.id = l.dataid\n" + + " inner join wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm='"+mainlineid+"'\n" + + " and d.TENANT_KEY='"+tenant_key+"'\n" + + " and d.IS_DELETE='false'\n" + + " and l.TENANT_KEY='"+tenant_key+"'\n" + + " and l.DELETE_TYPE=0\n" + + " and p.TENANT_KEY='"+tenant_key+"'\n" + + " and p.DELETE_TYPE=0\n" + + " union \n" + + " select d.id,p.requestname,l.requestid,d.CREATE_TIME\n" + + " from wfc_form_data l\n" + + " inner join formtable_main_961 d on d.id = l.dataid\n" + + " inner join wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm='"+mainlineid+"'\n" + + " and d.TENANT_KEY='"+tenant_key+"'\n" + + " and d.IS_DELETE='false'\n" + + " and l.TENANT_KEY='"+tenant_key+"'\n" + + " and l.DELETE_TYPE=0\n" + + " and p.TENANT_KEY='"+tenant_key+"'\n" + + " and p.DELETE_TYPE=0\n" + + " ) w\n" + + " order by w.id desc " ; + + log.info("dataSql:"+dataSql); + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(result); + if(recordList.size()>0){ + zt = "1"; + requestname = CommonUtils.null2String(recordList.get(0).get("requestname")); + requestid = CommonUtils.null2String(recordList.get(0).get("requestid")); + } + } + } + log.info("zt:"+zt); + + if(!"1".equals(zt)) + { + if(StringUtils.isNotBlank(mainlineid)) + { + String dataSql =" select p.requestname,l.requestid,d.zht,d.cjrq,d.sqyy,d.wdfj\n" + + " from wfc_form_data l\n" + + " inner join formtable_main_963 d on d.id = l.dataid\n" + + " inner join wfc_requestbase p on p.requestid = l.requestid\n" + + " where (d.xm='"+mainlineid+"' or d.xmid ='"+mainlineid+"')" + + " and d.tenant_key='"+tenant_key+"'\n" + + " and d.is_delete='false'\n" + + " and l.tenant_key='"+tenant_key+"'\n" + + " and l.delete_type=0\n" + + " and p.tenant_key='"+tenant_key+"'\n" + + " and p.delete_type=0\n" + + " order by d.id desc " ; + + log.info("dataSql:"+dataSql); + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(result); + log.info("recordList:"+recordList.size()); + + if(CollectionUtils.isNotEmpty(recordList)){ + + cjrq = CommonUtils.null2String(recordList.get(0).get("cjrq")); + sqyy = CommonUtils.null2String(recordList.get(0).get("sqyy")); + wdfj = CommonUtils.null2String(recordList.get(0).get("wdfj")); + + requestname = CommonUtils.null2String(recordList.get(0).get("requestname")); + requestid = CommonUtils.null2String(recordList.get(0).get("requestid")); + + String zht = CommonUtils.null2String(recordList.get(0).get("zht")); + if("".equals(zht) || "null".equals(zht) || zht == null){ + zht = "" ; + } + log.info("zht:"+zht); + if(StringUtils.isNotBlank(zht)){ + if("0".equals(zht)){ + zt = "1"; + }else if("1".equals(zht)){ + zt = "6"; + } + }else{ + zt = "5"; + } + log.info("zt:"+zt); + }else{ + log.info("actual_val_date:"+actual_val_date); + int yqys = 0; + + dataSql = " select p.requestname,l.requestid,ifnull(yqys,0) as yqys\n" + + " from wfc_form_data l\n" + + " inner join formtable_main_3785 d on d.id = l.dataid\n" + + " inner join wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm='"+mainlineid+"'\n" + + " and d.TENANT_KEY='"+tenant_key+"'\n" + + " and d.IS_DELETE='false'\n" + + " and l.TENANT_KEY='"+tenant_key+"'\n" + + " and l.DELETE_TYPE=0\n" + + " and p.TENANT_KEY='"+tenant_key+"'\n" + + " and p.DELETE_TYPE=0\n" + + " order by d.id desc " ; + + log.info("dataSql:"+dataSql); + + result = databaseUtils.execute(sourceType, groupId, dataSql); + recordList = databaseUtils.getDataSourceList(result); + log.info("recordList333:"+recordList.size()); + + if(CollectionUtils.isNotEmpty(recordList)) { + String yqys_ = CommonUtils.null2String(recordList.get(0).get("yqys"),"0"); + if(StringUtils.isNotBlank(yqys_)){ + yqys = CommonUtils.getIntValue(yqys_); + } + + if(StringUtils.isNotBlank(yqys_) && !"0".equals(yqys_)){ + sqyqys = yqys_+"" ; + } + + requestname = CommonUtils.null2String(recordList.get(0).get("requestname")); + requestid = CommonUtils.null2String(recordList.get(0).get("requestid")); + } + + dataSql = " select timestampdiff(month,date_add('"+actual_val_date+"', interval (2+"+yqys+") month),now()) as sjc " ; + log.info("dataSql:"+dataSql); + result = databaseUtils.execute(sourceType, groupId, dataSql); + recordList = databaseUtils.getDataSourceList(result); + log.info("recordList5555:"+recordList.size()); + + if(CollectionUtils.isNotEmpty(recordList)){ + String sjc = String.valueOf(recordList.get(0).get("sjc")); + log.info("sjc:"+sjc); + if(StringUtils.isNotBlank(sjc)){ + int sjczj = Integer.parseInt(sjc); + log.info("sjczj:"+sjczj); + if(sjczj<0){ + zt = "7"; + }else if(sjczj>=0 && sjczj<1){ + zt = "2"; + }else if(sjczj >=1 && sjczj <2){ + zt = "3"; + }else if(sjczj >= 2){ + zt = "4"; + } + } + } + } + } + } + }catch (Exception e){ + e.printStackTrace(); + log.info("getProjectShareStatus--e:"+e); + } + + recordMap.put("zt",zt); + + if("1".equals(zt)){ + ztmc = "无需提交" ; + }else if("2".equals(zt)){ + ztmc = "超期未交" ; + }else if("3".equals(zt)){ + ztmc = "超期1个月" ; + }else if("4".equals(zt)){ + ztmc = "超期2个月" ; + }else if("5".equals(zt)){ + ztmc = "已提交审核中" ; + }else if("6".equals(zt)){ + ztmc = "已完成提交" ; + } + + recordMap.put("sqyqys",sqyqys); + recordMap.put("ztmc",ztmc); + recordMap.put("cjrq",cjrq); + recordMap.put("sqyy",sqyy); + recordMap.put("wdfj",wdfj); + + recordMap.put("requestname",requestname); + recordMap.put("requestid",requestid); + + return recordMap; + } + + + /*** + * + * @param mainlineid + * @return + */ + public Map queryColumsRequestExtension(String mainlineid,String tenant_key){ + Map recordMap = new HashMap(); + String groupId = "weaver-workflow-report-serviceworkflowreport"; + String sourceType = "LOGIC"; + String sqyqys = "" ; + try { + if(StringUtils.isNotBlank(mainlineid)) + { + String dataSql =" select p.requestname,l.requestid,ifnull(yqys,0) as yqys\n" + + " from wfc_form_data l\n" + + " inner join formtable_main_3785 d on d.id = l.dataid\n" + + " inner join wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm='"+mainlineid+"'\n" + + " and d.tenant_key='"+tenant_key+"'\n" + + " and d.is_delete='false'\n" + + " and l.tenant_key='"+tenant_key+"'\n" + + " and l.delete_type=0\n" + + " and p.tenant_key='"+tenant_key+"'\n" + + " and p.delete_type=0\n" + + " order by d.id desc " ; + + log.info("dataSql:"+dataSql); + + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(result); + log.info("recordList333:"+recordList.size()); + if(CollectionUtils.isNotEmpty(recordList)) { + String yqys_ = String.valueOf(recordList.get(0).get("yqys")); + if(StringUtils.isNotBlank(yqys_) && !"0".equals(yqys_)){ + sqyqys = yqys_; + } + } + } + }catch (Exception e){ + + } + recordMap.put("sqyqys",sqyqys); + return recordMap; + } + + /*** + * + * @param mainlineid + * @return + */ + public Map getColumsRequestShare(String mainlineid,String tenant_key){ + Map recordMap = new HashMap(); + String groupId = "weaver-workflow-report-serviceworkflowreport"; + String sourceType = "LOGIC"; + String sqyy = "" ; + try { + if (StringUtils.isNotBlank(mainlineid)) { + String dataSql =" select d.sqyy " + + " from formtable_main_963 d \n" + + " where (d.xm='" + mainlineid + "' or d.xmid='"+mainlineid+"')" + + " and d.tenant_key='"+tenant_key+"'\n" + + " and d.is_delete='false'\n" + + " order by d.id desc "; + + log.info("dataSql:" + dataSql); + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(result); + log.info("recordList:" + recordList.size()); + if (CollectionUtils.isNotEmpty(recordList)) { + sqyy = CommonUtils.null2String(recordList.get(0).get("sqyy")); + } + } + }catch (Exception e){ + e.printStackTrace(); + log.info("Exception:"+e); + } + recordMap.put("sqyy",sqyy); + return recordMap; + } + + /*** + * + * @param mainlineid + * @return + */ + public Map getRequestDocument(String mainlineid,String tenant_key){ + Map recordMap = new HashMap(); + String groupId = "weaver-workflow-report-serviceworkflowreport"; + String sourceType = "LOGIC"; + List> recordList = new ArrayList>(); + try{ + if(StringUtils.isNotBlank(mainlineid)) { + + String dataSql =" select d.wdfj \n" + + " from formtable_main_963 d\n" + + " where (d.xm='"+mainlineid+"' or d.xmid='"+mainlineid+"')\n" + + " and d.TENANT_KEY='"+tenant_key+"'\n" + + " and d.IS_DELETE='false'\n" + + " order by d.id desc " ; + + log.info("dataSql:"+dataSql); + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + recordList = databaseUtils.getDataSourceList(result); + log.info("recordList:"+recordList.size()); + + for(int i=0;i dataMap = recordList.get(i); + String wdfj = CommonUtils.null2String(dataMap.get("wdfj")); + if(StringUtils.isNotBlank(wdfj)){ + + } + } + } + }catch (Exception e){ + e.printStackTrace(); + log.info("getProjectShareStatus--e:"+e); + } + + recordMap.put("docdata",recordList); + return recordMap; + } + + /*** + * + * @param docid + * @return + */ + public String getDocumentTitle(String docid,String tenant_key){ + String groupId = "weaver-workflow-report-serviceworkflowreport"; + String sourceType = "LOGIC"; + String titles = "" ; + if(StringUtils.isNotBlank(docid)){ + + } + return titles ; + } + + + /*** + * + * @param mainlineid + * @return + */ + public List> getColumsRequestId(String mainlineid,String tenant_key){ + List> recordList = new ArrayList>(); + Map result = new HashMap(); + + String groupId = "weaver-workflow-report-serviceworkflowreport"; + String sourceType = "LOGIC"; + try{ + if(StringUtils.isNotBlank(mainlineid)) + { + String dataSql =" select p.requestname,l.requestid " + + " from wfc_form_data l\n" + + " inner join formtable_main_963 d on d.id = l.dataid\n" + + " inner join wfc_requestbase p on p.requestid = l.requestid\n" + + " where (d.xm='"+mainlineid+"' or d.xmid='"+mainlineid+"')\n" + + " and d.tenant_key='"+tenant_key+"'\n" + + " and d.is_delete='false'\n" + + " and l.tenant_key='"+tenant_key+"'\n" + + " and l.delete_type=0\n" + + " and p.tenant_key='"+tenant_key+"'\n" + + " and p.delete_type=0 " + + " order by d.id desc " ; + + log.info("dataSql:"+dataSql); + result = databaseUtils.execute(sourceType, groupId, dataSql); + recordList = databaseUtils.getDataSourceList(result); + log.info("recordList:"+recordList.size()); + if(CollectionUtils.isEmpty(recordList)) { + + dataSql=" select p.requestname,l.requestid from wfc_form_data l\n" + + " inner join formtable_main_3786 d on d.id = l.dataid\n" + + " inner join wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm='"+mainlineid+"'\n" + + " and d.tenant_key='"+tenant_key+"'\n" + + " and d.is_delete='false'\n" + + " and l.tenant_key='"+tenant_key+"'\n" + + " and l.delete_type=0\n" + + " and p.tenant_key='"+tenant_key+"'\n" + + " and p.delete_type=0\n" + + " union \n" + + " select p.requestname,l.requestid from wfc_form_data l\n" + + " inner join formtable_main_961 d on d.id = l.dataid\n" + + " inner join wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm='"+mainlineid+"'\n" + + " and d.tenant_key='"+tenant_key+"'\n" + + " and d.is_delete='false'\n" + + " and l.tenant_key='"+tenant_key+"'\n" + + " and l.delete_type=0\n" + + " and p.tenant_key='"+tenant_key+"'\n" + + " and p.delete_type=0" ; + + log.info("dataSql:"+dataSql); + result = databaseUtils.execute(sourceType, groupId, dataSql); + recordList = databaseUtils.getDataSourceList(result); + if(CollectionUtils.isEmpty(recordList)) { + dataSql = " select p.requestname,l.requestid " + + " from wfc_form_data l\n" + + " inner join formtable_main_3785 d on d.id = l.dataid\n" + + " inner join wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm='"+mainlineid+"'\n" + + " and d.tenant_key='"+tenant_key+"'\n" + + " and d.is_delete='false'\n" + + " and l.tenant_key='"+tenant_key+"'\n" + + " and l.delete_type=0\n" + + " and p.tenant_key='"+tenant_key+"'\n" + + " and p.delete_type=0\n" ; + log.info("dataSql:"+dataSql); + result = databaseUtils.execute(sourceType, groupId, dataSql); + recordList = databaseUtils.getDataSourceList(result); + } + } + } + }catch (Exception e){ + e.printStackTrace(); + log.info("getProjectShareStatus--e:"+e); + } + return recordList; + } + + /*** + * + * @param baseSql + * @return + */ + public List> queryProjectList(String baseSql){ + + log.info("queryProjectList"); + + String groupId = "weaver-project-service"; + String sourceType = "LOGIC"; + + String dataSql =" select u.* from ( " + + " select w.*,(@i:=@i+1) as xh from (" + baseSql + " ) w,(select @i:=0) b " + + " ) u " ; + log.info("queryProjectList---dataSql:"+dataSql); + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(result); + return recordList; + } + + /*** + * + * @param baseSql + * @param pageNo + * @param pageSize + * @return + */ + public List> queryProjectListByPage(String baseSql,int pageNo,int pageSize){ + + String groupId = "weaver-project-service"; + String sourceType = "LOGIC"; + + log.info("queryProjectListByPage"); + + String dataSql =" select u.* from ( " + + " select w.*,(@i:=@i+1) as xh from (" + baseSql + " ) w,(select @i:=0) b " + + " ) u " ; + log.info("queryProjectListByPage---dataSql:"+dataSql); + dataSql = databaseUtils.getMysqlPagedSql(dataSql, pageNo, pageSize); + log.info("queryProjectListByPage---dataSql:"+dataSql); + Map result = databaseUtils.execute(sourceType, groupId, dataSql); +// result.entrySet().stream().forEach((Map.Entry entry) -> { +// log.info("ColumnsUtils-Key:"+entry.getKey()+" value:"+entry.getValue()); +// }); + + List> recordList = databaseUtils.getDataSourceList(result); + return recordList; + } + + + /*** + * + * @return + */ + public int queryProjectCount(String baseSql){ + + String groupId = "weaver-project-service"; + String sourceType = "LOGIC"; + + log.info("queryProjectCount"); + int count = 0; + String countSql =" select count(w.mainline_id) as cou from (" +baseSql+" ) w " ; + log.info("queryProjectListByPage---countSql:"+countSql); + Map result = databaseUtils.execute(sourceType, groupId, countSql); + + List> recordList = databaseUtils.getDataSourceList(result); + if(CollectionUtils.isNotEmpty(recordList)){ + String cou = CommonUtils.null2String(recordList.get(0).get("cou")); + if(StringUtils.isNotBlank(cou)){ + count = CommonUtils.getIntValue(cou); + } + } + + return count; + } + + /** + * + * @param subcompanyids + * @return + */ + public String queryProjectSql(String subcompanyids,String xm_mc,String xm_xmjl,String xm_bm,String xm_id,String xm_jg,String xm_ysrq_start,String xm_ysrq_end){ + String sqlwhere = "" ; + log.info("subcompanyids:"+subcompanyids); + if(StringUtils.isNotBlank(subcompanyids)){ + subcompanyids = "'"+subcompanyids.replace(",","','")+"'" ; + sqlwhere = " and d.subcompanyid in("+subcompanyids+")"; + } + +// if(StringUtils.isBlank(xm_nf)){ +// Calendar cal = Calendar.getInstance(); +// int year = cal.get(Calendar.YEAR); +// xm_nf = year+"-01-01"; +// }else{ +// xm_nf = xm_nf+"-01-01"; +// } + + if(StringUtils.isBlank(xm_ysrq_start)){ + Calendar cal = Calendar.getInstance(); + int year = cal.get(Calendar.YEAR); + xm_ysrq_start = year+"-01-01"; + } + + if(StringUtils.isBlank(xm_ysrq_end)){ + Calendar cal = Calendar.getInstance(); + int year = cal.get(Calendar.YEAR); + xm_ysrq_end = year+"-12-31"; + } + + if(StringUtils.isNotBlank(xm_ysrq_start)){ + sqlwhere += " and p.actual_val_date >='"+xm_ysrq_start+"'" ; + } + if(StringUtils.isNotBlank(xm_ysrq_end)){ + sqlwhere += " and p.actual_val_date <='"+xm_ysrq_end+"'" ; + } + + if(StringUtils.isNotBlank(xm_mc)){ + sqlwhere += " and m.name like '%"+xm_mc+"%'" ; + } + + if(StringUtils.isNotBlank(xm_xmjl)){ + xm_xmjl = "'"+xm_xmjl.replace(",","','")+"'"; + sqlwhere += " and m.manager in("+xm_xmjl+")" ; + } + + if(StringUtils.isNotBlank(xm_bm)){ + xm_bm = "'"+xm_bm.replace(",","','")+"'" ; + sqlwhere += " and d.id in("+xm_bm+")" ; + } + + if(StringUtils.isNotBlank(xm_jg)){ + xm_jg = "'"+xm_jg.replace(",","','")+"'" ; + sqlwhere += " and d.subcompanyid in("+xm_jg+")" ; + } + + if(StringUtils.isNotBlank(xm_id)){ + xm_id = "'"+xm_id.replace(",","','")+"'" ; + sqlwhere += " and m.id in("+xm_id+")" ; + } + + String dataSql =" select convert(m.id,char) as mainline_id,m.name as mainline_name,convert(m.manager,char) as manager_id,e.username as manager_name, "+ + " convert(d.id,char) as department_id,d.name as department_name,"+ + " convert(d.subcompanyid,char) as subcompany_id,d2.name as subcompany_name,"+ + " convert(p.rel_custom,char) as rel_custom,p.proj_amount,p.proj_approval_date,p.actual_val_date "+ + " from ec_customerservice.mainline m "+ + " inner join ec_customerservice.proj_pms_base p on p.id = m.id "+ + " inner join ec_customerservice.mainline_status_custom msc on msc.mainline_id = m.id "+ + " inner join ec_customerservice.mainline_cust_status mcs on msc.status_id = mcs.id "+ + " inner join eteams.employee e ON m.manager = e.id "+ + " inner join eteams.department d ON e.department = d.id "+ + " left join eteams.department d2 ON d.subcompanyid = d2.id "+ + " where m.group_id = '4527875868755238091' and m.delete_type = 0 " + + " and msc.delete_type = 0 "+ + " and mcs.name in ('验收','结案') and p.actual_val_date is not null "+ + " and e.status = 'normal' " + + " and e.type='inside' " +sqlwhere +" " + + " order by actual_val_date desc" ; + + log.info("queryProjectSql--dataSql:"+dataSql); + return dataSql; + } + + /*** + * + * @param jtjname + * @param qiyuesuoid + * @return + */ + public String getEmployeeByProjectTeam4Other(String jtjname,String qiyuesuoid,String userid,String tenant_key){ + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + String subcompanyids = ""; + List> recordList = new ArrayList>(); + if(StringUtils.isNotBlank(jtjname)){ + String countSql = " select subcompanyid from ( " + + " select distinct subcompanyid as subcompanyid" + + " from eteams.department " + + " where id in( " + + " select td1 from uf_proj_teams " + + " where jtj='"+jtjname+"' and tenant_key='"+tenant_key+"' and is_delete='false' " + + " ) " + + " and delete_type='0' " + + " and type='department' " + + " and is_delete='0'" + + " and tenant_key='"+tenant_key+"'" + + " ) p " + + " where p.subcompanyid !='"+qiyuesuoid+"'"; + + Map result = databaseUtils.execute(sourceType, groupId, countSql); + recordList = databaseUtils.getDataSourceList(result); + } + + for(int i=0;i recordMap = recordList.get(i); + String subcompanyid = String.valueOf(recordMap.get("subcompanyid")); + subcompanyids += StringUtils.isBlank(subcompanyids) ? subcompanyid : ","+subcompanyid ; + } + return subcompanyids; + } + + /*** + * + * @param jtjname + * @param qiyuesuoid + * @param userid + * @param tenant_key + * @return + */ + public String getEmployeeByProjectTeam(String jtjname,String qiyuesuoid,String userid,String tenant_key){ + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + String subcompanyids = ""; + List> recordList = new ArrayList>(); + if(StringUtils.isNotBlank(jtjname)){ + String countSql = " select subcompanyid from ( " + + " select distinct subcompanyid as subcompanyid" + + " from eteams.department " + + " where id in( " + + " select td1 from uf_proj_teams " + + " where jtj='"+jtjname+"' and tenant_key='"+tenant_key+"' and is_delete='false' " + + " and (oxmfzr='"+userid+"' or axmfzr='"+userid+"' or jtjxmfzr='"+userid+"')" + + " ) " + + " and DELETE_TYPE='0' " + + " and TYPE='department' " + + " and is_delete='0'" + + " and tenant_key='"+tenant_key+"'" + + " ) p " + + " where p.subcompanyid !='"+qiyuesuoid+"'"; + + Map result = databaseUtils.execute(sourceType, groupId, countSql); + recordList = databaseUtils.getDataSourceList(result); + } + + for(int i=0;i recordMap = recordList.get(i); + String subcompanyid = String.valueOf(recordMap.get("subcompanyid")); + subcompanyids += StringUtils.isBlank(subcompanyids) ? subcompanyid : ","+subcompanyid ; + } + return subcompanyids; + } + + + /*** + * + * @return + * @throws IOException + */ + public List> getExcelHead() throws IOException + { + + List> headList = new ArrayList>(); + Map headMap = new HashMap(); + headMap.put("key","xh"); + headMap.put("name","序号"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","xmbh"); + headMap.put("name","项目编号"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","xmmc"); + headMap.put("name","项目名称"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","hth"); + headMap.put("name","合同号"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","khmc"); + headMap.put("name","客户名称"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","xmje"); + headMap.put("name","项目金额"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","xmjl"); + headMap.put("name","项目经理"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","ysrq"); + headMap.put("name","验收日期"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","bm"); + headMap.put("name","部门"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","jg"); + headMap.put("name","机构"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","jgfzr"); + headMap.put("name","机构负责人"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","zt"); + headMap.put("name","状态"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","yqyf"); + headMap.put("name","延期月份"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","xglc"); + headMap.put("name","相关流程"); + headList.add(headMap); + + headMap = new HashMap(); + headMap.put("key","xglcmc"); + headMap.put("name","相关流程名称"); + headList.add(headMap); + return headList; + } + + + /*** + * + * @param baseSql + * @param tenant_key + * @return + */ + public List> queryProjectListByExcel(String baseSql, String tenant_key, String jtjname, List> headList, Sheet sheet){ + + String groupId = "weaver-project-service"; + String sourceType = "LOGIC"; + + log.info("queryProjectList"); + + String dataSql =" select u.* from ( " + + " select w.*,(@i:=@i+1) as xh from (" + baseSql + " ) w,(select @i:=0) b " + + " ) u " ; + + log.info("queryProjectList---dataSql:"+dataSql); + + dataSql = databaseUtils.getMysqlPagedSql(dataSql, 1, 20); + + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(result); + Map managerMap = getManagerData(tenant_key,jtjname); + try{ + for(int i=0;i recordMap = recordList.get(i); + String mainline_id = String.valueOf(recordMap.get("mainline_id")); + String mainline_name = String.valueOf(recordMap.get("mainline_name")); + String proj_amount = String.valueOf(recordMap.get("proj_amount")); + String manager_name = String.valueOf(recordMap.get("manager_name")); + String proj_approval_date = String.valueOf(recordMap.get("proj_approval_date")); + String subcompany_name = String.valueOf(recordMap.get("subcompany_name")); + String department_name = String.valueOf(recordMap.get("department_name")); + + String rel_custom = String.valueOf(recordMap.get("rel_custom")); + String departmentid = String.valueOf(recordMap.get("department_id")); + + log.info("mainline_id:"+mainline_id); + + String hths = ""; + + + String customername = rel_custom ; + + String fzrxm = "" ; + if(StringUtils.isNotBlank(departmentid)){ + if(managerMap.containsKey(departmentid)){ + fzrxm = managerMap.get(departmentid); + } + } + + recordMap.put("hth",hths); + recordMap.put("customername",customername); + recordMap.put("xmbh",mainline_id); + recordMap.put("xmmc",mainline_name); + recordMap.put("khmc",customername); + recordMap.put("xmje",proj_amount); + recordMap.put("xmjl",manager_name); + recordMap.put("ysrq",proj_approval_date); + recordMap.put("bm",department_name); + recordMap.put("jg",subcompany_name); + recordMap.put("jgfzr",fzrxm); + recordMap.put("fzrxm",fzrxm); + + + + Row row = sheet.createRow(i+1); + log.info("i:"+i); + for (int k = 0; k < headList.size(); k++) { + Map headData = headList.get(k); + String key = headData.get("key"); + log.info("key:"+key); + if(StringUtils.isNotBlank(key) && recordMap.containsKey(key)){ + Cell cell = row.createCell(k); + log.info("key22:"+CommonUtils.null2String(recordMap.get(key))); + cell.setCellValue(CommonUtils.null2String(recordMap.get(key))); + }else{ + Cell cell = row.createCell(k); + cell.setCellValue(""); + } + } + } + }catch (Exception e){ + log.info("e:"+e); + } + return recordList; + } + + /*** + * + * @param tenant_key + * @return + */ + public Map getCustomerData(String tenant_key){ + Map recordMap = new HashMap(); + + String groupId = "weaver-crm-service"; + String sourceType = "LOGIC"; + + String sql =" select id,name from customer " + + " where tenant_key='"+tenant_key+"' " + + " and deleted='0' " ; + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + log.info("getCustomerData--recordList:"+recordList.size()); + for(int i=0;i map = recordList.get(i); + String id = CommonUtils.null2String(map.get("id")); + String name = CommonUtils.null2String(map.get("name")); + recordMap.put(id,name); + } + return recordMap; + } + + /** + * + * @param tenant_key + * @return + */ + public Map getContractData(String tenant_key){ + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + + Map recordMap = new HashMap() ; + String sql =" select pc.glxm_p402,group_concat(pc.hth) as hth "+ + " FROM uf_proj_contract pc "+ + " WHERE pc.tenant_key = '"+tenant_key+"'\n" + + " and pc.is_delete='false' " + + " group by pc.glxm_p402 " ; + + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + log.info("getContractData--recordList:"+recordList.size()); + for(int i=0;i map = recordList.get(i); + String mainlineid = CommonUtils.null2String(map.get("mainlineid")); + String hth = CommonUtils.null2String(map.get("hth")); + recordMap.put(mainlineid,hth); + } + return recordMap; + } + + /*** + * + * @param tenant_key + * @param jtjname + * @return + */ + public Map getManagerData(String tenant_key,String jtjname){ + Map recordMap = new HashMap(); + + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + + String dataSql =" select id,username" + + " from eteams.employee " + + " where id in( " + + " select oxmfzr from uf_proj_teams where jtj='" + jtjname + "' and tenant_key='"+tenant_key+"' and IS_DELETE='false'" + + " ) " + + " and tenant_key='"+tenant_key+"'\n" + + " and status='normal'" + + " and type='inside'"; + + log.info("getSubcompanyManagerData--dataSql:"+dataSql); + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(result); + log.info("getSubcompanyManagerData--recordList:"+recordList.size()); + for(int i=0;i map = recordList.get(i); + String id = CommonUtils.null2String(map.get("id")); + String username = CommonUtils.null2String(map.get("username")); + recordMap.put(id,username); + } + return recordMap; + } + + + public List> getdataBysql(){ + + String groupId = "sqlNew"; + String sourceType = "ETEAMS"; + + log.info("queryProjectListByPage"); + String dataSql =" select \n" + + " convert(m.id, char) as mainline_id,\n" + + " m.name as mainline_name,\n" + + " convert(m.manager, char) as manager_id,\n" + + " e.username as manager_name,\n" + + " convert(d.id, char) as department_id,\n" + + " d.name as department_name,\n" + + " convert(d.subcompanyid, char) as subcompany_id,\n" + + " d2.name as subcompany_name,\n" + + " convert(p.rel_custom, char) as customer_id,\n" + + " p.proj_amount,\n" + + " p.proj_approval_date,\n" + + " p.actual_val_date,\n" + + " p1.hth,\n" + + " k.oxmfzr,\n" + + " k.axmfzr,\n" + + " k.jtjxmfzr,\n" + + " case when ((p3.requestid is not null and p3.flowstatus = '3') or p.proj_amount <50000 ) then '1' \n" + + " else \n" + + " case when p2.requestid is null then \n" + + " case when timestampdiff(month,date_add(p.actual_val_date, interval(2+ifnull(p4.yqys,0)) month),now()) <0 then \n" + + " '7'\n" + + " when timestampdiff(month,date_add(p.actual_val_date, interval(2+ifnull(p4.yqys,0)) month),now()) = 0 then \n" + + " '2'\n" + + " when timestampdiff(month,date_add(p.actual_val_date, interval(2+ifnull(p4.yqys,0)) month),now()) = 1 then \n" + + " '3'\n" + + " when timestampdiff(month,date_add(p.actual_val_date, interval(2+ifnull(p4.yqys,0)) month),now()) >= 2 then \n" + + " '4' \n" + + " else ''\n" + + " end\n" + + " else " + + " case \n" + + " when p2.flowstatus <> 3 then '5'\n" + + " when p2.flowstatus = 3 then '6'\n" + + " when p2.zht='0' then '1'\n" + + " when p2.zht='1' then '6'\n" + + " else ''\n" + + " end\n" + + " end \n" + + " end as zt \n" + + " from ec_customerservice.mainline m\n" + + " inner join ec_customerservice.proj_pms_base p on p.id = m.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" + + " inner join eteams.employee e ON m.manager = e.id\n" + + " inner join eteams.department d ON e.department = d.id\n" + + " left join ec_edcapp.uf_proj_teams k on d.id = k.td1\n" + + " left join eteams.department d2 ON d.subcompanyid = d2.id\n" + + " left join (\n" + + " select glxm_p402,group_concat(pc.hth) as hth\n" + + " from ec_edcapp.uf_proj_contract pc\n" + + " WHERE pc.tenant_key = 't7akvdnf84' and pc.is_delete = 'false'\n" + + " group by glxm_p402\n" + + " ) p1 on p1.glxm_p402 = m.id\n" + + " left join (\n" + + " SELECT k1.requestname,k1.requestid,k1.xm,k1.flowstatus,k1.zht\n" + + " from (\n" + + " select p.requestname,l.requestid,d.xm,p.flowstatus,d.zht,row_number() over(partition by d.xm order by d.create_time desc) as xh\n" + + " from ec_weaver_wfp_fusion.wfc_form_data l\n" + + " inner join ec_weaver_wfp_fusion.formtable_main_963 d on d.id = l.dataid\n" + + " inner join ec_weaver_wfp_fusion.wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm is not null \n" + + " and d.xm !=0\n" + + " and l.tenant_key = 't7akvdnf84' \n" + + " and d.tenant_key = 't7akvdnf84' \n" + + " and p.tenant_key = 't7akvdnf84' \n" + + " and l.DELETE_TYPE = '0'\n" + + " and d.IS_DELETE = 'false'\n" + + " and p.DELETE_TYPE = '0'\n" + + " ) k1 where k1.xh = 1\n" + + " ) p2 on p2.xm = m.id\n" + + " left join (\n" + + " select u2.xm,u2.requestname,u2.requestid,u2.flowstatus\n" + + " from (\n" + + " select w2.xm,w2.requestname,w2.requestid,w2.flowstatus,row_number() over(partition by w2.xm order by w2.create_time desc) as xh\n" + + " from ( \n" + + " select p.requestname,l.requestid,d.xm,d.create_time,p.flowstatus\n" + + " from ec_weaver_wfp_fusion.wfc_form_data l\n" + + " inner join ec_weaver_wfp_fusion.formtable_main_3786 d on d.id = l.dataid\n" + + " inner join ec_weaver_wfp_fusion.wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm is not null \n" + + " and d.xm !=0\n" + + " and l.tenant_key = 't7akvdnf84' \n" + + " and d.tenant_key = 't7akvdnf84' \n" + + " and p.tenant_key = 't7akvdnf84' \n" + + " and l.DELETE_TYPE = '0'\n" + + " and d.IS_DELETE = 'false'\n" + + " and p.DELETE_TYPE = '0'\n" + + " union\n" + + " select p.requestname,l.requestid,d.xm,d.create_time,p.flowstatus\n" + + " from ec_weaver_wfp_fusion.wfc_form_data l\n" + + " inner join ec_weaver_wfp_fusion.formtable_main_961 d on d.id = l.dataid\n" + + " inner join ec_weaver_wfp_fusion.wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm is not null \n" + + " and d.xm !=0\n" + + " and l.tenant_key = 't7akvdnf84' \n" + + " and d.tenant_key = 't7akvdnf84' \n" + + " and p.tenant_key = 't7akvdnf84' \n" + + " and l.DELETE_TYPE = '0'\n" + + " and d.IS_DELETE = 'false'\n" + + " and p.DELETE_TYPE = '0'\n" + + " ) w2\n" + + " ) u2 where u2.xh = 1\n" + + " ) p3 on p3.xm = m.id\n" + + " left join(\n" + + " select w3.xm, w3.requestid, w3.yqys,w3.flowstatus\n" + + " from (\n" + + " select d.xm,p.requestname,l.requestid,ifnull(yqys, 0) as yqys,p.flowstatus,\n" + + " row_number() over(partition by d.xm order by d.create_time desc ) as xh\n" + + " from ec_weaver_wfp_fusion.wfc_form_data l\n" + + " inner join ec_weaver_wfp_fusion.formtable_main_3785 d on d.id = l.dataid\n" + + " inner join ec_weaver_wfp_fusion.wfc_requestbase p on p.requestid = l.requestid\n" + + " where d.xm is not null \n" + + " and d.xm !=0\n" + + " and l.tenant_key = 't7akvdnf84' \n" + + " and d.tenant_key = 't7akvdnf84' \n" + + " and p.tenant_key = 't7akvdnf84' \n" + + " and l.DELETE_TYPE = '0'\n" + + " and d.IS_DELETE = 'false'\n" + + " and p.DELETE_TYPE = '0'\n" + + " ) w3 where w3.xh = 1\n" + + " ) p4 on p4.xm = m.id\n" + + "where\n" + + " m.group_id = '4527875868755238091'\n" + + " and m.delete_type = 0\n" + + " and msc.delete_type = 0\n" + + " and mcs.name in ('验收', '结案')\n" + + " and p.actual_val_date is not null\n" + + " and e.status = 'normal'\n" + + " and e.type = 'inside'\n" + + " and d.TYPE = 'department'\n" + + " and d.is_delete = '0'\n" + + " and m.tenant_key = 't7akvdnf84' \n" + + " and p.tenant_key = 't7akvdnf84' \n" + + " and msc.tenant_key = 't7akvdnf84' \n" + + " and msc.tenant_key = 't7akvdnf84' \n" + + " and e.tenant_key = 't7akvdnf84' \n" + + " and d.tenant_key = 't7akvdnf84' \n" + + " and d2.tenant_key = 't7akvdnf84' \n" + + " and d.subcompanyid !='9081413488803384317'\n" + + " and d.subcompanyid in(\n" + + " select id\n" + + " from eteams.department \n" + + " where type='subcompany'\n" + + " and (\n" + + " PARENT in('4969965898641618640','4969965907418519261','4969965916961119875','4969965914880119650')\n" + + " or id in('4969965898641618640','4969965907418519261','4969965916961119875','4969965914880119650')\n" + + " )\n" + + " and TENANT_KEY='t7akvdnf84'\n" + + " )\n" + + " order by actual_val_date desc" ; + + dataSql = databaseUtils.getMysqlPagedSql(dataSql, 1, 20); + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + List> recordList = databaseUtils.getDataSourceList(result); + return recordList; + } + + /** + * + * @param baseSql + * @param tenant_key + * @param jtjname + * @param headList + * @param sheet + * @return + */ + public List> queryProjectListByExcel2(String baseSql, String tenant_key, String jtjname, List> headList, Sheet sheet,int pageNo,int pageSize){ + + String groupId = "weaver-project-service"; + String sourceType = "LOGIC"; + + log.info("queryProjectList"); + String dataSql = baseSql ; + +// String dataSql =" select u.* from ( " + +// " select w.*,(@i:=@i+1) as xh from (" + baseSql + " ) w,(select @i:=0) b " + +// " ) u " ; + + log.info("queryProjectList---dataSql:"+dataSql); + dataSql = databaseUtils.getMysqlPagedSql(dataSql, pageNo, pageSize); + Map result = databaseUtils.execute(sourceType, groupId, dataSql); + + List> recordList = databaseUtils.getDataSourceList(result); +// Map customerMap = getCustomerData(tenant_key); +// Map contractMap = getContractData(tenant_key) ; +// Map managerMap = getManagerData(tenant_key,jtjname); + try{ + for(int i=0;i recordMap = recordList.get(i); + String mainline_id = String.valueOf(recordMap.get("mainline_id")); + String mainline_name = String.valueOf(recordMap.get("mainline_name")); + String proj_amount = String.valueOf(recordMap.get("proj_amount")); + String manager_name = String.valueOf(recordMap.get("manager_name")); + String proj_approval_date = String.valueOf(recordMap.get("proj_approval_date")); + String subcompany_name = String.valueOf(recordMap.get("subcompany_name")); + String department_name = String.valueOf(recordMap.get("department_name")); + String actual_val_date = String.valueOf(recordMap.get("actual_val_date")); + + String rel_custom = String.valueOf(recordMap.get("rel_custom")); + String departmentid = String.valueOf(recordMap.get("department_id")); + + log.info("mainline_id:"+mainline_id); + String hths = "" ; + if(StringUtils.isNotBlank(mainline_id)){ + Map contractMap = getContractByMainlineId(mainline_id,tenant_key); + if(contractMap.containsKey("hth")){ + hths = CommonUtils.null2String(contractMap.get("hth")); + } + } + log.info("hths:"+hths); + recordMap.put("hth",hths); + + + String customername = "" ; + if(StringUtils.isNotBlank(rel_custom)){ + Map customerMap = getColumsCustomerName(rel_custom,tenant_key); + if(customerMap.containsKey("name")){ + customername = CommonUtils.null2String(customerMap.get("name")); + } + } + + String fzrxm = "" ; + if(StringUtils.isNotBlank(departmentid)){ + Map managerMap = getColumsSubcompanyManager(departmentid,tenant_key); + if(managerMap.containsKey("username")){ + fzrxm = CommonUtils.null2String(managerMap.get("username")); + } + } + log.info("fzrxm:"+fzrxm); + + String zt = "" ; + String sqyy = "" ; + String cjrq = "" ; + String ztmc = "" ; + String sqyqys = ""; + String xglc = "" ; + String xglcmc = "" ; + + + if(StringUtils.isNotBlank(actual_val_date) && StringUtils.isNotBlank(mainline_id)){ + Map shareMap = getColumsProjectStatus(actual_val_date,proj_amount,mainline_id,tenant_key); + if(shareMap.containsKey("zt")){ + zt = shareMap.get("zt"); + } + + if(shareMap.containsKey("cjrq")){ + cjrq = shareMap.get("cjrq"); + } + + if(shareMap.containsKey("sqyy")){ + sqyy = shareMap.get("sqyy"); + } + + if(shareMap.containsKey("ztmc")){ + ztmc = shareMap.get("ztmc"); + } + + if(shareMap.containsKey("sqyqys")){ + sqyqys = shareMap.get("sqyqys"); + } + + if(shareMap.containsKey("requestid")){ + xglc = shareMap.get("requestid"); + } + + if(shareMap.containsKey("requestname")){ + xglcmc = shareMap.get("requestname"); + } + } + + log.info("ztmc:"+ztmc); + log.info("xglc:"+xglc); + log.info("xglcmc:"+xglcmc); + + + recordMap.put("xh",(pageNo-1)*pageSize+(i+1)); + recordMap.put("xmbh",mainline_id); + recordMap.put("xmmc",mainline_name); + recordMap.put("khmc",customername); + recordMap.put("xmje",proj_amount); + recordMap.put("xmjl",manager_name); + recordMap.put("ysrq",actual_val_date); + recordMap.put("yqyf",sqyqys); + recordMap.put("bm",department_name); + recordMap.put("jg",subcompany_name); + recordMap.put("jgfzr",fzrxm); + recordMap.put("zt",ztmc); + recordMap.put("xglc",xglc); + recordMap.put("xglcmc",xglcmc); + recordMap.put("fzrxm",fzrxm); + + Row row = sheet.createRow(i+1); + log.info("i:"+i); + for (int k = 0; k < headList.size(); k++) { + Map headData = headList.get(k); + String key = headData.get("key"); + log.info("key:"+key); + if(StringUtils.isNotBlank(key) && recordMap.containsKey(key)){ + Cell cell = row.createCell(k); + log.info("key22:"+CommonUtils.null2String(recordMap.get(key))); + cell.setCellValue(CommonUtils.null2String(recordMap.get(key))); + }else{ + Cell cell = row.createCell(k); + cell.setCellValue("222"); + } + } + } + }catch (Exception e){ + log.info("e:"+e); + } + return recordList; + } + + + public List> queryTableData(String sourceType,String groupId,String tablename,int pageNo,int pageSize,String datakey,String datavalue){ + + String where = "" ; + if(StringUtils.isNotBlank(datakey) && StringUtils.isNotBlank(datavalue)){ + if("null".equals(datavalue)){ + where += " and "+datakey+" is null" ; + }else if("notnull".equals(datavalue)){ + where += " and "+datakey+" is not null" ; + }else{ + where += " and "+datakey+" ='"+datavalue+"' " ; + } + } + String sql = " select * from "+tablename+" where 1=1 " + where; + sql = databaseUtils.getMysqlPagedSql(sql, pageNo, pageSize); + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + return recordList; + } + + + /** + * + * @param baseSql + * @return + */ + public int getProjectListCount(String baseSql){ + + String groupId = "weaver-project-service"; + String sourceType = "LOGIC"; + int count = 0; + List> dataList = new ArrayList>(); + + log.info("queryProjectList"); + String countSql =" select count(w.mainline_id) as cou from (" +baseSql+" ) w " ; + log.info("getProjectListCount---countSql:"+countSql); + Map result = databaseUtils.execute(sourceType, groupId, countSql); + List> recordList = databaseUtils.getDataSourceList(result); + + if(CollectionUtils.isNotEmpty(recordList)){ + String cou = "0"; + for(int i=0;i recordMap = recordList.get(i); + if(recordMap.containsKey("cou")){ + cou = CommonUtils.null2String(recordMap.get("cou")); + } + } + if(StringUtils.isNotBlank(cou)){ + count = CommonUtils.getIntValue(cou); + } + } + return count; + } + + + /*** + * + * @param baseSql + * @param pageSize + * @return + */ + public List> getprojectcount(String baseSql,int pageSize){ + + String groupId = "weaver-project-service"; + String sourceType = "LOGIC"; + int count = 0; + + log.info("queryProjectList"); + String countSql =" select count(w.mainline_id) as cou from (" +baseSql+" ) w " ; + log.info("getProjectListCount---countSql:"+countSql); + Map result = databaseUtils.execute(sourceType, groupId, countSql); + List> recordList = databaseUtils.getDataSourceList(result); + +// if(CollectionUtils.isNotEmpty(recordList)){ +// String cou = CommonUtils.null2String(recordList.get(0).get("cou")); +// if(StringUtils.isNotBlank(cou)){ +// count = CommonUtils.getIntValue(cou); +// } +// } +// List> dataList = new ArrayList>(); +// log.info("getProjectListCount---count:"+count); +// if(count>0){ +// int recordnum = (int)Math.ceil(count/(pageSize*1.0)); +// log.info("getProjectListCount---recordnum:"+recordnum); +// Map dataMap = null; +// for(int i=0;i(); +// dataMap.put("pageNo",d1); +// dataMap.put("pageNo",pageSize+""); +// dataList.add(dataMap); +// } +// } + return recordList; + } +} \ No newline at end of file diff --git a/src/main/java/com/weaver/seconddev/njprojectreport/util/CommonUtils.java b/src/main/java/com/weaver/seconddev/njprojectreport/util/CommonUtils.java new file mode 100644 index 0000000..df74107 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/njprojectreport/util/CommonUtils.java @@ -0,0 +1,395 @@ +package com.weaver.seconddev.njprojectreport.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/njprojectreport/util/DatabaseUtils.java b/src/main/java/com/weaver/seconddev/njprojectreport/util/DatabaseUtils.java new file mode 100644 index 0000000..5cd17c7 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/njprojectreport/util/DatabaseUtils.java @@ -0,0 +1,297 @@ +package com.weaver.seconddev.njprojectreport.util; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import com.weaver.ebuilder.datasource.api.entity.SqlParamEntity; +import com.weaver.ebuilder.datasource.api.enums.SqlParamType; +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(); + } + + + public Map executeForQuery(String sourceType, String groupId, String sql,List sqlparam) { + //执行sql 参数sourceType groupId sql sqlparam + ExecuteSqlEntity executeSqlEntity = new ExecuteSqlEntity(); + executeSqlEntity.setSql(base64(sql)); + executeSqlEntity.setGroupId(groupId); + executeSqlEntity.setSourceType(SourceType.valueOf(sourceType)); + executeSqlEntity.setParams(sqlparam); + return dataSetService.executeSql(executeSqlEntity); + } + + + + /** + * 获取sql入参 + * @param list + * @return + */ + public List getSqlParamEntity(List list){ + List sqlparam = new ArrayList(); + for (String str : list){ + SqlParamEntity sqlParamEntity = new SqlParamEntity(); + sqlParamEntity.setParamType(SqlParamType.VARCHAR); + sqlParamEntity.setValue(str); + sqlparam.add(sqlParamEntity); + } + return sqlparam; + } + +} diff --git a/src/main/java/com/weaver/seconddev/njprojectreport/util/RequestUtil.java b/src/main/java/com/weaver/seconddev/njprojectreport/util/RequestUtil.java new file mode 100644 index 0000000..66c22f9 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/njprojectreport/util/RequestUtil.java @@ -0,0 +1,35 @@ +package com.weaver.seconddev.njprojectreport.util; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class RequestUtil { + + @Autowired + private DatabaseUtils databaseUtils; + + public Map getmainlinename(String mainlineid, String tenant_key){ + Map recordMap = new HashMap(); + String groupId = "weaver-crm-service"; + String sourceType = "LOGIC"; + if(StringUtils.isNotBlank(mainlineid)){ + String sql =" select id,name from mainline " + + " where id='"+mainlineid+"' " + + " and tenant_key='"+tenant_key+"' " + + " and delete_type='0' " ; + Map result = databaseUtils.execute(sourceType, groupId, sql); + List> recordList = databaseUtils.getDataSourceList(result); + if(CollectionUtils.isNotEmpty(recordList)){ + recordMap = recordList.get(0); + } + } + return recordMap; + } +}