Added updating hits
This commit is contained in:
parent
d43a95e564
commit
adb134c8bb
4 changed files with 51 additions and 6 deletions
|
|
@ -37,4 +37,6 @@ public interface SignalMapper {
|
|||
List<SignalService.PackageData> findPackageDataList(@Param("userId") String userId);
|
||||
|
||||
List<SignalService.PackageData> findPackagesByStatus(@Param("status") String status);
|
||||
|
||||
void setHits(@Param("hits") List<SignalService.HitsData> hits);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,10 +19,7 @@ import java.io.File;
|
|||
import java.io.FileOutputStream;
|
||||
import java.nio.charset.Charset;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.*;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
|
@ -44,6 +41,7 @@ public class MonitoringService {
|
|||
this.signalService = signalService;
|
||||
this.xmlUtilService = xmlUtilService;
|
||||
this.config = config;
|
||||
monitor();
|
||||
}
|
||||
|
||||
public void monitor() {
|
||||
|
|
@ -74,7 +72,10 @@ public class MonitoringService {
|
|||
}
|
||||
|
||||
MonitoringSignalResponse response = generateResponse(packageData, report.getPersons().getPersons());
|
||||
createResponseFile(packageData, response);
|
||||
String fileName = createResponseFile(packageData, response);
|
||||
if (fileName != null) {
|
||||
updateSignalHits(packageData, response, fileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -114,7 +115,7 @@ public class MonitoringService {
|
|||
return response;
|
||||
}
|
||||
|
||||
private void createResponseFile(SignalService.PackageData packageData, MonitoringSignalResponse response) {
|
||||
private String createResponseFile(SignalService.PackageData packageData, MonitoringSignalResponse response) {
|
||||
try {
|
||||
String fileName = CTUtil.generateResponseReportFileName(packageData.getUserId(), packageData.getPackageName());
|
||||
String filePath = config.getLoadDir() + File.separator + packageData.getUserId().substring(0, 6) + File.separator;
|
||||
|
|
@ -136,9 +137,28 @@ public class MonitoringService {
|
|||
zos.write(xmlBytes);
|
||||
zos.closeEntry();
|
||||
}
|
||||
return fileName;
|
||||
} catch (Exception e) {
|
||||
log.error("Ошибка при записи отчета пользователя в файл: ", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void updateSignalHits(SignalService.PackageData packageData, MonitoringSignalResponse response, String reportFileName) {
|
||||
LocalDateTime responseSentAt = LocalDateTime.now();
|
||||
List<SignalService.HitsData> hits = new ArrayList<>();
|
||||
response.getSubjects().getSubjects().forEach(subject -> {
|
||||
subject.getSignals().getSignals().forEach(signal -> {
|
||||
SignalService.HitsData hitsData = new SignalService.HitsData();
|
||||
hitsData.setPackageId(packageData.getId());
|
||||
hitsData.setSubjectId(subject.getId());
|
||||
hitsData.setSignalType(1);
|
||||
hitsData.setResponseSentAt(responseSentAt);
|
||||
hitsData.setReportFileName(reportFileName);
|
||||
hits.add(hitsData);
|
||||
});
|
||||
});
|
||||
signalService.setHits(hits);
|
||||
}
|
||||
|
||||
private OnlineDownloadReport loadReport(String reportName) {
|
||||
|
|
|
|||
|
|
@ -204,6 +204,10 @@ public class SignalService {
|
|||
return mapper.findFullSubjectsData(packageId);
|
||||
}
|
||||
|
||||
public void setHits(List<HitsData> hits) {
|
||||
mapper.setHits(hits);
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class PackageData {
|
||||
|
|
@ -227,4 +231,15 @@ public class SignalService {
|
|||
private Integer flag90days;
|
||||
private LocalDateTime calculatedAt;
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class HitsData {
|
||||
private Integer id;
|
||||
private Integer packageId;
|
||||
private String subjectId;
|
||||
private Integer signalType;
|
||||
private LocalDateTime responseSentAt;
|
||||
private String reportFileName;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,6 +62,14 @@
|
|||
</foreach>
|
||||
</insert>
|
||||
|
||||
<insert id="setHits" parameterType="java.util.List">
|
||||
INSERT INTO signals_hits (package_id, subject_id, signal_type, response_sent_at, report_file_name)
|
||||
values
|
||||
<foreach collection="hits" item="hit" separator=",">
|
||||
(#{hit.packageId}, #{hit.subjectId}, #{hit.signalType}, #{hit.responseSentAt}, #{hit.reportFileName})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<update id="registerSubjectsFidAndDebts">
|
||||
UPDATE signals_phone_fid_map
|
||||
SET fid = #{fid}, flag_debt5000 = #{flagDebt5000}, flag_90_12 = #{flag90}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue