modifiche per task

This commit is contained in:
2025-09-02 12:26:31 +02:00
parent a205f222b0
commit 7893e6d808
2 changed files with 77 additions and 40 deletions

View File

@@ -1066,55 +1066,47 @@ public class ActivityService {
if (activityDTOS != null) {
List<String> elencoId = Stream.of(activityDTOS).map(ActivityDTO::getIdAttivita).toList();
sql =
"SELECT parent.activity_id,\n" +
" ISNULL(stb_activity.user_name, parent.user_name) AS user_name,\n" +
"SELECT stb_activity.parent_activity_id,\n" +
" stb_activity.user_name,\n" +
" stb_user.full_name,\n" +
" MAX(IIF(stb_activity.effective_date <= CAST(GETDATE() AS DATE), stb_activity.effective_date,\n" +
" NULL)) AS last_activity_date,\n" +
" MIN(IIF(stb_activity.estimated_date >= CAST(GETDATE() AS DATE), stb_activity.estimated_date,\n" +
" NULL)) AS next_activity_date,\n" +
" MAX(IIF(\n" +
" ((stb_activity.estimated_date BETWEEN dbo.f_getfirstdayofweek(GETDATE()) AND dbo.f_getlastdayofweek(GETDATE()) OR\n" +
" stb_activity.estimated_date IS NULL) AND stb_activity.effective_date IS NULL),\n" +
" stb_activity.activity_description,\n" +
" NULL)) AS activity_description,\n" +
" MAX(IIF(effective_date <= CAST(GETDATE() AS DATE), effective_date, NULL)) AS last_activity_date,\n" +
" MIN(IIF(estimated_date >= CAST(GETDATE() AS DATE), estimated_date, NULL)) AS next_activity_date,\n" +
" MAX(IIF(((estimated_date BETWEEN dbo.f_getfirstdayofweek(GETDATE()) AND dbo.f_getlastdayofweek(GETDATE()) OR\n" +
" estimated_date IS NULL) AND effective_date IS NULL), stb_activity.activity_description,\n" +
" NULL)) AS activity_description,\n" +
" CAST(MAX(IIF(\n" +
" ISNULL(ISNULL(stb_activity.effective_date, stb_activity.estimated_date),\n" +
" parent.estimated_date) BETWEEN dbo.f_getfirstdayofweek(GETDATE()) AND dbo.f_getlastdayofweek(GETDATE()),\n" +
" ISNULL(effective_date, estimated_date) BETWEEN dbo.f_getfirstdayofweek(GETDATE()) AND dbo.f_getlastdayofweek(GETDATE()),\n" +
" 1,\n" +
" 0)) AS BIT) AS planned_this_week,\n" +
" 0)) AS BIT) AS planned_this_week,\n" +
" CAST(MAX(IIF(\n" +
" ISNULL(ISNULL(stb_activity.effective_date, stb_activity.estimated_date),\n" +
" parent.estimated_date) BETWEEN dbo.f_getfirstdayofweek(DATEADD(WEEK, -1, GETDATE())) AND dbo.f_getlastdayofweek(DATEADD(WEEK, -1, GETDATE())),\n" +
" ISNULL(effective_date, estimated_date) BETWEEN dbo.f_getfirstdayofweek(DATEADD(WEEK, -1, GETDATE())) AND dbo.f_getlastdayofweek(DATEADD(WEEK, -1, GETDATE())),\n" +
" 1,\n" +
" 0)) AS BIT) AS planned_previous_week,\n" +
" 0)) AS BIT) AS planned_previous_week,\n" +
" CAST(MAX(IIF(\n" +
" ISNULL(ISNULL(stb_activity.effective_date, stb_activity.estimated_date),\n" +
" parent.estimated_date) BETWEEN dbo.f_getfirstdayofweek(DATEADD(WEEK, 1, GETDATE())) AND dbo.f_getlastdayofweek(DATEADD(WEEK, 1, GETDATE())),\n" +
" ISNULL(effective_date, estimated_date) BETWEEN dbo.f_getfirstdayofweek(DATEADD(WEEK, 1, GETDATE())) AND dbo.f_getlastdayofweek(DATEADD(WEEK, 1, GETDATE())),\n" +
" 1,\n" +
" 0)) AS BIT) AS planned_next_week,\n" +
" CAST(MAX(IIF(stb_activity.effective_date IS NOT NULL AND\n" +
" stb_activity.effective_date BETWEEN dbo.f_getfirstdayofmonth(GETDATE()) AND EOMONTH(GETDATE()), 1,\n" +
" 0)) AS BIT) AS done_this_month,\n" +
" CAST(MAX(IIF(stb_activity.effective_date IS NOT NULL AND\n" +
" stb_activity.effective_date BETWEEN dbo.f_getfirstdayofmonth(DATEADD(MONTH, -1, GETDATE())) AND EOMONTH(DATEADD(MONTH, -1, GETDATE())),\n" +
" 0)) AS BIT) AS planned_next_week,\n" +
" CAST(MAX(IIF(effective_date IS NOT NULL AND\n" +
" effective_date BETWEEN dbo.f_getfirstdayofmonth(GETDATE()) AND EOMONTH(GETDATE()), 1,\n" +
" 0)) AS BIT) AS done_this_month,\n" +
" CAST(MAX(IIF(effective_date IS NOT NULL AND\n" +
" effective_date BETWEEN dbo.f_getfirstdayofmonth(DATEADD(MONTH, -1, GETDATE())) AND EOMONTH(DATEADD(MONTH, -1, GETDATE())),\n" +
" 1,\n" +
" 0)) AS BIT) AS done_previous_month,\n" +
" CAST(MAX(IIF(stb_activity.effective_date IS NOT NULL AND\n" +
" DATEPART(QUARTER, stb_activity.effective_date) = DATEPART(QUARTER, GETDATE()), 1,\n" +
" 0)) AS BIT) AS done_this_quarter,\n" +
" CAST(MAX(IIF(stb_activity.effective_date IS NOT NULL AND DATEPART(QUARTER, stb_activity.effective_date) =\n" +
" DATEPART(QUARTER, DATEADD(MONTH, -3, GETDATE())), 1,\n" +
" 0)) AS BIT) AS done_previous_quarter,\n" +
" SUM(jtb_rlavr.ore) AS ore_fatte\n" +
"FROM stb_activity parent\n" +
" LEFT OUTER JOIN stb_activity\n" +
" ON stb_activity.parent_activity_id = parent.activity_id AND stb_activity.flag_tipologia = 'A'\n" +
" INNER JOIN stb_user ON ISNULL(stb_activity.user_name, parent.user_name) = stb_user.user_name\n" +
" 0)) AS BIT) AS done_previous_month,\n" +
" CAST(MAX(IIF(effective_date IS NOT NULL AND\n" +
" DATEPART(QUARTER, effective_date) = DATEPART(QUARTER, GETDATE()), 1,\n" +
" 0)) AS BIT) AS done_this_quarter,\n" +
" CAST(MAX(IIF(effective_date IS NOT NULL AND DATEPART(QUARTER, effective_date) =\n" +
" DATEPART(QUARTER, DATEADD(MONTH, -3, GETDATE())), 1,\n" +
" 0)) AS BIT) AS done_previous_quarter,\n" +
" SUM(jtb_rlavr.ore) AS ore_fatte\n" +
"FROM stb_activity\n" +
" INNER JOIN stb_user ON stb_activity.user_name = stb_user.user_name\n" +
" LEFT OUTER JOIN jtb_rlavr ON stb_activity.activity_id = jtb_rlavr.activity_id\n" +
"WHERE parent.activity_id IN (" + UtilityDB.listValueToString(elencoId) + ")\n" +
"GROUP BY parent.activity_id,\n" +
" ISNULL(stb_activity.user_name, parent.user_name),\n" +
"WHERE stb_activity.flag_tipologia = 'A'\n" +
" AND stb_activity.parent_activity_id IN (" + UtilityDB.listValueToString(elencoId) + ")\n" +
"GROUP BY stb_activity.parent_activity_id,\n" +
" stb_activity.user_name,\n" +
" stb_user.full_name";
List<ActivityDTO.WorkedHours> activityResponseDtoWorkedHours = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, ActivityDTO.WorkedHours.class);

View File

@@ -52,6 +52,11 @@ import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.*;
import it.integry.ems_model.utility.dto.ConvertQueryDTO;
import it.integry.firebase.dto.MessageDTO;
import it.integry.firebase.dto.NotificationDTO;
import it.integry.firebase.dto.apns.ApnsConfigDTO;
import it.integry.firebase.dto.apns.ApsDTO;
import it.integry.firebase.service.NotificationService;
import it.integry.security.cache.SecretKeyCacheComponent;
import it.integry.security.dto.LoginRequestDTO;
import kotlin.Triple;
@@ -113,6 +118,8 @@ public class SystemController {
@Autowired
private RequestDataDTO requestDataDTO;
@Autowired
private NotificationService notificationService;
@GetMapping(value = "/system/ok")
@@ -822,6 +829,44 @@ public class SystemController {
multiDBTransactionManager);
}
activity.setActivityId(stbActivity.getActivityId());
if (!stbActivity.getUserCreator().equalsIgnoreCase(stbActivity.getUserName()) &&
!stbActivity.getUserName().equalsIgnoreCase("T0003") &&
stbActivity.getActivityTypeId().equalsIgnoreCase("TICKET")) {
String title = "E' stato inserito un ticket";
String message = String.format("E' stato inserito il ticket #%s commessa %s. %s", stbActivity.getActivityId(),
stbActivity.getCodJcom(), stbActivity.getActivityDescription());
List<String> utenti = new ArrayList<>();
if (stbActivity.getUserName().equalsIgnoreCase("DEV")) {
utenti.add("F0003");
utenti.add("F0237");
utenti.add("F0060");
} else {
utenti.add(stbActivity.getUserName());
}
for (String username : utenti) {
notificationService.sendNotificationToUserDevices(new MessageDTO()
.setUserName(username)
.setAppName(WtbUserDeviceToken.AppName.TASK)
.setNotification(new NotificationDTO()
.setTitle(title)
.setBody(message)
)
.setApns(new ApnsConfigDTO()
.setAps(new ApsDTO()
.setSound("default")
.setContentAvailable(true)
)
)
);
}
}
return ServiceRestResponse.createPositiveResponse(activity);
} catch (Exception e) {