|
@@ -10015,4 +10015,72 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
return new HttpRespMsg();
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg exportListByState(Integer state, Integer departmentId, Integer projectId, String date, String startDate, String endDate, String userId, String auditUserId, HttpServletRequest request) throws Exception {
|
|
|
+ HttpRespMsg listByState = getListByState(state, departmentId, projectId, date, startDate, endDate, userId, auditUserId, request);
|
|
|
+ Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
|
|
|
+ CompanyDingding dingding = companyDingdingService.getOne(new QueryWrapper<CompanyDingding>().eq("company_id", companyId));
|
|
|
+ List<Map<String, Object>> nameList = (List<Map<String, Object>>) listByState.getData();
|
|
|
+ List<String> titleList=new ArrayList<>();
|
|
|
+
|
|
|
+ //针对赛元微电子的导出,以后如果有其他公司也需要这样的导出,可以在这里加入判断
|
|
|
+ titleList.add("姓名");
|
|
|
+ titleList.add("部门");
|
|
|
+ titleList.add("日期");
|
|
|
+ titleList.add("考勤时长(h)");
|
|
|
+ titleList.add("项目工时");
|
|
|
+ titleList.add("事项");
|
|
|
+ titleList.add("状态");
|
|
|
+ //添加数据
|
|
|
+ List<List<String>> dataList=new ArrayList<>();
|
|
|
+ dataList.add(titleList);
|
|
|
+ for (Map<String, Object> map : nameList) {
|
|
|
+ List<String> item=new ArrayList<>();
|
|
|
+ if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
+ item.add("$userName="+String.valueOf(map.get("corpwxUserId"))+"$");
|
|
|
+ item.add("$departmentName="+String.valueOf(map.get("corpwxDeptId"))+"$");
|
|
|
+ }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
|
|
|
+ item.add("$userName="+String.valueOf(map.get("name"))+"$");
|
|
|
+ item.add("$departmentName="+String.valueOf(map.get("departmentName"))+"$");
|
|
|
+ }else {
|
|
|
+ item.add(String.valueOf(map.get("name")));
|
|
|
+ item.add(String.valueOf(map.get("departmentName")));
|
|
|
+ }
|
|
|
+ item.add(String.valueOf(map.get("dateStr")));
|
|
|
+ item.add(String.valueOf(map.get("cardHours")));
|
|
|
+ List<Map<String, Object>> workProjectList = (List<Map<String, Object>>) map.get("data");
|
|
|
+ String workStr = "";
|
|
|
+ String workContent = "";
|
|
|
+ String projAuditor = "";
|
|
|
+ if(workProjectList.size()>0) {
|
|
|
+ for (int i = 0; i < workProjectList.size(); i++) {
|
|
|
+ Map<String, Object> workProject = workProjectList.get(i);
|
|
|
+ if (i == 0) {
|
|
|
+ workContent = String.valueOf(workProject.get("content"));
|
|
|
+ }
|
|
|
+ workStr += workProject.get("project") + "(" + workProject.get("time") + "h),";
|
|
|
+ String aud = String.valueOf(workProject.get("projectAuditorName"));
|
|
|
+ if (!projAuditor.contains(aud)) {
|
|
|
+ projAuditor += aud + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ workStr = workStr.substring(0, workStr.length() - 1);
|
|
|
+ projAuditor = projAuditor.substring(0, projAuditor.length() - 1);
|
|
|
+ }
|
|
|
+ item.add(workStr);
|
|
|
+ item.add(workContent);
|
|
|
+ if (((Integer)map.get("isDeptAudit")) == 0) {
|
|
|
+ item.add("待部门主管("+projAuditor+")审核");
|
|
|
+ } else {
|
|
|
+ item.add("待"+map.get("auditDeptName")+"("+map.get("deptAuditorName")+")审核");
|
|
|
+ }
|
|
|
+
|
|
|
+ dataList.add(item);
|
|
|
+ }
|
|
|
+ //通过excel导出
|
|
|
+ String fileName="待审核日报列表_"+System.currentTimeMillis();
|
|
|
+ return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,dingding,fileName,dataList,path);
|
|
|
+ }
|
|
|
}
|