Browse Source

相关人员 部门导出修改

yurk 2 years ago
parent
commit
a1aa39806a
15 changed files with 230 additions and 65 deletions
  1. 6 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/FinanceController.java
  2. 5 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  3. 4 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectRequirementController.java
  4. 4 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserCorpwxTimeController.java
  5. 3 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java
  6. 5 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  7. 9 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java
  8. 6 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java
  9. 4 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/LeaveSheetServiceImpl.java
  10. 104 36
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  11. 6 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProviderInfoServiceImpl.java
  12. 7 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportExtraDegreeServiceImpl.java
  13. 5 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  14. 8 8
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/SimpleReportServiceImpl.java
  15. 54 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/ExcelUtil.java

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

@@ -2,13 +2,11 @@ package com.management.platform.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.Company;
-import com.management.platform.entity.FinanceFixedcolname;
-import com.management.platform.entity.FinanceTblcuscol;
-import com.management.platform.entity.TimeType;
+import com.management.platform.entity.*;
 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.FinanceFixedcolnameService;
 import com.management.platform.service.FinanceService;
 import com.management.platform.util.ExcelUtil;
@@ -51,6 +49,8 @@ public class FinanceController {
     private FinanceFixedcolnameService financeFixedcolnameService;
     @Resource
     private TimeTypeMapper timeTypeMapper;
+    @Resource
+    private WxCorpInfoMapper wxCorpInfoMapper;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -130,6 +130,7 @@ public class FinanceController {
 
         List<String> heads = new ArrayList<>();
         Company company = companyMapper.selectById(companyId);
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         //判断是否启用了工号模式
         TimeType timeType = timeTypeMapper.selectById(companyId);
         if (timeType.getFinanceJobnumEnabled() == 1) {
@@ -154,7 +155,7 @@ public class FinanceController {
         allList.add(heads);
         //String fileName = company.getCompanyName()+"_财务人员成本模板";
         String fileName = MessageUtils.message("fileName.financialCost",company.getCompanyName());
-        msg.data = ExcelUtil.exportGeneralExcelByTitleAndList(fileName, allList, path);
+        msg.data = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, allList, path);
 
         return msg;
     }

+ 5 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -556,8 +556,11 @@ public class ProjectController {
     }
 
     @RequestMapping("/exportData")
-    public HttpRespMsg exportData() {
-        return projectService.exportData(request);
+    public HttpRespMsg exportData(String keyword,
+                                  @RequestParam(required = false, defaultValue = "1") Integer searchField,
+                                  Integer projectId, //可以直接传projectId来进行匹配
+                                  Integer status, Integer category,Integer projectMainId,Integer deptId,String inchagerId,String participation) {
+        return projectService.exportData(keyword,searchField,projectId,status,category,projectMainId,deptId,inchagerId,participation,request);
     }
 
     @RequestMapping("/exportGroupData")

+ 4 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectRequirementController.java

@@ -59,6 +59,8 @@ public class ProjectRequirementController {
     private TaskMapper taskMapper;
     @Resource
     private GroupParticipatorMapper groupParticipatorMapper;
+    @Resource
+    private WxCorpInfoMapper wxCorpInfoMapper;
     @RequestMapping("/addOrMod")
     public HttpRespMsg addOrMod(ProjectRequirement record) {
         HttpRespMsg msg = new HttpRespMsg();
@@ -116,6 +118,7 @@ public class ProjectRequirementController {
         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("TOKEN")).getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         LocalDate now = LocalDate.now();
         now = now.minusDays(7);
         String startDate = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(now);
@@ -177,7 +180,7 @@ public class ProjectRequirementController {
         //生成excel文件导出
         //String fileName = "资源需求统计报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.resourceDemand",System.currentTimeMillis());
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         httpRespMsg.data=resp;
         return httpRespMsg;
     }

+ 4 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserCorpwxTimeController.java

@@ -62,6 +62,8 @@ public class UserCorpwxTimeController {
     CompanyMapper companyMapper;
     @Resource
     SysFunctionMapper sysFunctionMapper;
+    @Resource
+    WxCorpInfoMapper wxCorpInfoMapper;
 
     @RequestMapping("/getMyDeptMembsData")
     public HttpRespMsg getMyDeptMembsData(String startDate, String endDate) {
@@ -228,6 +230,7 @@ public class UserCorpwxTimeController {
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         Integer companyId = user.getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         Integer manageDeptId = user.getManageDeptId();
 
         HttpRespMsg ret = getMyDeptMembsData(startDate, endDate);
@@ -291,7 +294,7 @@ public class UserCorpwxTimeController {
         }
         //fileName += "_人员工时统计模板"+startDate+"至"+endDate;
         fileName += MessageUtils.message("fileName.workHour",startDate,endDate);
-        msg.data = ExcelUtil.exportGeneralExcelByTitleAndList(fileName, allData, path);
+        msg.data = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, allData, path);
         return msg;
     }
 }

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java

@@ -353,6 +353,9 @@ public class Project extends Model<Project> {
 
     @TableField(exist = false)
     List<TaskGroup> taskGroupList;
+    
+    @TableField(exist = false)
+    private String levelString;
 
     @Override
     protected Serializable pkVal() {

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.management.platform.entity.Project;
 import com.management.platform.entity.ProjectSeparate;
 import com.management.platform.util.HttpRespMsg;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
@@ -107,7 +108,10 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg getDegreeCost(String startDate, String endDate, Integer projectId, HttpServletRequest request);
 
-    HttpRespMsg exportData(HttpServletRequest request);
+    HttpRespMsg exportData(String keyword,
+                           @RequestParam(required = false, defaultValue = "1") Integer searchField,
+                           Integer projectId, //可以直接传projectId来进行匹配
+                           Integer status, Integer category,Integer projectMainId,Integer deptId,String inchagerId,String participation,HttpServletRequest request);
 
     HttpRespMsg exportGroupData(HttpServletRequest request);
 

+ 9 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -61,6 +61,8 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
     private AuditWorkflowSettingMapper auditWorkflowSettingMapper;
     @Resource
     private DepartmentOtherManagerMapper departmentOtherManagerMapper;
+    @Resource
+    private WxCorpInfoMapper wxCorpInfoMapper;
     //新增部门
     @Override
     public HttpRespMsg insertDepartment(String departmentName, Integer superiorId, String managerId, String reportAuditUserid,String otherManagerIds,  HttpServletRequest request) {
@@ -731,7 +733,8 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             //生成excel文件导出
             //String fileName = "人员成本统计_"+System.currentTimeMillis();
             String fileName = MessageUtils.message("fileName.costStatistics",System.currentTimeMillis());
-            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
 
             httpRespMsg.data = resp;
         } catch (NullPointerException e) {
@@ -834,6 +837,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
             HttpRespMsg msg = getUserCustomDataStatistic(startDate, endDate, null, request);
             Map<String, Object> map = (Map<String, Object>) msg.data;
             List<HashMap> itemList = (List<HashMap>) map.get("list");
@@ -870,7 +874,7 @@ 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(fileName , allList, path);
+            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
 
             httpRespMsg.data = resp;
         } catch (NullPointerException e) {
@@ -1010,6 +1014,8 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
     public HttpRespMsg exportDeptStatistic(String startDate, String endDate, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
+            Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
             HttpRespMsg msg = getDepartmentStatistics(null, startDate, endDate, request);
             Map<String,Object> mapData = (Map<String, Object>) msg.data;
             List<DepartmentMasterVO> costList = (List<DepartmentMasterVO>) mapData.get("costList");
@@ -1053,7 +1059,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             //生成excel文件导出
             //String fileName = "部门工时统计_"+System.currentTimeMillis();
             String fileName = MessageUtils.message("fileName.depHours",System.currentTimeMillis());
-            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
+            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
             httpRespMsg.data = resp;
         } catch (NullPointerException e) {
             e.printStackTrace();

+ 6 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java

@@ -75,6 +75,8 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
     private ProjectCategoryMapper projectCategoryMapper;
     @Resource
     FinanceProjectsService financeProjectsService;
+    @Resource
+    WxCorpInfoMapper wxCorpInfoMapper;
 
     @Resource
     private ProjectMapper projectMapper;
@@ -456,6 +458,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
             TimeType timeType = timeTypeMapper.selectById(companyId);
             boolean isSecret = timeType.getIsSecretSalary()==1?true:false;
             final List<FinanceTblcuscol> cusColList = financeTblcuscolMapper.selectList(new QueryWrapper<FinanceTblcuscol>().eq("company_id", companyId));
@@ -1076,7 +1079,7 @@ 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(fileName , allList, path);
+            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
 
             httpRespMsg.data = resp;
         } catch (NullPointerException e) {
@@ -1348,6 +1351,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             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));
             Company company = companyMapper.selectById(companyId);
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
@@ -1488,7 +1492,7 @@ 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(fileName , allList, path);
+            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
             httpRespMsg.data = resp;
         } catch (NullPointerException e) {
             e.printStackTrace();

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

@@ -63,6 +63,8 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
     SysFunctionMapper sysFunctionMapper;
     @Resource
     DepartmentService departmentService;
+    @Resource
+    WxCorpInfoMapper wxCorpInfoMapper;
 
     @Override
     public HttpRespMsg add(LeaveSheet sheet, String userId) {
@@ -241,6 +243,7 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
     public HttpRespMsg exportLeaveData(String userId,Integer status,Integer leaveType,String startTime,String endTime) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         Integer companyId = userMapper.selectById(userId).getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         QueryWrapper<LeaveSheet> qw = new QueryWrapper<LeaveSheet>()
                 .select("owner_name", "tel", "leave_type", "start_date","end_date","time_days", "time_hours", "status", "remark")
                 .eq("company_id", companyId)
@@ -340,7 +343,7 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
         }
         //String fileName = "请假信息_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.leaveInfo")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , allList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
         httpRespMsg.data = resp;
         return httpRespMsg;
     }

+ 104 - 36
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -40,6 +40,7 @@ import org.springframework.beans.factory.annotation.Value;
 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.multipart.MultipartFile;
 
 import javax.annotation.Resource;
@@ -185,6 +186,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     TaskGroupService taskGroupService;
     @Resource
     GroupTemplateMapper GroupTemplateMapper;
+    @Resource
+    WxCorpInfoMapper wxCorpInfoMapper;
 
     @Resource
     private HttpServletResponse response;
@@ -1107,6 +1110,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         try {
             User targetUser = userMapper.selectById(request.getHeader("Token"));
             Integer companyId =targetUser.getCompanyId();
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
             Map<String, Object> resultMap = new HashMap<>();
             //当前用户管理部门
             List<Integer> deptIds=null;
@@ -1325,7 +1329,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             //生成excel文件导出
             //String fileName = "项目成本工时统计_"+System.currentTimeMillis();
             String fileName = MessageUtils.message("fileName.projectCost")+System.currentTimeMillis();
-            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , allList, path);
+            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
             httpRespMsg.data = resp;
         } catch (NullPointerException e) {
             e.printStackTrace();
@@ -1667,6 +1671,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //通过公司id获取该公司所有的项目列表
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         //判断用户的角色,如果是管理员和负责人,查看全部的。如果是普通员工,只能是看到参与的项目
         QueryWrapper<Project> queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
@@ -1701,7 +1706,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "项目报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.projectReport")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(fileName, exportList, path);
+        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -1744,7 +1749,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));
         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));
@@ -1789,7 +1794,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "项目任务报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.projectTaskReport")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(fileName, exportList, path);
+        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -1839,6 +1844,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //通过公司id获取该公司所有的项目列表
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         List<Project> projectAllList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
         List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
         List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务报表");
@@ -1876,7 +1882,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "项目成本报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.projectCostReport")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(fileName, exportList, path);
+        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -1945,6 +1951,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //通过公司id获取该公司所有的项目列表
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         List<Project> projectAllList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
         List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
         List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务报表");
@@ -1992,7 +1999,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "项目收支平衡报表(利润表)_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.profitSta")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(fileName, exportList, path);
+        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -2003,7 +2010,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //通过公司id获取该公司所有的项目列表
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
-
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         List<CustomerProject> projectList = projectMapper.getCustomerProjectInAndOut(companyId, null, null,null,null);
         List<List<String>> exportList = new ArrayList<>();
         //String[] titles = {"客户名称", "相关项目", "合同金额", "人工成本", "一般费用", "差旅费用","外包费用", "总费用", "利润", "利润率"};
@@ -2061,7 +2068,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "客户项目利润报表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.cusPro")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(fileName, exportList, path);
+        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -2521,6 +2528,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         User user = userMapper.selectById(token);
         Integer companyId = user.getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         HttpRespMsg msg = new HttpRespMsg();
         List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
         List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目任务报表");
@@ -2587,7 +2595,7 @@ 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(fileName, dataList, path);
+        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, dataList, path);
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -3018,6 +3026,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     project.setCreatorId(userId);
                     project.setCreatorName(user.getName());
                     project.setProjectName(name);
+                    project.setCreateDate(LocalDate.now());
 
                     //处理人员
                     if (inchargerCell != null) {
@@ -3452,6 +3461,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     project.setCreatorId(userId);
                     project.setCreatorName(user.getName());
                     project.setProjectName(name);
+                    project.setCreateDate(LocalDate.now());
 
                     //处理人员
                     if (inchargerCell != null) {
@@ -4142,7 +4152,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg exportData(HttpServletRequest request) {
+    public HttpRespMsg exportData(String keyword,
+                                  @RequestParam(required = false, defaultValue = "1") Integer searchField,
+                                  Integer projectId, //可以直接传projectId来进行匹配
+                                  Integer status, Integer category,Integer projectMainId,Integer deptId,String inchagerId,String participation,HttpServletRequest request) {
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
@@ -4152,12 +4165,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             //无全部项目权限,只能导出自己相关的(创建或参与)
             userId = user.getId();
         }
-        HttpRespMsg projectPage = getProjectPage(null, null, null, null, null, null, null, null,null, null, null,null,null, request);
+        HttpRespMsg projectPage = getProjectPage(null, null, keyword, searchField, status, category, projectId, projectMainId,deptId, null, null,inchagerId,participation, request);
         List<ProjectKeyNodesSetting> projectKeyNodesSettingList = projectKeyNodesSettingMapper.selectList(new QueryWrapper<ProjectKeyNodesSetting>().eq("company_id", user.getCompanyId()));
         Map<String,Object> resultMap= (Map<String, Object>) projectPage.data;
         List<ProjectVO> projectVOList= (List<ProjectVO>) resultMap.get("records");
         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<String> headList = new ArrayList<String>();
 //        headList.add("项目编号");
 //        headList.add("项目分类");
@@ -4335,8 +4349,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     rowData.add("");
                     rowData.add("");
                 }
-                Integer status = projectVO.getStatus();
-                switch (status){
+                Integer state = projectVO.getStatus();
+                switch (state){
                     //case 0:rowData.add("全部");
                     case 0:rowData.add(MessageUtils.message("excel.whole"));
                         break;
@@ -4373,7 +4387,7 @@ 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(fileName , allList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName,allList,path);
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         httpRespMsg.data = resp;
 
@@ -4384,6 +4398,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     public HttpRespMsg exportGroupData(HttpServletRequest request) {
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
         List<HashMap<String, Object>> list = projectMapper.getExportGroupData(user.getCompanyId());
         List<List<String>> allList = new ArrayList<>();
         List<String> headList = new ArrayList<String>();
@@ -4409,7 +4424,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "项目分组_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.proGroup")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , allList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         httpRespMsg.data = resp;
         return httpRespMsg;
@@ -4452,6 +4467,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
             TimeType timeType = timeTypeMapper.selectById(companyId);
             List<String> headList = new ArrayList<String>();
 //            headList.add("序号");
@@ -4530,7 +4546,7 @@ 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(fileName , allList, path);
+            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
 
             httpRespMsg.data = resp;
         } catch (NullPointerException e) {
@@ -4822,7 +4838,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //通过公司id获取该公司所有的项目列表
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
-
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         List<HashMap> projectList = projectMapper.getBaseCostAndRealCost(companyId, null, null, null);
         List<List<String>> exportList = new ArrayList<>();
         //String[] titles = {"项目编号", "项目名称", "当前总预算","当前剩余预算","总剩余预算","已发生总工时成本"};
@@ -4915,7 +4931,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //String fileName = "工时成本预警表_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.hourCostAlert")+System.currentTimeMillis();
-        ExcelUtil.exportGeneralExcelByTitleAndList(fileName, exportList, path);
+        ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName, exportList, path);
         httpRespMsg.data =  pathPrefix + fileName+".xls";
         return httpRespMsg;
     }
@@ -5183,6 +5199,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             //根据系统配置的员工成本计算方式,按固定时薪还是固定月薪,分情况计算。
             User targetUser = userMapper.selectById(request.getHeader("Token"));
             Integer companyId =targetUser.getCompanyId();
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
             Map<String, Object> resultMap = new HashMap<>();
             //当前用户管理部门
             List<Integer> deptIds=null;
@@ -5328,7 +5345,7 @@ 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(fileName , allList, path);
+            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
             httpRespMsg.data = resp;
         } catch (NullPointerException e) {
             e.printStackTrace();
@@ -5394,6 +5411,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         HttpRespMsg msg = new HttpRespMsg();
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
         List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全公司工时分配");
         List<SysRichFunction> functionDeptList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责部门工时分配");
         List<Integer> deptIds=null;
@@ -5437,7 +5455,7 @@ 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(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         msg.data = resp;
         return msg;
     }
@@ -5604,7 +5622,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 BigDecimal divide;
                 if(days!=0){
                      divide = bigDecimal.divide(BigDecimal.valueOf(days), 2, BigDecimal.ROUND_HALF_UP);
-                }else if(days==0&&num!=0){
+                }else if(days==0){
                     divide=new BigDecimal(1);
                     //查看当天有请假直接算100%
                 }else if (days==0&&num!=0&&leaveSheetList.size()>0){
@@ -5624,7 +5642,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 BigDecimal divide;
                 if(days!=0){
                     divide = bigDecimal.divide(BigDecimal.valueOf(days), 2, BigDecimal.ROUND_HALF_UP);
-                }else if(days==0&&num!=0){
+                }else if(days==0){
                     divide=new BigDecimal(1);
                     //查看当天有请假直接算100%
                 }else if (days==0&&num!=0&&leaveSheetList.size()>0){
@@ -5654,6 +5672,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     @Override
     public HttpRespMsg exportReportTimelinessRate(HttpServletRequest request, String startDate, String endDate) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         HttpRespMsg msg = getUserReportTimelinessRate(request, startDate, endDate, null, null, null, null);
         HashMap map= (HashMap) msg.data;
         List<TimelinessRateVO> list = (List<TimelinessRateVO>) map.get("list");
@@ -5673,7 +5693,7 @@ 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(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         httpRespMsg.data = resp;
         return httpRespMsg;
     }
@@ -5718,6 +5738,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     @Override
     public HttpRespMsg exportWaitingReviewList(HttpServletRequest request, Integer stateKey, String userId,String startDate,String endDate) {
         HttpRespMsg msg = getWaitingReviewList(request, stateKey, userId, null, null,startDate,endDate,null);
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         HashMap resultmap= (HashMap) msg.data;
         List<Map<String,Object>> list= (List<Map<String, Object>>) resultmap.get("result");
         List<List<String>> dataList=new ArrayList<>();
@@ -5733,7 +5755,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //生成excel文件导出
         //String fileName = "人员待审核统计_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.perReviewed")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         msg.data = resp;
         return msg;
     }
@@ -5849,6 +5871,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     @Override
     public HttpRespMsg exportUserWorkingTimeStatic(String startDate, String endDate, HttpServletRequest request, String userId, Integer departmentId) {
         HttpRespMsg msg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         HttpRespMsg httpRespMsg = getUserWorkingTimeStatic(startDate, endDate, null, null, request, userId, departmentId);
         Map<String,Object> data = (Map<String, Object>) httpRespMsg.data;
         List<Map<String,Object>> resultList= (List<Map<String, Object>>) data.get("result");
@@ -5880,7 +5904,7 @@ 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(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         msg.data = resp;
         return msg;
     }
@@ -6293,6 +6317,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     public HttpRespMsg exportProjectBaseCost(HttpServletRequest request) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         HttpRespMsg projectBaseCost = getProjectBaseCost(null, request, null, null);
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         HashMap map= (HashMap) projectBaseCost.data;
         List<Project> resultProjectList= (List<Project>) map.get("result");
         List<List<String>> dataList=new ArrayList<>();
@@ -6323,7 +6349,7 @@ 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(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         httpRespMsg.data = resp;
         return httpRespMsg;
     }
@@ -6392,6 +6418,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     public HttpRespMsg exportTimeCostByUserCustom(String startDate, String endDate, String subCustomName, Integer customId, HttpServletRequest request, String fieldName) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         User targetUser = userMapper.selectById(request.getHeader("token"));
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", targetUser.getCompanyId()));
         List<SysRichFunction> functionTimeList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看工时统计");
         List<SysRichFunction> functionCostList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看成本统计");
         HttpRespMsg msg = getTimeCostByUserCustom(startDate, endDate, null, customId, request, fieldName);
@@ -6424,7 +6451,7 @@ 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(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         httpRespMsg.data = resp;
 
         return httpRespMsg;
@@ -6754,7 +6781,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             msg.setError(MessageUtils.message("other.tokenOverdue"));
             return msg;
         }
+        TimeType timeType = timeTypeMapper.selectById(thirdPartyInterface.getCompanyId());
         List<Project> allProject = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", thirdPartyInterface.getCompanyId()));
+        List<ProjectMain> projectMainList = projectMainMapper.selectList(new QueryWrapper<ProjectMain>().eq("company_id", thirdPartyInterface.getCompanyId()));
+        List<ProjectLevel> projectLevelList = projectLevelMapper.selectList(new QueryWrapper<ProjectLevel>().eq("company_id", thirdPartyInterface.getCompanyId()));
+        List<ProjectStage> projectStageList = projectStageMapper.selectList(new QueryWrapper<ProjectStage>().eq("company_id", thirdPartyInterface.getCompanyId()));
+        List<ProjectCategory> projectCategoryList = projectCategoryMapper.selectList(new QueryWrapper<ProjectCategory>().eq("company_id", thirdPartyInterface.getCompanyId()));
+        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", thirdPartyInterface.getCompanyId()));
         String message="";
         List<Project> changeProjectList=new ArrayList<>();
         List<Project> inertProjectList=new ArrayList<>();
@@ -6766,6 +6799,37 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if(first.isPresent()){
                         continue;
                     }
+                    if(timeType.getMainProjectState()==1){
+                        Optional<ProjectMain> mainOptional = projectMainList.stream().filter(pm -> pm.getName().equals(project.getProjectMainName())).findFirst();
+                        if(mainOptional.isPresent()){
+                            project.setProjectMainId(mainOptional.get().getId());
+                            project.setCategoryName(mainOptional.get().getCategoryName());
+                            project.setCategory(mainOptional.get().getCategoryId());
+                        }else project.setProjectMainName(null);
+                    }else {
+                        Optional<ProjectCategory> category = projectCategoryList.stream().filter(pc -> pc.getName().equals(project.getCategoryName())).findFirst();
+                        if(category.isPresent()){
+                            project.setProjectMainId(null);
+                            project.setProjectMainName(null);
+                            project.setCategoryName(category.get().getName());
+                            project.setCategory(category.get().getId());
+                        }else project.setCategoryName(null);
+                    }
+                    if(timeType.getProjectLevelState()==1){
+                        Optional<ProjectLevel> level = projectLevelList.stream().filter(pl -> pl.getProjectLevelName().equals(project.getLevelString())).findFirst();
+                        if(level.isPresent()){
+                            project.setLevel(level.get().getId());
+                        }
+                    }
+                    Optional<User> user = userList.stream().filter(ul -> ul.getJobNumber()!=null&&ul.getJobNumber().equals(project.getInchargerId())).findFirst();
+                    if(user.isPresent()){
+                        project.setInchargerId(user.get().getId());
+                        project.setInchargerName(user.get().getName());
+                    }
+                    Optional<ProjectStage> stage = projectStageList.stream().filter(ps -> ps.getProjectStageName().equals(project.getCurrentStageName())).findFirst();
+                    if(stage.isPresent()){
+                        project.setCurrentStageId(stage.get().getId());
+                    }else project.setCurrentStageName(null);
                     project.setCompanyId(thirdPartyInterface.getCompanyId());
                     inertProjectList.add(project);
                 }
@@ -6773,6 +6837,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     //message+="成功添加"+inertProjectList.size()+"条项目数据";
                     message+=MessageUtils.message("project.upDataSuc",inertProjectList.size());
                 }
+                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){
@@ -6780,16 +6847,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         taskGroupService.saveBatch(taskGroupList);
                     }
                     ProjectSeparate projectSeparate = project.getProjectSeparate();
-                    if(projectSeparate!=null){
-                        projectSeparate.setId(project.getId());
-                        projectSeparateService.save(projectSeparate);
-                    }
+                    projectSeparate.setId(project.getId());
+                    projectSeparateService.saveOrUpdate(projectSeparate);
                 }
             }
         }else if(changeType.equals("update_project")){
             if(projectList!=null &&projectList.size()>0){
                 for (Project project : projectList) {
                     Optional<Project> first = allProject.stream().filter(ap ->ap.getProjectCode()!=null&& ap.getProjectCode().equals(project.getProjectCode())).findFirst();
+                    Optional<User> user = userList.stream().filter(ul ->ul.getJobNumber()!=null&&ul.getJobNumber().equals(project.getInchargerId())).findFirst();
+                    if(user.isPresent()){
+                        project.setInchargerId(user.get().getId());
+                        project.setInchargerName(user.get().getName());
+                    }
                     if(first.isPresent()){
                         project.setId(first.get().getId());
                         project.setCompanyId(thirdPartyInterface.getCompanyId());
@@ -6803,7 +6873,7 @@ 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("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){
@@ -6819,10 +6889,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         taskGroupService.saveOrUpdateBatch(taskGroupList);
                     }
                     ProjectSeparate projectSeparate = project.getProjectSeparate();
-                    Optional<ProjectSeparate> first = projectSeparateList.stream().filter(pl -> pl.getId().equals(project.getId())).findFirst();
-                    if(first.isPresent()) {
-                        projectSeparate.setId(first.get().getId());
-                    }
+                    projectSeparate.setId(project.getId());
+                    projectSeparateService.saveOrUpdate(projectSeparate);
                     projectSeparateService.saveOrUpdate(projectSeparate);
                 }
             }

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

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.entity.ProviderInfo;
 import com.management.platform.entity.User;
+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.ProviderInfoService;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
@@ -43,6 +45,8 @@ public class ProviderInfoServiceImpl extends ServiceImpl<ProviderInfoMapper, Pro
     ProviderInfoMapper providerInfoMapper;
     @Resource
     UserMapper userMapper;
+    @Resource
+    WxCorpInfoMapper wxCorpInfoMapper;
     @Value(value = "${upload.path}")
     String path;
     @Override
@@ -158,6 +162,7 @@ public class ProviderInfoServiceImpl extends ServiceImpl<ProviderInfoMapper, Pro
     @Override
     public HttpRespMsg exportData(HttpServletRequest request) {
         User user = userMapper.selectById(request.getHeader("token"));
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
         List<List<String>> dataList=new ArrayList<>();
         //String[] titleString=new String[]{"供应商编号","供应商名称","分类","联系人","联系电话","邮箱","地址","备注"};
         String[] titleString=new String[]{MessageUtils.message("excel.supplierNo"),MessageUtils.message("excel.supplierName"),MessageUtils.message("excel.classification"),MessageUtils.message("excel.contacts"),MessageUtils.message("excel.phone"),MessageUtils.message("excel.email"),MessageUtils.message("excel.address"),MessageUtils.message("excel.remarks")};
@@ -179,7 +184,7 @@ public class ProviderInfoServiceImpl extends ServiceImpl<ProviderInfoMapper, Pro
         //生成excel文件导出
         //String fileName = "供应商统计_"+System.currentTimeMillis();
         String fileName = MessageUtils.message("fileName.supStat")+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         httpRespMsg.data = resp;
         return httpRespMsg;

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

@@ -5,13 +5,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.entity.ReportExtraDegree;
 import com.management.platform.entity.TimeType;
 import com.management.platform.entity.User;
+import com.management.platform.entity.WxCorpInfo;
 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.ReportExtraDegreeService;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
+import com.qq.weixin.mp.aes.WXBizMsgCrypt;
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.ss.usermodel.Row;
@@ -49,6 +52,8 @@ public class ReportExtraDegreeServiceImpl extends ServiceImpl<ReportExtraDegreeM
     UserMapper userMapper;
     @Resource
     TimeTypeMapper timeTypeMapper;
+    @Resource
+    WxCorpInfoMapper wxCorpInfoMapper;
     @Override
     public HttpRespMsg importData(HttpServletRequest request, MultipartFile multipartFile) {
         HttpRespMsg msg=new HttpRespMsg();
@@ -152,6 +157,7 @@ public class ReportExtraDegreeServiceImpl extends ServiceImpl<ReportExtraDegreeM
     public HttpRespMsg exportData(HttpServletRequest request) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
         List<ReportExtraDegree> reportExtraDegreeList = reportExtraDegreeMapper.selectList(new QueryWrapper<ReportExtraDegree>().eq("company_id", user.getCompanyId()));
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
         List<String> titleList=new ArrayList<>();
@@ -165,7 +171,7 @@ public class ReportExtraDegreeServiceImpl extends ServiceImpl<ReportExtraDegreeM
         }
         //生成excel文件导出
         String fileName = timeType.getCustomDegreeName()+"_"+System.currentTimeMillis();
-        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         httpRespMsg.data = resp;
         return httpRespMsg;
     }

+ 5 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -3111,6 +3111,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     @Override
     public HttpRespMsg exportUserDailyWorkTime(HttpServletRequest request, String startDate, String endDate) {
         HttpRespMsg msg = getUserDailyWorkTime(request, startDate, endDate);
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         //String[] weekDayCHN = {"周一","周二","周三","周四","周五","周六","周日"};
         String[] weekDayCHN = {MessageUtils.message("week.Monday"),MessageUtils.message("week.Tuesday"),MessageUtils.message("week.Wednesday"),MessageUtils.message("week.Thursday"),MessageUtils.message("week.Friday"),MessageUtils.message("week.Saturday"),MessageUtils.message("week.Sunday")};
         HashMap map = (HashMap) msg.data;
@@ -3161,7 +3163,7 @@ 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(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         httpRespMsg.data = resp;
         return httpRespMsg;
@@ -4219,6 +4221,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         HttpRespMsg msg = getNoReportUserList(request, startDate, endDate);
         String token = request.getHeader("TOKEN");
         TimeType timeType = timeTypeMapper.selectById(userMapper.selectById(token).getCompanyId());
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", userMapper.selectById(token).getCompanyId()));
         //String[] weekDayCHN = {"周一","周二","周三","周四","周五","周六","周日"};
         String[] weekDayCHN = {MessageUtils.message("week.Monday"),MessageUtils.message("week.Tuesday"),MessageUtils.message("week.Wednesday"),MessageUtils.message("week.Thursday"),MessageUtils.message("week.Friday"),MessageUtils.message("week.Saturday"),MessageUtils.message("week.Sunday")};
         List<UserDailyWorkItem> dailyWorkItems = (List<UserDailyWorkItem>) msg.data;
@@ -4255,7 +4258,7 @@ 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(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         httpRespMsg.data = resp;
         return httpRespMsg;

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

@@ -2,13 +2,8 @@ package com.management.platform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.management.platform.entity.SimpleFinance;
-import com.management.platform.entity.SimpleProjectime;
-import com.management.platform.entity.SimpleReport;
-import com.management.platform.entity.User;
-import com.management.platform.mapper.SimpleFinanceMapper;
-import com.management.platform.mapper.SimpleProjectimeMapper;
-import com.management.platform.mapper.SimpleReportMapper;
+import com.management.platform.entity.*;
+import com.management.platform.mapper.*;
 import com.management.platform.service.SimpleFinanceService;
 import com.management.platform.service.SimpleProjectimeService;
 import com.management.platform.service.SimpleReportService;
@@ -69,6 +64,10 @@ public class SimpleReportServiceImpl extends ServiceImpl<SimpleReportMapper, Sim
     SimpleProjectimeMapper simpleProjectimeMapper;
     @Resource
     SimpleProjectimeService simpleProjectimeService;
+    @Resource
+    UserMapper userMapper;
+    @Resource
+    WxCorpInfoMapper wxCorpInfoMapper;
     @Value(value = "${upload.path}")
     private String path;
 
@@ -393,6 +392,7 @@ public class SimpleReportServiceImpl extends ServiceImpl<SimpleReportMapper, Sim
     @Override
     public HttpRespMsg exportData(String yearMonth, Integer companyId, String type, HttpServletRequest request) {
         HttpRespMsg timeCost = getTimeCost(yearMonth, companyId, type, request);
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         HashMap map = (HashMap)timeCost.data;
         List<HashMap> costList = (List<HashMap>)map.get("costList");
         List<List<String>> dataList = new ArrayList<>();
@@ -440,7 +440,7 @@ 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(fileName , dataList, path);
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         httpRespMsg.data = resp;
         return  httpRespMsg;

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

@@ -1,8 +1,14 @@
 package com.management.platform.util;
 
+import com.management.platform.entity.CorpwxJobResult;
+import com.management.platform.entity.WxCorpInfo;
+import com.management.platform.mapper.CorpwxJobResultMapper;
+import com.management.platform.service.WxCorpInfoService;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.*;
+import org.springframework.beans.factory.annotation.Autowired;
 
+import javax.annotation.PostConstruct;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.util.List;
@@ -14,7 +20,18 @@ public class ExcelUtil {
      * @param list      数据
      * @return
      */
-    public static String exportGeneralExcelByTitleAndList(String title, List<List<String>> list, String downloadPath) {
+
+    private static WxCorpInfoService wxCorpInfoService;
+    private static CorpwxJobResultMapper corpwxJobResultMapper;
+    @PostConstruct
+    public void init() {
+        wxCorpInfoService = wxCorpInfoService;
+        corpwxJobResultMapper = corpwxJobResultMapper;
+    }
+
+
+
+    public static String exportGeneralExcelByTitleAndList(WxCorpInfo wxCorpInfo,String title, List<List<String>> list, String downloadPath) {
         String result="系统提示:Excel文件导出成功!";
         String fileName= title+".xls";
         try {
@@ -142,6 +159,42 @@ public class ExcelUtil {
             workBook.write(os);
             os.flush();
             os.close();
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                String mediaId = wxCorpInfoService.getTranslationMediaId(fileName);
+                String jobId = 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 = corpwxJobResultMapper.selectById(jobId);
+                    if (corpwxJobResult != null) {
+                        if (corpwxJobResult.getErrCode() == 0) {
+                            syncTranslationResult = 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();