package com.nkis.cr.cl.aa.web;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.nkis.cr.as.aa.service.AsAa010Service;
import com.nkis.cr.cl.aa.service.ClAa010Service;
import com.sdf.framework.base.service.XpfService;
import com.sdf.framework.base.web.SDFController;
import com.sdf.framework.rte.ptl.ria.support.XpfObject;
import com.sdf.framework.rte.ptl.ria.xplatform.XPlatformConstant;
/**
* @프로젝트 : K2코리아 정보시스템 재 구축
* @패키지 : com.nkis.cr.cl.aa.web
* @타입명 : ClAa010Controller.java
* @작성일 : 2015. 5. 11
* @작성자 : 우승민
* @설명 : 클레임반품등록
* <pre>
*/
@Controller("cr.ClAa010Controller")
public class ClAa010Controller extends SDFController{
protected Log log = LogFactory.getLog(this.getClass());
/**
* XpfService
*/
@Resource(name = "XpfService")
private XpfService xpfService;
@Resource(name = "cr.ClAa010Service")
private ClAa010Service clAa010Service;
/**
* 상담정보 조회
*/
@RequestMapping(value = "/cr/cl/aa/selectClAa010Main.do")
public ModelAndView selectClAa010Main(XpfObject xpfObject, Model model) throws Exception {
ModelAndView mav = new ModelAndView("xpfView");
try {
Map<String, Object> returnMap = xpfService.selectList(xpfObject);
mav.addObject("returnMap", returnMap);
setSuccMsg(mav, xpfObject, returnMap);
} catch ( Exception e ) {
setErrorMsg(mav, xpfObject, e);
}
return mav;
}
@RequestMapping(value = "/cr/cl/aa/saveClAa010CrClam.do")
public ModelAndView saveAsAa010CrClam(XpfObject xpfObject, Model model) throws Exception {
ModelAndView mav = new ModelAndView("xpfView");
try {
//1.공통코드 및 공통코드 내역 저장
Map<String, Object> returnMap = xpfService.save(xpfObject);
mav.addObject("returnMap", returnMap);
setSuccMsg(mav, xpfObject, returnMap);
} catch ( Exception e ) {
setErrorMsg(mav, xpfObject, e);
}
return mav;
}
@RequestMapping(value = "/cr/cl/aa/saveClAa010ClamMain.do")
public ModelAndView saveAsAa010RprMain(XpfObject xpfObject, Model model) throws Exception {
ModelAndView mav = new ModelAndView("xpfView");
try {
//1.공통코드 및 공통코드 내역 저장
Map<String, Object> returnMap = clAa010Service.saveCrClamMain(xpfObject);
mav.addObject(XPlatformConstant.OUT_VARIABLES_ATT_NAME,returnMap);
setSuccMsg(mav, xpfObject, returnMap);
} catch ( Exception e ) {
setErrorMsg(mav, xpfObject, e);
}
return mav;
}
/**
* 본사반품확정
*
* @param xpfObject
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value = "/cr/cl/aa/execPR_CR_CLAIM_RGOD_PROC.do")
public ModelAndView execPrCrClaimRgodProc(XpfObject xpfObject, Model model) throws Exception {
ModelAndView mav = new ModelAndView("xpfView");
Map<String, Object> saveMap = new HashMap<String, Object>();
try {
Map<String, Object> returnMap = clAa010Service.saveRgod(xpfObject);
mav.addObject(XPlatformConstant.OUT_VARIABLES_ATT_NAME,returnMap);
setSuccMsg(mav, xpfObject, saveMap);
} catch ( Exception e ) {
setErrorMsg(mav, xpfObject, e);
}
return mav;
}
/**
* 본사반품확정
*
* @param xpfObject
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value = "/cr/cl/aa/execPR_CR_CLAIM_RGOD_PROC_CANCEL.do")
public ModelAndView execPrCrClaimRgodProcCancel(XpfObject xpfObject, Model model) throws Exception {
ModelAndView mav = new ModelAndView("xpfView");
Map<String, Object> saveMap = new HashMap<String, Object>();
try {
Map<String, Object> returnMap = clAa010Service.cancelRgod(xpfObject);
mav.addObject(XPlatformConstant.OUT_VARIABLES_ATT_NAME,returnMap);
setSuccMsg(mav, xpfObject, saveMap);
} catch ( Exception e ) {
setErrorMsg(mav, xpfObject, e);
}
return mav;
}
/**
* 상담정보 조회
*/
@RequestMapping(value = "/cr/cl/aa/selectCrAa010ClamStatCd.do")
public ModelAndView selectCrAa010ClamStatCd(XpfObject xpfObject, Model model) throws Exception {
ModelAndView mav = new ModelAndView("xpfView");
try {
Map<String, Object> returnMap = xpfService.selectList(xpfObject);
mav.addObject("returnMap", returnMap);
setSuccMsg(mav, xpfObject, returnMap);
} catch ( Exception e ) {
setErrorMsg(mav, xpfObject, e);
}
return mav;
}
}
package com.sdf.framework.base.service;
import java.util.Map;
import com.sdf.framework.rte.ptl.ria.support.XpfObject;
/**
* 공통 서비스 인터페이스 클래스
* @author 이웅재
* @since 2011.05.21
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2011.05.21 이웅재 최초 생성
*
* </pre>
*/
public interface XpfService {
/**
* 목록을 조회 한다.
*
* @param Object
*/
public Map<String, Object> selectList(XpfObject xpfObject) throws Exception;
/**
* 데이터셋을 저장,수정,삭제 한다.
*
* @param Object
*/
public Map<String, Object> save(XpfObject xpfObject) throws Exception;
/**
* 공통코드 목록을 조회 한다.
*
* @param Object
*/
public Map<String, Object> selectCommCodeList(XpfObject xpfObject, String sDs) throws Exception;
/**
* 프로시저를 실행한다.
*
* @param Object
*/
public Map<String, Object> exec(XpfObject xpfObject) throws Exception;
/**
* 커서 타입 프로시저를 실행한다.
*
* @param Object
*/
public Map<String, Object> execx(XpfObject xpfObject) throws Exception;
/**
* 저장하고 조회 한다.
*
* @param Object
*/
public Map<String, Object> saveNselect(XpfObject xpfObject) throws Exception;
}
package com.sdf.framework.base.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.sdf.framework.base.dao.CommonDAO;
import com.sdf.framework.base.service.XpfService;
import com.sdf.framework.base.vo.CommonVO;
import com.sdf.framework.com.util.SDFStringUtil;
import com.sdf.framework.rte.ptl.ria.support.XpfObject;
import com.sdf.framework.rte.ptl.ria.xplatform.XPlatformConstant;
import com.tobesoft.xplatform.data.DataSet;
import egovframework.rte.fdl.cmmn.exception.EgovBizException;
/**
* 공통 서비스 클래스
* @author thkim
* @since 2011.05.21
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2011.05.21 thkim 최초 생성
*
* </pre>
*/
@Service("XpfService")
public class XpfServiceImpl extends SDFAbstractServiceImpl implements XpfService {
@Resource(name="CommonDAO")
private CommonDAO commonDAO;
/**
* 목록을 조회 한다.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map<String, Object> selectList(XpfObject xpfObject) throws Exception {
//log.debug("@@ XpfService.selectList start............................!!");
Map<String, String> hm = xpfObject.toArgsMap();
String sSqlid = hm.get("sqlid");
String sTemp = null;
String sDSKey = null;
String sSQLKey = null;
Map<String, String> searchMap = null;
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Object> result = null;
try {
StringTokenizer st = null;
//String[] dsKeySet = null;
log.debug("sSqlid ========== ^" + sSqlid + "^");
if (sSqlid != null) {
// ;으로 구분된 sqlid를 가져와서 하나씩 실행함.
st = new StringTokenizer(sSqlid, ";");
//log.debug("DS KeySet's Count ========== ^" + st.countTokens() + "^");
int iKeySet = 0;
// 조회조건으로 쓰이는 gds_Search DS를 가져옴
// 해당키의 DS가 없을때는 기본 파라메터를 조회 조건으로 사용
List alSearchDS = null;
// 멀티콤보 확인여부. 20140213 이정훈
// 멀티콤보 데이타가 존재시 List형으로 변환하여 재반환
boolean isMltCombo = false;
boolean isXpfChg = false;
if (xpfObject.get(XPlatformConstant.SEARCH_INFO_DATASET_NAME) != null) {
alSearchDS = (ArrayList) xpfObject.get(XPlatformConstant.SEARCH_INFO_DATASET_NAME);
}
for( int i=0 ; i<alSearchDS.size() ; i++)
{
isMltCombo = false;
Map<String, Object> tMap = (HashMap)alSearchDS.get(i);
for (Iterator iter = tMap.entrySet().iterator(); iter.hasNext();) {
Map.Entry entry = (Map.Entry) iter.next();
String key = (String)entry.getKey();
if(key.indexOf("_edtMultiCode")>0 || key.indexOf("_edtCode")>0 ){
isMltCombo = true;
isXpfChg = true;
String val = (String)entry.getValue();
List mtlList = SDFStringUtil.string2Array(val);
tMap.put(key, mtlList);
//log.debug("DS Find MultiCombo ========== ^" + key + "^"+val+"====>"+mtlList);
}
}
if(isMltCombo)
{
alSearchDS.set(i, tMap);
}
}
if(isXpfChg)
{
xpfObject.put(XPlatformConstant.SEARCH_INFO_DATASET_NAME, alSearchDS);
}
// 일반적인 조회 (gds_Search의 값을 처리)
//dsKeySet = new String[st.countTokens()];
while(st.hasMoreTokens()) {
sTemp = st.nextToken();
sDSKey = sTemp.substring(0, sTemp.indexOf(":"));
sSQLKey = sTemp.substring(sTemp.indexOf(":")+1);
//log.debug("DS Key ========== ^" + sDSKey + "^~");
//log.debug("SQL Key ========== ^" + sSQLKey +"^~");
if ( (alSearchDS != null) && (alSearchDS.size() > 1) ) {
searchMap = (Map<String, String>) alSearchDS.get(iKeySet);
} else if ( (alSearchDS != null) && (alSearchDS.size() == 1) ){
searchMap = (Map<String, String>) alSearchDS.get(0);
} else {
searchMap = hm;
}
searchMap.put("sSQLKey", sSQLKey);
result = commonDAO.selectList(searchMap);
returnMap.put(sDSKey, result);
//dsKeySet[iKeySet] = sDSKey;
//iKeySet++;
}
}
} catch (Exception e) {
//log.debug(e.toString());
throw e;
}
//log.debug("@@ XpfService.selectList end............................!!");
return returnMap;
}
/**
* 데이터셋을 저장,수정,삭제 한다.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map<String, Object> save(XpfObject xpfObject) throws Exception {
Map<String, String> hm = xpfObject.toArgsMap();
String sSqlid = hm.get("sqlid");
String sTemp = null;
String sDSKey = null;
String sSQLKey = null;
ArrayList listDS = null;
// String sRowStatus = null;
Map<String, String> saveParamMap = null;
Map<String, Object> saveMap = null;
Map<String, Object> tempMap = null;
Map<String, Object> returnMap = new HashMap<String, Object>();
try {
StringTokenizer st = null;
//String[] dsKeySet = null;
log.debug("sSqlid ========== ^" + sSqlid + "^");
if (sSqlid != null) {
// ;으로 구분된 sqlid를 가져와서 하나씩 실행함.
st = new StringTokenizer(sSqlid, ";");
//log.debug("DS KeySet's Count ========== ^" + st.countTokens() + "^");
int iKeySet = 0;
// 저장 시 추가할 용도로 쓰일 XPlatformConstant.SEARCH_INFO_DATASET_NAME DS를 가져옴
// 해당키의 DS가 없을때는 기본 파라메터를 조회 조건으로 사용
List alSaveParamDS = null;
if (xpfObject.get(XPlatformConstant.SEARCH_INFO_DATASET_NAME) != null) {
alSaveParamDS = (ArrayList) xpfObject.get(XPlatformConstant.SEARCH_INFO_DATASET_NAME);
log.debug("XPlatformConstant.SEARCH_INFO_DATASET_NAME exist");
}
while(st.hasMoreTokens()) {
sTemp = st.nextToken();
sDSKey = sTemp.substring(0, sTemp.indexOf(":"));
sSQLKey = sTemp.substring(sTemp.indexOf(":")+1);
//log.debug("DS Key/SQL Key ========== ^" + sDSKey + "^/" + "^" + sSQLKey +"^");
// 같이 넣어서 실행할 saveParam 추가
if ( (alSaveParamDS != null) && (alSaveParamDS.size() > 1) ) {
saveParamMap = (Map<String, String>) alSaveParamDS.get(iKeySet);
} else if ( (alSaveParamDS != null) && (alSaveParamDS.size() == 1) ){
saveParamMap = (Map<String, String>) alSaveParamDS.get(0);
} else {
saveParamMap = hm;
}
// DS가 지정되지 않은 경우 해당 sql 단독실행
if (sDSKey.equals("")) {
saveMap = new HashMap<String, Object>();
saveMap.putAll(saveParamMap);
saveMap.put("sSQLKey", sSQLKey);
commonDAO.insert(saveMap);
} else{
listDS = xpfObject.getDsList(sDSKey);
if (listDS != null) {
for(int i=0;i<listDS.size();i++) {
saveMap = new HashMap<String, Object>();
tempMap = (Map)listDS.get(i);
// 파라미터 조건 적용 후 List의 값을 적용한다.
saveMap.putAll(saveParamMap);
saveMap.putAll(tempMap);
//log.debug("DATASET_ROW_TYPE == " + saveMap.get(XPlatformConstant.DATASET_ROW_TYPE));
int rowType = (Integer) saveMap.get(XPlatformConstant.DATASET_ROW_TYPE);
if (rowType == DataSet.ROW_TYPE_DELETED){
saveMap.put("sSQLKey", sSQLKey+"#delete");
commonDAO.delete(saveMap);
}
}
for(int i=0;i<listDS.size();i++) {
saveMap = new HashMap<String, Object>();
tempMap = (Map)listDS.get(i);
// 파라미터 조건 적용 후 List의 값을 적용한다.
saveMap.putAll(saveParamMap);
saveMap.putAll(tempMap);
//log.debug("DATASET_ROW_TYPE == " + saveMap.get(XPlatformConstant.DATASET_ROW_TYPE));
int rowType = (Integer) saveMap.get(XPlatformConstant.DATASET_ROW_TYPE);
if ( rowType == DataSet.ROW_TYPE_INSERTED ){
saveMap.put("sSQLKey", sSQLKey+"#insert");
commonDAO.insert(saveMap);
}else if (rowType == DataSet.ROW_TYPE_UPDATED){
saveMap.put("sSQLKey", sSQLKey+"#update");
commonDAO.update(saveMap);
}else if (rowType == DataSet.ROW_TYPE_NORMAL){
saveMap.put("sSQLKey", sSQLKey);
commonDAO.insert(saveMap);
}
}
} else {
log.debug("xpfObject.getDsList(" +sDSKey+ ") is null ");
}
}
iKeySet++;
}
}
} catch (Exception e) {
//log.debug(e.toString());
throw e;
}
return returnMap;
}
/**
* 공통코드를 자동으로 바인딩 하기 위한 목록을 조회 한다.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map<String, Object> selectCommCodeList(XpfObject xpfObject, String sDs) throws Exception {
//log.debug("@@ XpfService.selectCommCodeList start............................!!");
Map<String, String> hm = xpfObject.toArgsMap();
Map<String, String> hmCommCode = null;
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Object> result = null;
String sDSKey = null;
String sSQLKey = null;
ArrayList alCommCode = xpfObject.getDsList(sDs);
List alSearchDS = null;
if (xpfObject.get(XPlatformConstant.SEARCH_INFO_DATASET_NAME) != null) {
alSearchDS = (ArrayList) xpfObject.get(XPlatformConstant.SEARCH_INFO_DATASET_NAME);
if ( (alSearchDS.size() > 0) && (alSearchDS.get(0) != null) ) {
hm.putAll((Map<String, String>) alSearchDS.get(0));
}
}
try {
for (int i=0;i<alCommCode.size();i++) {
hmCommCode = (Map<String, String>) alCommCode.get(i);
if (hmCommCode.containsKey("p_compCd") && SDFStringUtil.isNotEmpty(hmCommCode.get("p_compCd"))) {
hm.put("gv_compCd", hmCommCode.get("p_compCd"));
}
// 공통 코드
if (hmCommCode.get("p_type").equals("C")) {
sSQLKey = "StCo010.selectCommonList";
sDSKey = hmCommCode.get("p_dataset");
hm.put("CD_ID", hmCommCode.get("p_code"));
hm.put("sSQLKey", sSQLKey);
result = commonDAO.selectList(hm);
returnMap.put(sDSKey, result);
// 공통 상세 코드SPEC
} else if(hmCommCode.get("p_type").equals("S")) {
sSQLKey = "StCo010.selectCommonSpecList";
sDSKey = hmCommCode.get("p_dataset");
hm.put("CD_ID", hmCommCode.get("p_code"));
hm.put("sSQLKey", sSQLKey);
result = commonDAO.selectList(hm);
returnMap.put(sDSKey, result);
// 기타 코드
} else if(hmCommCode.get("p_type").equals("E")) {
sSQLKey = hmCommCode.get("p_code");
sDSKey = hmCommCode.get("p_dataset");
hm.put("sSQLKey", sSQLKey);
result = commonDAO.selectList(hm);
returnMap.put(sDSKey, result);
}
}
} catch (Exception e) {
//log.debug(e.toString());
throw e;
}
//log.debug("@@ XpfService.selectCommCodeList end............................!!");
return returnMap;
}
/**
* 프로시저를 실행한다.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map<String, Object> exec(XpfObject xpfObject) throws Exception {
Map<String, String> hm = xpfObject.toArgsMap();
String sSqlid = hm.get("sqlid");
String sTemp = null;
String sDSKey = null;
String sSQLKey = null;
ArrayList listDS = null;
// String sRowStatus = null;
Map<String, String> saveParamMap = null;
Map<String, String> saveMap = null;
// Map<String, Object> tempMap = null;
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Object> result = new ArrayList<Object>();
CommonVO cVO = null;
EgovBizException eBiz = new EgovBizException();
try {
StringTokenizer st = new StringTokenizer(sSqlid, ";");
String[] dsKeySet = new String[st.countTokens()];
//log.debug("DS KeySet's Count ========== ^" + st.countTokens() + "^");
int iKeySet = 0;
// 저장 시 추가할 용도로 쓰일 XPlatformConstant.SEARCH_INFO_DATASET_NAME DS를 가져옴
// 해당키의 DS가 없을때는 기본 파라메터를 조회 조건으로 사용
List alSaveParamDS = null;
if (xpfObject.get(XPlatformConstant.SEARCH_INFO_DATASET_NAME) != null) {
alSaveParamDS = (ArrayList) xpfObject.get(XPlatformConstant.SEARCH_INFO_DATASET_NAME);
//log.debug("XPlatformConstant.SEARCH_INFO_DATASET_NAME exist");
}
while(st.hasMoreTokens()) {
sTemp = st.nextToken();
sDSKey = sTemp.substring(0, sTemp.indexOf(":"));
sSQLKey = sTemp.substring(sTemp.indexOf(":")+1);
//log.debug("DS Key/SQL Key ========== ^" + sDSKey + "^/" + "^" + sSQLKey +"^");
// 같이 넣어서 실행할 saveParam 추가
if ( (alSaveParamDS != null) && (alSaveParamDS.size() > 1) ) {
saveParamMap = (Map<String, String>) alSaveParamDS.get(iKeySet);
} else if ( (alSaveParamDS != null) && (alSaveParamDS.size() == 1) ){
saveParamMap = (Map<String, String>) alSaveParamDS.get(0);
} else {
saveParamMap = hm;
}
listDS = xpfObject.getDsList(sDSKey);
// DS가 지정되지 않은 경우 해당 sql 단독실행
if (listDS != null) {
for(int i=0;i<listDS.size();i++) {
saveMap = (Map)listDS.get(i);
saveMap.putAll(saveParamMap);
saveMap.put("sSQLKey", sSQLKey);
cVO = new CommonVO();
cVO.setMap(saveMap);
cVO = (CommonVO) commonDAO.exec(cVO);
saveMap = new HashMap<String, String>();
if (cVO.getErrorCode().equals("0")) {
saveMap.put("ERROR_CODE", cVO.getErrorCode());
saveMap.put("ERROR_MESSAGE", cVO.getErrorMessage());
} else {
eBiz.setMessageKey(cVO.getErrorCode());
eBiz.setMessage(cVO.getErrorMessage());
throw eBiz;
}
result.add(saveMap);
}
}
returnMap.put(sDSKey, result);
dsKeySet[iKeySet] = sDSKey;
iKeySet++;
}
returnMap.put("dsKeySet", dsKeySet);
} catch (Exception e) {
//log.debug(e.toString());
throw e;
}
return returnMap;
}
/**
* 커서타입 프로시저를 실행한다.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map<String, Object> execx(XpfObject xpfObject) throws Exception {
log.debug("@@ XpfService.selexec start............................!!");
Map<String, String> hm = xpfObject.toArgsMap();
String sSqlid = hm.get("sqlid");
String sTemp = null;
String sDSKey = null;
String sSQLKey = null;
Map<String, String> searchMap = null;
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Object> result = null;
CommonVO cVO = null;
try {
StringTokenizer st = null;
log.debug("sSqlid ========== ^" + sSqlid + "^");
if (sSqlid != null) {
// ;으로 구분된 sqlid를 가져와서 하나씩 실행함.
st = new StringTokenizer(sSqlid, ";");
log.debug("DS KeySet's Count ========== ^" + st.countTokens() + "^");
int iKeySet = 0;
// 조회조건으로 쓰이는 gds_Search DS를 가져옴
// 해당키의 DS가 없을때는 기본 파라메터를 조회 조건으로 사용
List alSearchDS = null;
if (xpfObject.get(XPlatformConstant.SEARCH_INFO_DATASET_NAME) != null) {
alSearchDS = (ArrayList) xpfObject.get(XPlatformConstant.SEARCH_INFO_DATASET_NAME);
}
while(st.hasMoreTokens()) {
sTemp = st.nextToken();
sDSKey = sTemp.substring(0, sTemp.indexOf(":"));
sSQLKey = sTemp.substring(sTemp.indexOf(":")+1);
log.debug("DS Key ========== ^" + sDSKey + "^~");
log.debug("SQL Key ========== ^" + sSQLKey +"^~");
if ( (alSearchDS != null) && (alSearchDS.size() > 1) ) {
searchMap = (Map<String, String>) alSearchDS.get(iKeySet);
} else if ( (alSearchDS != null) && (alSearchDS.size() == 1) ){
searchMap = (Map<String, String>) alSearchDS.get(0);
} else {
searchMap = hm;
}
searchMap.put("sSQLKey", sSQLKey);
cVO = new CommonVO();
cVO.setMap(searchMap);
cVO = (CommonVO) commonDAO.exec(cVO);
Map map = (Map)cVO.getMap();
result = (List)map.get("RESULT");
returnMap.put(sDSKey, result);
}
}
} catch (Exception e) {
log.debug(e.toString());
throw e;
}
log.debug("@@ XpfService.selexec end............................!!");
return returnMap;
}
/**
* 목록을 저장하고 조회 한다.
* |구분자로 저장과 조회를 구분한다.
*/
public Map<String, Object> saveNselect(XpfObject xpfObject) throws Exception {
//log.debug("@@ XpfService.saveNselect start............................!!");
Map<String, String> hm = xpfObject.toArgsMap();
String sSqlid = hm.get("sqlid");
String sSaveKey = null;
String sSelectKey = null;
Map<String, Object> returnMap = new HashMap<String, Object>();
try {
StringTokenizer st = null;
if (sSqlid != null) {
// |으로 구분된 sqlid를 가져와서 자름.
st = new StringTokenizer(sSqlid, "|");
//log.debug("DS KeySet's Count ========== ^" + st.countTokens() + "^");
if (st.countTokens() != 2) {
throw processException("Common.C002", "조회");
//throw new EgovBizException(commonMessageSource.getMessage("Common.C002", "조회"));
}
}
sSaveKey = st.nextToken();
sSelectKey = st.nextToken();
//log.debug("## SaveKey ========== ^" + sSaveKey + "^");
//log.debug("## SelectKey ========== ^" + sSelectKey + "^");
hm.put("sqlid", sSaveKey);
xpfObject.put("argsMap", hm);
save(xpfObject);
hm.put("sqlid", sSelectKey);
xpfObject.put("argsMap", hm);
returnMap = selectList(xpfObject);
} catch (Exception e) {
//log.debug(e.toString());
throw e;
}
//log.debug("@@ XpfService.saveNselect end............................!!");
return returnMap;
}
}
package com.sdf.framework.base.dao;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.orm.ibatis.SqlMapClientCallback;
import org.springframework.stereotype.Repository;
import com.ibatis.sqlmap.client.SqlMapExecutor;
import com.sdf.framework.base.vo.CommonVO;
/**
* Default DAO 클래스
*
* @author 신세계아이앤씨
* @since 2012. 11. 04.
* @version
* @see
*
* <pre>
* ================== "개정이력 ================ "
*
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
*
*
* </pre>
*/
@Repository("CommonDAO")
public class CommonDAO extends SDFAbstractDAO {
/**
* 1건을 조회한다.
*
* @param Object
*/
@SuppressWarnings("unchecked")
public Map selectMap(Map hm) throws Exception {
return selectMap((String) hm.get("sSQLKey"), hm);
}
@SuppressWarnings("unchecked")
public Map selectMap(String sSql, Map hm) throws Exception {
return (Map) super.selectByPk(sSql, hm);
}
/**
* n건을 조회한다.
*
* @param Object
*/
@SuppressWarnings("unchecked")
public List<Object> selectList(Map hm) throws Exception {
return selectList((String) hm.get("sSQLKey"), hm);
}
@SuppressWarnings("unchecked")
public List<Object> selectList(String sSql, Map hm) throws Exception {
return list(sSql, hm);
}
/**
* insert.
*
* @param Object
*/
public Object insert(Map hm) throws Exception {
return insert((String)hm.get("sSQLKey"), hm);
}
public Object insert(String sSql, Map hm) throws Exception {
return super.insert(sSql, hm);
}
@SuppressWarnings("unchecked")
public void insertBatch(final String sSql, final ArrayList al) throws Exception {
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException {
executor.startBatch();
for(int i = 0 ; i < al.size(); i++){
try {
insert(sSql, (Map)al.get(i));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
executor.executeBatch();
return null;
}
});
}
@SuppressWarnings("unchecked")
public void insertBatch(final String sSql, final Map srchMap, final ArrayList al) throws Exception {
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException {
executor.startBatch();
for(int i = 0 ; i < al.size(); i++){
try {
Map paramMap = (Map) al.get(i);
paramMap.putAll(srchMap);
insert(sSql, paramMap);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
executor.executeBatch();
return null;
}
});
}
/**
* update.
*
* @param Object
*/
public int update(Map hm) throws Exception {
return update((String)hm.get("sSQLKey"), hm);
}
public int update(String sSql, Map hm) throws Exception {
return super.update(sSql, hm);
}
@SuppressWarnings("unchecked")
public void updateBatch(final String sSql, final ArrayList al) throws Exception {
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException {
executor.startBatch();
for(int i = 0 ; i < al.size(); i++){
try {
update(sSql, (Map)al.get(i));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
executor.executeBatch();
return null;
}
});
}
@SuppressWarnings("unchecked")
public void updateBatch(final String sSql, final Map srchMap, final ArrayList al) throws Exception {
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException {
executor.startBatch();
for(int i = 0 ; i < al.size(); i++){
try {
Map paramMap = (Map) al.get(i);
paramMap.putAll(srchMap);
update(sSql, paramMap);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
executor.executeBatch();
return null;
}
});
}
/**
* delete.
*
* @param Object
*/
public int delete(Map hm) throws Exception {
return delete((String) hm.get("sSQLKey"), hm);
}
public int delete(String sSql, Map hm) throws Exception {
return super.delete(sSql, hm);
}
/**
* exec procedure.
*
* @param Object
*/
public Object exec(CommonVO cVO) throws Exception {
Map hm = cVO.getMap();
return exec((String) hm.get("sSQLKey"), cVO);
}
public Object exec(String sSql, CommonVO cVO) throws Exception {
//Map hm = cVO.getMap();
//cVO.setMap(hm);
getSqlMapClientTemplate().queryForObject(sSql, cVO);
return cVO;
}
public Object exec(String sSql, Map sMap) throws Exception {
//Map hm = cVO.getMap();
//cVO.setMap(hm);
getSqlMapClientTemplate().queryForObject(sSql, sMap);
return sMap;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "<http://www.ibatis.com/dtd/sql-map-2.dtd>">
<!--
SQL File Name : ClAa010_SQL.xml
Description : 클레임 반품등록
==개정이력========================================
수정일 수정자 Version Query Id
========== ======= ========= ===================
2015.05.1 우승민 1.0 최초 생성
-->
<sqlMap namespace="ClAa010">
<!-- 1. 조회 -->
<!-- 1.1. 상담리스트 조회 -->
<select id="ClAa010.selectCrClam" resultClass="java.util.HashMap" parameterClass="java.util.Map">
SELECT /* ClAa010.selectCrClam */
A.COMP_CD
, A.ODIV_CD
, A.RECV_YM
, A.RPR_NO
, A.RPR_NO AS VIEW_RPR_NO
, A.SHOP_CD
, A.CUST_CD
, A.CUST_NM
, FN_CM_DECRYPT(A.HP_NO) AS HP_NO
, A.HP_BACK_NO
, A.ZIP_NO
, A.BASE_ADDR
, FN_CM_DECRYPT(A.DETL_ADDR) AS DETL_ADDR
, A.LOAD_NM_BASE_ADDR
, FN_CM_DECRYPT(A.LOAD_NM_DETL_ADDR) AS LOAD_NM_DETL_ADDR
, A.PROD_CD
, A.COLR_CD
, A.SIZE_CD
, A.SIZE_NM
, A.SELL_BFE_AF_CD
, A.PRDC_SEQ
, A.RPR_BARCD
, A.CLAM_STAT_CD
, A.SHOP_RECV_YMD
, A.MBR_RECV_YMD
, A.SHOP_SEND_YMD
, A.CLAM_DIV_CD
, A.CLAM_TYPE_CD
, A.CLAM_CAUS_CD
, A.PRDC_CMPY_CD
, A.RGOD_FIX_UPRC_YMD
, DECODE(A.SELL_BFE_AF_CD,'02',NVL(A.RGOD_FIX_UPRC,TO_NUMBER(TRIM(FN_CM_GET_SPLIT(FN_SU_SELL_PRCE (A.COMP_CD,
TO_CHAR (SYSDATE, 'YYYYmmdd'),
A.SHOP_CD,
A.PROD_CD,
A.COLR_CD,
1,
'S'),'6','@',0)))),'') AS RGOD_FIX_UPRC
, A.CLAM_FIX_AMT
, A.CLAM_AMT
, A.RPR_RECV_YM
, A.RPR_RECV_NO
, A.RGOD_WH_CD
, A.GW_YMD
, A.GW_DOCU_NO
, A.FI_SLIP_YMD
, A.FI_SLIP_NO
, A.MBR_RMRK
, A.SHOP_RMRK
, A.FRST_CHRG_MAN_ID
, (SELECT USER_NM FROM CM_USER B WHERE A.FRST_CHRG_MAN_ID = B.USER_ID) AS FRST_CHRG_MAN_NM
, A.SELL_YMD
, A.SELL_RECP_NO
, A.SELL_RECP_SEQ
, A.MBR_RGOD_FIX_YMD
, A.MBR_RGOD_FIX_NO
, A.MBR_RGOD_FIX_SEQ
, A.PURC_YMD
, A.REGI_ID
, A.REGI_DT
, B.SELL_NO
, B.SELL_UPRC
, C.SHOP_NM
, C.SHOP_TELNO
, C.SHOP_HPNO
, C.BRAND_CD
, (SELECT VND_SNM FROM V_WF_VENDOR D WHERE A.COMP_CD=D.COMP_CD AND A.PRDC_CMPY_CD = D.VND_CD) AS PRDC_CMPY_NM
, D.CUST_CARD_NO
, D.CUST_DGRE_CD
,TO_NUMBER(TRIM(FN_CM_GET_SPLIT(FN_SU_SELL_PRCE (A.COMP_CD,
A.PURC_YMD,
A.SHOP_CD,
A.PROD_CD,
A.COLR_CD,
1,
'S'),'7','@',0))) AS BUY_SELL_PRCE
,TO_NUMBER(TRIM(FN_CM_GET_SPLIT(FN_SU_SELL_PRCE (A.COMP_CD,
TO_CHAR(SYSDATE,'YYYYMMDD'),
A.SHOP_CD,
A.PROD_CD,
A.COLR_CD,
1,
'S'),'7','@',0))) AS NOW_SELL_PRCE
, TO_NUMBER(TRIM(FN_CM_GET_SPLIT(FN_SU_SELL_PRCE (A.COMP_CD,
TO_CHAR (SYSDATE, 'YYYYmmdd'),
A.SHOP_CD,
A.PROD_CD,
A.COLR_CD,
1,
'S'),'6','@',0))) AS CNSM_PRCE
,A.CLAM_UPRC_BASE
FROM CR_CLAM A, WP_SELL_PROD B, SU_SHOP C, CR_CUST D
WHERE 1=1
AND A.COMP_CD = B.COMP_CD(+)
AND A.SELL_RECP_NO = B.SELL_RECP_NO(+)
AND A.SELL_RECP_SEQ = B.SELL_RECP_SEQ(+)
AND A.COMP_CD = C.COMP_CD
AND A.SHOP_CD = C.SHOP_CD
AND A.COMP_CD = D.COMP_CD(+)
AND A.CUST_CD = D.CUST_CD(+)
AND A.COMP_CD = #cboCompCd#
AND A.ODIV_CD = #cboOdivCd#
<isNotEmpty property="edtRprBarCd">
AND A.RPR_BARCD = #edtRprBarCd#
</isNotEmpty>
<isEmpty property="edtRprBarCd">
AND A.RECV_YM = #maeRecvYm#
AND A.RPR_NO = #edtRprNo#
</isEmpty>
</select>
<select id="ClAa010.selectHpNoCount" resultClass="java.util.HashMap" parameterClass="java.util.Map">
SELECT /* ClAa010.selectHpNoCount */
COUNT(*) AS CNT
FROM CR_CUST
WHERE 1=1
AND HP_NO = FN_CM_ENCRYPT(#hpNo#)
AND BRAND_CD = #brandCd#
AND COMP_CD = #compCd#
AND CUST_STAT_CD ='01'
</select>
<select id="ClAa010.selectVndCd" resultClass="java.util.HashMap" parameterClass="java.util.Map">
SELECT /* ClAa010.selectVndCd */
A.PROD_CD
, A.INDC_SEQ
, A.INDC_SEQ||' '||B.VND_NM AS INDC_SEQ_NM
, B.VND_CD
, B.VND_NM
FROM (
SELECT A.COMP_CD
, A.PROD_CD
, B.INDC_SEQ
, FN_GP_PROD_INDC_VND_CD(A.COMP_CD, A.PROD_CD,B.INDC_SEQ) AS VND_CODE
FROM GP_PROD A
, GP_PROD_INDC B
WHERE 1=1
AND A.COMP_CD = B.COMP_CD
AND A.PROD_CD = B.PROD_CD
AND A.COMP_CD = #COMP_CD#
AND A.PROD_CD = #PROD_CD#
AND B.USE_YN='Y'
) A
, V_WF_VENDOR B
WHERE 1=1
AND A.VND_CODE = B.VND_CD
AND A.COMP_CD = B.COMP_CD
AND A.COMP_CD = #COMP_CD#
AND A.PROD_CD = #PROD_CD#
ORDER BY A.INDC_SEQ DESC
</select>
<select id="ClAa010.selectRprNoCnt" resultClass="java.util.HashMap" parameterClass="java.util.Map">
SELECT /* ClAa010.selectRprNoCnt */
COUNT(*) AS CNT
FROM CR_CLAM
WHERE 1=1
AND RECV_YM = #recvYm#
AND RPR_NO = #rprNo#
AND ODIV_CD = #cboOdivCd#
AND COMP_CD = #cboCompCd#
</select>
<insert id="ClAa010.saveCrClamInsert" parameterClass="java.util.Map">
<selectKey resultClass="java.lang.String" keyProperty="RPR_NO_SEQ">
SELECT
NVL(MAX(RPR_NO), 0)+1 AS RPR_NO_SEQ
FROM CR_CLAM WHERE COMP_CD = #COMP_CD# AND ODIV_CD = #ODIV_CD# AND RECV_YM = #RECV_YM#
</selectKey>
INSERT /* ClAa010.saveCrClamInsert */
INTO CR_CLAM
(
COMP_CD
, ODIV_CD
, RECV_YM
, RPR_NO
, SHOP_CD
, CUST_CD
, CUST_NM
, HP_NO
, HP_BACK_NO
, ZIP_NO
, BASE_ADDR
, DETL_ADDR
, LOAD_NM_BASE_ADDR
, LOAD_NM_DETL_ADDR
, PROD_CD
, COLR_CD
, SIZE_CD
, SIZE_NM
, SELL_BFE_AF_CD
, PRDC_SEQ
, RPR_BARCD
, CLAM_STAT_CD
, SHOP_RECV_YMD
, MBR_RECV_YMD
, SHOP_SEND_YMD
, CLAM_DIV_CD
, CLAM_TYPE_CD
, CLAM_CAUS_CD
, PRDC_CMPY_CD
, RGOD_FIX_UPRC_YMD
, RGOD_FIX_UPRC
, CLAM_FIX_AMT
, CLAM_AMT
, RPR_RECV_YM
, RPR_RECV_NO
, RGOD_WH_CD
, GW_YMD
, GW_DOCU_NO
, FI_SLIP_YMD
, FI_SLIP_NO
, MBR_RMRK
, SHOP_RMRK
, SELL_YMD
, SELL_RECP_NO
, SELL_RECP_SEQ
, MBR_RGOD_FIX_YMD
, MBR_RGOD_FIX_NO
, MBR_RGOD_FIX_SEQ
, FRST_CHRG_MAN_ID
, PURC_YMD
, CLAM_UPRC_BASE
, PROG_ID
, REGI_ID
, REGI_DT
, UPDT_ID
, UPDT_DT
)
VALUES
(
#COMP_CD#
, #ODIV_CD#
, #RECV_YM#
, #RPR_NO_SEQ#
, #SHOP_CD#
, #CUST_CD#
, #CUST_NM#
, FN_CM_ENCRYPT(#HP_NO#)
, #HP_BACK_NO#
, #ZIP_NO#
, #BASE_ADDR#
, FN_CM_ENCRYPT(#DETL_ADDR#)
, #LOAD_NM_BASE_ADDR#
, FN_CM_ENCRYPT(#LOAD_NM_DETL_ADDR#)
, #PROD_CD#
, #COLR_CD#
, #SIZE_CD#
, FN_CR_GET_SIZE_NM(#COMP_CD#,#SHOP_CD#,#PROD_CD#,#SIZE_CD#)
, #SELL_BFE_AF_CD#
, #PRDC_SEQ#
, #RPR_BARCD#
, (CASE WHEN #MBR_RGOD_FIX_YMD# IS NOT NULL THEN '06'
WHEN #RGOD_FIX_UPRC_YMD# IS NOT NULL THEN '04'
WHEN #SHOP_SEND_YMD# IS NOT NULL THEN '03'
WHEN #MBR_RECV_YMD# IS NOT NULL THEN '02'
ELSE '01'
END)
, #SHOP_RECV_YMD#
, #MBR_RECV_YMD#
, #SHOP_SEND_YMD#
, #CLAM_DIV_CD#
, #CLAM_TYPE_CD#
, #CLAM_CAUS_CD#
, #PRDC_CMPY_CD#
, #RGOD_FIX_UPRC_YMD#
, #RGOD_FIX_UPRC#
, #CLAM_FIX_AMT#
, #CLAM_AMT#
, #RPR_RECV_YM#
, #RPR_RECV_NO#
, #RGOD_WH_CD#
, #GW_YMD#
, #GW_DOCU_NO#
, #FI_SLIP_YMD#
, #FI_SLIP_NO#
, #MBR_RMRK#
, #SHOP_RMRK#
, #SELL_YMD#
, #SELL_RECP_NO#
, #SELL_RECP_SEQ#
, #MBR_RGOD_FIX_YMD#
, #MBR_RGOD_FIX_NO#
, #MBR_RGOD_FIX_SEQ#
, #FRST_CHRG_MAN_ID#
, #PURC_YMD#
, #CLAM_UPRC_BASE#
, #PROGRAM_ID#
, #gv_userId#
, SYSDATE
, #gv_userId#
, SYSDATE)
</insert>
<update id="ClAa010.updateCrClam" parameterClass="java.util.Map">
<![CDATA[
UPDATE /* ClAa010.updateCrClam */
CR_CLAM
SET SHOP_CD = #SHOP_CD#
, CUST_CD = #CUST_CD#
, CUST_NM = #CUST_NM#
, HP_NO = FN_CM_ENCRYPT(#HP_NO#)
, HP_BACK_NO = #HP_BACK_NO#
, ZIP_NO = #ZIP_NO#
, BASE_ADDR = #BASE_ADDR#
, DETL_ADDR = FN_CM_ENCRYPT(#DETL_ADDR#)
, LOAD_NM_BASE_ADDR = #LOAD_NM_BASE_ADDR#
, LOAD_NM_DETL_ADDR = FN_CM_ENCRYPT(#LOAD_NM_DETL_ADDR#)
, PROD_CD = #PROD_CD#
, COLR_CD = #COLR_CD#
, SIZE_CD = #SIZE_CD#
, SIZE_NM = FN_CR_GET_SIZE_NM(#COMP_CD#,#SHOP_CD#,#PROD_CD#,#SIZE_CD#)
, SELL_BFE_AF_CD = #SELL_BFE_AF_CD#
, PRDC_SEQ = #PRDC_SEQ#
, RPR_BARCD = #RPR_BARCD#
, CLAM_STAT_CD = (CASE WHEN #MBR_RGOD_FIX_YMD# IS NOT NULL THEN '06'
WHEN #RGOD_FIX_UPRC_YMD# IS NOT NULL THEN '04'
WHEN #SHOP_SEND_YMD# IS NOT NULL THEN '03'
WHEN #MBR_RECV_YMD# IS NOT NULL THEN '02'
WHEN #SHOP_RECV_YMD# IS NOT NULL THEN '01'
ELSE CLAM_STAT_CD
END)
, SHOP_RECV_YMD = #SHOP_RECV_YMD#
, MBR_RECV_YMD = #MBR_RECV_YMD#
, SHOP_SEND_YMD = #SHOP_SEND_YMD#
, CLAM_DIV_CD = #CLAM_DIV_CD#
, CLAM_TYPE_CD = #CLAM_TYPE_CD#
, CLAM_CAUS_CD = #CLAM_CAUS_CD#
, PRDC_CMPY_CD = #PRDC_CMPY_CD#
, RGOD_FIX_UPRC_YMD = #RGOD_FIX_UPRC_YMD#
, RGOD_FIX_UPRC = #RGOD_FIX_UPRC#
, RPR_RECV_YM = #RPR_RECV_YM#
, RPR_RECV_NO = #RPR_RECV_NO#
, RGOD_WH_CD = #RGOD_WH_CD#
, MBR_RMRK = #MBR_RMRK#
, FRST_CHRG_MAN_ID = #FRST_CHRG_MAN_ID#
, SHOP_RMRK = #SHOP_RMRK#
, SELL_YMD = #SELL_YMD#
, SELL_RECP_NO = #SELL_RECP_NO#
, SELL_RECP_SEQ = #SELL_RECP_SEQ#
, PURC_YMD = #PURC_YMD#
, CLAM_UPRC_BASE = #CLAM_UPRC_BASE#
, MBR_RGOD_FIX_YMD = #MBR_RGOD_FIX_YMD#
, MBR_RGOD_FIX_NO = #MBR_RGOD_FIX_NO#
, MBR_RGOD_FIX_SEQ = #MBR_RGOD_FIX_SEQ#
, UPDT_ID = #gv_userId#
, UPDT_DT = SYSDATE
WHERE 1=1
AND COMP_CD = #COMP_CD#
AND ODIV_CD = #ODIV_CD#
AND RECV_YM = #RECV_YM#
AND RPR_NO = #RPR_NO#
]]>
</update>
<update id="ClAa010.saveCrClam#update" parameterClass="java.util.Map">
<![CDATA[
UPDATE /* ClAa010.updateCrClam */
CR_CLAM
SET SHOP_CD = #SHOP_CD#
, CUST_CD = #CUST_CD#
, CUST_NM = #CUST_NM#
, HP_NO = FN_CM_ENCRYPT(#HP_NO#)
, HP_BACK_NO = #HP_BACK_NO#
, ZIP_NO = #ZIP_NO#
, BASE_ADDR = #BASE_ADDR#
, DETL_ADDR = FN_CM_ENCRYPT(#DETL_ADDR#)
, LOAD_NM_BASE_ADDR = #LOAD_NM_BASE_ADDR#
, LOAD_NM_DETL_ADDR = FN_CM_ENCRYPT(#LOAD_NM_DETL_ADDR#)
, PROD_CD = #PROD_CD#
, COLR_CD = #COLR_CD#
, SIZE_CD = #SIZE_CD#
, SIZE_NM = FN_CR_GET_SIZE_NM(#COMP_CD#,#SHOP_CD#,#PROD_CD#,#SIZE_CD#)
, SELL_BFE_AF_CD = #SELL_BFE_AF_CD#
, PRDC_SEQ = #PRDC_SEQ#
, RPR_BARCD = #RPR_BARCD#
, CLAM_STAT_CD = (CASE WHEN #MBR_RGOD_FIX_YMD# IS NOT NULL THEN '06'
WHEN #RGOD_FIX_UPRC_YMD# IS NOT NULL THEN '04'
WHEN #SHOP_SEND_YMD# IS NOT NULL THEN '03'
WHEN #MBR_RECV_YMD# IS NOT NULL THEN '02'
WHEN #SHOP_RECV_YMD# IS NOT NULL THEN '01'
ELSE CLAM_STAT_CD
END)
, SHOP_RECV_YMD = #SHOP_RECV_YMD#
, MBR_RECV_YMD = #MBR_RECV_YMD#
, SHOP_SEND_YMD = #SHOP_SEND_YMD#
, CLAM_DIV_CD = #CLAM_DIV_CD#
, CLAM_TYPE_CD = #CLAM_TYPE_CD#
, CLAM_CAUS_CD = #CLAM_CAUS_CD#
, PRDC_CMPY_CD = #PRDC_CMPY_CD#
, RGOD_FIX_UPRC_YMD = #RGOD_FIX_UPRC_YMD#
, RGOD_FIX_UPRC = #RGOD_FIX_UPRC#
, RPR_RECV_YM = #RPR_RECV_YM#
, RPR_RECV_NO = #RPR_RECV_NO#
, RGOD_WH_CD = #RGOD_WH_CD#
, MBR_RMRK = #MBR_RMRK#
, SHOP_RMRK = #SHOP_RMRK#
, SELL_YMD = #SELL_YMD#
, SELL_RECP_NO = #SELL_RECP_NO#
, SELL_RECP_SEQ = #SELL_RECP_SEQ#
, MBR_RGOD_FIX_YMD = #MBR_RGOD_FIX_YMD#
, MBR_RGOD_FIX_NO = #MBR_RGOD_FIX_NO#
, MBR_RGOD_FIX_SEQ = #MBR_RGOD_FIX_SEQ#
, FRST_CHRG_MAN_ID = #FRST_CHRG_MAN_ID#
, PURC_YMD = #PURC_YMD#
, CLAM_UPRC_BASE = #CLAM_UPRC_BASE#
, UPDT_ID = #gv_userId#
, UPDT_DT = SYSDATE
WHERE 1=1
AND COMP_CD = #COMP_CD#
AND ODIV_CD = #ODIV_CD#
AND RECV_YM = #RECV_YM#
AND RPR_NO = #RPR_NO#
]]>
</update>
<insert id="ClAa010.saveCrClamH" parameterClass="java.util.Map">
INSERT /* ClAa010.saveCrClamH */
INTO CR_CLAM_H(
COMP_CD
, ODIV_CD
, RECV_YM
, RPR_NO
, SEQ
, CHANGER_ID
, MODI_ITEM
, MODI_BFE_VAL
, MODI_AF_VAL
, PROG_ID
, REGI_ID
, REGI_DT
, UPDT_ID
, UPDT_DT)
VALUES
( #COMP_CD#
, #ODIV_CD#
, #RECV_YM#
, #RPR_NO#
, (SELECT NVL(MAX(SEQ), 0)+1 FROM CR_CLAM_H WHERE COMP_CD = #COMP_CD# AND ODIV_CD = #ODIV_CD# AND RECV_YM = #RECV_YM# AND RPR_NO = #RPR_NO#)
, #gv_userId#
, #MODI_ITEM#
, #MODI_BFE_VAL#
, #MODI_AF_VAL#
, #PROGRAM_ID#
, #gv_userId#
, SYSDATE
, #gv_userId#
, SYSDATE)
</insert>
<select id="ClAa010.selectRgodFixUprc" resultClass="java.util.HashMap" parameterClass="java.util.Map">
SELECT /* ClAa010.selectRgodFixUprc */
B.PLAN_YY_CD
, A.ITEM_CD
FROM GP_PROD A, GP_PROD_INDC B
WHERE B.COMP_CD = #COMP_CD#
AND B.PROD_CD = #PROD_CD#
AND B.INDC_SEQ = #PRDC_SEQ#
AND A.COMP_CD = B.COMP_CD
AND A.PROD_CD = B.PROD_CD
AND B.USE_YN='Y'
</select>
<select id="ClAa010.selectClamHistory" resultClass="java.util.HashMap" parameterClass="java.util.Map">
SELECT /* ClAa010.selectClamHistory */
COMP_CD
, ODIV_CD
, RECV_YM
, RPR_NO
, RPR_NO AS VIEW_RPR_NO
, SHOP_CD
, FN_SU_GET_SHOP_NM(COMP_CD, SHOP_CD) AS SHOP_NM
, CUST_CD
, CUST_NM
, PROD_CD
, FN_GP_GET_PROD_NM(COMP_CD, PROD_CD) AS PROD_NM
, COLR_CD
, SIZE_CD
, FN_WP_GET_SIZE_NM(COMP_CD, #edtSessBrandCd#, PROD_CD, SIZE_CD) AS SIZE_NM
FROM CR_CLAM
WHERE 1=1
AND COMP_CD = #edtCompCd#
AND ODIV_CD = #edtOdivCd#
AND HP_NO = #edtHpNo#
ORDER BY REGI_DT DESC
</select>
<select id="ClAa010.selectClamHList" resultClass="java.util.HashMap" parameterClass="java.util.Map">
SELECT /* ClAa010.selectClamHList */
A.COMP_CD
, A.ODIV_CD
, A.RECV_YM
, A.RPR_NO
, A.RPR_NO AS VIEW_RPR_NO
, A.SEQ
, A.CHANGER_ID
, NVL2(C.COMMENTS,COMMENTS,A.MODI_ITEM) AS MODI_ITEM
, A.MODI_BFE_VAL
, A.MODI_AF_VAL
, A.REGI_DT AS REGI_DT
, B.USER_NM
FROM CR_CLAM_H A, CM_USER B, (SELECT COLUMN_NAME, COMMENTS FROM USER_COL_COMMENTS WHERE TABLE_NAME ='CR_CLAM') C
WHERE 1=1
AND A.CHANGER_ID = B.USER_ID(+)
AND A.MODI_ITEM = C.COLUMN_NAME(+)
AND COMP_CD = #edtCompCd#
AND ODIV_CD = #edtOdivCd#
AND RECV_YM = #edtRecvYm#
AND RPR_NO = #edtRprNo#
UNION ALL
SELECT
A.COMP_CD
, A.ODIV_CD
, A.RECV_YM
, A.RPR_NO
, A.RPR_NO AS VIEW_RPR_NO
, 0 AS SEQ
, A.UPDT_ID
, DECODE(B.DELRT_DIV_CD,'2','반품확정','반품취소') AS MODI_ITEM
, '' AS MODI_BFE_VAL
, A.DELRT_YMD||'-'||A.DELRT_SLIP_NO AS MODI_AF_VAL
, A.REGI_DT AS REGI_DT
, (SELECT AA.USER_NM FROM CM_USER AA WHERE AA.USER_ID = A.UPDT_ID ) AS USER_NM
FROM CR_CLAM_SLIP_H A, LS_DELI_D B
WHERE A.COMP_CD=B.COMP_CD
AND A.DELRT_YMD = B.DELRT_YMD
AND A.DELRT_SLIP_NO = B.DELRT_SLIP_NO
AND A.COMP_CD = #edtCompCd#
AND A.ODIV_CD = #edtOdivCd#
AND A.RECV_YM = #edtRecvYm#
AND A.RPR_NO = #edtRprNo#
ORDER BY REGI_DT DESC
</select>
<procedure id="ClAa010.execPR_CR_CLAIM_RGOD_PROC" parameterClass="com.sdf.framework.base.vo.CommonVO">
{ call PR_CR_CLAIM_RGOD_PROC(
#map.COMP_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, '2'
, #map.MBR_RGOD_FIX_YMD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.SHOP_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.RGOD_WH_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.PROD_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.COLR_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.SIZE_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.RGOD_QTY,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.gv_userId,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.PROGRAM_ID,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.DELRT_SLIP_NO,javaType=java.lang.String,jdbcType=VARCHAR,mode=OUT#
, #errorCode,javaType=java.lang.String,jdbcType=VARCHAR,mode=OUT#
, #errorMessage,javaType=java.lang.String,jdbcType=VARCHAR,mode=OUT#) }
</procedure>
<procedure id="ClAa010.execPR_CR_CLAIM_RGOD_PROC_CANCEL" parameterClass="com.sdf.framework.base.vo.CommonVO">
{ call PR_CR_CLAIM_RGOD_PROC(
#map.COMP_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, '1'
, #map.MBR_RGOD_FIX_YMD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.SHOP_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.RGOD_WH_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.PROD_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.COLR_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.SIZE_CD,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.RGOD_QTY,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.gv_userId,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.PROGRAM_ID,javaType=java.lang.String,jdbcType=VARCHAR,mode=IN#
, #map.DELRT_SLIP_NO,javaType=java.lang.String,jdbcType=VARCHAR,mode=OUT#
, #errorCode,javaType=java.lang.String,jdbcType=VARCHAR,mode=OUT#
, #errorMessage,javaType=java.lang.String,jdbcType=VARCHAR,mode=OUT#) }
</procedure>
<insert id="ClAa010.saveCrClamSlipHInsert" parameterClass="java.util.Map">
INSERT /* ClAa010.saveCrClamSlipHInsert */
INTO CR_CLAM_SLIP_H
(
COMP_CD
, ODIV_CD
, RECV_YM
, RPR_NO
, SEQ
, REGI_DIV_CD
, DELRT_YMD
, DELRT_SLIP_NO
, DELRT_SLIP_SEQ
, CHANGER_ID
, PROG_ID
, REGI_ID
, REGI_DT
, UPDT_ID
, UPDT_DT
)
VALUES
(
#COMP_CD#
, #ODIV_CD#
, #RECV_YM#
, #RPR_NO#
, (SELECT NVL(MAX(SEQ), 0)+1 FROM CR_CLAM_SLIP_H WHERE COMP_CD = #COMP_CD# AND ODIV_CD = #ODIV_CD# AND RECV_YM = #RECV_YM# AND RPR_NO = #RPR_NO#)
, '03'
, #MBR_RGOD_FIX_YMD#
, #MBR_RGOD_FIX_NO#
, #MBR_RGOD_FIX_SEQ#
, #gv_userId#
, #PROGRAM_ID#
, #gv_userId#
, SYSDATE
, #gv_userId#
, SYSDATE)
</insert>
<select id="ClAa010.selectClamStatCd" resultClass="java.util.HashMap" parameterClass="java.util.Map">
SELECT CASE WHEN GW_YMD IS NOT NULL THEN '90'
WHEN SELL_RECP_NO IS NOT NULL THEN '99'
ELSE CLAM_STAT_CD
END CLAM_STAT_CD
FROM CR_CLAM
WHERE COMP_CD = #COMP_CD#
AND ODIV_CD = #ODIV_CD#
AND RECV_YM = #RECV_YM#
AND RPR_NO = #RPR_NO#
</select>
<select id="ClAa010.selectClamCheckData" resultClass="java.util.HashMap" parameterClass="java.util.Map">
SELECT SHOP_CD,PROD_CD,COLR_CD,SIZE_CD,RGOD_WH_CD,MBR_RGOD_FIX_NO,GW_DOCU_NO,FI_SLIP_NO,SELL_RECP_NO
FROM CR_CLAM
WHERE COMP_CD = #COMP_CD#
AND ODIV_CD = #ODIV_CD#
AND RECV_YM = #RECV_YM#
AND RPR_NO = #RPR_NO#
</select>
</sqlMap>