From 1922e59d91976608684270625d298daf8971dfa6 Mon Sep 17 00:00:00 2001 From: freehyeon Date: Thu, 6 Feb 2025 17:48:33 +0900 Subject: [PATCH] =?UTF-8?q?workorder=EC=97=90=20=EC=A0=9C=ED=92=88=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=EC=B6=94=EA=B0=80=20=EC=8B=9C=ED=82=A4?= =?UTF-8?q?=EB=8A=94=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 현재 productCode로 표기 pName로 변경해야함 현재는 혼재 되어있어 매칭작업 해야함. --- .../ProductionplanController.java | 2 +- .../workorders/WorkOrdersController.java | 11 ++++++---- .../workorders/WorkOrdersRestController.java | 17 ++++++++++++++++ .../com/mrbean/workorders/WorkOrdersVO.java | 20 +++++++++++++++++++ .../resources/mappers/workOrdersMapper.xml | 16 +++++++++++++-- .../webapp/WEB-INF/views/workorders/work.jsp | 8 +++++--- .../webapp/resources/js/common/constants.js | 4 ++++ .../main/webapp/resources/js/modules/work.js | 3 +++ 8 files changed, 71 insertions(+), 10 deletions(-) diff --git a/MrBean/src/main/java/com/mrbean/productionplan/ProductionplanController.java b/MrBean/src/main/java/com/mrbean/productionplan/ProductionplanController.java index e52b598..5a743a7 100644 --- a/MrBean/src/main/java/com/mrbean/productionplan/ProductionplanController.java +++ b/MrBean/src/main/java/com/mrbean/productionplan/ProductionplanController.java @@ -43,7 +43,7 @@ public String planRegisterGET(Model model, ProductionPlanVO planVO) throws Excep logger.info("planList : "+ planList); return "productionplan/plan"; - } + }// diff --git a/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersController.java b/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersController.java index 34eda17..7e7a2e5 100644 --- a/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersController.java +++ b/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersController.java @@ -17,6 +17,7 @@ import com.mrbean.common.NumberGenerationService; import com.mrbean.productionplan.ProductionPlanVO; +import com.mrbean.warehouse.WarehouseService; import com.mrbean.warehouse.WarehouseVO; @Controller @@ -28,6 +29,8 @@ public class WorkOrdersController { private NumberGenerationService ngs; @Inject private WorkOrdersService wos; + @Inject + private WarehouseService whs; /** * 작업지시등록 페이지(GET) - 등록 form 과 List 함께출력 @@ -35,7 +38,7 @@ public class WorkOrdersController { * */ @RequestMapping(value = "/work", method = RequestMethod.GET) - public String orderRegisterGET(Model model, WorkOrdersVO workVO) { + public String orderRegisterGET(Model model, WorkOrdersVO workVO) throws Exception { logger.info("orderRegisterGET 호출()"); // 작업지시 목록을 조회해서 모델이 추가 @@ -44,9 +47,9 @@ public String orderRegisterGET(Model model, WorkOrdersVO workVO) { logger.info("workList : "+ workList); // 창고에게 받은 목록 jsp에 뿌려주기 - // List warehouses = - // model.addAttribute("warehouses", warehouses); - // logger.info("warehouses : "+ warehouses); + List warehouses = whs.getWarehouseList(); + model.addAttribute("warehouses", warehouses); + logger.info("warehouses : "+ warehouses); return "workorders/work"; } diff --git a/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersRestController.java b/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersRestController.java index 4abb62d..04f3783 100644 --- a/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersRestController.java +++ b/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersRestController.java @@ -12,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; + +import com.fasterxml.jackson.databind.ObjectMapper; import com.mrbean.common.NumberGenerationService; import com.mrbean.enums.ProductionplanStatus; import com.mrbean.productionplan.ProductionPlanVO; @@ -43,10 +45,24 @@ public class WorkOrdersRestController { @RequestMapping(value = "/work",method = RequestMethod.POST) public ResponseEntity workordersRegisterPOST(@RequestBody WorkOrdersVO workVO) { logger.info("workordersPOST"); + logger.info("전체 요청 데이터: {}", workVO); + logger.info("wName 값: {}", workVO.getWName()); + logger.info("wName 타입: {}", (workVO.getWName() != null ? workVO.getWName().getClass().getName() : "null")); try { + + // Jackson이 어떻게 데이터를 파싱하는지 확인 + ObjectMapper mapper = new ObjectMapper(); + String jsonStr = mapper.writeValueAsString(workVO); + logger.info("JSON 형태로 변환된 데이터: {}", jsonStr); + + + + + // 작업지시 등록 wos.insertWorkOrders(workVO); + // 연관된 plan의 상태를 WAITING으로 업데이트 ProductionPlanVO planVO = new ProductionPlanVO(); planVO.setPlanId(workVO.getPlanId()); @@ -55,6 +71,7 @@ public ResponseEntity workordersRegisterPOST(@RequestBody WorkOrdersVO workVO // rqcs.processAndInsertRawMaterials(); // 원자재 검사 관리 List workList = wos.getWorkList(workVO); + logger.info("workList $$$$$$$$$$$$$$: "+ workList); logger.info("등록완료"); return ResponseEntity.ok(workList); } catch (Exception e) { diff --git a/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersVO.java b/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersVO.java index 49f2fa5..f29f6bb 100644 --- a/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersVO.java +++ b/MrBean/src/main/java/com/mrbean/workorders/WorkOrdersVO.java @@ -3,6 +3,7 @@ import java.sql.Date; import java.sql.Timestamp; +import com.fasterxml.jackson.annotation.JsonProperty; import com.mrbean.enums.WorkOrdersStatus; import lombok.Data; @@ -22,6 +23,25 @@ public class WorkOrdersVO { private Date workUpdatedAt; // 수정일시 private boolean shouldUpdatePlan; // plan 상태 업데이트 여부 플래그 + // 변수명은 camelCase를 사용 (첫 글자 소문자) + // 클래스명은 PascalCase를 사용 (첫 글자 대문자) + // 위 사항을 지키지 못한 이름들 때문에 데이터 null값 발생으로 @JsonProperty 어노테이션 사용 + + + @JsonProperty("wName") // 자바 명명규칙을 안지켜서.. json과 호환성 문제 일으킴 + private String wName; + + @JsonProperty("wCode") + private String wCode; + + @JsonProperty("pName") + private String pName; //product + + + + + + private int planId; // 생산계획 ID private String rmlNo; // 원자재 로트 번호 diff --git a/MrBean/src/main/resources/mappers/workOrdersMapper.xml b/MrBean/src/main/resources/mappers/workOrdersMapper.xml index 144c78c..e4a8991 100644 --- a/MrBean/src/main/resources/mappers/workOrdersMapper.xml +++ b/MrBean/src/main/resources/mappers/workOrdersMapper.xml @@ -25,6 +25,10 @@ + + + + @@ -70,7 +74,11 @@ work_status, work_remark, work_created_by, - rml_no + rml_no, + w_code, + w_name, + p_name + @@ -84,7 +92,11 @@ #{workStatus}, #{workRemark}, #{workCreatedBy}, - #{rmlNo} + #{rmlNo}, + #{wCode}, + #{wName}, + #{pName} + ) diff --git a/MrBean/src/main/webapp/WEB-INF/views/workorders/work.jsp b/MrBean/src/main/webapp/WEB-INF/views/workorders/work.jsp index 65806dd..15d19d5 100644 --- a/MrBean/src/main/webapp/WEB-INF/views/workorders/work.jsp +++ b/MrBean/src/main/webapp/WEB-INF/views/workorders/work.jsp @@ -69,10 +69,10 @@
- - - + + @@ -121,6 +121,7 @@ 작업지시번호 + 제품명 생산계획번호 작업시작일 작업수량 @@ -136,6 +137,7 @@ ${work.workOrderNo} + ${work.PName} ${work.workPlanNo} ${work.workStartDate} ${work.workQuantity} diff --git a/MrBean/src/main/webapp/resources/js/common/constants.js b/MrBean/src/main/webapp/resources/js/common/constants.js index 4e87421..fffd5f2 100644 --- a/MrBean/src/main/webapp/resources/js/common/constants.js +++ b/MrBean/src/main/webapp/resources/js/common/constants.js @@ -44,6 +44,10 @@ export const SELECTORS = { WORK_COMQUANTITY:'#completedQuantity', WORK_START_DATE: '#workStartDate', WORK_REMARK: '#workRemark', + WAREHOUSE: '#wName', + + + // Common Form Elements INSERT_BTN: '#insertBtn', diff --git a/MrBean/src/main/webapp/resources/js/modules/work.js b/MrBean/src/main/webapp/resources/js/modules/work.js index a857bde..eb44790 100644 --- a/MrBean/src/main/webapp/resources/js/modules/work.js +++ b/MrBean/src/main/webapp/resources/js/modules/work.js @@ -124,6 +124,8 @@ export const workModule = { workQuantity: parseInt($(SELECTORS.FORM.WORK_QUANTITY).val()), workRemark: $(SELECTORS.FORM.WORK_REMARK).val(), workCreatedBy: DEFAULTS.WORK.CREATED_BY, + wName: $(SELECTORS.FORM.WAREHOUSE).val(), + wCode: $(SELECTORS.FORM.WAREHOUSE + ' option:selected').data('code'), workStatus: STATUS.WORK.WAITING, // 명시적으로 WAITING 상태 설정 shouldUpdatePlan: true // plan 상태도 함께 업데이트 }; @@ -135,6 +137,7 @@ export const workModule = { data: JSON.stringify(formData), success: (response) => { this.updateList(response); + console.log('formData:', formData); alert(MESSAGES.SUCCESS.WORK_CREATE); this.resetForm(); },