瀏覽代碼

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper into master

seyason 2 年之前
父節點
當前提交
cd9c160e50
共有 14 個文件被更改,包括 209 次插入97 次删除
  1. 4 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  2. 8 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  3. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/LeaveSheetMapper.java
  4. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  5. 5 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExcelExportServiceImpl.java
  6. 4 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceImportServiceImpl.java
  7. 147 72
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  8. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  9. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/SimpleReportServiceImpl.java
  10. 3 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java
  11. 7 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java
  12. 12 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages.properties
  13. 12 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages_en_US.properties
  14. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/LeaveSheetMapper.xml

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

@@ -429,14 +429,14 @@ public class ProjectController {
 
     //分页查询员工月度工时表
     @RequestMapping("/getEmpMonthHours")
-    public HttpRespMsg getEmpMonthHours(@RequestParam Integer pageIndex, @RequestParam Integer pageSize, String month,Integer departmentId,String userId) {
-        return projectService.getEmpMonthHours(pageIndex, pageSize, month,departmentId,userId, request);
+    public HttpRespMsg getEmpMonthHours(@RequestParam Integer pageIndex, @RequestParam Integer pageSize, String month,Integer departmentId,String userId,Integer whether) {
+        return projectService.getEmpMonthHours(pageIndex, pageSize, month,departmentId,userId,whether,request);
     }
 
     //导出员工月度工时表
     @RequestMapping("/exportEmpMonthHours")
-    public HttpRespMsg exportEmpMonthHours(String month,String userId,Integer departmentId) {
-        return projectService.exportEmpMonthHours(month,request,userId,departmentId);
+    public HttpRespMsg exportEmpMonthHours(String month,String userId,Integer departmentId,Integer whether) {
+        return projectService.exportEmpMonthHours(month,request,userId,departmentId,whether);
     }
 
     //分页查询项目收支平衡表

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

@@ -320,7 +320,8 @@ public class ReportController {
             //员工自由选择审批人
             if (auditorSettingArray == null) {
                 HttpRespMsg msg = new HttpRespMsg();
-                msg.setError("请设置审批人");
+                //msg.setError("请设置审批人");
+                msg.setError(MessageUtils.message("profession.approver"));
                 return msg;
             } else {
                 auditorSettingList = new ArrayList<>();
@@ -335,16 +336,19 @@ public class ReportController {
                     //检查审核人层级是否设置满
                     if (comTimeType.getAuditLevel() == 1 && reportAuditorSetting.getAuditorFirst() == null) {
                         HttpRespMsg msg = new HttpRespMsg();
-                        msg.setError("请设置审核人");
+                        //msg.setError("请设置审核人");
+                        msg.setError(MessageUtils.message("profession.checker"));
                         return msg;
                     } else if (comTimeType.getAuditLevel() == 2 && (reportAuditorSetting.getAuditorFirst() == null || reportAuditorSetting.getAuditorSec() == null)) {
                         HttpRespMsg msg = new HttpRespMsg();
-                        msg.setError("请设置审核人");
+                        //msg.setError("请设置审核人");
+                        msg.setError(MessageUtils.message("profession.checker"));
                         return msg;
                     }else if (comTimeType.getAuditLevel() == 3 && (reportAuditorSetting.getAuditorFirst() == null || reportAuditorSetting.getAuditorSec() == null
                                                                     || reportAuditorSetting.getAuditorThird() == null)) {
                         HttpRespMsg msg = new HttpRespMsg();
-                        msg.setError("请设置审核人");
+                        //msg.setError("请设置审核人");
+                        msg.setError(MessageUtils.message("profession.checker"));
                         return msg;
                     }
                     //设置审核人为第一审核人

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

@@ -21,5 +21,5 @@ public interface LeaveSheetMapper extends BaseMapper<LeaveSheet> {
 
     List<LeaveSheet> selectApprovalList();
 
-    List<LeaveSheet> selectLeave(String userId, String startDate, String endDate);
+    List<LeaveSheet> selectLeave(Integer companyId, String startDate, String endDate);
 }

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

@@ -201,7 +201,7 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg testAdd(String jobId);
 
-    HttpRespMsg getEmpMonthHours(Integer pageIndex, Integer pageSize, String month,Integer departmentId,String userId, HttpServletRequest request);
+    HttpRespMsg getEmpMonthHours(Integer pageIndex, Integer pageSize, String month,Integer departmentId,String userId,Integer whether,HttpServletRequest request);
 
-    HttpRespMsg exportEmpMonthHours(String month, HttpServletRequest request, String userId, Integer departmentId);
+    HttpRespMsg exportEmpMonthHours(String month, HttpServletRequest request, String userId, Integer departmentId,Integer whether);
 }

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

@@ -7,6 +7,7 @@ import com.management.platform.service.ExcelExportService;
 import com.management.platform.service.WxCorpInfoService;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
+import com.management.platform.util.MessageUtils;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.CellStyle;
@@ -89,7 +90,8 @@ public class ExcelExportServiceImpl implements ExcelExportService {
             if (syncTranslationResult != null) {
                 httpRespMsg.data = syncTranslationResult;
             } else {
-                httpRespMsg.setError("处理超时...");
+                //httpRespMsg.setError("处理超时...");
+                httpRespMsg.setError(MessageUtils.message("request.outTime"));
             }
         }else {
             httpRespMsg.data = resp;
@@ -129,7 +131,8 @@ public class ExcelExportServiceImpl implements ExcelExportService {
             if (syncTranslationResult != null) {
                 httpRespMsg.data = syncTranslationResult;
             } else {
-                httpRespMsg.setError("处理超时...");
+                //httpRespMsg.setError("处理超时...");
+                httpRespMsg.setError(MessageUtils.message("request.outTime"));
             }
         }else {
             httpRespMsg.data = resp;

+ 4 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceImportServiceImpl.java

@@ -128,7 +128,8 @@ public class FinanceImportServiceImpl extends ServiceImpl<FinanceImportMapper, F
                 String name = nameCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
                 Finance finance = new Finance();
 
-                if (name.equals("姓名") && rowIndex == 0) {
+                //if (name.equals("姓名") && rowIndex == 0) {
+                if ((name.equals("姓名") || name.equals("name")) && rowIndex == 0) {
                     continue;
                 }
                 finance.setName(name);
@@ -347,7 +348,8 @@ public class FinanceImportServiceImpl extends ServiceImpl<FinanceImportMapper, F
                     String name = nameCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
                     Finance finance = new Finance();
 
-                    if (name.equals("姓名") && rowIndex == 0) {
+                    //if (name.equals("姓名") && rowIndex == 0) {
+                    if ((name.equals("姓名") || name.equals("name")) && rowIndex == 0) {
                         continue;
                     }
                     Cell houseFundCell = row.getCell(8);

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

@@ -401,7 +401,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             if(providerCategory.isPresent()){
                                 map.put("providerCateGoryName",providerCategory.get().getProviderCategoryName());
                             }else {
-                                map.put("providerCateGoryName","未分类");
+                                //map.put("providerCateGoryName","未分类");
+                                map.put("providerCateGoryName",MessageUtils.message("excel.unclassified"));
                             }
                             map.put("providerInfoName",providerInfo.get().getProviderName());
                         }
@@ -445,7 +446,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 list.add(projectVO);
             }
             List<String> stringList = providerCategoryList.stream().distinct().map(ProviderCategory::getProviderCategoryName).collect(Collectors.toList());
-            stringList.add("未分类");
+            //stringList.add("未分类");
+            stringList.add(MessageUtils.message("excel.unclassified"));
             Long total = projectIPage.getTotal();
             Map<String, Object> map = new HashMap<>();
             map.put("records", list);
@@ -2331,7 +2333,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         itemList.add(parent);
                         btLastItemId =businessTripList.get(i).getOwnerId();
                     }
-                    curItem.id = "出差_"+businessTripList.get(i).getId();
+                    //curItem.id = "出差_"+businessTripList.get(i).getId();
+                    curItem.id = MessageUtils.message("leave.busTra") + "_" + businessTripList.get(i).getId();
                     curItem.userId = businessTripList.get(i).getOwnerId();
                     //curItem.text = "出差";
                     curItem.text = MessageUtils.message("leave.busTra");
@@ -2409,7 +2412,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 itemList.add(parent);
                                 btLastItemId = String.valueOf(bustripProject.getProjectId());
                             }
-                            curItem.id = "出差_" + businessTrip.getId();
+                            //curItem.id = "出差_" + businessTrip.getId();
+                            curItem.id = MessageUtils.message("leave.busTra") + "_" + businessTrip.getId();
                             curItem.userId = businessTrip.getOwnerId();
                             //curItem.text = "出差/" + businessTrip.getOwnerName();
                             curItem.text = MessageUtils.message("leave.busTra")+"/" + businessTrip.getOwnerName();
@@ -2439,7 +2443,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 String end_date = sdf.format((Date) map.get("end_date"));
                 String projectId = ""+ (Integer) map.get("id");
                 System.out.println(map);
-                String exeId = "任务_"+map.get("task_id") +"_"+ (type==0?(Integer) map.get("exe_id"):userId);
+                //String exeId = "任务_"+map.get("task_id") +"_"+ (type==0?(Integer) map.get("exe_id"):userId);
+                String exeId = MessageUtils.message("excel.task") + "_"+map.get("task_id") +"_"+ (type==0?(Integer) map.get("exe_id"):userId);
                 String taskId = ""+ (Integer) map.get("task_id");
 
                 GanttDataItem curItem = new GanttDataItem();;
@@ -3066,9 +3071,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     boolean exists=false;
                     if (codeCell != null) {
                         String code = codeCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
-                        if (code.equals("项目编号") && rowIndex == 0) {
+                        if ((code.equals("项目编号") || code.equals("project No")) && rowIndex == 0) {
                             //检查是否有子项目列
-                            if (!subNameCell.getStringCellValue().trim().startsWith("子项目")) {
+                            //if (!subNameCell.getStringCellValue().trim().startsWith("子项目")) {
+                            if (!subNameCell.getStringCellValue().trim().startsWith(MessageUtils.message("Template.subProject"))) {
                                 throw new Exception("缺少子项目列,请下载最新模板");
                             }
                             //跳过第一行标题
@@ -3138,7 +3144,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         project.setContractAmount(Double.parseDouble(amountCell.getStringCellValue()));
                     }
                     if (isPublicCell != null && !StringUtils.isEmpty(isPublicCell.getStringCellValue())) {
-                        project.setIsPublic("是".equals(isPublicCell.getStringCellValue())?1:0);
+                        project.setIsPublic(MessageUtils.message("excel.yes").equals(isPublicCell.getStringCellValue())?1:0);
                     }
                     if(exists){
                         Project updateProject = projectMapper.selectList(new QueryWrapper<Project>().eq("project_code", project.getProjectCode()).eq("company_id", user.getCompanyId())).get(0);
@@ -3496,14 +3502,15 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     boolean exists=false;
                     if (codeCell != null) {
                         String code = codeCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
-                        if (code.equals("项目编号") && rowIndex == 0) {
+                        if ((code.equals("项目编号") || code.equals("project No")) && rowIndex == 0) {
                             //检查是否有子项目列
-                            if (subNameCell!=null&&!subNameCell.getStringCellValue().trim().startsWith("子项目")&&timeType.getMainProjectState()!=1) {
+                            //if (subNameCell!=null&&!subNameCell.getStringCellValue().trim().startsWith("子项目")&&timeType.getMainProjectState()!=1) {
+                            if (subNameCell!=null&&!subNameCell.getStringCellValue().trim().startsWith(MessageUtils.message("Template.subProject"))&&timeType.getMainProjectState()!=1) {
                                 //throw new Exception("缺少子项目列,请下载最新模板");
                                 throw new Exception(MessageUtils.message("Template.lackSonProject"));
                             }
                             //检查是否有主项目列
-                            if (mainNameCell!=null&&!mainNameCell.getStringCellValue().trim().startsWith("主项目")&&timeType.getMainProjectState()==1) {
+                            if (mainNameCell!=null&&!mainNameCell.getStringCellValue().trim().startsWith(MessageUtils.message("entry.mainProject"))&&timeType.getMainProjectState()==1) {
                                 //throw new Exception("缺少主项目列,请下载最新模板");
                                 throw new Exception(MessageUtils.message("Template.lackMasterRow"));
                             }
@@ -3698,7 +3705,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         project.setContractAmount(Double.parseDouble(amountCell.getStringCellValue()));
                     }
                     if (isPublicCell != null && !StringUtils.isEmpty(isPublicCell.getStringCellValue())) {
-                        project.setIsPublic("是".equals(isPublicCell.getStringCellValue())?1:0);
+                        project.setIsPublic(MessageUtils.message("excel.yes").equals(isPublicCell.getStringCellValue())?1:0);
                     }
                     if(timeType.getMainProjectState()!=1){
                         //处理子项目
@@ -4354,7 +4361,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         List<List<String>> allList = new ArrayList<List<String>>();
         allList.add(headList);
-        String[] levelArray = new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
+        //String[] levelArray = new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
+        String[] levelArray = new String[]{MessageUtils.message("excel.normal"), MessageUtils.message("excel.urgent"),MessageUtils.message("excel.important"),MessageUtils.message("excel.impAndUrg"),MessageUtils.message("excel.lowRisk"),MessageUtils.message("excel.MedRisk"),MessageUtils.message("excel.highRisk")};
         LocalDateTime c=LocalDateTime.now();
         //获取项目级别数据
         List<ProjectLevel> projectLevelList = projectLevelMapper.selectList(new QueryWrapper<ProjectLevel>().eq("company_id", user.getCompanyId()));
@@ -6729,7 +6737,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
                 if (codeCell != null) {
                     String code = codeCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
-                    if (code.equals("项目编号") && rowIndex == 0) {
+                    if ((code.equals("项目编号") || code.equals("project No")) && rowIndex == 0) {
                         //跳过第一行标题
                         continue;
                     }
@@ -7220,44 +7228,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return result;
     }
 
-    //分页查询员工月度工时表
-    @Override
-    public HttpRespMsg getEmpMonthHours(Integer pageIndex, Integer pageSize, String month,Integer departmentId,String userId, HttpServletRequest request) {
-        HttpRespMsg httpRespMsg =new HttpRespMsg();
-        User targetUser = userMapper.selectById(request.getHeader("token"));
-        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "全部人员月度工时表");
-        List<SysRichFunction> functionDeptList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "负责部门月度工时表");
-        List<Integer> deptIds=null;
-        List<Department> allDepartmentList=departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",targetUser.getCompanyId()));
-        List<Department> userDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", targetUser.getId()).eq("company_id",targetUser.getCompanyId()));
-        List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", targetUser.getId()));
-        //判断查看权限
-        if(functionAllList.size()==0){
-            deptIds=new ArrayList<>();
-            deptIds.add(-1);
-            if(functionDeptList.size()>0){
-                List<Integer> collect = userDepartmentList.stream().distinct().map(dm -> dm.getDepartmentId()).collect(Collectors.toList());
-                List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
-                collect.addAll(otherCollect);
-                //将该用户管理的所有部门以及部门的子部门id添加到deptIds集合中
-                for (Integer integer : collect) {
-                    List<Integer> branchDepartment = getBranchDepartment(integer, allDepartmentList);
-                    deptIds.addAll(branchDepartment);
-                }
-            }
-        }
+    //人员月度分页功能
+    private HashMap<String,List> EmpMonthHoursPage(Integer pageIndex, Integer pageSize,User targetUser,String userId,String startDate,String endDate,List<Integer> branchDepartment,List<Integer> deptIds){
+        HashMap<String, List> resultMap = new HashMap<>();
         long total;
         List<Map<String,Object>> resultList;
-        List<Integer> branchDepartment =null;
-        //若用户传入departmentId参数,则查询该部门所有子部门,添加到branchDepartment集合中
-        if(departmentId!=null){
-            branchDepartment = getBranchDepartment(departmentId, allDepartmentList);
-        }
-        String startDate = null;
-        String endDate = null;
-        LocalDate time = LocalDate.parse(month, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
-        startDate = time.with(TemporalAdjusters.firstDayOfMonth()).toString();
-        endDate = time.with(TemporalAdjusters.lastDayOfMonth()).toString();
         int days = WorkDayCalculateUtils.getWorkDaysListInRange(startDate, endDate, 0).size();
         //分页查询用户计划工时和实际工时
         if(pageIndex!=null&&pageSize!=null){
@@ -7274,11 +7249,20 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             float standardHours = Float.parseFloat(resultList.get(0).get("allday").toString())*days;
             LocalDate localStartDate = LocalDate.parse(startDate, dateTimeFormatter);
             LocalDate localEndDate = LocalDate.parse(endDate, dateTimeFormatter);
+            List<LeaveSheet> sumLeave = leaveSheetMapper.selectLeave(targetUser.getCompanyId(), startDate, endDate);
             for (Map<String, Object> map : resultList) {
                 //计算算请假时间
+                standardHours = new BigDecimal(standardHours).setScale(1,BigDecimal.ROUND_HALF_UP).floatValue();
                 map.put("standardHours",standardHours);
-                map.put("workingTime",map.get("workingTime")==null?0:map.get("workingTime"));
-                List<LeaveSheet> leaveSheets = leaveSheetMapper.selectLeave(map.get("userId").toString(),startDate,endDate);
+                float workingTime = map.get("workingTime")==null?0:Float.parseFloat(map.get("workingTime").toString());
+                workingTime = new BigDecimal(workingTime).setScale(1,BigDecimal.ROUND_HALF_UP).floatValue();
+                map.put("workingTime",workingTime);
+                List<LeaveSheet> leaveSheets = new ArrayList<>();
+                for (LeaveSheet leaveSheet : sumLeave) {
+                    if (map.get("userId").toString().equals(leaveSheet.getOwnerId())){
+                        leaveSheets.add(leaveSheet);
+                    }
+                }
                 float leaveTime = 0;
                 for (LeaveSheet leaveSheet : leaveSheets) {
                     //当请假时间在当前月内的
@@ -7304,15 +7288,99 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                     }
                 }
+                leaveTime = new BigDecimal(leaveTime).setScale(1,BigDecimal.ROUND_HALF_UP).floatValue();
                 map.put("leaveTime",leaveTime);
                 //是否满足工时
-                if (Float.parseFloat(map.get("workingTime").toString()) < standardHours){
+                if (workingTime + leaveTime < standardHours){
                     map.put("whether",0);
                 }else{
                     map.put("whether",1);
                 }
             }
         }
+        resultMap.put("resultList",resultList);
+        ArrayList<Long> totalList = new ArrayList<>();
+        totalList.add(total);
+        resultMap.put("totalList",totalList);
+        return resultMap;
+    }
+
+    //分页查询人员月度工时表
+    @Override
+    public HttpRespMsg getEmpMonthHours(Integer pageIndex, Integer pageSize, String month,Integer departmentId,String userId,Integer whether,HttpServletRequest request) {
+        HttpRespMsg httpRespMsg =new HttpRespMsg();
+        User targetUser = userMapper.selectById(request.getHeader("token"));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "全部人员月度工时表");
+        List<SysRichFunction> functionDeptList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "负责部门月度工时表");
+        List<Integer> deptIds=null;
+        List<Department> allDepartmentList=departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",targetUser.getCompanyId()));
+        List<Department> userDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", targetUser.getId()).eq("company_id",targetUser.getCompanyId()));
+        List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", targetUser.getId()));
+        //判断查看权限
+        if(functionAllList.size()==0){
+            deptIds=new ArrayList<>();
+            deptIds.add(-1);
+            if(functionDeptList.size()>0){
+                List<Integer> collect = userDepartmentList.stream().distinct().map(dm -> dm.getDepartmentId()).collect(Collectors.toList());
+                List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
+                collect.addAll(otherCollect);
+                //将该用户管理的所有部门以及部门的子部门id添加到deptIds集合中
+                for (Integer integer : collect) {
+                    List<Integer> branchDepartment = getBranchDepartment(integer, allDepartmentList);
+                    deptIds.addAll(branchDepartment);
+                }
+            }
+        }
+        long total  = 0;
+        List<Map<String,Object>> resultList = null;
+        List<Integer> branchDepartment =null;
+        //若用户传入departmentId参数,则查询该部门所有子部门,添加到branchDepartment集合中
+        if(departmentId!=null){
+            branchDepartment = getBranchDepartment(departmentId, allDepartmentList);
+        }
+        String startDate = null;
+        String endDate = null;
+        LocalDate time = LocalDate.parse(month, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+        startDate = time.with(TemporalAdjusters.firstDayOfMonth()).toString();
+        endDate = time.with(TemporalAdjusters.lastDayOfMonth()).toString();
+        //是否传入筛选条件(满不满足工时)
+        if (whether==null){
+            Map<String, List> resultMap = EmpMonthHoursPage(pageIndex,pageSize,targetUser,userId,startDate,endDate,branchDepartment,deptIds);
+            resultList = resultMap.get("resultList");
+            total = Long.parseLong(resultMap.get("totalList").get(0).toString());
+        }else {
+            Map<String, List> whetherMap = EmpMonthHoursPage(null,null,targetUser,userId,startDate,endDate,branchDepartment,deptIds);
+            resultList = whetherMap.get("resultList");
+            if (whether == 1){
+                ArrayList<Map<String, Object>> yes = new ArrayList<>();
+                for (Map<String, Object> stringObjectMap : resultList) {
+                    if ("1".equals(stringObjectMap.get("whether").toString())){
+                        yes.add(stringObjectMap);
+                    }
+                }
+                //计算总页数
+                total = yes.size();
+                if (pageIndex!=null && pageSize!=null){
+                    resultList = yes.stream().skip((pageIndex - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+                }else {
+                    resultList = yes;
+                }
+            }else{
+                ArrayList<Map<String, Object>> no = new ArrayList<>();
+                for (Map<String, Object> stringObjectMap : resultList) {
+                    if ("0".equals(stringObjectMap.get("whether").toString())){
+                        no.add(stringObjectMap);
+                    }
+                }
+                //计算总页数
+                total = no.size();
+                if (pageIndex!=null && pageSize!=null){
+                    resultList = no.stream().skip((pageIndex - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+                }else {
+                    resultList = no;
+                }
+            }
+        }
         Map<String,Object> map=new HashMap<>();
         map.put("result",resultList);
         map.put("total",total);
@@ -7322,50 +7390,57 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
     //导出员工月度工时表
     @Override
-    public HttpRespMsg exportEmpMonthHours(String month, HttpServletRequest request, String userId, Integer departmentId){
+    public HttpRespMsg exportEmpMonthHours(String month, HttpServletRequest request, String userId, Integer departmentId,Integer whether){
         HttpRespMsg msg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
-        String startDate = null;
-        String endDate = null;
         LocalDate time = LocalDate.parse(month, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
-        startDate = time.with(TemporalAdjusters.firstDayOfMonth()).toString();
-        endDate = time.with(TemporalAdjusters.lastDayOfMonth()).toString();
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
-        HttpRespMsg httpRespMsg = getEmpMonthHours(null, null,month,departmentId,userId,request);
+        HttpRespMsg httpRespMsg = getEmpMonthHours(null, null,month,departmentId,userId,whether,request);
         Map<String,Object> data = (Map<String, Object>) httpRespMsg.data;
         List<Map<String,Object>> resultList= (List<Map<String, Object>>) data.get("result");
         List<List<String>> dataList=new ArrayList<>();
         List<String> titleList=new ArrayList<>();
-        titleList.add("姓名");
-        titleList.add("工号");
-        titleList.add("标准工时");
-        titleList.add("实际工时");
-        titleList.add("请假工时");
-        titleList.add("是否满足工时");
+//        titleList.add("姓名");
+//        titleList.add("部门");
+//        titleList.add("工号");
+//        titleList.add("标准工时");
+//        titleList.add("实际工时");
+//        titleList.add("请假工时");
+//        titleList.add("是否满足工时");
+        titleList.add(MessageUtils.message("entry.name"));
+        titleList.add(MessageUtils.message("excel.department"));
+        titleList.add(MessageUtils.message("entry.No"));
+        titleList.add(MessageUtils.message("excel.standard"));
+        titleList.add(MessageUtils.message("excel.actual"));
+        titleList.add(MessageUtils.message("excel.leave"));
+        titleList.add(MessageUtils.message("excel.leave"));
+        titleList.add(MessageUtils.message("excel.workWeather"));
         dataList.add(titleList);
         for (Map<String, Object> map : resultList) {
             List<String> item=new ArrayList<>();
             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
                 item.add("$userName="+(map.get("corwxUserId")==null?"":map.get("corwxUserId"))+"$");
-                item.add(String.valueOf(StringUtils.isEmpty(map.get("jobNumber"))?"":map.get("jobNumber")));
-                //item.add("$deprtmentName="+(map.get("corpwxDeptId")==null?"":map.get("corpwxDeptId"))+"$");
+                item.add("$deprtmentName="+(map.get("corpwxDeptId")==null?"":map.get("corpwxDeptId"))+"$");
             }else {
                 item.add((String) map.get("name"));
-                item.add(String.valueOf(StringUtils.isEmpty(map.get("jobNumber"))?"":map.get("jobNumber")));
-                //item.add((String) map.get("departmentName")==null?"":(String) map.get("departmentName"));
+                item.add((String) map.get("departmentName")==null?"":(String) map.get("departmentName"));
             }
+            item.add(String.valueOf(StringUtils.isEmpty(map.get("jobNumber"))?"":map.get("jobNumber")));
             item.add(String.valueOf(map.get("standardHours")).equals("null")?"":String.valueOf(map.get("standardHours")));
             item.add(String.valueOf(map.get("workingTime")).equals("null")?"":String.valueOf(map.get("workingTime")));
             item.add(String.valueOf(map.get("leaveTime")).equals("null")?"":String.valueOf(map.get("leaveTime")));
             if (map.get("whether").toString().equals("1")){
-                item.add("是");
+                //item.add("是");
+                item.add(MessageUtils.message("excel.yes"));
             }else{
-                item.add("否");
+                //item.add("否");
+                item.add(MessageUtils.message("excel.no"));
             }
             dataList.add(item);
         }
         //生成excel文件导出
-        String fileName = "员工"+time.getMonthValue()+"月工时表"+System.currentTimeMillis();
+        //String fileName = "人员"+time.getMonthValue()+"月度工时表"+System.currentTimeMillis();
+        String fileName = MessageUtils.message("entry.personnel") +time.getMonthValue()+MessageUtils.message("fileName.monthWork")+System.currentTimeMillis();
         try {
             return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
         } catch (Exception e) {

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

@@ -3954,7 +3954,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 if (syncTranslationResult != null) {
                     httpRespMsg.data = syncTranslationResult;
                 } else {
-                    httpRespMsg.setError("处理超时...");
+                    //httpRespMsg.setError("处理超时...");
+                    httpRespMsg.setError(MessageUtils.message("request.outTime"));
                 }
             }else {
                 httpRespMsg.data = "/upload/" + fileUrlSuffix;

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

@@ -166,7 +166,7 @@ public class SimpleReportServiceImpl extends ServiceImpl<SimpleReportMapper, Sim
 
                     String name = nameCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
                     SimpleFinance finance = new SimpleFinance();
-                    if (name.equals("姓名") && rowIndex == 0) {
+                    if ((name.equals("姓名") || name.equals("name")) && rowIndex == 0) {
                         //跳过第一行标题
                         continue;
                     }

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

@@ -357,7 +357,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                 if (syncTranslationResult != null) {
                     httpRespMsg.data = syncTranslationResult;
                 } else {
-                    httpRespMsg.setError("处理超时...");
+                    //httpRespMsg.setError("处理超时...");
+                    httpRespMsg.setError(MessageUtils.message("request.outTime"));
                 }
             }else {
                 httpRespMsg.data = "/upload/" + fileUrlSuffix;
@@ -455,7 +456,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                 String name = nameCell.getStringCellValue();
                 String type = typeCell.getStringCellValue();
                 //忽略表头
-                if (name.equals("任务内容") && type.equals("类型") && rowIndex == 0) {
+                if ((name.equals("任务内容") || name.equals("Task content")) && (type.equals("类型") || type.equals("type")) && rowIndex == 0) {
                     continue;
                 }
                 Task task = new Task();

+ 7 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -334,7 +334,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         //开启了自定义日报列表的情况下,需要菜单上有
         if (timeType.getCustomDegreeActive() == 1 && moduleList.stream().anyMatch(mod->mod.getName().equals("系统基础设置"))) {
             SysModule centerManageModule = new SysModule();
-            centerManageModule.setName(timeType.getCustomDegreeName()+"管理");
+            //centerManageModule.setName(timeType.getCustomDegreeName()+"管理");
+            centerManageModule.setName(timeType.getCustomDegreeName()+MessageUtils.message("project.manage"));
             centerManageModule.setPath("/centerManage");
             centerManageModule.setId(0);
             //加到组织架构前面
@@ -496,7 +497,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             ResponseEntity<String> ResponseEntity = restTemplate.postForEntity(url, entity, String.class);
             if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
                 String resp = ResponseEntity.getBody();
-                System.err.println(resp);
                 JSONObject respJson = JSONObject.parseObject(resp);
                 if (respJson.getInteger("errcode")==0){
                     JSONObject queryResult = respJson.getJSONObject("query_result");
@@ -1217,7 +1217,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 }
 
                 if (rowIndex == 0) {
-                    if (!"工号".equals(jobNumber)) {
+                    if ((!"工号".equals(jobNumber)) || (!"Job No".equals(jobNumber))) {
                         //httpRespMsg.setError("缺少部门列,请下载最新模板进行导入");
                         httpRespMsg.setError(MessageUtils.message("Template.lackJobNumber"));
                         return httpRespMsg;
@@ -1663,7 +1663,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 if (syncTranslationResult != null) {
                     httpRespMsg.data = syncTranslationResult;
                 } else {
-                    httpRespMsg.setError("处理超时...");
+                    //httpRespMsg.setError("处理超时...");
+                    httpRespMsg.setError(MessageUtils.message("request.outTime"));
                 }
             }else {
                 httpRespMsg.data = "/upload/" + fileUrlSuffix;
@@ -1874,7 +1875,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 if (syncTranslationResult != null) {
                     httpRespMsg.data = syncTranslationResult;
                 } else {
-                    httpRespMsg.setError("处理超时...");
+                    //httpRespMsg.setError("处理超时...");
+                    httpRespMsg.setError(MessageUtils.message("request.outTime"));
                 }
             }else {
                 httpRespMsg.data = "/upload/" + fileUrlSuffix;

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages.properties

@@ -78,6 +78,7 @@ other.phoneNull=手机号不能为空
 request.countLimit=接口访问次数超过限制,请1分钟后重试。
 request.illegal=请求非法
 request.frequently=请求过于频繁,请稍后再试
+request.outTime=处理超时...
 # 部门相关
 department.duplicateError=保存失败: 部门[{0}]存在重复。
 department.reviewedError=当前部门存在待审核报告,无法操作!
@@ -152,6 +153,8 @@ finance.masterProfessional=只有专业负责人才能进行专业审核
 finance.choiceDaily=请选择需要审核的日报
 finance.skipData=跳过以下已审核数据:"{0}"。
 finance.importErrorByAllAdopt=本次数据全部已审核通过,无法导入。
+finance.review=专业审核
+finance.dept=部门审核
 # pdf相关
 pdf.previewError=该格式不支持在线预览
 # 日报相关
@@ -173,6 +176,8 @@ profession.TypeError=操作错误,日报状态不对:{0}
 profession.alreadyRevoke=该日报已被撤销,无法重复操作
 profession.impProReject=您{0}导入的日报中{1}项目被[{2}]驳回。原因:{3},请重新导入。
 profession.fillProReject=您{0}填写的日报中{1}项目被[{2}]驳回。原因:{3}。
+profession.approver=请设置审批人
+profession.checker=请设置审核人
 # 项目相关
 project.deleteErrorByProject=删除失败,已绑定项目
 project.deleteErrorByMaster=删除失败,已绑定主项目
@@ -216,6 +221,7 @@ project.alreadyRelation={0}已被以下项目关联:{1}
 project.storesReserve=立项准备材料
 project.processDocuments=项目过程文档
 project.deliverable=项目交付件
+project.manage = 管理
 # 供货相关
 provider.noRepeat=供货商编号已存在
 provider.classNameRepeat=该分类下供货商名称已存在
@@ -312,6 +318,7 @@ report.dailyReject=您{0}填写的日报中{1}项目被[{2}]驳回。原因:{3}
 report.reportApp=审核通过了日报
 report.hourReportNoFilled=您{0}的工时报告还未填写
 #模板相关
+Template.subProject=子项目
 Template.AlreadyExists=该模板名称已存在
 Template.lackSonProject=缺少子项目列,请下载最新模板
 Template.lackMasterRow=缺少主项目列,请下载最新模板
@@ -510,6 +517,7 @@ fileName.supStat=供应商统计_
 fileName.dailyManHour=人员每日工时统计_{0}至{1}
 fileName.perNoFill=未填人员统计_
 fileName.laborHour=工时对比
+fileName.monthWork=月度工时表
 #excel
 excel.publicProject=是否为公共项目
 excel.projectName=项目名称必填
@@ -652,6 +660,10 @@ excel.peopleList=员工列表
 excel.perList=人员列表
 excel.Filled=已填
 excel.notFilled=未填
+excel.standard=标准工时
+excel.actual=实际工时
+excel.leave=请假工时
+excel.workWeather=是否满足工时
 #推送
 push.fillIn=您今天的工时填报还未完成
 push.name=屈跃庭

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages_en_US.properties

@@ -78,6 +78,7 @@ other.phoneNull=Mobile number cannot be empty
 request.countLimit=The number of interface accesses exceeds the limit. Please try again in 1 minute.
 request.illegal=Illegal request
 request.frequently=Too many requests, please try again later.
+request.outTime=Processing timeout...
 # 部门相关
 department.duplicateError=save fail: department [{0}] already exists
 department.reviewedError=The current department has a report to be approved, unable to operate!
@@ -152,6 +153,8 @@ finance.masterProfessional=Only the person in charge of the discipline can condu
 finance.choiceDaily=Please select the daily report to be approved.
 finance.skipData=Skipping the following audited data: '{0}'.
 finance.importErrorByAllAdopt=This data has been approved and cannot be imported.
+finance.review=Professional review
+finance.dept=Department review
 # pdf相关
 pdf.previewError=This format does not support online preview.
 # 日报相关
@@ -173,6 +176,8 @@ profession.TypeError=Operation error, the daily report status is incorrect: {0}.
 profession.alreadyRevoke=The daily report has been canceled, and you cannot repeat the operation.
 profession.impProReject=The {1} project in the daily report you {0} imported was rejected by [{2}]. Reason: {3}, please import again.
 profession.fillProReject=The {1} project in the daily report you filled in by {0} was rejected by [{2}]. Reason: {3}.
+profession.approver=Please set approver
+profession.checker=Please set reviewer
 # 项目相关
 project.deleteErrorByProject=Failed to delete, bound item.
 project.deleteErrorByMaster=Failed to delete, the master project has been bound.
@@ -216,6 +221,7 @@ project.alreadyRelation={0} is already associated with the following project: {1
 project.storesReserve=Project preparation materials
 project.processDocuments=Project process documents
 project.deliverable=Project Deliverable
+project.manage = manage
 # 供货相关
 provider.noRepeat=Vendor No. already exists.
 provider.classNameRepeat=The supplier name under this category already exists.
@@ -312,6 +318,7 @@ report.dailyReject=The {1} project in the daily report you filled in by {0} was
 report.reportApp=Daily report approved
 report.hourReportNoFilled=Your work hour report for {0} has not been completed.
 #模板相关
+Template.subProject=subproject
 Template.AlreadyExists=The template name already exists.
 Template.lackSonProject=The sub item column is missing. Please download the latest template.
 Template.lackMasterRow=The main item column is missing. Please download the latest template.
@@ -510,6 +517,7 @@ fileName.supStat=Supplier statistics_
 fileName.dailyManHour=Daily man hour statistics_ {0} to {1}
 fileName.perNoFill=Personnel statistics not filled_
 fileName.laborHour=Labor hour comparison
+fileName.monthWork=Monthly man hour table
 #excel
 excel.publicProject=Whether it is a public project
 excel.projectName=Project name is required
@@ -652,6 +660,10 @@ excel.peopleList=Employee List
 excel.perList=Personnel list
 excel.Filled=Filled
 excel.notFilled=Not filled
+excel.standard=Standard working hours
+excel.actual=Actual working time
+excel.leave=Time of leave
+excel.workWeather=Whether the working hours are met
 #推送
 push.fillIn=Your work hour report for today has not been completed.
 push.name=Qu Yue ting

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

@@ -51,7 +51,7 @@
     <!-- 查询某段时间内的请假列表 -->
     <select id="selectLeave" resultType="com.management.platform.entity.LeaveSheet">
         select * from leave_sheet
-        where owner_id = #{userId} and leave_sheet.status=0
+        where company_id = #{companyId} and leave_sheet.status=0
         and leave_sheet.start_date &lt;=#{endDate} and leave_sheet.end_date &gt;=#{startDate}
     </select>
 </mapper>