품번, 품명만 입력하고 저장시 빈 내용으로 이봄 리스트 생성(완료)
This commit is contained in:
@@ -516,108 +516,111 @@ function fn_checkDuplicatePartNo(){
|
||||
function fn_save(){
|
||||
var ids = grid.jqGrid("getDataIDs");
|
||||
|
||||
if(ids!=""){
|
||||
if(fnc_valitate("form1")){
|
||||
|
||||
var valid = true;
|
||||
var existPart = true;
|
||||
var part = "";
|
||||
if (fnc_isEmpty(${bomInfo.OBJID})) {
|
||||
var partNo1 = "";
|
||||
|
||||
gridFn.closeEdit();
|
||||
$.each(grid.getRowData(), function(i, d) {
|
||||
if (i == 0) {
|
||||
partNo1 = d["PART_NO"];
|
||||
}
|
||||
var partType = d["PART_TYPE"];
|
||||
var partNo = d["PART_NO"];
|
||||
|
||||
if (partType == '0001788') {
|
||||
if (!fn_existPartNo(partNo)) {
|
||||
existPart = false;
|
||||
part = partNo;
|
||||
return false; // Exit the loop
|
||||
}
|
||||
}
|
||||
|
||||
if(!fnc_isEmpty(d["NOTE"])){
|
||||
valid = false;
|
||||
}
|
||||
});
|
||||
gridFn.opennEdit();
|
||||
|
||||
var project_no = $("#project_name").find("option:selected").text();
|
||||
if (partNo1.indexOf(project_no) < 0) {
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!existPart) {
|
||||
Swal.fire(part+'품번에 해당하는 구매품표준이 없습니다. 확인해 주세요.');
|
||||
return;
|
||||
}
|
||||
|
||||
if (!valid) {
|
||||
Swal.fire('1레벨 품번에 프로젝트번호가 없습니다. 확인해 주세요.');
|
||||
return;
|
||||
}
|
||||
|
||||
// 품번 중복 검증 (PART_BOM_REPORT 테이블 - 헤더 품번)
|
||||
if(fn_checkDuplicatePartNo()){
|
||||
Swal.fire('입력한 품번이 이미 존재합니다. 다른 품번을 입력해주세요.');
|
||||
$('#bom_part_no').focus();
|
||||
return;
|
||||
}
|
||||
|
||||
var existsDup = false;
|
||||
var ARR_APPLICATION_PROJECT_NO = new Array();
|
||||
$(".APPLICATION_PROJECT_NO").each(function(){
|
||||
for(var i=0; i<ARR_APPLICATION_PROJECT_NO.length; i++){
|
||||
if(this.value != '' && ARR_APPLICATION_PROJECT_NO[i] == this.value){
|
||||
existsDup = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ARR_APPLICATION_PROJECT_NO.push($(this).val());
|
||||
});
|
||||
if(existsDup){
|
||||
Swal.fire('동시적용 프로젝트번호에 중복건이 존재합니다.');
|
||||
return;
|
||||
}
|
||||
|
||||
if(confirm("저장 하시겠습니까?")){
|
||||
// 품번, 품명만 입력하고 그리드 데이터가 없어도 저장 가능하도록 수정
|
||||
if(fnc_valitate("form1")){
|
||||
|
||||
var valid = true;
|
||||
var existPart = true;
|
||||
var part = "";
|
||||
|
||||
// 그리드에 데이터가 있는 경우에만 검증
|
||||
if (ids && ids.length > 0) {
|
||||
if (fnc_isEmpty(${bomInfo.OBJID})) {
|
||||
var partNo1 = "";
|
||||
|
||||
gridFn.closeEdit();
|
||||
$.ajax({
|
||||
url:"/partMng/partBomApplySave.do"
|
||||
,type:"POST"
|
||||
,data: $("#form1").serialize() + "&jqGrid="+ encodeURIComponent(JSON.stringify(grid.getRowData()))
|
||||
,dataType:"json"
|
||||
,success:function(data){
|
||||
/*
|
||||
if(data =="SUCCESS"){
|
||||
alert("저장되었습니다.");
|
||||
top.opener.fn_search();
|
||||
self.close();
|
||||
};
|
||||
*/
|
||||
console.log(data);
|
||||
if(data && data.RESULT == 'S'){
|
||||
alert("저장되었습니다.");
|
||||
if(typeof opener.fn_search =="function"){ opener.fn_search() };
|
||||
self.close();
|
||||
}else{
|
||||
alert(data.MSG);
|
||||
$.each(grid.getRowData(), function(i, d) {
|
||||
if (i == 0) {
|
||||
partNo1 = d["PART_NO"];
|
||||
}
|
||||
var partType = d["PART_TYPE"];
|
||||
var partNo = d["PART_NO"];
|
||||
|
||||
if (partType == '0001788') {
|
||||
if (!fn_existPartNo(partNo)) {
|
||||
existPart = false;
|
||||
part = partNo;
|
||||
return false; // Exit the loop
|
||||
}
|
||||
}
|
||||
,error: function(jqxhr, status, error){
|
||||
alert('에러가 발생하였습니다. 시스템 관리자에게 문의하여 주세요.');
|
||||
|
||||
if(!fnc_isEmpty(d["NOTE"])){
|
||||
valid = false;
|
||||
}
|
||||
});
|
||||
gridFn.opennEdit();
|
||||
|
||||
var project_no = $("#project_name").find("option:selected").text();
|
||||
if (partNo1 && partNo1.indexOf(project_no) < 0) {
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!existPart) {
|
||||
Swal.fire(part+'품번에 해당하는 구매품표준이 없습니다. 확인해 주세요.');
|
||||
return;
|
||||
}
|
||||
|
||||
if (!valid) {
|
||||
Swal.fire('1레벨 품번에 프로젝트번호가 없습니다. 확인해 주세요.');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
Swal.fire('저장할 데이터가 없습니다.');
|
||||
|
||||
// 품번 중복 검증 (PART_BOM_REPORT 테이블 - 헤더 품번)
|
||||
if(fn_checkDuplicatePartNo()){
|
||||
Swal.fire('입력한 품번이 이미 존재합니다. 다른 품번을 입력해주세요.');
|
||||
$('#bom_part_no').focus();
|
||||
return;
|
||||
}
|
||||
|
||||
var existsDup = false;
|
||||
var ARR_APPLICATION_PROJECT_NO = new Array();
|
||||
$(".APPLICATION_PROJECT_NO").each(function(){
|
||||
for(var i=0; i<ARR_APPLICATION_PROJECT_NO.length; i++){
|
||||
if(this.value != '' && ARR_APPLICATION_PROJECT_NO[i] == this.value){
|
||||
existsDup = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ARR_APPLICATION_PROJECT_NO.push($(this).val());
|
||||
});
|
||||
if(existsDup){
|
||||
Swal.fire('동시적용 프로젝트번호에 중복건이 존재합니다.');
|
||||
return;
|
||||
}
|
||||
|
||||
// 그리드 데이터가 없어도 저장 가능 (빈 BOM 생성)
|
||||
var confirmMsg = ids && ids.length > 0 ? "저장 하시겠습니까?" : "품번, 품명으로 빈 E-BOM을 생성하시겠습니까?";
|
||||
|
||||
if(confirm(confirmMsg)){
|
||||
if(ids && ids.length > 0) {
|
||||
gridFn.closeEdit();
|
||||
}
|
||||
|
||||
// 그리드 데이터가 없으면 빈 배열 전송
|
||||
var gridData = ids && ids.length > 0 ? grid.getRowData() : [];
|
||||
|
||||
$.ajax({
|
||||
url:"/partMng/partBomApplySave.do"
|
||||
,type:"POST"
|
||||
,data: $("#form1").serialize() + "&jqGrid="+ encodeURIComponent(JSON.stringify(gridData))
|
||||
,dataType:"json"
|
||||
,success:function(data){
|
||||
console.log(data);
|
||||
if(data && data.RESULT == 'S'){
|
||||
alert("저장되었습니다.");
|
||||
if(typeof opener.fn_search =="function"){ opener.fn_search() };
|
||||
self.close();
|
||||
}else{
|
||||
alert(data.MSG);
|
||||
}
|
||||
}
|
||||
,error: function(jqxhr, status, error){
|
||||
alert('에러가 발생하였습니다. 시스템 관리자에게 문의하여 주세요.');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4363,78 +4363,85 @@ public class PartMngService extends BaseService {
|
||||
sqlMap.put("PART_NAME", CommonUtils.checkNull((String)paramMap.get("bom_part_name")));
|
||||
sqlMap.put("REVISION", CommonUtils.checkNull((String)paramMap.get("version")));
|
||||
|
||||
//bom report 저장
|
||||
System.out.println("sqlMap ---->"+sqlMap);
|
||||
sqlSession.insert("partMng.createBOMReportStructureStandardInfo", sqlMap);
|
||||
//bom report 저장
|
||||
System.out.println("sqlMap ---->"+sqlMap);
|
||||
sqlSession.insert("partMng.createBOMReportStructureStandardInfo", sqlMap);
|
||||
|
||||
// 그리드 데이터가 비어있으면 BOM 헤더만 생성하고 종료
|
||||
if(gridDataList == null || gridDataList.isEmpty()) {
|
||||
System.out.println("=== 빈 E-BOM 생성 완료 (품번: " + sqlMap.get("PART_NO") + ", 품명: " + sqlMap.get("PART_NAME") + ") ===");
|
||||
sqlSession.commit();
|
||||
return;
|
||||
}
|
||||
|
||||
// BOM 데이터 저장 (프로젝트 연결 없이)
|
||||
/*
|
||||
String newPartNo1Surffix = "";
|
||||
String masterPartNo1 = "";
|
||||
String UNIT_CODE2 = "";
|
||||
Map sqlParamMap = new HashMap();
|
||||
for(int j=0; j<11; j++){ //24032x? - 0은 master 동시건
|
||||
String APPLICATION_OBJID = CommonUtils.nullToEmpty((String)paramMap.get("APPLICATION_OBJID"+j));
|
||||
String APPLICATION_PROJECT_NO = CommonUtils.nullToEmpty((String)paramMap.get("APPLICATION_PROJECT_NO"+j)); //프로젝트 objid
|
||||
|
||||
// BOM 데이터 저장 (프로젝트 연결 없이)
|
||||
/*
|
||||
String newPartNo1Surffix = "";
|
||||
String masterPartNo1 = "";
|
||||
String UNIT_CODE2 = "";
|
||||
Map sqlParamMap = new HashMap();
|
||||
for(int j=0; j<11; j++){ //24032x? - 0은 master 동시건
|
||||
String APPLICATION_OBJID = CommonUtils.nullToEmpty((String)paramMap.get("APPLICATION_OBJID"+j));
|
||||
String APPLICATION_PROJECT_NO = CommonUtils.nullToEmpty((String)paramMap.get("APPLICATION_PROJECT_NO"+j)); //프로젝트 objid
|
||||
if(j == 0) {
|
||||
APPLICATION_PROJECT_NO = CommonUtils.checkNull(paramMap.get("CONTRACT_OBJID"));
|
||||
}else {
|
||||
isMaster = false;
|
||||
}
|
||||
|
||||
if(!CommonUtils.isBlank(APPLICATION_PROJECT_NO)) {
|
||||
|
||||
if(j == 0) {
|
||||
APPLICATION_PROJECT_NO = CommonUtils.checkNull(paramMap.get("CONTRACT_OBJID"));
|
||||
}else {
|
||||
isMaster = false;
|
||||
}
|
||||
|
||||
if(!CommonUtils.isBlank(APPLICATION_PROJECT_NO)) {
|
||||
//bom master insert
|
||||
if(!isMaster) {
|
||||
|
||||
//bom master insert
|
||||
if(!isMaster) {
|
||||
|
||||
sqlMap.clear();
|
||||
sqlMap.put("OBJID", APPLICATION_PROJECT_NO);
|
||||
projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", sqlMap);
|
||||
projectNo = (String)projectInfo.get("project_no"); //프로젝트 no
|
||||
|
||||
sqlParamMap.clear();
|
||||
sqlParamMap.put("project_objid", APPLICATION_PROJECT_NO);
|
||||
sqlParamMap.put("unitName", UNIT_NAME);
|
||||
unitInfoMap = (HashMap)sqlSession.selectOne("common.getUnitCodeList", sqlParamMap);
|
||||
if(unitInfoMap == null || CommonUtils.isEmptyMap(unitInfoMap)) {
|
||||
throw new Exception(projectNo+"프로젝트에 "+UNIT_NAME + " UNIT이 존재하지 않습니다.");
|
||||
}
|
||||
unitName = CommonUtils.checkNull(unitInfoMap.get("name")).replaceAll("\u00A0+", " ");
|
||||
UNIT_CODE2 = CommonUtils.checkNull((String)unitInfoMap.get("code"));
|
||||
|
||||
utf8Bytes = unitName.getBytes("UTF-8");
|
||||
utf8unitName = new String(utf8Bytes, "UTF-8");
|
||||
filepath = Constants.FILE_STORAGE+"\\PART_DATA\\";
|
||||
filepathFull = filepath+projectNo+File.separator+unitName+File.separator;
|
||||
|
||||
//BOM REPORT OBJID
|
||||
objid = CommonUtils.createObjId(); //키 새로 생성
|
||||
sqlMap.clear();
|
||||
sqlMap.put("OBJID", objid);
|
||||
sqlMap.put("MULTI_YN", "Y");
|
||||
sqlMap.put("MULTI_MASTER_YN", "N");
|
||||
sqlMap.put("MULTI_MASTER_OBJID", masterObjid);
|
||||
sqlMap.put("CUSTOMER_OBJID", CommonUtils.checkNull((String)paramMap.get("CUSTOMER_OBJID")));
|
||||
sqlMap.put("CONTRACT_OBJID", APPLICATION_PROJECT_NO);
|
||||
sqlMap.put("UNIT_CODE", UNIT_CODE2);
|
||||
sqlMap.put("WRITER", CommonUtils.checkNull((String)paramMap.get("CONNECTUSERID")));
|
||||
//bom report 저장
|
||||
|
||||
System.out.println("sqlMap ---->"+sqlMap);
|
||||
sqlSession.insert("partMng.createBOMReportStructureStandardInfo", sqlMap);
|
||||
|
||||
//엑셀 등록
|
||||
//sqlSession.insert("partMng.relateexcelPartInfo", sqlMap);
|
||||
sqlMap.clear();
|
||||
sqlMap.put("OBJID", APPLICATION_PROJECT_NO);
|
||||
projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", sqlMap);
|
||||
projectNo = (String)projectInfo.get("project_no"); //프로젝트 no
|
||||
|
||||
sqlParamMap.clear();
|
||||
sqlParamMap.put("project_objid", APPLICATION_PROJECT_NO);
|
||||
sqlParamMap.put("unitName", UNIT_NAME);
|
||||
unitInfoMap = (HashMap)sqlSession.selectOne("common.getUnitCodeList", sqlParamMap);
|
||||
if(unitInfoMap == null || CommonUtils.isEmptyMap(unitInfoMap)) {
|
||||
throw new Exception(projectNo+"프로젝트에 "+UNIT_NAME + " UNIT이 존재하지 않습니다.");
|
||||
}
|
||||
*/
|
||||
unitName = CommonUtils.checkNull(unitInfoMap.get("name")).replaceAll("\u00A0+", " ");
|
||||
UNIT_CODE2 = CommonUtils.checkNull((String)unitInfoMap.get("code"));
|
||||
|
||||
Map insertMap = new HashMap();
|
||||
Map resultMap = new HashMap();
|
||||
Map partobjMap = new HashMap();
|
||||
utf8Bytes = unitName.getBytes("UTF-8");
|
||||
utf8unitName = new String(utf8Bytes, "UTF-8");
|
||||
filepath = Constants.FILE_STORAGE+"\\PART_DATA\\";
|
||||
filepathFull = filepath+projectNo+File.separator+unitName+File.separator;
|
||||
|
||||
//bom qty/part insert (프로젝트 연결 없이 직접 저장)
|
||||
for(int i=0; i<gridDataList.size(); i++){
|
||||
//BOM REPORT OBJID
|
||||
objid = CommonUtils.createObjId(); //키 새로 생성
|
||||
sqlMap.clear();
|
||||
sqlMap.put("OBJID", objid);
|
||||
sqlMap.put("MULTI_YN", "Y");
|
||||
sqlMap.put("MULTI_MASTER_YN", "N");
|
||||
sqlMap.put("MULTI_MASTER_OBJID", masterObjid);
|
||||
sqlMap.put("CUSTOMER_OBJID", CommonUtils.checkNull((String)paramMap.get("CUSTOMER_OBJID")));
|
||||
sqlMap.put("CONTRACT_OBJID", APPLICATION_PROJECT_NO);
|
||||
sqlMap.put("UNIT_CODE", UNIT_CODE2);
|
||||
sqlMap.put("WRITER", CommonUtils.checkNull((String)paramMap.get("CONNECTUSERID")));
|
||||
//bom report 저장
|
||||
|
||||
System.out.println("sqlMap ---->"+sqlMap);
|
||||
sqlSession.insert("partMng.createBOMReportStructureStandardInfo", sqlMap);
|
||||
|
||||
//엑셀 등록
|
||||
//sqlSession.insert("partMng.relateexcelPartInfo", sqlMap);
|
||||
}
|
||||
*/
|
||||
|
||||
Map insertMap = new HashMap();
|
||||
Map resultMap = new HashMap();
|
||||
Map partobjMap = new HashMap();
|
||||
|
||||
//bom qty/part insert (프로젝트 연결 없이 직접 저장)
|
||||
for(int i=0; i<gridDataList.size(); i++){
|
||||
Map orgMap = gridDataList.get(i);
|
||||
insertMap.clear();
|
||||
CommonUtils.copyMap(insertMap, orgMap, true, false);
|
||||
|
||||
Reference in New Issue
Block a user