Files
wace_plm/src/com/pms/service/QualityService.java

1330 lines
42 KiB
Java
Raw Normal View History

package com.pms.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Service;
import com.pms.common.Message;
import com.pms.common.SqlMapConfig;
import com.pms.common.bean.PersonBean;
import com.pms.common.service.BaseService;
import com.pms.common.utils.CommonUtils;
import com.pms.common.utils.Constants;
2025-12-16 15:45:34 +09:00
import com.pms.common.JsonUtil;
@Service
public class QualityService extends BaseService{
/*jmpark start*/
/**
* 품질검사 중복체크
* 차종, 제품, 검사명, 단계1,2별 한개씩만 등록 가능하다.
* 반환값 : true (중복), false (중복아님)
* @param paramMap
* @return
*/
public Map checkDuplicateQualityTestInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
Map map = sqlSession.selectOne("quality.getDuplicateQualityTestCnt", paramMap);
if(map != null){
int cnt = Integer.parseInt(CommonUtils.checkNull(map.get("CNT"), "0"));
System.out.println("cnt : "+cnt);
if(cnt > 0){
resultMap.put("result", true);
}else{
resultMap.put("result", false);
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 품질검사 갑지 등록
* @param paramMap
* @return
*/
public Map saveQualityTestInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
String objId = CommonUtils.checkNull(request.getParameter("objId"));
if("".equals(objId)){
objId = CommonUtils.checkNull(CommonUtils.createObjId());
}
paramMap.put("objId", objId);
paramMap.put("writer", writer);
int cnt = sqlSession.insert("quality.insertQualityTestInfo", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}else{
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 품질검사 갑지내용 조회
* @param paramMap
* @return
*/
public Map getQualityTestInfo(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("quality.getQualityTestInfo", paramMap);
String writer = CommonUtils.checkNull(resultMap.get("WRITER"));
//작성자 및 관리자 권한을 확인한다.
resultMap.put("IS_WRITER", CommonUtils.setWriterChecker(request, writer));
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 품질검사 임시목록 조회
* @param paramMap
* @return
*/
public List getQualityTestTempList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
Map pageMap = new HashMap();
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
//paging start
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
paramMap.put("connectedUserId", person.getUserId());
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), ""+Constants.COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
pageMap = (HashMap)sqlSession.selectOne("quality.getQualityTestTempListCnt", paramMap);
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap, countPerPage);
paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END")));
paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START")));
//paging end
resultList = sqlSession.selectList("quality.getQualityTestTempList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 품질검사 확정목록 조회
* @param paramMap
* @return
*/
public List getQualityTestList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
Map pageMap = new HashMap();
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
//paging start
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
paramMap.put("connectedUserId", person.getUserId());
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), ""+Constants.COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
pageMap = (HashMap)sqlSession.selectOne("quality.getQualityTestListCnt", paramMap);
pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap, countPerPage);
paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END")));
paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START")));
//paging end
resultList = sqlSession.selectList("quality.getQualityTestList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 품질검사 상세 Part 목록조회
* @param paramMap
* @return
*/
public List getQualityTestDetailPartList(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getQualityTestDetailPartList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 품질검사 Part별 정보 저장
* @param paramMap
* @return
*/
public Map saveQualityTestPartInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
List partList = sqlSession.selectList("quality.getQualityTestDetailPartList", paramMap);
for(int i = 0 ; i < partList.size() ; i++){
Map partInfo = (HashMap)partList.get(i);
String objId = CommonUtils.checkNull(partInfo.get("QUALITY_SLAVE_OBJID"));
String targetObjId = CommonUtils.checkNull(paramMap.get("targetObjId"));
String partNo = CommonUtils.checkNull(partInfo.get("PART_NO"));
String score = CommonUtils.checkNull(paramMap.get("score_"+partNo));
String result = CommonUtils.checkNull(paramMap.get("result_"+partNo));
String type1 = CommonUtils.checkNull(paramMap.get("type1_"+partNo));
String type2 = CommonUtils.checkNull(paramMap.get("type2_"+partNo));
System.out.println();
System.out.println("objId : "+objId);
if("".equals(objId)) objId = CommonUtils.createObjId();
System.out.println("objId2 : "+objId);
System.out.println("targetObjId : "+targetObjId);
System.out.println("partNo : "+partNo);
System.out.println("score : "+score);
System.out.println("result : "+result);
System.out.println();
Map sqlParamMap = new HashMap();
sqlParamMap.put("objId", objId);
sqlParamMap.put("targetObjId", targetObjId);
sqlParamMap.put("partNo", partNo);
sqlParamMap.put("score", score);
sqlParamMap.put("result", result);
sqlParamMap.put("type1", type1);
sqlParamMap.put("type2", type2);
sqlParamMap.put("writer", writer);
int cnt = sqlSession.update("quality.saveQualityTestPartInfo", sqlParamMap);
if(cnt == 0){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
return resultMap;
}
}
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
sqlSession.commit();
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 품질검사 확정
* @param paramMap
* @return
*/
public Map completeQualityTestInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
int cnt = sqlSession.update("quality.completeQualityTestInfo", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}else{
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/*jmpark end*/
2025-12-04 15:21:54 +09:00
// =====================================================
// 품질관리 기초정보관리
// =====================================================
2025-12-04 15:21:54 +09:00
/**
* 검사구분 목록 조회
* @param paramMap
* @return
*/
public List getInspectionTypeList(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getInspectionTypeList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 불량유형 목록 조회
* @param paramMap
* @return
*/
public List getDefectTypeList(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getDefectTypeList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 불량원인 목록 조회
* @param paramMap
* @return
*/
public List getDefectReasonList(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getDefectReasonList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 기초정보 저장
* @param request
* @param paramMap
* @return
*/
public Map saveQualityBasicInfo(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
String type = CommonUtils.checkNull(paramMap.get("TYPE"));
String dataJson = CommonUtils.checkNull(paramMap.get("DATA"));
// JSON 파싱
com.google.gson.Gson gson = new com.google.gson.Gson();
java.lang.reflect.Type listType = new com.google.gson.reflect.TypeToken<List<Map<String, String>>>(){}.getType();
List<Map<String, String>> dataList = gson.fromJson(dataJson, listType);
for(Map<String, String> data : dataList){
String objId = CommonUtils.checkNull(data.get("OBJID"));
String isNew = CommonUtils.checkNull(data.get("IS_NEW"));
Map sqlParamMap = new HashMap();
sqlParamMap.put("writer", writer);
if("INSPECTION_TYPE".equals(type)){
// 검사구분 저장
sqlParamMap.put("INSPECTION_TYPE_NAME", data.get("INSPECTION_TYPE_NAME"));
sqlParamMap.put("STATUS", data.get("STATUS"));
if("Y".equals(isNew)){
sqlParamMap.put("OBJID", CommonUtils.createObjId());
sqlSession.insert("quality.insertInspectionType", sqlParamMap);
} else {
sqlParamMap.put("OBJID", objId);
sqlSession.update("quality.updateInspectionType", sqlParamMap);
}
} else if("DEFECT_TYPE".equals(type)){
// 불량유형 저장
sqlParamMap.put("DEFECT_TYPE_NAME", data.get("DEFECT_TYPE_NAME"));
sqlParamMap.put("STATUS", data.get("STATUS"));
if("Y".equals(isNew)){
sqlParamMap.put("OBJID", CommonUtils.createObjId());
sqlSession.insert("quality.insertDefectType", sqlParamMap);
} else {
sqlParamMap.put("OBJID", objId);
sqlSession.update("quality.updateDefectType", sqlParamMap);
}
} else if("DEFECT_REASON".equals(type)){
// 불량원인 저장
sqlParamMap.put("DEFECT_TYPE_OBJID", data.get("DEFECT_TYPE_OBJID"));
sqlParamMap.put("DEFECT_REASON_NAME", data.get("DEFECT_REASON_NAME"));
sqlParamMap.put("STATUS", data.get("STATUS"));
if("Y".equals(isNew)){
sqlParamMap.put("OBJID", CommonUtils.createObjId());
sqlSession.insert("quality.insertDefectReason", sqlParamMap);
} else {
sqlParamMap.put("OBJID", objId);
sqlSession.update("quality.updateDefectReason", sqlParamMap);
}
}
}
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
if(sqlSession != null) sqlSession.rollback();
e.printStackTrace();
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
/**
* 기초정보 삭제
* @param paramMap
* @return
*/
public Map deleteQualityBasicInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
String type = CommonUtils.checkNull(paramMap.get("TYPE"));
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
int cnt = 0;
if("INSPECTION_TYPE".equals(type)){
cnt = sqlSession.delete("quality.deleteInspectionType", paramMap);
} else if("DEFECT_TYPE".equals(type)){
// 불량유형 삭제 시 종속된 불량원인도 삭제
sqlSession.delete("quality.deleteDefectReasonByType", paramMap);
cnt = sqlSession.delete("quality.deleteDefectType", paramMap);
} else if("DEFECT_REASON".equals(type)){
cnt = sqlSession.delete("quality.deleteDefectReason", paramMap);
}
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
if(sqlSession != null) sqlSession.rollback();
e.printStackTrace();
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
// =====================================================
// 수입검사 관리
// =====================================================
/**
* 품의서 번호 목록 조회 (검색조건용)
*/
public List getProposalNoList(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getProposalNoList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 발주서 번호 목록 조회 (검색조건용)
*/
public List getPurchaseOrderNoList(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getPurchaseOrderNoList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 프로젝트 번호 목록 조회 (검색조건용)
*/
public List getProjectNoList(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getProjectNoList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 공급업체 목록 조회 (검색조건용)
*/
public List getPartnerList(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getPartnerList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 검사자 목록 조회 (검색조건용)
*/
public List getInspectorList(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getInspectorList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 수입검사 목록 조회
*/
public List getIncomingInspectionList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getIncomingInspectionList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 수입검사 상세 정보 조회
*/
public Map getIncomingInspectionInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("quality.getIncomingInspectionInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 수입검사 상세 정보 조회 (발주서 기준 첫번째 검사 정보)
*/
public Map getIncomingInspectionDetailInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("quality.getIncomingInspectionDetailInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
2025-12-16 15:45:34 +09:00
/**
* 수입검사 요청 저장 (검사여부, 요청일, 요청자만 저장)
*/
public Map saveIncomingInspectionRequest(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
String requestDate = CommonUtils.checkNull(paramMap.get("REQUEST_DATE"));
String requestUserId = CommonUtils.checkNull(paramMap.get("REQUEST_USER_ID"));
String purchaseOrderMasterObjId = CommonUtils.checkNull(paramMap.get("PURCHASE_ORDER_MASTER_OBJID"));
String dataListJson = CommonUtils.checkNull(paramMap.get("dataListJson"));
// JSON 파싱
com.google.gson.Gson gson = new com.google.gson.Gson();
java.lang.reflect.Type listType = new com.google.gson.reflect.TypeToken<List<Map<String, String>>>(){}.getType();
List<Map<String, String>> dataList = gson.fromJson(dataListJson, listType);
// 각 행별로 저장 (요청 정보만)
for(Map<String, String> data : dataList){
Map sqlParamMap = new HashMap();
sqlParamMap.put("NEW_OBJID", CommonUtils.createObjId()); // 신규 OBJID 생성
sqlParamMap.put("OBJID", data.get("OBJID")); // INVENTORY_MGMT_IN.OBJID
sqlParamMap.put("PURCHASE_ORDER_MASTER_OBJID", purchaseOrderMasterObjId);
sqlParamMap.put("REQUEST_DATE", requestDate);
sqlParamMap.put("REQUEST_USER_ID", requestUserId);
sqlParamMap.put("INSPECTION_YN", data.get("INSPECTION_YN"));
sqlParamMap.put("WRITER", writer);
sqlSession.update("quality.saveIncomingInspectionDetail", sqlParamMap);
}
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
if(sqlSession != null) sqlSession.rollback();
e.printStackTrace();
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
/**
* 수입검사 저장 (그리드 데이터 일괄 저장)
2025-12-16 15:45:34 +09:00
* - 요청일/요청자: 행별로 개별 저장
* - 검사일/검사자: 헤더에서 공통 적용 (진행 팝업에서 사용)
2025-12-04 15:21:54 +09:00
*/
public Map saveIncomingInspection(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
2025-12-16 15:45:34 +09:00
// 헤더에서 가져오는 값 (진행 팝업용)
String inspectionDate = CommonUtils.checkNull(paramMap.get("INSPECTION_DATE"));
String inspectorId = CommonUtils.checkNull(paramMap.get("INSPECTOR_ID"));
String purchaseOrderMasterObjId = CommonUtils.checkNull(paramMap.get("PURCHASE_ORDER_MASTER_OBJID"));
String dataListJson = CommonUtils.checkNull(paramMap.get("dataListJson"));
// JSON 파싱
com.google.gson.Gson gson = new com.google.gson.Gson();
java.lang.reflect.Type listType = new com.google.gson.reflect.TypeToken<List<Map<String, String>>>(){}.getType();
List<Map<String, String>> dataList = gson.fromJson(dataListJson, listType);
// 각 행별로 저장
for(Map<String, String> data : dataList){
Map sqlParamMap = new HashMap();
sqlParamMap.put("NEW_OBJID", CommonUtils.createObjId()); // 신규 OBJID 생성
sqlParamMap.put("OBJID", data.get("OBJID")); // INVENTORY_MGMT_IN.OBJID
sqlParamMap.put("PURCHASE_ORDER_MASTER_OBJID", purchaseOrderMasterObjId);
2025-12-16 15:45:34 +09:00
// 검사일/검사자: 헤더 값 사용 (진행 팝업)
sqlParamMap.put("INSPECTION_DATE", inspectionDate);
sqlParamMap.put("INSPECTOR_ID", inspectorId);
2025-12-16 15:45:34 +09:00
// 요청일/요청자: 각 행별 개별 값 사용 (요청 팝업)
sqlParamMap.put("REQUEST_DATE", data.get("REQUEST_DATE"));
sqlParamMap.put("REQUEST_USER_ID", data.get("REQUEST_USER_ID"));
sqlParamMap.put("INSPECTION_TYPE", data.get("INSPECTION_TYPE"));
sqlParamMap.put("INSPECTION_YN", data.get("INSPECTION_YN"));
sqlParamMap.put("DEFECT_TYPE", data.get("DEFECT_TYPE"));
sqlParamMap.put("DEFECT_REASON", data.get("DEFECT_REASON"));
sqlParamMap.put("ACTION_STATUS", data.get("ACTION_STATUS"));
sqlParamMap.put("INSPECTION_QTY", data.get("INSPECTION_QTY"));
sqlParamMap.put("DEFECT_QTY", data.get("DEFECT_QTY"));
sqlParamMap.put("INSPECTION_RESULT", data.get("INSPECTION_RESULT"));
sqlParamMap.put("ATTACH_FILE_OBJID", data.get("ATTACH_FILE_OBJID"));
sqlParamMap.put("REMARK", data.get("REMARK"));
sqlParamMap.put("WRITER", writer);
sqlSession.update("quality.saveIncomingInspectionDetail", sqlParamMap);
2025-12-04 15:21:54 +09:00
}
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
if(sqlSession != null) sqlSession.rollback();
e.printStackTrace();
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
2025-12-04 15:21:54 +09:00
/**
* 수입검사 목록 조회 (엑셀용)
*/
public List getIncomingInspectionListForExcel(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getIncomingInspectionListForExcel", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
// =====================================================
// 공정검사 관리
// =====================================================
/**
* 공정검사 목록 조회
*/
public List getProcessInspectionList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getProcessInspectionList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 공정검사 상세 조회
*/
public Map getProcessInspectionInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("quality.getProcessInspectionInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 공정검사 목록 조회 (엑셀용) - 상세 정보 포함
2025-12-04 15:21:54 +09:00
*/
public List getProcessInspectionListForExcel(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getProcessInspectionListForExcel", paramMap);
2025-12-04 15:21:54 +09:00
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
2025-12-08 12:02:03 +09:00
/**
* 공정검사 저장 (마스터 + 디테일)
*/
public Map saveProcessInspection(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean) request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = person != null ? person.getUserId() : "";
String masterObjId = CommonUtils.checkNull(paramMap.get("MASTER_OBJID"));
String inspectionDate = CommonUtils.checkNull(paramMap.get("INSPECTION_DATE"));
String inspectorId = CommonUtils.checkNull(paramMap.get("INSPECTOR_ID"));
String masterRemark = CommonUtils.checkNull(paramMap.get("MASTER_REMARK"));
String dataListJson = CommonUtils.checkNull(paramMap.get("dataList"));
// 마스터 저장
Map<String, Object> masterParamMap = new HashMap<String, Object>();
masterParamMap.put("INSPECTION_DATE", inspectionDate);
masterParamMap.put("INSPECTOR_ID", inspectorId);
masterParamMap.put("REMARK", masterRemark);
masterParamMap.put("WRITER", writer);
if(masterObjId.isEmpty()){
// 신규 등록
masterObjId = CommonUtils.checkNull(CommonUtils.createObjId());
masterParamMap.put("OBJID", masterObjId);
sqlSession.insert("quality.insertProcessInspectionMaster", masterParamMap);
} else {
// 수정
masterParamMap.put("OBJID", masterObjId);
sqlSession.update("quality.updateProcessInspectionMaster", masterParamMap);
// 기존 디테일 삭제 후 재등록
Map<String, Object> deleteParamMap = new HashMap<String, Object>();
deleteParamMap.put("MASTER_OBJID", masterObjId);
sqlSession.delete("quality.deleteProcessInspectionDetailByMaster", deleteParamMap);
}
// 디테일 저장
if(dataListJson != null && !dataListJson.isEmpty()){
com.google.gson.Gson gson = new com.google.gson.Gson();
java.lang.reflect.Type listType = new com.google.gson.reflect.TypeToken<List<Map<String, Object>>>(){}.getType();
List<Map<String, Object>> dataList = gson.fromJson(dataListJson, listType);
for(Map<String, Object> rowData : dataList){
Map<String, Object> sqlParamMap = new HashMap<String, Object>();
String detailObjId = CommonUtils.checkNull(CommonUtils.createObjId());
sqlParamMap.put("OBJID", detailObjId);
sqlParamMap.put("MASTER_OBJID", masterObjId);
sqlParamMap.put("PROCESS_CD", CommonUtils.checkNull(rowData.get("PROCESS_CD")));
sqlParamMap.put("PROJECT_OBJID", CommonUtils.checkNull(rowData.get("PROJECT_OBJID")));
sqlParamMap.put("PART_OBJID", CommonUtils.checkNull(rowData.get("PART_OBJID")));
sqlParamMap.put("PART_NO", CommonUtils.checkNull(rowData.get("PART_NO")));
sqlParamMap.put("PART_NAME", CommonUtils.checkNull(rowData.get("PART_NAME")));
sqlParamMap.put("INSPECTION_QTY", CommonUtils.checkNull(rowData.get("INSPECTION_QTY")));
sqlParamMap.put("DEFECT_QTY", CommonUtils.checkNull(rowData.get("DEFECT_QTY")));
sqlParamMap.put("WORK_ENV_STATUS", CommonUtils.checkNull(rowData.get("WORK_ENV_STATUS")));
sqlParamMap.put("MEASURING_DEVICE", CommonUtils.checkNull(rowData.get("MEASURING_DEVICE")));
sqlParamMap.put("DEPT_CD", CommonUtils.checkNull(rowData.get("DEPT_CD")));
sqlParamMap.put("USER_ID", CommonUtils.checkNull(rowData.get("USER_ID")));
sqlParamMap.put("REMARK", CommonUtils.checkNull(rowData.get("REMARK")));
sqlParamMap.put("ACTION_STATUS", CommonUtils.checkNull(rowData.get("ACTION_STATUS")));
sqlParamMap.put("INSPECTION_RESULT", CommonUtils.checkNull(rowData.get("INSPECTION_RESULT")));
sqlParamMap.put("WRITER", writer);
sqlSession.insert("quality.saveProcessInspectionDetail", sqlParamMap);
}
}
resultMap.put("RESULT", "SUCCESS");
resultMap.put("MASTER_OBJID", masterObjId);
}catch(Exception e){
e.printStackTrace();
resultMap.put("RESULT", "FAIL");
resultMap.put("MESSAGE", e.getMessage());
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
2025-12-04 15:21:54 +09:00
// =====================================================
// 반제품검사 관리
// =====================================================
/**
* 반제품검사 목록 조회
*/
public List getSemiProductInspectionList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getSemiProductInspectionList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 반제품검사 상세 조회
*/
public Map getSemiProductInspectionInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("quality.getSemiProductInspectionInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
// =====================================================
// 고객 CS 관리
// =====================================================
/**
* 고객 CS 목록 조회
*/
public List getCustomerCsList(HttpServletRequest request, Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getCustomerCsList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
/**
* 고객 CS 상세 조회
*/
public Map getCustomerCsInfo(Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("quality.getCustomerCsInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
2025-12-09 11:53:57 +09:00
/**
* 고객 불량 저장
*/
public Map saveCustomerCsDefect(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean) request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = person != null ? person.getUserId() : "";
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
String isNew = CommonUtils.checkNull(paramMap.get("IS_NEW"));
paramMap.put("WRITER", writer);
// IS_NEW 플래그로 신규/수정 구분 (JSP에서 전달)
if("true".equals(isNew)){
// 신규 등록
if(objId.isEmpty()){
objId = CommonUtils.checkNull(CommonUtils.createObjId());
paramMap.put("OBJID", objId);
}
// 접수번호 생성 (CS-YYYYMMDD-SEQ)
String today = new java.text.SimpleDateFormat("yyyyMMdd").format(new java.util.Date());
String receiptNo = "CS-" + today + "-" + String.format("%03d", sqlSession.selectOne("quality.getCustomerCsSeq"));
paramMap.put("RECEIPT_NO", receiptNo);
sqlSession.insert("quality.insertCustomerCs", paramMap);
} else {
// 수정
sqlSession.update("quality.updateCustomerCs", paramMap);
}
resultMap.put("RESULT", "SUCCESS");
resultMap.put("OBJID", objId);
}catch(Exception e){
e.printStackTrace();
resultMap.put("RESULT", "FAIL");
resultMap.put("MESSAGE", e.getMessage());
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
/**
* 조치결과 저장
*/
public Map saveCustomerCsAction(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean) request.getSession().getAttribute(Constants.PERSON_BEAN);
String actionUserId = person != null ? person.getUserId() : "";
paramMap.put("ACTION_USER_ID", actionUserId);
sqlSession.update("quality.updateCustomerCsAction", paramMap);
resultMap.put("RESULT", "SUCCESS");
}catch(Exception e){
e.printStackTrace();
resultMap.put("RESULT", "FAIL");
resultMap.put("MESSAGE", e.getMessage());
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
2025-12-04 15:21:54 +09:00
// =====================================================
// ECR 관리
// =====================================================
2025-12-09 14:17:36 +09:00
2025-12-04 15:21:54 +09:00
/**
2025-12-09 14:17:36 +09:00
* ECR 상세 조회
2025-12-04 15:21:54 +09:00
*/
2025-12-09 14:17:36 +09:00
public Map getEcrInfo(Map paramMap){
Map resultMap = new HashMap();
2025-12-04 15:21:54 +09:00
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
2025-12-09 14:17:36 +09:00
resultMap = sqlSession.selectOne("quality.getEcrInfo", paramMap);
2025-12-04 15:21:54 +09:00
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
2025-12-09 14:17:36 +09:00
return resultMap;
2025-12-04 15:21:54 +09:00
}
/**
2025-12-09 14:17:36 +09:00
* ECR 저장 (등록/수정)
2025-12-04 15:21:54 +09:00
*/
2025-12-09 14:17:36 +09:00
public Map saveEcr(HttpServletRequest request, Map paramMap){
2025-12-04 15:21:54 +09:00
Map resultMap = new HashMap();
SqlSession sqlSession = null;
2025-12-09 14:17:36 +09:00
2025-12-04 15:21:54 +09:00
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
2025-12-09 14:17:36 +09:00
// 작성자 정보 설정
PersonBean person = (PersonBean) request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = person != null ? person.getUserId() : "";
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
String isNew = CommonUtils.checkNull(paramMap.get("IS_NEW"));
paramMap.put("WRITER", writer);
// IS_NEW 플래그로 신규/수정 구분
if("true".equals(isNew)){
// 신규 등록
if(objId.isEmpty()){
objId = CommonUtils.checkNull(CommonUtils.createObjId());
paramMap.put("OBJID", objId);
}
// ECR_NO 생성 (ECR-YYYYMM-순번) 예) ECR-202512-01
String yyyymm = new java.text.SimpleDateFormat("yyyyMM").format(new java.util.Date());
paramMap.put("YYYYMM", yyyymm);
Integer seq = sqlSession.selectOne("quality.getEcrSeq", paramMap);
if(seq == null) seq = 1;
String ecrNo = "ECR-" + yyyymm + "-" + String.format("%02d", seq);
paramMap.put("ECR_NO", ecrNo);
paramMap.put("ATTACH_FILE_OBJID", objId);
sqlSession.insert("quality.insertEcr", paramMap);
} else {
// 수정
sqlSession.update("quality.updateEcr", paramMap);
}
sqlSession.commit();
resultMap.put("RESULT", "SUCCESS");
resultMap.put("MESSAGE", "저장되었습니다.");
2025-12-04 15:21:54 +09:00
}catch(Exception e){
2025-12-09 14:17:36 +09:00
if(sqlSession != null) sqlSession.rollback();
resultMap.put("RESULT", "FAIL");
resultMap.put("MESSAGE", e.getMessage());
2025-12-04 15:21:54 +09:00
e.printStackTrace();
}finally{
2025-12-09 14:17:36 +09:00
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
/**
* ECR 결과 저장
*/
public Map saveEcrResult(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
// 작성자 정보 설정
PersonBean person = (PersonBean) request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = person != null ? person.getUserId() : "";
paramMap.put("MODIFIER", writer);
sqlSession.update("quality.updateEcrResult", paramMap);
sqlSession.commit();
resultMap.put("RESULT", "SUCCESS");
resultMap.put("MESSAGE", "저장되었습니다.");
}catch(Exception e){
if(sqlSession != null) sqlSession.rollback();
resultMap.put("RESULT", "FAIL");
resultMap.put("MESSAGE", e.getMessage());
e.printStackTrace();
}finally{
if(sqlSession != null) sqlSession.close();
2025-12-04 15:21:54 +09:00
}
2025-12-09 14:17:36 +09:00
2025-12-04 15:21:54 +09:00
return resultMap;
}
/*edhwang start*/
/*edhwang end*/
2025-12-16 15:45:34 +09:00
// =====================================================
// 수입검사 불량상세 관련
// =====================================================
/**
* 불량상세 목록 조회
*/
public List getIncomingInspectionDefectList(Map paramMap){
SqlSession sqlSession = null;
List resultList = new ArrayList();
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getIncomingInspectionDefectList", paramMap);
resultList = CommonUtils.keyChangeUpperList(resultList);
}catch(Exception e){
e.printStackTrace();
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultList;
}
/**
* 수입검사 진행 저장 (입고품목 + 불량상세)
*/
public Map saveIncomingInspectionProgress(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
// 작성자 정보 설정
PersonBean person = (PersonBean) request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = person != null ? person.getUserId() : "";
String purchaseOrderMasterObjid = CommonUtils.checkNull(paramMap.get("PURCHASE_ORDER_MASTER_OBJID"));
String inspectionDate = CommonUtils.checkNull(paramMap.get("INSPECTION_DATE"));
String inspectorId = CommonUtils.checkNull(paramMap.get("INSPECTOR_ID"));
// 1. 입고품목 데이터 저장 (검사구분 등)
String dataListJson = CommonUtils.checkNull(paramMap.get("dataListJson"));
if(!dataListJson.isEmpty()) {
List<Map<String, Object>> dataList = JsonUtil.JsonToList(dataListJson);
for(Map data : dataList) {
Map sqlParamMap = new HashMap();
sqlParamMap.put("NEW_OBJID", CommonUtils.createObjId()); // 신규 OBJID 생성
sqlParamMap.put("OBJID", CommonUtils.checkNull(data.get("OBJID"))); // INVENTORY_MGMT_IN.OBJID
sqlParamMap.put("PURCHASE_ORDER_MASTER_OBJID", purchaseOrderMasterObjid);
sqlParamMap.put("INSPECTION_TYPE", CommonUtils.checkNull(data.get("INSPECTION_TYPE")));
sqlParamMap.put("INSPECTION_DATE", inspectionDate);
sqlParamMap.put("INSPECTOR_ID", inspectorId);
sqlParamMap.put("WRITER", writer);
sqlSession.update("quality.saveIncomingInspectionDetail", sqlParamMap);
}
}
// 2. 불량상세 데이터 저장
String defectListJson = CommonUtils.checkNull(paramMap.get("defectListJson"));
String selectedDetailObjid = CommonUtils.checkNull(paramMap.get("selectedDetailObjid"));
if(!defectListJson.isEmpty() && !selectedDetailObjid.isEmpty()) {
List<Map<String, Object>> defectList = JsonUtil.JsonToList(defectListJson);
for(Map defect : defectList) {
String gridStatus = CommonUtils.checkNull(defect.get("GRID_STATUS"));
Map sqlParamMap = new HashMap();
sqlParamMap.put("OBJID", CommonUtils.checkNull(defect.get("OBJID")));
sqlParamMap.put("INSPECTION_DETAIL_OBJID", selectedDetailObjid);
sqlParamMap.put("INSPECTION_TYPE", CommonUtils.checkNull(defect.get("INSPECTION_TYPE")));
sqlParamMap.put("INSPECTION_DATE", CommonUtils.checkNull(defect.get("INSPECTION_DATE")));
sqlParamMap.put("INSPECTOR_ID", CommonUtils.checkNull(defect.get("INSPECTOR_ID")));
sqlParamMap.put("DEFECT_TYPE", CommonUtils.checkNull(defect.get("DEFECT_TYPE")));
sqlParamMap.put("DEFECT_REASON", CommonUtils.checkNull(defect.get("DEFECT_REASON")));
sqlParamMap.put("ACTION_STATUS", CommonUtils.checkNull(defect.get("ACTION_STATUS")));
sqlParamMap.put("ACTION_RESULT", CommonUtils.checkNull(defect.get("ACTION_RESULT")));
sqlParamMap.put("INSPECTION_QTY", CommonUtils.checkNull(defect.get("INSPECTION_QTY")));
sqlParamMap.put("DEFECT_QTY", CommonUtils.checkNull(defect.get("DEFECT_QTY")));
sqlParamMap.put("INSPECTION_RESULT", CommonUtils.checkNull(defect.get("INSPECTION_RESULT")));
sqlParamMap.put("REMARK", CommonUtils.checkNull(defect.get("REMARK")));
sqlParamMap.put("WRITER", writer);
if("D".equals(gridStatus)) {
// 삭제
sqlSession.delete("quality.deleteIncomingInspectionDefect", sqlParamMap);
} else {
// 신규/수정
sqlSession.insert("quality.saveIncomingInspectionDefect", sqlParamMap);
}
}
}
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", "저장되었습니다.");
}catch(Exception e){
if(sqlSession != null) sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", e.getMessage());
e.printStackTrace();
}finally{
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
}