get rid of external_package_name, FID_CHANGED, PROCESSING_REPEATED, NO_FID
This commit is contained in:
parent
0cfe976670
commit
7004a1b7e3
17 changed files with 23 additions and 180 deletions
|
|
@ -1,9 +1,10 @@
|
|||
package ru.nbch.credit_tracker.component.comparator;
|
||||
|
||||
import ru.nbch.credit_tracker.entities.app.UserPackage;
|
||||
import ru.nbch.credit_tracker.enums.Status;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.function.ToIntFunction;
|
||||
import ru.nbch.credit_tracker.entities.app.UserPackage;
|
||||
import ru.nbch.credit_tracker.enums.Status;
|
||||
|
||||
public class DeletePackageStatusComparator {
|
||||
|
||||
|
|
@ -15,7 +16,7 @@ public class DeletePackageStatusComparator {
|
|||
try {
|
||||
Status status = Status.valueOf(str);
|
||||
return switch (status) {
|
||||
case ON_MONITORING, PROCESSING_REPEATED, NO_FID -> 1;
|
||||
case ON_MONITORING -> 1;
|
||||
case DELETED -> 0;
|
||||
default -> -1;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
package ru.nbch.credit_tracker.component.comparator;
|
||||
|
||||
import ru.nbch.credit_tracker.entities.app.UserPackage;
|
||||
import ru.nbch.credit_tracker.enums.Status;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.EnumSet;
|
||||
import java.util.function.ToIntFunction;
|
||||
import ru.nbch.credit_tracker.entities.app.UserPackage;
|
||||
import ru.nbch.credit_tracker.enums.Status;
|
||||
|
||||
public class ReportListPackageStatusComparator {
|
||||
|
||||
public static final EnumSet<Status> reportedStatuses = EnumSet.of(
|
||||
Status.ON_MONITORING, Status.PROCESSING_REPEATED
|
||||
Status.ON_MONITORING
|
||||
);
|
||||
|
||||
public static Comparator<UserPackage> INSTANCE = Comparator
|
||||
|
|
@ -24,7 +25,7 @@ public class ReportListPackageStatusComparator {
|
|||
try {
|
||||
Status status = Status.valueOf(str);
|
||||
return switch (status) {
|
||||
case ON_MONITORING, PROCESSING_REPEATED -> 1;
|
||||
case ON_MONITORING -> 1;
|
||||
default -> -1;
|
||||
};
|
||||
} catch (Throwable e) {
|
||||
|
|
|
|||
|
|
@ -2,10 +2,8 @@ package ru.nbch.credit_tracker.enums;
|
|||
|
||||
public enum Status {
|
||||
ON_MONITORING, // пакет стоит на мониторинге в оф. сервисе
|
||||
NO_FID,
|
||||
REJECTED, // отклонен на стороне НБКИ
|
||||
PROCESSING, // идет поиск телефона и расчет флагов по пакету
|
||||
PROCESSING_REPEATED,
|
||||
ACCEPTED,
|
||||
DELETED, // пакет удален
|
||||
ERROR; // произошла ошибка при постановке пакета на мониторинг в оф. сервис
|
||||
|
|
|
|||
|
|
@ -223,8 +223,7 @@ public class SignalFacade {
|
|||
pack.setPackageName(data.getPackageName());
|
||||
pack.setCreatedAt(data.getCreatedAt() != null ? data.getCreatedAt().toString() : null);
|
||||
Status packageStatus = EnumUtil.getEnum(Status.class, data.getStatus());
|
||||
Status statusForClient = packageStatus == Status.ACCEPTED ? Status.PROCESSING :
|
||||
Arrays.asList(Status.PROCESSING_REPEATED, Status.NO_FID).contains(packageStatus) ? Status.ON_MONITORING : packageStatus;
|
||||
Status statusForClient = packageStatus == Status.ACCEPTED ? Status.PROCESSING : packageStatus;
|
||||
assert statusForClient != null;
|
||||
pack.setStatus(statusForClient.name());
|
||||
if (packageStatus == Status.DELETED) {
|
||||
|
|
@ -244,7 +243,7 @@ public class SignalFacade {
|
|||
-> clientExcp(SignalError.ERROR_016, XmlErrorFormat.MonitoringPackageDeleteError, packageName));
|
||||
|
||||
Status status = EnumUtil.getEnum(Status.class, packageToDelete.getStatus());
|
||||
if (!Arrays.asList(Status.ON_MONITORING, Status.NO_FID).contains(status)) {
|
||||
if (Status.ON_MONITORING != status) {
|
||||
throw clientExcp(deleteStatusError(status), XmlErrorFormat.MonitoringPackageDeleteError, packageName);
|
||||
}
|
||||
|
||||
|
|
@ -266,7 +265,6 @@ public class SignalFacade {
|
|||
case PROCESSING, ACCEPTED -> SignalError.ERROR_023;
|
||||
case REJECTED, ERROR -> SignalError.ERROR_024;
|
||||
case DELETED -> SignalError.ERROR_025;
|
||||
case PROCESSING_REPEATED -> SignalError.ERROR_026;
|
||||
default -> throw new IllegalStateException("Unexpected value: " + status);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,10 +17,6 @@ public interface PackagesRecordsMapper {
|
|||
@Param("limit") int limit,
|
||||
@Param("offset") int offset);
|
||||
|
||||
List<Long> uniquePackageIdByPhones(@Param("json") String json);
|
||||
|
||||
List<Long> uniquePackageIdByInnAndRegNum(@Param("json") String json);
|
||||
|
||||
List<UserPackagePhoneData> selectUserPackagePhoneData(@Param("json") String json);
|
||||
|
||||
List<UserPackageLegalData> selectUserPackageLegalData(@Param("json") String json);
|
||||
|
|
|
|||
|
|
@ -25,14 +25,8 @@ public interface UserPackageMapper {
|
|||
void updatePackageOnMonitoringSuccess(@Param("id") Long id,
|
||||
@Param("monitoringAt") LocalDateTime monitoringAt);
|
||||
|
||||
void updateNoFidMonitoring(@Param("id") Long id);
|
||||
|
||||
void setFidChanged(@Param("packageIds") List<Long> id);
|
||||
|
||||
UserPackage findPackage(@Param("id") Long id);
|
||||
|
||||
List<UserPackage> findForRepeatedPackages();
|
||||
|
||||
List<UserPackage> findUserPackages(@Param("userId") String userId,
|
||||
@Param("statuses") List<String> status);
|
||||
|
||||
|
|
|
|||
|
|
@ -59,17 +59,13 @@ public class UserPackageService {
|
|||
}
|
||||
|
||||
public List<UserPackage> findActivePackages(String userId) {
|
||||
return userPackageMapper.findUserPackages(userId.substring(0, 6), Arrays.asList(Status.ON_MONITORING.name(), Status.NO_FID.name()));
|
||||
return userPackageMapper.findUserPackages(userId.substring(0, 6), Arrays.asList(Status.ON_MONITORING.name()));
|
||||
}
|
||||
|
||||
public UserPackage findByPackageName(String packageName) {
|
||||
return userPackageMapper.findByPackageName(packageName);
|
||||
}
|
||||
|
||||
public void setFidChanged(List<Long> id) {
|
||||
userPackageMapper.setFidChanged(id);
|
||||
}
|
||||
|
||||
public List<UserPackage> findAllPackages(String userId) {
|
||||
return userPackageMapper.findAllPackagesByUserId(userId.substring(0, 6));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ public class StartupRestoreService {
|
|||
}
|
||||
|
||||
private void processingRestore() {
|
||||
List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus(Status.PROCESSING.name(), Status.PROCESSING_REPEATED.name());
|
||||
List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus(Status.PROCESSING.name());
|
||||
log.debug("Found {} packages in status PROCESSING", packages.size());
|
||||
for (UserPackage userPackage : packages) {
|
||||
if (userPackage.getSubjectType() == 1) {
|
||||
|
|
|
|||
|
|
@ -5,15 +5,12 @@ import org.springframework.scheduling.annotation.EnableScheduling;
|
|||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||
import ru.nbch.credit_tracker.entities.app.UserPackage;
|
||||
import ru.nbch.credit_tracker.mapper.signal.LegalsMapMapper;
|
||||
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
||||
import ru.nbch.credit_tracker.service.signal.PhonesMapService;
|
||||
import ru.nbch.credit_tracker.service.task.*;
|
||||
import ru.nbch.credit_tracker.service.task.impl.PipelineMode;
|
||||
import ru.nbch.pipeline.engine.core.Pipeline;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@Slf4j
|
||||
|
|
@ -24,9 +21,6 @@ public class UpdatingFidService {
|
|||
private final LpPipelinePackageFabric lpPipelinePackageFabric;
|
||||
private final NpPipelineRecalcOrchestrator npPipelineRecalcOrchestrator;
|
||||
private final LpPipelineRecalcOrchestrator lpPipelineRecalcOrchestrator;
|
||||
private final NpPipelinePackageOrchestrator npPipelinePackageOrchestrator;
|
||||
private final LpPipelinePackageOrchestrator lpPipelinePackageOrchestrator;
|
||||
private final UserPackageMapper userPackageMapper;
|
||||
private final PhonesMapService phonesMapService;
|
||||
private final LegalsMapMapper legalsMapMapper;
|
||||
|
||||
|
|
@ -35,18 +29,12 @@ public class UpdatingFidService {
|
|||
LpPipelinePackageFabric lpPipelinePackageFabric,
|
||||
NpPipelineRecalcOrchestrator npPipelineRecalcOrchestrator,
|
||||
LpPipelineRecalcOrchestrator lpPipelineRecalcOrchestrator,
|
||||
NpPipelinePackageOrchestrator npPipelinePackageOrchestrator,
|
||||
LpPipelinePackageOrchestrator lpPipelinePackageOrchestrator,
|
||||
UserPackageMapper userPackageMapper,
|
||||
PhonesMapService phonesMapService,
|
||||
LegalsMapMapper legalsMapMapper) {
|
||||
this.npPipelinePackageFabric = npPipelinePackageFabric;
|
||||
this.lpPipelinePackageFabric = lpPipelinePackageFabric;
|
||||
this.npPipelineRecalcOrchestrator = npPipelineRecalcOrchestrator;
|
||||
this.lpPipelineRecalcOrchestrator = lpPipelineRecalcOrchestrator;
|
||||
this.npPipelinePackageOrchestrator = npPipelinePackageOrchestrator;
|
||||
this.lpPipelinePackageOrchestrator = lpPipelinePackageOrchestrator;
|
||||
this.userPackageMapper = userPackageMapper;
|
||||
this.phonesMapService = phonesMapService;
|
||||
this.legalsMapMapper = legalsMapMapper;
|
||||
}
|
||||
|
|
@ -59,7 +47,7 @@ public class UpdatingFidService {
|
|||
}
|
||||
log.info("Delete unused phones");
|
||||
phonesMapService.deleteUnusedPhones();
|
||||
log.info("Start updating fids and PD");
|
||||
log.info("Start updating fids");
|
||||
try {
|
||||
Pipeline pipeline = npPipelinePackageFabric.buildRecalculationPD(new SetupParam(null, 1, PipelineMode.RECALC_FID));
|
||||
CompletableFuture<?> future = npPipelineRecalcOrchestrator.startOrReject(pipeline);
|
||||
|
|
@ -70,17 +58,7 @@ public class UpdatingFidService {
|
|||
return;
|
||||
}
|
||||
|
||||
List<UserPackage> packagesRepeated = userPackageMapper.findForRepeatedPackages();
|
||||
packagesRepeated.forEach(userPackage -> {
|
||||
Long packageId = userPackage.getId();
|
||||
SetupParam setupParam = new SetupParam(packageId, 1, PipelineMode.RESEND);
|
||||
try {
|
||||
Pipeline makeXmlByCache = npPipelinePackageFabric.build(setupParam);
|
||||
npPipelinePackageOrchestrator.startOrDelay(makeXmlByCache, packageId);
|
||||
} catch (Exception e) {
|
||||
log.error("Failed to build pipeline", e);
|
||||
}
|
||||
});
|
||||
log.info("Updating NP fids successfully completed.");
|
||||
} finally {
|
||||
log.info("pipeline finished");
|
||||
pipeline.close();
|
||||
|
|
@ -98,7 +76,7 @@ public class UpdatingFidService {
|
|||
log.info("The previous task has not yet been completed.");
|
||||
return;
|
||||
}
|
||||
log.info("Delete unused phones");
|
||||
log.info("Delete unused lp maps");
|
||||
legalsMapMapper.deleteUnusedMaps();
|
||||
log.info("Start updating fids");
|
||||
try {
|
||||
|
|
@ -111,17 +89,7 @@ public class UpdatingFidService {
|
|||
return;
|
||||
}
|
||||
|
||||
List<UserPackage> packagesRepeated = userPackageMapper.findForRepeatedPackages();
|
||||
packagesRepeated.forEach(userPackage -> {
|
||||
Long packageId = userPackage.getId();
|
||||
SetupParam setupParam = new SetupParam(packageId, 2, PipelineMode.RESEND);
|
||||
try {
|
||||
Pipeline setupPipeline = lpPipelinePackageFabric.build(setupParam);
|
||||
lpPipelinePackageOrchestrator.startOrDelay(setupPipeline, packageId);
|
||||
} catch (Exception e) {
|
||||
log.error("Failed to build pipeline", e);
|
||||
}
|
||||
});
|
||||
log.info("Updating LP fids successfully completed.");
|
||||
} finally {
|
||||
log.info("pipeline finished");
|
||||
pipeline.close();
|
||||
|
|
|
|||
|
|
@ -110,34 +110,6 @@ public class PackageRecordsService {
|
|||
}
|
||||
}
|
||||
|
||||
public List<Long> selectNpUniquePackageIds(List<Long> phones) {
|
||||
try {
|
||||
String json = entityToJsonMapper.writeValueAsString(phones.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(phone -> new HashMap<String, Object>() {{
|
||||
put("phone", phone);
|
||||
}}).toList());
|
||||
return packagesRecordsMapper.uniquePackageIdByPhones(json);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public List<Long> selectLpUniquePackageIds(List<LegalsMap> legalsMaps) {
|
||||
try {
|
||||
String json = entityToJsonMapper.writeValueAsString(legalsMaps.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(s -> new HashMap<String, Object>() {{
|
||||
put("inn", s.getInn());
|
||||
put("reg_num", s.getRegNum());
|
||||
}}).toList());
|
||||
|
||||
return packagesRecordsMapper.uniquePackageIdByInnAndRegNum(json);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public List<UserPackagePhoneData> selectUserPackagePhoneData(Set<Long> phones) {
|
||||
try {
|
||||
String json = entityToJsonMapper.writeValueAsString(phones.stream()
|
||||
|
|
|
|||
|
|
@ -112,8 +112,6 @@ public abstract class PackageOrchestrator {
|
|||
}
|
||||
if (!res.hasFids()) {
|
||||
log.info("No one fid was found by packageId : {}.", packageId);
|
||||
userPackageMapper.updateNoFidMonitoring(packageId);
|
||||
return;
|
||||
}
|
||||
|
||||
PipelineMode mode = ctx.get(PackageVariable.mode);
|
||||
|
|
|
|||
|
|
@ -107,12 +107,6 @@ public class LpFidUpdater implements Handler<SubjectPayload, VoidPayload> {
|
|||
legalsMapService.updateSearchedAt(notChangingFidLegalMaps);
|
||||
}
|
||||
|
||||
if (!changingFids.isEmpty()) {
|
||||
List<Long> packageIds = packageRecordsService.selectLpUniquePackageIds(changingFids);
|
||||
if (!packageIds.isEmpty()) {
|
||||
userPackageService.setFidChanged(packageIds);
|
||||
}
|
||||
}
|
||||
return new VoidPayload();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,9 +8,7 @@ import ru.nbch.credit_tracker.model.SubjectProfile;
|
|||
import ru.nbch.credit_tracker.model.impl.PackageVariable;
|
||||
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
||||
import ru.nbch.credit_tracker.model.impl.VoidPayload;
|
||||
import ru.nbch.credit_tracker.service.UserPackageService;
|
||||
import ru.nbch.credit_tracker.service.indic.PersonService;
|
||||
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
||||
import ru.nbch.credit_tracker.service.signal.PhonesMapService;
|
||||
import ru.nbch.credit_tracker.utils.CTUtil;
|
||||
import ru.nbch.pipeline.engine.core.Handler;
|
||||
|
|
@ -25,20 +23,14 @@ import java.util.stream.Stream;
|
|||
public class NpFidUpdater implements Handler<SubjectPayload, VoidPayload> {
|
||||
private final PersonService personService;
|
||||
private final CreditTrackerSettings creditTrackerSettings;
|
||||
private final PackageRecordsService packageRecordsService;
|
||||
private final PhonesMapService phonesMapService;
|
||||
private final UserPackageService userPackageService;
|
||||
|
||||
public NpFidUpdater(PersonService personService,
|
||||
CreditTrackerSettings creditTrackerSettings,
|
||||
PackageRecordsService packageRecordsService,
|
||||
PhonesMapService phonesMapService,
|
||||
UserPackageService userPackageService) {
|
||||
PhonesMapService phonesMapService) {
|
||||
this.personService = personService;
|
||||
this.creditTrackerSettings = creditTrackerSettings;
|
||||
this.packageRecordsService = packageRecordsService;
|
||||
this.phonesMapService = phonesMapService;
|
||||
this.userPackageService = userPackageService;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -79,12 +71,6 @@ public class NpFidUpdater implements Handler<SubjectPayload, VoidPayload> {
|
|||
phonesMapService.updateSearchedAt(notChangedPhones);
|
||||
}
|
||||
|
||||
if (!changingFids.isEmpty()) {
|
||||
List<Long> packageIds = packageRecordsService.selectNpUniquePackageIds(changingFids);
|
||||
if (!packageIds.isEmpty()) {
|
||||
userPackageService.setFidChanged(packageIds);
|
||||
}
|
||||
}
|
||||
return new VoidPayload();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -231,8 +231,7 @@
|
|||
AND sup.status IN
|
||||
(
|
||||
'ON_MONITORING',
|
||||
'PROCESSING',
|
||||
'PROCESSING_REPEATED'
|
||||
'PROCESSING'
|
||||
))
|
||||
</delete>
|
||||
|
||||
|
|
|
|||
|
|
@ -42,30 +42,6 @@
|
|||
</foreach>
|
||||
</select>
|
||||
|
||||
<select id="uniquePackageIdByPhones" resultType="java.lang.Long">
|
||||
WITH src AS (SELECT phone
|
||||
FROM json_to_recordset(#{json}::json) AS t(
|
||||
phone bigint
|
||||
))
|
||||
select distinct (package_id)
|
||||
FROM signals_phone_fid_map spr
|
||||
join signals_user_packages sup on sup.id = spr.package_id
|
||||
where spr.phone_l in (select * from src) and sup.status = 'ON_MONITORING'
|
||||
</select>
|
||||
|
||||
<select id="uniquePackageIdByInnAndRegNum" resultType="java.lang.Long">
|
||||
WITH src AS (SELECT inn, reg_num
|
||||
FROM json_to_recordset(#{json}::json) AS t(
|
||||
inn bigint,
|
||||
reg_num bigint
|
||||
))
|
||||
select distinct (package_id)
|
||||
FROM signals_legal_fid_map slfm
|
||||
JOIN signals_user_packages sup ON sup.id = slfm.package_id
|
||||
WHERE (slfm.inn, slfm.reg_num) IN (SELECT inn, reg_num FROM src)
|
||||
AND sup.status = 'ON_MONITORING'
|
||||
</select>
|
||||
|
||||
<select id="selectUserPackagePhoneData" resultType="ru.nbch.credit_tracker.model.UserPackagePhoneData">
|
||||
WITH src AS (SELECT phone
|
||||
FROM json_to_recordset(#{json}::json) AS t(
|
||||
|
|
|
|||
|
|
@ -210,8 +210,7 @@
|
|||
AND sup.status IN
|
||||
(
|
||||
'ON_MONITORING',
|
||||
'PROCESSING',
|
||||
'PROCESSING_REPEATED'
|
||||
'PROCESSING'
|
||||
))
|
||||
</delete>
|
||||
</mapper>
|
||||
|
|
@ -16,7 +16,6 @@
|
|||
<result property="monitoringAt" column="monitoring_at"/>
|
||||
<result property="rejectStatus" column="reject_status"/>
|
||||
<result property="signalTypes" column="signal_types"/>
|
||||
<result property="externalPackageName" column="external_package_name"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="isPackageNotUnique" resultType="boolean">
|
||||
|
|
@ -63,8 +62,8 @@
|
|||
|
||||
<select id="insertPackage" resultType="java.lang.Long"
|
||||
parameterType="ru.nbch.credit_tracker.entities.app.UserPackage">
|
||||
INSERT INTO signals_user_packages (membercode, package_name, subject_type, signal_types, created_at, status, external_package_name)
|
||||
values (#{userPackage.userId}, #{userPackage.packageName}, #{userPackage.subjectType}, #{userPackage.signalTypes}, #{userPackage.createdAt}, #{userPackage.status}, concat(substring(#{userPackage.userId}, 1, 6), '_', #{userPackage.packageName})) RETURNING id
|
||||
INSERT INTO signals_user_packages (membercode, package_name, subject_type, signal_types, created_at, status)
|
||||
values (#{userPackage.userId}, #{userPackage.packageName}, #{userPackage.subjectType}, #{userPackage.signalTypes}, #{userPackage.createdAt}, #{userPackage.status}) RETURNING id
|
||||
</select>
|
||||
|
||||
<update id="updatePackageStatus">
|
||||
|
|
@ -73,16 +72,6 @@
|
|||
WHERE id = #{packageId}
|
||||
</update>
|
||||
|
||||
<update id="setFidChanged">
|
||||
UPDATE signals_user_packages
|
||||
SET fid_changed = 1,
|
||||
status = 'PROCESSING_REPEATED'
|
||||
WHERE id in
|
||||
<foreach item="packageId" collection="packageIds" open="(" separator="," close=")">
|
||||
#{packageId}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<update id="updatePackageLastDownloadedReport" parameterType="string">
|
||||
WITH src AS (
|
||||
SELECT
|
||||
|
|
@ -105,14 +94,7 @@
|
|||
<if test="monitoringAt != null">
|
||||
monitoring_at = #{monitoringAt},
|
||||
</if>
|
||||
status = 'ON_MONITORING',
|
||||
fid_changed = null
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<update id="updateNoFidMonitoring">
|
||||
UPDATE signals_user_packages
|
||||
SET monitoring_at = created_at, status = 'NO_FID', fid_changed = null
|
||||
status = 'ON_MONITORING'
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
|
|
@ -154,21 +136,6 @@
|
|||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="findForRepeatedPackages" resultMap="packageDataResultMap">
|
||||
SELECT id,
|
||||
membercode,
|
||||
package_name,
|
||||
created_at,
|
||||
status,
|
||||
deactivated_at,
|
||||
last_downloaded_report,
|
||||
monitoring_at,
|
||||
reject_status,
|
||||
signal_types
|
||||
FROM signals_user_packages
|
||||
WHERE fid_changed = 1 and status = 'PROCESSING_REPEATED'
|
||||
</select>
|
||||
|
||||
<select id="findOnMonitoringPackages" resultMap="packageDataResultMap">
|
||||
SELECT id,
|
||||
membercode,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue