浏览代码

Merge remote-tracking branch 'origin/master'

yusm 1 年之前
父节点
当前提交
6d31996f0a
共有 15 个文件被更改,包括 243 次插入130 次删除
  1. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectApprovalController.java
  2. 54 22
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  3. 3 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserWithBeisenController.java
  4. 158 91
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java
  5. 7 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/UserWithBeisen.java
  6. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectApprovalServiceImpl.java
  7. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  8. 5 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  9. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/BeiSenUtils.java
  10. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/UserWithBeisenMapper.xml
  11. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/projectApproval/projectApproval.vue
  12. 2 3
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue
  13. 2 2
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue
  14. 2 2
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/weekEdit.vue
  15. 1 1
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue

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

@@ -214,7 +214,7 @@ public class ProjectApprovalController {
                                 value.put("text",arr[projectApproval.getLevel()-1]);
                                 break;
                             case "合同金额":
-                                value.put("text",projectApproval.getContractAmount()==null?0:projectApproval.getContractAmount());
+                                value.put("text",projectApproval.getContractAmount()==null?String.valueOf(0):String.valueOf(projectApproval.getContractAmount()));
                                 break;
                             case "计划开始日期":
                                 value.put("text",projectApproval.getPlanStartDate()==null?"":df.format(projectApproval.getPlanStartDate()));

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

@@ -1556,26 +1556,74 @@ public class ReportController {
                 }
             }
         }
+        //针对填写日报
+        if (!createDate[0].contains("@")) {
+            if (company.getId() == 3918) {
+                List<UserCorpwxTime> cardTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("corpwx_userid", user.getCorpwxUserid()).eq("create_date", createDate[0]));
+                //凡己科技,提交时仅针对请假的时候做限制
+                for (Report r : reportList) {
+                    Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCreateDate().isEqual(r.getCreateDate())).findFirst();
+                    if (first.isPresent()) {
+                        if (first.get().getAskLeaveTime() >= comTimeType.getAllday()) {
+                            HttpRespMsg msg = new HttpRespMsg();
+                            msg.setError(dtf.format(r.getCreateDate())+"全天请假,不可填报");
+                            return msg;
+                        }
+                    }
+                }
+            }
+        }
+
 
         if (createDate[0].contains("@") && targetUserList == null) {
             //个人批量填报,判断是否需要考勤校验
             if (comTimeType.getSyncCorpwxTime() == 1) {
                 String[] dateArr = createDate[0].split("@");
                 List<UserCorpwxTime> cardTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("corpwx_userid", user.getCorpwxUserid()).between("create_date", dateArr[0], dateArr[1]));
-                //提交日报时,考勤记录不能为空或时长为0
-                if (comTimeType.getNotAllowedNoAttendance() == 1 && draft == 0) {
+                if (company.getId() == 3918) {
+                    //凡己科技,提交时仅针对请假的时候做限制
+                    for (Report r : reportList) {
+                        Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCreateDate().isEqual(r.getCreateDate())).findFirst();
+                        if (first.isPresent()) {
+                            if (first.get().getAskLeaveTime() >= comTimeType.getAllday()) {
+                                HttpRespMsg msg = new HttpRespMsg();
+                                msg.setError(dtf.format(r.getCreateDate())+"全天请假,不可填报");
+                                return msg;
+                            }
+                        }
+                    }
+                } else {
+                    //提交日报时,考勤记录不能为空或时长为0
+                    if (comTimeType.getNotAllowedNoAttendance() == 1 && draft == 0) {
+                        String str = "";
+                        for (Report r : reportList) {
+                            Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCreateDate().isEqual(r.getCreateDate())).findFirst();
+                            if (first.isPresent()) {
+                                if (first.get().getWorkHours() == 0) {
+                                    str += dtf.format(r.getCreateDate()) + ",";
+                                }
+                            } else {
+                                str += dtf.format(r.getCreateDate()) + ",";
+                            }
+                        }
+                        //有无考勤的日期
+                        if (str.length() > 0) {
+                            str = str.substring(0, str.length()-1);
+                            HttpRespMsg msg = new HttpRespMsg();
+                            msg.setError(MessageUtils.message("report.lackCardTime", str));
+                            return msg;
+                        }
+                    }
                     String str = "";
                     for (Report r : reportList) {
                         Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCreateDate().isEqual(r.getCreateDate())).findFirst();
                         if (first.isPresent()) {
-                            if (first.get().getWorkHours() == 0) {
+                            double cardTime = first.get().getWorkHours();
+                            if (r.getWorkingTime() > cardTime) {
                                 str += dtf.format(r.getCreateDate()) + ",";
                             }
-                        } else {
-                            str += dtf.format(r.getCreateDate()) + ",";
                         }
                     }
-                    //有无考勤的日期
                     if (str.length() > 0) {
                         str = str.substring(0, str.length()-1);
                         HttpRespMsg msg = new HttpRespMsg();
@@ -1583,22 +1631,6 @@ public class ReportController {
                         return msg;
                     }
                 }
-                String str = "";
-                for (Report r : reportList) {
-                    Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCreateDate().isEqual(r.getCreateDate())).findFirst();
-                    if (first.isPresent()) {
-                        double cardTime = first.get().getWorkHours();
-                        if (r.getWorkingTime() > cardTime) {
-                            str += dtf.format(r.getCreateDate()) + ",";
-                        }
-                    }
-                }
-                if (str.length() > 0) {
-                    str = str.substring(0, str.length()-1);
-                    HttpRespMsg msg = new HttpRespMsg();
-                    msg.setError(MessageUtils.message("report.lackCardTime", str));
-                    return msg;
-                }
             }
         }
         //更新填报时间

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

@@ -83,6 +83,9 @@ public class UserWithBeisenController {
                 userWithBeisen.setMobilePhone(employeeInfo.getString("mobilePhone"));
                 userWithBeisen.setName(employeeInfo.getString("name"));
                 userWithBeisen.setUserId(employeeInfo.getString("userID"));
+                if(recordInfo.containsKey("extOTWagetype_110324_985711501")){
+                    userWithBeisen.setExtOTWagetype(recordInfo.getIntValue("extOTWagetype_110324_985711501"));
+                }
                 Optional<UserWithBeisen> first = allBeisenList.stream().filter(a ->a.getJobNumber()!=null&& a.getJobNumber().equals(recordInfo.getString("jobNumber"))).findFirst();
                 if(first.isPresent()){
                     userWithBeisen.setId(first.get().getId());

+ 158 - 91
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -589,100 +589,121 @@ public class WeiXinCorpController {
                 }else if("sys_approval_change".equals(event)){
                     //审批动作事件,发生在该企业已经开通应用的情况下。
                     System.out.println("审批动作事件");
-                    org.json.JSONObject approvalInfo = jsonObject.getJSONObject("ApprovalInfo");
-                    String spNo = approvalInfo.getString("SpNo");
-                    ProjectApproval projectApproval = projectApprovalMapper.selectOne(new LambdaQueryWrapper<ProjectApproval>().eq(ProjectApproval::getWxCorpSpNo, spNo));
-                    if(projectApproval!=null){
-                        List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, projectApproval.getCompanyId()));
-                        int status = approvalInfo.getInt("SpStatus");
-                        ProjectApproval pa=new ProjectApproval();
-                        pa.setId(projectApproval.getId());
-                        switch (status){
-                            case 1://审批中 无需修改
-                                break;
-                            case 2://已通过
-                                pa.setStatus(1);
-                                projectApprovalMapper.updateById(pa);
-                                //创建项目数据
-                                //立项审核通过后创建项目数据
-                                Project project=new Project();
-                                BeanUtils.copyProperties(projectApproval,project);
-                                project.setId(null);
-                                project.setCreateDate(LocalDate.now());
-                                List<ProjectApprovalBasecost> projectApprovalBasecostList = projectApprovalBasecostService.list(new LambdaQueryWrapper<ProjectApprovalBasecost>().eq(ProjectApprovalBasecost::getProjectApprovalId, projectApproval.getId()));
-                                List<ParticipationApproval> participationApprovalList = participationApprovalService.list(new LambdaQueryWrapper<ParticipationApproval>().eq(ParticipationApproval::getProjectApprovalId, projectApproval.getId()));
-                                List<ProjectApprovalAuditor> projectApprovalAuditorList = projectApprovalAuditorService.list(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId, projectApproval.getId()));
-                                projectService.save(project);
-                                List<ProjectBasecost> projectBasecostList=new ArrayList<>();
-                                List<Participation> participationList=new ArrayList<>();
-                                List<ProjectAuditor> projectAuditorList=new ArrayList<>();
-                                projectApprovalBasecostList.forEach(p->{
-                                    ProjectBasecost projectBasecost=new ProjectBasecost();
-                                    BeanUtils.copyProperties(p,projectBasecost);
-                                    projectBasecost.setId(null);
-                                    projectBasecost.setProjectId(project.getId());
-                                    projectBasecostList.add(projectBasecost);
-                                });
-                                participationApprovalList.forEach(p->{
-                                    Participation participation=new Participation();
-                                    BeanUtils.copyProperties(p,participation);
-                                    participation.setId(null);
-                                    participation.setProjectId(project.getId());
-                                    participationList.add(participation);
-                                });
-                                projectApprovalAuditorList.forEach(p->{
-                                    ProjectAuditor projectAuditor=new ProjectAuditor();
-                                    BeanUtils.copyProperties(p,projectAuditor);
-                                    projectAuditor.setId(null);
-                                    projectAuditor.setProjectId(project.getId());
-                                    projectAuditorList.add(projectAuditor);
-                                });
-                                projectBasecostService.saveBatch(projectBasecostList);
-                                participationService.saveBatch(participationList);
-                                projectAuditorService.saveBatch(projectAuditorList);
-                                break;
-                            case 3://已驳回
-                                pa.setStatus(2);
-                                projectApprovalMapper.updateById(pa);
-                                break;
-                            case 4://已撤销 删除立项数据
-                                projectApprovalMapper.deleteById(projectApproval.getId());
-                                projectApprovalBasecostService.remove(new LambdaQueryWrapper<ProjectApprovalBasecost>().eq(ProjectApprovalBasecost::getProjectApprovalId,projectApproval.getId()));
-                                projectApprovalAuditorService.remove(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId,projectApproval.getId()));
-                                projectApprovalCheckService.remove(new LambdaQueryWrapper<ProjectApprovalCheck>().eq(ProjectApprovalCheck::getProjectApprovalId,projectApproval.getId()).eq(ProjectApprovalCheck::getStatus,0));
-                                return "success";
-                        }
-                        org.json.JSONArray spRecord = approvalInfo.getJSONArray("SpRecord");
-                        //获取到审批节点 生成审核记录
-                        List<ProjectApprovalLog> projectApprovalLogList=new ArrayList<>();
-                        for (int i = 0; i < spRecord.length(); i++) {
-                            org.json.JSONObject object = spRecord.getJSONObject(i);
-                            org.json.JSONArray details = object.getJSONArray("Details");
-                            for (int i1 = 0; i1 < details.length(); i1++) {
-                                org.json.JSONObject detail = details.getJSONObject(i1);
-                                org.json.JSONObject approvor = detail.getJSONObject("Approvor");
-                                //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
-                                int spStatus = detail.getInt("SpStatus");
-                                String userId = approvor.getString("UserId");
-                                Optional<User> first = userList.stream().filter(f -> f.getCorpwxUserid().equals(userId)).findFirst();
-                                if(first.isPresent()){
-                                    //新增操作记录数据
-                                    ProjectApprovalLog projectApprovalLog=new ProjectApprovalLog();
-                                    projectApprovalLog.setCreateTime(LocalDateTime.now());
-                                    projectApprovalLog.setProjectApprovalId(projectApproval.getId());
-                                    projectApprovalLog.setUserName(first.get().getName());
-                                    projectApprovalLog.setType(spStatus);
-                                    projectApprovalLogList.add(projectApprovalLog);
+                    System.out.println(jsonObject.toString());
+                    if(jsonObject.has("ApprovalInfo")){
+                        org.json.JSONObject approvalInfo = jsonObject.getJSONObject("ApprovalInfo");
+                        Long spNo = approvalInfo.getLong("SpNo");
+                        ProjectApproval projectApproval = projectApprovalMapper.selectOne(new LambdaQueryWrapper<ProjectApproval>().eq(ProjectApproval::getWxCorpSpNo, String.valueOf(spNo)));
+                        if(projectApproval!=null){
+                            List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, projectApproval.getCompanyId()));
+                            int status = approvalInfo.getInt("SpStatus");
+                            ProjectApproval pa=new ProjectApproval();
+                            pa.setId(projectApproval.getId());
+                            switch (status){
+                                case 1://审批中 无需修改
+                                    break;
+                                case 2://已通过
+                                    pa.setStatus(1);
+                                    projectApprovalMapper.updateById(pa);
+                                    //创建项目数据
+                                    //立项审核通过后创建项目数据
+                                    Project project=new Project();
+                                    BeanUtils.copyProperties(projectApproval,project);
+                                    project.setId(null);
+                                    project.setStatus(1);//默认进行中状态
+                                    project.setCreateDate(LocalDate.now());
+                                    project.setApproveId(projectApproval.getId());
+                                    List<ProjectApprovalBasecost> projectApprovalBasecostList = projectApprovalBasecostService.list(new LambdaQueryWrapper<ProjectApprovalBasecost>().eq(ProjectApprovalBasecost::getProjectApprovalId, projectApproval.getId()));
+                                    List<ParticipationApproval> participationApprovalList = participationApprovalService.list(new LambdaQueryWrapper<ParticipationApproval>().eq(ParticipationApproval::getProjectApprovalId, projectApproval.getId()));
+                                    List<ProjectApprovalAuditor> projectApprovalAuditorList = projectApprovalAuditorService.list(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId, projectApproval.getId()));
+                                    projectService.save(project);
+                                    List<ProjectBasecost> projectBasecostList=new ArrayList<>();
+                                    List<Participation> participationList=new ArrayList<>();
+                                    List<ProjectAuditor> projectAuditorList=new ArrayList<>();
+                                    projectApprovalBasecostList.forEach(p->{
+                                        ProjectBasecost projectBasecost=new ProjectBasecost();
+                                        BeanUtils.copyProperties(p,projectBasecost);
+                                        projectBasecost.setId(null);
+                                        projectBasecost.setProjectId(project.getId());
+                                        projectBasecostList.add(projectBasecost);
+                                    });
+                                    participationApprovalList.forEach(p->{
+                                        Participation participation=new Participation();
+                                        BeanUtils.copyProperties(p,participation);
+                                        participation.setId(null);
+                                        participation.setProjectId(project.getId());
+                                        participationList.add(participation);
+                                    });
+                                    projectApprovalAuditorList.forEach(p->{
+                                        ProjectAuditor projectAuditor=new ProjectAuditor();
+                                        BeanUtils.copyProperties(p,projectAuditor);
+                                        projectAuditor.setId(null);
+                                        projectAuditor.setProjectId(project.getId());
+                                        projectAuditorList.add(projectAuditor);
+                                    });
+                                    projectBasecostService.saveBatch(projectBasecostList);
+                                    participationService.saveBatch(participationList);
+                                    projectAuditorService.saveBatch(projectAuditorList);
+                                    break;
+                                case 3://已驳回
+                                    pa.setStatus(2);
+                                    projectApprovalMapper.updateById(pa);
+                                    break;
+                                case 4://已撤销 删除立项数据
+                                    projectApprovalMapper.deleteById(projectApproval.getId());
+                                    projectApprovalBasecostService.remove(new LambdaQueryWrapper<ProjectApprovalBasecost>().eq(ProjectApprovalBasecost::getProjectApprovalId,projectApproval.getId()));
+                                    projectApprovalAuditorService.remove(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId,projectApproval.getId()));
+                                    projectApprovalCheckService.remove(new LambdaQueryWrapper<ProjectApprovalCheck>().eq(ProjectApprovalCheck::getProjectApprovalId,projectApproval.getId()).eq(ProjectApprovalCheck::getStatus,0));
+                                    return "success";
+                            }
+//                            if(approvalInfo.has("SpRecord")){
+//                                org.json.JSONArray spRecord = approvalInfo.getJSONArray("SpRecord");
+//
+//                                for (int i = 0; i < spRecord.length(); i++) {
+//                                    org.json.JSONObject object = spRecord.getJSONObject(i);
+//                                    if(object.has("Details")){
+//                                        org.json.JSONArray details = object.getJSONArray("Details");
+//                                        for (int i1 = 0; i1 < details.length(); i1++) {
+//                                            org.json.JSONObject detail = details.getJSONObject(i1);
+//                                            if(detail.has("Approver")){
+//                                                org.json.JSONObject approvor = detail.getJSONObject("Approver");
+//                                                //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
+//                                                int spStatus = detail.getInt("SpStatus");
+//                                                String userId = approvor.getString("UserId");
+//
+//                                            }
+//                                        }
+//                                    }
+//                                }
+//
+//                            }
+                            if(approvalInfo.has("SpRecord")){
+                                //获取到审批节点 生成审核记录
+                                List<ProjectApprovalLog> projectApprovalLogList=new ArrayList<>();
+                                Object recordObj = approvalInfo.get("SpRecord");
+                                if (recordObj instanceof org.json.JSONObject) {
+                                    org.json.JSONObject object = approvalInfo.getJSONObject("SpRecord");
+                                    parseSpItem(object, projectApproval, userList, projectApprovalLogList);
+                                } else if (recordObj instanceof org.json.JSONArray) {
+                                    org.json.JSONArray spRecord = approvalInfo.getJSONArray("SpRecord");
+                                    for (int i = 0; i < spRecord.length(); i++) {
+                                        org.json.JSONObject object = spRecord.getJSONObject(i);
+                                        parseSpItem(object, projectApproval, userList, projectApprovalLogList);
+                                    }
                                 }
+
+                                if(projectApprovalLogList.size()>0){
+                                    List<Integer> typeList=new ArrayList<>();
+                                    typeList.add(2);
+                                    typeList.add(3);
+                                    typeList.add(4);
+                                    projectApprovalLogService.remove(new LambdaQueryWrapper<ProjectApprovalLog>()
+                                            .eq(ProjectApprovalLog::getProjectApprovalId,projectApproval.getId()).in(ProjectApprovalLog::getType,typeList));
+                                    projectApprovalLogService.saveBatch(projectApprovalLogList);
+                                }
+
                             }
                         }
-                        List<Integer> typeList=new ArrayList<>();
-                        typeList.add(2);
-                        typeList.add(3);
-                        typeList.add(4);
-                        projectApprovalLogService.remove(new LambdaQueryWrapper<ProjectApprovalLog>()
-                                .eq(ProjectApprovalLog::getProjectApprovalId,projectApproval.getId()).in(ProjectApprovalLog::getType,typeList));
-                        projectApprovalLogService.saveBatch(projectApprovalLogList);
                     }
                 }
             }
@@ -695,6 +716,52 @@ public class WeiXinCorpController {
         return "success";
     }
 
+    private void parseSpItem(org.json.JSONObject object, ProjectApproval projectApproval, List<User> userList, List<ProjectApprovalLog> projectApprovalLogList) {
+        if(object.has("Details")){
+            Object Details = object.get("Details");
+            if(Details instanceof  org.json.JSONArray){
+                org.json.JSONArray details = object.getJSONArray("Details");
+                for (int i1 = 0; i1 < details.length(); i1++) {
+                    org.json.JSONObject detail = details.getJSONObject(i1);
+                    if(detail.has("Approver")){
+                        org.json.JSONObject approver = detail.getJSONObject("Approver");
+                        //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
+                        int spStatus = detail.getInt("SpStatus");
+                        String userId = approver.getString("UserId");
+                        Optional<User> first = userList.stream().filter(f -> f.getCorpwxUserid().equals(userId)).findFirst();
+                        if(first.isPresent()){
+                            //新增操作记录数据
+                            ProjectApprovalLog projectApprovalLog=new ProjectApprovalLog();
+                            projectApprovalLog.setCreateTime(LocalDateTime.now());
+                            projectApprovalLog.setProjectApprovalId(projectApproval.getId());
+                            projectApprovalLog.setUserName(first.get().getName());
+                            projectApprovalLog.setType(spStatus);
+                            projectApprovalLogList.add(projectApprovalLog);
+                        }
+                    }
+                }
+            }else if(Details instanceof  org.json.JSONObject){
+                org.json.JSONObject detail = object.getJSONObject("Details");
+                if(detail.has("Approver")){
+                    org.json.JSONObject approver = detail.getJSONObject("Approver");
+                    //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
+                    int spStatus = detail.getInt("SpStatus");
+                    String userId = approver.getString("UserId");
+                    Optional<User> first = userList.stream().filter(f -> f.getCorpwxUserid().equals(userId)).findFirst();
+                    if(first.isPresent()){
+                        //新增操作记录数据
+                        ProjectApprovalLog projectApprovalLog=new ProjectApprovalLog();
+                        projectApprovalLog.setCreateTime(LocalDateTime.now());
+                        projectApprovalLog.setProjectApprovalId(projectApproval.getId());
+                        projectApprovalLog.setUserName(first.get().getName());
+                        projectApprovalLog.setType(spStatus);
+                        projectApprovalLogList.add(projectApprovalLog);
+                    }
+                }
+            }
+        }
+    }
+
     //通用开发回调处理
     @RequestMapping(value = "/commonDevCallback", method = RequestMethod.GET)
     @ResponseBody

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

@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2024-01-09
+ * @since 2024-03-29
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -57,6 +57,12 @@ public class UserWithBeisen extends Model<UserWithBeisen> {
     @TableField("company_id")
     private Integer companyId;
 
+    /**
+     * 加班补偿方式 3-无加班人员 4-加班费人员
+     */
+    @TableField("extOTWagetype")
+    private Integer extOTWagetype;
+
 
     @Override
     protected Serializable pkVal() {

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectApprovalServiceImpl.java

@@ -691,6 +691,7 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
                     BeanUtils.copyProperties(projectApproval,project);
                     project.setId(null);
                     project.setCreateDate(LocalDate.now());
+                    project.setApproveId(projectApproval.getId());
                     List<ProjectApprovalBasecost> projectApprovalBasecostList = projectApprovalBasecostService.list(new LambdaQueryWrapper<ProjectApprovalBasecost>().eq(ProjectApprovalBasecost::getProjectApprovalId, id));
                     List<ParticipationApproval> participationApprovalList = participationApprovalService.list(new LambdaQueryWrapper<ParticipationApproval>().eq(ParticipationApproval::getProjectApprovalId, id));
                     List<ProjectApprovalAuditor> projectApprovalAuditorList = projectApprovalAuditorService.list(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId, id));

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

@@ -8179,7 +8179,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<LocalDateTime> dateTimeList=getDays(sDate, eDate);
             //针对美莱德 去除2024-02-09
             if(user.getCompanyId()==876){
-                dateTimeList=dateTimeList.stream().filter(d->d.isEqual(LocalDate.parse(startDate).atTime(LocalTime.MIN))).collect(Collectors.toList());
+                dateTimeList=dateTimeList.stream().filter(d->!d.isEqual(LocalDate.parse("2024-02-09").atTime(LocalTime.MIN))).collect(Collectors.toList());
             }
             List<Map<String,Object>> dataList=new ArrayList<>();
             long days =dateTimeList.size();
@@ -8229,12 +8229,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     List<LocalDateTime> leaveDateList = getDays(leaveSheet.getStartDate().atTime(LocalTime.MIN), leaveSheet.getEndDate().atTime(LocalTime.MIN));
                     //针对美莱德 去除2024-02-09
                     if(user.getCompanyId()==876){
-                        leaveDateList=leaveDateList.stream().filter(d->d.isEqual(LocalDate.parse("2024-02-09").atTime(LocalTime.MIN))).collect(Collectors.toList());
+                        leaveDateList=leaveDateList.stream().filter(d->!d.isEqual(LocalDate.parse("2024-02-09").atTime(LocalTime.MIN))).collect(Collectors.toList());
                     }
                     List<LocalDateTime> list = getDays(leaveSheet.getStartDate().atTime(LocalTime.now()), leaveSheet.getEndDate().atTime(LocalTime.now()));
                     //针对美莱德 去除2024-02-09
                     if(user.getCompanyId()==876){
-                        list=list.stream().filter(d->d.isEqual(LocalDate.parse("2024-02-09").atTime(LocalTime.MIN))).collect(Collectors.toList());
+                        list=list.stream().filter(d->!d.isEqual(LocalDate.parse("2024-02-09").atTime(LocalTime.MIN))).collect(Collectors.toList());
                     }
                     if(list.size()>1){
                         days-=list.size();

+ 5 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -4398,10 +4398,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             map.put("createDate", date);
             //针对景昱 5978 校验填报工时是否超过考勤
             if(user.getCompanyId().equals(5978)){
+                map.put("exceedCardTime",0);
                 Optional<UserFvTime> first = userFvTimeList.stream().filter(u -> u.getWorkDate().isEqual(LocalDate.parse(date, df)) && u.getUserId().equals(id)).findFirst();
                 if(first.isPresent()){
-                    if(Double.valueOf(String.valueOf(data.get("workingTime")))>first.get().getWorkHours()){
-                        map.put("isOver",1);
+                    if(first.get().getWorkHours()!=null){
+                        if(Double.valueOf(String.valueOf(data.get("workingTime")))>first.get().getWorkHours()){
+                            map.put("exceedCardTime",1);
+                        }
                     }
                 }
             }

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/BeiSenUtils.java

@@ -103,6 +103,7 @@ public class BeiSenUtils {
         columns.add("Name");
         columns.add("StaffID");
         columns.add("UserID");
+        columns.add("extOTWagetype_110324_985711501");
         if(companyId!=null && companyId==5789){
             requestMap.put("columns",columns);
         }

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

@@ -10,11 +10,12 @@
         <result column="mobile_phone" property="mobilePhone" />
         <result column="job_number" property="jobNumber" />
         <result column="company_id" property="companyId" />
+        <result column="extOTWagetype" property="extOTWagetype" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, user_id, name, mobile_phone, job_number, company_id
+        id, user_id, name, mobile_phone, job_number, company_id, extOTWagetype
     </sql>
 
 </mapper>

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/projectApproval/projectApproval.vue

@@ -83,7 +83,7 @@
                                 <el-button size="mini" type="primary" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck)&&scope.row.status!=1" @click="handleAdd(scope.$index, scope.row)">{{'编辑'}}</el-button>
                                 <el-button size="mini" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck) && scope.row.status==0"  @click="check(scope.row,1)">{{'通过'}}</el-button>
                                 <el-button size="mini" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck) && scope.row.status==0" @click="check(scope.row,2)">{{'驳回'}}</el-button>
-                                <el-button size="mini" v-if="(permissions.projectApprovalEdit ||permissions.projectApprovalCheck) && scope.row.status==1" @click="check(scope.row)">{{'撤销'}}</el-button>
+                                <el-button size="mini" v-if="(permissions.projectApprovalEdit ||permissions.projectApprovalCheck) && scope.row.status==1" @click="check(scope.row,3)">{{'撤销'}}</el-button>
                             </template>
                         </el-table-column>
                     </el-table>

+ 2 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -7494,9 +7494,8 @@
                                 }
                             }
                         }
-                        
-
-                        if (this.reportTimeType.type == 1 && this.workForm.time) {
+                        //针对凡己,不校验考勤时长
+                        if (this.user.companyId != 3918 && this.reportTimeType.type == 1 && this.workForm.time) {
                             if (this.workForm.time.workHours && totalTime > parseFloat(this.workForm.time.workHours)) {
                                 this.$message({
                                         message: this.$t('message.Fillinthesumofworkinghours')+(totalTime)+"h"+this.$t('message.Cannotexceedthetotalworkinghoursofattendance')+"("+this.workForm.time.workHours.toFixed(1)+"h)",

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

@@ -95,7 +95,7 @@
 
                     <!--任务分组 -->
                     <van-field readonly name="groupId"
-                        v-if="user.company.packageProject == 1 && item.taskGroups != null && item.taskGroups.length > 0"
+                        v-if="user.company.packageProject == 1 && item.taskGroups != null && item.taskGroups.length > 0 && (user.company.nonProjectSimple==0 || (user.company.nonProjectSimple==1&& (item.projectId && projectss.filter(p => p.id == item.projectId)[0].isPublic!=1)))"
                         clickable :rules="[{ required: user.companyId == 3092 ? true : false, message: '请选择任务分组' }]"
                         :value="item.groupName" label="任务分组" placeholder="请选择任务分组"
                         @click="clickPickTaskGroup(index, item)" />
@@ -277,7 +277,7 @@
                             <van-stepper v-model="pItem.progress" integer min="0" max="100" />%
                         </template>
                     </van-field>
-                    <van-field v-if="user.company.packageProject == 1 && !user.timeType.hideTask && (user.company.nonProjectSimple==0 || (user.company.nonProjectSimple==1&&domain.isPublic!=1))" readonly name="taskId" :value="item.taskName"
+                    <van-field v-if="user.company.packageProject == 1 && !user.timeType.hideTask && (user.company.nonProjectSimple==0 || (user.company.nonProjectSimple==1&& (item.projectId && projectss.filter(p => p.id == item.projectId)[0].isPublic!=1)))" readonly name="taskId" :value="item.taskName"
                         :rules="[{ required: reportTimeType.taskRequired? true : false, message: '请选择任务/里程碑' }]" label="任务/里程碑"
                         placeholder="请选择任务/里程碑" @click="clickPickerTask(index, item)"></van-field>
                     <van-field v-if="user.companyId == 3092" readonly name="sapServiceId" :value="item.sapServiceName"

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

@@ -78,7 +78,7 @@
                                 @cancel="item.showPickerSubProject = false;$forceUpdate();" />
                         </van-popup>
                         <!--任务分组 -->
-                        <van-field  readonly  name="groupId" v-if="user.company.packageProject==1&&item.taskGroups != null && item.taskGroups.length > 0" clickable 
+                        <van-field  readonly  name="groupId" v-if="user.company.packageProject==1&&item.taskGroups != null && item.taskGroups.length > 0 && (user.company.nonProjectSimple==0 || (user.company.nonProjectSimple==1 && (item.projectId && projectss.filter(p => p.id == item.projectId)[0].isPublic!=1)))" clickable 
                             :value="item.groupName" :label="user.timeType.enableNewWeeklyfill == 1 ? '分组' : '任务分组'" :placeholder="user.timeType.enableNewWeeklyfill == 1 ? '请选择分组' : '请选择任务分组'" 
                         @click="clickPickTaskGroup(index, item)" :disabled="item.state<=1" />
                         <!-- <van-popup v-model="item.showPickerTaskGroup" position="bottom">
@@ -204,7 +204,7 @@
 
                         <!-- 任务里程碑 -->
                         <van-field :label="'任务/里程碑'" :value="item.taskName" :disabled="item.state<=1" readonly 
-                            clickable v-if="user.company.packageProject == 1 && !user.timeType.hideStages && (user.company.nonProjectSimple==0 || (user.company.nonProjectSimple==1&&domain.isPublic!=1))" 
+                            clickable v-if="user.company.packageProject == 1 && !user.timeType.hideStages && (user.company.nonProjectSimple==0 || (item.projectId && projectss.filter(p => p.id == item.projectId)[0].isPublic!=1))" 
                             @click="clickTakKer(index, item)"
                         />
                         <van-popup v-model="item.showTaksDegree" position="bottom" @click-overlay="overlayPopup(index, 'showTaksDegree')">

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

@@ -193,7 +193,7 @@
                 for (var i in list) {
                     if(list[i].name == '工时报告') {
                         this.routers.push({name: '查看日报',url: '/calendar',icon: 'description'})
-                        if(this.user.timeType.enableNewWeeklyfill != 1 && this.user.companyId != 4374) { // 针对新版按周填报去掉填写日报
+                        if(this.user.timeType.enableNewWeeklyfill != 1) { // 针对新版按周填报去掉填写日报
                             this.routers.push({name: '填写日报',url: '/edit',icon: 'edit'})
                         }
                         if (this.user.companyId != 3092 && this.user.timeType.type != 0) {