m-bom 버전 이력 팝업 & 총단가 저장 안되는 오류 수정 등...
This commit is contained in:
@@ -1606,4 +1606,28 @@ public class ProductionPlanningController extends BaseService {
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* M-BOM 이력 팝업
|
||||
*/
|
||||
@RequestMapping("/productionplanning/mBomHistoryPopup.do")
|
||||
public String mBomHistoryPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
||||
try {
|
||||
String mbomHeaderObjid = CommonUtils.checkNull(paramMap.get("mbomHeaderObjid"));
|
||||
|
||||
if(!"".equals(mbomHeaderObjid)) {
|
||||
// M-BOM 헤더 정보 조회
|
||||
paramMap.put("mbomHeaderObjid", mbomHeaderObjid);
|
||||
Map<String, Object> mbomHeader = commonService.selectOne("productionplanning.getMbomHeaderByObjid", request, paramMap);
|
||||
request.setAttribute("mbomHeader", mbomHeader);
|
||||
|
||||
// M-BOM 이력 조회
|
||||
List<Map<String, Object>> historyList = commonService.selectList("productionplanning.getMbomHistoryList", request, paramMap);
|
||||
request.setAttribute("historyList", historyList);
|
||||
}
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "/productionplanning/mBomHistoryPopup";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2922,8 +2922,8 @@
|
||||
WHERE CIS.ITEM_OBJID = CI.OBJID
|
||||
AND UPPER(CIS.STATUS) = 'ACTIVE'
|
||||
AND CIS.SERIAL_NO IS NOT NULL) AS SERIAL_NO,
|
||||
-- 수량: CONTRACT_ITEM의 수량
|
||||
COALESCE(CI.ORDER_QUANTITY::numeric, PM.QUANTITY::numeric, 0) AS QUANTITY,
|
||||
-- 수량: PROJECT_MGMT 우선
|
||||
COALESCE(PM.QUANTITY::numeric, CI.ORDER_QUANTITY::numeric, 0) AS QUANTITY,
|
||||
-- 요청납기: CONTRACT_ITEM 우선
|
||||
COALESCE(CI.DUE_DATE, PM.DUE_DATE, CM.req_del_date) AS REQ_DEL_DATE,
|
||||
-- 고객요청사항: CONTRACT_ITEM에서 가져옴
|
||||
@@ -3805,7 +3805,7 @@
|
||||
<if test="proposalDate != null">
|
||||
PROPOSAL_DATE,
|
||||
</if>
|
||||
STATUS, WRITER, REGDATE, REMARK
|
||||
STATUS, WRITER, REGDATE, EDITER, EDIT_DATE, REMARK
|
||||
) VALUES (
|
||||
#{objid}, #{mbomHeaderObjid}, #{parentObjid}, #{childObjid}, #{seq}, #{level},
|
||||
#{partObjid}, #{partNo}, #{partName}, #{qty}, #{unit},
|
||||
@@ -3818,7 +3818,7 @@
|
||||
<if test="proposalDate != null">
|
||||
#{proposalDate},
|
||||
</if>
|
||||
'ACTIVE', #{sessionUserId}, NOW(), #{remark}
|
||||
'ACTIVE', #{sessionUserId}, NOW(), #{sessionUserId}, NOW(), #{remark}
|
||||
)
|
||||
</insert>
|
||||
|
||||
@@ -3884,6 +3884,41 @@
|
||||
ORDER BY REGDATE DESC, MBOM_NO
|
||||
</select>
|
||||
|
||||
<!-- M-BOM 헤더 정보 조회 (OBJID로) -->
|
||||
<select id="getMbomHeaderByObjid" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
||||
SELECT
|
||||
OBJID,
|
||||
MBOM_NO,
|
||||
PART_NO,
|
||||
PART_NAME,
|
||||
SOURCE_BOM_TYPE,
|
||||
TO_CHAR(REGDATE, 'YYYY-MM-DD HH24:MI:SS') AS REGDATE,
|
||||
WRITER,
|
||||
TO_CHAR(EDIT_DATE, 'YYYY-MM-DD HH24:MI:SS') AS EDIT_DATE,
|
||||
EDITER,
|
||||
STATUS
|
||||
FROM MBOM_HEADER
|
||||
WHERE OBJID::VARCHAR = #{mbomHeaderObjid}
|
||||
</select>
|
||||
|
||||
<!-- M-BOM 이력 조회 -->
|
||||
<select id="getMbomHistoryList" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
||||
SELECT
|
||||
MH.OBJID,
|
||||
MH.MBOM_HEADER_OBJID,
|
||||
MH.CHANGE_TYPE,
|
||||
MH.CHANGE_DESCRIPTION,
|
||||
TO_CHAR(MH.CHANGE_DATE, 'YYYY-MM-DD HH24:MI:SS') AS CHANGE_DATE,
|
||||
MH.CHANGE_USER,
|
||||
COALESCE(
|
||||
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = MH.CHANGE_USER LIMIT 1),
|
||||
MH.CHANGE_USER
|
||||
) AS CHANGE_USER_NAME
|
||||
FROM MBOM_HISTORY MH
|
||||
WHERE MH.MBOM_HEADER_OBJID::VARCHAR = #{mbomHeaderObjid}
|
||||
ORDER BY MH.CHANGE_DATE DESC
|
||||
</select>
|
||||
|
||||
<!-- M-BOM 상세 리스트 조회 (이력용) -->
|
||||
<select id="getMbomDetailList" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
||||
SELECT
|
||||
|
||||
@@ -753,8 +753,8 @@ VALUES
|
||||
#{SALES_BOM_QTY_OBJID },
|
||||
#{PART_OBJID },
|
||||
#{SALES_REQUEST_MASTER_OBJID},
|
||||
#{QTY },
|
||||
#{ORG_QTY },
|
||||
COALESCE(NULLIF(TRIM(#{QTY}::TEXT), '')::NUMERIC, 0),
|
||||
COALESCE(NULLIF(TRIM(#{ORG_QTY}::TEXT), '')::NUMERIC, 0),
|
||||
#{PARTNER_OBJID },
|
||||
#{PARTNER_PRICE },
|
||||
#{DELIVERY_REQUEST_DATE },
|
||||
@@ -768,8 +768,8 @@ VALUES
|
||||
SALES_BOM_QTY_OBJID = #{SALES_BOM_QTY_OBJID },
|
||||
PART_OBJID = #{PART_OBJID },
|
||||
SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID},
|
||||
QTY = #{QTY },
|
||||
ORG_QTY = #{ORG_QTY },
|
||||
QTY = COALESCE(NULLIF(TRIM(#{QTY}::TEXT), '')::NUMERIC, 0),
|
||||
ORG_QTY = COALESCE(NULLIF(TRIM(#{ORG_QTY}::TEXT), '')::NUMERIC, 0),
|
||||
PARTNER_OBJID = #{PARTNER_OBJID },
|
||||
PARTNER_PRICE = #{PARTNER_PRICE },
|
||||
DELIVERY_REQUEST_DATE = #{DELIVERY_REQUEST_DATE },
|
||||
|
||||
@@ -1867,10 +1867,32 @@ public class PurchaseOrderService {
|
||||
partParam.put("OBJID", CommonUtils.createObjId());
|
||||
partParam.put("PURCHASE_ORDER_MASTER_OBJID", purchaseOrderMasterObjid);
|
||||
partParam.put("PART_OBJID", CommonUtils.checkNull((String) partMap.get("part_objid")));
|
||||
partParam.put("QTY", CommonUtils.checkNull(partMap.get("qty"), "0"));
|
||||
// ORDER_QTY는 쿼리에서 PO_QTY 우선으로 계산된 값 사용
|
||||
partParam.put("ORDER_QTY", CommonUtils.checkNull(partMap.get("order_qty"), "0"));
|
||||
partParam.put("PARTNER_PRICE", CommonUtils.checkNull(partMap.get("partner_price"), "0"));
|
||||
|
||||
// 수량 처리
|
||||
String qtyStr = CommonUtils.checkNull(partMap.get("qty"), "0");
|
||||
String orderQtyStr = CommonUtils.checkNull(partMap.get("order_qty"), "0");
|
||||
|
||||
partParam.put("QTY", qtyStr);
|
||||
partParam.put("ORDER_QTY", orderQtyStr);
|
||||
|
||||
// 단가 정보
|
||||
String partnerPrice = CommonUtils.checkNull(partMap.get("partner_price"), "0");
|
||||
String totalPrice = CommonUtils.checkNull(partMap.get("total_price"), "0");
|
||||
|
||||
partParam.put("PARTNER_PRICE", partnerPrice);
|
||||
|
||||
// 총액 계산 (품의서에서 가져온 TOTAL_PRICE 사용, 없으면 계산)
|
||||
if ("0".equals(totalPrice) || "".equals(totalPrice)) {
|
||||
try {
|
||||
double orderQty = Double.parseDouble(orderQtyStr);
|
||||
double price = Double.parseDouble(partnerPrice);
|
||||
totalPrice = String.valueOf((long)(orderQty * price));
|
||||
} catch (NumberFormatException e) {
|
||||
totalPrice = "0";
|
||||
}
|
||||
}
|
||||
partParam.put("SUPPLY_UNIT_PRICE", totalPrice);
|
||||
|
||||
partParam.put("PART_NO", CommonUtils.checkNull((String) partMap.get("part_no")));
|
||||
partParam.put("PART_NAME", CommonUtils.checkNull((String) partMap.get("part_name")));
|
||||
partParam.put("SPEC", CommonUtils.checkNull((String) partMap.get("spec")));
|
||||
|
||||
Reference in New Issue
Block a user