Pārlūkot izejas kodu

update scheduler

master
cyril.tsui pirms 3 mēnešiem
vecāks
revīzija
4cfc4fd711
4 mainītis faili ar 70 papildinājumiem un 18 dzēšanām
  1. +5
    -5
      src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt
  2. +30
    -0
      src/main/java/com/ffii/fpsms/modules/common/scheduler/web/SchedulerController.kt
  3. +34
    -13
      src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleRepository.kt
  4. +1
    -0
      src/main/java/com/ffii/fpsms/modules/master/entity/projections/ProdScheduleInfo.kt

+ 5
- 5
src/main/java/com/ffii/fpsms/m18/web/M18TestController.kt Parādīt failu

@@ -64,11 +64,11 @@ class M18TestController (
return schedulerService.getM18Pos();
}
// --------------------------------------------- Scheduler --------------------------------------------- ///
@GetMapping("/schedule/po") //
fun schedulePo(@RequestParam @Valid newCron: String) {
settingsService.update(SettingNames.SCHEDULE_M18_PO, newCron);
schedulerService.scheduleM18PoTask()
}
// @GetMapping("/schedule/po")
// fun schedulePo(@RequestParam @Valid newCron: String) {
// settingsService.update(SettingNames.SCHEDULE_M18_PO, newCron);
// schedulerService.scheduleM18PoTask()
// }

// --------------------------------------------- Master Data --------------------------------------------- ///
@GetMapping("/all")


+ 30
- 0
src/main/java/com/ffii/fpsms/modules/common/scheduler/web/SchedulerController.kt Parādīt failu

@@ -0,0 +1,30 @@
package com.ffii.fpsms.modules.common.scheduler.web

import com.ffii.fpsms.modules.common.SettingNames
import com.ffii.fpsms.modules.common.scheduler.service.SchedulerService
import com.ffii.fpsms.modules.settings.service.SettingsService
import jakarta.validation.Valid
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController

@RestController
@RequestMapping("/scheduler")
class SchedulerController(
val schedulerService: SchedulerService,
val settingsService: SettingsService
) {
@GetMapping("/testDetailedProd")
fun testDetailedProd(): Any {
schedulerService.getDetailedProdSchedule()
return 200
}

// Cron Settings
@GetMapping("/updateSetting/poCron")
fun schedulePo(@RequestParam @Valid newCron: String) {
settingsService.update(SettingNames.SCHEDULE_M18_PO, newCron);
schedulerService.scheduleM18PoTask()
}
}

+ 34
- 13
src/main/java/com/ffii/fpsms/modules/master/entity/ProductionScheduleRepository.kt Parādīt failu

@@ -36,9 +36,17 @@ interface ProductionScheduleRepository : AbstractRepository<ProductionSchedule,
ps.totalFGType,
ps.`type`
from production_schedule ps
),
ranked_prod as (
select
*,
row_number() over (partition by date(schedulePeriod) and date(schedulePeriodTo) order by scheduleAt desc) as rn
from prod
where deleted = false
)
select * from prod
select * from ranked_prod
where deleted = false
and rn = 1
and (:scheduleAt = '' or datediff(scheduleAt, coalesce(:scheduleAt, scheduleAt)) = 0)
and (:schedulePeriod = '' or datediff(schedulePeriod, coalesce(:schedulePeriod, schedulePeriod)) = 0)
and (:schedulePeriodTo = '' or datediff(schedulePeriodTo, coalesce(:schedulePeriodTo, schedulePeriodTo)) = 0)
@@ -59,9 +67,17 @@ interface ProductionScheduleRepository : AbstractRepository<ProductionSchedule,
ps.totalFGType,
ps.`type`
from production_schedule ps
),
ranked_prod as (
select
*,
row_number() over (partition by date(schedulePeriod) and date(schedulePeriodTo) order by scheduleAt desc) as rn
from prod
where deleted = false
)
select count(*) from prod
select count(*) from ranked_prod
where deleted = false
and rn = 1
and (:scheduleAt = '' or datediff(scheduleAt, coalesce(:scheduleAt, scheduleAt)) = 0)
and (:schedulePeriod = '' or datediff(schedulePeriod, coalesce(:schedulePeriod, schedulePeriod)) = 0)
and (:schedulePeriodTo = '' or datediff(schedulePeriodTo, coalesce(:schedulePeriodTo, schedulePeriodTo)) = 0)
@@ -84,16 +100,21 @@ interface ProductionScheduleRepository : AbstractRepository<ProductionSchedule,
nativeQuery = true,
value =
"""
select
ps.id,
ps.deleted,
ps.scheduleAt,
ps.produceAt,
ps.totalEstProdCount,
ps.totalFGType,
ps.`type`
from production_schedule ps
where deleted = false
select *
from (
select
ps.id,
ps.deleted,
ps.scheduleAt,
ps.produceAt,
ps.totalEstProdCount,
ps.totalFGType,
ps.`type`,
row_number() over (partition by date(ps.produceAt) order by ps.scheduleAt desc) as rn
from production_schedule ps
where deleted = false
) ranked_prod
where rn = 1
and produceAt is not null
and scheduleAt in (select max(ps2.scheduleAt) from production_schedule ps2 group by ps2.produceAt)
-- and (:scheduleAt = '' or datediff(scheduleAt, coalesce(:scheduleAt, scheduleAt)) = 0)
@@ -215,7 +236,7 @@ interface ProductionScheduleRepository : AbstractRepository<ProductionSchedule,
where psl.deleted is false and pe.prodTimeInMinute is not null and pm.bomMaterials is not null
and ps.id = :id
group by psl.id, jo.id, pp.proportion, pm.bomOutputQty, uc.udfudesc
) prod group by prod.id limit 1
) prod group by prod.id limit 1;
"""
)
fun findDetailedProdScheduleWithLine(id: Long): DetailedProdScheduleWithLineWithJsonString?

+ 1
- 0
src/main/java/com/ffii/fpsms/modules/master/entity/projections/ProdScheduleInfo.kt Parādīt failu

@@ -8,6 +8,7 @@ import java.time.LocalDateTime
interface ProdScheduleInfo {
val id: Long?
val scheduleAt: LocalDate?
val produceAt: LocalDate?
val schedulePeriod: LocalDate?
val schedulePeriodTo: LocalDate?
val totalEstProdCount: BigDecimal?


Notiek ielāde…
Atcelt
Saglabāt