Selaa lähdekoodia

update po

create_edit_user
MSI\derek 3 kuukautta sitten
vanhempi
commit
fba9c78a89
10 muutettua tiedostoa jossa 38 lisäystä ja 23 poistoa
  1. +6
    -2
      build.gradle
  2. +1
    -5
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/entity/PurchaseOrderLine.kt
  3. +5
    -1
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/entity/projections/PurchaseOrderLineInfo.kt
  4. +1
    -1
      src/main/java/com/ffii/fpsms/modules/purchaseOrder/service/PurchaseOrderService.kt
  5. +2
    -1
      src/main/java/com/ffii/fpsms/modules/qc/entity/QcResultRepository.kt
  6. +3
    -4
      src/main/java/com/ffii/fpsms/modules/qc/service/QcResultService.kt
  7. +3
    -2
      src/main/java/com/ffii/fpsms/modules/stock/entity/projection/StockInLineInfo.kt
  8. +10
    -6
      src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt
  9. +1
    -1
      src/main/java/com/ffii/fpsms/modules/stock/web/StockInLineController.kt
  10. +6
    -0
      src/main/java/com/ffii/fpsms/modules/stock/web/model/QrCodeContent.kt

+ 6
- 2
build.gradle Näytä tiedosto

@@ -3,6 +3,7 @@ plugins {
id 'org.springframework.boot' version '3.1.1'
id 'io.spring.dependency-management' version '1.1.0'
id 'org.jetbrains.kotlin.jvm'
id 'org.jetbrains.kotlin.plugin.serialization' version '1.8.0'
}

group = 'com.ffii'
@@ -30,6 +31,9 @@ dependencies {
implementation 'org.liquibase:liquibase-core'
implementation 'com.google.code.gson:gson:2.8.5'

// // https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-starter-webmvc-ui
// implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.8")

implementation group: 'org.springframework.cloud', name: 'spring-cloud-context', version: '4.2.1'

implementation group: 'com.google.zxing', name: 'core', version: '3.5.2'
@@ -61,9 +65,9 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-reflect"

implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0")
compileOnly group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: '6.0.0'
runtimeOnly 'com.mysql:mysql-connector-j'

testImplementation 'org.springframework.boot:spring-boot-starter-test'


+ 1
- 5
src/main/java/com/ffii/fpsms/modules/purchaseOrder/entity/PurchaseOrderLine.kt Näytä tiedosto

@@ -25,11 +25,6 @@ open class PurchaseOrderLine : BaseEntity<Long>() {
@Column(name = "itemNo", nullable = false, length = 20)
open var itemNo: String? = null

// @NotNull
// @ManyToOne(fetch = FetchType.LAZY, optional = false)
// @JoinColumn(name = "uomId", nullable = false)
// open var uom: UomConversion? = null

@NotNull
@ManyToOne
@JoinColumn(name = "purchaseOrderId", nullable = false)
@@ -51,6 +46,7 @@ open class PurchaseOrderLine : BaseEntity<Long>() {
@JoinColumn(name = "m18DataLogId", nullable = false)
open var m18DataLog: M18DataLog? = null

@NotNull
@ManyToOne
@JoinColumn(name = "uomId", nullable = false)
open var uom: UomConversion? = null

+ 5
- 1
src/main/java/com/ffii/fpsms/modules/purchaseOrder/entity/projections/PurchaseOrderLineInfo.kt Näytä tiedosto

@@ -1,5 +1,6 @@
package com.ffii.fpsms.modules.purchaseOrder.entity.projections

import com.ffii.fpsms.modules.master.entity.UomConversion
import com.ffii.fpsms.modules.stock.entity.StockInLine
import com.ffii.fpsms.modules.stock.entity.projection.StockInLineInfo
import org.springframework.beans.factory.annotation.Value
@@ -13,6 +14,8 @@ interface PurchaseOrderLineInfo {
@get:Value("#{target.items?.name}")
val itemName: String?
val qty: BigDecimal
@get:Value("#{target.uom}")
val uom: UomConversion
val price: BigDecimal
val status: String
}
@@ -25,7 +28,8 @@ data class PoLineWithStockInLine (
val itemName: String?,
val qty: BigDecimal,
val processed: BigDecimal,
val uom: String? = null,
@get:Value("#{target.uom}")
val uom: UomConversion,
val price: BigDecimal,
val status: String,



+ 1
- 1
src/main/java/com/ffii/fpsms/modules/purchaseOrder/service/PurchaseOrderService.kt Näytä tiedosto

@@ -65,7 +65,7 @@ open class PurchaseOrderService(
thisPol.item!!.name,
thisPol.qty!!,
inLine.filter{ it.status == StockInLineStatus.COMPLETE.status}.sumOf { it.acceptedQty },
thisPol.uom!!.code,
thisPol.uom!!,
thisPol.price!!,
thisPol.status!!.toString(),
inLine


+ 2
- 1
src/main/java/com/ffii/fpsms/modules/qc/entity/QcResultRepository.kt Näytä tiedosto

@@ -2,9 +2,10 @@ package com.ffii.fpsms.modules.qc.entity

import com.ffii.core.support.AbstractRepository
import com.ffii.fpsms.modules.qc.entity.projection.QcResultInfo
import com.ffii.fpsms.modules.stock.entity.StockInLine
import org.springframework.stereotype.Repository

@Repository
interface QcResultRepository: AbstractRepository<QcResult, Long> {
fun findAllQcResultInfoByStockInLineIdAndDeletedFalse(stockInLineId: Long): List<QcResultInfo>
fun findQcResultInfoByStockInLineIdAndDeletedFalse(stockInLineId: Long): List<QcResultInfo>
}

+ 3
- 4
src/main/java/com/ffii/fpsms/modules/qc/service/QcResultService.kt Näytä tiedosto

@@ -5,12 +5,10 @@ import com.ffii.core.support.JdbcDao
import com.ffii.fpsms.modules.master.entity.ItemsRepository
import com.ffii.fpsms.modules.master.entity.QcItemRepository
import com.ffii.fpsms.modules.master.web.models.MessageResponse
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLineRepository
import com.ffii.fpsms.modules.qc.entity.QcResult
import com.ffii.fpsms.modules.qc.entity.QcResultRepository
import com.ffii.fpsms.modules.qc.entity.projection.QcResultInfo
import com.ffii.fpsms.modules.qc.web.model.SaveQcResultRequest
import com.ffii.fpsms.modules.stock.entity.StockInLine
import com.ffii.fpsms.modules.stock.entity.StockInLineRepository
import com.ffii.fpsms.modules.stock.entity.StockOutLIneRepository
import org.springframework.stereotype.Service
@@ -26,6 +24,7 @@ open class QcResultService(
private val stockInLineRepository: StockInLineRepository,
private val stockOutLIneRepository: StockOutLIneRepository,
): AbstractBaseEntityService<QcResult, Long, QcResultRepository>(jdbcDao, qcResultRepository) {

@Throws(IOException::class)
@Transactional
open fun createOrUpdate(request: SaveQcResultRequest): MessageResponse {
@@ -55,7 +54,7 @@ open class QcResultService(
)
}

fun getAllQcResultInfoByStockInLineId(stockInLineId: Long): List<QcResultInfo> {
return qcResultRepository.findAllQcResultInfoByStockInLineIdAndDeletedFalse(stockInLineId)
open fun getAllQcResultInfoByStockInLineId(stockInLineId: Long): List<QcResultInfo> {
return qcResultRepository.findQcResultInfoByStockInLineIdAndDeletedFalse(stockInLineId)
}
}

+ 3
- 2
src/main/java/com/ffii/fpsms/modules/stock/entity/projection/StockInLineInfo.kt Näytä tiedosto

@@ -2,6 +2,7 @@ package com.ffii.fpsms.modules.stock.entity.projection

import com.ffii.fpsms.modules.master.entity.Items
import com.ffii.fpsms.modules.master.entity.ItemsRepository
import com.ffii.fpsms.modules.master.entity.UomConversion
import org.springframework.beans.factory.annotation.Value
import java.math.BigDecimal
import java.time.LocalDate
@@ -30,8 +31,8 @@ interface StockInLineInfo {
var productLotNo: String?
@get:Value("#{target.stockIn?.supplier?.name}")
val supplier: String?
@get:Value("#{target.purchaseOrderLine?.uom?.code}")
val uom: String?
@get:Value("#{target.purchaseOrderLine?.uom}")
val uom: UomConversion
@get:Value("#{target.stockIn?.purchaseOrder?.code}")
val poCode: String
@get:Value("#{target.item?.type}")


+ 10
- 6
src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt Näytä tiedosto

@@ -2,6 +2,7 @@ package com.ffii.fpsms.modules.stock.service

import com.ffii.core.support.AbstractBaseEntityService
import com.ffii.core.support.JdbcDao
import com.ffii.core.utils.JsonUtils
import com.ffii.core.utils.QrCodeUtil
import com.ffii.fpsms.modules.common.CodeGenerator
import com.ffii.fpsms.modules.master.entity.ItemsRepository
@@ -28,7 +29,12 @@ import com.ffii.core.utils.PdfUtils;
import com.ffii.fpsms.modules.master.entity.WarehouseRepository
import java.io.FileNotFoundException
import java.time.format.DateTimeFormatter
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import kotlinx.serialization.encodeToString

@Serializable
data class QrContent(val itemId: Long, val stockInLineId: Long)

@Service
open class StockInLineService(
@@ -167,7 +173,6 @@ open class StockInLineService(
this.expiryDate = stockInLine.expiryDate ?: request.expiryDate
this.inventoryLot = stockInLine.inventoryLot ?: savedInventoryLot
this.lotNo = stockInLine.lotNo ?: savedInventoryLot?.lotNo
this.lotNo = savedInventoryLot?.lotNo
}
val savedStockInLine = saveAndFlush(stockInLine)
val lineInfo = stockInLineRepository.findStockInLineInfoByIdAndDeletedFalse(savedStockInLine.id!!)
@@ -258,19 +263,18 @@ open class StockInLineService(
val poLabel = JasperCompileManager.compileReport(inputStream)
val qrCodeInfo = stockInLineRepository.findStockInLineInfoByIdInAndDeletedFalse(request.stockInLineIds).toMutableList()
val fields = mutableListOf<MutableMap<String ,Any>>()

for (info in qrCodeInfo) {
val field = mutableMapOf<String, Any>()
val qrCodeContent = (
"itemId:${info.itemId}" +
",stockInLineId:${info.id}"
)
val qrContent = QrContent(info.itemId, info.id)
val qrCodeContent = (Json.encodeToString(qrContent))
// field["itemId"] = info.itemId
field["itemName"] = info.itemName!!
field["itemNo"] = info.itemNo
field["poCode"] = info.poCode
field["itemType"] = info.itemType
field["acceptedQty"] = info.acceptedQty.toString()
field["uom"] = info.uom!!
field["uom"] = info.uom.code.toString()
field["productionDate"] = info.productionDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: ""
field["expiryDate"] = info.expiryDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: ""
field["lotNo"] = info.lotNo!!


+ 1
- 1
src/main/java/com/ffii/fpsms/modules/stock/web/StockInLineController.kt Näytä tiedosto

@@ -39,7 +39,7 @@ class StockInLineController(
response.characterEncoding = "utf-8";
response.contentType = "application/pdf";
val out: OutputStream = response.outputStream
val pdf: Map<String, Any> = stockInLineService.exportStockInLineQrcode(request)
val pdf = stockInLineService.exportStockInLineQrcode(request)
val jasperPrint = pdf["report"] as JasperPrint
response.addHeader("filename", "${pdf["fileName"]}.pdf")
out.write(JasperExportManager.exportReportToPdf(jasperPrint));


+ 6
- 0
src/main/java/com/ffii/fpsms/modules/stock/web/model/QrCodeContent.kt Näytä tiedosto

@@ -0,0 +1,6 @@
package com.ffii.fpsms.modules.stock.web.model

import kotlinx.serialization.Serializable

@Serializable
data class QrContent(val itemId: Long, val stockInLineId: Long)

Ladataan…
Peruuta
Tallenna