발주서 양식 변경 (일반발주서)

This commit is contained in:
2025-12-10 14:21:18 +09:00
parent 4336df1a52
commit 49cd6ddda1
7 changed files with 1853 additions and 67 deletions

View File

@@ -414,11 +414,15 @@ public class PurchaseOrderController {
String type = CommonUtils.checkNull(paramMap.get("TYPE"));
//System.out.println("type::"+type);
if("0001069".equals(type) || "0001787".equals(type)){ //일반부품 //구매품표준
purchaseOrderService.saveDeliveryInfo(request, paramMap);
}else{
purchaseOrderService.saveDeliveryETCInfo(request, paramMap);
}
// if("0001069".equals(type) || "0001787".equals(type)){ //일반부품 //구매품표준
// purchaseOrderService.saveDeliveryInfo(request, paramMap);
// }else{
// purchaseOrderService.saveDeliveryETCInfo(request, paramMap);
// }
// 무조건 saveDeliveryInfo로 처리 (자재 생성 포함)
purchaseOrderService.saveDeliveryInfo(request, paramMap);
resultMap.put("message", "저장되었습니다.");
}catch(Exception e){
resultMap.put("message", "오류가 발생하였습니다.");
@@ -670,6 +674,349 @@ public class PurchaseOrderController {
}
}
/**
* 일반 발주서 양식 팝업
*/
@RequestMapping("/purchaseOrder/purchaseOrderFormPopup_general.do")
public String purchaseOrderFormPopup_general(HttpSession session, HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map code_map = new HashMap();
Map info = new HashMap();
List detailList = new ArrayList();
HashMap oemInfo = new HashMap();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String objId = CommonUtils.checkNull(paramMap.get("PURCHASE_ORDER_MASTER_OBJID"), "");
String proposalObjId = CommonUtils.checkNull(paramMap.get("PROPOSAL_OBJID"), "");
String writer = CommonUtils.checkNull(person.getUserId());
String writerName = person.getUserName();
try{
oemInfo = (HashMap)adminService.getSupMngInfo("-1130201617"); // RPS
if(objId.equals("")){
request.setAttribute("actType", "C"); // 등록 Create
objId = CommonUtils.createObjId();
info.put("actType", "C");
info.put("OBJID", objId);
info.put("PROPOSAL_OBJID", proposalObjId);
info.put("SALES_MNG_USER_ID", writer);
// 발주번호 자동생성
info.put("PURCHASE_ORDER_NO", "RPS25-" + new java.text.SimpleDateFormat("MMdd").format(new java.util.Date()) + "-01");
// 발주일자 기본값 오늘
info.put("ORDER_DATE", new java.text.SimpleDateFormat("yyyy년 MM월 dd일").format(new java.util.Date()));
// 담당자 정보 기본값
info.put("MANAGER_NAME", "안동윤");
info.put("MANAGER_POSITION", "팀장");
info.put("MANAGER_PHONE", "010-2313-2702");
info.put("MANAGER_EMAIL", "ady1225@rps-korea.com");
info.put("MANAGER_NAME2", "서동민");
info.put("MANAGER_POSITION2", "주임");
info.put("MANAGER_PHONE2", "010-9538-9513");
info.put("MANAGER_EMAIL2", "sdm0927@rps-korea.com");
// 품의서(PROPOSAL) 품목 데이터 조회하여 그리드에 자동 세팅
if(!"".equals(proposalObjId)){
Map proposalParam = new HashMap();
proposalParam.put("PROPOSAL_OBJID", proposalObjId);
List proposalPartList = commonService.selectList("salesMng.getProposalPartList", request, proposalParam);
if(proposalPartList != null && proposalPartList.size() > 0){
// 품의서 품목을 발주서 그리드 형식으로 변환
for(int i = 0; i < proposalPartList.size(); i++){
Map partRow = (Map)proposalPartList.get(i);
Map detailRow = new HashMap();
detailRow.put("OBJID", "");
// 대소문자 모두 체크
String partObjId = CommonUtils.checkNull(partRow.get("PART_OBJID"));
if("".equals(partObjId)) partObjId = CommonUtils.checkNull(partRow.get("part_objid"));
detailRow.put("PART_OBJID", partObjId);
detailRow.put("ROW_NUM", i + 1);
String partName = CommonUtils.checkNull(partRow.get("PART_NAME"));
if("".equals(partName)) partName = CommonUtils.checkNull(partRow.get("part_name"));
detailRow.put("PART_NAME", partName);
String spec = CommonUtils.checkNull(partRow.get("SPEC"));
if("".equals(spec)) spec = CommonUtils.checkNull(partRow.get("spec"));
detailRow.put("SPEC", spec);
// 수량 (대소문자 모두 체크)
Object qtyObj = partRow.get("QTY");
if(qtyObj == null) qtyObj = partRow.get("qty");
String qtyStr = CommonUtils.checkNull(qtyObj, "0").toString().replaceAll(",", "");
int qty = 0;
try { qty = (int)Double.parseDouble(qtyStr.equals("") ? "0" : qtyStr); } catch(Exception e) { qty = 0; }
detailRow.put("ORDER_QTY", qty);
// 단위 (대소문자 모두 체크)
String unit = CommonUtils.checkNull(partRow.get("UNIT"));
if("".equals(unit)) unit = CommonUtils.checkNull(partRow.get("unit"));
detailRow.put("UNIT", "".equals(unit) ? "0001400" : unit);
// 배송지
detailRow.put("DELIVERY_PLACE", "RPS");
// 단가 (대소문자 모두 체크)
Object priceObj = partRow.get("UNIT_PRICE");
if(priceObj == null) priceObj = partRow.get("unit_price");
String priceStr = CommonUtils.checkNull(priceObj, "0").toString().replaceAll(",", "");
int unitPrice = 0;
try { unitPrice = (int)Double.parseDouble(priceStr.equals("") ? "0" : priceStr); } catch(Exception e) { unitPrice = 0; }
detailRow.put("PARTNER_PRICE", unitPrice);
// 공급가액 = 수량 * 단가
detailRow.put("SUPPLY_UNIT_PRICE", qty * unitPrice);
// 비고 (대소문자 모두 체크)
String remark = CommonUtils.checkNull(partRow.get("REMARK"));
if("".equals(remark)) remark = CommonUtils.checkNull(partRow.get("remark"));
detailRow.put("REMARK", remark);
detailList.add(detailRow);
}
}
}
}else{
info = purchaseOrderService.getPurchaseOrderMasterInfo(request, paramMap);
paramMap.put("MULTI_MASTER_OBJID", objId);
detailList = commonService.selectList("purchaseOrder.getPURCHASE_ORDER_PART", request, paramMap);
}
// 공급업체
code_map.put("partner_cd", commonService.bizMakeOptionList("", (String)info.get("PARTNER_OBJID"),"common.getClientMngSupplySelect"));
// 단위
Map param = new HashMap();
param.put("code","0001399");
code_map.put("unit_cd", commonService.getJqGridSelectBoxJsonData2("common.getCodeselect", param, "선택", "CODE", "NAME"));
// 결제조건
code_map.put("payment_terms_cd", commonService.bizMakeOptionList("0001074", (String)info.get("PAYMENT_TERMS"),"common.getCodeselect"));
// 납품장소
code_map.put("delivery_place_cd", commonService.bizMakeOptionList("0001146", (String)info.get("DELIVERY_PLACE"),"common.getCodeselect"));
request.setAttribute("oemInfo", oemInfo);
request.setAttribute("info", info);
request.setAttribute("gridDetailList", JsonUtil.ListToJson(detailList));
request.setAttribute("code_map", code_map);
request.setAttribute("objId", objId);
request.setAttribute("writer", writer);
request.setAttribute("writerName", writerName);
// 담당자 목록 (사원 목록)
Map userParam = new HashMap();
List userList = commonService.selectList("common.getUserList", request, userParam);
request.setAttribute("userList", userList);
}catch(Exception e){
e.printStackTrace();
}
if(CommonUtils.checkNull(paramMap.get("actType")).equals("DOWN")){
request.setAttribute("detailList", detailList);
Map apprParam = new HashMap();
apprParam.put("objId", objId);
request.setAttribute("apprList", commonService.getApprovalLine(apprParam));
return "/purchaseOrder/purchaseOrderFormPopup_generalDOWN";
}else{
return "/purchaseOrder/purchaseOrderFormPopup_general";
}
}
/**
* 일반 발주서 저장
*/
@RequestMapping("/purchaseOrder/purchaseOrderFormPopup_generalSave.do")
@ResponseBody
public Map purchaseOrderFormPopup_generalSave(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
Map resultMap = new HashMap();
try{
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("WRITER", CommonUtils.checkNull(person.getUserId()));
paramMap.put("FORM_TYPE", "general");
purchaseOrderService.savePurchaseOrder_new(request, paramMap);
CommonUtils.setReqResult(request, "", "S", null, resultMap);
}catch(Exception e){
e.printStackTrace();
CommonUtils.setReqResult(request, "", "F", e, resultMap);
}
return resultMap;
}
/**
* 외주가공 발주서 양식 팝업
*/
@RequestMapping("/purchaseOrder/purchaseOrderFormPopup_outsourcing.do")
public String purchaseOrderFormPopup_outsourcing(HttpSession session, HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map code_map = new HashMap();
Map info = new HashMap();
List detailList = new ArrayList();
HashMap oemInfo = new HashMap();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String objId = CommonUtils.checkNull(paramMap.get("PURCHASE_ORDER_MASTER_OBJID"), "");
String proposalObjId = CommonUtils.checkNull(paramMap.get("PROPOSAL_OBJID"), "");
String writer = CommonUtils.checkNull(person.getUserId());
String writerName = person.getUserName();
try{
oemInfo = (HashMap)adminService.getSupMngInfo("-1130201617"); // RPS
if(objId.equals("")){
request.setAttribute("actType", "C"); // 등록 Create
objId = CommonUtils.createObjId();
info.put("actType", "C");
info.put("OBJID", objId);
info.put("PROPOSAL_OBJID", proposalObjId);
info.put("SALES_MNG_USER_ID", writer);
// 발주번호 자동생성
info.put("PURCHASE_ORDER_NO", "RPS25-" + new java.text.SimpleDateFormat("MMdd").format(new java.util.Date()) + "-01");
// 발주일자 기본값 오늘
info.put("ORDER_DATE", new java.text.SimpleDateFormat("yyyy년 MM월 dd일").format(new java.util.Date()));
// 담당자 정보 기본값
info.put("MANAGER_NAME", "안동윤");
info.put("MANAGER_POSITION", "팀장");
info.put("MANAGER_PHONE", "010-2313-2702");
info.put("MANAGER_EMAIL", "ady1225@rps-korea.com");
info.put("MANAGER_NAME2", "서동민");
info.put("MANAGER_POSITION2", "주임");
info.put("MANAGER_PHONE2", "010-9538-9513");
info.put("MANAGER_EMAIL2", "sdm0927@rps-korea.com");
// 품의서(PROPOSAL) 품목 데이터 조회하여 그리드에 자동 세팅
if(!"".equals(proposalObjId)){
Map proposalParam = new HashMap();
proposalParam.put("PROPOSAL_OBJID", proposalObjId);
List proposalPartList = commonService.selectList("salesMng.getProposalPartList", request, proposalParam);
if(proposalPartList != null && proposalPartList.size() > 0){
// 품의서 품목을 외주가공 발주서 그리드 형식으로 변환
for(int i = 0; i < proposalPartList.size(); i++){
Map partRow = (Map)proposalPartList.get(i);
Map detailRow = new HashMap();
detailRow.put("OBJID", "");
// 대소문자 모두 체크
String partObjId = CommonUtils.checkNull(partRow.get("PART_OBJID"));
if("".equals(partObjId)) partObjId = CommonUtils.checkNull(partRow.get("part_objid"));
detailRow.put("PART_OBJID", partObjId);
detailRow.put("ROW_NUM", i + 1);
String vendorName = CommonUtils.checkNull(partRow.get("VENDOR_NAME"));
if("".equals(vendorName)) vendorName = CommonUtils.checkNull(partRow.get("vendor_name"));
detailRow.put("VENDOR_NAME", vendorName);
String partName = CommonUtils.checkNull(partRow.get("PART_NAME"));
if("".equals(partName)) partName = CommonUtils.checkNull(partRow.get("part_name"));
detailRow.put("PART_NAME", partName);
String spec = CommonUtils.checkNull(partRow.get("SPEC"));
if("".equals(spec)) spec = CommonUtils.checkNull(partRow.get("spec"));
detailRow.put("SPEC", spec);
// 수량 (대소문자 모두 체크)
Object qtyObj = partRow.get("QTY");
if(qtyObj == null) qtyObj = partRow.get("qty");
String qtyStr = CommonUtils.checkNull(qtyObj, "0").toString().replaceAll(",", "");
int qty = 0;
try { qty = (int)Double.parseDouble(qtyStr.equals("") ? "0" : qtyStr); } catch(Exception e) { qty = 0; }
detailRow.put("ORDER_QTY", qty);
// 단위 (대소문자 모두 체크)
String unit = CommonUtils.checkNull(partRow.get("UNIT"));
if("".equals(unit)) unit = CommonUtils.checkNull(partRow.get("unit"));
detailRow.put("UNIT", "".equals(unit) ? "0001400" : unit);
// 단가 (대소문자 모두 체크)
Object priceObj = partRow.get("UNIT_PRICE");
if(priceObj == null) priceObj = partRow.get("unit_price");
String priceStr = CommonUtils.checkNull(priceObj, "0").toString().replaceAll(",", "");
int unitPrice = 0;
try { unitPrice = (int)Double.parseDouble(priceStr.equals("") ? "0" : priceStr); } catch(Exception e) { unitPrice = 0; }
detailRow.put("PARTNER_PRICE", unitPrice);
// 합계 = 수량 * 단가
detailRow.put("SUPPLY_UNIT_PRICE", qty * unitPrice);
detailRow.put("WORK_ORDER_NO", "");
String partNo = CommonUtils.checkNull(partRow.get("PART_NO"));
if("".equals(partNo)) partNo = CommonUtils.checkNull(partRow.get("part_no"));
detailRow.put("PART_NO", partNo);
String deliveryDate = CommonUtils.checkNull(partRow.get("DELIVERY_REQUEST_DATE"));
if("".equals(deliveryDate)) deliveryDate = CommonUtils.checkNull(partRow.get("delivery_request_date"));
detailRow.put("DELIVERY_REQUEST_DATE", deliveryDate);
String remark = CommonUtils.checkNull(partRow.get("REMARK"));
if("".equals(remark)) remark = CommonUtils.checkNull(partRow.get("remark"));
detailRow.put("REMARK", remark);
detailList.add(detailRow);
}
}
}
}else{
info = purchaseOrderService.getPurchaseOrderMasterInfo(request, paramMap);
paramMap.put("MULTI_MASTER_OBJID", objId);
detailList = commonService.selectList("purchaseOrder.getPURCHASE_ORDER_PART", request, paramMap);
}
// 공급업체
code_map.put("partner_cd", commonService.bizMakeOptionList("", (String)info.get("PARTNER_OBJID"),"common.getClientMngSupplySelect"));
// 단위
Map param = new HashMap();
param.put("code","0001399");
code_map.put("unit_cd", commonService.getJqGridSelectBoxJsonData2("common.getCodeselect", param, "선택", "CODE", "NAME"));
request.setAttribute("oemInfo", oemInfo);
request.setAttribute("info", info);
request.setAttribute("gridDetailList", JsonUtil.ListToJson(detailList));
request.setAttribute("code_map", code_map);
request.setAttribute("objId", objId);
request.setAttribute("writer", writer);
request.setAttribute("writerName", writerName);
}catch(Exception e){
e.printStackTrace();
}
if(CommonUtils.checkNull(paramMap.get("actType")).equals("DOWN")){
request.setAttribute("detailList", detailList);
Map apprParam = new HashMap();
apprParam.put("objId", objId);
request.setAttribute("apprList", commonService.getApprovalLine(apprParam));
return "/purchaseOrder/purchaseOrderFormPopup_outsourcingDOWN";
}else{
return "/purchaseOrder/purchaseOrderFormPopup_outsourcing";
}
}
/**
* 외주가공 발주서 저장
*/
@RequestMapping("/purchaseOrder/purchaseOrderFormPopup_outsourcingSave.do")
@ResponseBody
public Map purchaseOrderFormPopup_outsourcingSave(HttpSession session, HttpServletRequest request, @RequestParam Map paramMap){
Map resultMap = new HashMap();
try{
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
paramMap.put("WRITER", CommonUtils.checkNull(person.getUserId()));
paramMap.put("FORM_TYPE", "outsourcing");
purchaseOrderService.savePurchaseOrder_new(request, paramMap);
CommonUtils.setReqResult(request, "", "S", null, resultMap);
}catch(Exception e){
e.printStackTrace();
CommonUtils.setReqResult(request, "", "F", e, resultMap);
}
return resultMap;
}
/**
* 자재관리 - 발주관리 -발주서 저장
*/