품질관리_고객CS관리
This commit is contained in:
@@ -388,6 +388,23 @@ public class CommonController {
|
||||
return "/viewImage";
|
||||
}
|
||||
|
||||
/**
|
||||
* objId 기반 이미지 뷰어 (한글 파일명 지원)
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/common/viewImageByObjId.do")
|
||||
public String viewImageByObjId(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
Map fileInfo = commonService.getFileInfo(paramMap);
|
||||
if(fileInfo != null){
|
||||
request.setAttribute("attDir", CommonUtils.checkNull(fileInfo.get("FILE_PATH")));
|
||||
request.setAttribute("savedFileName", CommonUtils.checkNull(fileInfo.get("SAVED_FILE_NAME")));
|
||||
request.setAttribute("realFileName", CommonUtils.checkNull(fileInfo.get("REAL_FILE_NAME")));
|
||||
}
|
||||
return "/viewImageByObjId";
|
||||
}
|
||||
|
||||
/**
|
||||
* 사용자 조회(공통)
|
||||
* @param request
|
||||
@@ -621,6 +638,16 @@ public class CommonController {
|
||||
return "/common/FileRegistPopup";
|
||||
}
|
||||
|
||||
/**
|
||||
* 이미지 파일 등록 팝업 (이미지만 업로드 가능)
|
||||
*/
|
||||
@RequestMapping("/common/ImageRegistPopup.do")
|
||||
public String ImageRegistPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
request.setAttribute("docType", CommonUtils.checkNull(paramMap.get("docType")));
|
||||
request.setAttribute("docTypeName", CommonUtils.checkNull(paramMap.get("docTypeName")));
|
||||
return "/common/ImageRegistPopup";
|
||||
}
|
||||
|
||||
@RequestMapping("/common/FileDetailPopup.do")
|
||||
public String FileDetailPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
request.setAttribute("docType", CommonUtils.checkNull(paramMap.get("docType")));
|
||||
|
||||
@@ -510,16 +510,25 @@ public class QualityController {
|
||||
*/
|
||||
@RequestMapping("/quality/customerCsList.do")
|
||||
public String customerCsList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
Map code_map = new HashMap();
|
||||
try {
|
||||
// 고객사
|
||||
code_map.put("customer_cd", commonService.bizMakeOptionList("", "", "common.getClientMngSupplySelect"));
|
||||
request.setAttribute("code_map", code_map);
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "/quality/customerCsList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 고객 CS 관리 그리드 목록 조회
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("/quality/customerCsGridList.do")
|
||||
public String customerCsGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
request.setAttribute("RESULT", CommonUtils.getJsonArray(service.getCustomerCsList(request, paramMap)));
|
||||
return "/ajax/ajaxResult";
|
||||
public Map customerCsGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
commonService.selectListPagingNew("quality.getCustomerCsList", request, paramMap);
|
||||
return paramMap;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -527,9 +536,34 @@ public class QualityController {
|
||||
*/
|
||||
@RequestMapping("/quality/customerCsDefectFormPopUp.do")
|
||||
public String customerCsDefectFormPopUp(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
Map code_map = new HashMap();
|
||||
Map info = new HashMap();
|
||||
|
||||
try {
|
||||
String objId = CommonUtils.checkNull(paramMap.get("OBJID"));
|
||||
if(!objId.isEmpty()) {
|
||||
info = service.getCustomerCsInfo(paramMap);
|
||||
request.setAttribute("info", info);
|
||||
}
|
||||
// 고객사
|
||||
code_map.put("customer_cd", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)info.get("customer_objid")), "common.getClientMngSupplySelect"));
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
request.setAttribute("code_map", code_map);
|
||||
return "/quality/customerCsDefectFormPopUp";
|
||||
}
|
||||
|
||||
/**
|
||||
* 고객 불량 저장
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("/quality/saveCustomerCsDefect.do")
|
||||
public Map saveCustomerCsDefect(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
return service.saveCustomerCsDefect(request, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 조치결과 등록 팝업
|
||||
*/
|
||||
@@ -540,6 +574,15 @@ public class QualityController {
|
||||
return "/quality/customerCsActionFormPopUp";
|
||||
}
|
||||
|
||||
/**
|
||||
* 조치결과 저장
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("/quality/saveCustomerCsAction.do")
|
||||
public Map saveCustomerCsAction(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
return service.saveCustomerCsAction(request, paramMap);
|
||||
}
|
||||
|
||||
// =====================================================
|
||||
// ECR 관리
|
||||
// =====================================================
|
||||
|
||||
@@ -1138,14 +1138,17 @@
|
||||
<select id="getCustomerCsList" parameterType="map" resultType="map">
|
||||
SELECT CCS.OBJID
|
||||
, CCS.RECEIPT_NO
|
||||
, TO_CHAR(CCS.RECEIPT_DATE, 'YYYY-MM-DD') AS RECEIPT_DATE
|
||||
, CCS.RECEIPT_DATE
|
||||
, CCS.QTY
|
||||
, CCS.CUSTOMER_NAME
|
||||
, CCS.CUSTOMER_OBJID
|
||||
, (SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = CCS.CUSTOMER_OBJID) AS CUSTOMER_NAME
|
||||
, CCS.MODEL_NAME
|
||||
, CCS.PRODUCT_NAME
|
||||
, CCS.PART_NO
|
||||
, TO_CHAR(CCS.PRODUCTION_DATE, 'YYYY-MM-DD') AS PRODUCTION_DATE
|
||||
, TO_CHAR(CCS.SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE
|
||||
, CCS.PRODUCT_NO
|
||||
, CCS.PART_NAME
|
||||
, CCS.PRODUCTION_DATE
|
||||
, CCS.SALES_DATE
|
||||
, CCS.SERIAL_NO
|
||||
, CCS.MANUFACTURER
|
||||
, CCS.COMPLAINT_CONTENT
|
||||
@@ -1153,30 +1156,37 @@
|
||||
, CCS.BLAME_DECISION
|
||||
, CCS.STATUS
|
||||
, CCS.REMARK
|
||||
, TO_CHAR(CCS.ACTION_DATE, 'YYYY-MM-DD') AS ACTION_DATE
|
||||
, CCS.ACTION_DATE
|
||||
, CCS.ACTION_USER_ID
|
||||
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = CCS.ACTION_USER_ID) AS ACTION_USER_NAME
|
||||
, CASE WHEN CCS.ATTACH_FILE_OBJID IS NOT NULL THEN 'Y' ELSE 'N' END AS ATTACH_FILE
|
||||
FROM PMS_QUALITY_CUSTOMER_CS CCS
|
||||
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO AFI WHERE AFI.TARGET_OBJID = CCS.OBJID AND AFI.DOC_TYPE = 'CUSTOMER_CS_IMAGE' AND STATUS = 'Active') AS IMAGE_FILE
|
||||
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO AFI WHERE AFI.TARGET_OBJID = CCS.OBJID AND AFI.DOC_TYPE = 'CUSTOMER_CS_ACTION' AND STATUS = 'Active') AS ATTACH_FILE
|
||||
FROM CUSTOMER_CS CCS
|
||||
WHERE 1=1
|
||||
<if test="search_receipt_date_from != null and search_receipt_date_from != ''">
|
||||
AND CCS.RECEIPT_DATE >= TO_DATE(#{search_receipt_date_from}, 'YYYY-MM-DD')
|
||||
AND CCS.RECEIPT_DATE <![CDATA[>=]]> #{search_receipt_date_from}
|
||||
</if>
|
||||
<if test="search_receipt_date_to != null and search_receipt_date_to != ''">
|
||||
AND CCS.RECEIPT_DATE <![CDATA[<=]]> TO_DATE(#{search_receipt_date_to}, 'YYYY-MM-DD')
|
||||
AND CCS.RECEIPT_DATE <![CDATA[<=]]> #{search_receipt_date_to}
|
||||
</if>
|
||||
<if test="search_customer_name != null and search_customer_name != ''">
|
||||
AND UPPER(CCS.CUSTOMER_NAME) LIKE UPPER('%' || #{search_customer_name} || '%')
|
||||
<if test="search_customer_objid != null and search_customer_objid != ''">
|
||||
AND CCS.CUSTOMER_OBJID = #{search_customer_objid}
|
||||
</if>
|
||||
<if test="search_model_name != null and search_model_name != ''">
|
||||
AND UPPER(CCS.MODEL_NAME) LIKE UPPER('%' || #{search_model_name} || '%')
|
||||
</if>
|
||||
<if test="search_product_no != null and search_product_no != ''">
|
||||
AND UPPER(CCS.PRODUCT_NO) LIKE UPPER('%' || #{search_product_no} || '%')
|
||||
</if>
|
||||
<if test="search_product_name != null and search_product_name != ''">
|
||||
AND UPPER(CCS.PRODUCT_NAME) LIKE UPPER('%' || #{search_product_name} || '%')
|
||||
</if>
|
||||
<if test="search_part_no != null and search_part_no != ''">
|
||||
AND UPPER(CCS.PART_NO) LIKE UPPER('%' || #{search_part_no} || '%')
|
||||
</if>
|
||||
<if test="search_part_name != null and search_part_name != ''">
|
||||
AND UPPER(CCS.PART_NAME) LIKE UPPER('%' || #{search_part_name} || '%')
|
||||
</if>
|
||||
<if test="search_serial_no != null and search_serial_no != ''">
|
||||
AND UPPER(CCS.SERIAL_NO) LIKE UPPER('%' || #{search_serial_no} || '%')
|
||||
</if>
|
||||
@@ -1190,10 +1200,10 @@
|
||||
AND CCS.STATUS = #{search_status}
|
||||
</if>
|
||||
<if test="search_action_date_from != null and search_action_date_from != ''">
|
||||
AND CCS.ACTION_DATE >= TO_DATE(#{search_action_date_from}, 'YYYY-MM-DD')
|
||||
AND CCS.ACTION_DATE <![CDATA[>=]]> #{search_action_date_from}
|
||||
</if>
|
||||
<if test="search_action_date_to != null and search_action_date_to != ''">
|
||||
AND CCS.ACTION_DATE <![CDATA[<=]]> TO_DATE(#{search_action_date_to}, 'YYYY-MM-DD')
|
||||
AND CCS.ACTION_DATE <![CDATA[<=]]> #{search_action_date_to}
|
||||
</if>
|
||||
<if test="search_action_user != null and search_action_user != ''">
|
||||
AND (
|
||||
@@ -1208,14 +1218,17 @@
|
||||
<select id="getCustomerCsInfo" parameterType="map" resultType="map">
|
||||
SELECT CCS.OBJID
|
||||
, CCS.RECEIPT_NO
|
||||
, TO_CHAR(CCS.RECEIPT_DATE, 'YYYY-MM-DD') AS RECEIPT_DATE
|
||||
, CCS.RECEIPT_DATE
|
||||
, CCS.QTY
|
||||
, CCS.CUSTOMER_NAME
|
||||
, CCS.CUSTOMER_OBJID
|
||||
, (SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = CCS.CUSTOMER_OBJID) AS CUSTOMER_NAME
|
||||
, CCS.MODEL_NAME
|
||||
, CCS.PRODUCT_NAME
|
||||
, CCS.PART_NO
|
||||
, TO_CHAR(CCS.PRODUCTION_DATE, 'YYYY-MM-DD') AS PRODUCTION_DATE
|
||||
, TO_CHAR(CCS.SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE
|
||||
, CCS.PRODUCT_NO
|
||||
, CCS.PART_NAME
|
||||
, CCS.PRODUCTION_DATE
|
||||
, CCS.SALES_DATE
|
||||
, CCS.SERIAL_NO
|
||||
, CCS.MANUFACTURER
|
||||
, CCS.COMPLAINT_CONTENT
|
||||
@@ -1223,16 +1236,101 @@
|
||||
, CCS.BLAME_DECISION
|
||||
, CCS.STATUS
|
||||
, CCS.REMARK
|
||||
, TO_CHAR(CCS.ACTION_DATE, 'YYYY-MM-DD') AS ACTION_DATE
|
||||
, CCS.ACTION_DATE
|
||||
, CCS.ACTION_USER_ID
|
||||
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = CCS.ACTION_USER_ID) AS ACTION_USER_NAME
|
||||
, CCS.ATTACH_FILE_OBJID
|
||||
, CCS.WRITER
|
||||
, TO_CHAR(CCS.REG_DATE, 'YYYY-MM-DD') AS REG_DATE
|
||||
FROM PMS_QUALITY_CUSTOMER_CS CCS
|
||||
FROM CUSTOMER_CS CCS
|
||||
WHERE CCS.OBJID = #{OBJID}
|
||||
</select>
|
||||
|
||||
<!-- 고객 CS 시퀀스 조회 -->
|
||||
<select id="getCustomerCsSeq" resultType="int">
|
||||
SELECT NEXTVAL('SEQ_CUSTOMER_CS_RECEIPT_NO')
|
||||
</select>
|
||||
|
||||
<!-- 고객 CS 등록 -->
|
||||
<insert id="insertCustomerCs" parameterType="map">
|
||||
INSERT INTO CUSTOMER_CS (
|
||||
OBJID
|
||||
, RECEIPT_NO
|
||||
, RECEIPT_DATE
|
||||
, QTY
|
||||
, CUSTOMER_OBJID
|
||||
, MODEL_NAME
|
||||
, PRODUCT_NO
|
||||
, PRODUCT_NAME
|
||||
, PART_NO
|
||||
, PART_NAME
|
||||
, PRODUCTION_DATE
|
||||
, SALES_DATE
|
||||
, SERIAL_NO
|
||||
, MANUFACTURER
|
||||
, COMPLAINT_CONTENT
|
||||
, BLAME_DECISION
|
||||
, STATUS
|
||||
, REMARK
|
||||
, WRITER
|
||||
, REG_DATE
|
||||
) VALUES (
|
||||
#{OBJID}
|
||||
, #{RECEIPT_NO}
|
||||
, #{RECEIPT_DATE}
|
||||
, NULLIF(#{QTY}, '')::NUMERIC
|
||||
, #{CUSTOMER_OBJID}
|
||||
, #{MODEL_NAME}
|
||||
, #{PRODUCT_NO}
|
||||
, #{PRODUCT_NAME}
|
||||
, #{PART_NO}
|
||||
, #{PART_NAME}
|
||||
, #{PRODUCTION_DATE}
|
||||
, #{SALES_DATE}
|
||||
, #{SERIAL_NO}
|
||||
, #{MANUFACTURER}
|
||||
, #{COMPLAINT_CONTENT}
|
||||
, #{BLAME_DECISION}
|
||||
, #{STATUS}
|
||||
, #{REMARK}
|
||||
, #{WRITER}
|
||||
, NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 고객 CS 수정 -->
|
||||
<update id="updateCustomerCs" parameterType="map">
|
||||
UPDATE CUSTOMER_CS SET
|
||||
RECEIPT_DATE = #{RECEIPT_DATE}
|
||||
, QTY = NULLIF(#{QTY}, '')::NUMERIC
|
||||
, CUSTOMER_OBJID = #{CUSTOMER_OBJID}
|
||||
, MODEL_NAME = #{MODEL_NAME}
|
||||
, PRODUCT_NO = #{PRODUCT_NO}
|
||||
, PRODUCT_NAME = #{PRODUCT_NAME}
|
||||
, PART_NO = #{PART_NO}
|
||||
, PART_NAME = #{PART_NAME}
|
||||
, PRODUCTION_DATE = #{PRODUCTION_DATE}
|
||||
, SALES_DATE = #{SALES_DATE}
|
||||
, SERIAL_NO = #{SERIAL_NO}
|
||||
, MANUFACTURER = #{MANUFACTURER}
|
||||
, COMPLAINT_CONTENT = #{COMPLAINT_CONTENT}
|
||||
, MOD_DATE = NOW()
|
||||
WHERE OBJID = #{OBJID}
|
||||
</update>
|
||||
|
||||
<!-- 고객 CS 조치결과 수정 -->
|
||||
<update id="updateCustomerCsAction" parameterType="map">
|
||||
UPDATE CUSTOMER_CS SET
|
||||
ACTION_CONTENT = #{ACTION_CONTENT}
|
||||
, BLAME_DECISION = #{BLAME_DECISION}
|
||||
, ACTION_DATE = #{ACTION_DATE}
|
||||
, ACTION_USER_ID = #{ACTION_USER_ID}
|
||||
, STATUS = #{STATUS}
|
||||
, REMARK = #{REMARK}
|
||||
, MOD_DATE = NOW()
|
||||
WHERE OBJID = #{OBJID}
|
||||
</update>
|
||||
|
||||
<!-- =====================================================
|
||||
ECR 관리
|
||||
===================================================== -->
|
||||
|
||||
@@ -956,6 +956,86 @@ public class QualityService extends BaseService{
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 고객 불량 저장
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
// =====================================================
|
||||
// ECR 관리
|
||||
// =====================================================
|
||||
|
||||
Reference in New Issue
Block a user