فهرست منبع

工时报告模块 组织架构处理

yurk 2 سال پیش
والد
کامیت
88d7dd3d9b
12فایلهای تغییر یافته به همراه215 افزوده شده و 11 حذف شده
  1. 6 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  2. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ThirdPartyInterfaceController.java
  3. 46 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ThirdPartyInterface.java
  4. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ThirdPartyInterfaceMapper.java
  5. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  6. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ThirdPartyInterfaceService.java
  7. 27 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java
  8. 42 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  9. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ThirdPartyInterfaceServiceImpl.java
  10. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  11. 17 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ThirdPartyInterfaceMapper.xml
  12. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/UserMapper.xml

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

@@ -16,6 +16,7 @@ import com.management.platform.service.UserService;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.WorkDayCalculateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
@@ -1180,5 +1181,10 @@ public class ReportController {
     public HttpRespMsg getlastWeekFillTime(String userId) {
         return reportService.getlastWeekFillTime(userId);
     }
+
+    @GetMapping("/getReportListByToken")
+    public HttpRespMsg getReportListByToken(@RequestParam String token, @RequestParam String startDate, @RequestParam String endDate){
+        return reportService.getReportListByToken(token,startDate,endDate);
+    }
 }
 

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ThirdPartyInterfaceController.java

@@ -0,0 +1,20 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-04
+ */
+@RestController
+@RequestMapping("/third-party-interface")
+public class ThirdPartyInterfaceController {
+
+}
+

+ 46 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ThirdPartyInterface.java

@@ -0,0 +1,46 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ThirdPartyInterface extends Model<ThirdPartyInterface> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("comapny_id")
+    private Integer comapnyId;
+
+    @TableField("token")
+    private String token;
+
+    /**
+     * token过期时间
+     */
+    @TableField("expire_time")
+    private LocalDateTime expireTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.comapnyId;
+    }
+
+}

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

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.ThirdPartyInterface;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-04
+ */
+public interface ThirdPartyInterfaceMapper extends BaseMapper<ThirdPartyInterface> {
+
+}

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

@@ -86,4 +86,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg approveAllImport(HttpServletRequest request);
 
     HttpRespMsg denyHisReport(Integer hisId, String reason, HttpServletRequest request);
+
+    HttpRespMsg getReportListByToken(String token, String startDate, String endDate);
 }

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

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.ThirdPartyInterface;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-04
+ */
+public interface ThirdPartyInterfaceService extends IService<ThirdPartyInterface> {
+
+}

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

@@ -2,9 +2,7 @@ package com.management.platform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.management.platform.entity.AuditWorkflowTimeSetting;
-import com.management.platform.entity.Department;
-import com.management.platform.entity.User;
+import com.management.platform.entity.*;
 import com.management.platform.entity.vo.DepartmentMasterVO;
 import com.management.platform.entity.vo.DepartmentVO;
 import com.management.platform.entity.vo.SysRichFunction;
@@ -50,6 +48,12 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
     private ParticipationMapper participationMapper;
     @Resource
     private AuditWorkflowTimeSettingMapper auditWorkflowTimeSettingMapper;
+    @Resource
+    private ReportMapper reportMapper;
+    @Resource
+    private LeaveSheetMapper leaveSheetMapper;
+    @Resource
+    private AuditWorkflowSetting auditWorkflowSetting;
     //新增部门
     @Override
     public HttpRespMsg insertDepartment(String departmentName, Integer superiorId, String managerId, String reportAuditUserid,  HttpServletRequest request) {
@@ -178,6 +182,26 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                             .eq("manage_dept_id", departmentId));
                 }
             }
+            Integer reportCut = reportMapper.selectCount(new QueryWrapper<Report>().eq("dept_id", departmentId));
+            if(reportCut>0){
+                httpRespMsg.setError("当前部门已被日报数据使用");
+                return httpRespMsg;
+            }
+            Integer auditDeptidCut = leaveSheetMapper.selectCount(new QueryWrapper<LeaveSheet>().eq("audit_deptid", departmentId));
+            if(auditDeptidCut>0){
+                httpRespMsg.setError("当前部门已被请假数据使用");
+                return httpRespMsg;
+            }
+            Integer auditWorkflowTimeSettingCut = auditWorkflowTimeSettingMapper.selectCount(new QueryWrapper<AuditWorkflowTimeSetting>().eq("audit_dept_id", departmentId));
+            if(auditWorkflowTimeSettingCut>0){
+                httpRespMsg.setError("当前部门已被工时审批流数据使用");
+                return httpRespMsg;
+            }
+            Integer auditWorkflowSettingCut = auditWorkflowSetting.selectCount(new QueryWrapper<AuditWorkflowSetting>().eq("audit_dept_id", departmentId));
+            if(auditWorkflowSettingCut>0){
+                httpRespMsg.setError("当前部门已被请假出差审批流数据使用");
+                return httpRespMsg;
+            }
         } catch (NullPointerException e) {
             httpRespMsg.setError("验证失败");
             return httpRespMsg;

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

@@ -156,6 +156,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     private GroupParticipatorMapper groupParticipatorMapper;
     @Resource
     private ReportLogMapper reportLogMapper;
+    @Resource
+    private ThirdPartyInterfaceMapper thirdPartyInterfaceMapper;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -1656,11 +1658,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             user.put("id", u.getId());
             user.put("name", u.getName());
             user.put("departmentId", u.getDepartmentId());
+            List<Map<String, Object>> mapList = reportNameByDate.stream().filter(r -> r.get("id").equals(u.getId())).collect(Collectors.toList());
             Optional<Map<String, Object>> first = reportNameByDate.stream().filter(r -> r.get("id").equals(u.getId())).findFirst();
-            
-            if (first.isPresent()) {
-                user.put("state", first.get().get("state"));
-                user.put("workingTime", first.get().get("workingTime"));
+            BigDecimal bigDecimal=new BigDecimal(0);
+            for (Map<String, Object> map : mapList) {
+                bigDecimal=bigDecimal.add(BigDecimal.valueOf((Double) map.get("workingTime")));
+            }
+            boolean b = reportNameByDate.stream().anyMatch(r -> r.get("state").equals(1));
+            if (b) {
+                user.put("state",1);
+                user.put("workingTime",bigDecimal);
+            }
+            if(first.isPresent()&&!b){
+                user.put("state",first.get().get("state"));
+                user.put("workingTime",bigDecimal);
             }
             userMapList.add(user);
         }
@@ -2270,6 +2281,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             //管理员看全公司所有人
             allRangeUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
         }
+        List<User> needRangeUserList=new ArrayList<>();
+        for (User u : allRangeUserList) {
+            if(u.getInactiveDate()==null||(u.getInactiveDate()!=null&&u.getInactiveDate().isAfter(LocalDate.parse(startDate))||u.getIsActive()==1)){
+                needRangeUserList.add(u);
+            }
+        }
         List<UserMonthWork> userMonthWorks = new ArrayList<UserMonthWork>();
         //准备部门数据
         List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
@@ -2308,7 +2325,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 
         LocalDateTime c=LocalDateTime.now();
         //计算未填的人员
-        List<User> noReportUserList = allRangeUserList.stream()
+        List<User> noReportUserList = needRangeUserList.stream()
                 .filter(au->!userMonthWorks.stream().anyMatch(mon->mon.userId.equals(au.getId())))
                 .collect(Collectors.toList());
 
@@ -3485,4 +3502,24 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return httpRespMsg;
     }
 
+    @Override
+    public HttpRespMsg getReportListByToken(String token, String startDate, String endDate) {
+        HttpRespMsg msg=new HttpRespMsg();
+        List<ThirdPartyInterface> thirdPartyInterfaceList = thirdPartyInterfaceMapper.selectList(new QueryWrapper<ThirdPartyInterface>().eq("token", token));
+        if(thirdPartyInterfaceList.size()==0){
+            msg.setError("token错误");
+        }
+        for (ThirdPartyInterface thirdPartyInterface : thirdPartyInterfaceList){
+            if(LocalDateTime.now().isAfter(thirdPartyInterface.getExpireTime())){
+                msg.setError("token过期失效");
+                return msg;
+            }
+            if(token.equals(thirdPartyInterface.getToken())){
+                List<HashMap<String, Object>> allReportByDate = reportMapper.getAllReportByDate(startDate,thirdPartyInterface.getComapnyId(), null, endDate, null, null, null);
+                msg.data=allReportByDate;
+            }
+        }
+        return msg;
+    }
+
 }

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

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.ThirdPartyInterface;
+import com.management.platform.mapper.ThirdPartyInterfaceMapper;
+import com.management.platform.service.ThirdPartyInterfaceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-04
+ */
+@Service
+public class ThirdPartyInterfaceServiceImpl extends ServiceImpl<ThirdPartyInterfaceMapper, ThirdPartyInterface> implements ThirdPartyInterfaceService {
+
+}

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

@@ -388,7 +388,7 @@
         <if test="leaderId != null and leaderId != ''">
             AND (a.project_auditor_id = #{leaderId} or project.incharger_id = #{leaderId})
         </if>
-        group by a.creator_id
+        group by a.creator_id,a.id
     </select>
 
     <!--根据日期,部门,指定人员获取报告上传人-->

+ 17 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ThirdPartyInterfaceMapper.xml

@@ -0,0 +1,17 @@
+<?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.ThirdPartyInterfaceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.ThirdPartyInterface">
+        <id column="comapny_id" property="comapnyId" />
+        <result column="token" property="token" />
+        <result column="expire_time" property="expireTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        comapny_id, token, expire_time
+    </sql>
+
+</mapper>

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

@@ -52,7 +52,7 @@
     <select id="getUserByDepartment" resultType="java.util.Map">
         SELECT a.id, a.role_id as roleId, a.role_name as roleName, a.name, a.phone, a.portrait_url AS portraitUrl, a.role, a.company_id AS companyId, a.cost,
         a.department_id AS departmentId, b.department_name AS departmentName, a.department_cascade AS departmentCascade,
-        a.month_cost as monthCost, a.salary_type as salaryType, a.is_active as isActive, a.cost_apply_date as costApplyDate,a.plate1,a.plate2,a.plate3,a.plate4,a.plate5
+        a.month_cost as monthCost, a.salary_type as salaryType, a.is_active as isActive,date_format(a.`inactive_date`, '%Y-%m-%d') AS inactiveDate, a.cost_apply_date as costApplyDate,a.plate1,a.plate2,a.plate3,a.plate4,a.plate5
         FROM user AS a
         LEFT JOIN department AS b ON a.department_id = b.department_id
         WHERE a.company_id = #{companyId}
@@ -74,7 +74,7 @@
     <select id="getUserByDepartmentList" resultType="java.util.Map">
         SELECT a.id,  a.role_id as roleId, a.role_name as roleName,  a.name, a.phone, a.portrait_url AS portraitUrl, a.role, a.company_id AS companyId, a.cost,
         a.department_id AS departmentId, b.department_name AS departmentName, a.department_cascade AS departmentCascade,
-        a.month_cost as monthCost, a.salary_type as salaryType, a.is_active as isActive, a.cost_apply_date as costApplyDate,a.plate1,a.plate2,a.plate3,a.plate4,a.plate5
+        a.month_cost as monthCost, a.salary_type as salaryType, a.is_active as isActive,date_format(a.`inactive_date`, '%Y-%m-%d') AS inactiveDate, a.cost_apply_date as costApplyDate,a.plate1,a.plate2,a.plate3,a.plate4,a.plate5
         FROM user AS a
         LEFT JOIN department AS b ON a.department_id = b.department_id
         WHERE a.company_id = #{companyId} AND a.department_id IN