Explorar o código

赛元微电子的同步人员后同步本月考勤功能开发

seyason %!s(int64=2) %!d(string=hai) anos
pai
achega
e0c7e410bf

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/CompanyController.java

@@ -49,6 +49,12 @@ public class CompanyController {
 
 
     public static final HashMap<String, Long> syncLog = new HashMap();
     public static final HashMap<String, Long> syncLog = new HashMap();
 
 
+    @RequestMapping("/getStaffCountMax")
+    public HttpRespMsg getStaffCountMax(Integer companyId){
+        HttpRespMsg msg = new HttpRespMsg();
+        msg.data = companyService.getById(companyId).getStaffCountMax();
+        return msg;
+    }
 
 
     @RequestMapping("/dataMigration")
     @RequestMapping("/dataMigration")
     public HttpRespMsg dataMigration(Integer oldCompanyId,Integer targetCompanyId){
     public HttpRespMsg dataMigration(Integer oldCompanyId,Integer targetCompanyId){

+ 10 - 12
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/LeaveSheetController.java

@@ -1,13 +1,13 @@
 package com.management.platform.controller;
 package com.management.platform.controller;
 
 
 
 
-import com.management.platform.entity.ExpenseSheet;
-import com.management.platform.entity.LeaveSheet;
-import com.management.platform.entity.SysFunction;
-import com.management.platform.entity.User;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.management.platform.entity.*;
 import com.management.platform.entity.vo.SysRichFunction;
 import com.management.platform.entity.vo.SysRichFunction;
+import com.management.platform.mapper.DepartmentMapper;
 import com.management.platform.mapper.SysFunctionMapper;
 import com.management.platform.mapper.SysFunctionMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.DepartmentService;
 import com.management.platform.service.ExpenseSheetService;
 import com.management.platform.service.ExpenseSheetService;
 import com.management.platform.service.LeaveSheetService;
 import com.management.platform.service.LeaveSheetService;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.HttpRespMsg;
@@ -18,7 +18,9 @@ import org.springframework.web.bind.annotation.RestController;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -40,6 +42,10 @@ public class LeaveSheetController {
     private HttpServletRequest request;
     private HttpServletRequest request;
     @Resource
     @Resource
     SysFunctionMapper sysFunctionMapper;
     SysFunctionMapper sysFunctionMapper;
+    @Resource
+    DepartmentMapper departmentMapper;
+    @Resource
+    DepartmentService departmentService;
 
 
 
 
     /**
     /**
@@ -62,14 +68,6 @@ public class LeaveSheetController {
 
 
     @RequestMapping("/list")
     @RequestMapping("/list")
     public HttpRespMsg list(LeaveSheet sheet, @RequestParam Integer pageIndex, @RequestParam Integer pageSize) {
     public HttpRespMsg list(LeaveSheet sheet, @RequestParam Integer pageIndex, @RequestParam Integer pageSize) {
-        String token = request.getHeader("TOKEN");
-        User user = userMapper.selectById(token);
-        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部请假单");
-        if (functionList.size() == 0) {
-            //普通员工只能看自己的
-            sheet.setOwnerId(user.getId());
-        }
-        sheet.setCompanyId(user.getCompanyId());
         return leaveSheetService.queryList(sheet, pageIndex, pageSize);
         return leaveSheetService.queryList(sheet, pageIndex, pageSize);
     }
     }
 
 

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

@@ -1179,6 +1179,26 @@ public class WeiXinCorpController {
         return wxCorpInfoService.getUserCheckInDayData(companyId, userId, start, end, true);
         return wxCorpInfoService.getUserCheckInDayData(companyId, userId, start, end, true);
     }
     }
 
 
+    @RequestMapping("/getCurMonthDayData")
+    public HttpRespMsg getCurMonthDayData(int companyId) {
+        LocalDate now = LocalDate.now();
+        if (now.getDayOfMonth() == 1) {
+            //本月1号,直接返回
+            return new HttpRespMsg();
+        }
+
+        now = now.withDayOfMonth(1);
+        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        String startDate = dtf.format(now);
+        now = LocalDate.now();
+        now = now.minusDays(1);
+        String endDate = dtf.format(now);
+        LocalDateTime start = LocalDateTime.parse(startDate+" 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+        LocalDateTime end = LocalDateTime.parse(endDate+" 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+        System.out.println(companyId+"  startDate="+startDate+", endDate="+endDate);
+        return wxCorpInfoService.getUserCheckInDayData(companyId, null, start, end, true);
+    }
+
 
 
     @RequestMapping("/getUserCheckInData")
     @RequestMapping("/getUserCheckInData")
     public HttpRespMsg getUserCheckInData(int companyId) {
     public HttpRespMsg getUserCheckInData(int companyId) {
@@ -1311,7 +1331,8 @@ public class WeiXinCorpController {
                     .setCompanyId(companyId)
                     .setCompanyId(companyId)
                     .setName(userJson.getString("name"))
                     .setName(userJson.getString("name"))
                     .setCorpwxUserid(curUserid)
                     .setCorpwxUserid(curUserid)
-                    .setColor(ColorUtil.randomColor());
+                    .setColor(ColorUtil.randomColor())
+                    .setInductionDate(LocalDate.now());
 
 
             //检查用户是否已经存在
             //检查用户是否已经存在
             if (userMapper.selectCount(new QueryWrapper<User>().eq("corpwx_userid", curUserid)) == 0) {
             if (userMapper.selectCount(new QueryWrapper<User>().eq("corpwx_userid", curUserid)) == 0) {

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

@@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.management.platform.entity.*;
 import com.management.platform.entity.*;
+import com.management.platform.entity.vo.SysRichFunction;
 import com.management.platform.mapper.*;
 import com.management.platform.mapper.*;
+import com.management.platform.service.DepartmentService;
 import com.management.platform.service.ExpenseItemService;
 import com.management.platform.service.ExpenseItemService;
 import com.management.platform.service.LeavePmauditService;
 import com.management.platform.service.LeavePmauditService;
 import com.management.platform.service.LeaveSheetService;
 import com.management.platform.service.LeaveSheetService;
@@ -17,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -48,7 +51,12 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
     private LeavePmauditService leavePmauditService;
     private LeavePmauditService leavePmauditService;
     @Resource
     @Resource
     private UserYearleaveSettingMapper userYearleaveSettingMapper;
     private UserYearleaveSettingMapper userYearleaveSettingMapper;
-
+    @Resource
+    private HttpServletRequest request;
+    @Resource
+    SysFunctionMapper sysFunctionMapper;
+    @Resource
+    DepartmentService departmentService;
 
 
     @Override
     @Override
     public HttpRespMsg add(LeaveSheet sheet, String userId) {
     public HttpRespMsg add(LeaveSheet sheet, String userId) {
@@ -115,6 +123,36 @@ public class LeaveSheetServiceImpl extends ServiceImpl<LeaveSheetMapper, LeaveSh
     @Override
     @Override
     public HttpRespMsg queryList(LeaveSheet sheet, Integer pageIndex, Integer pageSize) {
     public HttpRespMsg queryList(LeaveSheet sheet, Integer pageIndex, Integer pageSize) {
         QueryWrapper<LeaveSheet> queryWrapper = new QueryWrapper<LeaveSheet>();
         QueryWrapper<LeaveSheet> queryWrapper = new QueryWrapper<LeaveSheet>();
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部请假单");
+        if (functionList.size() == 0) {
+            //部门主要负责人可以看这个部门的
+            List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", user.getId()));
+            if (departmentList.size() > 0) {
+                //先是自己的
+                List<String> userIds = new ArrayList<>();
+                userIds.add(user.getId());
+                //负责的部门的人员
+                List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
+                List<Integer> allDeptIds = new ArrayList<>();
+                for (Department firstLevelDept : departmentList) {
+                    List<Integer> deptIncludeSubDeptIds = departmentService.getDeptIncludeSubDeptIds(firstLevelDept.getDepartmentId(), allDeptList);
+                    allDeptIds.addAll(deptIncludeSubDeptIds);
+                }
+                if (allDeptIds.size() > 0) {
+                    List<User> userList = userMapper.selectList(new QueryWrapper<User>().select("id").in("department_id", allDeptIds));
+                    List<String> collect = userList.stream().map(User::getId).collect(Collectors.toList());
+                    userIds.addAll(collect);
+                    queryWrapper.in("owner_id", userIds);
+                }
+            } else {
+                //普通员工只能看自己的
+                sheet.setOwnerId(user.getId());
+            }
+        }
+        sheet.setCompanyId(user.getCompanyId());
+
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         queryWrapper.eq("company_id", sheet.getCompanyId()).orderByDesc("id");
         queryWrapper.eq("company_id", sheet.getCompanyId()).orderByDesc("id");
 
 

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

@@ -23,6 +23,7 @@ import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.usermodel.*;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
@@ -1818,12 +1819,19 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 
 
         //获取公司全部人员; 按照人员状态,如果是已经离职的,当前日期在离职日期以后的,不需要显示该人员
         //获取公司全部人员; 按照人员状态,如果是已经离职的,当前日期在离职日期以后的,不需要显示该人员
         QueryWrapper<User> queryWrapper = new QueryWrapper<User>().eq("company_id", companyId);
         QueryWrapper<User> queryWrapper = new QueryWrapper<User>().eq("company_id", companyId);
-        queryWrapper.and(wrapper->wrapper.eq("is_active", 1).eq("report_status",0).or(wrapper2->wrapper2.eq("is_active", 0).gt("inactive_date", date)));
+        queryWrapper.and(wrapper->wrapper.eq("is_active", 1).eq("report_status",0)
+                .or(wrapper2->wrapper2.eq("is_active", 0).gt("inactive_date", date)));
         List<User> userList = userMapper.selectList(queryWrapper);
         List<User> userList = userMapper.selectList(queryWrapper);
         List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new QueryWrapper<LeaveSheet>().eq("company_id", companyId));
         List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new QueryWrapper<LeaveSheet>().eq("company_id", companyId));
         LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
         LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
         List<HashMap> userMapList = new ArrayList<>();
         List<HashMap> userMapList = new ArrayList<>();
+        LocalDate curDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
         for (User u : userList) {
         for (User u : userList) {
+            //入职日期在当前日期之后的,不要显示
+            if (u.getInductionDate() != null && u.getInductionDate().isAfter(curDate)) {
+                System.out.println("========"+u.getName());
+                continue;
+            }
             HashMap<String, Object> user = new HashMap<String, Object>();
             HashMap<String, Object> user = new HashMap<String, Object>();
             user.put("id", u.getId());
             user.put("id", u.getId());
             user.put("name", u.getName());
             user.put("name", u.getName());

+ 4 - 4
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -121,10 +121,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 }
                 }
             }
             }
             //检测密码正确时
             //检测密码正确时
-            if (company.getId() != 7) {
-                httpRespMsg.setError("非内部账号无法登陆");
-                return httpRespMsg;
-            }
+//            if (company.getId() != 7) {
+//                httpRespMsg.setError("非内部账号无法登陆");
+//                return httpRespMsg;
+//            }
             UserVO userVO = new UserVO().setCompanyName(company.getCompanyName());
             UserVO userVO = new UserVO().setCompanyName(company.getCompanyName());
             userVO.setCompany(company);
             userVO.setCompany(company);
             BeanUtils.copyProperties(userList.get(0), userVO);
             BeanUtils.copyProperties(userList.get(0), userVO);

+ 34 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -912,6 +912,8 @@ export default {
           if (res.code == "ok") {
           if (res.code == "ok") {
             this.syncMembByCardTimeMsg = res.data;
             this.syncMembByCardTimeMsg = res.data;
             this.getUser();
             this.getUser();
+            //人员同步成功,再去同步获取本月的人员
+            this.getCurMonthDayData();
           } else {
           } else {
             this.syncMembByCardTimeMsg = res.msg;
             this.syncMembByCardTimeMsg = res.msg;
           }
           }
@@ -921,6 +923,20 @@ export default {
         }
         }
       );
       );
     },
     },
+    getCurMonthDayData() {
+        this.http.post("/wxcorp/getCurMonthDayData",
+        {
+          companyId: this.user.companyId,
+        },
+        (res) => {
+          if (res.code == "ok") {
+          } else {
+          }
+        },
+        (err) => {
+        }
+      );
+    },
     saveContactSecret() {
     saveContactSecret() {
       if (!this.contactSecret) {
       if (!this.contactSecret) {
         this.$message({
         this.$message({
@@ -2943,6 +2959,23 @@ export default {
     deteFrames(i) {
     deteFrames(i) {
       this.insertForm.certJson.splice(i, 1);
       this.insertForm.certJson.splice(i, 1);
     },
     },
+    getStaffCountMax() {
+      this.http.post(
+            "/company/getStaffCountMax",
+            {companyId:this.user.companyId},
+            (res) => {
+              if (res.code == "ok") {
+                this.user.company.staffCountMax = res.data;
+              } 
+            },
+            (error) => {
+              this.$message({
+                message: error,
+                type: "error",
+              });
+            }
+          );
+    },
   },
   },
   mounted() {
   mounted() {
     this.deactiveDate = util.formatDate.format(new Date(), "yyyy-MM-dd");
     this.deactiveDate = util.formatDate.format(new Date(), "yyyy-MM-dd");
@@ -2952,6 +2985,7 @@ export default {
     this.getUsers();
     this.getUsers();
     this.acquireRole();
     this.acquireRole();
     this.getProfessional();
     this.getProfessional();
+    this.getStaffCountMax();
   },
   },
 };
 };
 </script>
 </script>