ERP-node/WebContent/WEB-INF/view/documentMng/documentViewPopup.jsp

669 lines
19 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*" %>
<%@include file= "/init.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<c:set var="oemObjId" value="${projectMap.OEM_OBJID}" />
<c:set var="carObjId" value="${projectMap.CAR_OBJID}" />
<c:set var="factoryObjId" value="${projectMap.OEM_FACTORY}" />
</head>
<script>
$(document).ready(function(){
$("#btn_close").click(function(){
self.close(0);
});
//취소
$("#btnCancel").click(function(){
var objId = $(this).attr("data-OBJID");
var params = "?objId="+objId;
document.form1.action ="/project/projectDetailPopUp.do"+params;
document.form1.submit();
});
fn_setOEMList();
fn_setProductGroupList();
fn_setFactoryList();
fn_setLineAreaList();
$("#oemObjId").change(function(){
oemObjId = this.value;
carObjId = $("#carObjId").val();
fn_setCarTypeList($(this).val());
});
$("#carObjId").change(function(){
oemObjId = $("#oemObjId").val();
carObjId = this.value;
fn_setMilestoneList();
fn_getProjectMemberList();
});
$("#productGroupObjId").change(function(){
fn_setProductList();
})
if("${null ne projectMap.OEM_OBJID}"){
oemObjId = "${projectMap.OEM_OBJID}"
fn_setOEMList();
$("#oemObjId").val("${projectMap.OEM_OBJID}");
}
if("${null ne projectMap.CAR_OBJID}"){
carObjId = "${projectMap.CAR_OBJID}";
fn_setCarTypeList("${projectMap.OEM_OBJID}");
$("#carObjId").val("${projectMap.CAR_OBJID}");
fn_setMilestoneList();
}
//첨부 파일 기능
fnc_setFileDropZone("projectDropZone", "${projectMap.OBJID}", "${docType}", "${docTypeName}", "projectAreaDraw",false,null,null);
projectAreaDraw();
$("#btnUpload").click(function(){
var files = $("#file1")[0].files;
if(files.length > 0){
fnc_fileMultiUpload(files, null, "${projectMap.OBJID}", "${docType}", "${docTypeName}", null, "projectAreaDraw");
//file객체 초기화
$("#file1").val("");
}else{
Swal.fire("선택된 File이 없습니다.");
}
});
});
</script>
<script>
//oem 목록 조회
function fn_setOEMList(){
$.ajax({
url:"/common/getOEMList.do",
type:"POST",
data:{"isJson":true},
dataType:"json",
async:false,
success:function(data){
var appendCode = "";
$("#oemObjId").empty();
appendCode += "<option value=''>선택</option>";
$.each(data, function(i){
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].OEM_NAME+"("+data[i].OEM_CODE+")</option>";
});
$("#oemObjId").append(appendCode);
//oemObjId와 동일한 ObjId로 선택한다.
$("#oemObjId").val(oemObjId);
},
error: function(jqxhr, status, error){
}
});
}
//car 목록 조회
function fn_setCarTypeList(oemObjId){
var appendCode = "";
$("#carObjId").empty();
if(null != oemObjId && "" != oemObjId){
$.ajax({
url:"/common/getCarTypeList.do",
type:"POST",
data:{"isJson":true, "search_oemObjId":oemObjId},
dataType:"json",
async:false,
success:function(data){
var appendCode = "";
appendCode += "<option value=''>선택</option>";
$.each(data, function(i){
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].CAR_CODE+"("+data[i].CAR_NAME+")</option>";
});
$("#carObjId").append(appendCode);
$("#carObjId").val(carObjId);
$("#carObjId").trigger("change");
},
error: function(jqxhr, status, error){
}
});
}else{
appendCode += "<option value=''>선택</option>";
$("#carObjId").append(appendCode);
}
}
//milestone 목록 조회
function fn_setMilestoneList(){
var appendCode = "";
if((null != carObjId && "" != carObjId) && (null != oemObjId && "" != oemObjId)){
$.ajax({
url:"/project/getCarMilestoneList.do",
type:"POST",
data:{"CAR_OBJID":carObjId, "OEM_OBJID":oemObjId},
dataType:"json",
async:false,
success:function(data){
if(data == null || data.length == 0){
appendCode += "<tr>";
appendCode += "<td aling='center' colspan='3'>";
appendCode += "조회된 정보가 없습니다.";
appendCode += "</td>";
appendCode += "</tr>";
}else{
$.each(data, function(i){
appendCode += "<tr>";
appendCode += "<td>"+data[i].SEQ+"</td>";
appendCode += "<td>"+data[i].MILESTONE_NAME+"</td>";
appendCode += "<td><input type='text' name='"+data[i].OBJID+"' id='milestoneDate_"+data[i].OBJID+"' value='"+fnc_checkNull(data[i].MILESTONE_DATE)+"'></td>";
appendCode += "<input type='hidden' name='oemMilestoneObjId' value='"+data[i].OBJID+"'>";
appendCode += "</tr>";
});
}
$("#dataList").children().remove();
$("#dataList").append(appendCode);
fnc_datepick();
},
error: function(jqxhr, status, error){
}
});
}else{
$("#dataList").children().remove();
appendCode += "<tr>";
appendCode += " <td aling='center' colspan='3'>조회된 정보가 없습니다.</td>";
appendCode += "</tr>";
$("#dataList").append(appendCode);
}
}
//제품군 조회
function fn_setProductGroupList(){
$.ajax({
url:"/common/getProductGroupList.do",
type:"POST",
data:{"isJson":true},
dataType:"json",
success:function(data){
var appendCode = "";
$.each(data, function(i){
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].PRODUCT_GROUP_NAME+"</option>";
});
$("#productGroupObjId").append(appendCode);
$("#productGroupObjId").trigger("change");
},
error: function(jqxhr, status, error){
}
});
}
//제품 조회
function fn_setProductList(){
var productGroupObjId = $("#productGroupObjId").val();
var appendCode = "";
$("#productObjId").empty();
if(null != productGroupObjId && "" != productGroupObjId){
$.ajax({
url:"/common/getProductList.do",
type:"POST",
data:{"isJson":true, "search_productGroupObjId":productGroupObjId},
dataType:"json",
success:function(data){
appendCode += "<option value=''>선택("+data.length+"개)</option>";
$.each(data, function(i){
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].PRODUCT_NAME+"</option>";
});
$("#productObjId").children().remove();
$("#productObjId").append(appendCode);
},
error: function(jqxhr, status, error){
}
});
}
}
//생산공장 조회
function fn_setFactoryList(){
$.ajax({
url:"/common/getFactoryList.do",
type:"POST",
data:{"isJson":true},
dataType:"json",
success:function(data){
var appendCode = "";
appendCode += "<option value=''>선택</option>";
$.each(data, function(i){
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].FACTORY_NAME+"</option>";
});
$("#oemFactory").append(appendCode);
var dbVal = fnc_checkNull("${projectMap.OEM_FACTORY}");
if(dbVal != ""){
$("#oemFactory > option[value="+dbVal+"]").attr("selected", "true");
}
},
error: function(jqxhr, status, error){
}
});
}
//라인설치장소 조회
function fn_setLineAreaList(i){
$.ajax({
url:"/common/getLineAreaList.do",
type:"POST",
data:{"isJson":true},
dataType:"json",
success:function(data){
var appendCode = "";
appendCode += "<option value=''>선택</option>";
$.each(data, function(i){
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].AREA_NAME+"</option>";
});
$("#lineInstlSite").append(appendCode);
var dbVal = fnc_checkNull("${projectMap.LINE_INSTL_SITE_OBJID}");
if(dbVal != ""){
$("#lineInstlSite > option[value="+dbVal+"]").attr("selected", "true");
}
},
error: function(jqxhr, status, error){
}
});
}
//제품군, 제품 선택하여 프로젝트에 품목을 추가한다.
function fn_addProjectProduct(){
var productGroupSelectedObj = $("#productGroupObjId option:selected");
var productSelectedObj = $("#productObjId option:selected");
var orderProductObj = $("#orderProduct");
var addedProductCnt = $("tr [name=addedOrderProduct]").size();
if("" == productGroupSelectedObj.val() || "" == productSelectedObj.val()){
Swal.fire("선택된 제품군/제품이 없습니다.");
return false;
}else{
//이미 추가된 품목을 확인
if(0 < orderProductObj.find("#"+productSelectedObj.val()).size()){
Swal.fire("이미 추가된 제품입니다.");
return false;
}
//품목이 없을 시 문구 출력
if(0 < $("#orderProductDefaultRow").size()){
$("#orderProductDefaultRow").hide();
}
var appendText = "<tr id='"+productSelectedObj.val()+"' name='addedOrderProduct'>";
appendText+= " <td>"+(addedProductCnt+1)+"</td>";
appendText+= " <td>"+productGroupSelectedObj.text();+"</td>";
appendText+= " <td>"+productSelectedObj.text();+"</td>";
appendText+= " <td><input type='button' value='삭제' class='blue_btn' onclick=\"deleteProjectProduct('"+productSelectedObj.val()+"');\"></td>";
appendText+= " <input type='hidden' name='addedOrderProductObjId' value='"+productSelectedObj.val()+"'>";
appendText+= "</tr>";
orderProductObj.append(appendText);
}
}
//추가된 프로젝트 수주품목을 삭제한다.
function fn_deleteProjectProduct(addedProductObjId){
if(null != addedProductObjId){
$("#"+addedProductObjId).remove();
}
var addedProductCnt = $("tr [name=addedOrderProduct]").size();
var defalutRowCnt = $("#orderProductDefaultRow").size();
if(0 == addedProductCnt){
if(0 < defalutRowCnt){
$("#orderProductDefaultRow").show();
}else{
var appendText = "<tr id='orderProductDefaultRow' name='orderProductDefaultRow' >";
appendText+= " <td colspan='4'>연결된 개발품목이 없습니다.</td>";
appendText+= "</tr>";
$("#orderProduct").append(appendText);
}
}
}
//해당하는 차종의 TFT멤버 목록을 가져온다.
function fn_getProjectMemberList(){
var appendText = "";
$("#projectMemberList").empty();
if(null != carObjId && "" != carObjId){
$.ajax({
url:"/project/getProjectMemberList.do",
type:"POST",
data:{"isJson":true, "search_carObjId":carObjId},
dataType:"json",
async:false,
success:function(data){
if(0 < data.length){
$.each(data, function(i){
appendText += "<tr name='projectMember'>";
appendText += " <td>"+fnc_checkNull(data[i].RNUM);+"</td>";
appendText += " <td>"+fnc_checkNull(data[i].DEPT_NAME);+"</td>";
appendText += " <td>"+fnc_checkNull(data[i].USER_NAME);+"</td>";
appendText += " <td>";
if("0" == fnc_checkNull(data[i].IS_TFT_LEADER)){
appendText+="TFT장 "
}
if("0" == fnc_checkNull(data[i].IS_PROJ_LEADER)){
appendText+="PL"
}
appendText += " </td>";
appendText += "</tr>";
});
}else{
appendText += "<tr>";
appendText += " <td colspan='4'>해당하는 TFT 인원이 없습니다.</td>";
appendText += "</tr>";
}
},
error: function(jqxhr, status, error){
}
});
}else{
appendText += "<tr>";
appendText += " <td colspan='4'>해당하는 TFT 인원이 없습니다.</td>";
appendText += "</tr>";
}
$("#projectMemberList").append(appendText);
}
//작성된 프로젝트의 내용을 저장한다.
function fn_saveProjectInfo(){
if(fnc_valitate("form1")){
//생산총 수량의 입력값 유효성을 검사한다.
if("" != fnc_checkNull($("#totalProductionCnt").val())){
fnc_checkDataType("number",$("#totalProductionCnt").val());
}
if("" != fnc_checkNull($("#avgProductionCnt").val())){
//연견생산 총 수량의 입력값 유효성을 검사한다.
fnc_checkDataType("number",$("#avgProductionCnt").val());
}
if("" != fnc_checkNull($("#lineInstlSiteArea").val())){
//라인면적의 입력값 유효성을 검사한다.
fnc_checkDataType("number",$("#lineInstlSiteArea").val());
}
var resultFlag = false;
//프로젝트 멤버 유무를 확인한다.
resultFlag = fn_checkProjectMember(resultFlag);
if(resultFlag){
//프로젝트 수주품목 입력여부를 확인한다.
resultFlag = fn_checkProjectProduct(resultFlag);
}
if(resultFlag){
//프로젝트의 중복여부를 확인한다.
resultFlag = fn_checkProjectDuplicate(resultFlag);
}
document.form1.status.value="create";
if(resultFlag){
if(confirm("저장하시겠습니까?")){
var returnUrl = "/project/projectDetailPopUp.do"
var form = $("#form1").serialize();
$.ajax({
url:"/project/saveProjectInfo.do",
type:"POST",
data:form,
dataType:"json",
async:false,
success:function(data){
if(data.result){
Swal.fire("저장하였습니다.");
opener.fn_search();
if(data.result == "true"){
document.form1.action = returnUrl;
document.form1.submit();
}
}else{
Swal.fire("오류가 발생하였습니다.");
}
},
error: function(jqxhr, status, error){
}
});
}
}
}
}
//Project 저장 시 동일 프로젝트의 중복여부를 확인한다.
function fn_checkProjectDuplicate(returnFlag){
$.ajax({
url:"/project/checkProjectDuplicate.do",
type:"POST",
data:$("#form1").serialize(),
dataType:"json",
async:false,
success:function(data){
if(0 == Number(data.CNT)){
returnFlag = true;
}else{
Swal.fire("동일 내용의 프로젝트가 이미 존재 합니다.");
returnFlag = false;
}
},
error: function(jqxhr, status, error){
}
});
return returnFlag;
}
//프로젝트 멤버의 구성여부를 확인한다.
function fn_checkProjectMember(result){
var projectMemberCnt = fnc_checkNull($("tr [name=projectMember]").size());
if(0 == projectMemberCnt){
Swal.fire("지정된 프로젝트 멤버가 없습니다.");
result = false;
}else{
result = true;
}
return result;
}
//프로젝트의 제품 유무를 확인하다.
function fn_checkProjectProduct(result){
var projectProductCnt = $("tr [name=addedOrderProduct]").size();
if(0 == projectProductCnt){
Swal.fire("프로젝트에 해당하는 품목이 없습니다.");
result = false;
}else{
result = true;
}
return result;
}
function refeshAttachFileArea(){
projectAreaDraw();
}
//형상 영역을 display 한다.
function projectAreaDraw(){
fn_fileCallback("project","${docType}");
}
//첨부파일 목록을 가져온다.
function fn_fileCallback(areaId,fileType){
$.ajax({
url:"/common/getFileList.do",
type:"POST",
data:{"targetObjId":"${projectMap.OBJID}", "docType":fileType},
dataType:"json",
async:false,
success:function(data){
if(0 < data.length){
//첨부파일 목록 영역 show
$("#"+areaId+"FileArea").empty();
if(0 < $("#"+areaId+"DefaultRow").length){
$("#"+areaId+"DefaultRow").hide();
}
$.each(data, function(i){
var appendText = "";
if("project" == areaId){
var path = data[i].FILE_PATH;
var fileName = data[i].SAVED_FILE_NAME;
var fileExt = data[i].UPPER_FILE_EXT;
appendText += "<colgroup>";
appendText +=" <col width='10%''>";
appendText +=" <col width='*'>";
appendText +=" <col width='15%'>";
appendText +=" <col width='15%'>";
appendText +=" <col width='15%''>";
appendText +=" </colgroup>";
appendText+= "<tr>";
appendText+= " <td>"+[i+1]+"</td>";
appendText+= " <td class='align_l'><a href='javascript:fnc_downloadFile(\""+data[i].OBJID+"\")'>&nbsp;&nbsp;"+data[i].REAL_FILE_NAME+"</a></td>";
appendText+= " <td>"+data[i].DEPT_NAME+"</td>"
appendText+= " <td>"+data[i].USER_NAME+"</td>"
appendText+= " <td>"+data[i].REGDATE+"</td>"
appendText+= "</tr>";
}
$("#"+areaId+"FileArea").append(appendText);
});
}else{
$("#"+areaId+"DropZone").show();
$("#"+areaId+"AttachFileList").hide();
$("#"+areaId+"FileArea").empty();
var appendText = "";
appendText += "<tr>";
appendText += "<td>첨부 파일이 없습니다.</td>";
appendText +="</tr>";
$("#"+areaId+"FileArea").append(appendText);
}
},
error: function(jqxhr, status, error){
}
});
}//파일 첨부 END
/*첨부 파일 삭제 */
function fileDelete(fileObjId, callbackFnc, confirmFlag){
if(confirmFlag){
fnc_deleteFile(fileObjId, callbackFnc);
}else{
$.ajax({
url:"/common/deleteFileInfo.do",
type:"POST",
data:{"objId":fileObjId},
dataType:"json",
async:true,
success:function(data){
eval(callbackFnc+"();");
},
error: function(jqxhr, status, error){
}
});
}
}
</script>
<body>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="objId" id="objId" value="${projectMap.OBJID}">
<input type="hidden" name="status" id="status" value="${projectMap.STATUS}">
<section class="">
<div class="plm_menu_name">
<h2>
<span>첨부파일 이력</span>
</h2>
</div>
<div id="businessPopupFormWrap">
<div class="plm_table_wrap">
<div style="overflow-y:scroll;">
<table class="plm_table">
<colgroup>
<col width="*">
<col width="15%">
<col width="15%">
<col width="15%">
</colgroup>
<tr class="plm_thead">
<td>파일명</td>
<td>등록일</td>
<td>개정일</td>
<td>개정이력</td>
</tr>
</table>
</div>
<div class="plm_scroll_table" style="height:131px;">
<table class="plm_table">
<colgroup>
<col width="*">
<col width="15%">
<col width="15%">
<col width="15%">
</colgroup>
<tr>
<td>제품개발프로세스.doc</td>
<td>2018-08-15</td>
<td></td>
<td>초도</td>
</tr>
<tr>
<td>제품개발프로세스.doc</td>
<td>2018-08-15</td>
<td>2018-09-15</td>
<td>개정(A)</td>
</tr>
<tr>
<td>제품개발프로세스.doc</td>
<td>2018-08-15</td>
<td>2018-10-15</td>
<td>개정(B)</td>
</tr>
<tr>
<td>제품개발프로세스.doc</td>
<td>2018-08-15</td>
<td>2018-10-30</td>
<td>개정(C)</td>
</tr>
<tr>
<td>제품개발프로세스.doc</td>
<td>2018-08-15</td>
<td>2018-11-15</td>
<td>개정(D)</td>
</tr>
</table>
</div>
</div>
<div class="btn_wrap">
<div class="plm_btn_wrap_center">
<input type="button" value="닫기" id="btn_close" class="plm_btns">
</div>
</div>
</div>
</section>
</form>
</body>
</html>