테스트 전 저장
This commit is contained in:
@@ -1043,6 +1043,86 @@ public class QualityService extends BaseService{
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 반제품검사 행 잠금 (IS_LOCKED = 'Y')
|
||||
*/
|
||||
public Map lockSemiProductInspection(Map paramMap){
|
||||
Map resultMap = new HashMap();
|
||||
SqlSession sqlSession = null;
|
||||
try{
|
||||
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
||||
|
||||
String objIdsJson = CommonUtils.checkNull(paramMap.get("objIds"));
|
||||
|
||||
if(!objIdsJson.equals("") && !objIdsJson.equals("[]")){
|
||||
org.json.simple.parser.JSONParser parser = new org.json.simple.parser.JSONParser();
|
||||
org.json.simple.JSONArray objIdArr = (org.json.simple.JSONArray) parser.parse(objIdsJson);
|
||||
|
||||
for(int i = 0; i < objIdArr.size(); i++){
|
||||
String objId = CommonUtils.checkNull(objIdArr.get(i));
|
||||
if(!objId.equals("")){
|
||||
Map lockParam = new HashMap();
|
||||
lockParam.put("OBJID", objId);
|
||||
sqlSession.update("quality.lockSemiProductInspection", lockParam);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sqlSession.commit();
|
||||
resultMap.put("result", true);
|
||||
resultMap.put("msg", "잠금 처리되었습니다.");
|
||||
|
||||
}catch(Exception e){
|
||||
resultMap.put("result", false);
|
||||
resultMap.put("msg", "잠금 처리에 실패했습니다.");
|
||||
if(sqlSession != null) sqlSession.rollback();
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
if(sqlSession != null) sqlSession.close();
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 반제품검사 삭제 (OBJID 목록으로 삭제)
|
||||
*/
|
||||
public Map deleteSemiProductInspection(Map paramMap){
|
||||
Map resultMap = new HashMap();
|
||||
SqlSession sqlSession = null;
|
||||
try{
|
||||
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
||||
|
||||
String objIdsJson = CommonUtils.checkNull(paramMap.get("objIds"));
|
||||
|
||||
if(!objIdsJson.equals("") && !objIdsJson.equals("[]")){
|
||||
org.json.simple.parser.JSONParser parser = new org.json.simple.parser.JSONParser();
|
||||
org.json.simple.JSONArray objIdArr = (org.json.simple.JSONArray) parser.parse(objIdsJson);
|
||||
|
||||
for(int i = 0; i < objIdArr.size(); i++){
|
||||
String objId = CommonUtils.checkNull(objIdArr.get(i));
|
||||
if(!objId.equals("")){
|
||||
Map deleteParam = new HashMap();
|
||||
deleteParam.put("OBJID", objId);
|
||||
sqlSession.delete("quality.deleteSemiProductInspectionByObjId", deleteParam);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sqlSession.commit();
|
||||
resultMap.put("result", true);
|
||||
resultMap.put("msg", "삭제되었습니다.");
|
||||
|
||||
}catch(Exception e){
|
||||
resultMap.put("result", false);
|
||||
resultMap.put("msg", "삭제에 실패했습니다.");
|
||||
if(sqlSession != null) sqlSession.rollback();
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
if(sqlSession != null) sqlSession.close();
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 반제품검사 저장 (새로운 팝업 형식)
|
||||
* - 기존 INSPECTION_GROUP_ID가 있으면 수정 모드 (기존 OBJID 유지하면서 UPSERT)
|
||||
@@ -1061,12 +1141,14 @@ public class QualityService extends BaseService{
|
||||
String leftDataStr = CommonUtils.checkNull(paramMap.get("leftData"));
|
||||
String rightDataStr = CommonUtils.checkNull(paramMap.get("rightData"));
|
||||
String existingGroupId = CommonUtils.checkNull(paramMap.get("INSPECTION_GROUP_ID"));
|
||||
String saveType = CommonUtils.checkNull(paramMap.get("saveType"), "all"); // 저장 타입: left, right, all
|
||||
|
||||
org.json.simple.parser.JSONParser parser = new org.json.simple.parser.JSONParser();
|
||||
|
||||
// 검사 그룹 ID 결정 (기존 있으면 유지, 없으면 새로 생성)
|
||||
String inspectionGroupId = "";
|
||||
java.util.Set existingObjIds = new java.util.HashSet(); // 저장할 OBJID 목록 (삭제 대상 판별용)
|
||||
java.util.Set existingLeftObjIds = new java.util.HashSet(); // 저장할 좌측 OBJID 목록
|
||||
java.util.Set existingRightObjIds = new java.util.HashSet(); // 저장할 우측 OBJID 목록
|
||||
|
||||
if(!existingGroupId.equals("")){
|
||||
// 수정 모드: 기존 그룹 ID 유지
|
||||
@@ -1082,13 +1164,17 @@ public class QualityService extends BaseService{
|
||||
for(int i = 0; i < leftArr.size(); i++){
|
||||
org.json.simple.JSONObject item = (org.json.simple.JSONObject) leftArr.get(i);
|
||||
|
||||
// 기존 OBJID가 있고 임시 ID가 아니면 유지, 아니면 새로 생성
|
||||
// OBJID 처리
|
||||
String existingObjId = CommonUtils.checkNull(item.get("OBJID"));
|
||||
String rowId = CommonUtils.checkNull(item.get("ROW_ID"));
|
||||
boolean isNewRow = existingObjId.equals("") || existingObjId.startsWith("NEW_") || existingObjId.startsWith("EXIST_");
|
||||
String objId = existingObjId;
|
||||
|
||||
String objId = isNewRow ? CommonUtils.createObjId() : existingObjId;
|
||||
existingObjIds.add(objId);
|
||||
// OBJID가 비어있거나 임시 ID이면 새로 생성
|
||||
if(objId.equals("") || objId.startsWith("NEW_") || objId.startsWith("EXIST_")){
|
||||
objId = CommonUtils.createObjId();
|
||||
}
|
||||
|
||||
existingLeftObjIds.add(objId); // 좌측 OBJID 목록에 추가
|
||||
|
||||
Map sqlParamMap = new HashMap();
|
||||
sqlParamMap.put("OBJID", objId);
|
||||
@@ -1114,11 +1200,11 @@ public class QualityService extends BaseService{
|
||||
sqlParamMap.put("DISPOSITION_TYPE", "");
|
||||
sqlParamMap.put("REMARK", "");
|
||||
|
||||
if(isNewRow){
|
||||
// UPSERT: UPDATE 시도 후 실패하면 INSERT
|
||||
int updateCnt = sqlSession.update("quality.updateSemiProductInspectionData", sqlParamMap);
|
||||
if(updateCnt == 0){
|
||||
// UPDATE 실패 시 INSERT (신규 데이터)
|
||||
sqlSession.insert("quality.insertSemiProductInspectionData", sqlParamMap);
|
||||
} else {
|
||||
// 기존 데이터 업데이트
|
||||
sqlSession.update("quality.updateSemiProductInspectionData", sqlParamMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1154,19 +1240,31 @@ public class QualityService extends BaseService{
|
||||
String partName = "";
|
||||
|
||||
if(parentItem != null){
|
||||
// 좌측 데이터가 함께 전송된 경우 (전체 저장)
|
||||
workOrderNo = CommonUtils.checkNull(parentItem.get("WORK_ORDER_NO"));
|
||||
modelName = CommonUtils.checkNull(parentItem.get("MODEL_NAME"));
|
||||
productType = CommonUtils.checkNull(parentItem.get("PRODUCT_TYPE"));
|
||||
partNo = CommonUtils.checkNull(parentItem.get("PART_NO"));
|
||||
partName = CommonUtils.checkNull(parentItem.get("PART_NAME"));
|
||||
} else {
|
||||
// 우측만 저장하는 경우: item에 직접 부모 정보가 포함되어 있음
|
||||
workOrderNo = CommonUtils.checkNull(item.get("WORK_ORDER_NO"));
|
||||
modelName = CommonUtils.checkNull(item.get("MODEL_NAME"));
|
||||
productType = CommonUtils.checkNull(item.get("PRODUCT_TYPE"));
|
||||
partNo = CommonUtils.checkNull(item.get("PART_NO"));
|
||||
partName = CommonUtils.checkNull(item.get("PART_NAME"));
|
||||
}
|
||||
|
||||
// 기존 OBJID가 있고 임시 ID가 아니면 유지, 아니면 새로 생성
|
||||
// OBJID 처리
|
||||
String existingObjId = CommonUtils.checkNull(item.get("OBJID"));
|
||||
boolean isNewRow = existingObjId.equals("") || existingObjId.startsWith("DEFECT_") || existingObjId.startsWith("NEW_");
|
||||
String objId = existingObjId;
|
||||
|
||||
String objId = isNewRow ? CommonUtils.createObjId() : existingObjId;
|
||||
existingObjIds.add(objId);
|
||||
// OBJID가 비어있으면 새로 생성
|
||||
if(objId.equals("") || objId.startsWith("DEFECT_") || objId.startsWith("NEW_")){
|
||||
objId = CommonUtils.createObjId();
|
||||
}
|
||||
|
||||
existingRightObjIds.add(objId); // 우측 OBJID 목록에 추가
|
||||
|
||||
Map sqlParamMap = new HashMap();
|
||||
sqlParamMap.put("OBJID", objId);
|
||||
@@ -1192,26 +1290,49 @@ public class QualityService extends BaseService{
|
||||
sqlParamMap.put("RECEIPT_QTY", "0");
|
||||
sqlParamMap.put("GOOD_QTY", "0");
|
||||
|
||||
if(isNewRow){
|
||||
// UPSERT: UPDATE 시도 후 실패하면 INSERT
|
||||
int updateCnt = sqlSession.update("quality.updateSemiProductInspectionData", sqlParamMap);
|
||||
if(updateCnt == 0){
|
||||
// UPDATE 실패 시 INSERT (신규 데이터)
|
||||
sqlSession.insert("quality.insertSemiProductInspectionData", sqlParamMap);
|
||||
} else {
|
||||
// 기존 데이터 업데이트
|
||||
sqlSession.update("quality.updateSemiProductInspectionData", sqlParamMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 수정 모드일 때: 전송된 데이터에 없는 기존 데이터는 삭제
|
||||
// 수정 모드일 때: 자동 삭제 비활성화 (사용자가 직접 삭제 버튼으로만 삭제)
|
||||
// 데이터 손실 방지를 위해 자동 삭제 로직 제거
|
||||
// 삭제는 사용자가 그리드에서 행을 선택하고 삭제 버튼을 누를 때만 수행
|
||||
/*
|
||||
if(!existingGroupId.equals("")){
|
||||
Map deleteParam = new HashMap();
|
||||
deleteParam.put("INSPECTION_GROUP_ID", inspectionGroupId);
|
||||
deleteParam.put("EXCLUDE_OBJIDS", existingObjIds);
|
||||
sqlSession.delete("quality.deleteSemiProductInspectionExcludeObjIds", deleteParam);
|
||||
|
||||
if("left".equals(saveType)){
|
||||
if(existingLeftObjIds.size() > 0){
|
||||
deleteParam.put("EXCLUDE_OBJIDS", existingLeftObjIds);
|
||||
deleteParam.put("DATA_TYPE", "GOOD");
|
||||
sqlSession.delete("quality.deleteSemiProductInspectionByType", deleteParam);
|
||||
}
|
||||
} else if("right".equals(saveType)){
|
||||
if(existingRightObjIds.size() > 0){
|
||||
deleteParam.put("EXCLUDE_OBJIDS", existingRightObjIds);
|
||||
deleteParam.put("DATA_TYPE", "DEFECT");
|
||||
sqlSession.delete("quality.deleteSemiProductInspectionByType", deleteParam);
|
||||
}
|
||||
} else {
|
||||
java.util.Set allObjIds = new java.util.HashSet();
|
||||
allObjIds.addAll(existingLeftObjIds);
|
||||
allObjIds.addAll(existingRightObjIds);
|
||||
deleteParam.put("EXCLUDE_OBJIDS", allObjIds);
|
||||
sqlSession.delete("quality.deleteSemiProductInspectionExcludeObjIds", deleteParam);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
sqlSession.commit();
|
||||
resultMap.put("result", true);
|
||||
resultMap.put("msg", "저장되었습니다.");
|
||||
resultMap.put("inspectionGroupId", inspectionGroupId); // 생성된 그룹 ID 반환
|
||||
}catch(Exception e){
|
||||
resultMap.put("result", false);
|
||||
resultMap.put("msg", "저장 중 오류가 발생했습니다: " + e.getMessage());
|
||||
|
||||
Reference in New Issue
Block a user