Merge pull request '프로젝트관리 초기커밋' (#4) from V2025101701 into main
Reviewed-on: #4
This commit was merged in pull request #4.
This commit is contained in:
@@ -3909,6 +3909,18 @@
|
||||
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
||||
,CODE_NAME(AREA_CD) AS AREA_NAME
|
||||
,PROJECT_NAME
|
||||
,(SELECT CODE_NAME(O.PAID_TYPE) FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS FREE_OF_CHARGE
|
||||
,(SELECT O.QUANTITY FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS CONTRACT_QTY
|
||||
,(SELECT O.PART_NO FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS PRODUCT_ITEM_CODE
|
||||
,(SELECT O.PART_NAME FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS PRODUCT_ITEM_NAME
|
||||
,(SELECT O.SERIAL_NO FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS SERIAL_NO
|
||||
영업관리_주문서관리_수주등록 ,EBOM_STATUS
|
||||
,MBOM_STATUS
|
||||
,(SELECT O.PURCHASE_DATE FROM PURCHASE_ORDER_MASTER AS O WHERE O.CONTRACT_MGMT_OBJID = T.CONTRACT_OBJID LIMIT 1) AS ORDER_DATE
|
||||
,RECEIVING_RATE
|
||||
,PRODUCTION_TEAM_12
|
||||
,PRODUCTION_TEAM_3
|
||||
,(SELECT O.SHIPPING_DATE::TEXT FROM SHIPMENT_LOG AS O WHERE O.TARGET_OBJID = T.CONTRACT_OBJID LIMIT 1) AS SHIPMENT_DATE
|
||||
,(((SELECT SUM(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
||||
+(SELECT SUM(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
||||
+(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
||||
|
||||
257
WebContent/WEB-INF/view/project/projectMgmtWbsList3.jsp
Normal file
257
WebContent/WEB-INF/view/project/projectMgmtWbsList3.jsp
Normal file
@@ -0,0 +1,257 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||
<%@ page import="com.pms.common.utils.*"%>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@ page import="java.util.*" %>
|
||||
<%@include file="/init.jsp"%>
|
||||
<%
|
||||
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
||||
String connector = person.getUserId();
|
||||
%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title><%=Constants.SYSTEM_NAME%></title>
|
||||
|
||||
<!-- //JSTL 페이징 변수선언 -->
|
||||
<c:set var="totalCount" value="${empty TOTAL_COUNT?0:TOTAL_COUNT}" />
|
||||
<c:set var="maxPage" value="${empty MAX_PAGE_SIZE?1:MAX_PAGE_SIZE}" />
|
||||
<c:set var="nPage" value="${empty param.page?1:param.page}" />
|
||||
<c:set var="pageIndex" value="${(nPage-1)/10}" />
|
||||
<c:set var="nextPage" value="${empty NEXT_PAGE?1:NEXT_PAGE}" />
|
||||
<c:set var="prevPage" value="${empty PREV_PAGE?1:PREV_PAGE}" />
|
||||
<c:set var="now" value="<%=new java.util.Date() %>" />
|
||||
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
|
||||
<c:set var="connector" value="<%=connector %>" />
|
||||
|
||||
<style>
|
||||
.select2-selection__choice {
|
||||
font-size: 11px;
|
||||
background-color: #fff !important;
|
||||
border: none !important;
|
||||
margin-right: 0px !important;
|
||||
}
|
||||
.select2-selection__choice__remove {
|
||||
display: contents !important;
|
||||
}
|
||||
.select2-container .select2-selection--multiple {
|
||||
min-height: 20px !important;
|
||||
}
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice {
|
||||
margin-top: 3.5px !important;
|
||||
}
|
||||
.select2-selection__rendered {
|
||||
height: 18px !important;
|
||||
}
|
||||
.select2-container .select2-selection--multiple .select2-selection__rendered {
|
||||
overflow: auto !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function(){
|
||||
$('.select2').select2();
|
||||
//$('#Year' ).select2();
|
||||
|
||||
$("#btnSearch").click(function(){
|
||||
$("#page").val("1");
|
||||
fn_search();
|
||||
});
|
||||
$("#btnApply").click(function(){
|
||||
//fn_apply("","regist");
|
||||
});
|
||||
|
||||
fn_search();
|
||||
});
|
||||
|
||||
var columns = [
|
||||
{title:'CATEGORY_CD' ,field:'CATEGORY_CD' ,visible:false},
|
||||
{headerHozAlign : 'center', hozAlign : 'left', width : '100', title : '프로젝트번호', field : 'PROJECT_NO' ,frozen:true,
|
||||
formatter:fnc_createGridAnchorTag,
|
||||
cellClick:function(e, cell){
|
||||
var objid = fnc_checkNull(cell.getData().OBJID);
|
||||
openProjectFormPopUp(objid);
|
||||
}
|
||||
},
|
||||
|
||||
{title:"프로젝트정보", headerHozAlign:'center', //고객정보
|
||||
columns:[
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '주문유형', field : 'CATEGORY_NAME' },
|
||||
{headerHozAlign : 'center', hozAlign : 'left', width : '90', title : '제품구분', field : 'PRODUCT_NAME' },
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '국내/해외', field : 'AREA_NAME' },
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '접수일', field : 'REG_DATE' },
|
||||
{headerHozAlign : 'center', hozAlign : 'left', width : '120', title : '고객사', field : 'CUSTOMER_NAME' },
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '유/무상', field : 'FREE_OF_CHARGE'},
|
||||
{headerHozAlign : 'center', hozAlign : 'left', width : '150', title : '품번', field : 'PRODUCT_ITEM_CODE' },
|
||||
{headerHozAlign : 'center', hozAlign : 'left', width : '150', title : '품명', field : 'PRODUCT_ITEM_NAME' },
|
||||
{headerHozAlign : 'center', hozAlign : 'left', width : '150', title : 'S/N', field : 'SERIAL_NO' },
|
||||
{headerHozAlign : 'center', hozAlign : 'right', width : '90', title : '수주수량', field : 'CONTRACT_QTY' },
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '요청납기', field : 'REQ_DEL_DATE' }
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
title:'설계', headerHozAlign:'center',
|
||||
columns:[
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'E-BOM', field : 'EBOM_STATUS'}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
title:'생산관리', headerHozAlign:'center',
|
||||
columns:[
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'M-BOM', field : 'MBOM_STATUS'}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
title:'구매', headerHozAlign:'center',
|
||||
columns:[
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '발주일', field : 'ORDER_DATE'},
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '입고율', field : 'RECEIVING_RATE'}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
title:'생산', headerHozAlign:'center',
|
||||
columns:[
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '제조1,2팀', field : 'PRODUCTION_TEAM_12'},
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '제조3팀', field : 'PRODUCTION_TEAM_3'}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
title:'출하', headerHozAlign:'center',
|
||||
columns:[
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '출하일', field : 'SHIPMENT_DATE'}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
//var grid;
|
||||
function fn_search(){
|
||||
var selectedValues = $("#project_no").val();
|
||||
|
||||
$('<input>').attr({
|
||||
type: 'hidden',
|
||||
name: 'project_nos',
|
||||
value: selectedValues
|
||||
}).appendTo('#form1');
|
||||
|
||||
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/project/projectMgmtWbsGridList.do", columns, false);
|
||||
}
|
||||
|
||||
//프로젝트의 form,detail 팝업을 보여준다.
|
||||
function openProjectFormPopUp(objId){
|
||||
var popup_width = 420;
|
||||
var popup_height = 350;
|
||||
var objId = objId;
|
||||
var params = "?OBJID="+objId+"&ACTION_TYPE=edit";
|
||||
var url = "/project/projectmodifyPopUp.do"+params;
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body class="<%--bodyNoScrollX--%>">
|
||||
<form name="form1" id="form1" action="" method="post">
|
||||
<div class="content-box">
|
||||
<div class="content-box-s">
|
||||
<div class="plm_menu_name_gdnsi" style="position:;">
|
||||
<h2 style="">
|
||||
<span>프로젝트관리_일정관리(WBS)3</span>
|
||||
</h2>
|
||||
<div class="btnArea">
|
||||
<input type="button" value="조회" class="plm_btns" id="btnSearch" name="btnSearch">
|
||||
</div>
|
||||
</div>
|
||||
<div id="plmSearchZon">
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="Year">년도</label></td>
|
||||
<td>
|
||||
<select name="Year" id="Year" class="select2" autocomplete="off">
|
||||
<option value="">선택</option>
|
||||
<c:forEach begin="${sysYear-4}" end="${sysYear}" var="req_year">
|
||||
<option value="${req_year}"${param.Year eq req_year ? 'selected':'' }>${req_year}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</td>
|
||||
|
||||
<td><label for="project_no">프로젝트번호</label></td>
|
||||
<td>
|
||||
<select name="project_no" id="project_no" style="width:300px;" class="select2" autocomplete="off" multiple="multiple">
|
||||
<option value="">선택</option>
|
||||
${code_map.project_no}
|
||||
</select>
|
||||
</td>
|
||||
|
||||
<td><label for="category_cd">계약구분</label></td>
|
||||
<td>
|
||||
<select name="category_cd" id="category_cd" style="" class="select2" autocomplete="off">
|
||||
<option value="">선택</option>
|
||||
${code_map.category_cd}
|
||||
</select>
|
||||
</td>
|
||||
|
||||
|
||||
<td><label for="customer_objid">고객사</label></td>
|
||||
<td>
|
||||
<select name="customer_objid" id="customer_objid" style="" class="select2" autocomplete="off">
|
||||
<option value="">선택</option>
|
||||
${code_map.customer_cd}
|
||||
</select>
|
||||
</td>
|
||||
|
||||
<td><label for="product">제품구분</label></td>
|
||||
<td>
|
||||
<select name="product" id="product" style="" class="select2" autocomplete="off">
|
||||
<option value="">선택</option>
|
||||
${code_map.product_cd}
|
||||
</select>
|
||||
</td>
|
||||
<td class="align_r">
|
||||
<label>예상납기일</label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="contract_start_date" id="contract_start_date" style="width:90px;" autocomplete="off" value="${param.contract_start_date}" class="date_icon">~
|
||||
<input type="text" name="contract_end_date" id="contract_end_date" style="width:90px;" autocomplete="off" value="${param.contract_end_date}" class="date_icon">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="align_r">
|
||||
<label>입고지</label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="location" id="location" style="width:150px;" autocomplete="off" value="${param.location}">
|
||||
</td>
|
||||
|
||||
<td class="align_r">
|
||||
<label>셋업지</label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="setup" id="setup" style="width:150px;" autocomplete="off" value="${param.setup}">
|
||||
</td>
|
||||
|
||||
<td><label for="pm_user_id">PM</label></td>
|
||||
<td>
|
||||
<select name="pm_user_id" id="pm_user_id" style="" class="select2" autocomplete="off">
|
||||
<option value="">선택</option>
|
||||
${code_map.pm_user_id}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -47,7 +47,16 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
var columns = [
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '120', title : '프로젝트번호', field : 'PROJECT_NO'},
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '120', title : '영업번호', field : 'PROJECT_NO', frozen : true,
|
||||
formatter: fnc_createGridAnchorTag,
|
||||
cellClick: function(e, cell){
|
||||
var rowData = cell.getData();
|
||||
var popup_width = 600;
|
||||
var popup_height = 400;
|
||||
var url = "/salesMgmt/salesRegForm.do?orderNo=" + rowData.PROJECT_NO + "&saleNo=" + (rowData.SALE_NO || '');
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
}
|
||||
},
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '주문유형', field : 'ORDER_TYPE'},
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '제품구분', field : 'PRODUCT_TYPE'},
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '국내/해외', field : 'NATION'},
|
||||
|
||||
@@ -46,8 +46,10 @@
|
||||
});
|
||||
|
||||
function fn_openSaleRegPopup(orderNo, saleNo){
|
||||
var popup_width = 600;
|
||||
var popup_height = 400;
|
||||
var url = "/salesMgmt/salesRegForm.do?orderNo=" + orderNo + "&saleNo=" + saleNo;
|
||||
window.open(url, "", "width=600, height=400, menubars=no, scrollbars=yes, resizable=yes");
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
}
|
||||
|
||||
function fn_FileRegist(objId, docType, docTypeName){
|
||||
@@ -64,7 +66,13 @@
|
||||
<script type="text/javascript">
|
||||
// 새로운 테이블 구조에 맞게 컬럼 정의 수정
|
||||
var columns = [
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '120', title : '프로젝트번호', field : 'PROJECT_NO'},
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '120', title : '영업번호', field : 'PROJECT_NO', frozen : true,
|
||||
formatter: fnc_createGridAnchorTag,
|
||||
cellClick: function(e, cell){
|
||||
var rowData = cell.getData();
|
||||
fn_openSaleRegPopup(rowData.PROJECT_NO, rowData.SALE_NO);
|
||||
}
|
||||
},
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '주문유형', field : 'ORDER_TYPE'},
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '제품구분', field : 'PRODUCT_TYPE'},
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '국내/해외', field : 'NATION'},
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
--success-color: #34a853;
|
||||
--danger-color: #ea4335;
|
||||
--warning-color: #fbbc04;
|
||||
--background: #f5f5f5;
|
||||
--background: #ffffff;
|
||||
--surface: #ffffff;
|
||||
--border-color: #dadce0;
|
||||
--text-primary: #202124;
|
||||
@@ -936,25 +936,6 @@ div.plm_menu_name h2 span,
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
/* 다크모드 지원 (선택사항) */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--background: #0f172a;
|
||||
--surface: #1e293b;
|
||||
--border-color: #334155;
|
||||
--text-primary: #f1f5f9;
|
||||
--text-secondary: #94a3b8;
|
||||
}
|
||||
|
||||
.input_title {
|
||||
background: #1e293b;
|
||||
}
|
||||
|
||||
.btn_wrap {
|
||||
background: #1e293b;
|
||||
}
|
||||
}
|
||||
|
||||
/* 드래그앤드롭 영역 스타일 */
|
||||
.dropzone {
|
||||
background: #f8fafc;
|
||||
|
||||
@@ -3220,4 +3220,56 @@ public class ProjectController {
|
||||
|
||||
return "/project/wbsTaskProductSetupFormPopUp";
|
||||
}
|
||||
|
||||
/**
|
||||
* 프로젝트 진행 현황
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/project/projectMgmtWbsList3.do")
|
||||
public String projectMgmtWbsList3(HttpServletRequest request, @RequestParam Map paramMap){
|
||||
//List list = service.getProjectMgntList(request,paramMap);
|
||||
Map code_map = new HashMap();
|
||||
try{
|
||||
|
||||
//String bizMakeOptionList(String code_id, String selValue, String sql_id)
|
||||
|
||||
//구분
|
||||
code_map.put("category_cd" , commonService.bizMakeOptionList("0000167", CommonUtils.nullToEmpty((String)paramMap.get("category_cd")) , "common.getCodeselect"));
|
||||
|
||||
//고객사
|
||||
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")),"common.getsupplyselect"));
|
||||
|
||||
//당사프로젟트번호
|
||||
code_map.put("project_no",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("project_no")),"common.getCusProjectNoList"));
|
||||
|
||||
//제품구분
|
||||
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product")),"common.getCodeselect")); //공장
|
||||
|
||||
//진행상황
|
||||
code_map.put("status_cd" , commonService.bizMakeOptionList("0000932", CommonUtils.nullToEmpty((String)paramMap.get("status_cd")) , "common.getCodeselect"));
|
||||
|
||||
//결과
|
||||
code_map.put("result_cd", commonService.bizMakeOptionList("0000963", CommonUtils.nullToEmpty((String)paramMap.get("result_cd")), "common.getCodeselect"));
|
||||
|
||||
//PM
|
||||
code_map.put("pm_user_id", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("pm_user_id")), "common.getUserselect")); //구매 PM
|
||||
|
||||
request.setAttribute("code_map",code_map);
|
||||
|
||||
request.setAttribute("cu01_file", Constants.CUSTOMER_CODE01);
|
||||
request.setAttribute("cu02_file", Constants.CUSTOMER_CODE02);
|
||||
//request.setAttribute("LIST", list);
|
||||
|
||||
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
|
||||
String writer = CommonUtils.checkNull(person.getUserId());
|
||||
|
||||
request.setAttribute("writer", writer);
|
||||
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "/project/projectMgmtWbsList3";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3909,6 +3909,18 @@
|
||||
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
||||
,CODE_NAME(AREA_CD) AS AREA_NAME
|
||||
,PROJECT_NAME
|
||||
,(SELECT CODE_NAME(O.PAID_TYPE) FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS FREE_OF_CHARGE
|
||||
,(SELECT O.QUANTITY FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS CONTRACT_QTY
|
||||
,(SELECT O.PART_NO FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS PRODUCT_ITEM_CODE
|
||||
,(SELECT O.PART_NAME FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS PRODUCT_ITEM_NAME
|
||||
,(SELECT O.SERIAL_NO FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS SERIAL_NO
|
||||
영업관리_주문서관리_수주등록 ,EBOM_STATUS
|
||||
,MBOM_STATUS
|
||||
,(SELECT O.PURCHASE_DATE FROM PURCHASE_ORDER_MASTER AS O WHERE O.CONTRACT_MGMT_OBJID = T.CONTRACT_OBJID LIMIT 1) AS ORDER_DATE
|
||||
,RECEIVING_RATE
|
||||
,PRODUCTION_TEAM_12
|
||||
,PRODUCTION_TEAM_3
|
||||
,(SELECT O.SHIPPING_DATE::TEXT FROM SHIPMENT_LOG AS O WHERE O.TARGET_OBJID = T.CONTRACT_OBJID LIMIT 1) AS SHIPMENT_DATE
|
||||
,(((SELECT SUM(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
||||
+(SELECT SUM(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
||||
+(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
||||
|
||||
Reference in New Issue
Block a user