瀏覽代碼

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper

ggooalice 2 年之前
父節點
當前提交
92c90d0c3f
共有 26 個文件被更改,包括 205 次插入184 次删除
  1. 3 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/AuthRedirectController.java
  2. 6 6
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  3. 57 42
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java
  4. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/ProjectWithStage.java
  5. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/LeaveSheetMapper.java
  6. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java
  7. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  8. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/LeaveSheetServiceImpl.java
  9. 5 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectPercentageServiceImpl.java
  10. 22 76
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  11. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java
  12. 7 7
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages.properties
  13. 7 7
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages_en_US.properties
  14. 12 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/LeaveSheetMapper.xml
  15. 7 2
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml
  16. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/components/select.vue
  17. 3 2
      fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue
  18. 15 2
      fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue
  19. 3 0
      fhKeeper/formulahousekeeper/timesheet/src/views/project/finance.vue
  20. 3 3
      fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue
  21. 2 1
      fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue
  22. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/project/project_gantt.vue
  23. 2 1
      fhKeeper/formulahousekeeper/timesheet/src/views/project/summary.vue
  24. 2 1
      fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue
  25. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue
  26. 36 22
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue

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

@@ -74,16 +74,18 @@ public class AuthRedirectController {
         String url = WeiXinCorpController.GET_CORP_USERINFO_URL.replace("SUITE_ACCESS_TOKEN", getSuiteAccessToken()).replace("CODE", code);
         String forObject = this.restTemplate.getForObject(url, String.class);
         JSONObject obj = JSONObject.parseObject(forObject);
+        System.out.println(obj.toString());
         String wxUserId = obj.getString("UserId");
         String openUserId = obj.getString("open_userid");
         String corpId = obj.getString("CorpId");
 
-        System.out.println("wxUserId="+wxUserId+", openUserId="+openUserId);
+        System.out.println("登录 wxUserId="+wxUserId+", openUserId="+openUserId);
         List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("corpwx_userid", openUserId));
         Integer companyId = 0;
         if (userList.size() > 0) {
             //该用户已存在
             User curUser = userList.get(0);
+            System.out.println("找到用户corpwxUserid=="+curUser.getCorpwxUserid());
             companyId = curUser.getCompanyId();
             if (curUser.getIsActive() == 1) {
                 reqParam.put("userId", curUser.getId());

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

@@ -412,12 +412,12 @@ public class ProjectController {
 
     //分页查询项目各个阶段的汇总工时成本
     @RequestMapping("/getProjectStagesCost")
-    public HttpRespMsg getProjectStagesCost(@RequestParam Integer pageIndex, @RequestParam Integer pageSize, Integer projectId,String stageNames) {
-        return projectService.getProjectStagesCost(pageIndex, pageSize, projectId, request,stageNames);
+    public HttpRespMsg getProjectStagesCost(@RequestParam Integer pageIndex, @RequestParam Integer pageSize, Integer projectId,String stageNames,String startDate,String endDate) {
+        return projectService.getProjectStagesCost(pageIndex, pageSize, projectId, request,stageNames,startDate,endDate);
     }
     @RequestMapping("/exportProjectStagesCost")
-    public HttpRespMsg exportProjectStagesCost(String stageNames) {
-        return projectService.exportProjectStagesCost(request,stageNames);
+    public HttpRespMsg exportProjectStagesCost(String stageNames,String startDate,String endDate) {
+        return projectService.exportProjectStagesCost(request,stageNames,startDate,endDate);
     }
     //导出项目任务报表
     @RequestMapping("/exportProjectTask")
@@ -537,8 +537,8 @@ public class ProjectController {
     }
 
     @RequestMapping("/exportUserWorkingTimeList")
-    public HttpRespMsg exportUserWorkingTimeList(String userId,Integer projectId,String startDate, String endDate){
-        return projectService.exportUserWorkingTimeList(userId,projectId,startDate,endDate,request);
+    public HttpRespMsg exportUserWorkingTimeList(String userId,Integer projectId,String startDate, String endDate,Integer departmentId){
+        return projectService.exportUserWorkingTimeList(userId,projectId,startDate,endDate,request,departmentId);
     }
 
     /**

+ 57 - 42
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -393,7 +393,7 @@ public class WeiXinCorpController {
                 getTicketUrl = getTicketUrl.replace("ACCESS_TOKEN", corpToken);
                 String forObject = this.restTemplate.getForObject(getTicketUrl, String.class);
                 JSONObject json = JSONObject.parseObject(forObject);
-                System.out.println("返回:"+json.toJSONString());
+                System.out.println("getCorpWXAgentConfig返回:"+json.toJSONString());
                 if (json.getIntValue("errcode") == 0) {
                     String ticket = json.getString("ticket");
                     AgentItem it = new AgentItem();
@@ -408,7 +408,7 @@ public class WeiXinCorpController {
                 msg.setError(MessageUtils.message("wx.TicketError"));
                 return msg;
             }
-            System.out.println("jsTicket = " + agentItem.jsTicket);
+            System.out.println("getCorpWXAgentConfig jsTicket = " + agentItem.jsTicket);
             // 对以下字段进行签名
             SortedMap<String, String> packageParams = new TreeMap<String, String>();
             SortedMap<String, String> packageParam = new TreeMap<String, String>();
@@ -517,42 +517,47 @@ public class WeiXinCorpController {
                     if (wxCorpInfo != null && wxCorpInfo.getSaasSyncContact() == 1) {
                         //企业存在,生成对应的用户
                         Integer companyId = wxCorpInfo.getCompanyId();
-                        User user = wxCorpInfoService.generateUserInfo(companyId, corpWxUserId);
-
-                        new Thread(() -> {
-                            //查询详情进行更新
-                            JSONObject userObj = null;
-                            try {
-                                userObj = getUserInfo(getCorpAccessToken(wxCorpInfo), corpWxUserId);
-                            } catch (Exception exception) {
-                                exception.printStackTrace();
-                            }
-                            System.out.println("关注时获取详情userObj=="+userObj);
-                            //成功获取到通讯录的个人详情
-                            String userId = userObj.getString("userid");
-                            String openUserId = userObj.getString("open_userid");
-                            User userUpdate = new User();
-                            userUpdate.setId(user.getId());
-                            userUpdate.setName(userObj.getString("name"))
-                                    .setPhone(userObj.getString("mobile"))
-                                    .setCorpwxUserid(openUserId)
-                                    .setCorpwxRealUserid(userId)
-                                    .setJobNumber(openUserId.equals(userId)?null:userId);
+                        User find = userMapper.selectOne(new QueryWrapper<User>().eq("company_id", companyId).eq("corpwx_userid", corpWxUserId));
+                        if (find == null) {
+                            User user = wxCorpInfoService.generateUserInfo(companyId, corpWxUserId);
 
-                            //通过getUserInfo接口获取到的json key是小写的
-                            JSONArray department = userObj.getJSONArray("department");
-                            Integer curUserWXDeptid = getMaxDeptIdFromArray(department);
-                            Department sysDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
+                            new Thread(() -> {
+                                //查询详情进行更新
+                                JSONObject userObj = null;
+                                try {
+                                    userObj = getUserInfo(getCorpAccessToken(wxCorpInfo), corpWxUserId);
+                                } catch (Exception exception) {
+                                    exception.printStackTrace();
+                                }
+                                System.out.println("关注时获取详情userObj=="+userObj);
+                                //成功获取到通讯录的个人详情
+                                String userId = userObj.getString("userid");
+                                String openUserId = userObj.getString("open_userid");
+                                User userUpdate = new User();
+                                userUpdate.setId(user.getId());
+                                userUpdate.setName(userObj.getString("name"))
+                                        .setPhone(userObj.getString("mobile"))
+                                        .setCorpwxUserid(openUserId)
+                                        .setCorpwxRealUserid(userId)
+                                        .setJobNumber(openUserId.equals(userId)?null:userId);
 
-                            if (sysDept != null) {
-                                userUpdate.setDepartmentId(sysDept.getDepartmentId());
-                                List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
-                                userUpdate.setDepartmentCascade(convertDepartmentIdToCascade(user.getDepartmentId(), allDeptList));
-                            }
-                            userMapper.updateById(userUpdate);
-                            System.out.println("======关注时更新人员======");
-                            sendCardMsg(corpWxUserId);
-                        }).start();
+                                //通过getUserInfo接口获取到的json key是小写的
+                                JSONArray department = userObj.getJSONArray("department");
+                                Integer curUserWXDeptid = getMaxDeptIdFromArray(department);
+                                Department sysDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", curUserWXDeptid));
+
+                                if (sysDept != null) {
+                                    userUpdate.setDepartmentId(sysDept.getDepartmentId());
+                                    List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+                                    userUpdate.setDepartmentCascade(convertDepartmentIdToCascade(user.getDepartmentId(), allDeptList));
+                                }
+                                userMapper.updateById(userUpdate);
+                                System.out.println("======关注时更新人员======");
+                                sendCardMsg(corpWxUserId);
+                            }).start();
+                        } else {
+                            log.info("当前用户已存在");
+                        }
                     }
                 } else if ("enter_agent".equals(event)) {
 
@@ -738,12 +743,12 @@ public class WeiXinCorpController {
             jsonObject = jsonObject.getJSONObject("xml");
             //订单回调。存储更新订单、更新公司续费情况
             if (jsonObject.has("InfoType")){
-                System.err.println("+++++++++++++++++++订单回调开始++++++++++++++++++++++");
-                System.err.println(jsonObject);
                 String infoType = jsonObject.getString("InfoType");
                 String orderId = "";
                 if (jsonObject.has("OrderId")){
                     orderId = jsonObject.getString("OrderId");
+                    System.err.println("+++++++++++++++++++订单回调开始++++++++++++++++++++++");
+                    System.err.println(jsonObject);
                 }
                 WxOrder wxOrder = null;
                 switch (infoType){
@@ -810,8 +815,16 @@ public class WeiXinCorpController {
                         break;
                 }
             }
-
-            if (jsonObject.has("AuthCode")) {
+            if ("cancel_auth".equals(jsonObject.get("InfoType"))) {
+                //企业取消授权通知,更新ticket缓存
+                String corpId = jsonObject.getString("AuthCorpId");
+                if (corpTicketMap.containsKey(corpId)) {
+                    System.out.println("企业取消授权,清除缓存ticket=="+corpId);
+                    agentCorpTicketMap.remove(corpId);
+                    corpTicketMap.remove(corpId);
+                }
+            }
+            else if (jsonObject.has("AuthCode")) {
                 //企业授权通知
                 String authCode = jsonObject.getString("AuthCode");
                 new Thread(){
@@ -1231,7 +1244,7 @@ public class WeiXinCorpController {
         headers.setContentType(MediaType.APPLICATION_JSON);
         JSONObject reqParam = new JSONObject();
         reqParam.put("auth_code",  authCode);
-
+        log.info("处理企业授权开通==========");
         HttpEntity<String> requestEntity = new HttpEntity<String>(reqParam.toJSONString(), headers);
         ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
                 HttpMethod.POST, requestEntity, String.class);
@@ -1395,6 +1408,7 @@ public class WeiXinCorpController {
                                 .setJobNumber(openUserId.equals(userId)?null:userId)
                                 .setCorpwxRealUserid(userId);
                         userMapper.insert(user);
+                        System.out.println("生成超级管理员:"+userId);
                         //todo: 生成初始测试项目及任务
                         Project project=new Project();
                         project.setCompanyId(company.getId());
@@ -1548,7 +1562,7 @@ public class WeiXinCorpController {
                     String userId = authUserInfo.getString("userid");//授权人的userid
                     String openUserId = authUserInfo.getString("open_userid");
                     //检查该授权人是否已经存在
-                    if (userMapper.selectCount(new QueryWrapper<User>().eq("corpwx_userid", userId)) == 0) {
+                    if (userMapper.selectCount(new QueryWrapper<User>().eq("corpwx_userid", openUserId)) == 0) {
                         JSONObject userDetail = getUserInfo(curCorpAccessToken, userId);
                         //检查是否有超级管理员
                         SysRole smanager = sysRoleMapper.selectOne(
@@ -2263,6 +2277,7 @@ public class WeiXinCorpController {
                             changeUser.setDepartmentId(0);
                             changeUser.setDepartmentCascade("0");
                         }
+                        changeUser.setCorpwxDeptid(userItem.getCorpwxDeptid());
                     }
                     if (oldUser.getCorpwxRealUserid() == null || !userItem.getCorpwxRealUserid().equals(oldUser.getCorpwxRealUserid())) {
                         changeUser.setId(oldUser.getId());

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

@@ -13,6 +13,8 @@ public class ProjectWithStage {
     public Integer id;
     public String projectName;
     public String projectCode;
+    public String startDate;
+    public String endDate;
     //阶段的成本
     public List<StageCost> stageCostList;
 }

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

@@ -25,5 +25,5 @@ public interface LeaveSheetMapper extends BaseMapper<LeaveSheet> {
 
     List<LeaveSheet> selectLeave(Integer companyId, String startDate, String endDate);
 
-    List<Map<String,Object>> selectLeaveAll(Integer companyId, String startDate, String endDate);
+    List<Map<String,Object>> selectLeaveAll(Integer companyId, String startDate, String endDate,List<Integer> branchDepartment,List<Integer> deptIds);
 }

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

@@ -68,7 +68,7 @@ public interface ProjectMapper extends BaseMapper<Project> {
     List<Map> getTaskPlanByProject(@Param("projectIds") List<Integer> projectIds, @Param("startDate") String startDate,
                                 @Param("endDate") String endDate, @Param("companyId") Integer companyId);
 
-    List<ProjectWithStage> selectWithStage(Integer companyId, Integer startIndex, Integer endIndex, Integer projectId,List<Integer> inchagerIds);
+    List<ProjectWithStage> selectWithStage(Integer companyId, Integer startIndex, Integer endIndex, Integer projectId,List<Integer> inchagerIds,String startDate,String endDate);
 
     List<Map<String, Object>> getTimeCostReport(@Param("companyId") Integer companyId, @Param("startDate") String startDate, @Param("endDate") String endDate,
                                           @Param("projectId") Integer projectId,@Param("deptIds")List<Integer> deptIds);

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

@@ -99,9 +99,9 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String userId, Integer projectId, String groupName,Integer taskType, HttpServletRequest request);
 
-    HttpRespMsg getProjectStagesCost(Integer pageIndex, Integer pageSize, Integer projectId, HttpServletRequest request,String stageNames);
+    HttpRespMsg getProjectStagesCost(Integer pageIndex, Integer pageSize, Integer projectId, HttpServletRequest request,String stageNames,String startDate,String endDate);
 
-    HttpRespMsg exportProjectStagesCost( HttpServletRequest request,String stageNames);
+    HttpRespMsg exportProjectStagesCost( HttpServletRequest request,String stageNames,String startDate,String endDate);
 
     HttpRespMsg getOvertimeList(OvertimeListVO overtimeListVO);
 
@@ -148,7 +148,7 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg getUserWorkingTimeList(String userId, Integer projectId, String startDate, String endDate, Integer pageIndex, Integer pageSize,HttpServletRequest request,Integer departmentId);
 
-    HttpRespMsg exportUserWorkingTimeList(String userId, Integer projectId, String startDate, String endDate,HttpServletRequest request);
+    HttpRespMsg exportUserWorkingTimeList(String userId, Integer projectId, String startDate, String endDate,HttpServletRequest request,Integer departmentId);
 
     HttpRespMsg getUserReportTimelinessRate(HttpServletRequest request, String startDate, String endDate, Integer departmentId, String userId,Integer pageIndex,Integer pageSize);
 

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

@@ -252,7 +252,7 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
                 .eq(status != null, "status", status)
                 .eq(leaveType != null, "leave_type", leaveType)
                 .le(endTime != "" && endTime != null, "start_date", endTime)
-                .ge(startTime != "" && startTime != null, "end_date", startTime);
+                .ge(startTime != "" && startTime != null, "end_date", startTime).orderByDesc("id");
         List<LeaveSheet> leaveSheets = leaveSheetMapper.selectList(qw);
         if (leaveSheets.size()==0){
             return httpRespMsg;

+ 5 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectPercentageServiceImpl.java

@@ -17,6 +17,7 @@ import com.management.platform.service.ProjectPercentageService;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
+import com.taobao.api.internal.util.StringUtils;
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.ss.usermodel.*;
@@ -239,6 +240,10 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
                             continue;
                         }
                         String stringCellValue = row.getCell(i).getStringCellValue();
+                        //对于excel中的空白,设置比例为0
+                        if (StringUtils.isEmpty(stringCellValue)) {
+                            stringCellValue = "0";
+                        }
                         s+=Integer.parseInt(stringCellValue);
                         String pid = projectList.get(i-1);
                         jsonObject.put(pid,stringCellValue);

+ 22 - 76
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -2598,7 +2598,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg getProjectStagesCost(Integer pageIndex, Integer pageSize, Integer projectId, HttpServletRequest request,String stageNames) {
+    public HttpRespMsg getProjectStagesCost(Integer pageIndex, Integer pageSize, Integer projectId, HttpServletRequest request,String stageNames,String startDate,String endDate) {
         String token = request.getHeader("TOKEN");
         List<String> stageNameList=null;
         if(stageNames!=null){
@@ -2635,7 +2635,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             queryWrapper.in("id",inchagerIds);
         }
         Integer total = projectMapper.selectCount(queryWrapper);
-        List<ProjectWithStage> record = projectMapper.selectWithStage(companyId, startIndex, endIndex, projectId,inchagerIds);
+        List<ProjectWithStage> record = projectMapper.selectWithStage(companyId, startIndex, endIndex, projectId,inchagerIds,startDate,endDate);
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看阶段成本");
         if (functionList.size() == 0) {
             //去掉成本
@@ -2666,7 +2666,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg exportProjectStagesCost(HttpServletRequest request,String stageNames) {
+    public HttpRespMsg exportProjectStagesCost(HttpServletRequest request,String stageNames,String startDate,String endDate) {
         String token = request.getHeader("TOKEN");
         List<String> stageNameList=null;
         if(stageNames!=null){
@@ -2694,7 +2694,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 inchagerIds.add(-1);
             }
         }
-        List<ProjectWithStage> record = projectMapper.selectWithStage(companyId, null, null, null,inchagerIds);
+        List<ProjectWithStage> record = projectMapper.selectWithStage(companyId, null, null, null,inchagerIds,startDate,endDate);
         //获取全部的列
         List<Integer> collect = record.stream().map(ProjectWithStage::getId).collect(Collectors.toList());
         QueryWrapper<Stages> queryWrapper=new QueryWrapper<>();
@@ -4961,7 +4961,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }else {
                         membRowData.add("");
                     }
-                    membRowData.add(String.valueOf(membMap.get("corpwxDeptId")==null?"":membMap.get("corpwxDeptId")));
+                    String s = String.valueOf(membMap.get("corpwxDeptId") == null ? "" : membMap.get("corpwxDeptId"));
+                    membRowData.add("$departmentName=" + s + "$");
                 }else {
                     membRowData.add((String)membMap.get("name"));
                     membRowData.add((String)membMap.get("departmentName"));
@@ -5814,8 +5815,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     @Override
     public HttpRespMsg getUserWorkingTimeList(String userId, Integer projectId, String startDate, String endDate, Integer pageIndex, Integer pageSize,HttpServletRequest request,Integer departmentId) {
         //1.获取分页结果
-        Integer size=pageSize;//查询条数
-        Integer start =(pageIndex-1)*size;//limit开始
+        if (pageSize!=null && pageIndex!=null){
+            Integer size=pageSize;//查询条数
+            Integer start =(pageIndex-1)*size;//limit开始
+        }
         HttpRespMsg msg = new HttpRespMsg();
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
@@ -5908,7 +5911,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             li.put("proportion",nf.format(divide));
         });
         //全月请假人员
-        List<Map<String, Object>> maps = leaveSheetMapper.selectLeaveAll(companyId, startDate, endDate);
+        List<Map<String, Object>> maps = leaveSheetMapper.selectLeaveAll(companyId, startDate, endDate,branchDepartment,deptIds);
         TimeType timetype = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", user.getCompanyId()));
         List<Map<String, Object>> leaveStaff = new ArrayList<>();
         //去重
@@ -5938,10 +5941,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             if (!stringObjectHashMap.containsKey("deptName")){
                 stringObjectHashMap.put("deptName","未分配");
             }
-            stringObjectHashMap.put("isPublic",0);
+            stringObjectHashMap.put("isPublic",0.0);
             stringObjectHashMap.put("jobNumber",map.get("jobNumber"));
-            Double leaveHours = 0.0;
-            int days = WorkDayCalculateUtils.getWorkDaysListInRange(map.get("startDate").toString(),map.get("endDate").toString(), 0).size();
+            double leaveHours = 0.0;
+            //int days = WorkDayCalculateUtils.getWorkDaysListInRange(map.get("startDate").toString(),map.get("endDate").toString(), 0).size();
             for (Map<String, Object> stringObjectMap : collectMap) {
                 if (map.get("id").toString().equals(stringObjectMap.get("id"))){
                     LocalDate leaveStart = LocalDate.parse(map.get("startDate").toString(), dateTimeFormatter);
@@ -5974,7 +5977,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             leaveHours = new BigDecimal(leaveHours).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
             stringObjectHashMap.put("leaveSum",leaveHours+"h");
             stringObjectHashMap.put("proportion","0%");
-            stringObjectHashMap.put("unPublic",0);
+            stringObjectHashMap.put("unPublic",0.0);
             stringObjectHashMap.put("userId",map.get("id"));
             if (wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
                 stringObjectHashMap.put("username",map.get("wxOpenId"));
@@ -6023,44 +6026,21 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg exportUserWorkingTimeList(String userId, Integer projectId, String startDate, String endDate,HttpServletRequest request) {
+    public HttpRespMsg exportUserWorkingTimeList(String userId, Integer projectId, String startDate, String endDate,HttpServletRequest request,Integer departmentId) {
         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;
-        List<Department> allDepartmentList=departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",user.getCompanyId()));
-        List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", user.getId()).eq("company_id",user.getCompanyId()));
-        List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", user.getId()));
-        //判断查看权限
-        if(functionAllList.size()==0){
-            deptIds=new ArrayList<>();
-            deptIds.add(-1);
-            if(functionDeptList.size()>0){
-                List<Integer> collect = departmentList.stream().distinct().map(dm -> dm.getDepartmentId()).collect(Collectors.toList());
-                List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
-                collect.addAll(otherCollect);
-                for (Integer integer : collect) {
-                    List<Integer> branchDepartment = getBranchDepartment(integer, allDepartmentList);
-                    deptIds.addAll(branchDepartment);
-                }
-            }
-        }
-        List<Map<String, Object>> list = projectMapper.getUserWorkingTimeList(userId, user.getCompanyId(), startDate, endDate, projectId,null,null,null,deptIds);
+        HttpRespMsg userWorkingTimeList = getUserWorkingTimeList(userId,projectId,startDate, endDate, null,null,request,departmentId);
+        HashMap result = (HashMap) userWorkingTimeList.data;
+        List<Map<String, Object>> resultList = (List<Map<String, Object>>) result.get("result");
         //String[] string={"人员","部门","工号","普通项目工时","公共项目工时","请假时长","总工时","公共项目工时占比"};
         String[] string={MessageUtils.message("entry.personnel"),MessageUtils.message("excel.department"),MessageUtils.message("entry.No"),MessageUtils.message("entry.GenProHours"),MessageUtils.message("entry.PubProHours"),MessageUtils.message("leave.duration"),MessageUtils.message("entry.totalManHours"),MessageUtils.message("entry.PubProHoursProp")};
         List<List<String>> dataList=new ArrayList<>();
         dataList.add(Arrays.asList(string));
         Integer companyId = user.getCompanyId();
-        List<LeaveSheet> leaveSheet = leaveSheetMapper.selectLeave(companyId,startDate,endDate);
         List<Department> deptName = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
-        TimeType allDay = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", companyId));
-        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        LocalDate localStartDate = LocalDate.parse(startDate, dateTimeFormatter);
-        LocalDate localEndDate = LocalDate.parse(endDate, dateTimeFormatter);
-        for(Map<String,Object> item:list){
+        for(Map<String,Object> item:resultList){
             //取部门名
             for (Department department : deptName) {
                 if (item.get("deptId").toString().equals(department.getDepartmentId().toString())){
@@ -6069,47 +6049,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }else {
                         item.put("deptName",getSupDepartment(department));
                     }
-                    continue;
+                    break;
                 }
             }
             if (!item.containsKey("deptName")){
                 item.put("deptName","未分配");
             }
-            //计算请假时间
-            Float leaveSum = 0F;
-            for (LeaveSheet sheet : leaveSheet) {
-                if (sheet.getOwnerId().equals(item.get("userId"))){
-//                    System.err.println(sheet.getOwnerName());
-//                    System.err.println(sheet.getStartDate());
-//                    System.err.println(sheet.getEndDate());
-                    Float timeHours = sheet.getTimeHours();
-                    //若请假开始时间不在筛选时间内
-                    if (sheet.getStartDate().isBefore(localStartDate)) {
-                        long day = localStartDate.toEpochDay() - sheet.getStartDate().toEpochDay();
-                        timeHours -= day * allDay.getAllday();
-//                        System.err.println("请假开始时间不在筛选时间内,应减去" + day * allDay.getAllday()+"小时");
-                    }
-                    //若请假结束时间不在筛选时间内
-                    if (sheet.getEndDate().isAfter(localEndDate)) {
-                        long day = sheet.getEndDate().toEpochDay() - localEndDate.toEpochDay();
-                        timeHours -= day * allDay.getAllday();
-//                        System.err.println("请假结束时间不在筛选时间内,应减去"+day * allDay.getAllday()+"小时");
-                    }
-//                    System.err.println("计算完的时间为:" + timeHours);
-                    leaveSum += timeHours;
-                }
-            }
-//            System.err.println("总时间为:"+leaveSum);
-            item.put("leaveSum",leaveSum + "h");
-            double workTimeDouble = Double.parseDouble(item.get("workingTime").toString()) + leaveSum;
-            BigDecimal workTimeBig = new BigDecimal(workTimeDouble);
-            item.put("workingTime",workTimeBig.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
             List<String> subList=new ArrayList<>();
-            double isPublic = (double) item.get("isPublic");
-            double workingTime = (double) item.get("workingTime");
-            BigDecimal bdIsPublic=new BigDecimal(isPublic);
-            BigDecimal divide = bdIsPublic.divide(BigDecimal.valueOf(workingTime),2,BigDecimal.ROUND_HALF_UP);
-            NumberFormat nf = NumberFormat.getPercentInstance();
             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
                 subList.add("$userName="+(item.get("corpwxUserId")==null?"":item.get("corpwxUserId"))+"$");
             }else {
@@ -6121,7 +6067,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             subList.add(String.valueOf(item.get("isPublic")));
             subList.add(String.valueOf(item.get("leaveSum")));
             subList.add(String.valueOf(item.get("workingTime")));
-            subList.add(String.valueOf(nf.format(divide)));
+            subList.add(String.valueOf(item.get("proportion")));
             dataList.add(subList);
         }
         //生成excel文件导出

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

@@ -281,7 +281,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
     @Override
     public void sendWXCorpTemplateCardMsg(WxCorpInfo corpInfo, String corpUserid, JSONObject msg) {
         try {
-//            if (isDev) return;
+            if (isDev) return;
             String accessToken = getCorpAccessToken(corpInfo);
             String url=URL_SEND_WXCORP_MSG.replaceAll("ACCESS_TOKEN", accessToken);
             HttpHeaders headers = new HttpHeaders();
@@ -300,7 +300,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                 JSONObject json = JSONObject.parseObject(resp);
                 if (json.getIntValue("errcode") == 0) {
                     //发送成功
-
+                    System.out.println("发送企业微信模板消息成功");
                 } else {
                     System.out.println("发送企业微信模板消息发生错误==" + resp);
                     throw new Exception(json.toJSONString());

+ 7 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages.properties

@@ -400,7 +400,7 @@ entry.mainProject=主项目
 entry.projectId=项目编号
 entry.contractNo=合同编号
 entry.projectType=项目分类
-entry.publicProject=是否为公共项目
+entry.publicProject=是否为项目
 entry.projectName=项目名称
 entry.groupName=分组名称
 entry.groupCharge=分组负责人
@@ -474,10 +474,10 @@ entry.totalLaborCostIncurred=已发生总工时成本
 entry.costBudget=成本预算
 entry.repCost=已填报成本
 entry.proFilledIn=已填报占比
-entry.GenProHours=普通项目工时
-entry.PubProHours=公共项目工时
+entry.GenProHours=正式项目工时
+entry.PubProHours=项目工时
 entry.totalManHours=总工时
-entry.PubProHoursProp=公共项目工时占比
+entry.PubProHoursProp=项目工时占比
 entry.timely=及时
 entry.NoTimely=不及时
 entry.SubTime=提交时间
@@ -535,7 +535,7 @@ fileName.monthWork=月度工时表
 fileName.deptJoinPro=部门参与项目情况表
 fileName.leaveRemaining = 假期剩余表
 #excel
-excel.publicProject=是否为公共项目
+excel.publicProject=是否为项目
 excel.projectName=项目名称必填
 excel.manyPeople=多个参与人(姓名/工号)使用中文逗号(,)隔开
 excel.manyPeoplePlus=多个参与人(工号)使用中文逗号(,)隔开
@@ -544,8 +544,8 @@ excel.projectManagerPlus=项目经理(姓名/工号)需存在于参与人中
 excel.projectCharge=负责人需存在于参与人中
 excel.dateFormat=日期格式:yyyy-MM-dd
 excel.forExample=例如: 2021-01-01
-excel.yesPublic=是:公共项目
-excel.noPublic=否:普通项目
+excel.yesPublic=是:项目
+excel.noPublic=否:正式项目
 excel.yes=是
 excel.no=否
 excel.normal=正常

+ 7 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages_en_US.properties

@@ -400,7 +400,7 @@ entry.mainProject=Main project
 entry.projectId=project No
 entry.contractNo=Contract No
 entry.projectType=Project classification
-entry.publicProject=Whether it is a public project
+entry.publicProject=Whether it is a non project
 entry.projectName=project name
 entry.groupName=Group Name
 entry.groupCharge=Group leader
@@ -474,10 +474,10 @@ entry.totalLaborCostIncurred=Total labor cost incurred
 entry.costBudget=Cost Budget
 entry.repCost=Reported cost
 entry.proFilledIn=Proportion filled in
-entry.GenProHours=General Project Hours
-entry.PubProHours=Public Project Hours
+entry.GenProHours=Formal project man hours
+entry.PubProHours=Non Project Work
 entry.totalManHours=Total man hours
-entry.PubProHoursProp=Proportion of public project man hours
+entry.PubProHoursProp=Proportion of non project man hours
 entry.timely=timely
 entry.NoTimely=Not timely
 entry.SubTime=Submission time
@@ -535,7 +535,7 @@ fileName.monthWork=Monthly man hour Table
 fileName.deptJoinPro=Department Participation in Projects
 fileName.leaveRemaining = Leave Remaining Table
 #excel
-excel.publicProject=Whether it is a public project
+excel.publicProject=Whether it is a non project
 excel.projectName=Project name is required
 excel.manyPeople=Multiple participants (name/jobNumber) are separated by commas (,)
 excel.manyPeoplePlus=Multiple participants (jobNumber) are separated by commas (,)
@@ -544,8 +544,8 @@ excel.projectManagerPlus=The project manager (jobNumber) must exist in the parti
 excel.projectCharge=The person in charge must exist in the participants
 excel.dateFormat=Date Format:yyyy-MM-dd
 excel.forExample=for example: 2021-01-01
-excel.yesPublic=yes:public project
-excel.noPublic=no:average project
+excel.yesPublic=Yes: Non project
+excel.noPublic=No: formal project
 excel.yes=yes
 excel.no=no
 excel.normal=normal

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/LeaveSheetMapper.xml

@@ -63,5 +63,17 @@
         on user.id = leave_sheet.owner_id
         where user.company_id = #{companyId} and leave_sheet.status=0
         and leave_sheet.start_date &lt;=#{endDate} and leave_sheet.end_date &gt;=#{startDate}
+        <if test="branchDepartment!=null and branchDepartment.size()>0">
+            and user.department_id in
+            <foreach collection="branchDepartment" open="(" close=")" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="deptIds!=null and deptIds.size()>0">
+            and user.department_id in
+            <foreach collection="deptIds" open="(" item="item" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
     </select>
 </mapper>

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

@@ -58,9 +58,11 @@
         <result column="id" property="id" />
         <result column="project_name" property="projectName" />
         <result column="project_code" property="projectCode" />
+        <result column="startDate" property="startDate" />
+        <result column="endDate" property="endDate" />
         <collection property="stageCostList"  javaType="java.util.ArrayList"
                     ofType="com.management.platform.entity.vo.StageCost"
-                    select="selectStageSum" column="projectId=id"></collection>
+                    select="selectStageSum" column="projectId=id,startDate=startDate,endDate=endDate"></collection>
     </resultMap>
     <resultMap id="CustomerResultMap" type="com.management.platform.entity.vo.CustomerProject" >
         <result column="customer_id" property="customerId" />
@@ -75,7 +77,8 @@
         <result column="project_names" property="projectNames" />
     </resultMap>
     <select id="selectWithStage" resultMap="BaseResultMap2" >
-        select id, project_code, project_name from project
+        select id, project_code, project_name,#{startDate} as startDate,#{endDate} as endDate
+        from project
         where company_id = #{companyId}
         <if test="projectId != null">
             and id = #{projectId}
@@ -97,6 +100,8 @@
 		IFNULL((SELECT SUM(stages.`stages_time`) from stages WHERE stages.stages_name = report.stage  GROUP BY stages_name), 0)  AS stages_time
         FROM report
 				where report.state = 1 and report.`project_id` = #{projectId}
+				and report.create_date &gt;= #{startDate}
+                and report.create_date &lt;= #{endDate}
         GROUP BY report.stage
     </select>
     <!--获取查询者所在公司每个项目的工时成本-->

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/components/select.vue

@@ -34,7 +34,7 @@
         </div>
     </div>
     <transition name="el-zoom-in-top">
-      <div v-show="show" style="position: relative;z-index: 99;"> 
+      <div v-show="show" style="position: relative;z-index: 999;"> 
         <!-- 搜索框 -->
         <div class="searchBox">
             <el-input :placeholder="$t('peaseenterthe')" size="mini" v-model="searchTex" style="width: 150px" @focus="searchBox()">

+ 3 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue

@@ -39,13 +39,14 @@
                         <el-dropdown-item >
                             <div v-if="!isCorpWX">
                                 <!-- <div>{{$t('other.sweepWeChatYards')}}</div> -->
-                                <div>扫码添加企业微信客服</div>
+                                <!-- <div>扫码添加企业微信客服</div> -->
+                                <div>{{ $t('ke-fu-wei-xin') }}</div>
                                 <img
                                 style="width: 120px; height: 120px"
                                 src="../assets/image/code.jpg" />
                             </div>
                             <div v-if="isCorpWX">
-                                <div>{{ $t('ke-fu-wei-xin') }}</div>
+                                <div>扫码添加企业微信客服</div>
                                 <img
                                 style="width: 120px; height: 120px"
                                 src="../assets/image/qwcode.png" />

+ 15 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -69,7 +69,7 @@
           </el-select>
         </template>
         <!-- 时间段筛选 -->
-          <template v-if="ins == 6 || ins == 8 || ins == 9 || ins == 10 || ins == 11 || ins == 12">
+          <template v-if="ins == 6 || ins == 8 || ins == 9 || ins == 10 || ins == 11 || ins == 12 || ins == 5">
             <span>
               <span class="demonstration" style="color:#999;padding:0 10px">
                 {{ ins == 15 ? $t('xiang-mu-chuang-jian-shi-jian-duan') : $t('message.period') }}
@@ -1466,6 +1466,8 @@ export default {
             }
             stagestr = stagestr.substring(0,stagestr.length - 1)
             sl.stageNames = stagestr
+            sl.startDate = this.rangeDatas[0]
+            sl.endDate = this.rangeDatas[1]
           }
         } else if (this.ins == 6) {
           fName = this.$t('statisticalreportofovertimework')  + '.xls';
@@ -1486,6 +1488,12 @@ export default {
           url += "/exportUserWorkingTimeList"
           sl.startDate = this.rangeDatas[0]
           sl.endDate = this.rangeDatas[1]
+          if(this.departmentIdArray.length != 0){
+            sl.departmentId = this.departmentIdArray[this.departmentIdArray.length - 1]
+          }
+          if(this.userId){
+            sl.userId = this.userId
+          }
         } else if (this.ins == 9) {
           fName = this.$t('personnelfillingtimelyratestatistics')  + '.xls'
           url += "/exportReportTimelinessRate"
@@ -1949,7 +1957,9 @@ export default {
       let parameter = {
         pageIndex: this.page,
         pageSize: this.size,
-        projectId: this.proJuctId
+        projectId: this.proJuctId,
+        startDate: this.rangeDatas[0],
+        endDate: this.rangeDatas[1],
       }
       if(!e){
         this.stageNames = []
@@ -2356,6 +2366,9 @@ export default {
       if(this.ins == 15) {
         this.getDepartmentsInvolved()
       }
+      if(this.ins == 5) {
+        this.getProjectStages()
+      }
     },
     // 日期
     getCurrentRangeTime() {

+ 3 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/project/finance.vue

@@ -1038,6 +1038,9 @@ import { error } from 'dingtalk-jsapi';
                 const a = document.createElement('a'); // 创建a标签
                 a.setAttribute('download', row.name);// download属性
                 // console.log(row.url);
+                if (row.url.indexOf('upload/') == -1) {
+                    row.url = '/upload/' +row.url;
+                }
                 a.setAttribute('href', row.url);// href链接
                 a.click();// 自执行点击事件
                 a.remove();

+ 3 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -49,13 +49,13 @@
                         <el-link type="primary" :underline="false">{{ $t('viewmore') }}<i class="el-icon-arrow-down el-icon--right"></i></el-link>
                         
                         <el-dropdown-menu slot="dropdown">
-                            <el-dropdown-item v-if="permissions.projectImport">
+                            <el-dropdown-item v-if="permissions.projectImport && user.userNameNeedTranslate != 1">
                                 <el-link type="primary" :underline="false" @click="importProjectBefore">{{ $t('importproject') }}</el-link>
                                 <!-- <el-upload ref="upload" action="#" :limit="1" :http-request="importProject" :show-file-list="false">
                                     <el-link type="primary" :underline="false" >{{ $t('importproject') }}</el-link>
                                 </el-upload> -->
                             </el-dropdown-item>
-                            <el-dropdown-item v-if="permissions.projectImport">
+                            <el-dropdown-item v-if="permissions.projectImport && user.userNameNeedTranslate != 1">
                                 <el-link type="primary" :underline="false" @click="downloadmb" v-if="user.company.packageCustomer == 1 || user.company.packageProvider == 1 || user.timeType.mainProjectState == 1 || user.companyId == '936'">{{ $t('Downloadthetemplate') }}</el-link>
                                 <el-link type="primary" :underline="false" href="./upload/项目导入模板.xlsx" :download="$t('importtemplateproject') + '.xlsx'" v-else>{{ $t('Downloadthetemplate') }}</el-link>
                             </el-dropdown-item>
@@ -446,7 +446,7 @@
                             <el-option :value="0" :label="$t('zheng-shi-xiang-mu')"></el-option>
                             <el-option :value="1" :label="$t('fei-xiang-mu')"></el-option>
                         </el-select>
-                        <el-tooltip effect="dark" :content="$t('ordinaryprojectsareopen')" placement="top-start">
+                        <el-tooltip effect="dark" :content="$t('zheng-shi-xiang-mu-zhi-dui-can-yu-ren-kai-fang-fei-xiang-mu-dui-suo-you-cheng-yuan-kai-fang')" placement="top-start">
                         <i class="el-icon-question"></i>
                         </el-tooltip>
                         <div v-if="user.company.packageCustomer == 1" style="display: inline-block;width: 50%">

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue

@@ -241,7 +241,7 @@
                         </div>
                         <!--列表-->
                         <el-table v-if="displayTable" :data="taskDataList" 
-                        :header-cell-style="{'font-weight':'normal'}"
+                        :header-cell-style="{'font-weight':'normal'}" border
                         highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;margin-top:10px;" @row-click="taskLineClick">
                             <el-table-column fixed :label="$t('wan-cheng')"  width="50">
                                 <template slot-scope="scope">
@@ -3693,6 +3693,7 @@ overflow: auto;
         text-align: center;
         color: #fff;
         background: #778899;
+        overflow: hidden;
     }
     div {
         text-align: left;

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/project_gantt.vue

@@ -102,7 +102,7 @@
           </div>
         </template>
       </el-table-column>
-      <el-table-column :label="$t('starttimes') - $t('time.endTime')" min-width="240">
+      <el-table-column :label="$t('starttimes')  +' - '+ $t('time.endTime')" min-width="240">
         <template slot-scope="scope">
           <span>{{scope.row.startDate ? scope.row.startDate + ' ~ ' + scope.row.endDate : ''}}</span>
         </template>

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/summary.vue

@@ -504,7 +504,8 @@
                         show: true,
                         feature:{
                             saveAsImage:{
-                                show:true
+                                // show: false
+                                show: this.user.userNameNeedTranslate == 1 ? false : true
                             },
                             restore:{
                                 show:true

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue

@@ -424,7 +424,7 @@
                         <div class="player">
                             <p @click="chan">{{ $t('participantin') }}</p>
                             <span  v-for="(pl, i) in critic" :key="i">
-                            <div class="bj" style="width: 14%">
+                            <div class="bj" style="width: 14%;">
                                 <span style="background: #778899" v-if="user.userNameNeedTranslate != '1'">{{pl.length > 2 ? pl.substring(pl.length - 2, pl.length) : pl}}</span>
                                 <span style="background: #778899" v-if="user.userNameNeedTranslate == '1'"><ww-open-data type='userName' :openid='pl'></ww-open-data></span>
                             </div>
@@ -593,6 +593,7 @@
         text-align: center;
         color: #fff;
         background: #778899;
+        overflow: hidden;
     }
     div {
         text-align: left;

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -221,7 +221,7 @@
                 <el-table-column :label="$t('operation')" width="300" fixed="right">
                     <template slot-scope="scope">
                         <el-button size="mini" type="default" v-if="scope.row.roleName == $t('role.superAdministrator') && user.id == scope.row.id" @click="transferRole(scope.row)">{{ $t('transfer') }}</el-button>
-                        <el-button size="mini" type="default" v-if="scope.row.roleName != $t('role.superAdministrator')" @click="resetPwd(scope.row)">{{ $t('reset') }}</el-button>
+                        <el-button size="mini" type="default" v-if="scope.row.roleName != $t('role.superAdministrator') && user.userNameNeedTranslate != 1" @click="resetPwd(scope.row)">{{ $t('reset') }}</el-button>
                         <!-- <el-button size="mini" type="primary" v-if="scope.row.roleName != $t('role.superAdministrator')" @click="openInsertDialog(scope.row)">{{ $t('bian-ji') }}</el-button> -->
                         <el-button size="mini" type="primary" @click="openInsertDialog(scope.row, scope.row.roleName)">{{ $t('bian-ji') }}</el-button>
                         <!-- <el-button size="mini" type="primary" v-if="scope.row.roleName == $t('role.superAdministrator')" @click="openInsertDialog1(scope.row)">{{ $t('bian-ji') }}</el-button> -->

+ 36 - 22
fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue

@@ -30,7 +30,6 @@
             return {
                 isCorpWX:false,
                 isWX:false,
-                // user: JSON.parse(localStorage.userInfo) || '',
                 user: '',
                 unreadNum:0,
                 images: [
@@ -39,7 +38,7 @@
                     // require('../../assets/img/index/banner_3.png'),
                 ],
                 routers: [],
-                key: 0
+                key: 0,
             };
         },
         created() {
@@ -57,23 +56,38 @@
             //     }
             //     document.head.appendChild(consoleScript);
             // }
+
+            //有错误信息,优先跳转到登录页面去
+            if(window.location.href.indexOf('errorMsg') != '-1') {
+                this.$router.push("/login");
+            }
+            
             var ua = navigator.userAgent.toLowerCase();
             if (ua.indexOf("wxwork") > 0) {
                 this.isCorpWX = true;
             } else if (ua.indexOf("micromessenger") > 0) {
                 this.isWX = true;
             }
-            let that = this
-            if (localStorage.userInfo != null) {
-                that.getAccountInfo();
-            } else {
+            let that = this;
+            //企业微信是从后台授权后跳转过来的
+            if (this.isCorpWX) {
                 if(window.location.href.indexOf('userId') != '-1') {
-                    that.getAccountInfo()
+                    let href = window.location.href;
+                    var loginUserId = href.substring(href.indexOf("userId=")+"userId=".length);
+                    if (loginUserId.includes('#/')) {
+                        loginUserId = loginUserId.substring(0, loginUserId.indexOf('#/'));
+                    }
+                    that.getAccountInfo(loginUserId)
                 } else {
                     this.$router.push("/login");
                 }
+            } else {
+                //其他情况,刷新用户信息
+                if (localStorage.userInfo != null) {
+                    that.user = JSON.parse(localStorage.userInfo);
+                    that.getAccountInfo(that.user.id);
+                }
             }
-           
         },
         components: {
             Footer
@@ -198,6 +212,8 @@
                                             // console.log('查看错误信息', res)
                                             if (res.errMsg.indexOf('function not exist') > -1) {
                                                 alert('版本过低请升级')
+                                            } else {
+                                                // alert('agentConfig出错:'+res.errMsg);
                                             }
                                         },
                                     })
@@ -205,29 +221,27 @@
                             }).catch(err => {
                                 if (err.errMsg.indexOf('function not exist') > -1) {
                                     alert('版本过低请升级')
+                                }else {
+                                    // alert(res.errMsg);
                                 }
                             })
                         });
+                        wx.error(function(res){
+                            // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
+                            // alert('wxConfig发生异常:'+JSON.stringify(res));
+                            // 企业第一次授权安装进入后会报not in reliable domain的错误,刷新后正常
+                            location.reload();
+                        });
+                    } else {
+                        // alert(''+res);
                     }
                 }).catch(err => {
-
+                    alert(err);
                 })
             },
 
             //获取账户信息
-            getAccountInfo() {
-                let userId = this.user.id
-                if(window.location.href.indexOf('userId') != '-1') {
-                    let href = window.location.href;
-                    var loginUserId = href.substring(href.indexOf("userId=")+"userId=".length);
-                    if (loginUserId.includes('#/')) {
-                        loginUserId = loginUserId.substring(0, loginUserId.indexOf('#/'));
-                    }
-                    userId = loginUserId
-                }
-                if(window.location.href.indexOf('errorMsg') != '-1') {
-                    this.$router.push("/login");
-                }
+            getAccountInfo(userId) {
                 this.$axios.get('/user/loginByUserId', {params:{userId: userId}})
                 .then(res => {
                     // console.log(res);