Explorar o código

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ScreenshotServiceImpl.java
seyason %!s(int64=5) %!d(string=hai) anos
pai
achega
4adfbaec4f
Modificáronse 31 ficheiros con 609 adicións e 117 borrados
  1. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/CompanyController.java
  2. 5 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  3. 5 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ScreenshotController.java
  4. 6 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TimeCalculationController.java
  5. 0 16
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TokenValidator.java
  6. 43 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserController.java
  7. 45 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Company.java
  8. 7 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java
  9. 8 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/User.java
  10. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/CompanyMapper.java
  11. 4 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java
  12. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ScreenshotMapper.java
  13. 7 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TimeCalculationMapper.java
  14. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/CompanyService.java
  15. 3 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  16. 3 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ScreenshotService.java
  17. 5 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/TimeCalculationService.java
  18. 10 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserService.java
  19. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/CompanyServiceImpl.java
  20. 16 7
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  21. 30 22
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ScreenshotServiceImpl.java
  22. 41 30
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TimeCalculationServiceImpl.java
  23. 129 12
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java
  24. 124 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/SnowFlake.java
  25. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/CompanyMapper.xml
  26. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml
  27. 9 6
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  28. 4 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ScreenshotMapper.xml
  29. 9 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeCalculationMapper.xml
  30. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/UserMapper.xml
  31. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/desktop/index.vue

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

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2020-01-13
+ */
+@RestController
+@RequestMapping("/company")
+public class CompanyController {
+
+}
+

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

@@ -10,6 +10,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * <p>
  * 前端控制器
@@ -23,6 +25,8 @@ import org.springframework.web.bind.annotation.RestController;
 public class ReportController {
     @Autowired
     private ReportService reportService;
+    @Autowired
+    private HttpServletRequest request;
 
     /**
      * 根据时间 按照人分类 获取报告信息
@@ -30,7 +34,7 @@ public class ReportController {
      */
     @RequestMapping("/getReportList")
     public HttpRespMsg getReportList(@RequestParam String date) {
-        return reportService.getReportList(date);
+        return reportService.getReportList(date, request);
     }
 
     /**

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

@@ -9,6 +9,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * <p>
  * 前端控制器
@@ -22,13 +24,15 @@ import org.springframework.web.bind.annotation.RestController;
 public class ScreenshotController {
     @Autowired
     private ScreenshotService screenshotService;
+    @Autowired
+    private HttpServletRequest request;
 
     /**
      * 获取每个人最新的截图
      */
     @RequestMapping("/getLatestScreenshotList")
     public HttpRespMsg getLatestScreenshotList() {
-        return screenshotService.getLatestScreenshotList();
+        return screenshotService.getLatestScreenshotList(request);
     }
 
     /**

+ 6 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TimeCalculationController.java

@@ -9,6 +9,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * <p>
  * 前端控制器
@@ -23,6 +25,8 @@ public class TimeCalculationController {
 
     @Autowired
     private TimeCalculationService timeCalculationService;
+    @Autowired
+    private HttpServletRequest request;
 
     /**
      * 获取某人今日工作时间和其他信息
@@ -44,12 +48,12 @@ public class TimeCalculationController {
     @RequestMapping("/getDevianceList")
     public HttpRespMsg getDevianceList(@RequestParam Integer pageIndex, @RequestParam Integer pageSize,
                                        String userId, Integer actionCode, String date) {
-        return timeCalculationService.getDevianceList(pageIndex, pageSize, userId, actionCode, date);
+        return timeCalculationService.getDevianceList(pageIndex, pageSize, userId, actionCode, date, request);
     }
 
     @RequestMapping("/getTimeStatistics")
     public HttpRespMsg getTimeStatistics(@RequestParam String date) {
-        return timeCalculationService.getTimeStatistics(date);
+        return timeCalculationService.getTimeStatistics(date, request);
     }
 }
 

+ 0 - 16
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TokenValidator.java

@@ -1,16 +0,0 @@
-package com.management.platform.controller;
-
-import com.management.platform.mapper.UserMapper;
-import com.management.platform.util.HttpRespMsg;
-
-import javax.annotation.Resource;
-
-public class TokenValidator {
-
-    @Resource
-    private UserMapper userMapper;
-
-    public HttpRespMsg validator(HttpRespMsg httpRespMsg, String token) {
-        return new HttpRespMsg();
-    }
-}

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

@@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -62,7 +63,48 @@ public class UserController {
      */
     @RequestMapping("/deleteUser")
     public HttpRespMsg deleteUser(@RequestParam String userId) {
-        return userService.deleteUser(userId);
+        return userService.deleteUser(userId, request);
+    }
+
+    /**
+     * 修改密码
+     * originPassword 原密码
+     * newPassword 新密码
+     */
+    @RequestMapping("/editPassword")
+    HttpRespMsg editPassword(@RequestParam String originPassword, @RequestParam String newPassword) {
+        return userService.editPassword(originPassword, newPassword, request);
+    }
+
+    /**
+     * 新增公司和负责人
+     * companyName 公司名
+     * name 姓名
+     * phone 电话号码
+     */
+    @RequestMapping("/createCompany")
+    HttpRespMsg createCompany(@RequestParam String companyName, @RequestParam String name, @RequestParam String phone) {
+        return userService.createCompany(companyName, name, phone);
+    }
+
+    /**
+     * 新增用户
+     * name 用户名
+     * phone 电话号码
+     * role 角色 0-普通员工 2-管理员
+     */
+    @RequestMapping("/insertUser")
+    HttpRespMsg insertUser(@RequestParam String name, @RequestParam String phone, @RequestParam Integer role) {
+        return userService.insertUser(name, phone, role, request);
+    }
+
+    /**
+     * 使用文件导入用户信息
+     * file Excel文件
+     */
+    @RequestMapping("/importUser")
+    HttpRespMsg importUser(@RequestParam MultipartFile file) {
+        return userService.importUser(file, request);
     }
 }
 

+ 45 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Company.java

@@ -0,0 +1,45 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2020-01-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Company extends Model<Company> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 公司表主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 公司名
+     */
+    @TableField("company_name")
+    private String companyName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

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

@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author 吴涛涛
- * @since 2020-01-08
+ * @since 2020-01-13
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -36,6 +36,12 @@ public class Project extends Model<Project> {
     @TableField("project_name")
     private String projectName;
 
+    /**
+     * 公司表外键
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
 
     @Override
     protected Serializable pkVal() {

+ 8 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/User.java

@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author 吴涛涛
- * @since 2020-01-08
+ * @since 2020-01-13
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -61,11 +61,17 @@ public class User extends Model<User> {
     private LocalDateTime createTime;
 
     /**
-     * 角色权限 0-员工 1-管理员
+     * 角色权限 0-员工 1-负责人 2-管理员
      */
     @TableField("role")
     private Integer role;
 
+    /**
+     * 公司表外键
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
 
     @Override
     protected Serializable pkVal() {

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/CompanyMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.Company;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2020-01-13
+ */
+public interface CompanyMapper extends BaseMapper<Company> {
+
+}

+ 4 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java

@@ -10,13 +10,14 @@ import java.util.Map;
 
 /**
  * <p>
- *  Mapper 接口
+ * Mapper 接口
  * </p>
  *
  * @author 吴涛涛
  * @since 2019-12-31
  */
 public interface ReportMapper extends BaseMapper<Report> {
-    List<Map<String, Object>> getReportByDate(@Param("date")String date, @Param("id")String id);
-    List<Map<String, Object>> getReportNameByDate(@Param("date")String date);
+    List<Map<String, Object>> getReportByDate(@Param("date") String date, @Param("id") String id);
+
+    List<Map<String, Object>> getReportNameByDate(@Param("date") String date, @Param("companyId") Integer companyId);
 }

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

@@ -4,6 +4,7 @@ import com.management.platform.entity.Screenshot;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.management.platform.entity.vo.ScreenshotVO;
 import com.management.platform.util.HttpRespMsg;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -17,7 +18,7 @@ import java.util.Map;
  * @since 2020-01-02
  */
 public interface ScreenshotMapper extends BaseMapper<Screenshot> {
-    List<Map<String, Object>> getLatestScreenshotList();
+    List<Map<String, Object>> getLatestScreenshotList(@Param("companyId")Integer companyId);
 
     HttpRespMsg saveAndProcessImage(ScreenshotVO screenshotvo);
 }

+ 7 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TimeCalculationMapper.java

@@ -20,14 +20,17 @@ public interface TimeCalculationMapper extends BaseMapper<TimeCalculation> {
     List<Map<String, Object>> getDevianceList(Page page,
                                               @Param("userId") String userId,
                                               @Param("actionCode") Integer actionCode,
-                                              @Param("date") String date);
+                                              @Param("date") String date,
+                                              @Param("companyId") Integer companyId);
 
     Integer countDeviance(@Param("userId") String userId,
                           @Param("actionCode") Integer actionCode,
-                          @Param("date") String date);
+                          @Param("date") String date,
+                          @Param("companyId") Integer companyId);
 
-    List<Map<String, Object>> getTodayStatisticsUser(@Param("date") String date);
+    List<Map<String, Object>> getTodayStatisticsUser(@Param("date") String date, @Param("companyId") Integer companyId);
 
     List<Map<String, Object>> getTodayStatistics(@Param("userId") String userId,
-                                                 @Param("date") String date);
+                                                 @Param("date") String date,
+                                                 @Param("companyId") Integer companyId);
 }

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/CompanyService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.Company;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2020-01-13
+ */
+public interface CompanyService extends IService<Company> {
+
+}

+ 3 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java

@@ -4,6 +4,8 @@ import com.management.platform.entity.Report;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.management.platform.util.HttpRespMsg;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * <p>
  * 服务类
@@ -13,7 +15,7 @@ import com.management.platform.util.HttpRespMsg;
  * @since 2019-12-31
  */
 public interface ReportService extends IService<Report> {
-    HttpRespMsg getReportList(String date);
+    HttpRespMsg getReportList(String date, HttpServletRequest request);
 
     HttpRespMsg editReport(Report report);
 

+ 3 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ScreenshotService.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.management.platform.entity.vo.ScreenshotVO;
 import com.management.platform.util.HttpRespMsg;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * <p>
  * 服务类
@@ -14,7 +16,7 @@ import com.management.platform.util.HttpRespMsg;
  * @since 2020-01-02
  */
 public interface ScreenshotService extends IService<Screenshot> {
-    HttpRespMsg getLatestScreenshotList();
+    HttpRespMsg getLatestScreenshotList(HttpServletRequest request);
 
     HttpRespMsg getTodayScreenshotList(String userId);
 

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

@@ -4,6 +4,8 @@ import com.management.platform.entity.TimeCalculation;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.management.platform.util.HttpRespMsg;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * <p>
  * 服务类
@@ -15,7 +17,8 @@ import com.management.platform.util.HttpRespMsg;
 public interface TimeCalculationService extends IService<TimeCalculation> {
     HttpRespMsg getTodayWorkingTime(String userId);
 
-    HttpRespMsg getDevianceList(Integer pageIndex, Integer pageSize, String userId, Integer actionCode, String date);
+    HttpRespMsg getDevianceList(Integer pageIndex, Integer pageSize,
+                                String userId, Integer actionCode, String date, HttpServletRequest request);
 
-    HttpRespMsg getTimeStatistics(String date);
+    HttpRespMsg getTimeStatistics(String date, HttpServletRequest request);
 }

+ 10 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserService.java

@@ -3,6 +3,7 @@ package com.management.platform.service;
 import com.management.platform.entity.User;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.management.platform.util.HttpRespMsg;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -21,5 +22,13 @@ public interface UserService extends IService<User> {
 
     HttpRespMsg getEmployeeList(HttpServletRequest request);
 
-    HttpRespMsg deleteUser(String userId);
+    HttpRespMsg deleteUser(String userId, HttpServletRequest request);
+
+    HttpRespMsg editPassword(String originPassword, String newPassword, HttpServletRequest request);
+
+    HttpRespMsg createCompany(String companyName, String name, String phone);
+
+    HttpRespMsg insertUser(String name, String phone, Integer role, HttpServletRequest request);
+
+    HttpRespMsg importUser(MultipartFile file, HttpServletRequest request);
 }

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/CompanyServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.Company;
+import com.management.platform.mapper.CompanyMapper;
+import com.management.platform.service.CompanyService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2020-01-13
+ */
+@Service
+public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> implements CompanyService {
+
+}

+ 16 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.management.platform.entity.Report;
 import com.management.platform.mapper.ReportMapper;
+import com.management.platform.mapper.UserMapper;
 import com.management.platform.service.ReportService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.util.HttpRespMsg;
@@ -18,6 +19,7 @@ import java.util.List;
 import java.util.Map;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * <p>
@@ -32,18 +34,25 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 
     @Resource
     private ReportMapper reportMapper;
+    @Resource
+    private UserMapper userMapper;
 
     //获取报告列表
     @Override
-    public HttpRespMsg getReportList(String date) {
+    public HttpRespMsg getReportList(String date, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        //首先根据日期获取当天所有提交过日志的人
-        List<Map<String, Object>> nameList = reportMapper.getReportNameByDate(date);
-        for (Map<String, Object> map : nameList) {
-            //再根据人分别获取当天的报告
-            map.put("data", reportMapper.getReportByDate(date, (String) map.get("id")));
+        try {
+            //首先根据日期获取当天所有提交过日志的人
+            List<Map<String, Object>> nameList = reportMapper.getReportNameByDate(date,
+                    userMapper.selectById(request.getHeader("Token")).getCompanyId());
+            for (Map<String, Object> map : nameList) {
+                //再根据人分别获取当天的报告
+                map.put("data", reportMapper.getReportByDate(date, (String) map.get("id")));
+            }
+            httpRespMsg.data = nameList;
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
         }
-        httpRespMsg.data = nameList;
         return httpRespMsg;
     }
 

+ 30 - 22
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ScreenshotServiceImpl.java

@@ -9,11 +9,10 @@ import com.management.platform.constant.Parameter;
 import com.management.platform.entity.PicContentKeywords;
 import com.management.platform.entity.Screenshot;
 import com.management.platform.entity.TimeCalculation;
+import com.management.platform.entity.User;
 import com.management.platform.entity.vo.ScreenshotVO;
+import com.management.platform.mapper.*;
 import com.management.platform.mapper.PicContentKeywordsMapper;
-import com.management.platform.mapper.PicContentKeywordsMapper;
-import com.management.platform.mapper.ScreenshotMapper;
-import com.management.platform.mapper.TimeCalculationMapper;
 import com.management.platform.service.ScreenshotService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.util.*;
@@ -26,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.imageio.ImageIO;
+import javax.servlet.http.HttpServletRequest;
 import java.awt.image.BufferedImage;
 import java.io.*;
 import java.text.SimpleDateFormat;
@@ -69,18 +69,26 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
     @Resource
     private TimeCalculationMapper timeCalculationMapper;
 
+    @Resource
+    private UserMapper userMapper;
+
     //获取所有人最新的截图
     @Override
-    public HttpRespMsg getLatestScreenshotList() {
+    public HttpRespMsg getLatestScreenshotList(HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         //获取每一个人最后一张截图
-        List<Map<String, Object>> resultMap = screenshotMapper.getLatestScreenshotList();
-        for (Map<String, Object> map : resultMap) {
-            //对于每一张图 将时间戳转换为时间
-            map.put("time", new SimpleDateFormat("HH:mm:ss").format(map.get("indate")));
-            map.remove("indate");
+        try {
+            List<Map<String, Object>> resultMap = screenshotMapper
+                    .getLatestScreenshotList(userMapper.selectById(request.getHeader("Token")).getCompanyId());
+            for (Map<String, Object> map : resultMap) {
+                //对于每一张图 将时间戳转换为时间
+                map.put("time", new SimpleDateFormat("HH:mm:ss").format(map.get("indate")));
+                map.remove("indate");
+            }
+            httpRespMsg.data = resultMap;
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
         }
-        httpRespMsg.data = resultMap;
         return httpRespMsg;
     }
 
@@ -213,8 +221,8 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
         if (chWNum < 200) {
             return false;
         }
-        int percent = chWNum*100/total;
-        log.info("中文比例:"+percent);
+        int percent = chWNum * 100 / total;
+        log.info("中文比例:" + percent);
         if (percent < 60) {
             //英文太多,不是小说; 不考虑英文小说。
             return false;
@@ -235,7 +243,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
                 }
             }
             int totalKNum = 0;
-            for (String k: textContents) {
+            for (String k : textContents) {
                 int kNum = 0;
                 for (String nk : nKeyWordsList) {
                     if (k.contains(nk)) {
@@ -248,7 +256,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
                     totalKNum += 1;
                 }
             }
-            log.info("文章小说匹配得分为=="+totalKNum);
+            log.info("文章小说匹配得分为==" + totalKNum);
             if (totalKNum >= 5) {
                 return true;
             }
@@ -304,7 +312,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
             int maxCnt = 0;
             int key = 0;
             Set<Map.Entry<Integer, Integer>> entry2 = colorCntMap.entrySet();
-            for(Map.Entry<Integer, Integer> temp : entry2){
+            for (Map.Entry<Integer, Integer> temp : entry2) {
 //                System.out.println("sortedMap:"+temp.getKey()+" 值"+temp.getValue());
                 if (temp.getValue() > maxCnt) {
                     maxCnt = temp.getValue();
@@ -323,7 +331,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
             rgb[0] = (key & 0xff0000) >> 16;
             rgb[1] = (key & 0xff00) >> 8;
             rgb[2] = (key & 0xff);
-            System.out.println("色值为: " + rgb[0] + ", " + rgb[1]+", "+rgb[2]);
+            System.out.println("色值为: " + rgb[0] + ", " + rgb[1] + ", " + rgb[2]);
             //计算比例, 应该不低于50%
             int colorPercent = maxCnt * 100 / totalPixl;
             if (colorPercent < 50) {
@@ -338,11 +346,11 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
             }
             System.out.println("总底色比例=="+colorPercent);
             //计算底色是否是连续分布的
-            int windowSize=50;
+            int windowSize = 50;
             int pureColorBlockCnt = 0;
             int totalBlockCnt = 0;
-            for (int i = minx; i < width - windowSize; i+=windowSize) {
-                for (int j = miny; j < height - windowSize; j+=windowSize) {
+            for (int i = minx; i < width - windowSize; i += windowSize) {
+                for (int j = miny; j < height - windowSize; j += windowSize) {
                     totalBlockCnt++;
                     BufferedImage rect = img.getSubimage(i, j, windowSize, windowSize);
                     if (isPureColor(rect, key)) {
@@ -350,9 +358,9 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
                     }
                 }
             }
-            log.info("pureColorBlockCnt==="+pureColorBlockCnt);
+            log.info("pureColorBlockCnt===" + pureColorBlockCnt);
             int pureColorBlackPercent = pureColorBlockCnt * 100 / totalBlockCnt;
-            log.info("pureColorBlackPercent==="+pureColorBlackPercent);
+            log.info("pureColorBlackPercent===" + pureColorBlackPercent);
             if (colorPercent < 50 && pureColorBlackPercent < 30) {
                 return true;
             }
@@ -367,7 +375,7 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
         int with = img.getWidth();
         int height = img.getHeight();
         boolean hasDifferent = false;
-        for (int i=0;i<with; i++) {
+        for (int i = 0; i < with; i++) {
             for (int y = 0; y < height; y++) {
                 int pixel = img.getRGB(i, y); // 下面三行代码将一个数字转换为RGB数字
                 if (pixel != colorPixel) {

+ 41 - 30
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TimeCalculationServiceImpl.java

@@ -11,6 +11,7 @@ import com.management.platform.util.HttpRespMsg;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.time.LocalDate;
 import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
@@ -58,45 +59,55 @@ public class TimeCalculationServiceImpl extends ServiceImpl<TimeCalculationMappe
     //分页获取今日全部异常信息
     @Override
     public HttpRespMsg getDevianceList(Integer pageIndex, Integer pageSize,
-                                       String userId, Integer actionCode, String date) {
+                                       String userId, Integer actionCode, String date, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        Map<String, Object> resultMap = new HashMap<>();
-        //注意这里目前把代码为0以外的行为全部计作异常 后续可能需要修改
-        resultMap.put("records", timeCalculationMapper
-                .getDevianceList(new Page<>(pageIndex, pageSize), userId, actionCode, date));
-        //返回总数
-        resultMap.put("total", timeCalculationMapper.countDeviance(userId, actionCode, date));
-        httpRespMsg.data = resultMap;
+        try {
+            Map<String, Object> resultMap = new HashMap<>();
+            Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
+            //注意这里目前把代码为0以外的行为全部计作异常 后续可能需要修改
+            resultMap.put("records", timeCalculationMapper
+                    .getDevianceList(new Page<>(pageIndex, pageSize), userId, actionCode, date, companyId));
+            //返回总数
+            resultMap.put("total", timeCalculationMapper.countDeviance(userId, actionCode, date, companyId));
+            httpRespMsg.data = resultMap;
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+        }
         return httpRespMsg;
     }
 
     //获取每日时间统计
     @Override
-    public HttpRespMsg getTimeStatistics(String date) {
+    public HttpRespMsg getTimeStatistics(String date, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        List<Map<String, Object>> resultList = new ArrayList<>();
-        //首先获取某日期有截图的人
-        for (Map<String, Object> userMap : timeCalculationMapper.getTodayStatisticsUser(date)) {
-            //对于每一个人 首先记录下姓名和电话号码
-            Map<String, Object> map = new HashMap<>();
-            map.put("name", userMap.get("name"));
-            map.put("phone", userMap.get("phone"));
-            //然后根据日期和用户id获取到所有的记录 然后手动累加在一起
-            Double[] doubleArray = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
-            for (Map<String, Object> dataMap : timeCalculationMapper
-                    .getTodayStatistics((String) userMap.get("id"), date)) {
-                doubleArray[(int) dataMap.get("type")] += (Double) dataMap.get("duration");
-            }
-            map.put("statistics", doubleArray);
-            //最后是数组的和
-            Double sum = 0.0;
-            for (Double singleNumber : doubleArray) {
-                sum += singleNumber;
+        try {
+            List<Map<String, Object>> resultList = new ArrayList<>();
+            Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
+            //首先获取某日期有截图的人
+            for (Map<String, Object> userMap : timeCalculationMapper.getTodayStatisticsUser(date, companyId)) {
+                //对于每一个人 首先记录下姓名和电话号码
+                Map<String, Object> map = new HashMap<>();
+                map.put("name", userMap.get("name"));
+                map.put("phone", userMap.get("phone"));
+                //然后根据日期和用户id获取到所有的记录 然后手动累加在一起
+                Double[] doubleArray = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
+                for (Map<String, Object> dataMap : timeCalculationMapper
+                        .getTodayStatistics((String) userMap.get("id"), date, companyId)) {
+                    doubleArray[(int) dataMap.get("type")] += (Double) dataMap.get("duration");
+                }
+                map.put("statistics", doubleArray);
+                //最后是数组的和
+                Double sum = 0.0;
+                for (Double singleNumber : doubleArray) {
+                    sum += singleNumber;
+                }
+                map.put("sum", sum);
+                resultList.add(map);
             }
-            map.put("sum", sum);
-            resultList.add(map);
+            httpRespMsg.data = resultList;
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
         }
-        httpRespMsg.data = resultList;
         return httpRespMsg;
     }
 }

+ 129 - 12
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -1,19 +1,26 @@
 package com.management.platform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.management.platform.entity.Company;
 import com.management.platform.entity.User;
+import com.management.platform.mapper.CompanyMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.service.UserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MD5Util;
+import com.management.platform.util.SnowFlake;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
+import java.io.FileInputStream;
+import java.io.IOException;
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -27,6 +34,8 @@ import java.util.Map;
 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
     @Resource
     private UserMapper userMapper;
+    @Resource
+    private CompanyMapper companyMapper;
 
     //管理员登录网页端
     @Override
@@ -80,24 +89,132 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Override
     public HttpRespMsg getEmployeeList(HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        //先不检查身份了
-        String token = request.getHeader("Token");
-        httpRespMsg.data = userMapper.selectList(new QueryWrapper<User>().eq("role", 0));
+        try {
+            //获取本公司除负责人以外全部的信息
+            httpRespMsg.data = userMapper.selectList(new QueryWrapper<User>()
+                    .ne("role", 1)
+                    .eq("company_id", userMapper.selectById(request.getHeader("Token")).getCompanyId()));
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+        }
         return httpRespMsg;
     }
 
     //删除普通用户
     @Override
-    public HttpRespMsg deleteUser(String userId) {
+    public HttpRespMsg deleteUser(String userId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        User user = userMapper.selectById(userId);
-        if (user == null) {
-            httpRespMsg.setError("未找到用户");
-        } else if (user.getRole() != 0) {
-            httpRespMsg.setError("只能删除普通用户");
+        try {
+            //删除用户之前首先要验证权限
+            User requester = userMapper.selectById(request.getHeader("Token"));
+            User target = userMapper.selectById(userId);
+            if (target == null) {
+                httpRespMsg.setError("未找到用户");
+            } else {
+                if (!requester.getCompanyId().equals(target.getRole())) {
+                    httpRespMsg.setError("只能删除同一公司人员的账号");
+                } else if (target.getRole() == 2) {
+                    httpRespMsg.setError("负责人账号不可删除");
+                } else if (target.getRole() == 3 && requester.getRole() != 2) {
+                    httpRespMsg.setError("只有负责人可以删除管理员账号");
+                } else {
+                    userMapper.deleteById(userId);
+                }
+            }
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+        }
+        return httpRespMsg;
+    }
+
+    //编辑密码
+    @Override
+    public HttpRespMsg editPassword(String originPassword, String newPassword, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        try {
+            User requester = userMapper.selectById(request.getHeader("Token"));
+            //检验和之前的密码是否一致
+            if (MD5Util.getPassword(originPassword).equals(requester.getPassword())) {
+                requester.setPassword(MD5Util.getPassword(newPassword));
+                if (userMapper.updateById(requester) == 0) {
+                    httpRespMsg.setError("操作失败");
+                }
+            }
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+        }
+        return httpRespMsg;
+    }
+
+    //新增公司和负责人
+    @Override
+    public HttpRespMsg createCompany(String companyName, String name, String phone) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        //首先检测用户名是否重复
+        if (userMapper.selectList(new QueryWrapper<User>().eq("phone", phone)).size() > 0) {
+            httpRespMsg.setError("电话号码重复");
         } else {
-            userMapper.deleteById(userId);
+            //首先生成一个新公司
+            Company company = new Company().setCompanyName(companyName);
+            companyMapper.insert(company);
+            //然后生成一个负责人
+            Long id = SnowFlake.nextId();
+            User user = new User()
+                    .setId(id.toString())
+                    .setName(name)
+                    .setPassword(MD5Util.getPassword("000000"))
+                    .setPhone(phone)
+                    .setRole(1)
+                    .setCompanyId(company.getId());
+            if (userMapper.insert(user) == 0) {
+                httpRespMsg.setError("操作失败");
+            } else {
+                httpRespMsg.data = user;
+            }
+        }
+        return httpRespMsg;
+    }
+
+    //新增用户
+    @Override
+    public HttpRespMsg insertUser(String name, String phone, Integer role, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        try {
+            User creator = userMapper.selectById(request.getHeader("Token"));
+            //管理员只能新增员工
+            if (creator.getRole() == 2 && role != 0) {
+                httpRespMsg.setError("管理员只能新增普通员工");
+            } else if (role == 3) {
+                httpRespMsg.setError("不可新增负责人");
+            } else {
+                //电话号码列 检测重名
+                if (userMapper.selectList(new QueryWrapper<User>().eq("phone", phone)).size() > 0) {
+                    httpRespMsg.setError("电话号码重复");
+                } else {
+                    Long id = SnowFlake.nextId();
+                    User user = new User()
+                            .setId(id.toString())
+                            .setName(name)
+                            .setPassword(MD5Util.getPassword("000000"))
+                            .setPhone(phone)
+                            .setRole(role)
+                            .setCompanyId(creator.getCompanyId());
+                    if (userMapper.insert(user) == 0) {
+                        httpRespMsg.setError("操作失败");
+                    }
+                }
+            }
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
         }
         return httpRespMsg;
     }
+
+    //导入用户
+    @Override
+    public HttpRespMsg importUser(MultipartFile file, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        httpRespMsg.setError("现在不能导入");
+        return httpRespMsg;
+    }
 }

+ 124 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/SnowFlake.java

@@ -0,0 +1,124 @@
+package com.management.platform.util;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.util.Enumeration;
+
+public class SnowFlake {
+    private final static long twepoch = 12888349746579L;
+    // 机器标识位数
+    private final static long workerIdBits = 5L;
+    // 数据中心标识位数
+    private final static long datacenterIdBits = 5L;
+
+    // 毫秒内自增位数
+    private final static long sequenceBits = 12L;
+    // 机器ID偏左移12位
+    private final static long workerIdShift = sequenceBits;
+    // 数据中心ID左移17位
+    private final static long datacenterIdShift = sequenceBits + workerIdBits;
+    // 时间毫秒左移22位
+    private final static long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
+    //sequence掩码,确保sequnce不会超出上限
+    private final static long sequenceMask = -1L ^ (-1L << sequenceBits);
+    //上次时间戳
+    private static long lastTimestamp = -1L;
+    //序列
+    private long sequence = 0L;
+    //服务器ID
+    private long workerId = 1L;
+    private static long workerMask = -1L ^ (-1L << workerIdBits);
+    //进程编码
+    private long processId = 1L;
+    private static long processMask = -1L ^ (-1L << datacenterIdBits);
+
+    private static SnowFlake snowFlake = null;
+
+    static{
+        snowFlake = new SnowFlake();
+    }
+    public static synchronized long nextId(){
+        return snowFlake.getNextId();
+    }
+
+    private SnowFlake() {
+
+        //获取机器编码
+        this.workerId=this.getMachineNum();
+        //获取进程编码
+        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
+        this.processId=Long.valueOf(runtimeMXBean.getName().split("@")[0]).longValue();
+
+        //避免编码超出最大值
+        this.workerId=workerId & workerMask;
+        this.processId=processId & processMask;
+    }
+
+    public synchronized long getNextId() {
+        //获取时间戳
+        long timestamp = timeGen();
+        //如果时间戳小于上次时间戳则报错
+        if (timestamp < lastTimestamp) {
+            try {
+                throw new Exception("Clock moved backwards.  Refusing to generate id for " + (lastTimestamp - timestamp) + " milliseconds");
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        //如果时间戳与上次时间戳相同
+        if (lastTimestamp == timestamp) {
+            // 当前毫秒内,则+1,与sequenceMask确保sequence不会超出上限
+            sequence = (sequence + 1) & sequenceMask;
+            if (sequence == 0) {
+                // 当前毫秒内计数满了,则等待下一秒
+                timestamp = tilNextMillis(lastTimestamp);
+            }
+        } else {
+            sequence = 0;
+        }
+        lastTimestamp = timestamp;
+        // ID偏移组合生成最终的ID,并返回ID
+        long nextId = ((timestamp - twepoch) << timestampLeftShift) | (processId << datacenterIdShift) | (workerId << workerIdShift) | sequence;
+        return nextId;
+    }
+
+    /**
+     * 再次获取时间戳直到获取的时间戳与现有的不同
+     * @param lastTimestamp
+     * @return 下一个时间戳
+     */
+    private long tilNextMillis(final long lastTimestamp) {
+        long timestamp = this.timeGen();
+        while (timestamp <= lastTimestamp) {
+            timestamp = this.timeGen();
+        }
+        return timestamp;
+    }
+
+    private long timeGen() {
+        return System.currentTimeMillis();
+    }
+
+    /**
+     * 获取机器编码
+     * @return
+     */
+    private long getMachineNum(){
+        long machinePiece;
+        StringBuilder sb = new StringBuilder();
+        Enumeration<NetworkInterface> e = null;
+        try {
+            e = NetworkInterface.getNetworkInterfaces();
+        } catch (SocketException e1) {
+            e1.printStackTrace();
+        }
+        while (e.hasMoreElements()) {
+            NetworkInterface ni = e.nextElement();
+            sb.append(ni.toString());
+        }
+        machinePiece = sb.toString().hashCode();
+        return machinePiece;
+    }
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/CompanyMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.CompanyMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.Company">
+        <id column="id" property="id" />
+        <result column="company_name" property="companyName" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, company_name
+    </sql>
+
+</mapper>

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

@@ -6,11 +6,12 @@
     <resultMap id="BaseResultMap" type="com.management.platform.entity.Project">
         <id column="id" property="id" />
         <result column="project_name" property="projectName" />
+        <result column="company_id" property="companyId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, project_name
+        id, project_name, company_id
     </sql>
 
 </mapper>

+ 9 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -23,9 +23,9 @@
         SELECT b.project_name AS project, a.working_time AS time, a.content
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
-        WHERE 1=1 AND
+        WHERE 1=1
         <if test="date != null and date != ''">
-            a.create_date=#{date}
+            AND a.create_date=#{date}
         </if>
         AND a.creator_id=#{id}
         ORDER BY a.project_id ASC
@@ -33,12 +33,15 @@
 
     <!--根据日期获取报告上传人-->
     <select id="getReportNameByDate" resultType="java.util.Map">
-        SELECT DISTINCT c.id, c.name
+        SELECT DISTINCT b.id, b.name
         FROM report AS a
-        JOIN user AS c ON a.creator_id=c.id
-        WHERE 1=1 AND
+        JOIN user AS b ON a.creator_id=b.id
+        WHERE 1=1
         <if test="date != null and date != ''">
-            a.create_date=#{date}
+            AND a.create_date=#{date}
+        </if>
+        <if test="companyId != null and companyId != ''">
+            AND b.company_id=#{companyId}
         </if>
     </select>
 

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ScreenshotMapper.xml

@@ -32,6 +32,10 @@
         ON a.uid = b.uid AND a.indate = b.max_indate
         LEFT JOIN USER AS c
         ON a.uid = c.id
+        WHERE 1=1
+        <if test="companyId != null and companyId != ''">
+            AND c.company_id=#{companyId}
+        </if>
     </select>
 
 </mapper>

+ 9 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeCalculationMapper.xml

@@ -24,6 +24,9 @@
         FROM time_calculation AS a
         LEFT JOIN user AS b ON a.user_id = b.id
         WHERE 1=1
+        <if test="companyId != null and companyId != ''">
+            AND b.company_id=#{companyId}
+        </if>
         <if test="userId != null and userId != ''">
             AND a.user_id = #{userId}
         </if>
@@ -44,6 +47,9 @@
         FROM time_calculation AS a
         LEFT JOIN user AS b ON a.user_id = b.id
         WHERE 1=1
+        <if test="companyId != null and companyId != ''">
+            AND b.company_id=#{companyId}
+        </if>
         <if test="userId != null and userId != ''">
             AND a.user_id = #{userId}
         </if>
@@ -65,6 +71,9 @@
         LEFT JOIN user AS b
         ON a.user_id = b.id
         WHERE 1=1
+        <if test="companyId != null and companyId != ''">
+            AND b.company_id=#{companyId}
+        </if>
         <if test="date != null and date != ''">
             AND a.date = #{date}
         </if>

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

@@ -11,11 +11,12 @@
         <result column="portrait_url" property="portraitUrl" />
         <result column="create_time" property="createTime" />
         <result column="role" property="role" />
+        <result column="company_id" property="companyId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, name, phone, password, portrait_url, create_time, role
+        id, name, phone, password, portrait_url, create_time, role, company_id
     </sql>
 
 </mapper>

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/desktop/index.vue

@@ -13,7 +13,7 @@
       <el-col :span="6" v-for="(item, index) in desktopList" :key="index" class="one_div">
         <el-card :body-style="{ padding: '0px' }" shadow="hover" class="one_card">
           <div class="one_card_img">
-            <el-image :src="this.pic_url" class="image" lazy>
+            <el-image :src="item.pic_url" class="image" lazy>
               <div slot="error" class="image-slot">
                 <el-image :src="require('../../assets/image/noPic.png')" class="image" lazy></el-image>
               </div>