From 145142681811d99283a5023b95803b01bfa0a47b Mon Sep 17 00:00:00 2001 From: "MSI\\2Fi" Date: Fri, 20 Jun 2025 18:38:43 +0800 Subject: [PATCH] producrtion process, check user --- .../service/JobOrderProcessService.kt | 115 ++++++++++++++++++ .../jobOrder/web/JobOrderProcessController.kt | 24 ++++ .../jobOrder/web/model/MachineRequest.kt | 9 ++ .../jobOrder/web/model/OperatorRequest.kt | 5 + .../jobOrder/web/model/OperatorResponse.kt | 7 ++ .../modules/user/entity/UserRepository.java | 2 +- .../01_add_approve_authority.sql | 3 + 7 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderProcessService.kt create mode 100644 src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderProcessController.kt create mode 100644 src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/MachineRequest.kt create mode 100644 src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/OperatorRequest.kt create mode 100644 src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/OperatorResponse.kt create mode 100644 src/main/resources/db/changelog/changes/20250611_01_jasonT/01_add_approve_authority.sql diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderProcessService.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderProcessService.kt new file mode 100644 index 0000000..4b109a2 --- /dev/null +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/JobOrderProcessService.kt @@ -0,0 +1,115 @@ +package com.ffii.fpsms.modules.jobOrder.service + +import OperatorRequest +import com.ffii.core.response.RecordsRes +import com.ffii.core.support.AbstractBaseEntityService +import com.ffii.core.support.JdbcDao +import com.ffii.fpsms.m18.entity.M18DataLogRepository +import com.ffii.fpsms.modules.jobOrder.entity.JobOrderProcess +import com.ffii.fpsms.modules.jobOrder.entity.JobOrderProcessRepository +import com.ffii.fpsms.modules.jobOrder.web.model.MachineRequest +import com.ffii.fpsms.modules.jobOrder.web.model.OperatorResponse +import com.ffii.fpsms.modules.master.entity.ShopRepository +import com.ffii.fpsms.modules.master.service.CurrencyService +import com.ffii.fpsms.modules.master.service.ShopService +import com.ffii.fpsms.modules.master.web.models.MessageResponse +import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrder +import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLineRepository +import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderRepository +import com.ffii.fpsms.modules.purchaseOrder.entity.projections.PoLineWithStockInLine +import com.ffii.fpsms.modules.purchaseOrder.entity.projections.PurchaseOrderDataClass +import com.ffii.fpsms.modules.purchaseOrder.entity.projections.PurchaseOrderInfo +import com.ffii.fpsms.modules.purchaseOrder.enums.PurchaseOrderLineStatus +import com.ffii.fpsms.modules.purchaseOrder.enums.PurchaseOrderStatus +import com.ffii.fpsms.modules.purchaseOrder.enums.PurchaseOrderType +import com.ffii.fpsms.modules.purchaseOrder.web.model.PagingRequest +import com.ffii.fpsms.modules.purchaseOrder.web.model.SavePurchaseOrderRequest +import com.ffii.fpsms.modules.purchaseOrder.web.model.SavePurchaseOrderResponse +import com.ffii.fpsms.modules.stock.entity.StockInLine +import com.ffii.fpsms.modules.stock.entity.StockInLineRepository +import com.ffii.fpsms.modules.stock.entity.StockInRepository +import com.ffii.fpsms.modules.stock.web.model.StockInLineStatus +import com.ffii.fpsms.modules.user.entity.UserRepository +import org.springframework.data.domain.Page +import org.springframework.data.domain.PageRequest +import org.springframework.data.domain.Pageable +import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Transactional +import java.io.IOException +import java.util.HashMap +import java.util.Objects +import kotlin.jvm.optionals.getOrDefault +import kotlin.jvm.optionals.getOrNull + +@Service +open class JobOrderProcessService( + private val jdbcDao: JdbcDao, + private val jobOrderProcessRepository: JobOrderProcessRepository, + private val userRepository: UserRepository +) : AbstractBaseEntityService(jdbcDao, jobOrderProcessRepository) { + + open fun isOperatorExist(request: OperatorRequest): MessageResponse{ + val User = userRepository.findByUsernameAndDeletedFalse(request.username) + + if(User.isPresent){ + return MessageResponse( + id = User.get().id, + name = User.get().name, + code = null, + type = null, + message = "Success", + errorPosition = null, + entity = User.get().let { user -> + OperatorResponse( + id = user.id, + name = user.name, + username = user.username + ) + } + ) + }else{ + return MessageResponse( + id = null, + name = null, + code = null, + type = null, + message = "Unsuccess", + errorPosition = null, + entity = null, + ) + } + } + +// open fun isCorrectMachineUsed(request: MachineRequest): MessageResponse{ +// // Further development, this with check equipment for the job process +// +// if(User.isPresent){ +// return MessageResponse( +// id = User.get().id, +// name = User.get().name, +// code = null, +// type = null, +// message = "Success", +// errorPosition = null, +// entity = User.get().let { user -> +// OperatorResponse( +// id = user.id, +// name = user.name, +// username = user.username +// ) +// } +// ) +// }else{ +// return MessageResponse( +// id = null, +// name = null, +// code = null, +// type = null, +// message = "Unsuccess", +// errorPosition = null, +// entity = null, +// ) +// } +// } + +} \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderProcessController.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderProcessController.kt new file mode 100644 index 0000000..b972819 --- /dev/null +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/JobOrderProcessController.kt @@ -0,0 +1,24 @@ +package com.ffii.fpsms.modules.jobOrder.web + +import OperatorRequest +import com.ffii.core.response.RecordsRes +import com.ffii.core.utils.CriteriaArgsBuilder +import com.ffii.fpsms.modules.jobOrder.service.JobOrderProcessService +import com.ffii.fpsms.modules.master.web.models.MessageResponse +import com.ffii.fpsms.modules.purchaseOrder.entity.projections.PurchaseOrderDataClass +import com.ffii.fpsms.modules.purchaseOrder.service.PurchaseOrderService +import com.ffii.fpsms.modules.purchaseOrder.web.model.PagingRequest +import jakarta.servlet.http.HttpServletRequest +import org.springframework.web.bind.annotation.* + +@RestController +@RequestMapping("/jop") +class JobOrderProcessController( + private val jobOrderProcessService: JobOrderProcessService +) { + @PostMapping("/isOperatorExist") + fun checkPolAndCompletePo(@RequestBody request: OperatorRequest): MessageResponse { + println(request) + return jobOrderProcessService.isOperatorExist(request) + } +} \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/MachineRequest.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/MachineRequest.kt new file mode 100644 index 0000000..5e95f26 --- /dev/null +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/MachineRequest.kt @@ -0,0 +1,9 @@ +package com.ffii.fpsms.modules.jobOrder.web.model + +data class MachineRequest( + val id: Long?, + val code: String, + val name: String?, +) + + diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/OperatorRequest.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/OperatorRequest.kt new file mode 100644 index 0000000..fb227e4 --- /dev/null +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/OperatorRequest.kt @@ -0,0 +1,5 @@ +data class OperatorRequest ( + val id: Long?, + val name: String?, + val username: String?, +) \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/OperatorResponse.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/OperatorResponse.kt new file mode 100644 index 0000000..89991c1 --- /dev/null +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/web/model/OperatorResponse.kt @@ -0,0 +1,7 @@ +package com.ffii.fpsms.modules.jobOrder.web.model + +data class OperatorResponse( + val id: Long, + val name: String, + val username: String, +) diff --git a/src/main/java/com/ffii/fpsms/modules/user/entity/UserRepository.java b/src/main/java/com/ffii/fpsms/modules/user/entity/UserRepository.java index a1f4dd8..79ae635 100644 --- a/src/main/java/com/ffii/fpsms/modules/user/entity/UserRepository.java +++ b/src/main/java/com/ffii/fpsms/modules/user/entity/UserRepository.java @@ -11,5 +11,5 @@ public interface UserRepository extends AbstractRepository { List findByName(@Param("name") String name); - Optional findByUsernameAndDeletedFalse(String username); + Optional findByUsernameAndDeletedFalse(String username); } diff --git a/src/main/resources/db/changelog/changes/20250611_01_jasonT/01_add_approve_authority.sql b/src/main/resources/db/changelog/changes/20250611_01_jasonT/01_add_approve_authority.sql new file mode 100644 index 0000000..4cc181c --- /dev/null +++ b/src/main/resources/db/changelog/changes/20250611_01_jasonT/01_add_approve_authority.sql @@ -0,0 +1,3 @@ +-- liquibase formatted sql +-- changeset jasonT:add approval authority +INSERT INTO `fpsmsdb`.`authority` (`authority`, `name`) VALUES ('APPROVAL', 'Approval');