diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/TDuckListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/TDuckListResultDTO.java index ee412e8ad3..5b2346cb97 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/TDuckListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/TDuckListResultDTO.java @@ -4,8 +4,6 @@ import com.epmet.commons.tools.constant.NumConstant; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -69,6 +67,7 @@ public class TDuckListResultDTO implements Serializable { private String client; private String createdTime; + private String updatedTime; /** * 是否填写问卷,true:是,false:否 @@ -107,6 +106,7 @@ public class TDuckListResultDTO implements Serializable { this.status = NumConstant.ONE; this.client = ""; this.createdTime = ""; + this.updatedTime = ""; this.fillStatus = false; this.isFillQuestion = true; this.orgName = ""; diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrVistRecordEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrVistRecordEntity.java index 00864276e1..61f7c117cb 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrVistRecordEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmettduck/PrVistRecordEntity.java @@ -17,14 +17,13 @@ package com.epmet.dataaggre.entity.epmettduck; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; - import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; - /** * 用户访问问卷记录表 * @@ -38,9 +37,10 @@ public class PrVistRecordEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; - /** - * - */ + /** + * + */ + @TableId(type = IdType.ID_WORKER_STR) private String id; /** @@ -58,9 +58,4 @@ public class PrVistRecordEntity extends BaseEpmetEntity { */ private String userType; - /** - * 项目key - */ - private String projectKey; - } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.java index 691e4cdc95..e505cf6995 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.java @@ -101,4 +101,10 @@ public interface PrVistRecordService extends BaseService { * @Date 2021/9/23 14:16 */ PrVistRecordDTO getNewestRecord(String staffId); -} \ No newline at end of file + + /** + * desc:插入或更新记录 + * @param param + */ + void insertOrUpdate(PrVistRecordDTO param); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java index bc905870e8..33f1c36c49 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java @@ -190,7 +190,10 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl 0) { + if (list.get(0).getCreatedTime().compareTo(visitRecord.getUpdatedTime()) > 0) { result.setRedPoint(NumConstant.ONE_STR); } else { result.setRedPoint(NumConstant.ZERO_STR); @@ -808,4 +818,4 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PrVistRecordEntity::getUserId, staffId); - wrapper.orderByDesc(PrVistRecordEntity::getCreatedTime); + wrapper.orderByDesc(PrVistRecordEntity::getUpdatedTime); + wrapper.last("limit 1"); List list = baseDao.selectList(wrapper); if (CollectionUtils.isEmpty(list)) { return null; } - return ConvertUtils.sourceToTarget(list, PrVistRecordDTO.class).get(0); + return ConvertUtils.sourceToTarget(list.get(0), PrVistRecordDTO.class); } -} \ No newline at end of file + @Override + public void insertOrUpdate(PrVistRecordDTO param) { + //Executors.newCachedThreadPool().submit(()-> { + try { + + PrVistRecordDTO newestRecord = this.getNewestRecord(param.getUserId()); + if (newestRecord == null) { + PrVistRecordEntity entity = ConvertUtils.sourceToTarget(param, PrVistRecordEntity.class); + this.insert(entity); + } else { + PrVistRecordEntity entity = new PrVistRecordEntity(); + entity.setId(newestRecord.getId()); + this.updateById(entity); + } + } catch (Exception e) { + log.error("insertPrVistRecord excption", e); + } + //}); + } + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml index a22d98b11d..48bd2f41bc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml @@ -92,7 +92,7 @@ #{key} ) - ORDER BY up.created_time DESC + ORDER BY up.updated_time DESC \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml index aa345e87b3..7a0760d0a3 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml @@ -165,7 +165,7 @@ ID AS orgId, ORGANIZATION_NAME AS orgName, 'agency' AS orgType, - CONCAT( PIDS, ID ) AS orgPids + IF(PIDS = '', ID, CONCAT( PIDS,':', ID )) AS orgPids FROM customer_agency a WHERE @@ -175,7 +175,7 @@ cd.ID AS orgId, DEPARTMENT_NAME AS orgName, 'dept' AS orgType, - CONCAT( PIDS, ca.ID, cd.ID ) AS orgPids + CONCAT( PIDS, ':', ca.ID, ':', cd.ID ) AS orgPids FROM customer_department cd INNER JOIN customer_agency ca ON cd.AGENCY_ID = ca.ID @@ -186,7 +186,7 @@ ID AS orgId, GRID_NAME AS orgName, 'grid' AS orgType, - CONCAT( PIDS, ID ) AS orgPids + CONCAT( PIDS,':', ID ) AS orgPids FROM customer_grid WHERE @@ -202,7 +202,7 @@ ID AS orgId, ORGANIZATION_NAME AS orgName, 'agency' AS orgType, - CONCAT(PIDS,ID) AS orgPids + IF(PIDS = '', ID, CONCAT( PIDS,':', ID )) AS orgPids from customer_agency @@ -228,7 +228,7 @@ ID AS orgId, ORGANIZATION_NAME AS orgName, 'agency' AS orgType, - CONCAT( PIDS, ID ) AS orgPids + IF(PIDS = '', ID, CONCAT( PIDS,':', ID )) AS orgPids FROM customer_agency a WHERE @@ -238,7 +238,7 @@ ID AS orgId, GRID_NAME AS orgName, 'grid' AS orgType, - CONCAT( PIDS, ID ) AS orgPids + CONCAT( PIDS, ':', ID ) AS orgPids FROM customer_grid WHERE @@ -254,7 +254,7 @@ ID AS orgId, ORGANIZATION_NAME AS orgName, 'agency' AS orgType, - CONCAT(PIDS,ID) AS orgPids + IF(PIDS = '', ID, CONCAT( PIDS,':', ID )) AS orgPids from customer_agency