Sfoglia il codice sorgente

日报导入改成分页,增加一键审核全部导入
钉钉获取假期余额接口优化

seyason 3 anni fa
parent
commit
6626e3fbc5
16 ha cambiato i file con 214 aggiunte e 55 eliminazioni
  1. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DingDingController.java
  2. 9 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  3. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserYearleaveSettingController.java
  4. 7 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java
  5. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/LeaveQuotaNum.java
  6. 11 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java
  7. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/DingDingService.java
  8. 3 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  9. 69 28
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java
  10. 25 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  11. 29 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  12. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml
  13. BIN
      fhKeeper/formulahousekeeper/management-platform/新增客户导入模板.xlsx
  14. BIN
      fhKeeper/formulahousekeeper/management-platform/研究中心导入模板.xlsx
  15. 48 9
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/list_import.vue
  16. 3 1
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue

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

@@ -360,10 +360,10 @@ public class DingDingController {
         return new HttpRespMsg();
     }
 //
-    @RequestMapping("/testCorpLeaveType")
-    public HttpRespMsg testCorpLeaveType(String leaveCode, Integer companyId, String userIds, long offset) {
+    @RequestMapping("/getCorpLeaveQuata")
+    public HttpRespMsg getCorpLeaveQuata(String leaveCode, Integer companyId, Integer departmentId, String userId, @RequestParam(required = false, defaultValue = "1") Integer pageIndex) {
         CompanyDingding companyDingding = companyDingdingService.getOne(new QueryWrapper<CompanyDingding>().eq("company_id", companyId));
-        return dingDingService.getLeaveTypeList(leaveCode, companyId, userIds, offset);
+        return dingDingService.getLeaveTypeList(leaveCode, companyId, departmentId, userId, pageIndex);
     }
 
     @RequestMapping("/testSendBusTripLink")

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

@@ -976,6 +976,11 @@ public class ReportController {
         return reportService.getMembList(date, manageDeptId, request);
     }
 
+    @RequestMapping("/approveAllImport")
+    public HttpRespMsg approveAllImport(HttpServletRequest request) {
+        return reportService.approveAllImport(request);
+    }
+
     @RequestMapping("/batchApproveReport")
     public HttpRespMsg batchApproveReport(@RequestParam String ids, Integer isDepartment, HttpServletRequest request) {
         return reportService.batchApproveReport(ids, isDepartment, request);
@@ -1031,13 +1036,15 @@ public class ReportController {
                                       Integer projectId,
                                       @RequestParam(required = false, defaultValue = "0") Integer dateType,
                                       String date,
-                                      Integer departmentId,
+                                      @RequestParam(required = false, defaultValue = "0") Integer pageIndex,
+                                      @RequestParam(required = false, defaultValue = "1000") Integer pageSize,
+                                              Integer departmentId,
                                       HttpServletRequest request) {
         String token = request.getHeader("TOKEN");
         User user = userService.getById(token);
         return reportService.listDeptImportByState(user.getId(),
                 projectId,dateType,
-                date, departmentId, request);
+                date, pageIndex, pageSize, departmentId, request);
     }
 
     @RequestMapping("/getlastWeekFillTime")

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

@@ -19,6 +19,7 @@ import com.management.platform.util.ListUtil;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
@@ -94,9 +95,8 @@ public class UserYearleaveSettingController {
 //    }
 
     @RequestMapping("/getDingDingLeaveQt")
-    public HttpRespMsg getDingDingLeaveQt(String leaveCode, Integer companyId, String userIds, long offset) {
-        CompanyDingding companyDingding = companyDingdingService.getOne(new QueryWrapper<CompanyDingding>().eq("company_id", companyId));
-        return dingDingService.getLeaveTypeList(leaveCode, companyId, userIds, offset);
+    public HttpRespMsg getDingDingLeaveQt(String leaveCode, Integer companyId, Integer departmentId, String userId,@RequestParam(required = false, defaultValue = "1") Integer pageIndex) {
+        return dingDingService.getLeaveTypeList(leaveCode, companyId, departmentId, userId, pageIndex);
     }
 }
 

+ 7 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2022-05-17
+ * @since 2022-05-21
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -210,6 +210,12 @@ public class TimeType extends Model<TimeType> {
     @TableField("fill_overtime")
     private Integer fillOvertime;
 
+    /**
+     * 是否显示填报和审核的时间
+     */
+    @TableField("show_fillaudit_time")
+    private Integer showFillauditTime;
+
 
     @Override
     protected Serializable pkVal() {

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

@@ -4,6 +4,7 @@ public class LeaveQuotaNum {
     public String userDingdingId;
     public String name;//员工姓名
     public String userId;
+    public String leaveCode;//假期编码
     public String startTime; //假期有效开始时间
     public String endTime;//假期有效截止时间
     public String quotaInHours;//以小时计算的总额度

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

@@ -90,8 +90,18 @@ public interface ReportMapper extends BaseMapper<Report> {
                                                      @Param("startDate") String startDate,
                                                      @Param("endDate") String endDate,
                                                      @Param("departmentIdList") List<Integer> departmentIdList,
-                                                     @Param("projectId") Integer projectId
+                                                     @Param("projectId") Integer projectId,
+                                                     @Param("startIndex") Integer startIndex,
+                                                     @Param("pageSize") Integer pageSize
                                                      );
+    void approveAllDeptImportList(@Param("companyId") Integer companyId,
+                                  @Param("leaderId") String leaderId);
+    Long getDeptImportAuditListCount(@Param("companyId") Integer companyId,
+                                                          @Param("leaderId") String leaderId,
+                                                          @Param("startDate") String startDate,
+                                                          @Param("endDate") String endDate,
+                                                          @Param("departmentIdList") List<Integer> departmentIdList,
+                                                          @Param("projectId") Integer projectId);
     List<Map<String, Object>> selectFillReportUserList(Integer companyId, String startDate, String endDate);
 
     List<Map<String, Object>> getMonthReportProjectList(Integer companyId, String startDate, String endDate);

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

@@ -32,5 +32,5 @@ public interface DingDingService {
 
     void getCorpSelfDefSmartReport(CompanyDingding dingding);
 
-    public HttpRespMsg getLeaveTypeList(String leaveCode, Integer companyId, String userIds, long offset);
+    public HttpRespMsg getLeaveTypeList(String leaveCode, Integer companyId, Integer departmentId, String userId, Integer pageIndex);
 }

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

@@ -72,6 +72,7 @@ public interface ReportService extends IService<Report> {
                                Integer projectId,
                                Integer dateType,
                                String date,
+                                      Integer pageIndex, Integer pageSize,
                                       Integer deprarmtentId, HttpServletRequest request);
 
     HttpRespMsg getlastWeekFillTime(String userId);
@@ -79,4 +80,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg getNoReportUserList(HttpServletRequest request, String startDate, String endDate);
 
     HttpRespMsg exportNoReportUserList(HttpServletRequest request, String startDate, String endDate);
+
+    HttpRespMsg approveAllImport(HttpServletRequest request);
 }

+ 69 - 28
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java

@@ -1346,14 +1346,15 @@ public class DingDingServiceImpl implements DingDingService {
         }
     }
 
-    public HttpRespMsg getLeaveTypeList(String leaveCode, Integer companyId, String userIds, long offset) {
+    public HttpRespMsg getLeaveTypeList(String leaveCode, Integer companyId, Integer departmentId, String userId, Integer pageIndex) {
         CompanyDingding dingding = companyDingdingMapper.selectOne(new QueryWrapper<CompanyDingding>().eq("company_id", companyId));
         HttpRespMsg msg = new HttpRespMsg();
         HashMap resultMap = new HashMap();
         DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/attendance/vacation/type/list");
         OapiAttendanceVacationTypeListRequest req = new OapiAttendanceVacationTypeListRequest();
         List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).eq("role_name", "超级管理员"));
-        String oaManagerDid = "2221645448842951";//userList.get(0).getDingdingUserid();
+//        String oaManagerDid = "2221645448842951";
+        String oaManagerDid = userList.get(0).getDingdingUserid();
         if (leaveCode == null) {
             req.setOpUserid(oaManagerDid);
             req.setVacationSource("all");
@@ -1370,48 +1371,96 @@ public class DingDingServiceImpl implements DingDingService {
                     LeaveTypeVO vo = new LeaveTypeVO();
                     vo.leaveCode = obj.getString("leave_code");
                     vo.leaveName = obj.getString("leave_name");
+                    if (vo.leaveName.equals("调休")) {
+                        defaultType = vo;
+                    }
                     typeList.add(vo);
                 }
                 resultMap.put("leaveTypeList", typeList);
-                leaveCode = typeList.get(0).leaveCode;
+                if (defaultType == null) defaultType = typeList.get(0);
+                leaveCode = defaultType.leaveCode;
+                resultMap.put("defaultLeaveType", defaultType);
                 System.out.println("本次请求的LeaveCode: "+leaveCode);
-                reqQuotaList(companyId, dingding, leaveCode, oaManagerDid, userIds, offset, resultMap);
+                reqQuotaList(companyId, dingding, leaveCode, oaManagerDid, departmentId, userId, pageIndex, resultMap);
             } catch (ApiException e) {
                 e.printStackTrace();
             }
         } else {
-            reqQuotaList(companyId, dingding, leaveCode, oaManagerDid, userIds, offset, resultMap);
+            reqQuotaList(companyId, dingding, leaveCode, oaManagerDid, departmentId, userId, pageIndex, resultMap);
         }
         msg.data = resultMap;
         return msg;
     }
 
-    private void reqQuotaList(Integer companyId, CompanyDingding dingding,
-                                             String leaveCode, String oaManagerDid, String userIds, long offset, HashMap resultMap) {
+    //递归获取子部门
+    private List<Department> getSubDeptList(List<Department> allDeptList, Department department) {
+        List<Department> deptList = new ArrayList<>();
+        deptList.add(department);
+        //查找子部门的数据
+        List<Department> collect = allDeptList.stream().filter(sub -> sub.getSuperiorId() != null && sub.getSuperiorId().equals(department.getDepartmentId())).collect(Collectors.toList());
+        for (Department subItem : collect) {
+            deptList.addAll(getSubDeptList(allDeptList, subItem));
+        }
+        return deptList;
+    }
 
+    private void reqQuotaList(Integer companyId, CompanyDingding dingding,
+                                             String leaveCode, String oaManagerDid, Integer departmentId, String userId, Integer pageIndex, HashMap resultMap) {
         //再调用查看假期余额的接口
+        long pageSize = 50L;
         DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/attendance/vacation/quota/list");
         OapiAttendanceVacationQuotaListRequest quoataReq = new OapiAttendanceVacationQuotaListRequest();
         quoataReq.setLeaveCode(leaveCode);
         quoataReq.setOpUserid(oaManagerDid);
         List<User> userList = null;
-        if (StringUtils.isEmpty(userIds)) {
-            //获取全部员工,离职的不看
-            userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active", 1));
+        String userIds = null;
+        if (StringUtils.isEmpty(userId)) {
+            int total = 0;
+            if (departmentId == null) {
+                //全部员工,包括离职的
+                userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).orderByAsc("id").last("limit " + (pageIndex-1)*pageSize+", "+pageSize));
+                total = userMapper.selectCount(new QueryWrapper<User>().eq("company_id", companyId));
+            } else {
+                //指定部门
+                Department dept = departmentMapper.selectById(departmentId);
+                List<Department> allDept = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+                List<Department> allSubDepts = getSubDeptList(allDept, dept);
+                userList = userMapper.selectList(
+                        new QueryWrapper<User>()
+                                .in("department_id", allSubDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList()))
+                                .orderByAsc("id").last("limit " + (pageIndex-1)*pageSize+", "+pageSize));
+                total = userMapper.selectCount(new QueryWrapper<User>()
+                        .in("department_id", allSubDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList())));
+            }
             String collect = userList.stream().map(User::getDingdingUserid).collect(Collectors.joining(","));
             userIds = collect;
+            resultMap.put("total", total);
         } else {
-            List<String> strings = ListUtil.convertLongIdsArrayToList(userIds);
-            userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).in("dingding_userid", strings));
-        }
-        if (userList.size() > 10) {
-            userList = userList.subList(0, 10);
+            userList = new ArrayList<>();
+            userList.add(userMapper.selectById(userId));
+            userIds = userList.get(0).getDingdingUserid();
+            resultMap.put("total", 1);
         }
+
         System.out.println("请求的userIds: "+userIds);
+        System.out.println("长度=="+userIds.length());
+        List<LeaveQuotaNum> quotaNumList = new ArrayList<>();
+        for (User user : userList) {
+            LeaveQuotaNum quotaNum = new LeaveQuotaNum();
+            quotaNum.userId = user.getId();
+            quotaNum.userDingdingId = user.getDingdingUserid();
+            quotaNum.name = user.getName();
+            quotaNum.leaveCode = leaveCode;
+            quotaNumList.add(quotaNum);
+        }
+        resultMap.put("records", quotaNumList);
+        if (quotaNumList.size() == 0) {
+            //无员工数据了
+            return;
+        }
         quoataReq.setUserids(userIds);
-
-        quoataReq.setOffset(offset);
-        quoataReq.setSize(50L);
+        quoataReq.setOffset(0L);
+        quoataReq.setSize(pageSize);
         OapiAttendanceVacationQuotaListResponse quotaListResponse = null;
         try {
             quotaListResponse = client.execute(quoataReq, getInnerCorpToken(dingding));
@@ -1424,18 +1473,12 @@ public class DingDingServiceImpl implements DingDingService {
         DecimalFormat df = new DecimalFormat("#0.0");
         if (json.getInteger("errcode") == 0) {
             JSONObject result = json.getJSONObject("result");
-            resultMap.put("hasMore", result.getBooleanValue("has_more"));
             JSONArray leaveQuotas = result.getJSONArray("leave_quotas");
             if (leaveQuotas != null) {
-                List<LeaveQuotaNum> quotaNumList = new ArrayList<>();
                 for (int i=0;i<leaveQuotas.size(); i++) {
                     JSONObject jsonObject = leaveQuotas.getJSONObject(i);
                     String userDDid = jsonObject.getString("userid");
-                    LeaveQuotaNum quotaNum = new LeaveQuotaNum();
-                    quotaNum.userDingdingId = userDDid;
-                    User user = userList.stream().filter(u -> u.getDingdingUserid().equals(userDDid)).findFirst().get();
-                    quotaNum.userId = user.getId();
-                    quotaNum.name = user.getName();
+                    LeaveQuotaNum quotaNum = quotaNumList.stream().filter(qu->qu.userDingdingId.equals(userDDid)).findFirst().get();
                     Date startDate = new Date(jsonObject.getLongValue("start_time"));
                     quotaNum.startTime = sdf.format(startDate);
                     Date endDate = new Date(jsonObject.getLongValue("end_time"));
@@ -1459,10 +1502,8 @@ public class DingDingServiceImpl implements DingDingService {
                     }
                     quotaNumList.add(quotaNum);
                 }
-                resultMap.put("quotaNumList", quotaNumList);
-            } else {
-                resultMap.put("quotaNumList", new ArrayList<>());
             }
+
         }
     }
 

+ 25 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -2824,7 +2824,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg listDeptImportByState(String leaderId, Integer projectId, Integer dateType, String date, Integer departmentId, HttpServletRequest request) {
+    public HttpRespMsg listDeptImportByState(String leaderId, Integer projectId, Integer dateType, String date, Integer pageIndex, Integer pageSize, Integer departmentId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@@ -2851,9 +2851,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 startDate = date + "-01";
                 endDate = date + "-31";
             }
-            List<Map<String, Object>> auditReportList = reportMapper.getDeptImportAuditList(companyId, leaderId, startDate, endDate, filterDeptIds, projectId);
-
-            httpRespMsg.data = auditReportList;
+            //pageIndex从1开始
+            Integer startIndex = (pageIndex -1) * pageSize;
+            List<Map<String, Object>> auditReportList = reportMapper.getDeptImportAuditList(companyId, leaderId, startDate, endDate, filterDeptIds, projectId, startIndex, pageSize);
+            long total = reportMapper.getDeptImportAuditListCount(companyId, leaderId, startDate, endDate, filterDeptIds, projectId);
+            HashMap result = new HashMap();
+            result.put("total", total);
+            result.put("record", auditReportList);
+            httpRespMsg.data = result;
         } catch (NullPointerException e) {
             httpRespMsg.setError("验证失败");
             return httpRespMsg;
@@ -3033,4 +3038,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return httpRespMsg;
     }
 
+    @Override
+    public HttpRespMsg approveAllImport(HttpServletRequest request) {
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        reportMapper.approveAllDeptImportList(user.getCompanyId(), token);
+        //需要进行审核记录保存
+        ReportAuditLog log = new ReportAuditLog();
+        log.setAuditChannel(0);//导入审核
+        log.setCompanyId(user.getCompanyId());
+        log.setResult("一键全部通过");
+        log.setUserId(user.getId());
+        log.setUserName(user.getName());
+        reportAuditLogMapper.insert(log);
+        return new HttpRespMsg();
+    }
+
 }

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

@@ -437,9 +437,37 @@
         <if test="projectId != null">
             AND a.project_id= #{projectId}
         </if>
-        ORDER BY a.create_date desc, a.creator_id asc
+        ORDER BY a.create_date desc, a.creator_id asc limit #{startIndex}, #{pageSize}
     </select>
 
+    <update id="approveAllDeptImportList" >
+        update report set state = 1
+        WHERE report.company_id = #{companyId}
+        and report.state = -1
+        AND report.creator_id in(select id from user where user.department_id in (select department_id from department where report_audit_userid = #{leaderId}))
+    </update>
+
+    <select id="getDeptImportAuditListCount" resultType="java.lang.Long">
+        SELECT count(a.id) FROM report AS a
+        left join user on user.id = a.creator_id
+        WHERE a.company_id = #{companyId}
+        and a.state = -1
+        <if test="leaderId != null">
+            AND user.department_id in (select department_id from department where report_audit_userid = #{leaderId})
+        </if>
+        <if test="startDate != null and startDate != '' and endDate != null and endDate != ''">
+            AND a.create_date between #{startDate} and #{endDate}
+        </if>
+        <if test="departmentIdList != null">
+            AND user.department_id in
+            <foreach collection="departmentIdList" open="(" close=")" separator="," item="deptId">
+                #{deptId}
+            </foreach>
+        </if>
+        <if test="projectId != null">
+            AND a.project_id= #{projectId}
+        </if>
+    </select>
     <select id="getRealProjectTime" resultType="java.util.Map">
         SELECT project.id as projectId, project.project_code as projectCode, IFNULL(project.category_name,'其他') as categoryName,
         IFNULL(project.project_name,'其他') as project,report.creator_id AS creatorId,sum(working_time) as workingTime, SUM(cost) as cost

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

@@ -35,11 +35,12 @@
         <result column="custom_text_name" property="customTextName" />
         <result column="lock_worktime" property="lockWorktime" />
         <result column="fill_overtime" property="fillOvertime" />
+        <result column="show_fillaudit_time" property="showFillauditTime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        company_id, allday, am, pm, month_days, hour_cost_input_type, type, pay_overtime, alert_time, multi_worktime, fix_monthcost, fill_months, custom_degree_active, custom_degree_name, alert_msg, sync_corpwx_time, need_dept_audit, report_workflow, custom_data_active, custom_data_name, finance_audit, overtime_ratio, sync_dingding, is_cro, only_importreport, show_dd_cardtime, show_corpwx_cardtime, custom_text_active, custom_text_name, lock_worktime, fill_overtime
+        company_id, allday, am, pm, month_days, hour_cost_input_type, type, pay_overtime, alert_time, multi_worktime, fix_monthcost, fill_months, custom_degree_active, custom_degree_name, alert_msg, sync_corpwx_time, need_dept_audit, report_workflow, custom_data_active, custom_data_name, finance_audit, overtime_ratio, sync_dingding, is_cro, only_importreport, show_dd_cardtime, show_corpwx_cardtime, custom_text_active, custom_text_name, lock_worktime, fill_overtime, show_fillaudit_time
     </sql>
 
 </mapper>

BIN
fhKeeper/formulahousekeeper/management-platform/新增客户导入模板.xlsx


BIN
fhKeeper/formulahousekeeper/management-platform/研究中心导入模板.xlsx


+ 48 - 9
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/list_import.vue

@@ -35,11 +35,11 @@
                 <el-form-item   style="margin-left:20px;">
                     <el-button @click="batchApprove(true)" style="margin-left:10px;" :disabled="multipleSelection.length==0">批量通过</el-button>
                     <el-button @click="batchApprove(false)"  :disabled="multipleSelection.length==0">批量驳回</el-button>
+                    <el-button @click="approveAll" style="margin-left:10px;" :disabled="list.length==0">一键全部通过</el-button>
                 </el-form-item>
                 <el-form-item style="margin-left:20px;" v-if="permissions.importAudit">
                    <el-link type="primary" @click="recordList(),recordDialogVisible = true,pageIndexList = 1,pageSizeList = 20">审核记录</el-link>
                 </el-form-item>
-                
             </el-form>
         </el-col>
         <!--列表-->
@@ -139,17 +139,17 @@
             </div>
         </el-dialog>
         <!--工具条-->
-        <!-- <el-col v-if="search.value != -1" :span="24" class="toolbar">
+        <el-col :span="24" class="toolbar">
             <el-pagination
                 @size-change="handleSizeChange"
                 @current-change="handleCurrentChange"
-                :page-sizes="[20 , 50 , 80 , 100]"
-                :page-size="20"
+                :page-sizes="[100,500,1000,2000]"
+                :page-size="1000"
                 layout="total, sizes, prev, pager, next"
                 :total="total"
                 style="float:right;"
             ></el-pagination>
-        </el-col> -->
+        </el-col>
 
         <!-- 审核记录痰喘 -->
         <el-dialog title="审核记录" :visible.sync="recordDialogVisible" width="800px" :before-close="handleClose">
@@ -227,7 +227,7 @@
                 listLoading: false,
                 total: 0,
                 page: 1,
-                size: 20,
+                size: 1000,
                 list: [],
                 logining: false,
                 multipleSelection: [],
@@ -310,6 +310,41 @@
             handleSelectionChange(val) {
                 this.multipleSelection = val;
             },
+            //一键全部通过
+            approveAll() {
+                this.$confirm('是否确认通过全部部门和日期的待审核数据?','提示',{
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(()=>{
+                    this.http.post('/report/approveAllImport',{},
+                    res => {
+                        this.listLoading = false;
+                        console.log('==res=='+res);
+                        if (res.code == "ok") {
+                            this.getList();
+                            this.$message({
+                            message: '审核成功',
+                            type: "success"
+                            });
+                        } else {
+                            this.$message({
+                            message: res.msg,
+                            type: "error"
+                            });
+                        }
+                    },
+                    error => {
+                        this.listLoading = false;
+                        console.log('==error=='+res);
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
+                    });
+                });
+                
+            },
             batchApprove(isPass) {
                 var ids = '';
                 for (var i=0;i<this.multipleSelection.length; i++) {
@@ -343,6 +378,7 @@
                     });
                 });
             },
+            
             //分页
             handleCurrentChange(val) {
                 this.page = val;
@@ -378,6 +414,8 @@
                     this.search.endDate = null
                 }
                 var obj = {}
+                obj.pageIndex = this.page;
+                obj.pageSize = this.size;
                 obj.projectId = this.search.projectId
                 obj.startDate = this.search.startDate
                 obj.endDate = this.search.endDate
@@ -395,7 +433,8 @@
                 res => {
                     this.listLoading = false;
                     if (res.code == "ok") {
-                        this.list = res.data;
+                        this.list = res.data.record;
+                        this.total = res.data.total;
                     } else {
                         this.$message({
                         message: res.msg,
@@ -524,10 +563,10 @@
         },
         created() {
             let height = window.innerHeight;
-            this.tableHeight = height - 125;
+            this.tableHeight = height - 175;
             const that = this;
             window.onresize = function temp() {
-                that.tableHeight = window.innerHeight - 125;
+                that.tableHeight = window.innerHeight - 175;
             };
         },
         mounted() {

+ 3 - 1
fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue

@@ -65,7 +65,9 @@
                 if(list[i].name == '工时报告') {
                     this.routers.push({name: '查看日报',url: '/calendar',icon: 'description'})
                     this.routers.push({name: '填写日报',url: '/edit',icon: 'edit'})
-                    this.routers.push({name: '按周填报',url: '/weekEdit',icon: 'edit'})
+                    if (this.user.companyId == 817 || this.user.companyId == 7 || this.user.companyId == 10) {
+                        this.routers.push({name: '按周填报',url: '/weekEdit',icon: 'edit'})
+                    }
                 }
                 if(list[i].name == '项目报告审核') {
                     this.routers.push({name: '项目报告审核',url: '/review',icon: 'todo-list-o'})