Fai Luk пре 20 часа
родитељ
комит
b1568b4ec6
4 измењених фајлова са 12 додато и 10 уклоњено
  1. +7
    -9
      src/main/java/com/ffii/fpsms/modules/jobOrder/service/LaserBag2AutoSendService.kt
  2. +1
    -1
      src/main/java/com/ffii/fpsms/modules/jobOrder/web/PlasticBagPrinterController.kt
  3. +1
    -0
      src/main/resources/application-prod.yml
  4. +3
    -0
      src/main/resources/application.yml

+ 7
- 9
src/main/java/com/ffii/fpsms/modules/jobOrder/service/LaserBag2AutoSendService.kt Прегледај датотеку

@@ -4,6 +4,7 @@ import com.ffii.fpsms.modules.jobOrder.web.model.LaserBag2AutoSendReport
import com.ffii.fpsms.modules.jobOrder.web.model.LaserBag2JobSendResult import com.ffii.fpsms.modules.jobOrder.web.model.LaserBag2JobSendResult
import com.ffii.fpsms.modules.jobOrder.web.model.LaserBag2SendRequest import com.ffii.fpsms.modules.jobOrder.web.model.LaserBag2SendRequest
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
import java.time.LocalDate import java.time.LocalDate


@@ -12,25 +13,22 @@ import java.time.LocalDate
* ([LASER_PRINT.itemCodes]), then sends Bag2-style laser TCP payloads via [PlasticBagPrinterService.sendLaserBag2Job], * ([LASER_PRINT.itemCodes]), then sends Bag2-style laser TCP payloads via [PlasticBagPrinterService.sendLaserBag2Job],
* which uses [com.ffii.fpsms.modules.common.SettingNames.LASER_PRINT_HOST] / [LASER_PRINT_PORT] from the database. * which uses [com.ffii.fpsms.modules.common.SettingNames.LASER_PRINT_HOST] / [LASER_PRINT_PORT] from the database.
* *
* Matches /laserPrint row click: [sendsPerJob] rounds with [delayBetweenSendsMs] between rounds (default 3 × 3s like the frontend).
* [sendsPerJob] TCP rounds per job order (default from `laser.bag2.auto-send.sends-per-job`, typically 1).
* [sendLaserBag2Job] may still retry once internally on failure.
*/ */
@Service @Service
class LaserBag2AutoSendService( class LaserBag2AutoSendService(
private val plasticBagPrinterService: PlasticBagPrinterService, private val plasticBagPrinterService: PlasticBagPrinterService,
@Value("\${laser.bag2.auto-send.sends-per-job:1}") private val defaultSendsPerJob: Int,
@Value("\${laser.bag2.auto-send.delay-between-sends-ms:3000}") private val defaultDelayBetweenSendsMs: Long,
) { ) {
private val logger = LoggerFactory.getLogger(javaClass) private val logger = LoggerFactory.getLogger(javaClass)


companion object {
/** Same as LaserPrint page (3 sends per row click). */
const val DEFAULT_SENDS_PER_JOB = 3
const val DEFAULT_DELAY_BETWEEN_SENDS_MS = 3000L
}

fun runAutoSend( fun runAutoSend(
planStart: LocalDate, planStart: LocalDate,
limitPerRun: Int = 0, limitPerRun: Int = 0,
sendsPerJob: Int = DEFAULT_SENDS_PER_JOB,
delayBetweenSendsMs: Long = DEFAULT_DELAY_BETWEEN_SENDS_MS,
sendsPerJob: Int = defaultSendsPerJob,
delayBetweenSendsMs: Long = defaultDelayBetweenSendsMs,
): LaserBag2AutoSendReport { ): LaserBag2AutoSendReport {
val (reachable, laserIp, laserPort) = plasticBagPrinterService.probeLaserBag2Tcp() val (reachable, laserIp, laserPort) = plasticBagPrinterService.probeLaserBag2Tcp()
if (!reachable) { if (!reachable) {


+ 1
- 1
src/main/java/com/ffii/fpsms/modules/jobOrder/web/PlasticBagPrinterController.kt Прегледај датотеку

@@ -64,7 +64,7 @@ class PlasticBagPrinterController(


/** /**
* Same as /laserPrint row workflow: list job orders for [planStart] filtered by LASER_PRINT.itemCodes, * Same as /laserPrint row workflow: list job orders for [planStart] filtered by LASER_PRINT.itemCodes,
* then for each (up to [limitPerRun], 0 = all) send laser TCP commands using LASER_PRINT.host/port (3× with 3s gap per job).
* then for each (up to [limitPerRun], 0 = all) send laser TCP using LASER_PRINT.host/port (`laser.bag2.auto-send.sends-per-job` rounds per job).
* For manual runs from /testing; scheduler uses [LaserBag2AutoSendScheduler]. * For manual runs from /testing; scheduler uses [LaserBag2AutoSendScheduler].
*/ */
@PostMapping("/laser-bag2-auto-send") @PostMapping("/laser-bag2-auto-send")


+ 1
- 0
src/main/resources/application-prod.yml Прегледај датотеку

@@ -39,6 +39,7 @@ laser:
bag2: bag2:
auto-send: auto-send:
enabled: true enabled: true
sends-per-job: 1


m18: m18:
config: config:


+ 3
- 0
src/main/resources/application.yml Прегледај датотеку

@@ -62,12 +62,15 @@ ngpcl:


# Laser Bag2 (/laserPrint) auto-send: same as listing + TCP send using DB LASER_PRINT.host / port / itemCodes. # Laser Bag2 (/laserPrint) auto-send: same as listing + TCP send using DB LASER_PRINT.host / port / itemCodes.
# Scheduler is off by default. limit-per-run: max job orders per tick (1 = first matching only); 0 = all matches (heavy). # Scheduler is off by default. limit-per-run: max job orders per tick (1 = first matching only); 0 = all matches (heavy).
# sends-per-job: TCP payloads per job order per tick (1 = single send; each send may retry once on failure inside sendLaserBag2Job).
laser: laser:
bag2: bag2:
auto-send: auto-send:
enabled: false enabled: false
interval-ms: 60000 interval-ms: 60000
limit-per-run: 1 limit-per-run: 1
sends-per-job: 1
delay-between-sends-ms: 3000


bom: bom:
import: import:


Loading…
Откажи
Сачувај