봄 등록, csv 적용, 모품번 없이 저장 기능 개발, 엑셀 새로 업로드 기능 추가
This commit is contained in:
@@ -34,6 +34,8 @@ $(document).ready(function(){
|
||||
}
|
||||
});
|
||||
|
||||
$("#product_cd").val("${param.PRODUCT_CD}").select2();
|
||||
|
||||
$(".btnToggle").click(function(){
|
||||
var choosedIsMinus = false;
|
||||
var choosedSrc = $(this).attr("src");
|
||||
@@ -391,12 +393,23 @@ var gridFn = {
|
||||
}
|
||||
,search : function() {
|
||||
grid.setGridParam({
|
||||
url: "/partMng/parsingExcelFile.do"
|
||||
url: "/partMng/parsingExcelFile.do"
|
||||
,datatype : "json"
|
||||
,postData:{"targetObjId":"${objid}","docType":"PART_EXCEL_IMPORT","OBJID":"${CONTRACT_OBJID}"}
|
||||
,loadComplete : function(data) {
|
||||
gridFn.footerSummary();
|
||||
,loadComplete : function(data) {
|
||||
// CSV 파일에서만 LEVEL 값을 PARENT_PART_NO 컬럼에 표시
|
||||
if(data && data.rows) {
|
||||
for(var i = 0; i < data.rows.length; i++) {
|
||||
var row = data.rows[i];
|
||||
// CSV 파일이고 LEVEL 값이 있는 경우
|
||||
if(row.IS_CSV === 'Y' && row.LEVEL && row.LEVEL !== '') {
|
||||
// LEVEL 값을 PARENT_PART_NO 컬럼에 표시 (화면용)
|
||||
grid.jqGrid('setCell', row.id, 'PARENT_PART_NO', row.LEVEL);
|
||||
}
|
||||
}
|
||||
}
|
||||
gridFn.footerSummary();
|
||||
}
|
||||
,gridComplete : function() {
|
||||
//gridFn.opennEdit(); //수정가능
|
||||
var valid = true;
|
||||
@@ -876,15 +889,15 @@ function fn_save(){
|
||||
</td>
|
||||
<td style="font-size:12px;" class="align_c"><label for="bom_part_no">품번</label></td>
|
||||
<td>
|
||||
<input type="text" name="bom_part_no" id="bom_part_no" required reqTitle="품번" value="${param.bom_part_no}" style="width: 170px;"/>
|
||||
<input type="text" name="bom_part_no" id="bom_part_no" required reqTitle="품번" value="${param.BOM_PART_NO}" style="width: 170px;"/>
|
||||
</td>
|
||||
<td style="font-size:12px;" class="align_c"><label for="bom_part_name">품명</label></td>
|
||||
<td>
|
||||
<input type="text" name="bom_part_name" id="bom_part_name" required reqTitle="품명" value="${param.bom_part_name}" style="width: 170px;"/>
|
||||
<input type="text" name="bom_part_name" id="bom_part_name" required reqTitle="품명" value="${param.BOM_PART_NAME}" style="width: 170px;"/>
|
||||
</td>
|
||||
<td style="font-size:12px;" class="align_c"><label for="version">Version</label></td>
|
||||
<td>
|
||||
<input type="text" name="version" id="version" reqTitle="Version" value="${param.version}" style="width: 140px;"/>
|
||||
<input type="text" name="version" id="version" reqTitle="Version" value="${param.BOM_VERSION}" style="width: 140px;"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -158,6 +158,7 @@ var columns = [
|
||||
|
||||
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '200', title : '제품구분', field : 'PRODUCT_NAME' },
|
||||
{headerHozAlign : 'center', hozAlign : 'center', title : '제품구분', field : 'PRODUCT_CD' ,hidden: true},
|
||||
{headerHozAlign : 'center', hozAlign : 'left', width : '300', title : '품번', field : 'PART_NO' },
|
||||
{headerHozAlign : 'center', hozAlign : 'left', /* width : '300',*/ title : '품명', field : 'PART_NAME' },
|
||||
|
||||
@@ -504,7 +505,7 @@ function saveexcelpop() {
|
||||
|
||||
var STATUS = fnc_checkNull(selectedStructure[0].STATUS);
|
||||
|
||||
if(STATUS != 'create'){ //deploy
|
||||
if(STATUS != 'N'){ //deploy
|
||||
Swal.fire('등록중인 건만 등록/추가 할 수 있습니다.');
|
||||
return;
|
||||
}
|
||||
@@ -513,15 +514,23 @@ function saveexcelpop() {
|
||||
var project_name ="";
|
||||
var unit_code ="";
|
||||
var BOM_REPORT_OBJID ="";
|
||||
var BOM_PART_NO ="";
|
||||
var BOM_PART_NAME ="";
|
||||
var BOM_PRODUCT_CD ="";
|
||||
var BOM_VERSION ="";
|
||||
|
||||
for (var i = 0; i < selectedStructure.length; i++) {
|
||||
customer_cd = fnc_checkNull(selectedStructure[i].CUSTOMER_OBJID);
|
||||
project_name = fnc_checkNull(selectedStructure[i].CONTRACT_OBJID);
|
||||
unit_code = fnc_checkNull(selectedStructure[i].UNIT_CODE);
|
||||
//customer_cd = fnc_checkNull(selectedStructure[i].CUSTOMER_OBJID);
|
||||
//project_name = fnc_checkNull(selectedStructure[i].CONTRACT_OBJID);
|
||||
//unit_code = fnc_checkNull(selectedStructure[i].UNIT_CODE);
|
||||
BOM_REPORT_OBJID = fnc_checkNull(selectedStructure[i].OBJID);
|
||||
BOM_PART_NO = fnc_checkNull(selectedStructure[i].PART_NO);
|
||||
BOM_PART_NAME = fnc_checkNull(selectedStructure[i].PART_NAME);
|
||||
BOM_PRODUCT_CD = fnc_checkNull(selectedStructure[i].PRODUCT_CD);
|
||||
BOM_VERSION = fnc_checkNull(selectedStructure[i].REVISION);
|
||||
}
|
||||
|
||||
var url = "/partMng/openBomReportExcelImportPopUp.do?customer_cd="+customer_cd+"&project_name="+project_name+"&unit_code="+unit_code+"&BOM_REPORT_OBJID="+BOM_REPORT_OBJID;
|
||||
var url = "/partMng/openBomReportExcelImportPopUp.do?PRODUCT_CD="+BOM_PRODUCT_CD+"&BOM_PART_NAME="+BOM_PART_NAME+"&BOM_PART_NO="+BOM_PART_NO+"&BOM_REPORT_OBJID="+BOM_REPORT_OBJID+"&BOM_VERSION="+BOM_VERSION;
|
||||
var target = "openBomReportExcelImportPopUp";
|
||||
}
|
||||
}else{
|
||||
|
||||
@@ -2744,6 +2744,7 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
|
||||
,T.MULTI_BREAK_YN
|
||||
,T.MULTI_MASTER_OBJID
|
||||
,(SELECT COUNT(*) FROM BOM_PART_QTY AS A WHERE A.BOM_REPORT_OBJID = T.OBJID) AS BOM_CNT
|
||||
,PRODUCT_CD
|
||||
,CODE_NAME(PRODUCT_CD) as PRODUCT_NAME
|
||||
,PART_NO
|
||||
,PART_NAME
|
||||
@@ -3051,6 +3052,19 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
|
||||
, REVISION = #{REVISION}
|
||||
</insert>
|
||||
|
||||
<!-- 기존 BOM의 파트 데이터 삭제 -->
|
||||
<delete id="deleteBomPartQtyByBomObjid" parameterType="string">
|
||||
DELETE FROM BOM_PART_QTY
|
||||
WHERE BOM_REPORT_OBJID = #{BOM_REPORT_OBJID}
|
||||
</delete>
|
||||
|
||||
<!-- 기존 BOM 상태 초기화 -->
|
||||
<update id="resetBomReportStatus" parameterType="string">
|
||||
UPDATE PART_BOM_REPORT
|
||||
SET STATUS = 'N'
|
||||
WHERE OBJID = #{OBJID}
|
||||
</update>
|
||||
|
||||
<insert id="createBOMReportStructureStandardInfo_old" parameterType="map">
|
||||
INSERT INTO PART_BOM_REPORT (
|
||||
OBJID
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.pms.service;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.sql.Clob;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -3149,6 +3151,231 @@ public class PartMngService extends BaseService {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* CSV 파일 파싱 (엑셀과 동일한 형식으로 반환)
|
||||
* 첫 번째 열이 "수준"인 경우 계층 구조를 자동으로 파악
|
||||
*/
|
||||
private ArrayList parsingCsvFile(String path, String fileName, SqlSession sqlSession) throws Exception {
|
||||
ArrayList resultList = new ArrayList();
|
||||
BufferedReader br = null;
|
||||
|
||||
try {
|
||||
File csvFile = new File(path + "\\" + fileName);
|
||||
br = new BufferedReader(new InputStreamReader(new FileInputStream(csvFile), "UTF-8"));
|
||||
|
||||
String line;
|
||||
int rowIndex = 0;
|
||||
|
||||
// 모든 자품번 수집 및 수준별 품번 매핑
|
||||
Set<String> allPartNumbers = new HashSet<>();
|
||||
List<String[]> allRows = new ArrayList<>();
|
||||
Map<String, String> levelToPartNoMap = new HashMap<>(); // 수준 -> 품번 매핑
|
||||
Map<Integer, String> depthToPartNoMap = new HashMap<>(); // 깊이 -> 품번 매핑 (숫자만 있는 경우)
|
||||
|
||||
while ((line = br.readLine()) != null) {
|
||||
String[] values = line.split(",");
|
||||
allRows.add(values);
|
||||
|
||||
// 헤더가 아닌 경우 품번 수집
|
||||
if (rowIndex > 0 && values.length > 1) {
|
||||
String level = values[0].trim(); // 수준
|
||||
String partNo = values[1].trim(); // 품번
|
||||
|
||||
// CSV 큰따옴표 제거
|
||||
if (level.startsWith("\"") && level.endsWith("\"") && level.length() > 1) {
|
||||
level = level.substring(1, level.length() - 1);
|
||||
}
|
||||
if (partNo.startsWith("\"") && partNo.endsWith("\"") && partNo.length() > 1) {
|
||||
partNo = partNo.substring(1, partNo.length() - 1);
|
||||
}
|
||||
|
||||
if (!StringUtils.isBlank(partNo)) {
|
||||
allPartNumbers.add(partNo);
|
||||
if (!StringUtils.isBlank(level)) {
|
||||
levelToPartNoMap.put(level, partNo);
|
||||
// 숫자만 있는 경우를 위한 깊이 매핑
|
||||
try {
|
||||
int depth = Integer.parseInt(level);
|
||||
depthToPartNoMap.put(depth, partNo);
|
||||
} catch (NumberFormatException e) {
|
||||
// 숫자가 아니면 무시 (1.1, 1.4.1 같은 형식)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
rowIndex++;
|
||||
}
|
||||
|
||||
// 데이터 파싱
|
||||
rowIndex = 0;
|
||||
Map<Integer, String> currentDepthPartNoMap = new HashMap<>(); // 현재 처리 중인 각 깊이별 최신 품번
|
||||
|
||||
for (String[] values : allRows) {
|
||||
if (rowIndex == 0) { // 헤더 건너뛰기
|
||||
rowIndex++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (values.length < 11) { // 최소 11개 컬럼 필요 (수준 포함)
|
||||
rowIndex++;
|
||||
continue;
|
||||
}
|
||||
|
||||
Map partMap = new HashMap();
|
||||
AtomicInteger emptyColCnt = new AtomicInteger(0);
|
||||
String noteMsg = "";
|
||||
|
||||
int colIndex = 0;
|
||||
|
||||
// 각 컬럼 파싱 (CSV: 수준, 품번, 품명, 수량, ...)
|
||||
String level = getCsvValue(values, colIndex++, emptyColCnt); // 0: 수준
|
||||
String partNo = getCsvValue(values, colIndex++, emptyColCnt); // 1: 품번
|
||||
String partName = getCsvValue(values, colIndex++, emptyColCnt); // 2: 품명
|
||||
String qty = getCsvValue(values, colIndex++, emptyColCnt); // 3: 수량
|
||||
String itemQty = getCsvValue(values, colIndex++, emptyColCnt); // 4: 항목수량
|
||||
String material = getCsvValue(values, colIndex++, emptyColCnt); // 5: 재료
|
||||
String heatTreatmentHardness = getCsvValue(values, colIndex++, emptyColCnt); // 6: 열처리경도
|
||||
String heatTreatmentMethod = getCsvValue(values, colIndex++, emptyColCnt); // 7: 열처리방법
|
||||
String surfaceTreatment = getCsvValue(values, colIndex++, emptyColCnt); // 8: 표면처리
|
||||
String supplier = getCsvValue(values, colIndex++, emptyColCnt); // 9: 공급업체
|
||||
String partType = getCsvValue(values, colIndex++, emptyColCnt); // 10: 범주이름
|
||||
|
||||
// 수준으로부터 부모 품번 찾기
|
||||
String parentPartNo = "";
|
||||
if (!StringUtils.isBlank(level)) {
|
||||
// 숫자만 있는 경우 (1, 2, 3, 4 등)
|
||||
try {
|
||||
int currentDepth = Integer.parseInt(level);
|
||||
|
||||
// 현재 깊이의 품번 저장 (다음 행에서 참조할 수 있도록)
|
||||
if (!StringUtils.isBlank(partNo)) {
|
||||
currentDepthPartNoMap.put(currentDepth, partNo);
|
||||
}
|
||||
|
||||
// 부모 찾기: 바로 이전 깊이의 최신 품번
|
||||
if (currentDepth > 1) {
|
||||
int parentDepth = currentDepth - 1;
|
||||
if (currentDepthPartNoMap.containsKey(parentDepth)) {
|
||||
parentPartNo = currentDepthPartNoMap.get(parentDepth);
|
||||
}
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
// 숫자가 아닌 경우 (1.1, 1.4.1 등) - 기존 로직 사용
|
||||
String parentLevel = getParentLevel(level);
|
||||
if (!StringUtils.isBlank(parentLevel) && levelToPartNoMap.containsKey(parentLevel)) {
|
||||
parentPartNo = levelToPartNoMap.get(parentLevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 유효성 검증
|
||||
if(!StringUtils.isBlank(parentPartNo) && rowIndex > 2) {
|
||||
if(!allPartNumbers.contains(parentPartNo)) {
|
||||
noteMsg += "모품번 미존재:" + parentPartNo + ";";
|
||||
}
|
||||
}
|
||||
|
||||
// PART_TYPE 코드 조회
|
||||
String partTypeCode = "";
|
||||
if(!StringUtils.isBlank(partType) && rowIndex > 2) {
|
||||
Map sqlParamMap = new HashMap();
|
||||
sqlParamMap.put("CODE_NAME", partType);
|
||||
String partNoForCheck = CommonUtils.checkNull(partNo);
|
||||
sqlParamMap.put("partNo", partNoForCheck);
|
||||
Map partTypeMap = sqlSession.selectOne("partMng.parttypeInfo", sqlParamMap);
|
||||
if(null != partTypeMap && !StringUtils.isBlank((String)partTypeMap.get("code_id"))){
|
||||
partTypeCode = (String)partTypeMap.get("code_id");
|
||||
} else {
|
||||
noteMsg += "부품유형 확인:" + partType + ";";
|
||||
}
|
||||
} else if(!StringUtils.isBlank(partType) && rowIndex <= 2) {
|
||||
Map sqlParamMap = new HashMap();
|
||||
sqlParamMap.put("CODE_NAME", partType);
|
||||
Map partTypeMap = sqlSession.selectOne("partMng.parttypeInfo", sqlParamMap);
|
||||
if(null != partTypeMap && !StringUtils.isBlank((String)partTypeMap.get("code_id"))){
|
||||
partTypeCode = (String)partTypeMap.get("code_id");
|
||||
}
|
||||
}
|
||||
|
||||
// Map에 데이터 저장
|
||||
partMap.put("LEVEL", level); // 수준 값 (화면 표시용)
|
||||
partMap.put("PARENT_PART_NO", parentPartNo); // 실제 부모 품번 (저장용)
|
||||
partMap.put("PART_NO", partNo);
|
||||
partMap.put("PART_NAME", partName);
|
||||
partMap.put("QTY", qty);
|
||||
partMap.put("ITEM_QTY", itemQty);
|
||||
partMap.put("MATERIAL", material);
|
||||
partMap.put("HEAT_TREATMENT_HARDNESS", heatTreatmentHardness);
|
||||
partMap.put("HEAT_TREATMENT_METHOD", heatTreatmentMethod);
|
||||
partMap.put("SURFACE_TREATMENT", surfaceTreatment);
|
||||
partMap.put("SUPPLIER", supplier);
|
||||
partMap.put("PART_TYPE", partTypeCode);
|
||||
partMap.put("NOTE", noteMsg);
|
||||
|
||||
if(!StringUtils.isBlank(noteMsg) || emptyColCnt.intValue() < 9) {
|
||||
resultList.add(partMap);
|
||||
}
|
||||
|
||||
rowIndex++;
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
} finally {
|
||||
if (br != null) {
|
||||
try {
|
||||
br.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* CSV 값 추출 헬퍼 메서드
|
||||
*/
|
||||
private String getCsvValue(String[] values, int index, AtomicInteger emptyColCnt) {
|
||||
if (index >= values.length) {
|
||||
emptyColCnt.incrementAndGet();
|
||||
return "";
|
||||
}
|
||||
String value = values[index].trim();
|
||||
|
||||
// CSV 큰따옴표 제거
|
||||
if (value.startsWith("\"") && value.endsWith("\"") && value.length() > 1) {
|
||||
value = value.substring(1, value.length() - 1);
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(value)) {
|
||||
emptyColCnt.incrementAndGet();
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 수준으로부터 부모 수준 찾기
|
||||
* 예: "1.4.1" -> "1.4", "1.8" -> "1", "1" -> ""
|
||||
*/
|
||||
private String getParentLevel(String level) {
|
||||
if (StringUtils.isBlank(level)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// 마지막 점(.)의 위치 찾기
|
||||
int lastDotIndex = level.lastIndexOf('.');
|
||||
if (lastDotIndex > 0) {
|
||||
// 마지막 점 이전까지가 부모 수준
|
||||
return level.substring(0, lastDotIndex);
|
||||
}
|
||||
|
||||
// 점이 없으면 최상위 레벨이므로 부모 없음
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* BOM 복사를 위한 데이터 조회 (엑셀 파싱 형식과 동일하게 반환)
|
||||
*/
|
||||
@@ -3250,6 +3477,19 @@ public class PartMngService extends BaseService {
|
||||
String path = CommonUtils.checkNull(fileMap.get("FILE_PATH"));
|
||||
String fileName = CommonUtils.checkNull(fileMap.get("SAVED_FILE_NAME"));
|
||||
|
||||
// CSV 파일인 경우 (수준 기반 계층 구조)
|
||||
if (fileName.endsWith(".csv") || fileName.endsWith(".CSV")) {
|
||||
resultList = parsingCsvFile(path, fileName, sqlSession);
|
||||
// CSV 파일임을 표시
|
||||
for(int i = 0; i < resultList.size(); i++) {
|
||||
Map partMap = (Map)resultList.get(i);
|
||||
partMap.put("IS_CSV", "Y");
|
||||
}
|
||||
sqlSession.close();
|
||||
return resultList;
|
||||
}
|
||||
|
||||
// Excel 파일인 경우
|
||||
FileInputStream fis = new FileInputStream(path+"\\"+fileName);
|
||||
|
||||
Workbook workBook = null;
|
||||
@@ -3983,14 +4223,27 @@ public class PartMngService extends BaseService {
|
||||
SqlSession sqlSession = null;
|
||||
Map sqlMap = new HashMap();
|
||||
try{
|
||||
List<Map<String, Object>> gridDataList = JsonUtil.JsonToList(CommonUtils.checkNull(paramMap.get("jqGrid")));
|
||||
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
||||
String objid = CommonUtils.checkNull(paramMap.get("importPopObjid"));
|
||||
String bomobjid = CommonUtils.checkNull(paramMap.get("BOM_REPORT_OBJID"));
|
||||
if(!"".equals(bomobjid)){
|
||||
objid = bomobjid;
|
||||
}
|
||||
String masterObjid = objid;
|
||||
List<Map<String, Object>> gridDataList = JsonUtil.JsonToList(CommonUtils.checkNull(paramMap.get("jqGrid")));
|
||||
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
||||
|
||||
// 기존 BOM이 있으면 해당 BOM을 수정, 없으면 새로 생성
|
||||
String objid = CommonUtils.checkNull(paramMap.get("importPopObjid"));
|
||||
String bomobjid = CommonUtils.checkNull(paramMap.get("BOM_REPORT_OBJID"));
|
||||
|
||||
if(!"".equals(bomobjid)){
|
||||
// 기존 BOM 수정: 기존 파트 데이터 삭제
|
||||
objid = bomobjid;
|
||||
Map deleteParam = new HashMap();
|
||||
deleteParam.put("BOM_REPORT_OBJID", objid);
|
||||
sqlSession.delete("partMng.deleteBomPartQtyByBomObjid", deleteParam);
|
||||
|
||||
// BOM 상태 초기화
|
||||
Map resetParam = new HashMap();
|
||||
resetParam.put("OBJID", objid);
|
||||
sqlSession.update("partMng.resetBomReportStatus", resetParam);
|
||||
}
|
||||
|
||||
String masterObjid = objid;
|
||||
|
||||
// BOM부터 만들고 프로젝트에 연결하도록 변경 - 프로젝트 유닛 정보 조회 주석처리
|
||||
/*
|
||||
@@ -4219,8 +4472,10 @@ public class PartMngService extends BaseService {
|
||||
String parent_objid ="";
|
||||
partobjMap.put("PART_NO", CommonUtils.checkNull((String)insertMap.get("PARENT_PART_NO")));
|
||||
partobjMap.put("BOM_REPORT_OBJID", objid);
|
||||
resultMap = (HashMap)sqlSession.selectOne("partMng.getBomPartQtyObjid", partobjMap);
|
||||
if(null!=resultMap){
|
||||
// selectList로 변경 (중복 품번 대응)
|
||||
List<Map> resultList = sqlSession.selectList("partMng.getBomPartQtyObjid", partobjMap);
|
||||
if(resultList != null && resultList.size() > 0){
|
||||
resultMap = (HashMap)resultList.get(0); // 첫 번째 결과 사용
|
||||
parent_objid = CommonUtils.checkNull((String)resultMap.get("child_objid"));
|
||||
}
|
||||
|
||||
@@ -4234,13 +4489,7 @@ public class PartMngService extends BaseService {
|
||||
System.out.println(" insertMap--->"+insertMap);
|
||||
|
||||
//BOM저장
|
||||
//BOM에 구조 추가할경우 상태값 변경
|
||||
if(!"".equals(bomobjid)){
|
||||
insertMap.put("STATUS", "deploy");
|
||||
insertMap.put("LAST_PART_OBJID", part_no);
|
||||
insertMap.put("DEPLOY_USER_ID", "addBom");
|
||||
insertMap.put("DEPLOY_DATE", "Y");
|
||||
}
|
||||
// 기존 BOM 수정 시 deploy 상태는 설정하지 않음 (초기화된 상태 유지)
|
||||
|
||||
sqlSession.insert("partMng.relatePartInfo", insertMap);
|
||||
}//end of gridDataList
|
||||
|
||||
Reference in New Issue
Block a user