Browse Source

立即调度

vincent 3 years ago
parent
commit
ecad530672

+ 1 - 1
server/src/main/java/edp/davinci/controller/DataRulesController.java

@@ -110,7 +110,7 @@ public class DataRulesController extends BaseController
 
 
     /**
-     * 删除dataSubject
+     * 删除deleteDataRules
      *
      * @param id
      * @param user

+ 58 - 21
server/src/main/java/edp/davinci/controller/QualityTaskController.java

@@ -4,9 +4,13 @@ import edp.core.annotation.CurrentUser;
 import edp.davinci.common.controller.BaseController;
 import edp.davinci.core.common.Constants;
 import edp.davinci.core.common.ResultMap;
+import edp.davinci.core.enums.CronJobStatusEnum;
+import edp.davinci.dto.cronJobDto.CronJobBaseInfo;
+import edp.davinci.dto.cronJobDto.CronJobInfo;
 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 io.swagger.annotations.Api;
@@ -38,6 +42,9 @@ public class QualityTaskController extends BaseController
     @Autowired
     private QualityAuditorService qualityAuditorService;
 
+    @Autowired
+    private CronJobService cronJobService;
+
     /**
      * 获取 质量任务
      *
@@ -48,7 +55,8 @@ 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));
@@ -64,13 +72,15 @@ public class QualityTaskController extends BaseController
      * @return
      */
     @ApiOperation(value = "create qualityTask")
-    @PostMapping(value = "/createQualityTask",consumes = MediaType.APPLICATION_JSON_VALUE)
+    @PostMapping(value = "/createQualityTask", consumes = MediaType.APPLICATION_JSON_VALUE)
     public ResponseEntity createQualityTask(@Valid @RequestBody QualityTask qualityTask,
-                                          @ApiIgnore BindingResult bindingResult,
-                                          @ApiIgnore @CurrentUser User user,
-                                          HttpServletRequest request) {
+                                            @ApiIgnore BindingResult bindingResult,
+                                            @ApiIgnore @CurrentUser User user,
+                                            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);
         }
@@ -93,18 +103,21 @@ public class QualityTaskController extends BaseController
     @ApiOperation(value = "update qualityTask")
     @PutMapping(value = "/updateQualityTask/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
     public ResponseEntity updateQualityTask(@PathVariable Long id,
-                                          @Valid @RequestBody QualityTask qualityTask,
-                                          @ApiIgnore BindingResult bindingResult,
-                                          @ApiIgnore @CurrentUser User user,
-                                          HttpServletRequest request) {
+                                            @Valid @RequestBody QualityTask qualityTask,
+                                            @ApiIgnore BindingResult bindingResult,
+                                            @ApiIgnore @CurrentUser User user,
+                                            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);
         }
@@ -125,9 +138,11 @@ public class QualityTaskController extends BaseController
     @ApiOperation(value = "delete qualityTask")
     @DeleteMapping("/deleteQualityTask/{id}")
     public ResponseEntity deleteQualityTask(@PathVariable Long id,
-                                          @ApiIgnore @CurrentUser User user,
-                                          HttpServletRequest request) {
-        if (invalidId(id)) {
+                                            @ApiIgnore @CurrentUser User user,
+                                            HttpServletRequest request)
+    {
+        if (invalidId(id))
+        {
             ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message("Invalid dataSubject id");
             return ResponseEntity.status(resultMap.getCode()).body(resultMap);
         }
@@ -146,7 +161,8 @@ 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.
@@ -157,21 +173,41 @@ public class QualityTaskController extends BaseController
     /**
      * 设置调度
      *
-     * @param id
+     * @param cronJob
      * @param request
      * @return
      */
     @ApiOperation(value = "setDispatch")
     @PutMapping(value = "/setDispatch/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
-    public ResponseEntity setDispatch(@PathVariable Long id,HttpServletRequest request){
+    public ResponseEntity setDispatch(@PathVariable Long id,@RequestBody CronJobInfo cronJob, @ApiIgnore BindingResult bindingResult, @ApiIgnore @CurrentUser User user, HttpServletRequest request)
+    {
+        // 1. 保存任务
+        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到任务中
+        QualityTask qualityTask = new QualityTask();
+        qualityTask.setId(id);
+        qualityTask.setCronJobId(jobInfo.getId());
+        qualityTaskService.updateQualityTask(qualityTask);
 
 
+        // 3. 执行
+        if(cronJob.getJobStatus().equals(CronJobStatusEnum.START)){ // 启动 激活
+           // cronJobService.executeCronJob()
+            cronJobService.startCronJob(jobInfo.getId(),user);
+        }
         return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request));
     }
 
 
     /**
-     *  质量报告
+     * 质量报告
      *
      * @param user
      * @param request
@@ -180,7 +216,8 @@ public class QualityTaskController extends BaseController
     @ApiOperation(value = "get qualityReport")
     @GetMapping(value = "/qualityReport")
     public ResponseEntity qualityReport(@ApiIgnore @CurrentUser User user,
-                                         HttpServletRequest request) {
+                                        HttpServletRequest request)
+    {
 
         List<QualityAuditor> qualityAuditors = qualityAuditorService.getQualityAuditors();
         return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payloads(qualityAuditors));
@@ -189,7 +226,7 @@ public class QualityTaskController extends BaseController
     public static void main(String[] args)
     {
         int resultLimit = 10000;
-        int limit =-1;
+        int limit = -1;
         int count = limit > resultLimit ? resultLimit : limit > 0 ? limit : resultLimit;
         System.out.println(count);
     }

+ 0 - 10
server/src/main/java/edp/davinci/dao/DataRulesMapper.java

@@ -18,16 +18,6 @@ public interface DataRulesMapper
     @Delete({"delete from `data_rules` where id = #{id}"})
     int deleteById(@Param("id") Long id);
 
-    @Update({
-            "update `dict_type`",
-            "set `dict_name` = #{dictName,jdbcType=VARCHAR},",
-            "`dict_type` = #{dictType,jdbcType=VARCHAR},",
-            "`status` = #{status,jdbcType=BIGINT},",
-            "`remark` = #{remark,jdbcType=VARCHAR},",
-            "`update_by` = #{updateBy,jdbcType=BIGINT},",
-            "`update_time` = #{updateTime,jdbcType=TIMESTAMP}",
-            "where dict_id = #{dictId,jdbcType=BIGINT}"
-    })
     int update(DataRules dataRules);
 
 

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

@@ -19,16 +19,6 @@ public interface QualityTaskMapper
     @Delete({"delete from `quality_task` where id = #{id}"})
     int deleteById(@Param("id") Long id);
 
-    @Update({
-            "update `dict_type`",
-            "set `dict_name` = #{dictName,jdbcType=VARCHAR},",
-            "`dict_type` = #{dictType,jdbcType=VARCHAR},",
-            "`status` = #{status,jdbcType=BIGINT},",
-            "`remark` = #{remark,jdbcType=VARCHAR},",
-            "`update_by` = #{updateBy,jdbcType=BIGINT},",
-            "`update_time` = #{updateTime,jdbcType=TIMESTAMP}",
-            "where dict_id = #{dictId,jdbcType=BIGINT}"
-    })
     int update(QualityTask qualityTask);
 
 

+ 2 - 0
server/src/main/java/edp/davinci/model/QualityTask.java

@@ -11,6 +11,8 @@ public class QualityTask extends RecordInfo<QualityTask>
 {
     private Long id;
 
+    private Long cronJobId;  // 任务id
+
     private String metadataName; // 表名
 
     private Long viewId; // view id

+ 2 - 1
server/src/main/java/edp/davinci/service/DataRulesService.java

@@ -1,5 +1,6 @@
 package edp.davinci.service;
 
+import edp.core.exception.ServerException;
 import edp.davinci.model.DataRules;
 
 import java.util.List;
@@ -8,7 +9,7 @@ public interface DataRulesService
 {
     List<DataRules> getDataRules();
 
-    DataRules createDataRules(DataRules dataRules);
+    DataRules createDataRules(DataRules dataRules) throws ServerException;
 
     void updateDataRules(DataRules dataRules);
 

+ 3 - 2
server/src/main/java/edp/davinci/service/impl/CronJobServiceImpl.java

@@ -137,7 +137,8 @@ public class CronJobServiceImpl extends BaseEntityService implements CronJobServ
 			throws NotFoundException, UnAuthorizedException, ServerException {
 
 		Long projectId = cronJobBaseInfo.getProjectId();
-		checkWritePermission(entity, projectId, user, "create");
+
+//		checkWritePermission(entity, projectId, user, "create");
 
 		String name = cronJobBaseInfo.getName();
 		checkIsExist(name, null, projectId);
@@ -365,7 +366,7 @@ public class CronJobServiceImpl extends BaseEntityService implements CronJobServ
 							log.error(e.toString(), e);
 							scheduleLogger.error(e.getMessage());
 						}
-					}else if(jobType.equals("qualityAuditor")) {  // 质量稽核
+					}else if(jobType.equals("auditor")) {  // 质量稽核
 						try {
 							// 质量稽核
 							System.out.println("execute quality auditor");

+ 14 - 1
server/src/main/java/edp/davinci/service/impl/DataRulesServiceImpl.java

@@ -1,5 +1,6 @@
 package edp.davinci.service.impl;
 
+import edp.core.exception.ServerException;
 import edp.davinci.dao.DataRulesMapper;
 import edp.davinci.model.DataRules;
 import edp.davinci.service.DataRulesService;
@@ -24,8 +25,20 @@ public class DataRulesServiceImpl implements DataRulesService
     }
 
     @Override
-    public DataRules createDataRules(DataRules dataRules)
+    public DataRules createDataRules(DataRules dataRules) throws ServerException
     {
+        if (null == dataRules)
+        {
+
+            throw new ServerException("dataRules is null ");
+
+        }
+
+        if(dataRules.getSubjectId() == null ){
+
+            throw new ServerException("标准主题 subjectId is null ");
+        }
+
         dataRulesMapper.insert(dataRules);
         return dataRules;
     }

+ 14 - 4
server/src/main/java/edp/davinci/service/impl/QualityTaskServiceImpl.java

@@ -102,7 +102,17 @@ public class QualityTaskServiceImpl implements QualityTaskService
             SqlUtils sqlUtils = this.sqlUtils.init(source);
 
             DataSubject dataSubject = dataSubjectService.getOneDataSubject(subjectId);
+
+            if (null == dataSubject)
+            {
+                throw new ServerException("id 为 " + subjectId + " 数据标准不存在 ");
+            }
+
             DataRules dataRules = dataRulesService.getDataRule(dataSubject.getId());
+            if (null == dataRules)
+            {
+                throw new ServerException("id 为 " + subjectId + " 数据规则不存在 ");
+            }
             StringBuilder sql = new StringBuilder(view.getSql());
             String inspectionType = dataRules.getInspectionType();
             QualityAuditor qualityAuditor = new QualityAuditor();
@@ -131,23 +141,23 @@ public class QualityTaskServiceImpl implements QualityTaskService
                 // 日期格式
 
             }
-            if (inspectionType.equalsIgnoreCase(""))
+            if (inspectionType.equalsIgnoreCase("integrity"))
             { // 完整性
 
                 qualityAuditor.setIntegrityCorrect(1);
                 qualityAuditor.setIntegrityError(1);
             }
-            if (inspectionType.equalsIgnoreCase(""))
+            if (inspectionType.equalsIgnoreCase("uniformity"))
             { // 一致性
                 qualityAuditor.setUniformityCorrect(1);
                 qualityAuditor.setUniformityError(1);
             }
-            if (inspectionType.equalsIgnoreCase(""))
+            if (inspectionType.equalsIgnoreCase("normative"))
             { // 规范性
                 qualityAuditor.setNormativeCorrect(1);
                 qualityAuditor.setNormativeError(1);
             }
-            if (inspectionType.equalsIgnoreCase(""))
+            if (inspectionType.equalsIgnoreCase("accuracy"))
             { // 准确性
                 qualityAuditor.setAccuracyCorrect(1);
                 qualityAuditor.setAccuracyError(1);

+ 74 - 0
server/src/main/resources/mybatis/mapper/DataRulesMapper.xml

@@ -0,0 +1,74 @@
+<?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="edp.davinci.dao.DataRulesMapper">
+
+    <insert id="insert" parameterType="edp.davinci.model.DataRules">
+        insert into `data_rules`
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="ruleCode != null">
+                rule_code,
+            </if>
+            <if test="ruleName != null">
+                rule_name,
+            </if>
+            <if test="ruleDesc != null">
+                rule_desc,
+            </if>
+            <if test="inspectionType != null">
+                inspection_type,
+            </if>
+            <if test="ruleType != null">
+                `rule_type`,
+            </if>
+            <if test="ruleConfig != null">
+                `rule_config`,
+            </if>
+            <if test="subjectId != null">
+                `subject_id`,
+            </if>
+            `create_by`,
+            `create_time`
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="ruleCode != null">
+                #{ruleCode,jdbcType=VARCHAR},
+            </if>
+            <if test="ruleName != null">
+                #{ruleName,jdbcType=VARCHAR},
+            </if>
+            <if test="ruleDesc != null">
+                #{ruleDesc,jdbcType=VARCHAR},
+            </if>
+            <if test="inspectionType != null">
+                #{inspectionType,jdbcType=VARCHAR},
+            </if>
+            <if test="ruleType != null">
+                #{ruleType,jdbcType=VARCHAR},
+            </if>
+            <if test="ruleConfig != null">
+                #{ruleConfig,jdbcType=VARCHAR},
+            </if>
+            <if test="subjectId != null">
+                #{subjectId,jdbcType=BIGINT},
+            </if>
+            #{createBy,jdbcType=BIGINT},
+            #{createTime,jdbcType=TIMESTAMP}
+        </trim>
+    </insert>
+
+    <update id="update"  parameterType="edp.davinci.model.DataRules">
+        UPDATE data_rules
+        <trim prefix="set" suffixOverrides=",">
+            <if test="ruleCode!=null">rule_code=#{ruleCode},</if>
+            <if test="ruleName!=null">rule_name=#{ruleName},</if>
+            <if test="ruleDesc!=null">rule_desc=#{ruleDesc},</if>
+            <if test="inspectionType!=null">inspection_type=#{inspectionType},</if>
+            <if test="ruleType!=null">rule_type=#{ruleType},</if>
+            <if test="ruleConfig!=null">rule_config=#{ruleConfig},</if>
+            <if test="subjectId!=null">subject_id=#{subjectId},</if>
+        </trim>
+        WHERE id=#{id}
+    </update>
+
+
+</mapper>

+ 3 - 3
server/src/main/resources/mybatis/mapper/DataSubjectMapper.xml

@@ -40,13 +40,13 @@
                 #{standardAlias,jdbcType=VARCHAR},
             </if>
             <if test="englishName != null">
-                #{englishName,jdbcType=BIGINT},
+                #{englishName,jdbcType=VARCHAR},
             </if>
             <if test="deptName != null">
-                #{deptName,jdbcType=BIGINT},
+                #{deptName,jdbcType=VARCHAR},
             </if>
             <if test="management != null">
-                #{management,jdbcType=BIGINT},
+                #{management,jdbcType=VARCHAR},
             </if>
             <if test="pId != null">
                 #{pId,jdbcType=BIGINT},

+ 52 - 0
server/src/main/resources/mybatis/mapper/QualityTaskMapper.xml

@@ -0,0 +1,52 @@
+<?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="edp.davinci.dao.QualityTaskMapper">
+    <insert id="insert" parameterType="edp.davinci.model.QualityTask">
+        insert into `quality_task`
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="cronJobId != null">
+                cronJob_Id,
+            </if>
+            <if test="metadataName != null">
+                metadata_name,
+            </if>
+            <if test="viewId != null">
+                view_id,
+            </if>
+            <if test="metadataConfig != null">
+                metadata_config,
+            </if>
+            `create_by`,
+            `create_time`
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="cronJobId != null">
+                #{cronJobId,jdbcType=VARCHAR},
+            </if>
+            <if test="metadataName != null">
+                #{metadataName,jdbcType=VARCHAR},
+            </if>
+            <if test="viewId != null">
+                #{viewId,jdbcType=BIGINT},
+            </if>
+            <if test="metadataConfig != null">
+                #{metadataConfig,jdbcType=VARCHAR},
+            </if>
+            #{createBy,jdbcType=BIGINT},
+            #{createTime,jdbcType=TIMESTAMP}
+        </trim>
+    </insert>
+
+    <update id="update"  parameterType="edp.davinci.model.QualityTask">
+        UPDATE quality_task
+        <trim prefix="set" suffixOverrides=",">
+            <if test="cronJobId!=null">cronJob_id=#{cronJobId},</if>
+            <if test="metadataName!=null">metadata_name=#{metadataName},</if>
+            <if test="viewId!=null">view_id=#{viewId},</if>
+            <if test="metadataConfig!=null">metadata_config=#{metadataConfig},</if>
+        </trim>
+        WHERE id=#{id}
+    </update>
+
+
+</mapper>