Ver Fonte

质量报告

372237882@qq.com há 3 anos atrás
pai
commit
41e785292f

+ 123 - 56
server/src/main/java/edp/davinci/controller/QualityTaskController.java

@@ -8,12 +8,12 @@ import edp.davinci.core.enums.CronJobStatusEnum;
 import edp.davinci.dto.cronJobDto.CronJobBaseInfo;
 import edp.davinci.dto.cronJobDto.CronJobInfo;
 import edp.davinci.dto.qualityAuditor.QualityAuditorDto;
+import edp.davinci.dto.sourceDto.SourceDetail;
+import edp.davinci.dto.viewDto.ViewBaseInfo;
 import edp.davinci.model.QualityAuditor;
 import edp.davinci.model.QualityTask;
 import edp.davinci.model.User;
-import edp.davinci.service.CronJobService;
-import edp.davinci.service.QualityAuditorService;
-import edp.davinci.service.QualityTaskService;
+import edp.davinci.service.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
@@ -21,6 +21,7 @@ import io.swagger.annotations.ApiResponses;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.validation.BindingResult;
@@ -31,6 +32,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Api(value = "/qualityTask", tags = "qualityTask", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@@ -38,8 +40,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping(value = Constants.BASE_API_PATH + "/qualityTask", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
-public class QualityTaskController extends BaseController
-{
+public class QualityTaskController extends BaseController {
     @Autowired
     private QualityTaskService qualityTaskService;
 
@@ -49,6 +50,12 @@ public class QualityTaskController extends BaseController
     @Autowired
     private CronJobService cronJobService;
 
+    @Autowired
+    private ViewService viewService;
+
+    @Autowired
+    private SourceService sourceService;
+
     /**
      * 获取 质量任务
      *
@@ -59,8 +66,7 @@ public class QualityTaskController extends BaseController
     @ApiOperation(value = "get qualityTask")
     @GetMapping(value = "/getQualityTask")
     public ResponseEntity getQualityTask(@ApiIgnore @CurrentUser User user,
-                                         HttpServletRequest request)
-    {
+                                         HttpServletRequest request) {
 
         List<QualityTask> qualityTasks = qualityTaskService.getQualityTask();
         return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payloads(qualityTasks));
@@ -80,11 +86,9 @@ public class QualityTaskController extends BaseController
     public ResponseEntity createQualityTask(@Valid @RequestBody QualityTask qualityTask,
                                             @ApiIgnore BindingResult bindingResult,
                                             @ApiIgnore @CurrentUser User user,
-                                            HttpServletRequest request)
-    {
+                                            HttpServletRequest request) {
 
-        if (bindingResult.hasErrors())
-        {
+        if (bindingResult.hasErrors()) {
             ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage());
             return ResponseEntity.status(resultMap.getCode()).body(resultMap);
         }
@@ -110,18 +114,15 @@ public class QualityTaskController extends BaseController
                                             @Valid @RequestBody QualityTask qualityTask,
                                             @ApiIgnore BindingResult bindingResult,
                                             @ApiIgnore @CurrentUser User user,
-                                            HttpServletRequest request)
-    {
+                                            HttpServletRequest request) {
 
 
-        if (invalidId(id) || !id.equals(qualityTask.getId()))
-        {
+        if (invalidId(id) || !id.equals(qualityTask.getId())) {
             ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message("Invalid dataSubject id");
             return ResponseEntity.status(resultMap.getCode()).body(resultMap);
         }
 
-        if (bindingResult.hasErrors())
-        {
+        if (bindingResult.hasErrors()) {
             ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage());
             return ResponseEntity.status(resultMap.getCode()).body(resultMap);
         }
@@ -143,10 +144,8 @@ public class QualityTaskController extends BaseController
     @DeleteMapping("/deleteQualityTask/{id}")
     public ResponseEntity deleteQualityTask(@PathVariable Long id,
                                             @ApiIgnore @CurrentUser User user,
-                                            HttpServletRequest request)
-    {
-        if (invalidId(id))
-        {
+                                            HttpServletRequest request) {
+        if (invalidId(id)) {
             ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message("Invalid dataSubject id");
             return ResponseEntity.status(resultMap.getCode()).body(resultMap);
         }
@@ -165,8 +164,7 @@ public class QualityTaskController extends BaseController
      */
     @ApiOperation(value = "auditor")
     @PutMapping(value = "/auditor/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
-    public ResponseEntity auditor(@PathVariable Long id, HttpServletRequest request)
-    {
+    public ResponseEntity auditor(@PathVariable Long id, HttpServletRequest request) {
         // 1. 根据任务id,查询质量任务
         qualityTaskService.auditor(id);
         // 2.
@@ -183,18 +181,16 @@ public class QualityTaskController extends BaseController
      */
     @ApiOperation(value = "setDispatch")
     @PutMapping(value = "/setDispatch/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
-    public ResponseEntity setDispatch(@PathVariable Long id,@RequestBody CronJobInfo cronJob, @ApiIgnore BindingResult bindingResult, @ApiIgnore @CurrentUser User user, HttpServletRequest request)
-    {
+    public ResponseEntity setDispatch(@PathVariable Long id, @RequestBody CronJobInfo cronJob, @ApiIgnore BindingResult bindingResult, @ApiIgnore @CurrentUser User user, HttpServletRequest request) {
         // 1. 保存任务
-        if (bindingResult.hasErrors())
-        {
+        if (bindingResult.hasErrors()) {
             ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage());
             return ResponseEntity.status(resultMap.getCode()).body(resultMap);
         }
         cronJob.setConfig("{}");
         CronJobInfo jobInfo = cronJobService.createCronJob(cronJob, user);
 
-         // 2. 更新定时规则id到任务中
+        // 2. 更新定时规则id到任务中
         QualityTask qualityTask = new QualityTask();
         qualityTask.setId(id);
         qualityTask.setCronJobId(jobInfo.getId());
@@ -202,14 +198,13 @@ public class QualityTaskController extends BaseController
 
 
         // 3. 执行
-        if(cronJob.getJobStatus().equals(CronJobStatusEnum.START)){ // 启动 激活
-           // cronJobService.executeCronJob()
-            cronJobService.startCronJob(jobInfo.getId(),user);
+        if (cronJob.getJobStatus().equals(CronJobStatusEnum.START)) { // 启动 激活
+            // cronJobService.executeCronJob()
+            cronJobService.startCronJob(jobInfo.getId(), user);
         }
         return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request));
     }
 
-
     /**
      * 质量报告
      *
@@ -219,37 +214,110 @@ public class QualityTaskController extends BaseController
      */
     @ApiOperation(value = "get qualityReport")
     @GetMapping(value = "/qualityReport")
-    public ResponseEntity qualityReport(@ApiIgnore @CurrentUser User user,
-                                        HttpServletRequest request)
-    {
+    public ResponseEntity qualityReport(@RequestParam(value = "sourceId", required = true) Long sourceId, @RequestParam(value = "time", required = true) String time, @ApiIgnore @CurrentUser User user,
+                                        HttpServletRequest request) {
         List<QualityAuditorDto> qualityAuditorDtoList = new ArrayList<QualityAuditorDto>();
 
-        List<QualityAuditor> qualityAuditors = qualityAuditorService.getQualityAuditors();
+        List<QualityAuditor> allQualityAuditors = new ArrayList<QualityAuditor>();
+        // 根据source 获取 view
+        List<ViewBaseInfo> viewBaseInfos = viewService.getViewBaseInfoByOnlyParentId(sourceId);
+        for (ViewBaseInfo viewBaseInfo : viewBaseInfos) {
+            List<QualityAuditor> qualityAuditors = qualityAuditorService.getQualityAuditorsByViewId(viewBaseInfo.getId(), time);
+            allQualityAuditors.addAll(qualityAuditors);
+        }
 
-        for(QualityAuditor qualityAuditor : qualityAuditors){
+        for (QualityAuditor qualityAuditor : allQualityAuditors) {
             QualityAuditorDto qualityAuditorDto = new QualityAuditorDto();
-            BeanUtils.copyProperties(qualityAuditor,qualityAuditorDto);
+            BeanUtils.copyProperties(qualityAuditor, qualityAuditorDto);
             DecimalFormat df = new DecimalFormat("0.00");//格式化小数
 
-            String integrityCorrectProbability = df.format((float)qualityAuditor.getIntegrityCorrect()/(qualityAuditor.getIntegrityCorrect()+ qualityAuditor.getIntegrityError()));//返回的是String类型
-            qualityAuditorDto.setIntegrityCorrectProbability(integrityCorrectProbability);
-            String integrityErrorProbability = df.format((float)qualityAuditor.getIntegrityError()/(qualityAuditor.getIntegrityCorrect()+ qualityAuditor.getIntegrityError()));//返回的是String类型
-            qualityAuditorDto.setIntegrityErrorProbability(integrityErrorProbability);
+            if (null != qualityAuditor.getIntegrityCorrect() && null != qualityAuditor.getIntegrityError()) {
+                // 完整性
+                String integrityCorrectProbability = df.format((float) qualityAuditor.getIntegrityCorrect() / (qualityAuditor.getIntegrityCorrect() + qualityAuditor.getIntegrityError()));//返回的是String类型
+                qualityAuditorDto.setIntegrityCorrectProbability(integrityCorrectProbability);
+                String integrityErrorProbability = df.format((float) qualityAuditor.getIntegrityError() / (qualityAuditor.getIntegrityCorrect() + qualityAuditor.getIntegrityError()));//返回的是String类型
+                qualityAuditorDto.setIntegrityErrorProbability(integrityErrorProbability);
+            }
+
+            if (null != qualityAuditor.getUniformityCorrect() && null != qualityAuditor.getUniformityError()) {
+                // 一致性
+                String uniformityCorrectProbability = df.format((float) qualityAuditor.getUniformityCorrect() / (qualityAuditor.getUniformityCorrect() + qualityAuditor.getUniformityError()));//返回的是String类型
+                qualityAuditorDto.setUniformityCorrectProbability(uniformityCorrectProbability);
+                String uniformityErrorProbability = df.format((float) qualityAuditor.getUniformityError() / (qualityAuditor.getUniformityCorrect() + qualityAuditor.getUniformityError()));//返回的是String类型
+                qualityAuditorDto.setUniformityErrorProbability(uniformityErrorProbability);
+            }
+
+            if (null != qualityAuditor.getNormativeCorrect() && null != qualityAuditor.getNormativeError()) {
+                // 规范性
+                String normativeCorrectProbability = df.format((float) qualityAuditor.getNormativeCorrect() / (qualityAuditor.getNormativeCorrect() + qualityAuditor.getNormativeError()));//返回的是String类型
+                qualityAuditorDto.setNormativeCorrectProbability(normativeCorrectProbability);
+                String normativeErrorProbability = df.format((float) qualityAuditor.getNormativeError() / (qualityAuditor.getNormativeError() + qualityAuditor.getNormativeError()));//返回的是String类型
+                qualityAuditorDto.setNormativeErrorProbability(normativeErrorProbability);
+            }
+            if (null != qualityAuditor.getAccuracyCorrect() && null != qualityAuditor.getAccuracyError()) {
+                // 准确定
+                String accuracyCorrectProbability = df.format((float) qualityAuditor.getAccuracyCorrect() / (qualityAuditor.getAccuracyCorrect() + qualityAuditor.getAccuracyError()));//返回的是String类型
+                qualityAuditorDto.setAccuracyCorrectProbability(accuracyCorrectProbability);
+                String accuracyErrorProbability = df.format((float) qualityAuditor.getAccuracyError() / (qualityAuditor.getAccuracyCorrect() + qualityAuditor.getAccuracyError()));//返回的是String类型
+                qualityAuditorDto.setAccuracyErrorProbability(accuracyErrorProbability);
+            }
+
+            qualityAuditorDtoList.add(qualityAuditorDto);
+        }
+
+        return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payloads(qualityAuditorDtoList));
+    }
+
+    /**
+     * 质量报告详情
+     *
+     * @param user
+     * @param request
+     * @return
+     */
+    @ApiOperation(value = "get qualityReportDetail")
+    @GetMapping(value = "/qualityReportDetail/{id}")
+    public ResponseEntity qualityReportDetail(@PathVariable Long id, @ApiIgnore @CurrentUser User user,
+                                              HttpServletRequest request) {
+        List<QualityAuditorDto> qualityAuditorDtoList = new ArrayList<QualityAuditorDto>();
 
-            String uniformityCorrectProbability = df.format((float)qualityAuditor.getUniformityCorrect()/(qualityAuditor.getUniformityCorrect()+ qualityAuditor.getUniformityError()));//返回的是String类型
-            qualityAuditorDto.setUniformityCorrectProbability(uniformityCorrectProbability);
-            String uniformityErrorProbability = df.format((float)qualityAuditor.getUniformityError()/(qualityAuditor.getUniformityCorrect()+ qualityAuditor.getUniformityError()));//返回的是String类型
-            qualityAuditorDto.setUniformityErrorProbability(uniformityErrorProbability);
+        List<QualityAuditor> qualityAuditors = qualityAuditorService.getQualityAuditors();
 
-            String normativeCorrectProbability = df.format((float)qualityAuditor.getNormativeCorrect()/(qualityAuditor.getNormativeCorrect()+ qualityAuditor.getNormativeError()));//返回的是String类型
-            qualityAuditorDto.setNormativeCorrectProbability(normativeCorrectProbability);
-            String normativeErrorProbability = df.format((float)qualityAuditor.getNormativeError()/(qualityAuditor.getNormativeError()+ qualityAuditor.getNormativeError()));//返回的是String类型
-            qualityAuditorDto.setNormativeErrorProbability(normativeErrorProbability);
+        for (QualityAuditor qualityAuditor : qualityAuditors) {
+            QualityAuditorDto qualityAuditorDto = new QualityAuditorDto();
+            BeanUtils.copyProperties(qualityAuditor, qualityAuditorDto);
+            DecimalFormat df = new DecimalFormat("0.00");//格式化小数
 
-            String accuracyCorrectProbability = df.format((float)qualityAuditor.getAccuracyCorrect()/(qualityAuditor.getAccuracyCorrect()+ qualityAuditor.getAccuracyError()));//返回的是String类型
-            qualityAuditorDto.setAccuracyCorrectProbability(accuracyCorrectProbability);
-            String accuracyErrorProbability = df.format((float)qualityAuditor.getAccuracyError()/(qualityAuditor.getAccuracyCorrect()+ qualityAuditor.getAccuracyError()));//返回的是String类型
-            qualityAuditorDto.setAccuracyErrorProbability(accuracyErrorProbability);
+            if (null != qualityAuditor.getIntegrityCorrect() && null != qualityAuditor.getIntegrityError()) {
+                // 完整性
+                String integrityCorrectProbability = df.format((float) qualityAuditor.getIntegrityCorrect() / (qualityAuditor.getIntegrityCorrect() + qualityAuditor.getIntegrityError()));//返回的是String类型
+                qualityAuditorDto.setIntegrityCorrectProbability(integrityCorrectProbability);
+                String integrityErrorProbability = df.format((float) qualityAuditor.getIntegrityError() / (qualityAuditor.getIntegrityCorrect() + qualityAuditor.getIntegrityError()));//返回的是String类型
+                qualityAuditorDto.setIntegrityErrorProbability(integrityErrorProbability);
+            }
+
+            if (null != qualityAuditor.getUniformityCorrect() && null != qualityAuditor.getUniformityError()) {
+                // 一致性
+                String uniformityCorrectProbability = df.format((float) qualityAuditor.getUniformityCorrect() / (qualityAuditor.getUniformityCorrect() + qualityAuditor.getUniformityError()));//返回的是String类型
+                qualityAuditorDto.setUniformityCorrectProbability(uniformityCorrectProbability);
+                String uniformityErrorProbability = df.format((float) qualityAuditor.getUniformityError() / (qualityAuditor.getUniformityCorrect() + qualityAuditor.getUniformityError()));//返回的是String类型
+                qualityAuditorDto.setUniformityErrorProbability(uniformityErrorProbability);
+            }
+
+            if (null != qualityAuditor.getNormativeCorrect() && null != qualityAuditor.getNormativeError()) {
+                // 规范性
+                String normativeCorrectProbability = df.format((float) qualityAuditor.getNormativeCorrect() / (qualityAuditor.getNormativeCorrect() + qualityAuditor.getNormativeError()));//返回的是String类型
+                qualityAuditorDto.setNormativeCorrectProbability(normativeCorrectProbability);
+                String normativeErrorProbability = df.format((float) qualityAuditor.getNormativeError() / (qualityAuditor.getNormativeError() + qualityAuditor.getNormativeError()));//返回的是String类型
+                qualityAuditorDto.setNormativeErrorProbability(normativeErrorProbability);
+            }
+            if (null != qualityAuditor.getAccuracyCorrect() && null != qualityAuditor.getAccuracyError()) {
+                // 准确定
+                String accuracyCorrectProbability = df.format((float) qualityAuditor.getAccuracyCorrect() / (qualityAuditor.getAccuracyCorrect() + qualityAuditor.getAccuracyError()));//返回的是String类型
+                qualityAuditorDto.setAccuracyCorrectProbability(accuracyCorrectProbability);
+                String accuracyErrorProbability = df.format((float) qualityAuditor.getAccuracyError() / (qualityAuditor.getAccuracyCorrect() + qualityAuditor.getAccuracyError()));//返回的是String类型
+                qualityAuditorDto.setAccuracyErrorProbability(accuracyErrorProbability);
+            }
 
             qualityAuditorDtoList.add(qualityAuditorDto);
         }
@@ -257,8 +325,7 @@ public class QualityTaskController extends BaseController
         return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payloads(qualityAuditorDtoList));
     }
 
-    public static void main(String[] args)
-    {
+    public static void main(String[] args) {
         int resultLimit = 10000;
         int limit = -1;
         int count = limit > resultLimit ? resultLimit : limit > 0 ? limit : resultLimit;

+ 4 - 0
server/src/main/java/edp/davinci/dao/QualityAuditorMapper.java

@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Component;
 
+import java.util.Date;
 import java.util.List;
 
 @Component
@@ -22,4 +23,7 @@ public interface QualityAuditorMapper
 
     @Select({"select qa.*,qt.task_name from `quality_auditor` qa LEFT JOIN quality_task qt on qa.task_id = qt.id "})
     List<QualityAuditor> getQualityAuditorList();
+
+    @Select({"select qa.*,qt.task_name from `quality_auditor` qa LEFT JOIN quality_task qt on qa.task_id = qt.id where qa.view_id = #{viewId} and  DATE_FORMAT(qa.auditor_time , '%Y%m%d' )  = DATE_FORMAT(#{time}, '%Y%m%d' )"})
+    List<QualityAuditor> getQualityAuditorList(@Param("viewId") Long viewId,@Param("time") String time);
 }

+ 3 - 0
server/src/main/java/edp/davinci/dao/QualityTaskMapper.java

@@ -27,4 +27,7 @@ public interface QualityTaskMapper
 
     @Select({"select * from `quality_task` where id = #{id}"})
     QualityTask getQualityTask(@Param("id") Long id);
+
+    @Select({"select * from `quality_task` where view_id = #{viewId}"})
+    List<QualityTask> getQualityTaskListByViewId(@Param("viewId") Long viewId);
 }

+ 3 - 1
server/src/main/java/edp/davinci/model/QualityAuditor.java

@@ -19,6 +19,8 @@ public class QualityAuditor extends RecordInfo<QualityAuditor>
 
     private Long taskId; // 任务ID
 
+    private Long viewId;
+
     private String taskName;
 
     private Integer integrityCorrect; //完整性正确
@@ -35,5 +37,5 @@ public class QualityAuditor extends RecordInfo<QualityAuditor>
 
     private Integer accuracyCorrect; //准确性正确
 
-    private Integer accuracyError; //完整性错误
+    private Integer accuracyError; //准确性错误
 }

+ 3 - 0
server/src/main/java/edp/davinci/service/QualityAuditorService.java

@@ -3,9 +3,12 @@ package edp.davinci.service;
 import edp.davinci.model.QualityAuditor;
 import edp.davinci.model.QualityTask;
 
+import java.util.Date;
 import java.util.List;
 
 public interface QualityAuditorService
 {
     List<QualityAuditor> getQualityAuditors();
+
+    List<QualityAuditor> getQualityAuditorsByViewId(Long viewId, String time);
 }

+ 5 - 0
server/src/main/java/edp/davinci/service/QualityTaskService.java

@@ -2,6 +2,7 @@ package edp.davinci.service;
 
 import edp.core.exception.ServerException;
 import edp.davinci.model.QualityTask;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -15,5 +16,9 @@ public interface QualityTaskService
 
     void deleteQualityTask(Long id);
 
+    QualityTask getQualityTask(Long id);
+
+    List<QualityTask> getQualityTaskListByViewId(Long viewId);
+
     void auditor(Long id) throws ServerException;
 }

+ 6 - 0
server/src/main/java/edp/davinci/service/impl/QualityAuditorServiceImpl.java

@@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -22,4 +23,9 @@ public class QualityAuditorServiceImpl implements QualityAuditorService
     {
         return qualityAuditorMapper.getQualityAuditorList();
     }
+
+    @Override
+    public List<QualityAuditor> getQualityAuditorsByViewId(Long viewId, String time) {
+        return qualityAuditorMapper.getQualityAuditorList(viewId,time);
+    }
 }

+ 35 - 46
server/src/main/java/edp/davinci/service/impl/QualityTaskServiceImpl.java

@@ -30,8 +30,7 @@ import java.util.Map;
 
 @Slf4j
 @Service("qualityTaskService")
-public class QualityTaskServiceImpl implements QualityTaskService
-{
+public class QualityTaskServiceImpl implements QualityTaskService {
     private static final Logger optLogger = LoggerFactory.getLogger(LogNameEnum.BUSINESS_OPERATION.getName());
     @Autowired
     private QualityTaskMapper qualityTaskMapper;
@@ -55,37 +54,41 @@ public class QualityTaskServiceImpl implements QualityTaskService
     private SqlUtils sqlUtils;
 
     @Override
-    public List<QualityTask> getQualityTask()
-    {
+    public List<QualityTask> getQualityTask() {
         return qualityTaskMapper.getQualityTaskList();
     }
 
     @Override
-    public QualityTask createQualityTask(QualityTask qualityTask)
-    {
+    public QualityTask createQualityTask(QualityTask qualityTask) {
         qualityTaskMapper.insert(qualityTask);
         return qualityTask;
     }
 
+    public QualityTask getQualityTask(Long id) {
+        QualityTask qualityTask = qualityTaskMapper.getQualityTask(id);
+        return qualityTask;
+    }
+
+    @Override
+    public List<QualityTask> getQualityTaskListByViewId(Long viewId) {
+        return qualityTaskMapper.getQualityTaskListByViewId(viewId);
+    }
+
     @Override
-    public void updateQualityTask(QualityTask qualityTask)
-    {
+    public void updateQualityTask(QualityTask qualityTask) {
         qualityTaskMapper.update(qualityTask);
     }
 
     @Override
-    public void deleteQualityTask(Long id)
-    {
+    public void deleteQualityTask(Long id) {
         qualityTaskMapper.deleteById(id);
     }
 
     @Override
-    public void auditor(Long id) throws ServerException
-    {
+    public void auditor(Long id) throws ServerException {
         QualityTask qualityTask = qualityTaskMapper.getQualityTask(id);
 
-        if (null == qualityTask)
-        {
+        if (null == qualityTask) {
             throw new ServerException("qualityTask is null ");
         }
 
@@ -100,10 +103,10 @@ public class QualityTaskServiceImpl implements QualityTaskService
         QualityAuditor qualityAuditor = new QualityAuditor();
         qualityAuditor.setAuditorTime(new Date());
         qualityAuditor.setTaskId(qualityTask.getId());
+        qualityAuditor.setViewId(viewId);
 
         // 遍历JSONArray
-        for (Iterator<Object> iterator = jsonArray.iterator(); iterator.hasNext(); )
-        {
+        for (Iterator<Object> iterator = jsonArray.iterator(); iterator.hasNext(); ) {
             JSONObject next = (JSONObject) iterator.next();
             Long subjectId = next.getLong("subjectId");
             String fieldName = next.getString("fieldName");
@@ -113,14 +116,12 @@ public class QualityTaskServiceImpl implements QualityTaskService
 
             DataSubject dataSubject = dataSubjectService.getOneDataSubject(subjectId);
 
-            if (null == dataSubject)
-            {
+            if (null == dataSubject) {
                 throw new ServerException("id 为 " + subjectId + " 数据标准不存在 ");
             }
 
             DataRules dataRules = dataRulesService.getDataRule(dataSubject.getId());
-            if (null == dataRules)
-            {
+            if (null == dataRules) {
                 throw new ServerException("id 为 " + subjectId + " 数据规则不存在 ");
             }
             JSONObject ruleConfig = JSONObject.parseObject(dataRules.getRuleConfig());
@@ -128,28 +129,24 @@ public class QualityTaskServiceImpl implements QualityTaskService
 
             StringBuilder sql = new StringBuilder("select * from (" + view.getSql() + " ) v where 1 =1 ");
             List<Map<String, Object>> result = sqlUtils.query4List(sql.toString(), -1);
-            if (dataRules.getRuleType().equalsIgnoreCase("not_null"))
-            {
+            if (dataRules.getRuleType().equalsIgnoreCase("not_null")) {
                 // 非空
                 sql.append(" and ");
                 sql.append("v." + fieldName + " is not null ");
 
             }
-            if (dataRules.getRuleType().equalsIgnoreCase("range"))
-            {
+            if (dataRules.getRuleType().equalsIgnoreCase("range")) {
                 // 值域
                 sql.append(" and ");
                 sql.append("v." + fieldName + " > " + ruleConfig.get("from"));
                 sql.append("v." + fieldName + " < " + ruleConfig.get("to"));
             }
-            if (dataRules.getRuleType().equalsIgnoreCase("length"))
-            {
+            if (dataRules.getRuleType().equalsIgnoreCase("length")) {
                 // 长度
                 sql.append(" and len(v.");
                 sql.append(fieldName + ") < " + ruleConfig.get("length"));
             }
-            if (dataRules.getRuleType().equalsIgnoreCase("date_format"))
-            {
+            if (dataRules.getRuleType().equalsIgnoreCase("date_format")) {
                 // 日期格式
                 sql.append(" and ");
                 sql.append(fieldName + " is not null ");
@@ -159,38 +156,32 @@ public class QualityTaskServiceImpl implements QualityTaskService
             List<Map<String, Object>> newResult = sqlUtils.query4List(sql.toString(), -1);
 
             // 计算
-            if (result == null || newResult == null)
-            {
+            if (result == null || newResult == null) {
                 throw new ServerException("稽核数据不存在;sql:" + sql);
             }
 
-            if (result.size() == 0)
-            {
+            if (result.size() == 0) {
 
                 throw new ServerException("稽核数据不存在;sql:" + sql);
             }
-             int correct = newResult.size(); // 符合条件
-             int error = result.size() - correct;
-            if (inspectionType.equalsIgnoreCase("integrity"))
-            {
+            int correct = newResult.size(); // 符合条件
+            int error = result.size() - correct;
+            if (inspectionType.equalsIgnoreCase("integrity")) {
                 // 完整性
                 qualityAuditor.setIntegrityCorrect(correct);
                 qualityAuditor.setIntegrityError(error);
             }
-            if (inspectionType.equalsIgnoreCase("uniformity"))
-            {
+            if (inspectionType.equalsIgnoreCase("uniformity")) {
                 // 一致性
                 qualityAuditor.setUniformityCorrect(correct);
                 qualityAuditor.setUniformityError(error);
             }
-            if (inspectionType.equalsIgnoreCase("normative"))
-            {
+            if (inspectionType.equalsIgnoreCase("normative")) {
                 // 规范性
                 qualityAuditor.setNormativeCorrect(correct);
                 qualityAuditor.setNormativeError(error);
             }
-            if (inspectionType.equalsIgnoreCase("accuracy"))
-            {
+            if (inspectionType.equalsIgnoreCase("accuracy")) {
                 // 准确性
                 qualityAuditor.setAccuracyCorrect(correct);
                 qualityAuditor.setAccuracyError(error);
@@ -201,11 +192,9 @@ public class QualityTaskServiceImpl implements QualityTaskService
 
     }
 
-    private Source getSource(Long id)
-    {
+    private Source getSource(Long id) {
         Source source = sourceMapper.getById(id);
-        if (null == source)
-        {
+        if (null == source) {
             log.error("Source({}) not found", id);
             throw new NotFoundException("Source is not found");
         }