Переглянути джерело

相关人员 部门导出修改

yurk 2 роки тому
батько
коміт
c8a0c3c287

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

@@ -79,6 +79,7 @@ public class ProjectRequirementController {
         SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
         HttpRespMsg msg = new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("TOKEN")).getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         int startIndex = (pageIndex-1)*pageSize;
         LocalDate now = LocalDate.now();
         now = now.minusDays(7);
@@ -95,7 +96,7 @@ public class ProjectRequirementController {
             taskGroupUserIds=groupParticipatorList.stream().map(GroupParticipator::getUserId).collect(Collectors.toList());
             taskGroupUserIds.add("-1");
         }
-        List<ProjectRequirement> projectRequirements = projectRequirementMapper.customSelect(companyId, startDate, projectId, projectIds.size()==0?null:projectIds, startIndex, pageSize,reStartDate,reEndDate,taskGroupUserIds.size()==0?null:taskGroupUserIds);
+        List<ProjectRequirement> projectRequirements = projectRequirementMapper.customSelect(wxCorpInfo.getSaasSyncContact(),companyId, startDate, projectId, projectIds.size()==0?null:projectIds, startIndex, pageSize,reStartDate,reEndDate,taskGroupUserIds.size()==0?null:taskGroupUserIds);
         List<Integer> ids = projectRequirements.stream().map(pr -> pr.getProjectId()).collect(Collectors.toList());
         List<Task> milepostList=taskMapper.selectMilepost(ids.size()==0?null:ids);
         projectRequirements.forEach(pr->{
@@ -133,7 +134,7 @@ public class ProjectRequirementController {
             taskGroupUserIds=groupParticipatorList.stream().map(GroupParticipator::getUserId).collect(Collectors.toList());
             taskGroupUserIds.add("-1");
         }
-        List<ProjectRequirement> projectRequirementList = projectRequirementMapper.customSelect(companyId,startDate, projectId,  projectIds.size()==0?null:projectIds, null, null,null,null,taskGroupUserIds.size()==0?null:taskGroupUserIds);
+        List<ProjectRequirement> projectRequirementList = projectRequirementMapper.customSelect(wxCorpInfo.getSaasSyncContact(),companyId,startDate, projectId,  projectIds.size()==0?null:projectIds, null, null,null,null,taskGroupUserIds.size()==0?null:taskGroupUserIds);
         List<Integer> collect = projectRequirementList.stream().map(pr -> pr.getProjectId()).collect(Collectors.toList());
         List<Task> milepostList=taskMapper.selectMilepost(collect);
         projectRequirementList.forEach(pr->{
@@ -150,9 +151,19 @@ public class ProjectRequirementController {
         dataList.add(nameList);
         projectRequirementList.forEach(pr->{
             List<String> resultData=new ArrayList<>();
+            String[] split = pr.getActiveUsers().split(",");
+            List<String> corpwxUseridList=new ArrayList<>();
+            Arrays.asList(split).forEach(st->{
+                corpwxUseridList.add("$userName="+st+"$");
+            });
+            String userString = corpwxUseridList.toString();
             resultData.add(pr.getProjectCode());
             resultData.add(pr.getProjectName());
-            resultData.add(pr.getActiveUsers());
+            if(wxCorpInfo.getSaasSyncContact()==1){
+                resultData.add(userString.replaceAll("\\[","").replaceAll("]",""));
+            }else {
+                resultData.add(pr.getActiveUsers());
+            }
             resultData.add(pr.getMembReq());
             resultData.add(pr.getTaskReq());
             resultData.add(pr.getContractReq());

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

@@ -274,7 +274,11 @@ public class UserCorpwxTimeController {
             String createDate = (String)dataItem.get("createDate");
             dataList.add(createDate);
             dataList.add((String)dataItem.get("weekDayTxt"));
-            dataList.add((String)dataItem.get("username"));
+            if(wxCorpInfo.getSaasSyncContact()==1){
+                dataList.add("$userName="+(String)dataItem.get("corpwxUserid")+"$");
+            }else{
+                dataList.add((String)dataItem.get("username"));
+            }
             dataList.add((String)dataItem.get("startTime"));
             dataList.add((String)dataItem.get("endTime"));
 //            dataList.add(""+(Double)dataItem.get("cardTime"));

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectRequirementMapper.java

@@ -15,7 +15,7 @@ import java.util.List;
  */
 public interface ProjectRequirementMapper extends BaseMapper<ProjectRequirement> {
 
-    public List<ProjectRequirement> customSelect(Integer companyId, String startDate, Integer projectId, List<Integer> refProjectIdList, Integer startIndex, Integer pageSize,String reStartDate,String reEndDate,List<String> refTaskGroupUserIdList);
+    public List<ProjectRequirement> customSelect(Integer key,Integer companyId, String startDate, Integer projectId, List<Integer> refProjectIdList, Integer startIndex, Integer pageSize,String reStartDate,String reEndDate,List<String> refTaskGroupUserIdList);
 
     long selectCountByDate(Integer companyId, String startDate, Integer projectId, List<Integer> refProjectIdList, Integer startIndex, Integer pageSize, String reStartDate, String reEndDate,List<String> refTaskGroupUserIdList);
 }

+ 16 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -586,6 +586,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
         try {
             User targetUser = userMapper.selectById(request.getHeader("Token"));
             Integer companyId =targetUser.getCompanyId();
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
             //当前用户管理部门
             List<Integer> deptIds=null;
             List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", targetUser.getId()).eq("company_id", companyId));
@@ -641,7 +642,11 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                     dataMap.put("time", time);
                     tempList.add(dataMap);
                 } else {
-                    names.add((String)map.get("user"));
+                    if(wxCorpInfo.getSaasSyncContact()==1){
+                        names.add("$userName="+(String)map.get("corpwxUseid")+"$");
+                    }else {
+                        names.add((String)map.get("user"));
+                    }
                     //这个名字尚未装进数组中
                     List<Map<String, Object>> tempList = new ArrayList<>();
                     if (map.containsKey("project")) {
@@ -733,7 +738,6 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             //生成excel文件导出
             //String fileName = "人员成本统计_"+System.currentTimeMillis();
             String fileName = MessageUtils.message("fileName.costStatistics",System.currentTimeMillis());
-            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
             String resp = ExcelUtil.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
 
             httpRespMsg.data = resp;
@@ -858,7 +862,11 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             for (Map<String, Object> membMap : itemList) {
                 List<String> membRowData = new ArrayList<String>();
                 membRowData.add(String.valueOf(seq));
-                membRowData.add((String)membMap.get("name"));
+                if(wxCorpInfo.getSaasSyncContact()==1){
+                    membRowData.add("$userName="+(String)membMap.get("name")+"$");
+                }else {
+                    membRowData.add((String)membMap.get("name"));
+                }
                 membRowData.add(((Double)membMap.get("cost")).toString());
                 allList.add(membRowData);
                 totalCostTime += (Double)membMap.get("cost");
@@ -903,7 +911,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));
             List<Integer> deptIds = null;
             List<Department> allDeptList = null;
             //首先校验有无权限
@@ -938,9 +946,9 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             Double totalCost = 0.0;
             for (Map<String, Object> map : list) {
 
-                if (tempMap.containsKey(map.get("user"))) {
+                if (tempMap.containsKey(wxCorpInfo.getSaasSyncContact()==1?map.get("corpwxUserid"):map.get("user"))) {
                     //这个名字已经装进数组中了
-                    List<Map<String, Object>> tempList = tempMap.get(map.get("user"));
+                    List<Map<String, Object>> tempList = tempMap.get(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);
@@ -951,6 +959,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                     User user = new User();
                     user.setId((String)map.get(("id")));
                     user.setName((String)map.get("user"));
+                    user.setCorpwxUserid((String)map.get("corpwxUserid"));
                     userList.add(user);
                     //这个名字尚未装进数组中
                     List<Map<String, Object>> tempList = new ArrayList<>();
@@ -962,7 +971,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                         dataMap.put("cost", cost);
                         tempList.add(dataMap);
                     }
-                    tempMap.put((String) map.get("user"), tempList);
+                    tempMap.put((String) (wxCorpInfo.getSaasSyncContact()==1?map.get("corpwxUserid"):map.get("user")), tempList);
                 }
             }
             Map<String, Object> finalMap = new HashMap<>();

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/ExcelUtil.java

@@ -40,6 +40,7 @@ public class ExcelUtil {
 
 
     public static String exportGeneralExcelByTitleAndList(WxCorpInfo wxCorpInfo,String title, List<List<String>> list, String downloadPath) {
+        System.out.println(wxCorpInfo.getCorpid());
         String result="系统提示:Excel文件导出成功!";
         String fileName= title+".xls";
         try {
@@ -169,6 +170,7 @@ public class ExcelUtil {
             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);

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

@@ -37,7 +37,7 @@
 
     <!--根据人员获取成本-->
     <select id="getCostByUser" resultType="java.util.Map">
-        SELECT a.id as id, a.name AS user, a.job_number as jobNumber, c.project_name AS project, SUM(b.working_time) AS time, SUM(b.cost) AS
+        SELECT a.id as id, a.name AS user,a.corpwx_userid as corpwxUserid, a.job_number as jobNumber, c.project_name AS project, SUM(b.working_time) AS time, SUM(b.cost) AS
         money
         FROM user AS a
         LEFT JOIN report AS b ON a.id = b.creator_id
@@ -66,7 +66,7 @@
 
     <!-- 根据人员获取自定义的日报数值 -->
     <select id="getCustomDataByUser" resultType="java.util.Map">
-        SELECT a.id as id, a.name AS user, a.job_number as jobNumber,c.project_name AS project, IFNULL(SUM(b.custom_data),0) AS cost
+        SELECT a.id as id, a.name AS user,a.corpwx_userid as corpwxUserid, a.job_number as jobNumber,c.project_name AS project, IFNULL(SUM(b.custom_data),0) AS cost
         FROM user AS a
         LEFT JOIN report AS b ON a.id = b.creator_id
         LEFT JOIN project AS c ON b.project_id = c.id

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

@@ -31,7 +31,15 @@
 
     <select id="customSelect" resultMap="RichMap">
         SELECT project_requirement.id, project.id AS project_id, project.`project_name`, project.`project_code`, project_requirement.`memb_req`, project_requirement.`task_req`,project_requirement.contract_req,project_requirement.department_speed,project_requirement.start_date,project_requirement.end_date,
-        (SELECT GROUP_CONCAT(DISTINCT user.`name`) FROM report LEFT JOIN `user` ON user.`id` = report.`creator_id` WHERE report.company_id=#{companyId} AND report.create_time >= #{startDate} AND report.`project_id` = project.id
+        (SELECT GROUP_CONCAT(
+        <choose>
+            <when test="key==1">
+                DISTINCT user.`corpwx_userid`
+            </when>
+            <otherwise>
+                DISTINCT user.`name`
+            </otherwise>
+        </choose>) FROM report LEFT JOIN `user` ON user.`id` = report.`creator_id` WHERE report.company_id=#{companyId} AND report.create_time >= #{startDate} AND report.`project_id` = project.id
         <if test="refTaskGroupUserIdList!=null">
         and user.`id` in
         <foreach collection="refTaskGroupUserIdList" open="(" close=")" separator="," item="item">

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

@@ -27,7 +27,7 @@
 
 
     <select id="getUserDataList" resultType="java.util.HashMap" >
-        SELECT user.id as userId, DATE_FORMAT(a.create_date, '%Y/%m/%d') as createDate,a.start_time as startTime, a.end_time as endTime, a.work_hours as workHours, user.name as username,a.week_day as weekDay,
+        SELECT user.id as userId, DATE_FORMAT(a.create_date, '%Y/%m/%d') as createDate,a.start_time as startTime, a.end_time as endTime, a.work_hours as workHours, user.name as username,user.corpwx_userid as corpwxUserid,a.week_day as weekDay,
         week_day_txt as weekDayTxt,card_time as cardTime, outdoor_time as outdoorTime, ask_leave_time as askLeaveTime FROM user_corpwx_time a LEFT JOIN user ON user.`corpwx_userid` = a.corpwx_userid
         WHERE a.create_date BETWEEN #{startDate} AND #{endDate}
         AND a.company_id = #{companyId}