수입검사 요청기능 추가...

This commit is contained in:
2025-12-16 15:45:34 +09:00
parent 2fb4ee6e34
commit 0d908006ff
7 changed files with 2031 additions and 98 deletions

View File

@@ -17,6 +17,7 @@ import com.pms.common.bean.PersonBean;
import com.pms.common.service.BaseService;
import com.pms.common.utils.CommonUtils;
import com.pms.common.utils.Constants;
import com.pms.common.JsonUtil;
@Service
public class QualityService extends BaseService{
@@ -661,8 +662,60 @@ public class QualityService extends BaseService{
return resultMap;
}
/**
* 수입검사 요청 저장 (검사여부, 요청일, 요청자만 저장)
*/
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;
}
/**
* 수입검사 저장 (그리드 데이터 일괄 저장)
* - 요청일/요청자: 각 행별로 개별 저장
* - 검사일/검사자: 헤더에서 공통 적용 (진행 팝업에서 사용)
*/
public Map saveIncomingInspection(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
@@ -673,6 +726,7 @@ public class QualityService extends BaseService{
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
String writer = CommonUtils.checkNull(person.getUserId());
// 헤더에서 가져오는 값 (진행 팝업용)
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"));
@@ -689,8 +743,15 @@ public class QualityService extends BaseService{
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("INSPECTION_DATE", inspectionDate);
sqlParamMap.put("INSPECTOR_ID", inspectorId);
// 요청일/요청자: 각 행별 개별 값 사용 (요청 팝업)
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"));
@@ -1152,4 +1213,117 @@ public class QualityService extends BaseService{
/*edhwang end*/
// =====================================================
// 수입검사 불량상세 관련
// =====================================================
/**
* 불량상세 목록 조회
*/
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;
}
}