Browse Source

相关人员 部门导出修改

yurk 2 years ago
parent
commit
2e53972d20
23 changed files with 469 additions and 193 deletions
  1. 5 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/FinanceController.java
  2. 6 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectRequirementController.java
  3. 3 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectStageController.java
  4. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  5. 5 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserCorpwxTimeController.java
  6. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/TimelinessRateVO.java
  7. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/UserDailyWorkItem.java
  8. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/UserMonthWork.java
  9. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  10. 27 13
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java
  11. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExcelExportServiceImpl.java
  12. 30 9
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java
  13. 16 8
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/LeaveSheetServiceImpl.java
  14. 227 60
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  15. 8 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProviderInfoServiceImpl.java
  16. 8 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportExtraDegreeServiceImpl.java
  17. 103 15
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  18. 8 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/SimpleReportServiceImpl.java
  19. 1 53
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/ExcelUtil.java
  20. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ParticipationMapper.xml
  21. 9 8
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml
  22. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  23. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml

+ 5 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/FinanceController.java

@@ -7,6 +7,7 @@ import com.management.platform.mapper.CompanyMapper;
 import com.management.platform.mapper.FinanceTblcuscolMapper;
 import com.management.platform.mapper.TimeTypeMapper;
 import com.management.platform.mapper.WxCorpInfoMapper;
+import com.management.platform.service.ExcelExportService;
 import com.management.platform.service.FinanceFixedcolnameService;
 import com.management.platform.service.FinanceService;
 import com.management.platform.util.ExcelUtil;
@@ -51,6 +52,8 @@ public class FinanceController {
     private TimeTypeMapper timeTypeMapper;
     @Resource
     private WxCorpInfoMapper wxCorpInfoMapper;
+    @Resource
+    private ExcelExportService excelExportService;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -123,7 +126,7 @@ public class FinanceController {
      * @return
      */
     @RequestMapping("/getTemplate")
-    public HttpRespMsg getTemplate(Integer companyId) {
+    public HttpRespMsg getTemplate(Integer companyId) throws Exception {
         List<FinanceTblcuscol> list = financeTblcuscolMapper.selectList(new QueryWrapper<FinanceTblcuscol>().eq("company_id", companyId));
         HttpRespMsg msg = new HttpRespMsg();
         FinanceFixedcolname item = financeFixedcolnameService.getById(companyId);
@@ -155,9 +158,7 @@ public class FinanceController {
         allList.add(heads);
         //String fileName = company.getCompanyName()+"_财务人员成本模板";
         String fileName = MessageUtils.message("fileName.financialCost",company.getCompanyName());
-        msg.data = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, allList, path);
-
-        return msg;
+        return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo, fileName, allList, path);
     }
     @RequestMapping("/batchRemove")
     public HttpRespMsg batchRemove(String ids){

+ 6 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectRequirementController.java

@@ -4,6 +4,7 @@ package com.management.platform.controller;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
+import com.management.platform.service.ExcelExportService;
 import com.management.platform.service.ProjectRequirementService;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
@@ -61,6 +62,8 @@ public class ProjectRequirementController {
     private GroupParticipatorMapper groupParticipatorMapper;
     @Resource
     private WxCorpInfoMapper wxCorpInfoMapper;
+    @Resource
+    private ExcelExportService excelExportService;
     @RequestMapping("/addOrMod")
     public HttpRespMsg addOrMod(ProjectRequirement record) {
         HttpRespMsg msg = new HttpRespMsg();
@@ -115,7 +118,7 @@ public class ProjectRequirementController {
         return msg;
     }
     @RequestMapping("/exportData")
-    public HttpRespMsg exportData(Integer projectId,String groupName){
+    public HttpRespMsg exportData(Integer projectId,String groupName) throws Exception {
         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("TOKEN")).getCompanyId();
@@ -161,7 +164,7 @@ public class ProjectRequirementController {
             String userString = corpwxUseridList.toString();
             resultData.add(pr.getProjectCode());
             resultData.add(pr.getProjectName());
-            if(wxCorpInfo.getSaasSyncContact()==1){
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
                 resultData.add(userString.replaceAll("\\[","").replaceAll("]",""));
             }else {
                 resultData.add(pr.getActiveUsers());
@@ -193,9 +196,7 @@ public class ProjectRequirementController {
         //生成excel文件导出
         //String fileName = "资源需求统计报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.resourceDemand",System.currentTimeMillis());
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-        httpRespMsg.data=resp;
-        return httpRespMsg;
+        return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo, fileName, dataList, path);
     }
     @RequestMapping("/importData")
     public HttpRespMsg importData(MultipartFile multipartFile){

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectStageController.java

@@ -48,6 +48,9 @@ public class ProjectStageController {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         projectStage.setCompanyId(companyId);
+        if(projectStage.getProjectStageName().equals("")){
+            httpRespMsg.setError(MessageUtils.message("name.nullNameError"));
+        }
         if(projectStage.getId()!=null){
             int cut = projectStageService.count(new QueryWrapper<ProjectStage>().eq("project_stage_name", projectStage.getProjectStageName()).eq("company_id",companyId).ne("id",projectStage.getId()));
             if(cut>0){

+ 3 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -1428,9 +1428,9 @@ public class ReportController {
     }
 
     //todo 获取成本数据 上传到 第三方
-    @RequestMapping("/getUploadThirdReportData")
-    public HttpRespMsg getUploadThirdReportData(String yearMonth){
-        return reportService.getUploadThirdReportData(yearMonth,request);
+    @RequestMapping("/uploadThirdReportData")
+    public HttpRespMsg uploadThirdReportData(String yearMonth){
+        return reportService.uploadThirdReportData(yearMonth,request);
     }
 }
 

+ 5 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserCorpwxTimeController.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.management.platform.entity.*;
 import com.management.platform.entity.vo.SysRichFunction;
 import com.management.platform.mapper.*;
+import com.management.platform.service.ExcelExportService;
 import com.management.platform.service.ReportService;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
@@ -64,6 +65,8 @@ public class UserCorpwxTimeController {
     SysFunctionMapper sysFunctionMapper;
     @Resource
     WxCorpInfoMapper wxCorpInfoMapper;
+    @Resource
+    ExcelExportService excelExportService;
 
     @RequestMapping("/getMyDeptMembsData")
     public HttpRespMsg getMyDeptMembsData(String startDate, String endDate) {
@@ -225,7 +228,7 @@ public class UserCorpwxTimeController {
 
     //导出带考勤数据的模板
     @RequestMapping("/exportCheckInExcel")
-    public HttpRespMsg exportCheckInExcel(String startDate, String endDate) {
+    public HttpRespMsg exportCheckInExcel(String startDate, String endDate) throws Exception {
         HttpRespMsg msg = new HttpRespMsg();
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
@@ -298,8 +301,7 @@ public class UserCorpwxTimeController {
         }
         //fileName += "_人员工时统计模板"+startDate+"至"+endDate;
         fileName += MessageUtils.message("fileName.workHour",startDate,endDate);
-        msg.data = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, allData, path);
-        return msg;
+        return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo, fileName, allData, path);
     }
 }
 

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/TimelinessRateVO.java

@@ -12,6 +12,7 @@ import java.util.Map;
 @EqualsAndHashCode(callSuper = false)
 public class TimelinessRateVO {
     private String userName;
+    private String corpwxUserId;
     private String departmentName;
     private String timelinessRate;
     private String jobNumber;

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/UserDailyWorkItem.java

@@ -6,6 +6,8 @@ public class UserDailyWorkItem {
     public String department;
     public String name;
     private String inactiveDate;
+    public String corpwxUserId;
+    public Integer corpwxDeptId;
     public String cardTime;
     public String status;
 }

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/UserMonthWork.java

@@ -9,5 +9,6 @@ public class UserMonthWork {
     public String departmentName;
     public String inactiveDate;
     public String corpwxUserId;
+    public String corpwxDeptId;
     public List<Map<String, Object>> worktimeList;
 }

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java

@@ -93,5 +93,5 @@ public interface ReportService extends IService<Report> {
 
     HttpRespMsg getProcessErrorData();
 
-    HttpRespMsg getUploadThirdReportData(String yearMonth,HttpServletRequest request);
+    HttpRespMsg uploadThirdReportData(String yearMonth,HttpServletRequest request);
 }

+ 27 - 13
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -11,6 +11,7 @@ import com.management.platform.entity.vo.DepartmentVO;
 import com.management.platform.entity.vo.SysRichFunction;
 import com.management.platform.mapper.*;
 import com.management.platform.service.DepartmentService;
+import com.management.platform.service.ExcelExportService;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.ListUtil;
@@ -69,6 +70,8 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
     private DepartmentOtherManagerMapper departmentOtherManagerMapper;
     @Resource
     private WxCorpInfoMapper wxCorpInfoMapper;
+    @Resource
+    private ExcelExportService excelExportService;
 
     @Value("${corpId}")
     private String corpId;
@@ -653,7 +656,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                     dataMap.put("time", time);
                     tempList.add(dataMap);
                 } else {
-                    if(wxCorpInfo.getSaasSyncContact()==1){
+                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
                         names.add("$userName="+(String)map.get("corpwxUseid")+"$");
                     }else {
                         names.add((String)map.get("user"));
@@ -749,9 +752,11 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             //生成excel文件导出
             //String fileName = "人员成本统计_"+System.currentTimeMillis();
             String fileName = MessageUtils.message("fileName.costStatistics",System.currentTimeMillis());
-            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-
-            httpRespMsg.data = resp;
+            try {
+                return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo, fileName, dataList, path);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         } catch (NullPointerException e) {
             //httpRespMsg.setError("验证失败");
             httpRespMsg.setError(MessageUtils.message("access.verificationError"));
@@ -993,9 +998,11 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             //生成excel文件导出
             //String fileName = timeType.getCustomDataName() + "统计_"+System.currentTimeMillis();
             String fileName = MessageUtils.message("fileName.statistics",timeType.getCustomDataName(),System.currentTimeMillis());
-            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
-
-            httpRespMsg.data = resp;
+            try {
+                return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo, fileName, allList, path);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         } catch (NullPointerException e) {
             e.printStackTrace();
             //httpRespMsg.setError("验证失败");
@@ -1057,9 +1064,9 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             Double totalCost = 0.0;
             for (Map<String, Object> map : list) {
 
-                if (tempMap.containsKey(wxCorpInfo.getSaasSyncContact()==1?map.get("corpwxUserid"):map.get("user"))) {
+                if (tempMap.containsKey(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1?map.get("corpwxUserid"):map.get("user"))) {
                     //这个名字已经装进数组中了
-                    List<Map<String, Object>> tempList = tempMap.get(wxCorpInfo.getSaasSyncContact()==1?map.get("corpwxUserid"):map.get("user"));
+                    List<Map<String, Object>> tempList = tempMap.get(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1?map.get("corpwxUserid"):map.get("user"));
                     Map<String, Object> dataMap = new HashMap<>();
                     dataMap.put("project", map.get("project"));
                     Double cost = (Double) map.getOrDefault("cost", 0);
@@ -1082,7 +1089,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                         dataMap.put("cost", cost);
                         tempList.add(dataMap);
                     }
-                    tempMap.put((String) (wxCorpInfo.getSaasSyncContact()==1?map.get("corpwxUserid"):map.get("user")), tempList);
+                    tempMap.put((String) (wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1?map.get("corpwxUserid"):map.get("user")), tempList);
                 }
             }
             Map<String, Object> finalMap = new HashMap<>();
@@ -1156,7 +1163,11 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             BigDecimal bigDecimal=new BigDecimal(0);
             for (DepartmentMasterVO departmentMasterVO : costList) {
                 List<String> item=new ArrayList<>();
-                item.add(departmentMasterVO.getDepartmentName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    item.add("$userName="+(departmentMasterVO.getCorpwxDeptid()==null?"":departmentMasterVO.getCorpwxDeptid())+"$");
+                }else {
+                    item.add(departmentMasterVO.getDepartmentName());
+                }
                 if(!costList.stream().anyMatch(ct->ct.getCostTime()==null)){
                     item.add(String.valueOf(departmentMasterVO.getCostTime()));
                     bigDecimal=bigDecimal.add(BigDecimal.valueOf(departmentMasterVO.getCostTime()));
@@ -1179,8 +1190,11 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             //生成excel文件导出
             //String fileName = "部门工时统计_"+System.currentTimeMillis();
             String fileName = MessageUtils.message("fileName.depHours",System.currentTimeMillis());
-            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-            httpRespMsg.data = resp;
+            try {
+                return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo, fileName, dataList, path);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         } catch (NullPointerException e) {
             e.printStackTrace();
             //httpRespMsg.setError("验证失败");

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExcelExportServiceImpl.java

@@ -55,7 +55,7 @@ public class ExcelExportServiceImpl implements ExcelExportService {
         String result = "系统提示:Excel文件导出成功!";
         String fileName = title + ".xls";
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(null, title, list, downloadPath);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(title, list, downloadPath);
         String fileUrlSuffix = title + ".xls";
         if(wxCorpInfo != null && wxCorpInfo.getSaasSyncContact() == 1){
             String mediaId = wxCorpInfoService.getTranslationMediaId(fileUrlSuffix);

+ 30 - 9
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java

@@ -77,6 +77,8 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
     FinanceProjectsService financeProjectsService;
     @Resource
     WxCorpInfoMapper wxCorpInfoMapper;
+    @Resource
+    ExcelExportService excelExportService;
 
     @Resource
     private ProjectMapper projectMapper;
@@ -890,7 +892,11 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                             BigDecimal field1 = userFinance.getCustomField1() == null? new BigDecimal(0):userFinance.getCustomField1().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                             BigDecimal field2 = userFinance.getCustomField2() == null? new BigDecimal(0):userFinance.getCustomField2().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                             BigDecimal field3 = userFinance.getCustomField3() == null? new BigDecimal(0):userFinance.getCustomField3().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            membRowData.add(us.getName());
+                            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                membRowData.add(us.getCorpwxUserid()==null?"":us.getCorpwxUserid());
+                            }else {
+                                membRowData.add(us.getName());
+                            }
                             membRowData.add(workingTime+"");
                             membRowData.add(salary.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
                             membRowData.add(bonus.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
@@ -943,8 +949,12 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                                     BigDecimal field1 = newFinance.getCustomField1() == null? new BigDecimal(0):newFinance.getCustomField1();
                                     BigDecimal field2 = newFinance.getCustomField2() == null? new BigDecimal(0):newFinance.getCustomField2();
                                     BigDecimal field3 = newFinance.getCustomField3() == null? new BigDecimal(0):newFinance.getCustomField3();
-
-                                    membRowData.add(npu.getName());
+                                    User us = userList.stream().filter(u->u.getId().equals(npu.getUserId())).findFirst().get();
+                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                        membRowData.add("$userName="+(us.getCorpwxUserid()==null?"":us.getCorpwxUserid())+"$");
+                                    }else {
+                                        membRowData.add(npu.getName());
+                                    }
                                     membRowData.add(workingTime+"");
                                     membRowData.add(salary.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
                                     membRowData.add(bonus.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
@@ -1079,9 +1089,11 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             //生成excel文件导出
             //String fileName = yearMonth+(groupByCategory==0?"财务人员成本_":"财务项目分类成本_")+System.currentTimeMillis();
             String fileName = yearMonth+(groupByCategory==0?MessageUtils.message("fileName.costFinancialPersonnel"):MessageUtils.message("fileName.proClassCost"))+System.currentTimeMillis();
-            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
-
-            httpRespMsg.data = resp;
+            try {
+                return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         } catch (NullPointerException e) {
             e.printStackTrace();
             //httpRespMsg.setError("验证失败:"+e.getMessage());
@@ -1353,6 +1365,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
             WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
             final List<FinanceTblcuscol> cusColList = financeTblcuscolMapper.selectList(new QueryWrapper<FinanceTblcuscol>().eq("company_id", companyId));
+            List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
             Company company = companyMapper.selectById(companyId);
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             BigDecimal totalSalary = BigDecimal.valueOf(0);
@@ -1391,6 +1404,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             //获取月成本列表
             List<Finance> finances = financeMapper.selectList(new QueryWrapper<Finance>().eq("company_id", companyId).eq("ymonth", yearMonth));
             for (Finance f : finances) {
+                User user = userList.stream().filter(ul -> ul.getId().equals(f.getUserId())).findFirst().get();
                 BigDecimal cost = f.getTotalCost();
                 BigDecimal salary = f.getMonthCost();
                 BigDecimal bonus = f.getBonus();
@@ -1432,7 +1446,11 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     totalField3 = totalField3.add(field3Item);
                 }
                 List<String> rowData = new ArrayList<String>();
-                rowData.add(f.getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    rowData.add("$userName="+(user.getCorpwxUserid()==null?"":user.getCorpwxUserid())+"$");
+                }else {
+                    rowData.add(f.getName());
+                }
                 rowData.add(salary == null?"0":salary.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
                 rowData.add(bonus == null?"0":bonus.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
                 rowData.add(allowance == null?"0":allowance.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
@@ -1492,8 +1510,11 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             //生成excel文件导出
             //String fileName = "人员薪资_"+company.getCompanyName()+yearMonth+"_"+System.currentTimeMillis();
             String fileName = MessageUtils.message("fileName.perSal")+company.getCompanyName()+yearMonth+"_"+System.currentTimeMillis();
-            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
-            httpRespMsg.data = resp;
+            try {
+                return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         } catch (NullPointerException e) {
             e.printStackTrace();
             //httpRespMsg.setError("验证失败");

+ 16 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/LeaveSheetServiceImpl.java

@@ -8,10 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.management.platform.entity.*;
 import com.management.platform.entity.vo.SysRichFunction;
 import com.management.platform.mapper.*;
-import com.management.platform.service.DepartmentService;
-import com.management.platform.service.ExpenseItemService;
-import com.management.platform.service.LeavePmauditService;
-import com.management.platform.service.LeaveSheetService;
+import com.management.platform.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
@@ -65,6 +62,8 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
     DepartmentService departmentService;
     @Resource
     WxCorpInfoMapper wxCorpInfoMapper;
+    @Resource
+    ExcelExportService excelExportService;
 
     @Override
     public HttpRespMsg add(LeaveSheet sheet, String userId) {
@@ -244,8 +243,9 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         Integer companyId = userMapper.selectById(userId).getCompanyId();
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
+        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).select("id","corpwx_userid"));
         QueryWrapper<LeaveSheet> qw = new QueryWrapper<LeaveSheet>()
-                .select("owner_name", "tel", "leave_type", "start_date","end_date","time_days", "time_hours", "status", "remark")
+                .select("owner_id", "tel", "leave_type", "start_date","end_date","time_days", "time_hours", "status", "remark")
                 .eq("company_id", companyId)
                 .eq(status != null, "status", status)
                 .eq(leaveType != null, "leave_type", leaveType)
@@ -278,7 +278,12 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
         allList.add(headList);
         for (LeaveSheet leaveSheet : leaveSheets) {
             List<String> item = new ArrayList<>();
-            item.add(leaveSheet.getOwnerName()==null?"":leaveSheet.getOwnerName());
+            User us = userList.stream().filter(ul -> ul.getId().equals(leaveSheet.getOwnerId())).findFirst().get();
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                item.add("$userName="+(us.getCorpwxUserid()==null?"":us.getCorpwxUserid())+"$");
+            }else {
+                item.add(us.getName());
+            }
             item.add(leaveSheet.getTel()==null?"":leaveSheet.getTel());
             String lts = "";
             switch (leaveSheet.getLeaveType()){
@@ -343,8 +348,11 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
         }
         //String fileName = "请假信息_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.leaveInfo")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
-        httpRespMsg.data = resp;
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return httpRespMsg;
     }
 }

+ 227 - 60
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -1238,8 +1238,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             membRowData.add("");
                             membRowData.add("");
                         }
-                        membRowData.add((String)membMap.get("name"));
-                        membRowData.add((String)membMap.get("departmentName"));
+                        if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                            membRowData.add((String)("$userName="+membMap.get("corpwxUserId")+"$"));
+                            if(membMap.get("departmentName").equals("未分配")){
+                                membRowData.add("未分配");
+                            }else {
+                                membRowData.add((String)("$departmentName="+membMap.get("corpwxDeptId")+"$"));
+                            }
+                        }else {
+                            membRowData.add((String)membMap.get("name"));
+                            membRowData.add((String)membMap.get("departmentName"));
+                        }
                         if(functionTimeList.size()>0){
                             membRowData.add(((Double)membMap.get("cost")).toString());
                         }
@@ -1697,7 +1706,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             Optional<User> first = userList.stream().filter(u -> u.getId().equals(project.getInchargerId())).findFirst();
             if (first.isPresent()) {
                 User incharger = first.get();
-                data.add(incharger.getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    data.add("$userName="+incharger.getCorpwxUserid()+"$");
+                }else {
+                    data.add(incharger.getName());
+                }
             } else {
                 data.add("");
             }
@@ -1712,7 +1725,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "项目报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.projectReport")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -1756,6 +1773,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
+        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
         QueryWrapper<Project> queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         List<Project> projectAllList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
@@ -1790,7 +1808,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             data.add(task.get("project_code") == null?"":task.get("project_code").toString());
             data.add(task.get("project_name") == null?"":task.get("project_name").toString());
             data.add(task.get("name") != null?task.get("name").toString():"");
-            data.add(task.get("executor_name") != null?task.get("executor_name").toString():"");
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                if(task.get("executor_id")!=null){
+                    User us = userList.stream().filter(ul -> ul.getId().equals(task.get("executor_id"))).findFirst().get();
+                    data.add(us.getCorpwxUserid() == null?"":us.getCorpwxUserid());
+                }else {
+                    data.add("");
+                }
+            }else {
+                data.add(task.get("executor_name") != null?task.get("executor_name").toString():"");
+            }
             data.add(task.get("plan_hours") != null?task.get("plan_hours").toString():"");
             data.add(task.get("real_hours").toString());
             data.add(task.get("task_status")==null?"":statusNames[Integer.parseInt(task.get("task_status").toString())]);
@@ -1800,7 +1827,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "项目任务报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.projectTaskReport")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -1888,7 +1919,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "项目成本报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.projectCostReport")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -2005,7 +2040,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "项目收支平衡报表(利润表)_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.profitSta")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -2074,7 +2113,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "客户项目利润报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.cusPro")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -2601,7 +2644,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         //String fileName = "项目阶段工时报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.ProPeriodWork")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, dataList, path);
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -4178,6 +4225,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<String> nameList= (List<String>) resultMap.get("nameList");
         Company company = companyMapper.selectById(user.getCompanyId());
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", company.getId()));
+        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", company.getId()));
         List<String> headList = new ArrayList<String>();
 //        headList.add("项目编号");
 //        headList.add("项目分类");
@@ -4272,14 +4320,31 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             //rowData.add(("1".equals(projectVO.getIsPublic())?"是":"否"));
             rowData.add(("1".equals(projectVO.getIsPublic())?MessageUtils.message("excel.yes"):MessageUtils.message("excel.no")));
             rowData.add(projectVO.getProjectName());
-            rowData.add(projectVO.getInchargerName());
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                if(projectVO.getInchargerId()!=null){
+                    User us = userList.stream().filter(ul -> ul.getId().equals(projectVO.getInchargerId())).findFirst().get();
+                    rowData.add("$userName="+us.getCorpwxUserid()+"$");
+                }else {
+                    rowData.add("");
+                }
+            }else {
+                rowData.add(projectVO.getInchargerName());
+            }
             List<Map<String, Object>> participator = projectVO.getParticipator();
             String names="";
             for (int i = 0; i < participator.size(); i++) {
-                if(i==participator.size()-1){
-                    names+=participator.get(i).get("name");
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    if(i==participator.size()-1){
+                        names+="$userName="+(participator.get(i).get("corpwxUserId"))+"$";
+                    }else {
+                        names+="$userName="+(participator.get(i).get("corpwxUserId"))+"$"+",";
+                    }
                 }else {
-                    names+=participator.get(i).get("name")+",";
+                    if(i==participator.size()-1){
+                        names+=participator.get(i).get("name");
+                    }else {
+                        names+=participator.get(i).get("name")+",";
+                    }
                 }
             }
             rowData.add(names);
@@ -4287,7 +4352,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             rowData.add(start==null?"":sdf.format(start));
             LocalDate end = projectVO.getPlanEndDate();
             rowData.add(end==null?"":sdf.format(end));
-            rowData.add(projectVO.getCreatorName());
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                rowData.add("$userName="+projectVO.getCreatorId()+"$");
+            }else {
+                rowData.add(projectVO.getCreatorName());
+            }
             LocalDate createDate = projectVO.getCreateDate();
             rowData.add(createDate==null?"":sdf.format(createDate));
 
@@ -4312,7 +4381,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             if(timeType.getProjectWithDept()==1){
                 Optional<Department> first = departmentList.stream().filter(dl -> dl.getDepartmentId().equals(projectVO.getDeptId())).findFirst();
                 if(first.isPresent()){
-                    rowData.add(first.get().getDepartmentName());
+                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                        rowData.add("$departmentName="+first.get().getCorpwxDeptid()+"$");
+                    }else {
+                        rowData.add(first.get().getDepartmentName());
+                    }
                 }else {
                     rowData.add("");
                 }
@@ -4393,11 +4466,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //生成excel文件导出
         //String fileName = "项目导出_"+company.getCompanyName()+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.proExport")+company.getCompanyName()+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName,allList,path);
-        HttpRespMsg httpRespMsg = new HttpRespMsg();
-        httpRespMsg.data = resp;
-
-        return httpRespMsg;
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName,allList,path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return new HttpRespMsg();
     }
 
     @Override
@@ -4424,15 +4498,33 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             item.add((String) map.get("projectCode")==null?"":(String)map.get("projectCode"));
             item.add((String) map.get("projectName")==null?"":(String)map.get("projectName"));
             item.add((String) map.get("groupName")==null?"":(String)map.get("groupName"));
-            item.add((String) map.get("inchargerName")==null?"":(String)map.get("inchargerName"));
-            item.add((String) map.get("participators")==null?"":(String)map.get("participators"));
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                item.add((String) map.get("corpwxUserId")==null?"":("$userName="+(String)map.get("corpwxUserId")+"$"));
+                if(!map.get("participatorsCorp").equals("")){
+                    String participatorsCorp = (String) map.get("participatorsCorp");
+                    List<String> asList = Arrays.asList(participatorsCorp.split(","));
+                    List<String> thisList=new ArrayList<>();
+                    asList.forEach(al->{
+                        thisList.add("$userName="+al+"$");
+                    });
+                    item.add(thisList.toString().replaceAll("\\[","").replaceAll("]",""));
+                }else {
+                    item.add("");
+                }
+            }else {
+                item.add((String) map.get("inchargerName")==null?"":(String)map.get("inchargerName"));
+                item.add((String) map.get("participators")==null?"":(String)map.get("participators"));
+            }
             allList.add(item);
         }
         //String fileName = "项目分组_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.proGroup")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        httpRespMsg.data = resp;
         return httpRespMsg;
     }
 
@@ -4474,6 +4566,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         try {
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
             WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
+            List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
             TimeType timeType = timeTypeMapper.selectById(companyId);
             List<String> headList = new ArrayList<String>();
 //            headList.add("序号");
@@ -4512,8 +4605,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             for (Map<String, Object> membMap : membList) {
                 List<String> membRowData = new ArrayList<String>();
                 membRowData.add(String.valueOf(seq));
-                membRowData.add((String)membMap.get("name"));
-                membRowData.add((String)membMap.get("departmentName"));
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(membMap.get("creatorId"))).findFirst();
+                    if(first.isPresent()){
+                        membRowData.add("$userName="+first.get().getCorpwxUserid()+"$");
+                    }else {
+                        membRowData.add("");
+                    }
+                    membRowData.add(String.valueOf(membMap.get("corpwxDeptId")==null?"":membMap.get("corpwxDeptId")));
+                }else {
+                    membRowData.add((String)membMap.get("name"));
+                    membRowData.add((String)membMap.get("departmentName"));
+                }
                 membRowData.add("");
                 membRowData.add("");
                 membRowData.add("");
@@ -4552,9 +4655,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             //生成excel文件导出
             //String fileName = timeType.getCustomDataName() + "统计_"+System.currentTimeMillis();
             String fileName = timeType.getCustomDataName() + MessageUtils.message("Statistics.tj")+"_"+System.currentTimeMillis();
-            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
-
-            httpRespMsg.data = resp;
+            try {
+                return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         } catch (NullPointerException e) {
             e.printStackTrace();
             //httpRespMsg.setError("验证失败");
@@ -4937,7 +5042,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "工时成本预警表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.hourCostAlert")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -5316,7 +5425,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     double costTime = 0;
                     List<Map<String, Object>> mapList = membList.stream().filter(mb -> mb.get("creatorId").equals(user.getId())).collect(Collectors.toList());
                     List<String> membRowData=new ArrayList<>();
-                    membRowData.add(user.getName());
+                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                        membRowData.add("$userName"+(user.getCorpwxUserid()==null?"":user.getCorpwxUserid())+"$");
+                    }else {
+                        membRowData.add(user.getName());
+                    }
                     for(Object i:projectCategorys){
                         List<Map<String, Object>> resultList = mapList.stream().filter(mp -> mp.get("category").equals(i)).collect(Collectors.toList());
                         if(resultList.size()>0){
@@ -5351,8 +5464,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             //生成excel文件导出
             //String fileName = "项目分类工时成本统计_"+System.currentTimeMillis();
             String fileName = MessageUtils.message("fileName.proClassLaborCost")+System.currentTimeMillis();
-            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
-            httpRespMsg.data = resp;
+            try {
+                return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         } catch (NullPointerException e) {
             e.printStackTrace();
             //httpRespMsg.setError("验证失败");
@@ -5450,7 +5566,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             BigDecimal bdIsPublic=new BigDecimal(isPublic);
             BigDecimal divide = bdIsPublic.divide(BigDecimal.valueOf(workingTime),2,BigDecimal.ROUND_HALF_UP);
             NumberFormat nf = NumberFormat.getPercentInstance();
-            subList.add(String.valueOf(item.get("username")));
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                subList.add("$userName="+(item.get("corpwxUserId")==null?"":item.get("corpwxUserId"))+"$");
+            }else {
+                subList.add(String.valueOf(item.get("username")));
+            }
             subList.add(String.valueOf(StringUtils.isEmpty(item.get("jobNumber"))?"":item.get("jobNumber")));
             subList.add(String.valueOf(item.get("unPublic")));
             subList.add(String.valueOf(item.get("isPublic")));
@@ -5461,8 +5581,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //生成excel文件导出
         //String fileName = "人员工时分配统计_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.perHoursAllSta")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-        msg.data = resp;
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return msg;
     }
 
@@ -5690,7 +5813,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         dataList.add(titleString);
         for (TimelinessRateVO timelinessRateVO : list) {
             List<String> item=new ArrayList<>();
-            item.add(timelinessRateVO.getUserName());
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                item.add(timelinessRateVO.getCorpwxUserId()==null?"":timelinessRateVO.getCorpwxUserId());
+            }else {
+                item.add(timelinessRateVO.getUserName());
+            }
             item.add(timelinessRateVO.getJobNumber());
             item.add(timelinessRateVO.getDepartmentName());
             item.add(timelinessRateVO.getTimelinessRate());
@@ -5699,8 +5826,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //生成excel文件导出
         //String fileName = "人员填报及时率统计_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.timePerFill")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-        httpRespMsg.data = resp;
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return httpRespMsg;
     }
 
@@ -5754,15 +5884,22 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         dataList.add(Arrays.asList(s));
         for (Map<String, Object> map : list) {
             List<String> item=new ArrayList<>();
-            item.add(String.valueOf(map.get("userName")));
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                item.add("$userName="+(map.get("corpwxUserId"))+"$");
+            }else {
+                item.add(String.valueOf(map.get("userName")));
+            }
             item.add(String.valueOf(map.get("num")));
             dataList.add(item);
         }
         //生成excel文件导出
         //String fileName = "人员待审核统计_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.perReviewed")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-        msg.data = resp;
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return msg;
     }
 
@@ -5899,9 +6036,15 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         dataList.add(titleList);
         for (Map<String, Object> map : resultList) {
             List<String> item=new ArrayList<>();
-            item.add((String) map.get("name"));
-            item.add(String.valueOf(StringUtils.isEmpty(map.get("jobNumber"))?"":map.get("jobNumber")));
-            item.add((String) map.get("departmentName")==null?"":(String) map.get("departmentName"));
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                item.add("$userName="+(map.get("corwxUserId")==null?"":map.get("corwxUserId"))+"$");
+                item.add(String.valueOf(StringUtils.isEmpty(map.get("jobNumber"))?"":map.get("jobNumber")));
+                item.add("$deprtmentName="+(map.get("corpwxDeptId")==null?"":map.get("corpwxDeptId"))+"$");
+            }else {
+                item.add((String) map.get("name"));
+                item.add(String.valueOf(StringUtils.isEmpty(map.get("jobNumber"))?"":map.get("jobNumber")));
+                item.add((String) map.get("departmentName")==null?"":(String) map.get("departmentName"));
+            }
             item.add(String.valueOf(map.get("planHours")).equals("null")?"":String.valueOf(map.get("planHours")));
             item.add(String.valueOf(map.get("workingTime")).equals("null")?"":String.valueOf(map.get("workingTime")));
             item.add(String.valueOf(map.get("proportion")).equals("null")?"":String.valueOf(map.get("proportion")));
@@ -5910,8 +6053,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //生成excel文件导出
         //String fileName = "人员工时统计_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.perHoursSta")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-        msg.data = resp;
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return msg;
     }
 
@@ -6355,8 +6501,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //生成excel文件导出
         //String fileName = "项目成本基线表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("Statistics.ProjectCostBase")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-        httpRespMsg.data = resp;
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return httpRespMsg;
     }
 
@@ -6457,9 +6606,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //生成excel文件导出
         //String fileName = userCustom.getName()+"工时成本统计_"+System.currentTimeMillis();
         String fileName = userCustom.getName()+MessageUtils.message("fileName.hourCost")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-        httpRespMsg.data = resp;
-
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return httpRespMsg;
     }
 
@@ -6845,7 +6996,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
                 List<Integer> idList = inertProjectList.stream().map(Project::getId).collect(Collectors.toList());
                 idList.add(-1);
-                List<ProjectSeparate> projectSeparateList = projectSeparateMapper.selectList(new QueryWrapper<ProjectSeparate>().in("id", idList));
                 for (Project project : inertProjectList) {
                     List<TaskGroup> taskGroupList = project.getTaskGroupList();
                     if(taskGroupList!=null){
@@ -6853,8 +7003,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         taskGroupService.saveBatch(taskGroupList);
                     }
                     ProjectSeparate projectSeparate = project.getProjectSeparate();
-                    projectSeparate.setId(project.getId());
-                    projectSeparateService.saveOrUpdate(projectSeparate);
+                    if(projectSeparate!=null){
+                        projectSeparate.setId(project.getId());
+                        projectSeparateService.saveOrUpdate(projectSeparate);
+                    }
+                    //项目负责人要加到参与人中
+                    Participation participation=new Participation();
+                    if(project.getInchargerId()!=null){
+                        participation.setUserId(project.getInchargerId());
+                        participation.setProjectId(project.getId());
+                        participationMapper.insert(participation);
+                    }
                 }
             }
         }else if(changeType.equals("update_project")){
@@ -6879,7 +7038,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 List<Integer> idList = changeProjectList.stream().map(Project::getId).collect(Collectors.toList());
                 idList.add(-1);
                 List<TaskGroup> groupList = taskGroupMapper.selectList(new QueryWrapper<TaskGroup>().in("project_id", idList));
-                List<ProjectSeparate> projectSeparateList = projectSeparateMapper.selectList(new QueryWrapper<ProjectSeparate>().in("id", idList));
                 for (Project project : changeProjectList) {
                     List<TaskGroup> taskGroupList = project.getTaskGroupList();
                     if(taskGroupList!=null){
@@ -6895,9 +7053,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         taskGroupService.saveOrUpdateBatch(taskGroupList);
                     }
                     ProjectSeparate projectSeparate = project.getProjectSeparate();
-                    projectSeparate.setId(project.getId());
-                    projectSeparateService.saveOrUpdate(projectSeparate);
-                    projectSeparateService.saveOrUpdate(projectSeparate);
+                    if(projectSeparate!=null){
+                        projectSeparate.setId(project.getId());
+                        projectSeparateService.saveOrUpdate(projectSeparate);
+                    }
+                    //项目负责人要加到参与人中
+                    Participation participation=new Participation();
+                    if(project.getInchargerId()!=null){
+                        participationMapper.delete(new QueryWrapper<Participation>().eq("project_id",project.getId()).eq("user_id",project.getId()));
+                        participation.setUserId(project.getInchargerId());
+                        participation.setProjectId(project.getId());
+                        participationMapper.insert(participation);
+                    }
                 }
             }
         }else if(changeType.equals("delete_project")){

+ 8 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProviderInfoServiceImpl.java

@@ -8,6 +8,7 @@ import com.management.platform.entity.WxCorpInfo;
 import com.management.platform.mapper.ProviderInfoMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.mapper.WxCorpInfoMapper;
+import com.management.platform.service.ExcelExportService;
 import com.management.platform.service.ProviderInfoService;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
@@ -47,6 +48,8 @@ public class ProviderInfoServiceImpl extends ServiceImpl<ProviderInfoMapper, Pro
     UserMapper userMapper;
     @Resource
     WxCorpInfoMapper wxCorpInfoMapper;
+    @Resource
+    ExcelExportService excelExportService;
     @Value(value = "${upload.path}")
     String path;
     @Override
@@ -184,9 +187,12 @@ public class ProviderInfoServiceImpl extends ServiceImpl<ProviderInfoMapper, Pro
         //生成excel文件导出
         //String fileName = "供应商统计_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.supStat")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        httpRespMsg.data = resp;
         return httpRespMsg;
     }
 

+ 8 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportExtraDegreeServiceImpl.java

@@ -10,6 +10,7 @@ import com.management.platform.mapper.ReportExtraDegreeMapper;
 import com.management.platform.mapper.TimeTypeMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.mapper.WxCorpInfoMapper;
+import com.management.platform.service.ExcelExportService;
 import com.management.platform.service.ReportExtraDegreeService;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
@@ -54,6 +55,8 @@ public class ReportExtraDegreeServiceImpl extends ServiceImpl<ReportExtraDegreeM
     TimeTypeMapper timeTypeMapper;
     @Resource
     WxCorpInfoMapper wxCorpInfoMapper;
+    @Resource
+    ExcelExportService excelExportService;
     @Override
     public HttpRespMsg importData(HttpServletRequest request, MultipartFile multipartFile) {
         HttpRespMsg msg=new HttpRespMsg();
@@ -171,8 +174,11 @@ public class ReportExtraDegreeServiceImpl extends ServiceImpl<ReportExtraDegreeM
         }
         //生成excel文件导出
         String fileName = timeType.getCustomDegreeName()+"_"+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-        httpRespMsg.data = resp;
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return httpRespMsg;
     }
 }

+ 103 - 15
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -20,12 +20,19 @@ import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.ss.usermodel.*;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.*;
+import org.springframework.http.client.ClientHttpResponse;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.client.DefaultResponseErrorHandler;
+import org.springframework.web.client.RestTemplate;
 import org.springframework.web.multipart.MultipartFile;
+import sun.net.www.http.HttpClient;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -174,6 +181,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     private ThirdPartyInterfaceMapper thirdPartyInterfaceMapper;
     @Resource
     private DepartmentOtherManagerMapper departmentOtherManagerMapper;
+    @Resource
+    private ExcelExportService excelExportService;
+    @Autowired
+    RestTemplate restTemplate;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -2971,6 +2982,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             String id = (String)data.get("id");
             String name = (String)data.get("name");
             String departmentName = (String) data.get("departmentName");
+            String corpwxUserId = (String) data.get("corpwxUserId");
+            String corpwxDeptId = (String) data.get("corpwxDeptId");
             Map<String, Object> map = new HashMap<>();
             String date = new SimpleDateFormat("yyyy-MM-dd").format((Date)data.get("createDate"));
             String corpwxUserid = (String) data.get("corpwxUserId");
@@ -2985,7 +2998,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 lastUserData.userId = id;
                 lastUserData.name = name;
                 lastUserData.departmentName = departmentName;
-                lastUserData.corpwxUserId=corpwxUserid;
+                lastUserData.corpwxUserId = departmentName;
+                lastUserData.corpwxDeptId = departmentName;
                 lastUserData.worktimeList = new ArrayList<>();
                 lastUserData.worktimeList.add(map);
                 userMonthWorks.add(lastUserData);
@@ -3146,8 +3160,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 
             List<Map<String, Object>> worktimeList = userMonthWork.worktimeList;
             //dataItem.add(userMonthWork.name+(worktimeList.size()==0?"(未填)":""));
-            dataItem.add(userMonthWork.name+(worktimeList.size()==0?"("+MessageUtils.message("entry.noFill")+")":""));
-            dataItem.add(userMonthWork.departmentName);
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                dataItem.add("$userName="+userMonthWork.corpwxUserId+"$"+(worktimeList.size()==0?"("+MessageUtils.message("entry.noFill")+")":""));
+                dataItem.add("$departmentName="+userMonthWork.corpwxDeptId+"$");
+            }else {
+                dataItem.add(userMonthWork.name+(worktimeList.size()==0?"("+MessageUtils.message("entry.noFill")+")":""));
+                dataItem.add(userMonthWork.departmentName);
+            }
             //找到那一天的工作时间
             days.forEach(d->{
 //                String dateStr = startDate;
@@ -3168,10 +3187,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         //生成excel文件导出
         //String fileName = "人员每日工时统计_"+startDate+"至"+endDate+"_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.dailyManHour",startDate,endDate)+"_"+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-        HttpRespMsg httpRespMsg = new HttpRespMsg();
-        httpRespMsg.data = resp;
-        return httpRespMsg;
+        try {
+             return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo, fileName, dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return msg;
     }
 
     @Override
@@ -4049,6 +4070,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         User user = userMapper.selectById(request.getHeader("TOKEN"));
         List<User> allRangeUserList = new ArrayList<>();
         Integer companyId = user.getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         List<Map<String, Object>> list = null;
         //分角色权限:管理员看全部的,部门负责人看自己部门的,个人只能看自己的。
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
@@ -4168,6 +4190,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                             noRecord.department = MessageUtils.message("entry.none");
                         }
                         noRecord.name = curUser.getName();
+                        noRecord.corpwxUserId=curUser.getCorpwxUserid();
+                        noRecord.corpwxDeptId=curUser.getCorpwxDeptid();
                         //请假的
                         for (LeaveSheet leaveSheet : leaveSheetList) {
                             if (leaveSheet.getOwnerId().equals(curUser.getId()) &&
@@ -4251,8 +4275,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         for (int i=0;i<dailyWorkItems.size(); i++) {
             UserDailyWorkItem dataItem = dailyWorkItems.get(i);
             List<String> line = new ArrayList<>();
-            line.add(dataItem.department);
-            line.add(dataItem.name);
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                line.add("$departmentName="+dataItem.corpwxDeptId+"$");
+                line.add("$userName="+dataItem.corpwxUserId+"$");
+            }else {
+                line.add(dataItem.department);
+                line.add(dataItem.name);
+            }
             line.add(dataItem.createDate);
             line.add(dataItem.status);
             if (timeType.getSyncCorpwxTime() == 1) {
@@ -4263,10 +4292,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         //生成excel文件导出
         //String fileName = "未填人员统计_"+startDate+"至"+endDate+"_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.perNoFill")+startDate+MessageUtils.message("leave.to")+endDate+"_"+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
-        HttpRespMsg httpRespMsg = new HttpRespMsg();
-        httpRespMsg.data = resp;
-        return httpRespMsg;
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo, fileName, dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return msg;
     }
 
     @Override
@@ -4593,7 +4624,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg getUploadThirdReportData(String yearMonth,HttpServletRequest request) {
+    public HttpRespMsg uploadThirdReportData(String yearMonth,HttpServletRequest request) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
@@ -4602,7 +4633,64 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         LocalDate endDate = LocalDate.parse(dateStr,df);
         endDate=endDate.plusMonths(1);
         List<Map<String,Object>> resultList=reportMapper.getUploadThirdReportData(companyId,startDate,endDate);
-        httpRespMsg.data=resultList;
+        String url="http://10.20.35.48:8009/dataservice/apiInfo/queryData/test/sap/sysLaborhour";
+        //认证的账号和密码
+        HttpHeaders headers=new HttpHeaders();
+        JSONObject param = new JSONObject();
+        JSONArray array=new JSONArray();
+        resultList.forEach(rl->{
+            JSONObject object=new JSONObject();
+            object.put("PSPHI",rl.get("projectCode"));
+            object.put("GJAHR",rl.get("ofyear"));
+            object.put("MONAT",rl.get("ofmonth"));
+            object.put("PROJK",rl.get("taskGroupCode"));
+            object.put("DMBTR",rl.get("cost"));
+            object.put("ZID",rl.get("jobNumber"));
+            object.put("ZUNAM",rl.get("userName"));
+            object.put("ZDEP",rl.get("departmentName"));
+            array.add(object);
+        });
+        param.put("IT_TAB",array);
+        HttpEntity<String> requestEntity = new HttpEntity<String>(param.toJSONString(), headers);
+        String username = "WPG_GS";
+        String password = "Sys_GS@12345";
+        String authorization =username + ":" + password;
+        //在请求头信息中携带Basic认证信息(这里才是实际Basic认证传递用户名密码的方式)
+        headers.set("authorization", "Basic " + Base64.getEncoder().encodeToString(authorization.getBytes()));
+        MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
+        mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM));
+        restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter);
+        //设置编码格式
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        //过滤掉账号认证失败的时候抛出的401异常
+        restTemplate.setErrorHandler(new DefaultResponseErrorHandler(){
+            @Override
+            public void handleError(ClientHttpResponse response) throws IOException{
+                if(response.getRawStatusCode() != 401){
+                    super.handleError(response);
+                }
+            }
+        });
+        //发送请求
+        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST,requestEntity,String.class);
+        if (response.getStatusCode() == HttpStatus.OK) {
+            String resp = response.getBody();
+            System.out.println(resp);
+
+            JSONObject obj = JSONObject.parseObject(resp);
+            if (obj.getString("code").equals("S")) {
+                httpRespMsg.data=obj;
+                return httpRespMsg;
+            } else {
+                //抛出异常
+                try {
+                    throw new Exception(obj.getString("msg"));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
         return httpRespMsg;
     }
 

+ 8 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/SimpleReportServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
+import com.management.platform.service.ExcelExportService;
 import com.management.platform.service.SimpleFinanceService;
 import com.management.platform.service.SimpleProjectimeService;
 import com.management.platform.service.SimpleReportService;
@@ -65,6 +66,8 @@ public class SimpleReportServiceImpl extends ServiceImpl<SimpleReportMapper, Sim
     @Resource
     SimpleProjectimeService simpleProjectimeService;
     @Resource
+    ExcelExportService excelExportService;
+    @Resource
     UserMapper userMapper;
     @Resource
     WxCorpInfoMapper wxCorpInfoMapper;
@@ -440,9 +443,12 @@ public class SimpleReportServiceImpl extends ServiceImpl<SimpleReportMapper, Sim
         dataList.add(sumRow);
         //生成excel文件导出
         String fileName = yearMonth+"_"+type+MessageUtils.message("report.report")+"_"+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        httpRespMsg.data = resp;
         return  httpRespMsg;
     }
 

+ 1 - 53
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/ExcelUtil.java

@@ -24,22 +24,7 @@ public class ExcelUtil {
      * @return
      */
 
-    @Autowired
-    private WxCorpInfoService wxCorpInfoService;
-
-    @Autowired
-    private CorpwxJobResultService corpwxJobResultService;
-
-    public ExcelUtil(){}
-    public static ExcelUtil ExcelUtil;
-
-    @PostConstruct
-    public void init(){
-        ExcelUtil = this;
-    }
-
-
-    public static String exportGeneralExcelByTitleAndList(WxCorpInfo wxCorpInfo,String title, List<List<String>> list, String downloadPath) {
+    public static String exportGeneralExcelByTitleAndList(String title, List<List<String>> list, String downloadPath) {
         String result="系统提示:Excel文件导出成功!";
         String fileName= title+".xls";
         try {
@@ -167,43 +152,6 @@ public class ExcelUtil {
             workBook.write(os);
             os.flush();
             os.close();
-            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                String mediaId =ExcelUtil.wxCorpInfoService.getTranslationMediaId(fileName);
-                System.out.println(fileName);
-                String jobId = ExcelUtil.wxCorpInfoService.syncTranslation(wxCorpInfo.getCorpid(),mediaId,fileName, null);
-            /*if(jobId!=null&&!jobId.equals("")){
-                File file=new File(path + fileUrlSuffix);
-                if(file.exists()){
-                    file.delete();
-                }
-            }*/
-                int i = 0;
-                String syncTranslationResult = null;
-                /**
-                 * 异步上传转译文件的任务完成时会触发回调,在WeiXinCorpController中的commonDevCallbackPost实现了对回调的处理,存储到corpwxJobResult表中
-                 * 此处轮询查询本地数据库,检测到有任务的回调数据时继续执行查询操作
-                 */
-                while (i < 10) {
-                    Thread.sleep(300);
-                    CorpwxJobResult corpwxJobResult = ExcelUtil.corpwxJobResultService.getById(jobId);
-                    if (corpwxJobResult != null) {
-                        if (corpwxJobResult.getErrCode() == 0) {
-                            syncTranslationResult = ExcelUtil.wxCorpInfoService.getSyncTranslationResult(jobId);
-                        } else {
-                            return corpwxJobResult.getErrMsg();
-                        }
-                        break;
-                    }
-                    i++;
-                }
-                if (syncTranslationResult != null) {
-                    return syncTranslationResult;
-                } else {
-                    return  "处理超时...";
-                }
-            }else {
-                return  "/upload/" + fileName;
-            }
         }catch(Exception e) {
             System.out.println(result);
             e.printStackTrace();

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ParticipationMapper.xml

@@ -24,7 +24,7 @@
 
 
     <select id="getAllParticipator" resultType="java.util.Map">
-        SELECT a.user_id AS id, b.name,a.project_id as projectId
+        SELECT a.user_id AS id,b.corpwx_userid as corpwxUserId as corpwxUserId, b.name,a.project_id as projectId
         FROM participation AS a
         LEFT JOIN user AS b ON a.user_id = b.id
         WHERE a.project_id in

+ 9 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -284,7 +284,7 @@
 
     <!--获取某个项目每个人分别需要的工时-->
     <select id="getProjectCost" resultType="java.util.Map">
-        SELECT b.id as creatorId,a.project_id as projectId, b.name,a.dept_id as deptId, IFNULL(department.department_name, '未分配') as departmentName, SUM(a.working_time) AS cost, SUM(a.cost) AS costMoney
+        SELECT b.id as creatorId,a.project_id as projectId, b.name,b.corpwx_userid as corpwxUserId,a.dept_id as deptId,department.corpwx_deptid as corpwxDeptId, IFNULL(department.department_name, '未分配') as departmentName, SUM(a.working_time) AS cost, SUM(a.cost) AS costMoney
         FROM report AS a
         JOIN user AS b ON a.creator_id = b.id
         left join department on department.department_id = a.dept_id
@@ -405,7 +405,7 @@
     <!-- 获取人员在日报填写的自定义数值 -->
     <select id="getProjectCusDataSumItem" resultType="java.util.Map">
         SELECT b.id as creatorId,
-        b.name,department.department_name as departmentName, IFNULL(SUM(a.custom_data),0) AS cost
+        b.name,department.department_name as departmentName,department.corpwx_deptid as corpwxDeptId, IFNULL(SUM(a.custom_data),0) AS cost
         FROM report AS a
         JOIN user AS b ON a.creator_id = b.id
         left join department on department.department_id = b.department_id
@@ -688,7 +688,7 @@
 
     <!--获取人员工时-->
     <select id="getUserWorkingTimeList" resultType="java.util.Map">
-        SELECT  report.`creator_id` AS userId, user.`name` AS username,user.job_number as jobNumber,
+        SELECT  report.`creator_id` AS userId, user.`name` AS username,user.corpwx_userid as corpwxUserId,user.job_number as jobNumber,
         ifnull(SUM(if(project.is_public=0,report.working_time,null)),0) as unPublic,
         ifnull(SUM(if(project.is_public=1,report.working_time,null)),0) as isPublic,
         ifnull(SUM(report.`working_time`),0) AS workingTime
@@ -798,8 +798,9 @@
 
     <!--按项目分组导出数据-->
     <select id="getExportGroupData" resultType="java.util.Map" >
-        SELECT project_code as projectCode,project_name as projectName,task_group.`name` AS groupName,`user`.`name` AS inchargerName,
-        (SELECT GROUP_CONCAT(name) FROM group_participator g LEFT JOIN `user` ON `user`.id = g.user_id WHERE g.group_id = group_participator.group_id GROUP BY g.group_id) AS participators
+        SELECT project_code as projectCode,project_name as projectName,task_group.`name` AS groupName,`user`.`name` AS inchargerName,`user`.corpwx_userid as corpwxUserId,`user`.corpwx_userid as corpwxUserId,
+        (SELECT GROUP_CONCAT(name) FROM group_participator g LEFT JOIN `user` ON `user`.id = g.user_id WHERE g.group_id = group_participator.group_id GROUP BY g.group_id) AS participators,
+        (SELECT GROUP_CONCAT(corpwx_userid) FROM group_participator g LEFT JOIN `user` ON `user`.id = g.user_id WHERE g.group_id = group_participator.group_id GROUP BY g.group_id) AS participatorsCorp
         FROM task_group
         LEFT JOIN group_participator ON task_group.id = group_participator.group_id
         LEFT JOIN project on task_group.project_id = project.id
@@ -846,7 +847,7 @@
     <select id="getWaitingReviewList" resultType="java.util.Map">
         <choose>
             <when test="stateKey==0">
-                SELECT 	dept_manager.name as userName,department.department_name as departmentName,COUNT(1) as num
+                SELECT 	dept_manager.name as userName,`user`.corpwx_userid as corpwxUserId,department.department_name as departmentName,COUNT(1) as num
                 FROM report AS a
                 left join user on user.id = a.creator_id
                 JOIN project AS b ON a.project_id=b.id
@@ -881,7 +882,7 @@
                 ORDER BY a.create_date desc, a.creator_id asc
             </when>
             <otherwise>
-                SELECT 	u.name as userName,dp.department_name as departmentName,COUNT(1) as num
+                SELECT 	u.name as userName,u.corpwx_userid as corpwxUserId,dp.department_name as departmentName,COUNT(1) as num
                 FROM report AS a
                 left join user on user.id = a.creator_id
                 JOIN project AS b ON a.project_id=b.id
@@ -1003,7 +1004,7 @@
     </select>
 
     <select id="getUserWorkingTimeStatic" resultType="java.util.Map">
-        select us.name,us.job_number as jobNumber,dp.department_name as departmentName,
+        select us.name,us.corpwx_userid as corpwxUserId,us.job_number as jobNumber,dp.department_name as departmentName,dp.corpwx_deptid as corpwxDeptId,
         (select SUM(te.plan_hours) from task_executor te
         left join task on task.id=te.task_id
         where te.executor_id=us.id

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -573,7 +573,7 @@
         WHERE create_date BETWEEN #{startDate} AND #{endDate} AND creator_id = #{userId} GROUP BY create_date
     </select>
     <select id="getUserDailyWorkTime" resultType="java.util.Map">
-        SELECT user.id, user.name, department.department_name as departmentName, report.create_date as createDate, sum(working_time) as workingTime,user.inactive_date as inactiveDate,user.corpwx_userid as corpwxUserId
+        SELECT user.id, user.name,department.department_name as departmentName,department.corpwx_deptid as corpwxDeptId, report.create_date as createDate, sum(working_time) as workingTime,user.inactive_date as inactiveDate,user.corpwx_userid as corpwxUserId
         FROM user
         left join report on user.id = report.creator_id
         left join department on department.department_id = user.department_id
@@ -678,7 +678,7 @@
     </select>
 
     <select id="getUserReportTimelinessRate" resultType="java.util.Map">
-        select `user`.name as userName,rl.create_date as createDate,MIN(rl.operate_date )as createTime from report_log rl
+        select `user`.name as userName,`user`.corpwx_userid as corpwxUserId,rl.create_date as createDate,MIN(rl.operate_date )as createTime from report_log rl
         left join `user` on `user`.id=rl.operator_id
         where rl.company_id=#{companyId}
         and rl.create_date between  #{startDate} and #{endDate}

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml

@@ -158,7 +158,7 @@
     </select>
 
     <select id="getProjectTask" resultType="java.util.Map">
-        SELECT task.id, task.`name`,task.executor_name,DATE_FORMAT(task.`end_date`, '%Y-%m-%d') as end_date, task.`plan_hours`,
+        SELECT task.id, task.`name`,task.executor_name,task.executor_id,DATE_FORMAT(task.`end_date`, '%Y-%m-%d') as end_date, task.`plan_hours`,
         (SELECT IFNULL(SUM(working_time),0) FROM report WHERE report.`task_id` = task.id AND report.`state` = 1) AS real_hours,
         task.`task_status`, task.`task_type`,
         project.`project_code`, project.`project_name` FROM task LEFT JOIN project ON project.id = task.`project_id`