Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java
#	fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
yusm 1 yıl önce
ebeveyn
işleme
db206f7069
27 değiştirilmiş dosya ile 173 ekleme ve 57 silme
  1. 5 5
      fhKeeper/formulahousekeeper/inva_4_tivo/css/dynamic.css
  2. 6 5
      fhKeeper/formulahousekeeper/inva_4_tivo/css/dynamic.less
  3. 24 25
      fhKeeper/formulahousekeeper/inva_4_tivo/dynamic.html
  4. BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaiFou.jpeg
  5. BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaiThree.jpeg
  6. BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaiTwo.jpeg
  7. BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaiba.jpeg
  8. BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaijiu.jpeg
  9. BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtailiu.jpeg
  10. BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaione.jpeg
  11. BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaishi.jpeg
  12. BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaishiyi.jpeg
  13. BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/gongshi.jpg
  14. 7 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/GroupBudgetReviewController.java
  15. 5 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  16. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java
  17. 12 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskGroupController.java
  18. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java
  19. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  20. 80 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  21. 13 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  22. 2 1
      fhKeeper/formulahousekeeper/timesheet/src/i18n/en.json
  23. 2 1
      fhKeeper/formulahousekeeper/timesheet/src/i18n/zh.json
  24. 2 1
      fhKeeper/formulahousekeeper/timesheet/src/routes.js
  25. 5 4
      fhKeeper/formulahousekeeper/timesheet/src/views/project/custom_data.vue
  26. 3 3
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue
  27. 2 2
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/weekEdit.vue

+ 5 - 5
fhKeeper/formulahousekeeper/inva_4_tivo/css/dynamic.css

@@ -21,15 +21,15 @@
   justify-content: space-between;
 }
 .enterpriseDynamics .bifJournal .eachItem .eachItemImg {
-  width: 300px;
-  height: 200px;
+  width: 260px;
+  height: 120px;
+  overflow: hidden;
   display: flex;
   justify-content: center;
   align-items: center;
 }
 .enterpriseDynamics .bifJournal .eachItem .eachItemImg img {
-  width: 200px;
-  height: 200px;
+  height: 180px;
 }
 .enterpriseDynamics .bifJournal .eachItem .eachItemRight {
   margin-left: 40px;
@@ -43,7 +43,7 @@
   margin-top: 10px;
   margin-bottom: 10px;
   line-height: 22px;
-  height: 135px;
+  height: 85px;
   overflow: hidden;
   text-overflow: ellipsis;
 }

+ 6 - 5
fhKeeper/formulahousekeeper/inva_4_tivo/css/dynamic.less

@@ -18,14 +18,15 @@
             display: flex;
             justify-content: space-between;
             .eachItemImg {
-                width: 300px;
-                height: 200px;
+                width: 260px;
+                height: 120px;
+                overflow: hidden;
                 display: flex;
                 justify-content: center;
                 align-items: center;
                 img {
-                    width: 200px;
-                    height: 200px;
+                    // width: 200px;
+                    height: 180px;
                 }
             }
             .eachItemRight {
@@ -39,7 +40,7 @@
                     margin-top: 10px;
                     margin-bottom: 10px;
                     line-height: 22px;
-                    height: 135px;
+                    height: 85px;
                     overflow: hidden;
                     text-overflow: ellipsis;
                 }

+ 24 - 25
fhKeeper/formulahousekeeper/inva_4_tivo/dynamic.html

@@ -74,12 +74,14 @@
                         <img :src="item.img ? item.img : './image/gsgj.png'" alt="">
                     </div>
                     <div class="eachItemRight">
-                        <div class="eachItemRightTilt" style="opacity: 0;">文章标题1</div>
+                        <div class="eachItemRightTilt" style="opacity: 0;" v-if="item.title">文章标题1</div>
                         <div class="eachItemRightText">
                             {{ item.text }}
                         </div>
                         <div class="eachItemRightBum">
-                            <span class="ons" @click="learnMore(item)">了解详情<i class="el-icon-arrow-right"></i></span>
+                            <span class="ons" @click="learnMore(item)">
+                                <span v-if="item.showText">了解详情<i class="el-icon-arrow-right"></i></span>
+                            </span>
                             <span>{{ item.date }}</span>
                         </div>
                     </div>
@@ -173,85 +175,82 @@
                             title: '',
                             text: '增加全球化网络访问的支持,方便在海外工作的客户使用。',
                             date: '2024.01.15',
-                            img: ''
+                            img: './image/journal/dongtaiOne.jpeg'
                         },
                         {
                             title: '',
                             text: '为苏州依斯倍环保装备科技有限公司提供项目工时一体化解决方案,深度对接SAP系统,完成数据双向通讯。',
                             date: '2023.12.20',
-                            img: ''
-                        }
-                    ], [
+                            img: './image/journal/dongtaiTwo.jpeg'
+                        },
                         {
                             title: '',
                             text: '为A股上市企业南京雷尔伟新技术完成车间管家系统的上线运营。通过深入沟通和快速响应,实现了个性化的需求,完成了原有MES系统无法实现的工时工钱统计目标。',
                             date: '2023.11.18',
-                            img: './image/journal/chejian.jpg'
+                            img: './image/journal/dongtaiThree.jpeg'
                         },
                         {
                             title: '',
                             text: '签约重庆物奇微电子股份有限公司,帮助上百人的研发团队实现便捷轻松的工时管理。',
                             date: '2023.10.09',
-                            img: ''
-                        }
-                    ], [
+                            img: './image/journal/dongtaiFou.jpeg'
+                        },
                         {
                             title: '',
                             text: '工时管家发布新版,支持钉钉和飞书平台。',
                             date: '2023.06.10',
-                            img: ''
+                            img: './image/journal/gongshi.jpg'
                         },
+                    ], [
+                        
                         {
                             title: '',
                             text: '与中瀚设计集团达成战略合作关系,通过工时管家的项目管理专业版完成了项目中的工时成本、费用报销成本、项目预算、合同管理等全方位一体化的管理。',
                             date: '2023.05.23',
-                            img: ''
-                        }
-                    ], [
+                            img: './image/journal/dongtailiu.jpeg'
+                        },
                         {
                             title: '',
                             text: '工时管家上架企业微信平台,并成为企业微信推荐的唯一一款工时产品。',
                             date: '2022.10.15',
-                            img: ''
+                            img: './image/journal/gongshi.jpg'
                         },
                         {
                             title: '',
                             text: '签约深圳市法本信息技术有限公司,作为一家以软件外包为核心业务的大公司,研发人员的工时成本管理事关重要。经过反复对比和长期考察,法本信息最终决定使用我们的工时管家软件。',
                             date: '2022.06.10',
-                            img: ''
-                        }
-                    ], [
+                            img: './image/journal/dongtaiba.jpeg'
+                        },
                         {
                             title: '',
                             text: '上海威派格智慧水务有限公司之前一直使用宜搭来管理工时,但随着人员增长到1000人规模,对软件的需求越来越深入后,零代码平台已经无法实现他们的目标。切换到工时管家后,得益于我们平台的行业经验积累,通过我们内置的一些模块快速实现了业务需求。',
                             date: '2022.03.21',
-                            img: ''
+                            img: './image/journal/dongtaijiu.jpeg'
                         },
                         {
                             title: '',
                             text: '签约北京首钢集团信息化技术有限公司。为北京首钢提供了定制化需求和私有化部署,支持他们8000人规模的企业员工同时使用。',
                             date: '2022.02.25',
-                            img: ''
+                            img: './image/journal/dongtaishi.jpeg'
                         }
                     ], [
                         {
                             title: '',
                             text: '随访管家系统发布,获得北京助研科技的青睐。作为一家CRO企业,对临床随访的管理需要一款远程数字化的协作平台,通过数据的互通来提高办公效率。随访管家便是针对这一方向打造的产品。',
                             date: '2021.06.24',
-                            img: './image/journal/suifang.png'
+                            img: './image/journal/dongtaishiyi.jpeg'
                         },
                         {
                             title: '',
                             text: '工时管家累计客户达100家,逐步发布专业版和企业旗舰版。',
                             date: '2021.03.18',
-                            img: ''
-                        }
-                    ], [
+                            img: './image/journal/gongshi.jpg'
+                        },
                         {
                             title: '',
                             text: '工时管家产品发布,支持工时的填报审核和统计。为企业IPO提供有效数据支持。',
                             date: '2020.10.12',
-                            img: ''
+                            img: './image/journal/gongshi.jpg'
                         }
                     ]
                 ]

BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaiFou.jpeg


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaiThree.jpeg


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaiTwo.jpeg


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaiba.jpeg


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaijiu.jpeg


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtailiu.jpeg


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaione.jpeg


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaishi.jpeg


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/dongtaishiyi.jpeg


BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/journal/gongshi.jpg


+ 7 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/GroupBudgetReviewController.java

@@ -55,11 +55,13 @@ public class GroupBudgetReviewController {
         GroupBudgetReview groupBudgetReview=new GroupBudgetReview();
         TaskGroup taskGroup = taskGroupMapper.selectById(groupId);
         Project project = projectMapper.selectById(taskGroup.getProjectId());
-        List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().select(Task::getPlanHours,Task::getGroupId).isNotNull(Task::getPlanHours).eq(Task::getGroupId, groupId));
-        int sum = taskList.stream().mapToInt(Task::getPlanHours).sum();
-        if(sum>((nowManDay==null?0:nowManDay)*8)){
-            httpRespMsg.setError("任务分组["+taskGroup.getName()+"]的预估工时需大于等于已分配任务的总计划工时["+sum+"]小时");
-            return httpRespMsg;
+        if(project.getCategory()!=null&&project.getCategory()==696){
+            List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().select(Task::getPlanHours,Task::getGroupId).isNotNull(Task::getPlanHours).eq(Task::getGroupId, groupId));
+            int sum = taskList.stream().mapToInt(Task::getPlanHours).sum();
+            if(sum>((nowManDay==null?0:nowManDay)*8)){
+                httpRespMsg.setError("任务分组["+taskGroup.getName()+"]的预估工时需大于等于已分配任务的总计划工时["+sum+"]小时");
+                return httpRespMsg;
+            }
         }
         groupBudgetReview.setGroupId(groupId).setGroupName(taskGroup.getName())
                 .setOldManDay(oldManDay)

+ 5 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -2445,5 +2445,10 @@ public class ReportController {
     public HttpRespMsg exportUserWorkTimeByCategory(@RequestParam(required = true) Integer categoryId,Integer deptId,String userId,String startDate,String endDate){
         return reportService.exportUserWorkTimeByCategory(categoryId,deptId,userId,startDate,endDate);
     }
+
+    @RequestMapping("getCustomDataWithDate")
+    public HttpRespMsg getCustomDataWithDate(String startDate,String endDate,HttpServletRequest request){
+        return reportService.getCustomDataWithDate(startDate,endDate,request);
+    }
 }
 

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -171,7 +171,8 @@ public class TaskController {
             }
             //针对依斯呗的校验
             if(user.getCompanyId()==3092){
-                if(task.getGroupId()!=null){
+                Project project = projectService.getById(task.getProjectId());
+                if(task.getGroupId()!=null&&(project.getCategory()!=null&&project.getCategory()==696)){
                     TaskGroup taskGroup = taskGroupService.getById(task.getGroupId());
                     if(taskGroup.getManDay()==null){
                         msg.setError("创建失败,请先分配任务分组的预估工时");

+ 12 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskGroupController.java

@@ -176,14 +176,22 @@ public class TaskGroupController {
         List<TaskGroup> addList = new ArrayList<>();
         int totalManDay = 0;
         List<Integer> groupIds = groupList.stream().map(TaskGroup::getId).collect(Collectors.toList());
+        List<Integer> projectIds = groupList.stream().map(TaskGroup::getProjectId).collect(Collectors.toList());
+        projectIds.add(-1);
+        List<Project> projectList = projectMapper.selectList(new LambdaQueryWrapper<Project>().in(Project::getId,projectIds).isNotNull(Project::getCategory));
         List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().select(Task::getPlanHours,Task::getGroupId).isNotNull(Task::getPlanHours).in(Task::getGroupId, groupIds));
         for (TaskGroup taskGroup : groupList) {
             TaskGroup item = new TaskGroup();
             List<Task> targetTaskList = taskList.stream().filter(t -> t.getGroupId() != null && t.getGroupId().equals(taskGroup.getId())).collect(Collectors.toList());
-            int sum = targetTaskList.stream().mapToInt(Task::getPlanHours).sum();
-            if(sum>((taskGroup.getManDay()==null?0:taskGroup.getManDay())*8)){
-                msg.setError("任务分组["+taskGroup.getName()+"]的预估工时需大于等于已分配任务的总计划工时["+sum+"]小时");
-                return msg;
+            if(taskGroup.getProjectId()!=null){
+                Optional<Project> first = projectList.stream().filter(p -> p.getId().equals(taskGroup.getProjectId())).findFirst();
+                if(first.isPresent()&&first.get().getCategory()==696){
+                    int sum = targetTaskList.stream().mapToInt(Task::getPlanHours).sum();
+                    if(sum>((taskGroup.getManDay()==null?0:taskGroup.getManDay())*8)){
+                        msg.setError("任务分组["+taskGroup.getName()+"]的预估工时需大于等于已分配任务的总计划工时["+sum+"]小时");
+                        return msg;
+                    }
+                }
             }
             item.setId(taskGroup.getId());
             if (taskGroup.getManDay() == null) {

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

@@ -202,4 +202,5 @@ public interface ReportMapper extends BaseMapper<Report> {
     List<Map<String, Object>> getUserWorkTimeByCategory(Integer categoryId, String userId,Integer companyId,@Param("list")List<Integer> deptIds, Integer deptId, String startDate, String endDate);
 
     List<Map<String, Object>> selectReallyTimeWithMap(Integer companyId,Integer projectId);
+    List<Map<String, Object>> getCustomDataWithDate(String startDate, String endDate, Integer companyId);
 }

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

@@ -147,4 +147,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg cannelAllReport();
 
     HttpRespMsg getHasPushForSap(String startDate, String endDate, String employeeID);
+
+    HttpRespMsg getCustomDataWithDate(String startDate, String endDate, HttpServletRequest request);
 }

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

@@ -8580,4 +8580,84 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         msg.setData(actualEmployeeTimes);
         return msg;
     }
+
+    @Override
+    public HttpRespMsg getCustomDataWithDate(String startDate, String endDate, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        List<LocalDate> dateList = getDays(LocalDate.parse(startDate,df), LocalDate.parse(endDate,df));
+        //检查是否有查看全公司数值的权限
+        User curUser = userMapper.selectById(request.getHeader("TOKEN"));
+        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看全公司数值");
+        List<Map<String,Object>> mapList=reportMapper.getCustomDataWithDate(startDate,endDate,companyId);
+        if(functionList==null){
+           mapList=new ArrayList<>();
+        }
+        Map<String, List<Map<String, Object>>> tempMap = new HashMap<>();
+        List<Map<String,Object>> createDateList = new ArrayList<>();
+        Double totalCost = 0.0;
+        //结果集中默认加上不存在的日期数据
+        for (LocalDate date : dateList) {
+            String dateString = df.format(date);
+            Optional<Map<String, Object>> first = mapList.stream().filter(m -> String.valueOf(m.get("createDate")).equals(dateString)).findFirst();
+            if(!first.isPresent()){
+                Map<String,Object> map=new HashMap<>();
+                map.put("createDate",dateString);
+                map.put("project","");
+                map.put("cost",Double.valueOf(0));
+                mapList.add(map);
+            }
+        }
+        mapList = mapList.stream().sorted(Comparator.comparing(m->LocalDate.parse(String.valueOf(m.get("createDate")),df))).collect(Collectors.toList());
+        for (Map<String, Object> map : mapList) {
+            if (tempMap.containsKey(map.get("createDate"))) {
+                //这个名字已经装进数组中了
+                List<Map<String, Object>> tempList = tempMap.get(map.get("createDate"));
+                Map<String, Object> dataMap = new HashMap<>();
+                dataMap.put("project", map.get("project"));
+                Double cost = (Double) map.getOrDefault("cost", 0);
+                totalCost = totalCost + cost;
+                dataMap.put("cost", cost);
+                tempList.add(dataMap);
+            } else {
+                Map<String,Object> createMap=new HashMap<>();
+                createMap.put("createDate",(String)map.get("createDate"));
+                createDateList.add(createMap);
+                //这个名字尚未装进数组中
+                List<Map<String, Object>> tempList = new ArrayList<>();
+                if (map.containsKey("project")) {
+                    Map<String, Object> dataMap = new HashMap<>();
+                    dataMap.put("project", map.get("project"));
+                    Double cost = (Double) map.getOrDefault("cost", 0);
+                    totalCost = totalCost + cost;
+                    dataMap.put("cost", cost);
+                    tempList.add(dataMap);
+                }
+                tempMap.put((String) map.get("createDate"), tempList);
+            }
+        }
+        Map<String, Object> finalMap = new HashMap<>();
+        List<Map<String, Object>> finalList = new ArrayList<>();
+        for (String key : tempMap.keySet()) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("name", key);
+            List<Map<String, Object>> userProjectTime = tempMap.get(key);
+            map.put("project", userProjectTime);
+            //计算总时间
+            double userTotalTime = 0;
+            for (Map<String, Object> timeItem: userProjectTime) {
+                double t = (double)timeItem.get("cost");
+                userTotalTime += t;
+            }
+            map.put("cost", userTotalTime);
+            finalList.add(map);
+        }
+        finalList=finalList.stream().sorted(Comparator.comparing(m->LocalDate.parse(String.valueOf(m.get("name")),df))).collect(Collectors.toList());
+        finalMap.put("totalCost", totalCost);
+        finalMap.put("list", finalList);
+        finalMap.put("createDateList",createDateList);
+        httpRespMsg.data = finalMap;
+        return httpRespMsg;
+    }
 }

+ 13 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -1147,6 +1147,19 @@
         group by p.id,r.create_date,u.id
     </select>
 
+    <select id="getCustomDataWithDate" resultType="java.util.Map">
+        SELECT  DATE_FORMAT(b.`create_date`,'%Y-%m-%d') AS createDate,c.project_name AS project, IFNULL(SUM(b.custom_data),0) AS cost
+        FROM  report AS b
+        LEFT JOIN project AS c ON b.project_id = c.id
+        WHERE b.state = 1
+        AND b.company_id =#{companyId}
+        <if test="startDate!=null and endDate!=null">
+        AND b.create_date BETWEEN #{startDate} AND #{endDate}
+        </if>
+        GROUP BY b.project_id,b.`create_date`
+        HAVING IFNULL(SUM(b.custom_data),0) > 0
+    </select>
+
     <select id="selectReallyTimeWithMap" resultType="java.util.Map">
         SELECT p.id as projectId, SUM(IFNULL(r.working_time, 0)) AS total_working_time
         FROM report r LEFT JOIN project p ON r.project_id = p.id

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/i18n/en.json

@@ -24,7 +24,8 @@
     "approvalFlowSettings": "Approval flow Settings",
     "basicDataManagemen": "Basic Data Managemen",
     "basicSystemSettings": "Basic System Settings",
-    "roleRightsManagement": "Role Rights Management"
+    "roleRightsManagement": "Role Rights Management",
+    "gongshitongji":"工时统计表"
   },
   "role": {
     "ordinaryEmployees": "Ordinary employees",

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/i18n/zh.json

@@ -26,7 +26,8 @@
     "basicSystemSettings": "系统基础设置",
     "roleRightsManagement": "角色权限管理",
     "projectFormSettings": "项目表单设置",
-    "budgetReview":"预估工时审核"
+    "budgetReview":"预估工时审核",
+    "gongshitongji":"工时统计表"
   },
   "role": {
     "ordinaryEmployees": "普通员工",

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/routes.js

@@ -503,7 +503,8 @@ export const simpleRouters = [
         leaf: true,
         children: [
             { path: '/simple', component: simpleReport, name: '工时统计表' },
-        ]
+        ],
+        meta: { text: 'navigation.gongshitongji' }
     },
     {
         path: '/404',

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

@@ -21,6 +21,7 @@
                 <!-- <el-radio-button :label="部门"></el-radio-button> -->
                 <el-radio-button :label="$t('ren-yuan')"></el-radio-button>
                 <el-radio-button :label="$t('lable.department')"></el-radio-button>
+                <el-radio-button :label="'日期'"></el-radio-button>
                 <!-- <el-radio-button :label="namess" v-if="jichu.customDegreeActive == 1"></el-radio-button> -->
             </el-radio-group>
         </el-col>
@@ -225,7 +226,7 @@
             //获取人员成本统计列表
             getUserCostList() {
                 this.listLoading = true;
-                let url = this.radio == this.$t('ren-yuan') ? '/department/getUserCustomDataStatistic' : '/department/getDeptCustomDataStatistic'
+                let url = this.radio == this.$t('ren-yuan') ? '/department/getUserCustomDataStatistic' :this.radio == '日期'?'/report/getCustomDataWithDate': '/department/getDeptCustomDataStatistic'
                 this.http.post(url, {
                     startDate:this.user.timeType.fixMonthcost==0?this.dateRange[0]:this.dateRange, 
                     endDate: this.user.timeType.fixMonthcost==0?this.dateRange[1]:this.dateRange
@@ -472,7 +473,7 @@
                     url = '/project/getCustomDataSum';
                 // } else if (this.radio=='部门') {
                 //     url = '/department/getDeptCustomDataStatistic';
-                } else if (this.radio==this.$t('ren-yuan') || this.radio == this.$t('lable.department')) {
+                } else if (this.radio==this.$t('ren-yuan') || this.radio == this.$t('lable.department')||this.radio == '日期') {
                     this.getUserCostList();
                     return;
                 } else if (this.radio == this.namess) {
@@ -519,7 +520,7 @@
                                     totalHours += parseFloat(list[i].costTime);
                                 }
                             }
-                        } else {
+                        } else if(this.radio == this.$t('ren-yuan') || this.radio=='日期') {
                             list = res.data
                             var totalMoneyCost = 0;
                             for(var i in list) {
@@ -547,7 +548,7 @@
                         if(totalMoneyCost) {
                             this.zhishin = totalMoneyCost.toFixed(2)
                         } 
-                        if(this.radio == this.$t('other.project') || this.radio == this.$t('ren-yuan') || this.radio==this.$t('lable.department')) {
+                        if(this.radio == this.$t('other.project') || this.radio == this.$t('ren-yuan') || this.radio==this.$t('lable.department')|| this.radio=='日期') {
                             var option = {
                                 title: {
                                     text: _this.user.timeType.customDataName+_this.$t('zong-ji')+':' + totalHours,

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

@@ -1523,8 +1523,8 @@ export default {
                                         tname = filterList[0].taskName;
                                     }
                                 }
-                                let mmm = !t.customDegreeMultiple ? list[i].degreeId : list[i].multiDegrIdList
-                                let sss = list[i].degreeList
+                                let mmm = !t.customDegreeMultiple ? list[i].degreeId : (list[i].multiDegrIdList || [])
+                                let sss = list[i].degreeList || []
                                 let radioPickDegree = ''
                                 let wuduName = ''
                                 if(!t.customDegreeMultiple) {
@@ -1539,7 +1539,7 @@ export default {
                                     radioPickDegree = sss.filter(s => mmm.includes(s.id))
                                     wuduName = arr.join(',')
                                 }
-                                
+                            
                                 let serverPicArray = [];
                                 // console.log('picArray=='+list[i].picStr);
                                 if (list[i].picStr != null && list[i].picStr != '@') {

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/weekEdit.vue

@@ -2652,14 +2652,14 @@
                             } = arrayItem.reportList[j]
 
                             let newMultiDegrId = []
-                            let newWeiduName = degreeList.filter(s => s.id == degreeId).map(s => s.name).join(',')
+                            let newWeiduName = (degreeList || []).filter(s => s.id == degreeId).map(s => s.name).join(',')
                             if(timeType.customDegreeMultiple) {
                                 newMultiDegrId = multiDegrId ? JSON.parse(multiDegrId.replace(/@/g, ',')) : [] 
                                 newMultiDegrId = newMultiDegrId.map(item => {
                                     return parseInt(item, 10);
                                 })
 
-                                newWeiduName = degreeList.filter(s => newMultiDegrId.includes(+s.id)).map(s => s.name).join(',');
+                                newWeiduName = (degreeList || []).filter(s => newMultiDegrId.includes(+s.id)).map(s => s.name).join(',');
                             }
 
                             let newObj = {