Browse Source

修改请假bug,修复企业微信中通过账号登录的用户白屏问题

seyason 2 years ago
parent
commit
4e5ed7c17b

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

@@ -165,7 +165,7 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
         jsonObj1.put("key", "审核人");
         jsonObj1.put("value",("$userName="+auditor.getCorpwxUserid()+"$"));
         String applyTimeDesc = "";
-        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("MM/dd");
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("M月d日");
         if (sheet.getStartDate().isEqual(sheet.getEndDate())) {
             applyTimeDesc = dateTimeFormatter.format(sheet.getStartDate()) + ", "+sheet.getTimeHours()+"小时";
         } else {
@@ -203,7 +203,7 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
     private void saveNotifyToApplier(LeaveSheet sheet) {
         //推送到企业微信
         String applyTimeDesc = "";
-        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("MM/dd");
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("M月d日");
         if (sheet.getStartDate().isEqual(sheet.getEndDate())) {
             applyTimeDesc = dateTimeFormatter.format(sheet.getStartDate()) + ", "+sheet.getTimeHours()+"小时";
         } else {
@@ -247,7 +247,7 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
         jsonObj1.put("key", "请假类型");
         jsonObj1.put("value",LEAVE_TYPES[sheet.getLeaveType()]);
         String applyTimeDesc = "";
-        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("MM/dd");
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("M月d日");
         if (sheet.getStartDate().isEqual(sheet.getEndDate())) {
             applyTimeDesc = dateTimeFormatter.format(sheet.getStartDate()) + ", "+sheet.getTimeHours()+"小时";
         } else {
@@ -501,14 +501,47 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
         Integer companyId = userMapper.selectById(userId).getCompanyId();
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).select("id","name","corpwx_userid"));
-        QueryWrapper<LeaveSheet> qw = new QueryWrapper<LeaveSheet>()
-                .select("owner_id","tel","owner_name", "leave_type", "start_date","end_date","time_days", "time_hours", "status", "remark")
-                .eq("company_id", companyId)
-                .eq(status != null, "status", status)
-                .eq(leaveType != null, "leave_type", leaveType)
-                .le(endTime != "" && endTime != null, "start_date", endTime)
-                .ge(startTime != "" && startTime != null, "end_date", startTime).orderByDesc("id");
-        List<LeaveSheet> leaveSheets = leaveSheetMapper.selectList(qw);
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        QueryWrapper<LeaveSheet> queryWrapper = new QueryWrapper<>();
+        LeaveSheet sheet = new LeaveSheet();
+        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部请假单");
+        if (functionList.size() == 0) {
+            //部门负责人可以看这个部门的
+            List<Integer> mdids = departmentService.getAllManagedDeptIdList(user, null);
+//            List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", user.getId()));
+            if (mdids.size() > 0) {
+                //负责的部门的人员
+                //先是自己的
+                List<String> userIds = new ArrayList<>();
+                userIds.add(user.getId());
+                List<User> deptUserList = userMapper.selectList(new QueryWrapper<User>().select("id").in("department_id", mdids));
+                List<String> collect = deptUserList.stream().map(User::getId).collect(Collectors.toList());
+                userIds.addAll(collect);
+                queryWrapper.in("owner_id", userIds);
+            } else {
+                //普通员工只能看自己的
+                sheet.setOwnerId(user.getId());
+            }
+        }
+        sheet.setCompanyId(user.getCompanyId());
+
+        queryWrapper.eq("company_id", sheet.getCompanyId()).orderByDesc("id");
+        //增加状态
+        if (sheet.getStatus() != null) {
+            queryWrapper.eq("status", sheet.getStatus());
+        }
+        if (!StringUtils.isEmpty(sheet.getOwnerId())) {
+            queryWrapper.eq("owner_id", sheet.getOwnerId());
+        }
+        if (sheet.getLeaveType() != null) {
+            queryWrapper.eq("leave_type", leaveType);
+        }
+        if (sheet.getStartDate() != null && sheet.getEndDate() != null) {
+            queryWrapper.le("start_date", startTime).ge("end_date", endTime);
+        }
+
+        List<LeaveSheet> leaveSheets = leaveSheetMapper.selectList(queryWrapper);
         if (leaveSheets.size()==0){
             return httpRespMsg;
         };
@@ -585,6 +618,12 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
             item.add(eds);
             item.add(leaveSheet.getTimeDays()==null?"":leaveSheet.getTimeDays().toString());
             item.add(leaveSheet.getTimeHours()==null?"":leaveSheet.getTimeHours().toString());
+            Optional<User> first = userList.stream().filter(u -> u.getId().equals(leaveSheet.getAuditorId())).findFirst();
+            String auditorName = first.isPresent()?first.get().getName():"";
+            //转译处理
+            if (wxCorpInfo != null && wxCorpInfo.getSaasSyncContact() == 1) {
+                auditorName = "$userName="+auditorName+"$";
+            }
             String statusS = "";
             switch (leaveSheet.getStatus()){
                 case 0:
@@ -593,7 +632,8 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
                     break;
                 case 1:
                     //statusS = "待审核";
-                    statusS = MessageUtils.message("stages.reviewed");
+                    statusS = MessageUtils.message("stages.reviewed")
+                            + "-" + auditorName;
                     break;
                 case 2:
                     //statusS = "驳回";

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

@@ -164,16 +164,16 @@
                     <el-input type="textarea" v-model="addForm.remark" :rows="5" style="width: 550px" maxlength="100" show-word-limit></el-input>
                 </el-form-item>
                 <!--请假流程显示-->
-                <el-form-item label="审批流程" style="width: 100%">
+                <el-form-item label="审批流程" style="width: 100%;color:#606266" >
                   <span v-for="(item, index) in curWorkflowList" :key="item.id" >
                     <span v-if="index>0"><i class="el-icon-right"></i></span>
                     <span><i class="el-icon-s-custom"></i></span>
                     <span v-if="user.userNameNeedTranslate == 1">
-                      <ww-open-data type='departmentName' :openid='item.auditDeptName' v-if="item.auditorType == 1"></ww-open-data>(主要负责人)
+                      <span v-if="item.auditorType == 1"><ww-open-data type='departmentName' :openid='item.auditDeptName' ></ww-open-data>(主要负责人)</span>
                       <ww-open-data type='userName' :openid='item.userName' v-if="item.auditorType == 2"></ww-open-data>
                     </span>
                     <span v-if="user.userNameNeedTranslate == 0">
-                      {{item.auditorType == 1?item.auditDeptName+'(主要负责人)':item.userName}}
+                      {{item.auditorType == 1?(item.auditDeptName+'(主要负责人)'):item.userName}}
                     </span>
                   </span>
                 </el-form-item>

+ 8 - 2
fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue

@@ -30,7 +30,7 @@
             return {
                 isCorpWX:false,
                 isWX:false,
-                user: '',
+                user: null,
                 unreadNum:0,
                 images: [
                     // require('../../assets/img/index/banner_1.png'),
@@ -60,6 +60,7 @@
             let that = this;
             //企业微信是从后台授权后跳转过来的
             if (this.isCorpWX) {
+                //后台自动授权登录的用户
                 if(window.location.href.indexOf('userId') != '-1') {
                     let href = window.location.href;
                     var loginUserId = href.substring(href.indexOf("userId=")+"userId=".length);
@@ -68,7 +69,12 @@
                     }
                     that.getAccountInfo(loginUserId)
                 } else {
-                    this.$router.push("/login");
+                    //存在一部分用户,没有绑定企业微信,进来后跳到登录页面,登录页面输入账号密码进来后不带userId
+                    if (this.user) {
+                        that.getAccountInfo(that.user.id);
+                    } else {
+                        that.$router.push("/login");
+                    }
                 }
             } else {
                 //其他情况,刷新用户信息