Bladeren bron

Merge remote-tracking branch 'origin/master'

master
CANCERYS\kw093 10 uur geleden
bovenliggende
commit
7fbbcad738
5 gewijzigde bestanden met toevoegingen van 14 en 12 verwijderingen
  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/service/PlasticBagPrinterService.kt
  3. +2
    -2
      src/main/java/com/ffii/fpsms/modules/jobOrder/web/PlasticBagPrinterController.kt
  4. +1
    -0
      src/main/resources/application-prod.yml
  5. +3
    -0
      src/main/resources/application.yml

+ 7
- 9
src/main/java/com/ffii/fpsms/modules/jobOrder/service/LaserBag2AutoSendService.kt Bestand weergeven

@@ -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.LaserBag2SendRequest
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Service
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],
* 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
class LaserBag2AutoSendService(
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)

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(
planStart: LocalDate,
limitPerRun: Int = 0,
sendsPerJob: Int = DEFAULT_SENDS_PER_JOB,
delayBetweenSendsMs: Long = DEFAULT_DELAY_BETWEEN_SENDS_MS,
sendsPerJob: Int = defaultSendsPerJob,
delayBetweenSendsMs: Long = defaultDelayBetweenSendsMs,
): LaserBag2AutoSendReport {
val (reachable, laserIp, laserPort) = plasticBagPrinterService.probeLaserBag2Tcp()
if (!reachable) {


+ 1
- 1
src/main/java/com/ffii/fpsms/modules/jobOrder/service/PlasticBagPrinterService.kt Bestand weergeven

@@ -297,7 +297,7 @@ class PlasticBagPrinterService(
val codeStr = (itemCode ?: "").trim().replace(";", ",")
val nameStr = (itemName ?: "").trim().replace(";", ",")
val payload = if (itemId != null && stockInLineId != null) {
"{\"itemID\":$itemId,\"stockInLineId\":$stockInLineId};$codeStr;$nameStr;;"
"{\"itemId\":$itemId,\"stockInLineId\":$stockInLineId};$codeStr;$nameStr;;"
} else {
"0;$codeStr;$nameStr;;"
}


+ 2
- 2
src/main/java/com/ffii/fpsms/modules/jobOrder/web/PlasticBagPrinterController.kt Bestand weergeven

@@ -50,7 +50,7 @@ class PlasticBagPrinterController(
}

/**
* Bag2.py laser TCP protocol: `{"itemID":n,"stockInLineId":m};code;name;;` or `0;code;name;;`
* Bag2.py laser TCP protocol: `{"itemId":n,"stockInLineId":m};code;name;;` or `0;code;name;;`
*/
@PostMapping("/print-laser-bag2")
fun printLaserBag2(@RequestBody request: LaserBag2SendRequest): ResponseEntity<LaserBag2SendResponse> {
@@ -64,7 +64,7 @@ class PlasticBagPrinterController(

/**
* 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].
*/
@PostMapping("/laser-bag2-auto-send")


+ 1
- 0
src/main/resources/application-prod.yml Bestand weergeven

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

m18:
config:


+ 3
- 0
src/main/resources/application.yml Bestand weergeven

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

# 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).
# sends-per-job: TCP payloads per job order per tick (1 = single send; each send may retry once on failure inside sendLaserBag2Job).
laser:
bag2:
auto-send:
enabled: false
interval-ms: 60000
limit-per-run: 1
sends-per-job: 1
delay-between-sends-ms: 3000

bom:
import:


Laden…
Annuleren
Opslaan