생산계획&생산실적 등록일, 등록자 추가 #127

Merged
hjjeong merged 1 commits from V2026012702 into main 2026-01-28 08:51:14 +00:00
4 changed files with 89 additions and 9 deletions

View File

@@ -8,6 +8,21 @@
Map info = (HashMap)(request.getAttribute("resultMap"));
String actionType = (String)request.getAttribute("actionType");
boolean isNew = "regist".equals(actionType);
// 등록일: 새 등록이면 오늘 날짜, 수정이면 저장된 값
String regDate = "";
String writerName = "";
String writerId = "";
if(isNew) {
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
regDate = sdf.format(new java.util.Date());
writerName = connectUserName;
writerId = connectUserId;
} else if(info != null) {
regDate = CommonUtils.nullToEmpty((String)info.get("regdate"));
writerName = CommonUtils.nullToEmpty((String)info.get("writer_name"));
writerId = CommonUtils.nullToEmpty((String)info.get("writer"));
}
%>
<!DOCTYPE html>
<html>
@@ -749,7 +764,20 @@ function fn_closeSeqPopup() {
</td>
</tr>
<!-- 5행: 고객사 요청사항 -->
<!-- 5행: 등록일, 등록자 -->
<tr>
<td class="input_title"><label>등록일</label></td>
<td>
<input type="text" name="REG_DATE" id="REG_DATE" value="<%=regDate%>" class="readonly-field" readonly style="width:100%;">
</td>
<td class="input_title"><label>등록자</label></td>
<td>
<input type="hidden" name="WRITER" id="WRITER" value="<%=writerId%>">
<input type="text" name="WRITER_NAME" id="WRITER_NAME" value="<%=writerName%>" class="readonly-field" readonly style="width:100%;">
</td>
</tr>
<!-- 6행: 고객사 요청사항 -->
<tr>
<td class="input_title"><label>고객사 요청사항</label></td>
<td colspan="5">

View File

@@ -299,7 +299,25 @@ var columns = [
var objid = fnc_checkNull(cell.getData().OBJID);
fn_WBSRegist(objid);
}
}
},
// 19. 등록자
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 80,
title: '등록자',
field: 'WRITER_NAME'
},
// 11. 등록일
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 80,
title: '등록일',
field: 'REGDATE_TITLE'
},
];
// 검색 함수
@@ -337,7 +355,7 @@ function fn_createProdPlan() {
var checkedRows = getCheckedRows();
var popup_width = 900;
var popup_height = 400;
var popup_height = 440;
var url = "/productionplanning/prodPlanFormPopup.do";
if(checkedRows.length === 1) {
@@ -516,8 +534,19 @@ function getCheckedRows() {
<td><label>S/N</label></td>
<td><input type="text" name="search_serial_no" id="search_serial_no" style="" autocomplete="off"></td>
<td></td>
<td></td>
<td><label>등록자</label></td>
<td>
<select name="search_writer" id="search_writer" class="select2" style="">
<option value="">전체</option>
${code_map.writer}
</select>
</td>
<td><label>등록일</label></td>
<td>
<input type="text" name="search_regdate_from" id="search_regdate_from" class="date_icon" style="width:110px;" autocomplete="off">~
<input type="text" name="search_regdate_to" id="search_regdate_to" class="date_icon" style="width:110px;" autocomplete="off">
</td>
</tr>
</table>
</div>

View File

@@ -1779,6 +1779,9 @@ public class ProductionPlanningController extends BaseService {
// 고객사 (SUPPLY_MNG + CLIENT_MNG 통합)
code_map.put("customer_cd", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")), "common.getsupplyselect"));
// 등록자
code_map.put("writer", commonService.bizMakeOptionList("", "", "common.getUserselect"));
request.setAttribute("code_map", code_map);
}catch(Exception e){
e.printStackTrace();

View File

@@ -4525,7 +4525,11 @@
COALESCE((SELECT SUM(RESULT_QTY) FROM PRODUCTION_RESULT PR WHERE PR.PROJECT_OBJID = PM.OBJID::VARCHAR AND PR.RESULT_TYPE = 'SHIP_WAIT' AND PR.STATUS = 'active'), 0) AS SHIP_WAIT_QTY,
'' AS EQUIPMENT_WBS,
PP.OBJID AS PROD_PLAN_OBJID,
PM.REGDATE AS SORT_DATE
PM.REGDATE AS SORT_DATE,
PP.WRITER,
USER_NAME(PP.WRITER) AS WRITER_NAME,
TO_CHAR(PP.REGDATE, 'YYYY-MM-DD') AS REGDATE_TITLE,
PP.REGDATE
FROM
PROJECT_MGMT PM
LEFT JOIN CONTRACT_MGMT CM ON PM.CONTRACT_OBJID = CM.OBJID
@@ -4575,7 +4579,11 @@
COALESCE((SELECT SUM(RESULT_QTY) FROM PRODUCTION_RESULT PR WHERE PR.PROJECT_OBJID = PP.OBJID::VARCHAR AND PR.RESULT_TYPE = 'SHIP_WAIT' AND PR.STATUS = 'active'), 0) AS SHIP_WAIT_QTY,
'' AS EQUIPMENT_WBS,
PP.OBJID AS PROD_PLAN_OBJID,
PP.REGDATE AS SORT_DATE
PP.REGDATE AS SORT_DATE,
PP.WRITER,
USER_NAME(PP.WRITER) AS WRITER_NAME,
TO_CHAR(PP.REGDATE, 'YYYY-MM-DD') AS REGDATE_TITLE,
PP.REGDATE
FROM PRODUCTION_PLAN PP
WHERE PP.STATUS = 'active'
AND (PP.PROJECT_OBJID IS NULL OR PP.PROJECT_OBJID = '')
@@ -4627,6 +4635,17 @@
<if test="search_serial_no != null and search_serial_no != ''">
AND UPPER(T.SERIAL_NO) LIKE '%' || UPPER(#{search_serial_no}) || '%'
</if>
<!-- 등록자 검색 -->
<if test="search_writer != null and search_writer != ''">
AND T.WRITER = #{search_writer}
</if>
<!-- 등록일 검색 -->
<if test="search_regdate_from != null and search_regdate_from != ''">
AND T.REGDATE >= TO_DATE(#{search_regdate_from}, 'YYYY-MM-DD')
</if>
<if test="search_regdate_to != null and search_regdate_to != ''">
AND T.REGDATE &lt;= TO_DATE(#{search_regdate_to}, 'YYYY-MM-DD')
</if>
ORDER BY T.SORT_DATE DESC, T.PROJECT_NO DESC
</select>
@@ -4699,8 +4718,9 @@
PP.TOTAL_PROD_QTY,
PP.CUSTOMER_REQUEST,
PP.STATUS,
PP.REGDATE,
PP.WRITER
TO_CHAR(PP.REGDATE, 'YYYY-MM-DD') AS REGDATE,
PP.WRITER,
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PP.WRITER) AS WRITER_NAME
FROM PRODUCTION_PLAN PP
WHERE PP.OBJID = #{objid}
</select>