Ver Fonte

按周填报增加获取已填工时的接口
部门负责人获取出差,请假,数值统计
提交日报去掉项目截止日期的检查

seyason há 2 anos atrás
pai
commit
3c98f76b2e
14 ficheiros alterados com 226 adições e 57 exclusões
  1. 8 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DepartmentController.java
  2. 16 13
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  3. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/DepartmentMapper.java
  4. 5 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/DepartmentService.java
  5. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  6. 9 17
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/BusinessTripServiceImpl.java
  7. 118 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java
  8. 9 16
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/LeaveSheetServiceImpl.java
  9. 12 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  10. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml
  11. 6 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DepartmentMapper.xml
  12. 3 0
      fhKeeper/formulahousekeeper/timesheet/src/permissions.js
  13. 6 5
      fhKeeper/formulahousekeeper/timesheet/src/views/project/custom_data.vue
  14. 30 1
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

+ 8 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DepartmentController.java

@@ -8,6 +8,7 @@ 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;
 import javax.servlet.http.HttpServletRequest;
 
 /**
@@ -24,7 +25,8 @@ public class DepartmentController {
 
     @Autowired
     private DepartmentService departmentService;
-
+    @Resource
+    private HttpServletRequest request;
     /**
      * 获取带有层级的部门列表
      */
@@ -124,5 +126,10 @@ public class DepartmentController {
         return departmentService.exportDeptStatistic(startDate, endDate, request);
     }
 
+
+    @RequestMapping("/exportCustomDataSum")
+    public HttpRespMsg exportCustomDataSum(String startDate, String endDate) {
+        return departmentService.exportCustomDataSum(startDate, endDate, request);
+    }
 }
 

+ 16 - 13
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -113,7 +113,10 @@ public class ReportController {
     public HttpRespMsg getWeeklyCardTime(@RequestParam String dateStr) {
         return reportService.getWeeklyCardTime(dateStr, request);
     }
-
+    @RequestMapping("/getWeeklyWorkTime")
+    public HttpRespMsg getWeeklyWorkTime(@RequestParam String dateStr) {
+        return reportService.getWeeklyWorkTime(dateStr, request);
+    }
 
 
     private void fillReportProgress(Report report, String professionProgress) {
@@ -252,9 +255,8 @@ public class ReportController {
         }
 
 
-        //检查项目是否截止
+        //检查项目是否可填报
         List<Integer> integers = Arrays.asList(projectId);
-        DateTimeFormatter localDtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", integers));
         for (int i=0;i<projectId.length; i++) {
             int pid = projectId[i];
@@ -272,11 +274,12 @@ public class ReportController {
                         msg.setError("项目["+curP.getProjectName()+"]已撤销。");
                         return msg;
                     }
-                    if (curP.getPlanEndDate() != null && curP.getPlanEndDate().isBefore(LocalDate.parse(createDate[i], localDtf))) {
-                        HttpRespMsg msg = new HttpRespMsg();
-                        msg.setError("项目["+curP.getProjectName()+"]截止于"+localDtf.format(curP.getPlanEndDate())+",请修改。");
-                        return msg;
-                    }
+                    //取消对截止时间的校验
+//                    if (curP.getPlanEndDate() != null && curP.getPlanEndDate().isBefore(LocalDate.parse(createDate[i], localDtf))) {
+//                        HttpRespMsg msg = new HttpRespMsg();
+//                        msg.setError("项目["+curP.getProjectName()+"]截止于"+localDtf.format(curP.getPlanEndDate())+",请修改。");
+//                        return msg;
+//                    }
                 } else {
                     //批量填报(含代填)
                     String[] dateArr = createDate[i].split("@");
@@ -291,11 +294,11 @@ public class ReportController {
                             msg.setError("项目["+curP.getProjectName()+"]已撤销。");
                             return msg;
                         }
-                        if (curP.getPlanEndDate() != null && curP.getPlanEndDate().isBefore(LocalDate.parse(curDate, localDtf))) {
-                            HttpRespMsg msg = new HttpRespMsg();
-                            msg.setError("项目["+curP.getProjectName()+"]截止于"+localDtf.format(curP.getPlanEndDate())+",请修改。");
-                            return msg;
-                        }
+//                        if (curP.getPlanEndDate() != null && curP.getPlanEndDate().isBefore(LocalDate.parse(curDate, localDtf))) {
+//                            HttpRespMsg msg = new HttpRespMsg();
+//                            msg.setError("项目["+curP.getProjectName()+"]截止于"+localDtf.format(curP.getPlanEndDate())+",请修改。");
+//                            return msg;
+//                        }
                     }
                 }
             }

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

@@ -27,5 +27,5 @@ public interface DepartmentMapper extends BaseMapper<Department> {
     @Update("update department set report_audit_userid = null where department_id = #{departmentId}")
     void updateNullLeader(Integer departmentId);
 
-    List<Map<String, Object>> getDeptCustomDataStatistic(String startDate, String endDate, Integer departmentId, Integer companyId);
+    List<Map<String, Object>> getDeptCustomDataStatistic(String startDate, String endDate, List departmentIds, Integer companyId);
 }

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

@@ -2,6 +2,7 @@ package com.management.platform.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.management.platform.entity.Department;
+import com.management.platform.entity.User;
 import com.management.platform.util.HttpRespMsg;
 
 import javax.servlet.http.HttpServletRequest;
@@ -43,4 +44,8 @@ public interface DepartmentService extends IService<Department> {
     HttpRespMsg getDeptCustomDataStatistic(String startDate, String endDate, Integer departmentId, HttpServletRequest request);
 
     public List<Integer> getDeptIncludeSubDeptIds(Integer departmentId, List<Department> allDeptList);
+
+    public List<Integer> getAllManagedDeptIdList(User curUser, List<Department> allDepartmentList);
+
+    HttpRespMsg exportCustomDataSum(String startDate, String endDate, HttpServletRequest request);
 }

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

@@ -88,4 +88,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg fixIssue();
 
     HttpRespMsg getWeeklyCardTime(String dateStr, HttpServletRequest request);
+
+    HttpRespMsg getWeeklyWorkTime(String dateStr, HttpServletRequest request);
 }

+ 9 - 17
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/BusinessTripServiceImpl.java

@@ -193,26 +193,18 @@ public class BusinessTripServiceImpl extends ServiceImpl<BusinessTripMapper, Bus
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部出差");
         if (functionList.size() == 0) {
-            //部门主要负责人可以看这个部门的
-            List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", user.getId()));
-            if (departmentList.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<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
-                List<Integer> allDeptIds = new ArrayList<>();
-                for (Department firstLevelDept : departmentList) {
-                    List<Integer> deptIncludeSubDeptIds = departmentService.getDeptIncludeSubDeptIds(firstLevelDept.getDepartmentId(), allDeptList);
-                    allDeptIds.addAll(deptIncludeSubDeptIds);
-                }
-                if (allDeptIds.size() > 0) {
-                    List<User> userList = userMapper.selectList(new QueryWrapper<User>().select("id").in("department_id", allDeptIds));
-                    List<String> collect = userList.stream().map(User::getId).collect(Collectors.toList());
-                    userIds.addAll(collect);
-                    System.out.println("可见用户size=="+userIds.size());
-                    queryWrapper.in("owner_id", userIds);
-                }
+                List<User> userList = userMapper.selectList(new QueryWrapper<User>().select("id").in("department_id", mdids));
+                List<String> collect = userList.stream().map(User::getId).collect(Collectors.toList());
+                userIds.addAll(collect);
+                queryWrapper.in("owner_id", userIds);
             } else {
                 //普通员工只能看自己的
                 sheet.setOwnerId(user.getId());

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

@@ -19,6 +19,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -34,9 +35,12 @@ import java.util.stream.Collectors;
 public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Department> implements DepartmentService {
     @Value(value = "${upload.path}")
     private String path;
+
     @Resource
     private UserMapper userMapper;
     @Resource
+    private TimeTypeMapper timeTypeMapper;
+    @Resource
     private SysFunctionMapper sysFunctionMapper;
     @Resource
     private DepartmentMapper departmentMapper;
@@ -730,6 +734,93 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
         return msg;
     }
 
+
+    //获取所有负责的部门id List
+    public List<Integer> getAllManagedDeptIdList(User curUser, List<Department> allDepartmentList) {
+        if (allDepartmentList == null) {
+            allDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", curUser.getCompanyId()));
+        }
+        //负责的部门:先查担任主要负责人的部门
+        List<Department> allMDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", curUser.getId()));
+        //其他负责的部门
+        List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", curUser.getId()));
+        List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
+        for (Integer integer : otherCollect) {
+            Optional<Department> first = allDepartmentList.stream().filter(ad -> ad.getDepartmentId().equals(integer)).findFirst();
+            if(first.isPresent()){
+                allMDeptList.add(first.get());
+            }
+        }
+
+        List<Department> subDepts = new ArrayList<>();
+        for (Department dp : allMDeptList) {
+            subDepts.addAll(getSubDepts(dp, allDepartmentList));
+            subDepts.add(dp);
+        }
+        List<Integer> collect = subDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList());
+        return collect;
+    }
+
+    @Override
+    public HttpRespMsg exportCustomDataSum(String startDate, String endDate, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        try {
+            Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
+            HttpRespMsg msg = getUserCustomDataStatistic(startDate, endDate, null, request);
+            Map<String, Object> map = (Map<String, Object>) msg.data;
+            List<HashMap> itemList = (List<HashMap>) map.get("list");
+            TimeType timeType = timeTypeMapper.selectById(companyId);
+            List<String> headList = new ArrayList<String>();
+            headList.add("序号");
+            headList.add("姓名");
+            headList.add(timeType.getCustomDataName());
+            List<List<String>> allList = new ArrayList<List<String>>();
+            allList.add(headList);
+            double totalCostTime = 0;
+            int seq=1;
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+
+            //计算合计的费用
+            for (Map<String, Object> membMap : itemList) {
+                List<String> membRowData = new ArrayList<String>();
+                membRowData.add(String.valueOf(seq));
+                membRowData.add((String)membMap.get("name"));
+                membRowData.add(((Double)membMap.get("cost")).toString());
+                allList.add(membRowData);
+                totalCostTime += (Double)membMap.get("cost");
+                seq++;
+            }
+            //合计
+            List<String> sumRow = new ArrayList<String>();
+            sumRow.add("合计");
+            sumRow.add("");
+            sumRow.add(""+new BigDecimal(totalCostTime).setScale(1, BigDecimal.ROUND_HALF_UP));
+            allList.add(sumRow);
+            //生成excel文件导出
+            String fileName = timeType.getCustomDataName() + "统计_"+System.currentTimeMillis();
+            String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , allList, path);
+
+            httpRespMsg.data = resp;
+        } catch (NullPointerException e) {
+            e.printStackTrace();
+            httpRespMsg.setError("验证失败");
+            return httpRespMsg;
+        }
+        return httpRespMsg;
+    }
+
+
+    private List<Department> getSubDepts(Department dp, List<Department> list) {
+        List<Department> collect = list.stream().filter(l -> dp.getDepartmentId().equals(l.getSuperiorId())).collect(Collectors.toList());;
+        List<Department> allList = new ArrayList<>();
+        allList.addAll(collect);
+        if (collect.size() > 0) {
+            collect.forEach(c->{
+                allList.addAll(getSubDepts(c, list));
+            });
+        }
+        return allList;
+    }
     @Override
     public HttpRespMsg getUserCustomDataStatistic(String startDate, String endDate, Integer departmentId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
@@ -737,18 +828,29 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
 
             List<Integer> deptIds = null;
+            List<Department> allDeptList = null;
             //首先校验有无权限
             if (departmentId != null) {
                 if (departmentMapper.selectCount(new QueryWrapper<Department>()
                         .eq("department_id", departmentId)
                         .eq("company_id", companyId)) == 1) {
-                    List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+                    allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
                     deptIds = getBranchDepartment(departmentId, allDeptList);
                 } else {
                     httpRespMsg.setError("部门不存在或无查看权限");
                     return httpRespMsg;
                 }
             }
+            //检查是否有查看全公司数值的权限
+            User curUser = userMapper.selectById(request.getHeader("TOKEN"));
+            List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看全公司数值");
+            if (functionList.size() == 0) {
+                //检查是否有负责的部门
+                deptIds = getAllManagedDeptIdList(curUser, allDeptList);
+                if (deptIds.size() == 0) {
+                    deptIds.add(-1);//没有负责的部门,无权查看
+                }
+            }
             List<Map<String, Object>> list = departmentMapper
                     .getCustomDataByUser(deptIds, startDate, endDate, companyId, null);
             Map<String, List<Map<String, Object>>> tempMap = new HashMap<>();
@@ -882,7 +984,21 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
     public HttpRespMsg getDeptCustomDataStatistic(String startDate, String endDate, Integer departmentId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
-        List<Map<String,Object>> mapList=departmentMapper.getDeptCustomDataStatistic(startDate,endDate,departmentId,companyId);
+
+        List<Integer> deptIds = null;
+        List<Department> allDeptList = null;
+
+        //检查是否有查看全公司数值的权限
+        User curUser = userMapper.selectById(request.getHeader("TOKEN"));
+        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看全公司数值");
+        if (functionList.size() == 0) {
+            //检查是否有负责的部门
+            deptIds = getAllManagedDeptIdList(curUser, allDeptList);
+            if (deptIds.size() == 0) {
+                deptIds.add(-1);//没有负责的部门,无权查看
+            }
+        }
+        List<Map<String,Object>> mapList=departmentMapper.getDeptCustomDataStatistic(startDate,endDate,deptIds,companyId);
         Map<String, List<Map<String, Object>>> tempMap = new HashMap<>();
         List<Department> departmentList = new ArrayList<>();
         Double totalCost = 0.0;

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

@@ -127,25 +127,18 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
         User user = userMapper.selectById(token);
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部请假单");
         if (functionList.size() == 0) {
-            //部门主要负责人可以看这个部门的
-            List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", user.getId()));
-            if (departmentList.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<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
-                List<Integer> allDeptIds = new ArrayList<>();
-                for (Department firstLevelDept : departmentList) {
-                    List<Integer> deptIncludeSubDeptIds = departmentService.getDeptIncludeSubDeptIds(firstLevelDept.getDepartmentId(), allDeptList);
-                    allDeptIds.addAll(deptIncludeSubDeptIds);
-                }
-                if (allDeptIds.size() > 0) {
-                    List<User> userList = userMapper.selectList(new QueryWrapper<User>().select("id").in("department_id", allDeptIds));
-                    List<String> collect = userList.stream().map(User::getId).collect(Collectors.toList());
-                    userIds.addAll(collect);
-                    queryWrapper.in("owner_id", userIds);
-                }
+                List<User> userList = userMapper.selectList(new QueryWrapper<User>().select("id").in("department_id", mdids));
+                List<String> collect = userList.stream().map(User::getId).collect(Collectors.toList());
+                userIds.addAll(collect);
+                queryWrapper.in("owner_id", userIds);
             } else {
                 //普通员工只能看自己的
                 sheet.setOwnerId(user.getId());

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -4061,6 +4061,18 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return msg;
     }
 
+    @Override
+    public HttpRespMsg getWeeklyWorkTime(String dateStr, HttpServletRequest request) {
+        String userId = request.getHeader("TOKEN");
+        HttpRespMsg msg = new HttpRespMsg();
+        List<String> dateList = JSONArray.parseArray(dateStr, String.class);
+        //获取已经填报的工时
+        List<Report> list = reportMapper.selectList(new QueryWrapper<Report>().select("sum(working_time) as working_time, create_date")
+                .eq("creator_id", userId).in("create_date", dateList).groupBy("create_date"));
+        msg.data = list;
+        return msg;
+    }
+
     private void selfUpdateToNextWorkFlow(Integer companyId, User auditTargetUser, List<Integer> targetRids, List<Department> allDepts) {
         List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
                 new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", companyId)

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml

@@ -14,7 +14,7 @@ spring:
       location: C:/upload/
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://47.101.180.183:3306/man_hour_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
+    url: jdbc:mysql://47.101.180.183:3306/man_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
     username: root
     password: HuoshiDB@2022
     hikari:

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

@@ -101,6 +101,12 @@
         <if test="companyId!=null">
             AND a.company_id =#{companyId}
         </if>
+        <if test="departmentIds != null">
+            AND a.department_id IN
+            <foreach collection="departmentIds" item="departmentId" index="index" open="(" close=")" separator=",">
+                #{departmentId}
+            </foreach>
+        </if>
         <if test="startDate!=null and endDate!=null">
             AND b.create_date between #{startDate} and #{endDate}
         </if>

+ 3 - 0
fhKeeper/formulahousekeeper/timesheet/src/permissions.js

@@ -101,6 +101,8 @@ const StringUtil = {
 
         // 导入日报审核
         importAudit: false, // 查看导审记录 //
+
+        customDataAll: false,// 查看全公司数值-自定义数值统计模块
         
     }
     // console.log(arr);
@@ -184,6 +186,7 @@ const StringUtil = {
         arr[i] == '全部项目成本基线表' ? obj.reportAllOutputValue = true : ''
         arr[i] == '负责项目成本基线表' ? obj.reportOutputValue = true : ''
         arr[i] == '日报导出' ? obj.reportExport = true : ''
+        arr[i] == '查看全公司数值' ? obj.customDataAll = true : ''
     }
 
     return obj

+ 6 - 5
fhKeeper/formulahousekeeper/timesheet/src/views/project/custom_data.vue

@@ -17,7 +17,7 @@
             ></el-date-picker>
 
             <el-radio-group v-model="radio" @change="getEchart" style="margin-left:10px;">
-                <el-radio-button label="项目"></el-radio-button>
+                <el-radio-button label="项目" v-if="permissions.customDataAll"></el-radio-button>
                 <!-- <el-radio-button label="部门"></el-radio-button> -->
                 <el-radio-button label="人员"></el-radio-button>
                 <el-radio-button label="部门"></el-radio-button>
@@ -36,9 +36,9 @@
         </div>
 
         <!--导出报表条件选择 -->
-        <el-dialog title="工时报表导出" v-if="exportDialog" :visible.sync="exportDialog" :close-on-click-modal="false" customClass="customWidth" width="500px">
+        <el-dialog title="数据导出" v-if="exportDialog" :visible.sync="exportDialog" :close-on-click-modal="false" customClass="customWidth" width="500px">
             <el-form ref="form3" :model="exportParam" >
-                <el-form-item prop="projectId" label="选择项目" >
+                <el-form-item prop="projectId" label="选择项目" v-if="permissions.customDataAll">
                     <el-select v-model="exportParam.projectId" placeholder="全部项目"  clearable style="width:350px;" filterable="true">
                         <el-option v-for="item in projectList"  :key="item.id" :label="item.projectName + item.projectCode" :value="item.id">
                             <span style="float: left;color: #8492a6; font-size: 13px">{{ item.projectCode }}</span>
@@ -93,6 +93,7 @@
                 exportDialog:false,
                 dateRange:[],
                 user: JSON.parse(sessionStorage.getItem("user")),
+                permissions: JSON.parse(sessionStorage.getItem("permissions")),
                 radio: sessionStorage.radio!=null?sessionStorage.radio:'项目',
                 containerHeight: 0,    
                 myChart: null,
@@ -192,7 +193,7 @@
                  if (this.exportParam.dateRange != null) {
                     param = {startDate:this.exportParam.dateRange[0], endDate: this.exportParam.dateRange[1]};
                  }
-                 var url = "/project/exportCustomDataSum";
+                 var url = this.permissions.customDataAll? "/project/exportCustomDataSum":"/department/exportCustomDataSum";
                  var fileName = this.user.timeType.customDataName + '统计.xls';
                 //  if (this.radio == '人员' ) {
                 //      console.log(this.exportParam.userIds);
@@ -671,7 +672,7 @@
                 }
                 this.exportParam.dateRange = this.dateRange;
             }
-            this.radio = '项目'
+            this.radio = this.permissions.customDataAll?'项目':'人员';
             this.getEchart();
             var _this = this;
             window.addEventListener("resize", function() {

+ 30 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -4192,7 +4192,8 @@
                     obj[xinzhi].workingTime = 0
                 }
                 this.zhoData.push(obj)
-                this.getWeeklyCardTime()
+                this.getWeeklyCardTime();
+                this.getWeeklyWorkTime();
             },
             // 减去时间
             dateChange(num = 1,date = false) {
@@ -4311,6 +4312,31 @@
                             })
                         })
             },
+            getWeeklyWorkTime(){
+                let dateStr = []
+                        for(let i in this.zhoData){
+                            dateStr.push(this.zhoData[i].zhoDataTime)
+                        }
+                        this.http.post('/report/getWeeklyWorkTime',{
+                            dateStr: JSON.stringify(dateStr)
+                        },res => {
+                            if(res.code == 'ok'){
+                                for(let i in res.data){
+                                    
+                                }
+                            }else{
+                                this.$message({
+                                    message: res.msg,
+                                    type: 'error'
+                                })
+                            }
+                        },err => {
+                            this.$message({
+                                message: err,
+                                type: 'error'
+                            })
+                        })
+            },
             selListqx(){
                 this.diasZho = false
                 this.selProjectList = []
@@ -4419,6 +4445,9 @@
                 if(this.zhoData.length && (this.user.timeType.showDdCardtime == 1 || this.user.timeType.showCorpwxCardtime == 1)){
                     this.getWeeklyCardTime()
                 }
+                if (this.zhoData.length) {
+                    this.getWeeklyWorkTime();
+                }
             },
             zhoZhi(res, i) {
                 var zhi = 0