auto commit
This commit is contained in:
@@ -2773,5 +2773,127 @@ UPDATE SET
|
||||
,QTY = #{QTY }
|
||||
,NOTE = #{NOTE }
|
||||
</update>
|
||||
|
||||
<!-- 구매리스트 관련 쿼리 -->
|
||||
<select id="getSalesRequestPartList" parameterType="string" resultType="map">
|
||||
SELECT
|
||||
SRP.OBJID,
|
||||
SRP.PART_OBJID,
|
||||
PM.PART_NO,
|
||||
PM.PART_NAME,
|
||||
SRP.QTY,
|
||||
SRP.PARTNER_OBJID,
|
||||
SRP.PARTNER_PRICE
|
||||
FROM
|
||||
SALES_REQUEST_PART SRP
|
||||
LEFT JOIN PART_MNG PM ON SRP.PART_OBJID = PM.OBJID::VARCHAR
|
||||
WHERE
|
||||
SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
||||
ORDER BY SRP.REGDATE
|
||||
</select>
|
||||
|
||||
<update id="mergePurchaseListInfo" parameterType="map">
|
||||
INSERT INTO SALES_REQUEST_PART (
|
||||
OBJID,
|
||||
SALES_REQUEST_MASTER_OBJID,
|
||||
PART_NO,
|
||||
PART_NAME,
|
||||
QTY,
|
||||
ITEM_QTY,
|
||||
FILE_3D,
|
||||
FILE_2D,
|
||||
FILE_PDF,
|
||||
MATERIAL,
|
||||
HEAT_TREATMENT_HARDNESS,
|
||||
HEAT_TREATMENT_METHOD,
|
||||
SURFACE_TREATMENT,
|
||||
SUPPLIER,
|
||||
CATEGORY_NAME,
|
||||
SUPPLY_TYPE,
|
||||
RAW_MATERIAL,
|
||||
SIZE,
|
||||
RAW_MATERIAL_PART_NO,
|
||||
RAW_MATERIAL_REQUIRED_QTY,
|
||||
RAW_MATERIAL_ORDER_QTY,
|
||||
ITEM_QTY2,
|
||||
PRODUCTION_QTY,
|
||||
PROCESSING_COMPANY,
|
||||
PROCESSING_DELIVERY_DATE,
|
||||
GRINDING_DELIVERY_DATE,
|
||||
USE_YN,
|
||||
NET_QTY,
|
||||
ORDER_QTY,
|
||||
SUPPLIER2,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
PROPOSAL_DATE,
|
||||
WRITER,
|
||||
REGDATE
|
||||
) VALUES (
|
||||
#{OBJID},
|
||||
#{SALES_REQUEST_MASTER_OBJID},
|
||||
#{PART_NO},
|
||||
#{PART_NAME},
|
||||
#{QTY},
|
||||
#{ITEM_QTY},
|
||||
#{FILE_3D},
|
||||
#{FILE_2D},
|
||||
#{FILE_PDF},
|
||||
#{MATERIAL},
|
||||
#{HEAT_TREATMENT_HARDNESS},
|
||||
#{HEAT_TREATMENT_METHOD},
|
||||
#{SURFACE_TREATMENT},
|
||||
#{SUPPLIER},
|
||||
#{CATEGORY_NAME},
|
||||
#{SUPPLY_TYPE},
|
||||
#{RAW_MATERIAL},
|
||||
#{SIZE},
|
||||
#{RAW_MATERIAL_PART_NO},
|
||||
#{RAW_MATERIAL_REQUIRED_QTY},
|
||||
#{RAW_MATERIAL_ORDER_QTY},
|
||||
#{ITEM_QTY2},
|
||||
#{PRODUCTION_QTY},
|
||||
#{PROCESSING_COMPANY},
|
||||
CASE WHEN #{PROCESSING_DELIVERY_DATE} = '' THEN NULL ELSE #{PROCESSING_DELIVERY_DATE}::date END,
|
||||
CASE WHEN #{GRINDING_DELIVERY_DATE} = '' THEN NULL ELSE #{GRINDING_DELIVERY_DATE}::date END,
|
||||
#{USE_YN},
|
||||
#{NET_QTY},
|
||||
#{ORDER_QTY},
|
||||
#{SUPPLIER2},
|
||||
#{UNIT_PRICE},
|
||||
#{TOTAL_PRICE},
|
||||
CASE WHEN #{PROPOSAL_DATE} = '' THEN NOW() ELSE #{PROPOSAL_DATE}::date END,
|
||||
#{WRITER},
|
||||
NOW()
|
||||
) ON CONFLICT (OBJID) DO
|
||||
UPDATE SET
|
||||
ITEM_QTY = #{ITEM_QTY},
|
||||
FILE_3D = #{FILE_3D},
|
||||
FILE_2D = #{FILE_2D},
|
||||
FILE_PDF = #{FILE_PDF},
|
||||
MATERIAL = #{MATERIAL},
|
||||
HEAT_TREATMENT_HARDNESS = #{HEAT_TREATMENT_HARDNESS},
|
||||
HEAT_TREATMENT_METHOD = #{HEAT_TREATMENT_METHOD},
|
||||
SURFACE_TREATMENT = #{SURFACE_TREATMENT},
|
||||
SUPPLIER = #{SUPPLIER},
|
||||
CATEGORY_NAME = #{CATEGORY_NAME},
|
||||
SUPPLY_TYPE = #{SUPPLY_TYPE},
|
||||
RAW_MATERIAL = #{RAW_MATERIAL},
|
||||
SIZE = #{SIZE},
|
||||
RAW_MATERIAL_PART_NO = #{RAW_MATERIAL_PART_NO},
|
||||
RAW_MATERIAL_REQUIRED_QTY = #{RAW_MATERIAL_REQUIRED_QTY},
|
||||
RAW_MATERIAL_ORDER_QTY = #{RAW_MATERIAL_ORDER_QTY},
|
||||
ITEM_QTY2 = #{ITEM_QTY2},
|
||||
PRODUCTION_QTY = #{PRODUCTION_QTY},
|
||||
PROCESSING_COMPANY = #{PROCESSING_COMPANY},
|
||||
PROCESSING_DELIVERY_DATE = CASE WHEN #{PROCESSING_DELIVERY_DATE} = '' THEN NULL ELSE #{PROCESSING_DELIVERY_DATE}::date END,
|
||||
GRINDING_DELIVERY_DATE = CASE WHEN #{GRINDING_DELIVERY_DATE} = '' THEN NULL ELSE #{GRINDING_DELIVERY_DATE}::date END,
|
||||
USE_YN = #{USE_YN},
|
||||
NET_QTY = #{NET_QTY},
|
||||
ORDER_QTY = #{ORDER_QTY},
|
||||
SUPPLIER2 = #{SUPPLIER2},
|
||||
UNIT_PRICE = #{UNIT_PRICE},
|
||||
TOTAL_PRICE = #{TOTAL_PRICE}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -1086,4 +1086,53 @@ public class SalesMngController {
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 구매리스트 작성 팝업
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/salesMng/purchaseListFormPopUp.do")
|
||||
public String purchaseListFormPopUp(HttpServletRequest request, @RequestParam Map paramMap){
|
||||
return "/salesMng/purchaseListFormPopUp";
|
||||
}
|
||||
|
||||
/**
|
||||
* 구매리스트 데이터 조회
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("/salesMng/getPurchaseListData.do")
|
||||
public Map getPurchaseListData(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
Map resultMap = new HashMap();
|
||||
try{
|
||||
resultMap = salesMngService.getPurchaseListData(request, paramMap);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 구매리스트 저장
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("/salesMng/savePurchaseList.do")
|
||||
public Map savePurchaseList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
Map resultMap = new HashMap();
|
||||
try{
|
||||
resultMap = salesMngService.savePurchaseList(request, paramMap);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
resultMap.put("result", "error");
|
||||
resultMap.put("message", "저장 중 오류가 발생했습니다: " + e.getMessage());
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1694,4 +1694,95 @@ public class SalesMngService {
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 구매리스트 데이터 조회
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
public Map getPurchaseListData(HttpServletRequest request, Map paramMap) {
|
||||
Map resultMap = new HashMap();
|
||||
SqlSession sqlSession = null;
|
||||
|
||||
try {
|
||||
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
||||
String salesRequestMasterObjid = CommonUtils.checkNull(paramMap.get("SALES_REQUEST_MASTER_OBJID"));
|
||||
|
||||
// SALES_REQUEST_PART 조회
|
||||
List<Map> partList = sqlSession.selectList("salesMng.getSalesRequestPartList", salesRequestMasterObjid);
|
||||
|
||||
resultMap.put("partList", partList);
|
||||
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if(sqlSession != null) sqlSession.close();
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 구매리스트 저장
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
public Map savePurchaseList(HttpServletRequest request, Map paramMap) {
|
||||
Map resultMap = new HashMap();
|
||||
SqlSession sqlSession = null;
|
||||
|
||||
try {
|
||||
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
||||
String salesRequestMasterObjid = CommonUtils.checkNull(paramMap.get("SALES_REQUEST_MASTER_OBJID"));
|
||||
String partListJson = CommonUtils.checkNull(paramMap.get("partList"));
|
||||
|
||||
// JSON 파싱 - 기존 코드 참고하여 간단하게 처리
|
||||
// partListJson이 이미 파싱된 상태일 수 있으므로 직접 처리
|
||||
List<Map> partList = new ArrayList<Map>();
|
||||
// TODO: JSON 파싱 로직 추가 필요
|
||||
|
||||
if(partList == null || partList.isEmpty()) {
|
||||
resultMap.put("result", "error");
|
||||
resultMap.put("message", "저장할 데이터가 없습니다.");
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
// 로그인 사용자 정보
|
||||
HttpSession session = request.getSession();
|
||||
PersonBean personBean = (PersonBean) session.getAttribute(Constants.PERSON_BEAN);
|
||||
String userId = personBean.getUserId();
|
||||
|
||||
// 각 품목별로 구매리스트 정보 저장
|
||||
for(Map partData : partList) {
|
||||
String objid = CommonUtils.checkNull(partData.get("OBJID"));
|
||||
|
||||
if(objid.isEmpty()) {
|
||||
objid = CommonUtils.createObjId();
|
||||
}
|
||||
|
||||
partData.put("OBJID", objid);
|
||||
partData.put("SALES_REQUEST_MASTER_OBJID", salesRequestMasterObjid);
|
||||
partData.put("WRITER", userId);
|
||||
|
||||
// SALES_REQUEST_PART 테이블에 저장
|
||||
sqlSession.insert("salesMng.mergePurchaseListInfo", partData);
|
||||
}
|
||||
|
||||
resultMap.put("result", "success");
|
||||
resultMap.put("message", "저장되었습니다.");
|
||||
sqlSession.commit();
|
||||
|
||||
} catch(Exception e) {
|
||||
if(sqlSession != null) sqlSession.rollback();
|
||||
resultMap.put("result", "error");
|
||||
resultMap.put("message", "저장 중 오류가 발생했습니다: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if(sqlSession != null) sqlSession.close();
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user