auto commit

This commit is contained in:
leeheejin
2025-11-25 13:58:07 +09:00
parent 926e8d6420
commit cd4f5afe87
9 changed files with 1479 additions and 102 deletions

View File

@@ -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>

View File

@@ -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;
}
}

View File

@@ -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;
}
}