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> findPackageDataList(@Param("userId") String userId);
|
||||||
|
|
||||||
List<SignalService.PackageData> findPackagesByStatus(@Param("status") String status);
|
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.io.FileOutputStream;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collections;
|
import java.util.*;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.zip.GZIPInputStream;
|
import java.util.zip.GZIPInputStream;
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
@ -44,6 +41,7 @@ public class MonitoringService {
|
||||||
this.signalService = signalService;
|
this.signalService = signalService;
|
||||||
this.xmlUtilService = xmlUtilService;
|
this.xmlUtilService = xmlUtilService;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
|
monitor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void monitor() {
|
public void monitor() {
|
||||||
|
|
@ -74,7 +72,10 @@ public class MonitoringService {
|
||||||
}
|
}
|
||||||
|
|
||||||
MonitoringSignalResponse response = generateResponse(packageData, report.getPersons().getPersons());
|
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;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createResponseFile(SignalService.PackageData packageData, MonitoringSignalResponse response) {
|
private String createResponseFile(SignalService.PackageData packageData, MonitoringSignalResponse response) {
|
||||||
try {
|
try {
|
||||||
String fileName = CTUtil.generateResponseReportFileName(packageData.getUserId(), packageData.getPackageName());
|
String fileName = CTUtil.generateResponseReportFileName(packageData.getUserId(), packageData.getPackageName());
|
||||||
String filePath = config.getLoadDir() + File.separator + packageData.getUserId().substring(0, 6) + File.separator;
|
String filePath = config.getLoadDir() + File.separator + packageData.getUserId().substring(0, 6) + File.separator;
|
||||||
|
|
@ -136,9 +137,28 @@ public class MonitoringService {
|
||||||
zos.write(xmlBytes);
|
zos.write(xmlBytes);
|
||||||
zos.closeEntry();
|
zos.closeEntry();
|
||||||
}
|
}
|
||||||
|
return fileName;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Ошибка при записи отчета пользователя в файл: ", 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) {
|
private OnlineDownloadReport loadReport(String reportName) {
|
||||||
|
|
|
||||||
|
|
@ -204,6 +204,10 @@ public class SignalService {
|
||||||
return mapper.findFullSubjectsData(packageId);
|
return mapper.findFullSubjectsData(packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setHits(List<HitsData> hits) {
|
||||||
|
mapper.setHits(hits);
|
||||||
|
}
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public static class PackageData {
|
public static class PackageData {
|
||||||
|
|
@ -227,4 +231,15 @@ public class SignalService {
|
||||||
private Integer flag90days;
|
private Integer flag90days;
|
||||||
private LocalDateTime calculatedAt;
|
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>
|
</foreach>
|
||||||
</insert>
|
</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 id="registerSubjectsFidAndDebts">
|
||||||
UPDATE signals_phone_fid_map
|
UPDATE signals_phone_fid_map
|
||||||
SET fid = #{fid}, flag_debt5000 = #{flagDebt5000}, flag_90_12 = #{flag90}
|
SET fid = #{fid}, flag_debt5000 = #{flagDebt5000}, flag_90_12 = #{flag90}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue