Sfoglia il codice sorgente

已通过的报告无法再次修改、获取未审核列表、审核通过、审核未通过、撤销通过

Reiskuchen 5 anni fa
parent
commit
e52fbdedcc

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

@@ -6,7 +6,6 @@ import com.management.platform.service.ReportService;
 import com.management.platform.util.HttpRespMsg;
 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;
 
@@ -41,6 +40,10 @@ public class ReportController {
         return reportService.getReportList(date, request);
     }
 
+    /**
+     * 导出报告
+     * date 日期 格式yyyy-mm-dd
+     */
     @RequestMapping("/exportReport")
     public HttpRespMsg exportReport(@RequestParam String date) {
         return reportService.exportReport(date, request);
@@ -77,6 +80,7 @@ public class ReportController {
                         .setContent(content[i])
                         .setCreateDate(LocalDate.parse(createDate[i], DateTimeFormatter.ofPattern("yyyy-MM-dd")))
                         .setCreatorId(request.getHeader("Token")));
+                /*后续需要加入状态*/
                 if (createDate[i] == null || projectId[i] == null) {
                     HttpRespMsg httpRespMsg = new HttpRespMsg();
                     httpRespMsg.setError("缺少数据");
@@ -99,5 +103,31 @@ public class ReportController {
     public HttpRespMsg deleteReport(@RequestParam Integer id) {
         return reportService.deleteReport(id);
     }
+
+    /**
+     * 获取所有未审批通过的报告
+     */
+    @RequestMapping("/uncensoredList")
+    public HttpRespMsg getUncensoredList(HttpServletRequest request) {
+        return reportService.getUncensoredList(request);
+    }
+
+    /**
+     * 审批通过报告
+     * id 要通过的报告的id
+     */
+    @RequestMapping("/approve")
+    public HttpRespMsg approveReport(Integer id, HttpServletRequest request) {
+        return reportService.approveReport(id, request);
+    }
+
+    /**
+     * 审批未通过报告 撤销通过报告
+     * id 要未通过的报告的id
+     */
+    @RequestMapping("/deny")
+    public HttpRespMsg denyReport(Integer id, HttpServletRequest request) {
+        return reportService.denyReport(id, request);
+    }
 }
 

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java

@@ -22,4 +22,6 @@ 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, @Param("companyId") Integer companyId);
+
+    List<Map<String, Object>> getUncensoredList(@Param("companyId") Integer companyId);
 }

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

@@ -25,4 +25,10 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg editReport(List<Report> reportList);
 
     HttpRespMsg deleteReport(Integer reportId);
+
+    HttpRespMsg getUncensoredList(HttpServletRequest request);
+
+    HttpRespMsg approveReport(Integer id, HttpServletRequest request);
+
+    HttpRespMsg denyReport(Integer id, HttpServletRequest request);
 }

+ 62 - 10
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -1,31 +1,27 @@
 package com.management.platform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
 import com.management.platform.service.ReportService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.management.platform.service.TimeCalculationService;
 import com.management.platform.util.HttpRespMsg;
 import org.apache.poi.hssf.usermodel.*;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.sql.Timestamp;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeParseException;
 import java.util.*;
 
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-
 /**
  * <p>
  * 服务实现类
@@ -90,7 +86,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     calculateTime += show.getDuration();
                 }
                 //数据库是秒,时间转换为小时;
-                double d = calculateTime*1.0/3600;
+                double d = calculateTime * 1.0 / 3600;
                 map.put("calculateTime", df.format(d));
             }
 
@@ -235,8 +231,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     httpRespMsg.setError("操作失败");
                 }
             } else {
-                if (reportMapper.updateById(report) == 0) {
-                    httpRespMsg.setError("操作失败");
+                if (reportMapper.selectById(report.getId()).getState() != 1) {
+                    if (reportMapper.updateById(report) == 0) {
+                        httpRespMsg.setError("操作失败");
+                    }
                 }
             }
         }
@@ -252,4 +250,58 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         }
         return httpRespMsg;
     }
+
+    //获取未经审核的报告列表
+    @Override
+    public HttpRespMsg getUncensoredList(HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        try {
+            Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
+            httpRespMsg.data = reportMapper.getUncensoredList(companyId);
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+            return httpRespMsg;
+        }
+        return httpRespMsg;
+    }
+
+    //审核通过
+    @Override
+    public HttpRespMsg approveReport(Integer id, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        try {
+            User user = userMapper.selectById(request.getHeader("Token"));
+            Report report = reportMapper.selectById(id);
+            Project project = projectMapper.selectById(report.getProjectId());
+            if (user.getRole() == 0 || !project.getCompanyId().equals(user.getCompanyId())) {
+                httpRespMsg.setError("无修改权限");
+            } else {
+                reportMapper.updateById(report.setState(1));
+            }
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+            return httpRespMsg;
+        }
+        return httpRespMsg;
+    }
+
+    //审核未通过 以及 撤销审核
+    @Override
+    public HttpRespMsg denyReport(Integer id, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        try {
+            User user = userMapper.selectById(request.getHeader("Token"));
+            Report report = reportMapper.selectById(id);
+            Project project = projectMapper.selectById(report.getProjectId());
+            if (user.getRole() == 0 || !project.getCompanyId().equals(user.getCompanyId())) {
+                httpRespMsg.setError("无修改权限");
+            } else {
+                reportMapper.updateById(report.setState(2));
+            }
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+            return httpRespMsg;
+        }
+        return httpRespMsg;
+    }
 }

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

@@ -59,4 +59,14 @@
         </if>
     </select>
 
+    <!--获取未经审核的报告列表-->
+    <select id="getUncensoredList" resultType="java.util.Map">
+        SELECT a.id, b.name AS user, c.project_name AS project, a.create_date AS date, a.working_time AS time, a.content
+        FROM report AS a
+        LEFT JOIN user AS b ON a.creator_id=b.id
+        JOIN project AS c ON a.project_id = c.id
+        WHERE c.company_id = #{companyId}
+        AND a.state IN (0,2)
+    </select>
+
 </mapper>