瀏覽代碼

完善接口,增加更新计算时间逻辑

lijie 3 年之前
父節點
當前提交
01079c1d60

+ 15 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/dao/RelationProjectCalMapper.java

@@ -0,0 +1,15 @@
+package com.persagy.dmp.rwd.digital.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.persagy.dmp.rwd.digital.domain.RelationProjectCal;
+
+/**
+ * @Entity generator.domain.RelationProjectCal
+ */
+public interface RelationProjectCalMapper extends BaseMapper<RelationProjectCal> {
+
+}
+
+
+
+

+ 86 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/domain/RelationProjectCal.java

@@ -0,0 +1,86 @@
+package com.persagy.dmp.rwd.digital.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.persagy.dmp.common.model.entity.AuditableEntity;
+import lombok.*;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 
+ * @TableName relation_project_cal
+ */
+@TableName(value ="relation_project_cal")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class RelationProjectCal extends AuditableEntity {
+
+    /**
+     * 图类型
+     */
+    @TableField(value = "graph_code")
+    private String graphCode;
+
+    /**
+     * 关系类型编码
+     */
+    @TableField(value = "rel_code")
+    private String relCode;
+
+    /**
+     * 是否需要配置源末端
+     */
+    @TableField(value = "source_flag")
+    private Byte sourceFlag;
+
+    /**
+     * 是否自动计算类型
+     */
+    @TableField(value = "automatic_flag")
+    private Byte automaticFlag;
+
+    /**
+     * 手动计算类型 1 禁用  2提示引导 3手动维护
+     */
+    @TableField(value = "manual")
+    private Integer manual;
+
+    /**
+     * 项目id
+     */
+    @TableField(value = "project_id")
+    private String projectId;
+
+    /**
+     * 最后一次自动计算时间
+     */
+    @TableField(value = "computing_time")
+    private String computingTime;
+
+    /**
+     * 计算状态 1初始状态 2需要计算 3计算中 4等待中 5计算失败(如果处于计算中状态,则不再次调用)
+     */
+    @TableField(value = "computational_state")
+    private Byte computationalState;
+
+    /**
+     * 业务分区类型
+     */
+    @TableField(value = "zone_type")
+    private String zoneType;
+
+    /**
+     * 计算版本
+     */
+    @TableField(value = "compute_version")
+    private Byte computeVersion;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 11 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/RelationProjectCalService.java

@@ -0,0 +1,11 @@
+package com.persagy.dmp.rwd.digital.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.persagy.dmp.rwd.digital.domain.RelationProjectCal;
+
+/**
+ *
+ */
+public interface RelationProjectCalService extends IService<RelationProjectCal> {
+
+}

+ 27 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/RelationCaclServiceImpl.java

@@ -1,10 +1,12 @@
 package com.persagy.dmp.rwd.digital.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.common.constant.CommonConstant;
@@ -19,9 +21,11 @@ import com.persagy.dmp.rwd.basic.constant.BusinessErrorRwdCode;
 import com.persagy.dmp.rwd.digital.dao.ObjectDigitalMapper;
 import com.persagy.dmp.rwd.digital.dao.ObjectRelationMapper;
 import com.persagy.dmp.rwd.digital.domain.RelationCalSign;
+import com.persagy.dmp.rwd.digital.domain.RelationProjectCal;
 import com.persagy.dmp.rwd.digital.service.IObjectRelationService;
 import com.persagy.dmp.rwd.digital.service.RelationCaclService;
 import com.persagy.dmp.rwd.digital.service.RelationCalSignService;
+import com.persagy.dmp.rwd.digital.service.RelationProjectCalService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.hibernate.validator.constraints.Length;
@@ -41,6 +45,7 @@ public class RelationCaclServiceImpl implements RelationCaclService {
     private final ObjectDigitalMapper objectDigitalMapper;
     private final IObjectRelationService objectRelationService;
     private final RelationCalSignService relationCalSignService;
+    private final RelationProjectCalService relationProjectCalService;
 
 
     /***
@@ -54,6 +59,8 @@ public class RelationCaclServiceImpl implements RelationCaclService {
     @Override
     @Transactional
     public CommonResult<List<ObjectRelation>> createObjRelationsByKeywordAndObjType(@RequestBody RequestData requestData) {
+        // 0.更新计算时间,根据项目id和图类型编码及关系类型编码
+        updateComputeTimeByProjectAndGraphCodeAndRelCode(requestData.getGraphCode(),requestData.getRelCode());
         // 根据对象信息点和对象内容(主/副)查询对象,然后添加关系及计算标记
         requestData.setProjectId(AppContext.getContext().getProjectId());
         requestData.setGroupCode(AppContext.getContext().getGroupCode());
@@ -186,6 +193,7 @@ public class RelationCaclServiceImpl implements RelationCaclService {
             throw new BusinessException(BusinessErrorRwdCode.A7201.getCode(),BusinessErrorRwdCode.A7201.getDesc());
         }
         // 2.先更新计算时间
+        updateComputeTimeByProjectAndGraphCodeAndRelCode(objectRelation.getGraphCode(),objectRelation.getRelCode());
         // 3.删除关系
         for (ObjectRelation relation : objectRelations) {
             relation.setValid(0);
@@ -197,6 +205,25 @@ public class RelationCaclServiceImpl implements RelationCaclService {
     }
 
     /***
+     * Description: 根据项目id和图类型编码及关系类型编码更新计算时间
+     * @param graphCode : 图类型编码
+     * @param relCode : 关系类型编码
+     * @return : void
+     * @author : lijie
+     * @date :2021/9/4 23:14
+     * Update By lijie 2021/9/4 23:14
+     */
+    private void updateComputeTimeByProjectAndGraphCodeAndRelCode(String graphCode,String relCode) {
+        LambdaUpdateWrapper<RelationProjectCal> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.eq(RelationProjectCal::getProjectId,AppContext.getContext().getProjectId());
+        updateWrapper.eq(RelationProjectCal::getGraphCode,graphCode);
+        updateWrapper.eq(RelationProjectCal::getRelCode,relCode);
+        RelationProjectCal relationProjectCal = new RelationProjectCal();
+        relationProjectCal.setComputingTime(DateUtil.format(new Date(),"yyyyMMddHHmmss"));
+        relationProjectCalService.update(relationProjectCal,updateWrapper);
+    }
+
+    /***
      * Description: 根据fromId和toIds查询关系
      * @param fromId : fromId
      * @param toIds : toIds

+ 20 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/RelationProjectCalServiceImpl.java

@@ -0,0 +1,20 @@
+package com.persagy.dmp.rwd.digital.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.persagy.dmp.rwd.digital.dao.RelationProjectCalMapper;
+import com.persagy.dmp.rwd.digital.domain.RelationProjectCal;
+import com.persagy.dmp.rwd.digital.service.RelationProjectCalService;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class RelationProjectCalServiceImpl extends ServiceImpl<RelationProjectCalMapper, RelationProjectCal>
+implements RelationProjectCalService {
+
+}
+
+
+
+

+ 30 - 0
dmp-business/dmp-rwd/src/main/resources/mapper/RelationProjectCalMapper.xml

@@ -0,0 +1,30 @@
+<?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.persagy.dmp.rwd.digital.dao.RelationProjectCalMapper">
+
+    <resultMap id="BaseResultMap" type="com.persagy.dmp.rwd.digital.domain.RelationProjectCal">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="graphCode" column="graph_code" jdbcType="VARCHAR"/>
+            <result property="relCode" column="rel_code" jdbcType="VARCHAR"/>
+            <result property="sourceFlag" column="source_flag" jdbcType="TINYINT"/>
+            <result property="automaticFlag" column="automatic_flag" jdbcType="TINYINT"/>
+            <result property="manual" column="manual" jdbcType="INTEGER"/>
+            <result property="lastUpdate" column="last_update" jdbcType="TIMESTAMP"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="projectId" column="project_id" jdbcType="VARCHAR"/>
+            <result property="computingTime" column="computing_time" jdbcType="VARCHAR"/>
+            <result property="computationalState" column="computational_state" jdbcType="TINYINT"/>
+            <result property="zoneType" column="zone_type" jdbcType="VARCHAR"/>
+            <result property="computeVersion" column="compute_version" jdbcType="TINYINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,graph_code,rel_code,
+        source_flag,automatic_flag,manual,
+        last_update,create_time,project_id,
+        computing_time,computational_state,zone_type,
+        compute_version
+    </sql>
+</mapper>