Save last downloaded report name
This commit is contained in:
parent
4bd58624ed
commit
2c0525d28d
4 changed files with 53 additions and 24 deletions
|
|
@ -22,9 +22,6 @@ public interface UserPackageMapper {
|
|||
void updatePackageStatus(@Param("packageId") Long packageId,
|
||||
@Param("status") String status);
|
||||
|
||||
void updatePackageLastDownloadedReport(@Param("id") Long id,
|
||||
@Param("fileName") String fileName);
|
||||
|
||||
void updatePackageOnMonitoringSuccess(@Param("id") Long id,
|
||||
@Param("monitoringAt") LocalDateTime monitoringAt);
|
||||
|
||||
|
|
@ -51,4 +48,6 @@ public interface UserPackageMapper {
|
|||
@Param("packageName") String packageName);
|
||||
|
||||
void setRejectedStatus(@Param("id") Long id, @Param("status") String status);
|
||||
|
||||
void updatePackageLastDownloadedReport(@Param("json") String json);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import ru.nbch.credit_tracker.model.IUserPackageData;
|
|||
import ru.nbch.credit_tracker.model.SignalKafkaEvent;
|
||||
import ru.nbch.credit_tracker.model.UserPackageLegalData;
|
||||
import ru.nbch.credit_tracker.model.UserPackagePhoneData;
|
||||
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
||||
import ru.nbch.credit_tracker.utils.CTUtil;
|
||||
import ru.nbch.credit_tracker.utils.CtFileUtils;
|
||||
import ru.nbch.credit_tracker.utils.ZipUtils;
|
||||
|
|
@ -50,13 +51,16 @@ public class SignalKafkaEventWriterService {
|
|||
|
||||
private final BlockingQueue<SignalKafkaEvent> signalEventsQueue;
|
||||
private final UserPackageMapper userPackageMapper;
|
||||
private final PackageRecordsService packageRecordsService;
|
||||
private final CreditTrackerSettings config;
|
||||
|
||||
public SignalKafkaEventWriterService(@Qualifier("signalKafkaEventQueue") BlockingQueue<SignalKafkaEvent> signalEventsQueue,
|
||||
UserPackageMapper userPackageMapper,
|
||||
PackageRecordsService packageRecordsService,
|
||||
CreditTrackerSettings config) {
|
||||
this.signalEventsQueue = signalEventsQueue;
|
||||
this.userPackageMapper = userPackageMapper;
|
||||
this.packageRecordsService = packageRecordsService;
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
|
|
@ -133,15 +137,18 @@ public class SignalKafkaEventWriterService {
|
|||
* Упаковывает все результирующие xml в архив
|
||||
*/
|
||||
private void rotate() {
|
||||
List<UserPackage> packagesToUpdate = new ArrayList<>();
|
||||
List<UserPackage> userPackages = userPackageMapper.findAllPackagesByStatus(Status.ON_MONITORING.name());
|
||||
for (UserPackage userPackage : userPackages) {
|
||||
try {
|
||||
movedAndZip(userPackage);
|
||||
String reportName = movedAndZip(userPackage);
|
||||
userPackage.setLastDownloadedReport(reportName);
|
||||
packagesToUpdate.add(userPackage);
|
||||
} catch (IOException e) {
|
||||
log.error("Error while rotating user package {}", userPackage.getPackageName(), e);
|
||||
}
|
||||
}
|
||||
// TODO update signals_user_packages
|
||||
packageRecordsService.updatePackageLastDownloadedReport(packagesToUpdate);
|
||||
}
|
||||
|
||||
private void writeStart(Path filePath, IUserPackageData userPackageData) {
|
||||
|
|
@ -160,7 +167,8 @@ public class SignalKafkaEventWriterService {
|
|||
}
|
||||
}
|
||||
|
||||
private void movedAndZip(UserPackage userPackage) throws IOException {
|
||||
private String movedAndZip(UserPackage userPackage) throws IOException {
|
||||
String finalName = "";
|
||||
String commonMembercode = userPackage.getUserId().substring(0, 6);
|
||||
Path tmpFilePath = Path.of(config.getLoadDir(),
|
||||
"tmp", commonMembercode, userPackage.getPackageName())
|
||||
|
|
@ -177,12 +185,12 @@ public class SignalKafkaEventWriterService {
|
|||
Files.createDirectories(rootReportPath);
|
||||
}
|
||||
LocalDateTime newReportDate = LocalDateTime.now();
|
||||
Path responsePath = rootReportPath.resolve(
|
||||
String.format("%s_%s_%s.xml",
|
||||
commonMembercode,
|
||||
userPackage.getPackageName(),
|
||||
newReportDate.format(CTUtil.responseReportDateTimeFormatter))
|
||||
);
|
||||
finalName = String.format("%s_%s_%s.xml",
|
||||
commonMembercode,
|
||||
userPackage.getPackageName(),
|
||||
newReportDate.format(CTUtil.responseReportDateTimeFormatter));
|
||||
|
||||
Path responsePath = rootReportPath.resolve(finalName);
|
||||
|
||||
Files.move(tmpFilePath, responsePath, StandardCopyOption.REPLACE_EXISTING);
|
||||
|
||||
|
|
@ -190,6 +198,8 @@ public class SignalKafkaEventWriterService {
|
|||
log.info("New report file by path: {}", zipFile);
|
||||
CtFileUtils.deleteQuietly(responsePath);
|
||||
}
|
||||
|
||||
return finalName.replace("xml", "zip");
|
||||
}
|
||||
|
||||
private void writeNpPart(Path filePath, SignalKafkaEvent event) {
|
||||
|
|
|
|||
|
|
@ -5,14 +5,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.nbch.credit_tracker.entities.app.LegalsMap;
|
||||
import ru.nbch.credit_tracker.entities.app.PackagesRecordsMap;
|
||||
import ru.nbch.credit_tracker.entities.app.PhonesMap;
|
||||
import ru.nbch.credit_tracker.entities.app.SignalLegalFidMap;
|
||||
import ru.nbch.credit_tracker.mapper.signal.LegalsFidMapMapper;
|
||||
import ru.nbch.credit_tracker.mapper.signal.LegalsMapMapper;
|
||||
import ru.nbch.credit_tracker.mapper.signal.PackagesRecordsMapper;
|
||||
import ru.nbch.credit_tracker.mapper.signal.PhonesMapMapper;
|
||||
import ru.nbch.credit_tracker.entities.app.*;
|
||||
import ru.nbch.credit_tracker.mapper.signal.*;
|
||||
import ru.nbch.credit_tracker.model.FlagData;
|
||||
import ru.nbch.credit_tracker.model.SubjectProfile;
|
||||
import ru.nbch.credit_tracker.model.UserPackageLegalData;
|
||||
|
|
@ -37,17 +31,19 @@ public class PackageRecordsService {
|
|||
private final PackagesRecordsMapper packagesRecordsMapper;
|
||||
private final LegalsFidMapMapper legalsFidMapMapper;
|
||||
private final ObjectMapper entityToJsonMapper;
|
||||
private final UserPackageMapper userPackageMapper;
|
||||
|
||||
public PackageRecordsService(PhonesMapMapper phonesMapMapper,
|
||||
LegalsMapMapper legalsMapMapper,
|
||||
PackagesRecordsMapper packagesRecordsMapper,
|
||||
LegalsFidMapMapper legalsFidMapMapper,
|
||||
ObjectMapper entityToJsonMapper) {
|
||||
ObjectMapper entityToJsonMapper, UserPackageMapper userPackageMapper) {
|
||||
this.phonesMapMapper = phonesMapMapper;
|
||||
this.legalsMapMapper = legalsMapMapper;
|
||||
this.packagesRecordsMapper = packagesRecordsMapper;
|
||||
this.legalsFidMapMapper = legalsFidMapMapper;
|
||||
this.entityToJsonMapper = entityToJsonMapper;
|
||||
this.userPackageMapper = userPackageMapper;
|
||||
}
|
||||
|
||||
public Map<Long, PhonesMap> findCachedPhones(List<SubjectProfile> subjects) {
|
||||
|
|
@ -239,6 +235,20 @@ public class PackageRecordsService {
|
|||
}
|
||||
}
|
||||
|
||||
public void updatePackageLastDownloadedReport(List<UserPackage> packages) {
|
||||
try {
|
||||
String json = entityToJsonMapper.writeValueAsString(packages.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(userPackage -> new HashMap<String, Object>() {{
|
||||
put("id", userPackage.getId());
|
||||
put("last_downloaded_report", userPackage.getLastDownloadedReport());
|
||||
}}).toList());
|
||||
userPackageMapper.updatePackageLastDownloadedReport(json);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public record InnRegnumPair(Long inn, Long regNum) {
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,10 +83,20 @@
|
|||
</foreach>
|
||||
</update>
|
||||
|
||||
<update id="updatePackageLastDownloadedReport">
|
||||
<update id="updatePackageLastDownloadedReport" parameterType="string">
|
||||
WITH src AS (
|
||||
SELECT
|
||||
id,
|
||||
last_downloaded_report
|
||||
FROM json_to_recordset(#{json}::json) AS t(
|
||||
id bigint,
|
||||
last_downloaded_report text
|
||||
)
|
||||
)
|
||||
UPDATE signals_user_packages
|
||||
SET last_downloaded_report = #{fileName}
|
||||
WHERE id = #{id}
|
||||
SET last_downloaded_report = src.last_downloaded_report
|
||||
FROM src
|
||||
WHERE signals_user_packages.id = src.id
|
||||
</update>
|
||||
|
||||
<update id="updatePackageOnMonitoringSuccess">
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue