From 1a3403afb8a1306a1d14c35878b32262fb5eac74 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Nov 2022 15:22:42 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=AF=94=E5=AF=B9=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=BC=82=E6=AD=A5=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/constant/EpidemicConstant.java | 1 + .../epmet/dao/IcResiComparisonRecordDao.java | 6 +- .../YanTaiComparisonSyncProcessor.java | 118 +++++++++++++++ .../IcResiComparisonRecordService.java | 3 + .../IcResiComparisonRecordServiceImpl.java | 139 +++++++++++++++++- .../mapper/IcResiComparisonRecordDao.xml | 89 ++++++----- .../main/resources/mapper/IcResiUserDao.xml | 20 +-- 7 files changed, 325 insertions(+), 51 deletions(-) create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiComparisonSyncProcessor.java diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/EpidemicConstant.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/EpidemicConstant.java index e2817f165c..edd9d1a695 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/EpidemicConstant.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/EpidemicConstant.java @@ -21,6 +21,7 @@ public interface EpidemicConstant { */ String JOB_TYPE_NAT = "nat"; String JOB_TYPE_VACCINE = "vaccine"; + String JOB_TYPE_COMPARISON = "comparison"; String OPERATION_STATUS_WAITING = "waiting"; String OPERATION_STATUS_PROCESSING = "processing"; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiComparisonRecordDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiComparisonRecordDao.java index 848067199c..5eb830e9bf 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiComparisonRecordDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiComparisonRecordDao.java @@ -18,10 +18,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.ComparisonFormDTO; import com.epmet.dto.form.ResiComparisonListFormDTO; import com.epmet.dto.result.ResiComparisonListResultDTO; import com.epmet.entity.IcResiComparisonRecordEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -36,5 +38,7 @@ public interface IcResiComparisonRecordDao extends BaseDao getResiComparisonList(ResiComparisonListFormDTO formDTO); - void saveInsert(IcResiComparisonRecordEntity recordEntity); + void saveInsert(@Param("list") List recordEntity); + + List getComparisonList(ComparisonFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiComparisonSyncProcessor.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiComparisonSyncProcessor.java new file mode 100644 index 0000000000..cc07aafab2 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiComparisonSyncProcessor.java @@ -0,0 +1,118 @@ +package com.epmet.processor; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.tools.distributedlock.DistributedLock; +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.constant.EpidemicConstant; +import com.epmet.dao.IcSyncJobDao; +import com.epmet.entity.IcSyncJobEntity; +import com.epmet.service.DataSyncConfigService; +import com.epmet.service.IcResiComparisonRecordService; +import lombok.extern.slf4j.Slf4j; +import org.redisson.api.RLock; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.TimeUnit; + +import static com.epmet.constant.EpidemicConstant.JOB_TYPE_NAT; + +// 烟台数据比对 +@Component +@Slf4j +public class YanTaiComparisonSyncProcessor { + + public static final int MAX_EXECUTING_COUNT = 3; + + @Autowired + private ExecutorService executorService; + + @Autowired + private IcSyncJobDao icSyncJobDao; + + @Autowired + private IcResiComparisonRecordService icResiComparisonRecordService; + + @Autowired + private DistributedLock distributedLock; + + @Autowired + RedisUtils redisUtils; + + /** + * 定时扫描和执行同步任务 + * 10s扫一次库 + */ + @Scheduled(cron = "0/10 * * * * ? ") + public void scanJobs() { + //log.info("【异步数据更新】开始同步任务"); + + LambdaQueryWrapper executingListQuery = new LambdaQueryWrapper<>(); + executingListQuery.eq(IcSyncJobEntity::getOperationStatus, EpidemicConstant.OPERATION_STATUS_PROCESSING); + List executingJobList = icSyncJobDao.selectList(executingListQuery); + + if (!CollectionUtils.isEmpty(executingJobList) && executingJobList.size() >= MAX_EXECUTING_COUNT) { + // 最多只允许同时3条线程运行 + return; + } + + int executingCount = executingJobList.size(); + // 还可以运行几条线程 + int leftCount = MAX_EXECUTING_COUNT - executingCount; + + RLock lock = null; + try { + lock = distributedLock.getLock("data:sync:" + "comparison", 60L, 60L, TimeUnit.SECONDS); + // 查询可执行的任务列表,并且异步执行 + List icSyncJobToExec = icSyncJobDao.selectExecutableJobList( + EpidemicConstant.JOB_TYPE_COMPARISON, + leftCount); + + if (!CollectionUtils.isEmpty(icSyncJobToExec)) { + // 异步提交任务 + for (IcSyncJobEntity jobEntity : icSyncJobToExec) { + + updateJobStatus(jobEntity.getId(), EpidemicConstant.OPERATION_STATUS_PROCESSING); + executorService.submit(() -> { + // 将此任务状态修改为执行中 + + try { + icResiComparisonRecordService.comparisonUserData(jobEntity); + } finally { + // 更新任务状态为结束 + updateJobStatus(jobEntity.getId(), EpidemicConstant.OPERATION_STATUS_FINISH); + } + + }); + } + } + } catch (Exception e) { + log.error("【异步数据更新】出错:{}", ExceptionUtils.getErrorStackTrace(e)); + } finally { + if (lock != null) { + lock.unlock(); + } + } + } + + /** + * 更新任务状态 + * @param id + * @param status + + */ + private void updateJobStatus(String id, String status) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcSyncJobEntity::getId, id); + + IcSyncJobEntity updateEntity = new IcSyncJobEntity(); + updateEntity.setOperationStatus(status); + icSyncJobDao.update(updateEntity, query); + } + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiComparisonRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiComparisonRecordService.java index 5d846db7d7..fe49e4e884 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiComparisonRecordService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiComparisonRecordService.java @@ -7,6 +7,7 @@ import com.epmet.dto.form.ResiComparisonListFormDTO; import com.epmet.dto.result.ComparisonResultDTO; import com.epmet.dto.result.ResiComparisonListResultDTO; import com.epmet.entity.IcResiComparisonRecordEntity; +import com.epmet.entity.IcSyncJobEntity; /** * 居民信息与公安部信息比对记录表 @@ -20,5 +21,7 @@ public interface IcResiComparisonRecordService extends BaseService implements IcResiComparisonRecordService, ResultDataResolver { @Autowired private IcResiUserDao icResiUserDao; + @Autowired + private IcSyncJobDao icSyncJobDao; @Override @@ -77,6 +92,7 @@ public class IcResiComparisonRecordServiceImpl extends BaseServiceImpl list = new ArrayList<>(); IcResiComparisonRecordEntity recordEntity = new IcResiComparisonRecordEntity(); recordEntity.setCustomerId(entity.getCustomerId()); recordEntity.setResiId(entity.getId()); @@ -124,12 +140,15 @@ public class IcResiComparisonRecordServiceImpl extends BaseServiceImpl NumConstant.ONE) { - asyncComparison(formDTO); + //asyncComparison(formDTO); + saveComparison(formDTO); + saveJob(formDTO); resultDTO.setResult(true); resultDTO.setResultExplain("数据比对中请稍后"); return resultDTO; @@ -149,6 +168,7 @@ public class IcResiComparisonRecordServiceImpl extends BaseServiceImpl list = new ArrayList<>(); data.getList().forEach(o -> { IcResiComparisonRecordEntity recordEntity = new IcResiComparisonRecordEntity(); recordEntity.setCustomerId(o.getCustomerId()); @@ -181,11 +201,124 @@ public class IcResiComparisonRecordServiceImpl extends BaseServiceImpl data = null; + formDTO.setIsPage(false); + formDTO.setPageSize(NumConstant.ONE_THOUSAND); + int pageNo = formDTO.getPageNo(); + do { + data = getResiUserList(formDTO); + List list = new ArrayList<>(); + data.getList().forEach(o -> { + IcResiComparisonRecordEntity recordEntity = new IcResiComparisonRecordEntity(); + recordEntity.setCustomerId(o.getCustomerId()); + recordEntity.setResiId(o.getId()); + recordEntity.setResiName(o.getName()); + recordEntity.setResiIdCard(o.getIdCard()); + recordEntity.setType("0"); + recordEntity.setIdentical("0"); + recordEntity.setIsComparison("0"); + list.add(recordEntity); + }); + insertBatch(list); + formDTO.setPageNo(++pageNo); + } while (CollectionUtils.isNotEmpty(data.getList()) && data.getList().size() == formDTO.getPageSize()); + } + + public void saveJob(ComparisonFormDTO formDTO) { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId()); + if (null == agencyInfo) { + throw new EpmetException("未查询到组织信息:" + formDTO.getAgencyId()); + } + + // 查询该组织是否存在等待中或者进行中的任务 + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(IcSyncJobEntity::getOrgId, formDTO.getAgencyId()) + .eq(IcSyncJobEntity::getJobType, EpidemicConstant.JOB_TYPE_COMPARISON) + .in(IcSyncJobEntity::getOperationStatus, OPERATION_STATUS_WAITING, OPERATION_STATUS_PROCESSING); + List icSyncJobEntities = icSyncJobDao.selectList(qw); + // 当前组织下存在同步任务 + if (CollectionUtils.isNotEmpty(icSyncJobEntities)) { + throw new EpmetException(EpmetErrorCode.EXIST_SYNC_JOB_ERROR.getCode()); + } + + // 不存在新增一条记录 + IcSyncJobEntity e = new IcSyncJobEntity(); + e.setCustomerId(formDTO.getCustomerId()); + e.setOrgId(formDTO.getAgencyId()); + e.setPid(agencyInfo.getPid()); + e.setOrgIdPath(StringUtils.isBlank(agencyInfo.getPids()) ? agencyInfo.getId() : agencyInfo.getPids() + ":" + agencyInfo.getId()); + e.setJobType(EpidemicConstant.JOB_TYPE_COMPARISON); + e.setOperatorId(formDTO.getUserId()); + e.setOperationStatus(OPERATION_STATUS_WAITING); + icSyncJobDao.insert(e); + } + @Override + public void comparisonUserData(IcSyncJobEntity jobEntity) { + ComparisonFormDTO formDTO = new ComparisonFormDTO(); + PageData data = null; + formDTO.setIsPage(false); + formDTO.setPageSize(NumConstant.ONE_THOUSAND); + int pageNo = NumConstant.ONE; + do { + data = getComparisonList(formDTO); + data.getList().forEach(o -> { + o.setIsComparison("1"); + YtSfhyxxcxdsjjResDTO sfhyxxcxdsjjResult = YtHsResUtils.sfhyxxcxdsjj(o.getResiIdCard(), o.getResiName()); + /*YtSfhyxxcxdsjjResDTO sfhyxxcxdsjjResult = new YtSfhyxxcxdsjjResDTO(); + YtSfhyxxcxdsjjResDTO.YtSfhyxxcxdsjjDetail f = new YtSfhyxxcxdsjjResDTO.YtSfhyxxcxdsjjDetail(); + List l = new ArrayList<>(); + YtSfhyxxcxdsjjResDTO.Result d = new YtSfhyxxcxdsjjResDTO.Result(); + d.setGMSFHM("371424188808087654"); + d.setXM("小二"); + l.add(d); + f.setResult(l); + sfhyxxcxdsjjResult.setData(f);*/ + if (null == sfhyxxcxdsjjResult || sfhyxxcxdsjjResult.getCode() != 200) { + o.setComparisonResult("接口调用失败"); + } else { + //数据已处理 + o.setType("1"); + //公安部不存在的数据 + if (CollectionUtils.isEmpty(sfhyxxcxdsjjResult.getData().getResult())) { + o.setComparisonResult("公安部身份证号对应数据不存在"); + //代表程序干活了 + o.setIdentical("2"); + } else {//在公安部查询到了数据 + o.setPoliceName(sfhyxxcxdsjjResult.getData().getResult().get(0).getXM()); + o.setPoliceIdCard(sfhyxxcxdsjjResult.getData().getResult().get(0).getGMSFHM()); + //公安部跟居民库姓名不一致 + if (!o.getResiName().equals(sfhyxxcxdsjjResult.getData().getResult().get(0).getXM())) { + o.setIdentical("0"); + o.setComparisonResult("公安部与居民库姓名不相同"); + } else { + o.setIdentical("1"); + } + } + } + o.setCreatedBy(formDTO.getUserId()); + o.setUpdatedBy(formDTO.getUserId()); }); + baseDao.saveInsert(data.getList()); formDTO.setPageNo(++pageNo); } while (CollectionUtils.isNotEmpty(data.getList()) && data.getList().size() == formDTO.getPageSize()); } + private PageData getComparisonList(ComparisonFormDTO formDTO) { + PageInfo data = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()) + .doSelectPageInfo(() -> baseDao.getComparisonList(formDTO)); + return new PageData(data.getList(), data.getTotal()); + } private PageData getResiUserList(ComparisonFormDTO formDTO) { PageInfo data = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiComparisonRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiComparisonRecordDao.xml index a4b098bb07..bb438e5500 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiComparisonRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiComparisonRecordDao.xml @@ -3,10 +3,7 @@ - - - SELECT replace(uuid(),'-','') AS ID - + INSERT INTO ic_resi_comparison_record ( id, @@ -26,25 +23,30 @@ created_time, updated_by, updated_time - ) VALUE ( - #{id}, - #{customerId}, - #{resiId}, - #{resiName}, - #{resiIdCard}, - #{policeName}, - #{policeIdCard}, - #{type}, - #{identical}, - #{isComparison}, - #{comparisonResult}, + ) VALUE + + ( + REPLACE(UUID(), '-', ''), + #{i.customerId}, + #{i.resiId}, + #{i.resiName}, + #{i.resiIdCard}, + #{i.policeName}, + #{i.policeIdCard}, + #{i.type}, + #{i.identical}, + #{i.isComparison}, + #{i.comparisonResult}, 0, 0, - #{createdBy}, + #{i.createdBy}, now(), - #{createdBy}, + #{i.createdBy}, now() - ) ON DUPLICATE KEY UPDATE + ) + + ON DUPLICATE KEY + UPDATE resi_name = values(resi_name), resi_id_card = values(resi_id_card), police_name = values(police_name), @@ -54,33 +56,27 @@ is_comparison = values(is_comparison), comparison_result = values(comparison_result), updated_time = NOW(), - updated_by = #{updatedBy} + updated_by = values(updated_by) + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index 5a5f1bafbf..c65e178660 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -1404,21 +1404,23 @@ From cc08fcbb8ede035326e87d02e9497a25d268dea8 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Nov 2022 15:39:24 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/IcResiComparisonRecordExcel.java | 2 +- .../V0.0.88__ic_resi_comparison_record.sql | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.88__ic_resi_comparison_record.sql diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcResiComparisonRecordExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcResiComparisonRecordExcel.java index 2442b95a31..8bdf68cb39 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcResiComparisonRecordExcel.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcResiComparisonRecordExcel.java @@ -29,7 +29,7 @@ public class IcResiComparisonRecordExcel implements Serializable { /** * 居民库证件号 */ - @ExcelProperty(value = "居民库=证件号") + @ExcelProperty(value = "居民库-证件号") @ColumnWidth(20) private String resiIdCard; diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.88__ic_resi_comparison_record.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.88__ic_resi_comparison_record.sql new file mode 100644 index 0000000000..3e05ced2fc --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.88__ic_resi_comparison_record.sql @@ -0,0 +1,21 @@ +CREATE TABLE `ic_resi_comparison_record` ( + `ID` varchar(64) NOT NULL COMMENT 'ID', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id', + `RESI_ID` varchar(64) NOT NULL COMMENT 'ic_resi_user.id【比对时的数据值】', + `RESI_NAME` varchar(64) NOT NULL COMMENT '数字社区人员姓名【比对时的数据值】', + `RESI_ID_CARD` varchar(18) NOT NULL COMMENT '数据社区身份证号【比对时的数据值】', + `POLICE_NAME` varchar(64) DEFAULT NULL COMMENT '公安部人员姓名', + `POLICE_ID_CARD` varchar(18) DEFAULT NULL COMMENT '公安部人员证件号', + `TYPE` varchar(1) NOT NULL DEFAULT '0' COMMENT '数据状态(0:未处理 1:已处理)', + `IDENTICAL` varchar(1) NOT NULL DEFAULT '0' COMMENT '信息一致性(0:否 1:是 2:-)2代表程序比对了没有匹配上', + `IS_COMPARISON` varchar(1) DEFAULT '0' COMMENT '是否比对过(0:否 1:是)', + `COMPARISON_RESULT` varchar(255) DEFAULT NULL COMMENT '比对结果说明', + `DEL_FLAG` int(11) NOT NULL COMMENT '删除标识', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`), + UNIQUE KEY `resi_id` (`RESI_ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='居民信息与公安部信息比对记录表'; From ed353fcbbcd0a40f2c70c9888b65d4232cea45b4 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Nov 2022 16:30:35 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IcResiComparisonRecordServiceImpl.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiComparisonRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiComparisonRecordServiceImpl.java index fdb31f71a9..792774849f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiComparisonRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiComparisonRecordServiceImpl.java @@ -115,11 +115,11 @@ public class IcResiComparisonRecordServiceImpl extends BaseServiceImpl Date: Tue, 15 Nov 2022 16:45:33 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/IcResiComparisonRecordServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiComparisonRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiComparisonRecordServiceImpl.java index 792774849f..78b76b12f7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiComparisonRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiComparisonRecordServiceImpl.java @@ -351,6 +351,10 @@ public class IcResiComparisonRecordServiceImpl extends BaseServiceImpl Date: Tue, 15 Nov 2022 17:03:19 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/IcResiComparisonRecordDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiComparisonRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiComparisonRecordDao.xml index bb438e5500..1301e1c4b3 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiComparisonRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiComparisonRecordDao.xml @@ -96,7 +96,7 @@ AND b.type =#{type} - ORDER BY a.pids ASC, b.created_time DESC + ORDER BY a.pids ASC, b.created_time DESC, a.`NAME` ASC