Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

yusm 1 mēnesi atpakaļ
vecāks
revīzija
9b95026ac1
17 mainītis faili ar 293 papildinājumiem un 101 dzēšanām
  1. 4 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DepartmentController.java
  2. 4 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  3. 9 6
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Department.java
  4. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java
  5. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/DepartmentService.java
  6. 5 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java
  7. 4 41
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  8. 11 10
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  9. 3 2
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DepartmentMapper.xml
  10. 9 14
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml
  11. 7 1
      fhKeeper/formulahousekeeper/timesheet/src/views/project/detail.vue
  12. 3 3
      fhKeeper/formulahousekeeper/timesheet/src/views/project/qrCodeManagement.vue
  13. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/dailyReportReview.vue
  14. 144 7
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue
  15. 77 2
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/weekEdit.vue
  16. 7 0
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue
  17. 2 0
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/review/index.vue

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

@@ -77,8 +77,8 @@ public class DepartmentController {
      * parentId 父级部门id
      */
     @RequestMapping("/add")
-    public HttpRespMsg insertDepartment(@RequestParam String name, Integer parentId, String managerId, String reportAuditUserid,String otherManagerIds, Integer isEnableMulti,HttpServletRequest request) {
-        return departmentService.insertDepartment(name, parentId, managerId, reportAuditUserid,otherManagerIds, isEnableMulti, request);
+    public HttpRespMsg insertDepartment(@RequestParam String name, Integer parentId, String managerId, String reportAuditUserid,String otherManagerIds, Integer isEnableMulti,String deptCode,HttpServletRequest request) {
+        return departmentService.insertDepartment(name, parentId, managerId, reportAuditUserid,otherManagerIds, isEnableMulti, deptCode, request);
     }
 
     /**
@@ -87,8 +87,8 @@ public class DepartmentController {
      * name 部门名称
      */
     @RequestMapping("/edit")
-    public HttpRespMsg updateDepartment(@RequestParam Integer id, @RequestParam String name, String managerId, String reportAuditUserid,String otherManagerIds,Integer pushToSap, Integer isEnableMulti, HttpServletRequest request) {
-        return departmentService.updateDepartment(id, name, managerId, reportAuditUserid,otherManagerIds,pushToSap,isEnableMulti, request);
+    public HttpRespMsg updateDepartment(@RequestParam Integer id, @RequestParam String name, String managerId, String reportAuditUserid,String otherManagerIds,Integer pushToSap, Integer isEnableMulti, String deptCode, HttpServletRequest request) {
+        return departmentService.updateDepartment(id, name, managerId, reportAuditUserid,otherManagerIds,pushToSap,isEnableMulti, deptCode, request);
     }
 
     /**

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

@@ -540,16 +540,16 @@ public class ReportController {
                 extraField3[i] = null;
             }
         }
-        if (extraField4 == null) {
+        if (extraField4 == null || extraField4.length == 0) {
             extraField4 = new String[projectId.length];
             for(int i=0;i<extraField4.length; i++) {
-                extraField4[i] = null;
+                extraField4[i] = "";
             }
         }
-        if (extraField5 == null) {
+        if (extraField5 == null || extraField5.length == 0) {
             extraField5 = new String[projectId.length];
             for(int i=0;i<extraField5.length; i++) {
-                extraField5[i] = null;
+                extraField5[i] = "";
             }
         }
         if (professionProgress == null) {

+ 9 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Department.java

@@ -1,6 +1,5 @@
 package com.management.platform.entity;
 
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -16,7 +15,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2023-11-30
+ * @since 2025-04-16
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -58,23 +57,21 @@ public class Department extends Model<Department> {
     /**
      * 部门负责人id
      */
-    @TableField(value = "manager_id")
+    @TableField("manager_id")
     private String managerId;
 
     /**
      * 日报导入审核人
      */
-    @TableField(value = "report_audit_userid")
+    @TableField("report_audit_userid")
     private String reportAuditUserid;
 
-
     /**
      * 企业微信的部门id
      */
     @TableField("corpwx_deptid")
     private Integer corpwxDeptid;
 
-
     /**
      * 企业微信部门的父部门id
      */
@@ -99,6 +96,12 @@ public class Department extends Model<Department> {
     @TableField("push_to_sap")
     private Integer pushToSap;
 
+    /**
+     * 部门编码
+     */
+    @TableField("dept_code")
+    private String deptCode;
+
 
     @Override
     protected Serializable pkVal() {

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

@@ -192,7 +192,7 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     Long userProjectProcessCount(Integer deptId, String userId, Integer projectId, Integer companyId,@Param("list") List<Integer> deptIds,@Param("listSecond") List<Integer> regularDeptIds);
 
-    List<Map<String, Object>> groupExpendProcessList(String userId, Integer companyId,String startDate,String endDate,@Param("list") List<Integer> deptIds,@Param("listSecond") List<Integer> regularDeptIds,@Param("listFour") List<Integer> projectIds);
+    List<Map<String, Object>> groupExpendProcessList(String userId, Integer companyId,String startDate,String endDate,@Param("projectIds") List<Integer> projectIds);
 
     List<Map<String, Object>> projectExpendProcessList(String startDate,String endDate,Integer projectId, Integer categoryId, String userId, Integer companyId, @Param("list") List<Integer> deptIds, Integer start, Integer size);
 

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

@@ -18,9 +18,9 @@ import java.util.List;
  * @since 2020-02-11
  */
 public interface DepartmentService extends IService<Department> {
-    HttpRespMsg insertDepartment(String departmentName, Integer superiorId, String managerId, String reportAuditUserid,String otherManagerIds,Integer isEnableMulti, HttpServletRequest request);
+    HttpRespMsg insertDepartment(String departmentName, Integer superiorId, String managerId, String reportAuditUserid,String otherManagerIds,Integer isEnableMulti, String deptCode, HttpServletRequest request);
 
-    HttpRespMsg updateDepartment(Integer departmentId, String departmentName, String managerId, String reportAuditUserid,String otherManagerIds,Integer pushToSap, Integer isEnableMulti, HttpServletRequest request);
+    HttpRespMsg updateDepartment(Integer departmentId, String departmentName, String managerId, String reportAuditUserid,String otherManagerIds,Integer pushToSap, Integer isEnableMulti, String deptCode, HttpServletRequest request);
 
     HttpRespMsg deleteDepartment(Integer departmentId, HttpServletRequest request);
 

+ 5 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -87,7 +87,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
 
     //新增部门
     @Override
-    public HttpRespMsg insertDepartment(String departmentName, Integer superiorId, String managerId, String reportAuditUserid,String otherManagerIds, Integer isEnableMulti, HttpServletRequest request) {
+    public HttpRespMsg insertDepartment(String departmentName, Integer superiorId, String managerId, String reportAuditUserid,String otherManagerIds, Integer isEnableMulti, String deptCode, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
@@ -100,7 +100,8 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                         .setSuperiorId(superiorId)
                         .setManagerId(managerId)
                         .setCompanyId(companyId)
-                        .setReportAuditUserid(reportAuditUserid);
+                        .setReportAuditUserid(reportAuditUserid)
+                        .setDeptCode(deptCode);
                 if (departmentMapper.insert(department) == 0) {
                     //httpRespMsg.setError("添加失败");
                     httpRespMsg.setError(MessageUtils.message("other.addFail"));
@@ -146,7 +147,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
 
     //更新部门
     @Override
-    public HttpRespMsg updateDepartment(Integer departmentId, String departmentName,String managerId, String reportAuditUserid,String otherManagerIds,Integer pushToSap, Integer isEnableMulti, HttpServletRequest request) {
+    public HttpRespMsg updateDepartment(Integer departmentId, String departmentName,String managerId, String reportAuditUserid,String otherManagerIds,Integer pushToSap, Integer isEnableMulti, String deptCode, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
@@ -164,6 +165,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                 department.setManagerId(managerId);
                 department.setPushToSap(pushToSap);
                 department.setReportAuditUserid(reportAuditUserid);
+                department.setDeptCode(deptCode);
 
                 //修改审批流中的部门名称
                 if (deptNameChanged) {

+ 4 - 41
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -15244,7 +15244,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<Integer> targetDeptIds=new ArrayList<>();
         targetDeptIds.add(7458);
         targetDeptIds.add(8696);
-        targetDeptIds.add(8695);
+        targetDeptIds.add(8695);//工程本部
         //需要统计的分组名称
         List<String> targetGroupNameList=new ArrayList<>();
         targetGroupNameList.add("生产部电气");
@@ -15276,41 +15276,15 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //是否具有查看全部数据的权限
         //针对依斯呗 指定部门
         List<Integer> projectIdList = projectList.stream().map(Project::getId).distinct().collect(Collectors.toList());
-        List<Integer> regularDeptIds=new ArrayList<>();
-        if(user.getCompanyId()==3092){
-            List<String> nameString=new ArrayList<>();
-            nameString.add("4");
-            nameString.add("46");
-            nameString.add("45");
-            List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, user.getCompanyId()).in(Department::getDepartmentName, nameString));
-            List<Integer> theCollect = departmentList.stream().map(dm -> dm.getDepartmentId()).distinct().collect(Collectors.toList());
-            theCollect.add(-1);
-            for (Integer integer : theCollect) {
-                List<Integer> branchDepartment = getBranchDepartment(integer, allDeptList);
-                regularDeptIds.addAll(branchDepartment);
-            }
-        }
         if(!viewAll){
             if(!incharger){
                 //只能查看本人的数据
-                resultList=projectMapper.groupExpendProcessList(user.getId(),companyId,startDate,endDate,null,null,projectIdList);
+                resultList=projectMapper.groupExpendProcessList(user.getId(),companyId,startDate,endDate,projectIdList);
             }else {
-                List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().select(Department::getDepartmentId).eq(Department::getManagerId, user.getId()));
-                List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", user.getId()));
-                List<Integer> deptIds=new ArrayList<>();
-                List<Integer> theCollect = departmentList.stream().map(dm -> dm.getDepartmentId()).distinct().collect(Collectors.toList());
-                theCollect.add(-1);
-                List<Integer> otherCollect = departmentOtherManagerList.stream().map(dom -> dom.getDepartmentId()).distinct().collect(Collectors.toList());
-                otherCollect.add(-1);
-                theCollect.addAll(otherCollect);
-                for (Integer integer : theCollect) {
-                    List<Integer> branchDepartment = getBranchDepartment(integer, allDeptList);
-                    deptIds.addAll(branchDepartment);
-                }
-                resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,deptIds,regularDeptIds,projectIdList);
+                resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,projectIdList);
             }
         }else {
-            resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,null,regularDeptIds,projectIdList);
+            resultList=projectMapper.groupExpendProcessList(null,companyId,startDate,endDate,projectIdList);
         }
         List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
         List<Map<String,Object>> itemList=new ArrayList<>();
@@ -15320,11 +15294,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 Optional<Department> department = departmentList.stream().filter(d -> d.getDepartmentId().equals(deptId)).findFirst();
                 Integer corpwxDeptid = department.get().getCorpwxDeptid();
                 String departmentName = department.get().getDepartmentName();
-                List<Integer> subDeptIds;
                 switch (deptId){
                     case 8696:
-                        //获取此部门下的子部门id列表
-                        subDeptIds = getBranchDepartment(deptId, allDeptList);
                         groupNames=new ArrayList<>();
                         groupNames.add("生产部电气");
                         groupNames.add("生产部车间");
@@ -15339,8 +15310,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             item.put("corpwxDeptId",corpwxDeptid);
                             item.put("department_name",departmentName);
                             if(taskGroup.isPresent()){
-//                                List<Map<String, Object>> mapList = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
-//                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId()) && (Integer.valueOf(String.valueOf(r.get("deptId"))).equals(7459) || subDeptIds.contains(Integer.valueOf(String.valueOf(r.get("deptId")))))).collect(Collectors.toList());
                                 List<Map<String, Object>> mapList = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
                                         && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId())).collect(Collectors.toList());
                                 if(mapList!=null&&mapList.size()>0){
@@ -15383,8 +15352,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                         break;
                     case 8695:
-                        //获取此部门下的子部门id列表
-                        subDeptIds = getBranchDepartment(deptId, allDeptList);
                         groupNames=new ArrayList<>();
                         groupNames.add("工程部现场安装施工");
                         groupNames.add("工程部配合调试");
@@ -15399,8 +15366,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             item.put("corpwxDeptId",corpwxDeptid);
                             item.put("department_name",departmentName);
                             if(taskGroup.isPresent()){
-//                                List<Map<String, Object>> mapList = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
-//                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId()) && (Integer.valueOf(String.valueOf(r.get("deptId"))).equals(7460) || subDeptIds.contains(Integer.valueOf(String.valueOf(r.get("deptId")))))).collect(Collectors.toList());
                                 List<Map<String, Object>> mapList = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
                                         && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId())).collect(Collectors.toList());
                                 if(mapList!=null&&mapList.size()>0){
@@ -15443,8 +15408,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                         break;
                     case 7458:
-                        //获取此部门下的子部门id列表
-                        subDeptIds = getBranchDepartment(deptId, allDeptList);
                         groupNames=new ArrayList<>();
                         groupNames.add("研发部工艺设计");
                         groupNames.add("研发部结构设计");

+ 11 - 10
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -2255,7 +2255,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     for (Map map : nameList) {
                         String itemUid = (String)map.get("userId");
                         String dateStr = (String)map.get("dateStr");
-                        Optional<UserFvTime> first = timeList.stream().filter(time -> time.getUserId().equals(itemUid) && dtf.format(time.getWorkDate()).equals(dateStr)).findFirst();
+                        Optional<UserFvTime> first = timeList.stream().filter(time -> itemUid.equals(time.getUserId()) && dtf.format(time.getWorkDate()).equals(dateStr)).findFirst();
                         if (first.isPresent()) {
                             double wh = first.get().getWorkHours();
                             //赋值打卡时长
@@ -10376,7 +10376,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         HttpRespMsg msg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        List<UserFvTime> userFvTimeList = userFvTimeMapper.selectList(new LambdaQueryWrapper<UserFvTime>().between(UserFvTime::getWorkDate, startDate, endDate));
+        List<UserFvTime> userFvTimeList = userFvTimeMapper.selectList(new LambdaQueryWrapper<UserFvTime>().between(UserFvTime::getWorkDate, startDate, endDate).eq(UserFvTime::getCompanyId, user.getCompanyId()));
         List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, user.getCompanyId()));
         List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, user.getCompanyId()));
         List<UserCustom> userCustomList = userCustomMapper.selectList(new LambdaQueryWrapper<UserCustom>().eq(UserCustom::getCompanyId, user.getCompanyId()));
@@ -10919,7 +10919,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     }
                     //如果存在corpwxUserid位空的用户,按姓名匹配
                     List<String> nameList = manageUserList.stream().filter(u->u.getCorpwxUserid() == null).map(User::getName).collect(Collectors.toList());
-                    if (nameList.size() == 0) {
+                    if (nameList.size() > 0) {
                         userCorpwxTimeList.addAll(userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("company_id", companyId).in("name", nameList).between("create_date", firstDay, lastDay)));
                     }
                 } else {
@@ -10938,7 +10938,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 if (!StringUtils.isEmpty(userId)) {
                     User findUser = userMapper.selectById(userId);
                     if (findUser != null) {
-                        userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>().eq("company_id", companyId).eq("user_id", userId).between("create_date", firstDay, lastDay));
+                        userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>().eq("company_id", companyId).eq("user_id", userId).between("work_date", firstDay, lastDay));
                         manageUserList.add(findUser);
                     }
                 } else  if (deptId != null) {
@@ -10948,10 +10948,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     manageUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", allSubDeptIds));
                     if (manageUserList.size() > 0) {
                         List<String> collect = manageUserList.stream().map(User::getId).collect(Collectors.toList());
-                        userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>().eq("company_id", companyId).in("user_id", collect).between("create_date", firstDay, lastDay));
+                        userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>().eq("company_id", companyId).in("user_id", collect).between("work_date", firstDay, lastDay));
                     }
                 } else {
-                    userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>().eq("company_id", companyId).between("create_date", firstDay, lastDay));
+                    userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>().eq("company_id", companyId).between("work_date", firstDay, lastDay));
                     manageUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
                 }
             } else {
@@ -10980,11 +10980,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     }
                     List<String> userIdList = manageUserList.stream().map(User::getId).collect(Collectors.toList());
                     if (userIdList.size() > 0) {
-                        userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>().eq("company_id", companyId).in("user_id", userIdList).between("create_date", firstDay, lastDay));
+                        userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>().eq("company_id", companyId).in("user_id", userIdList).between("work_date", firstDay, lastDay));
                     }
                 } else {
                     //个人看自己的
-                    userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>().eq("company_id", companyId).eq("user_id", user.getId()).between("create_date", firstDay, lastDay));
+                    userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>().eq("company_id", companyId).eq("user_id", user.getId()).between("work_date", firstDay, lastDay));
                     manageUserList.add(user);
                 }
             }
@@ -11060,8 +11060,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             for (UserFvTime fvTime : userFvTimeList) {
                 boolean isMatch = true;
                 double reportTime = 0;
-                User targetUser = manageUserList.stream().filter(u -> fvTime.getUserId().equals(u.getId())).findFirst().get();;
-                if (targetUser != null) {
+                Optional<User> first = manageUserList.stream().filter(u -> u.getId().equals(fvTime.getUserId())).findFirst();
+                if (first.isPresent()) {
+                    User targetUser = first.get();
                     for (Report report : reportList) {
                         if (report.getCreatorId().equals(targetUser.getId()) && fvTime.getWorkDate().isEqual(report.getCreateDate())) {
                             reportTime = report.getWorkingTime();

+ 3 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DepartmentMapper.xml

@@ -16,11 +16,12 @@
         <result column="dd_deptid" property="ddDeptid" />
         <result column="feishu_deptid" property="feishuDeptid" />
         <result column="push_to_sap" property="pushToSap" />
+        <result column="dept_code" property="deptCode" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        department_id, department_name, seq, superior_id, company_id, manager_id, report_audit_userid, corpwx_deptid, corpwx_deptpid, dd_deptid, feishu_deptid, push_to_sap
+        department_id, department_name, seq, superior_id, company_id, manager_id, report_audit_userid, corpwx_deptid, corpwx_deptpid, dd_deptid, feishu_deptid, push_to_sap, dept_code
     </sql>
     <!--根据部门获取成本-->
     <select id="getCostByDepartment" resultType="java.util.Map">
@@ -149,7 +150,7 @@
     <select id="getNameWithProjectRelates" resultType="com.management.platform.entity.vo.ProjectDeptInfo">
         select department.department_id,department.department_name,pdr.project_id
         from department
-                 left join project_dept_relate pdr on department.department_id = pdr.department_id
+        left join project_dept_relate pdr on department.department_id = pdr.department_id
         where pdr.project_id in
         <foreach collection="projectIds" item="projectId" separator="," open="(" close=")">
             #{projectId}

+ 9 - 14
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -1960,35 +1960,30 @@
     </select>
 
     <select id="groupExpendProcessList" resultType="java.util.Map">
-        SELECT p.project_name AS projectName,p.id AS projectId,tg.id AS groupId,d.department_name,d.department_id AS deptId,d.corpwx_deptid AS corpwxDeptId,tg.name AS groupName,
+        SELECT p.project_name AS projectName,p.id AS projectId,tg.id AS groupId,tg.name AS groupName,
         IFNULL(r.realHour,0) AS realHour,IFNULL(r.realCost,0) AS realCost,IFNULL(r.normalHour,0) as normalHour,IFNULL(r.overHour,0) as overHour,
         IFNULL(tg.man_day*8,0) AS planHour,IFNULL((SELECT SUM(change_man_day*8) FROM `group_budget_review` WHERE group_id=tg.`id` AND `status`=1),0) AS afterSetPlanHour
         FROM task_group tg
-        LEFT JOIN task t ON tg.id = t.group_id
-        LEFT JOIN task_executor te ON t.id = te.task_id
-        LEFT JOIN user u
-        ON te.executor_id = u.id AND u.`company_id`=#{companyId}
-        LEFT JOIN project p ON p.id=tg.project_id
-        LEFT JOIN department d ON d.department_id=u.department_id
+        LEFT JOIN project p ON p.id=tg.project_id AND p.`company_id`=#{companyId}
         LEFT JOIN (
         SELECT SUM(working_time) AS realHour,SUM(cost) AS realCost,(SUM(working_time)-SUM(overtime_hours)) AS normalHour,SUM(overtime_hours) AS overHour,group_id,dept_id
         FROM report  WHERE state=1
         <if test="startDate!=null and startDate!='' and endDate!=null and endDate!=''">
          AND create_date BETWEEN #{startDate} AND #{endDate}
         </if>
-        AND project_id IS NOT NULL AND company_id=#{companyId} GROUP BY group_id,dept_id) r ON r.group_id=tg.`id` and r.dept_id=u.department_id
+        <if test="userId!=null and userId!=''">
+            and report.creator_id=#{userId}
+        </if>
+        AND project_id IS NOT NULL AND company_id=#{companyId} GROUP BY group_id) r ON r.group_id=tg.`id`
         WHERE p.company_id=#{companyId}
-        <if test="listFour!=null and listFour.size()>0">
+        <if test="projectIds!=null and projectIds.size()>0">
             AND tg.project_id in
-            <foreach collection="listFour" separator="," open="(" close=")" item="item">
+            <foreach collection="projectIds" separator="," open="(" close=")" item="item">
                 #{item}
             </foreach>
         </if>
         AND tg.name IN ('生产部电气','生产部车间','工程部现场安装施工','工程部配合调试','研发部工艺设计','研发部结构设计','研发部BIM设计','研发部电气设计','研发部工艺调试验收','研发部电气调试验收')
-        <if test="userId!=null and userId!=''">
-            and t.executor_id=#{userId}
-        </if>
-        GROUP BY p.id,tg.id,d.department_id ORDER BY p.id,d.department_id
+        GROUP BY p.id,tg.id ORDER BY p.id
     </select>
 
     <select id="groupExpendProcessListForChart" resultType="java.util.Map">

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

@@ -225,7 +225,13 @@
                             normal: {
                                 show: true,
                                 position: 'top',
-                                formatter: `{c} ${this.yAxisValue == 0 ? '元' : '小时'}`,
+                                // formatter: `{c} ${this.yAxisValue == 0 ? '元' : '小时'}`,
+                                formatter: function (params) {
+                                    var value = params.value.toFixed(1);
+                                    const totalValue = _this.yAxisValue == 0 ? value + '元' : value + 'h';
+                                    const dayValue = _this.yAxisValue == 0 ? 0 : (value/_this.user.timeType.allday).toFixed(1);
+                                    return `${totalValue}${_this.yAxisValue == 0?'':('/'+dayValue+'人天')}`;
+                                }
                             }
                         }
                     }]

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

@@ -104,7 +104,7 @@ export default {
         });
         var filePath = res.data;
         const a = document.createElement('a'); // 创建a标签
-        a.setAttribute('download', this.$t('projectexport') + '.xlsx');// download属性
+        a.setAttribute('download', '二维码' + '.zip');// download属性
         a.setAttribute('href', filePath);// href链接
         a.click(); //自执行点击事件
         a.remove();
@@ -133,18 +133,18 @@ export default {
     },
     geTableData() {
       const filteredParams = {};
+      console.log(this.filterValForm, '<==== this.filterValForm')
       for (const key in this.filterValForm) {
         const val = this.filterValForm[key];
         if (val !== '' && val !== null && val !== undefined) {
           filteredParams[key] = val;
         }
       }
-
       this.tableLoading = true
       this.postData('/erpOrderInfo/getInfoPage', {
         pageIndex: this.pageIndex,
         pageSize: this.pageSize,
-        ...this.filteredParams
+        ...filteredParams
       }).then(res => {
         console.log('res', res)
         console.log(res.data.data, '<======= 数据')

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

@@ -235,7 +235,7 @@
                       {{scope.row.reportTime | amounts}}
                   </template>
               </el-table-column>
-              <el-table-column prop="cardHours" :label="$t('workAttendance') + '(h)'" v-if="user.timeType.showCorpwxCardtime==1||user.timeType.showDdCardtime==1">
+              <el-table-column prop="cardHours" :label="$t('workAttendance') + '(h)'" v-if="user.timeType.showCorpwxCardtime==1||user.timeType.showDdCardtime==1 || user.timeType.syncFanwei==1">
                   <template slot-scope="scope">
                       <span :style="scope.row.cardHours != scope.row.reportTime?'color:red':''">{{scope.row.cardHours?scope.row.cardHours.toFixed(1):'-'}}</span>
                   </template>

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

@@ -75,9 +75,19 @@
                 @click="copyProject(index)" style="border: 1px solid #20a0ff;padding:5px;"
                  icon="plus" type="default" ><span style="color:#666;padding: 0 5px;">复制项目</span></van-tag> -->
 
-                    <van-tag v-if="(index > 0 || form.domains.length > 1) && item.canEdit" color="#fff"
-                        @click="delPro(index)" style="border: 1px solid #ff0000;padding:5px;margin-left:10px;" icon="plus"
-                        type="default"><span style="color:#666;padding: 0 5px;">删除</span></van-tag>
+                <!-- 扫码填报 -->
+                <van-tag v-if="item.canEdit && user.companyId == 7536" color="#fff"
+                    @click="scanCodeToFillIn(index)" style="border: 1px solid #409eff;padding:5px;margin-left:10px;" icon="plus"
+                    type="default"><span style="color:#409eff;padding: 0 5px;">扫码填报</span>
+                </van-tag>
+                <!-- <van-tag v-if="item.canEdit && user.companyId == 7536" color="#fff"
+                    @click="determineQrcode(index)" style="border: 1px solid #409eff;padding:5px;margin-left:10px;" icon="plus"
+                    type="default"><span style="color:#409eff;padding: 0 5px;">扫码填报</span>
+                </van-tag> -->
+
+                <van-tag v-if="(index > 0 || form.domains.length > 1) && item.canEdit" color="#fff"
+                    @click="delPro(index)" style="border: 1px solid #ff0000;padding:5px;margin-left:10px;" icon="plus"
+                    type="default"><span style="color:#666;padding: 0 5px;">删除</span></van-tag>
                 </div>
                 <!-- <van-icon v-if="index>0&&canEdit" class="form_del" name="delete" @click="delPro(index)" /> -->
                 <van-cell-group :title="(user.companyId == 781 ? '任务' : '项目') + (index + 1)">
@@ -154,6 +164,26 @@
                         <van-picker show-toolbar :columns="item.stages" value-key="stagesName" @confirm="choseStage"
                             @cancel="item.showPickerStage = false; $forceUpdate();" />
                     </van-popup>
+                    <template v-if="item.projectId">
+                        <!-- 工单号 -->
+                        <van-field readonly name="stage" :disabled="!item.canEdit"
+                        v-if="user.timeType.reportExtraField4Name"
+                        clickable :value="item.extraField4" :label="user.timeType.reportExtraField4Name" placeholder="请选择"
+                        @click="clickPickExtraField4(index, item)" />
+                        <van-popup v-model="item.showPickerExtraField4" position="bottom" :close-on-click-overlay="false">
+                            <van-picker show-toolbar :columns="(item.reportExtraField4List || [])" value-key="stagesName" @confirm="choseExtraField4"
+                            @cancel="item.showPickerExtraField4 = false; $forceUpdate();" />
+                        </van-popup>
+                        <!-- 行号 -->
+                        <van-field readonly name="stage" :disabled="!item.canEdit"
+                        v-if="user.timeType.reportExtraField5Name"
+                        clickable :value="item.extraField5" :label="user.timeType.reportExtraField5Name" :placeholder="`请选择`"
+                        @click="clickPickExtraField5(index, item)" />
+                        <van-popup v-model="item.showPickerExtraField5" position="bottom" :close-on-click-overlay="false">
+                            <van-picker v-if="item.showPickerExtraField5" show-toolbar :columns="(item.reportExtraField5List || [])" value-key="stagesName" @confirm="choseExtraField5" @cancel="item.showPickerExtraField5 = false; $forceUpdate();" />
+                        </van-popup>
+                    </template>
+                    
                     <!-- 预算来源 -->
                     <van-field readonly name="basecostId" :disabled="!item.canEdit"
                         v-if="user.company.packageProject == 1 && reportBasecostList && reportBasecostList.length > 0"
@@ -574,14 +604,21 @@
                 </div>
             </div>
         </van-popup>
+
+        <!-- 扫码 -->
+        <div class="qrcodeClass" v-if="showQrcode">
+            <Qrcode @closeQrcode="closeQrcode" @determineQrcode="determineQrcode" />
+        </div>
     </div>
 </template>
 <script>
 import timetoolVue from '../timetool/timetool.vue';
+import Qrcode from '../../components/qrcode.vue'
 // Vue.prototype.$wx = wx
 // import { Recorder } from '../../assets/record/recorder'
 // var recorder = null
 export default {
+    components: { Qrcode },
     data() {
         return {
             roleList: [{ value: 1, label: 'CRC&LM' }, { value: 2, label: 'PM' }],
@@ -589,6 +626,7 @@ export default {
             yuzhongCompId: 3385,
             dailyIndex: 0,
 
+            showQrcode: false,
             integrationProjectList: [],
             cardRefLoading: false,
             today: '',
@@ -643,7 +681,9 @@ export default {
                     state: 2,
                     multiWorktime: 0,
                     worktimeList: {},
-                    degreeId: ''
+                    degreeId: '',
+                    extraField4: '',
+                    extraField5: '',
                     // pics:["https://worktime.ttkuaiban.com/upload/bc4df504fa724e6cab69872e2c1cfb35.png",
                     // "https://worktime.ttkuaiban.com/upload/bc4df504fa724e6cab69872e2c1cfb35.png",
                     // "https://worktime.ttkuaiban.com/upload/bc4df504fa724e6cab69872e2c1cfb35.png",]
@@ -735,7 +775,40 @@ export default {
     },
 
     methods: {
-
+        scanCodeToFillIn(index) {
+            this.clickIndex = index
+            this.showQrcode = true
+        },
+        closeQrcode() {
+            this.showQrcode = false
+        },
+        determineQrcode(val) {
+            this.clickIndex = val
+            // const { line, orderId, projectId, projectName, trueProjectId } = JSON.parse(`{"id":1,"line":1,"orderId":"MO-2021-08-0004","projectId":"HH-EQ-2101003","projectName":"行走轴样机","status":4,"trueProjectId":"64218"}`)
+            // const { line, orderId, projectId, projectName, trueProjectId } = JSON.parse(localStorage.getItem('scanTheCode') || `{}`)
+            const { line, orderId, projectId, projectName, trueProjectId } = JSON.parse(val || '{}')
+            if(!trueProjectId) {
+                this.$toast.fail(`请扫描正确的二维码`);
+                return
+            }
+            if(!this.form.domains[this.clickIndex].canEdit) {
+                this.$toast.fail(`待审核的日报扫码无效`);
+                return
+            }
+            this.form.domains[this.clickIndex] = {
+                ...this.form.domains[this.clickIndex],
+                extraField4: orderId,
+                extraField5: line,
+                projectName: projectName,
+                projectId: trueProjectId,
+            };
+            const { reportExtraField4Name, reportExtraField5Name } = this.user.timeType
+            const item = { id: trueProjectId, projectName: projectName, projectCode: projectId }
+            this.fZr(item, this.scanCodeIndex, true)
+            if(reportExtraField4Name || reportExtraField5Name) {
+                this.getInfoByProjectId(item.projectCode, this.clickIndex, false)
+            }
+        },
         //选中角色
         choseRole(value, index) {
             if (value) {
@@ -1028,7 +1101,7 @@ export default {
                 }).catch(err => { this.$toast.clear(); });
         },
 
-        fZr(item, index) {
+        fZr(item, index, flag = false) {
 
             var domainItem = this.form.domains[this.clickIndex];
             domainItem.projectId = item.id;
@@ -1082,6 +1155,26 @@ export default {
             if (this.user.companyId == this.yuzhongCompId) {
                 this.updateResponse(domainItem);
             }
+            // 工单号,行号
+            const { reportExtraField4Name, reportExtraField5Name } = this.user.timeType
+            if((reportExtraField4Name || reportExtraField5Name) && !flag) {
+                this.getInfoByProjectId(item.projectCode)
+            }
+        },
+        getInfoByProjectId(projectCode, index = null, flag = true) {
+            const { projectId } = this.form.domains[this.clickIndex];
+            this.$axios.post("/erpOrderInfo/getInfoByProjectId", { projectId: projectCode })
+                .then(res => {
+                    if (res.code == "ok") {
+                        if(flag) {
+                            this.form.domains[index == null ? this.clickIndex : index].extraField4 = ''
+                            this.form.domains[index == null ? this.clickIndex : index].extraField5 = ''
+                        }
+                        this.form.domains[index == null ? this.clickIndex : index].reportExtraField4List = res.data.orderIds || []
+                        this.form.domains[index == null ? this.clickIndex : index].reportExtraField5List = res.data.lines || []
+                    }
+                    this.$forceUpdate();
+                }).catch(err => { this.$toast.clear(); });
         },
         //获取项目下的任务分组
         getTaskGroups(domainItem, index) {
@@ -1793,6 +1886,8 @@ export default {
                                     extraField2Name: list[i].extraField2Name,
                                     extraField3: list[i].extraField3,
                                     extraField3Name: list[i].extraField3Name,
+                                    extraField4: list[i].extraField4,
+                                    extraField5: list[i].extraField5,
                                     workContentList: list[i].workContentList,
                                     filteredRespList: filteredRespList,
                                     sapServiceId: list[i].sapServiceId,
@@ -1817,6 +1912,11 @@ export default {
                                     this.canCancel = true;
                                     this.canCancelInDialog = true
                                 }
+                                const { reportExtraField4Name, reportExtraField5Name } = this.user.timeType
+                                if(reportExtraField4Name || reportExtraField5Name) {
+                                    const { projectCode } = this.proads.find(item => item.id == list[i].projectId)
+                                    this.getInfoByProjectId(projectCode, i, false)
+                                }
                             }
                             this.form.domains = array;
                             // console.log('执行One')
@@ -1974,6 +2074,18 @@ export default {
             item.showPickerStage = true;
             this.$forceUpdate();
         },
+        clickPickExtraField4(i, item) {
+            if (!item.canEdit) return;
+            this.clickIndex = i;
+            item.showPickerExtraField4 = true;
+            this.$forceUpdate();
+        },
+        clickPickExtraField5(i, item) {
+            if (!item.canEdit) return;
+            this.clickIndex = i;
+            item.showPickerExtraField5 = true;
+            this.$forceUpdate();
+        },
         selectDeptPopup(i, item) {
             this.clickIndex = i;
             this.showSelectDeptPopup = true;
@@ -2127,7 +2239,20 @@ export default {
             this.form.domains[this.clickIndex].showPickerStage = false;
             this.getTaskList(this.form.domains[this.clickIndex]);
             this.$forceUpdate();
-
+        },
+        choseExtraField4(value) {
+            if (value) {
+                this.form.domains[this.clickIndex].extraField4 = value
+            }
+            this.form.domains[this.clickIndex].showPickerExtraField4 = false;
+            this.$forceUpdate();
+        },
+        choseExtraField5(value) {
+            if (value) {
+                this.form.domains[this.clickIndex].extraField5 = value
+            }
+            this.form.domains[this.clickIndex].showPickerExtraField5 = false;
+            this.$forceUpdate();
         },
         choseCostId(value, index) {
             if (value) {
@@ -2499,6 +2624,7 @@ export default {
                     return;
                 }
             }
+            const { reportExtraField4Name, reportExtraField5Name } = this.user.timeType
             //填字段
             for (var i in this.form.domains) {
                 // 检查任务/里程碑是否为必填
@@ -2738,6 +2864,11 @@ export default {
                         return;
                     }
                 }
+
+                if(reportExtraField4Name || reportExtraField5Name) {
+                    formData.append('extraField4', this.form.domains[i].extraField4 || '');
+                    formData.append('extraField5', this.form.domains[i].extraField5 || '');
+                }
             }
             if (!this.flgLg) {
                 return
@@ -2911,6 +3042,12 @@ export default {
             this.getReportDeptList()
         }
 
+        if(this.$route.query.scanTheCode == 1) {
+            setTimeout(() => {
+                this.scanCodeToFillIn(0)
+                // this.determineQrcode(0)
+            }, 1000)
+        }
     },
     beforeDestroy() {
         localStorage.removeItem('formVal')

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

@@ -100,6 +100,27 @@
                             <van-picker show-toolbar :columns="item.stages" value-key="stagesName" @confirm="choseStage" 
                                 @cancel="item.showPickerStage = false;$forceUpdate();" />
                         </van-popup>
+
+                        <template v-if="item.projectId">
+                            <!-- 工单号 -->
+                            <van-field readonly name="stage" :disabled="item.state<=1"
+                            v-if="user.timeType.reportExtraField4Name"
+                            clickable :value="item.extraField4" :label="user.timeType.reportExtraField4Name" placeholder="请选择"
+                            @click="clickPickExtraField4(index, item)" />
+                            <van-popup v-model="item.showPickerExtraField4" position="bottom" :close-on-click-overlay="false">
+                                <van-picker show-toolbar :columns="(item.reportExtraField4List || [])" value-key="stagesName" @confirm="choseExtraField4"
+                                @cancel="item.showPickerExtraField4 = false; $forceUpdate();" />
+                            </van-popup>
+                            <!-- 行号 -->
+                            <van-field readonly name="stage" :disabled="item.state<=1"
+                            v-if="user.timeType.reportExtraField5Name"
+                            clickable :value="item.extraField5" :label="user.timeType.reportExtraField5Name" :placeholder="`请选择`"
+                            @click="clickPickExtraField5(index, item)" />
+                            <van-popup v-model="item.showPickerExtraField5" position="bottom" :close-on-click-overlay="false">
+                                <van-picker v-if="item.showPickerExtraField5" show-toolbar :columns="(item.reportExtraField5List || [])" value-key="stagesName" @confirm="choseExtraField5" @cancel="item.showPickerExtraField5 = false; $forceUpdate();" />
+                            </van-popup>
+                        </template>
+
                         <!-- 预算来源 -->
                         <van-field  readonly  name="basecostId" v-if="user.company.packageProject==1&&reportBasecostList &&reportBasecostList.length>0" 
                             :value="item.basecostName" label="预算来源" placeholder="请选择预算来源" :disabled="item.state<=1"
@@ -543,7 +564,9 @@
                                 state: 2,
                                 multiWorktime:0,
                                 worktimeList:[{}],
-                                degreeId: ''
+                                degreeId: '',
+                                extraField4: '',
+                                extraField5: '',
                             }],
                         },
                 rules: {
@@ -1090,6 +1113,26 @@
                         this.getProjectAuditorList(domainItem, index);
                     }
                 }
+
+                // 工单号,行号
+                const { reportExtraField4Name, reportExtraField5Name } = this.user.timeType
+                if(reportExtraField4Name || reportExtraField5Name) {
+                    this.getInfoByProjectId(item.projectCode)
+                }
+            },
+            getInfoByProjectId(projectCode, index = null, flag = true) {
+                this.$axios.post("/erpOrderInfo/getInfoByProjectId", { projectId: projectCode })
+                    .then(res => {
+                        if (res.code == "ok") {
+                            if(flag) {
+                                this.currentForm.domains[index == null ? this.proIdx : index].extraField4 = ''
+                                this.currentForm.domains[index == null ? this.proIdx : index].extraField5 = ''
+                            }
+                            this.currentForm.domains[index == null ? this.proIdx : index].reportExtraField4List = res.data.orderIds || []
+                            this.currentForm.domains[index == null ? this.proIdx : index].reportExtraField5List = res.data.lines || []
+                        }
+                        this.$forceUpdate();
+                    }).catch(err => { this.$toast.clear(); });
             },
             //获取项目下的任务分组
             getTaskGroups(domainItem, index) {
@@ -1631,6 +1674,19 @@
                 this.$forceUpdate();
             },
 
+            clickPickExtraField4(i, item) {
+                if (item.state<2) return;
+                this.clickIndex = i;
+                item.showPickerExtraField4 = true;
+                this.$forceUpdate();
+            },
+            clickPickExtraField5(i, item) {
+                if (item.state<2) return;
+                this.clickIndex = i;
+                item.showPickerExtraField5 = true;
+                this.$forceUpdate();
+            },
+
             // 选择项目
             clickPicker(i, item) {
                 //不可待审核和已通过不可编辑
@@ -1773,7 +1829,20 @@
                 this.$forceUpdate();
 
             },
-
+            choseExtraField4(value) {
+                if (value) {
+                    this.currentForm.domains[this.clickIndex].extraField4 = value
+                }
+                this.currentForm.domains[this.clickIndex].showPickerExtraField4 = false;
+                this.$forceUpdate();
+            },
+            choseExtraField5(value) {
+                if (value) {
+                    this.currentForm.domains[this.clickIndex].extraField5 = value
+                }
+                this.currentForm.domains[this.clickIndex].showPickerExtraField5 = false;
+                this.$forceUpdate();
+            },
             getGroupStages(domain, index, flag = false) {
                 this.$axios.post("/stages/getProjectStagesByGroup", {groupId: domain.groupId})
                         .then(res => {
@@ -2189,6 +2258,7 @@
 
                     // formData.append("draft", this.isDraft);
                     formData.append("draft", isDraft);
+                    const { reportExtraField4Name, reportExtraField5Name } = this.user.timeType
                     //填字段
                     for(var i in this.form[formIndex].domains) {
                         //没有选择项目的,跳过
@@ -2388,6 +2458,11 @@
                             this.$toast.fail('请选择'+this.weekArr[formIndex]+'投入项目的审核人');
                             return;
                         }
+
+                        if(reportExtraField4Name || reportExtraField5Name) {
+                            formData.append("extraField4", this.form[formIndex].domains[i].extraField4 || '');
+                            formData.append("extraField5", this.form[formIndex].domains[i].extraField5 || '');
+                        }
                     }
 
                 }

+ 7 - 0
fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue

@@ -310,6 +310,13 @@
                     });
                 }
 
+                if(this.user.companyId == 7536) {
+                    this.routers.splice(2, 0, {
+                        name: '扫码填报',
+                        url: '/edit?scanTheCode=1',
+                        icon: 'scan'
+                    })
+                }
                 // 设备管理
                 // if(this.user.companyId == 10) {
                 //     this.routers.push({

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

@@ -141,6 +141,8 @@
                         <div class="project_title" v-if="user.companyId == yuzhongCompId" >工作职责:{{item1.extraField2?item1.extraField2Name:''}}</div>
                         <div class="project_title" v-if="user.companyId == yuzhongCompId" >工作内容:{{item1.extraField3?item1.extraField3Name:''}}</div>
                         <div class="project_title" v-if="user.company.packageProject==1&&item1.stage != '-' && user.companyId != yuzhongCompId" >投入阶段:{{item1.stage}}</div>
+                        <div class="project_title" v-if="user.timeType.reportExtraField4Name" >{{ user.timeType.reportExtraField4Name }}:{{item1.extraField4}}</div>
+                        <div class="project_title" v-if="user.timeType.reportExtraField5Name" >{{ user.timeType.reportExtraField5Name }}:{{item1.extraField5}}</div>
                         <!--自定义维度 -->
                         <div class="project_title" v-if="user.timeType.customDegreeActive == 1" >{{user.timeType.customDegreeName}}:{{item1.degreeName}}</div>
                         <div class="project_title" v-if="user.timeType.customDataActive == 1" >{{user.timeType.customDataName}}:{{item1.customData}}</div>