|
|
@@ -80,10 +80,16 @@ public class RelationAnalysisService {
|
|
|
self.addProperty("birthDay", user.getBirthDay());
|
|
|
self.addProperty("gender", user.getGender() != null ? user.getGender() : 0);
|
|
|
|
|
|
- // Calculate user's chart positions
|
|
|
- Map<String, Object> userChart = calculatorService.calculateFullTriangle(
|
|
|
- user.getBirthYear(), user.getBirthMonth(), user.getBirthDay());
|
|
|
- self.addProperty("chartPositions", gson.toJson(userChart));
|
|
|
+ // Calculate user's chart positions (birth fields may be null)
|
|
|
+ if (user.getBirthYear() != null && user.getBirthMonth() != null && user.getBirthDay() != null) {
|
|
|
+ try {
|
|
|
+ Map<String, Object> userChart = calculatorService.calculateFullTriangle(
|
|
|
+ user.getBirthYear(), user.getBirthMonth(), user.getBirthDay());
|
|
|
+ self.addProperty("chartPositions", gson.toJson(userChart));
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("Failed to calculate user chart positions: {}", e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
members.add(self);
|
|
|
|
|
|
// Add selected relations
|
|
|
@@ -105,11 +111,15 @@ public class RelationAnalysisService {
|
|
|
|
|
|
// Calculate relation's chart positions
|
|
|
if (rel.getBirthDate() != null) {
|
|
|
- Map<String, Object> relChart = calculatorService.calculateFullTriangle(
|
|
|
- rel.getBirthDate().getYear(),
|
|
|
- rel.getBirthDate().getMonthValue(),
|
|
|
- rel.getBirthDate().getDayOfMonth());
|
|
|
- member.addProperty("chartPositions", gson.toJson(relChart));
|
|
|
+ try {
|
|
|
+ Map<String, Object> relChart = calculatorService.calculateFullTriangle(
|
|
|
+ rel.getBirthDate().getYear(),
|
|
|
+ rel.getBirthDate().getMonthValue(),
|
|
|
+ rel.getBirthDate().getDayOfMonth());
|
|
|
+ member.addProperty("chartPositions", gson.toJson(relChart));
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("Failed to calculate chart for relation {}: {}", rel.getId(), e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
members.add(member);
|
|
|
}
|