diff --git a/src/com/pms/salesmgmt/service/ContractMgmtService.java b/src/com/pms/salesmgmt/service/ContractMgmtService.java index e6f3f51..ae1e293 100644 --- a/src/com/pms/salesmgmt/service/ContractMgmtService.java +++ b/src/com/pms/salesmgmt/service/ContractMgmtService.java @@ -2836,10 +2836,11 @@ private String encodeImageToBase64(String imagePath) { // 프로젝트 등록 cnt = sqlSession.update("project.createProject", projectParam); - // 프로젝트 TASK 등록 - cnt = sqlSession.insert("contractMgmt.insertProjectTask", projectParam); - // 프로젝트 SETUP_TASK 등록 - cnt = sqlSession.insert("contractMgmt.insertProjectSetupTask", projectParam); + // WBS 자동생성 주석처리 + // // 프로젝트 TASK 등록 + // cnt = sqlSession.insert("contractMgmt.insertProjectTask", projectParam); + // // 프로젝트 SETUP_TASK 등록 + // cnt = sqlSession.insert("contractMgmt.insertProjectSetupTask", projectParam); // 동일 품번 M-BOM 자동 복사 제거 - 수주 시점에는 총생산수량 미확정이므로 // M-BOM관리에서 생산계획 입력 후 수동 복사하도록 변경 @@ -2852,22 +2853,23 @@ private String encodeImageToBase64(String imagePath) { // itemQuantity); // } - // project_no - unit 폴더 생성 - Map projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", projectParam); - - projectParam.put("contract_objid", contract_objid); - projectParam.put("customer_product", projectParam.get("mechanical_type")); - List> taskUnitList = (ArrayList)sqlSession.selectList("project.getWbsTaskListByProject", projectParam); - if(CommonUtils.isNotEmpty(taskUnitList) && !taskUnitList.isEmpty()){ - String projectNo = (String)projectInfo.get("project_no"); - String filepath = Constants.FILE_STORAGE+"\\PART_DATA\\"; - for (Map map : taskUnitList) { - File file = new File(filepath+File.separator+projectNo+File.separator+CommonUtils.checkNull((String)map.get("unit_no"))+"-"+CommonUtils.checkNull((String)map.get("task_name"))); - if(!file.exists()){ - file.mkdirs(); - } - } - } + // WBS 폴더 생성 주석처리 + // // project_no - unit 폴더 생성 + // Map projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", projectParam); + // + // projectParam.put("contract_objid", contract_objid); + // projectParam.put("customer_product", projectParam.get("mechanical_type")); + // List> taskUnitList = (ArrayList)sqlSession.selectList("project.getWbsTaskListByProject", projectParam); + // if(CommonUtils.isNotEmpty(taskUnitList) && !taskUnitList.isEmpty()){ + // String projectNo = (String)projectInfo.get("project_no"); + // String filepath = Constants.FILE_STORAGE+"\\PART_DATA\\"; + // for (Map map : taskUnitList) { + // File file = new File(filepath+File.separator+projectNo+File.separator+CommonUtils.checkNull((String)map.get("unit_no"))+"-"+CommonUtils.checkNull((String)map.get("task_name"))); + // if(!file.exists()){ + // file.mkdirs(); + // } + // } + // } } else { // 프로젝트가 있으면 모든 품목 업데이트 (수량, 금액 등만) Map updateParam = new HashMap(); @@ -3067,10 +3069,11 @@ private String encodeImageToBase64(String imagePath) { // 프로젝트 등록 cnt = sqlSession.update("project.createProject", projectParam); - // 프로젝트 TASK 등록 - cnt = sqlSession.insert("contractMgmt.insertProjectTask", projectParam); - // 프로젝트 SETUP_TASK 등록 - cnt = sqlSession.insert("contractMgmt.insertProjectSetupTask", projectParam); + // WBS 자동생성 주석처리 + // // 프로젝트 TASK 등록 + // cnt = sqlSession.insert("contractMgmt.insertProjectTask", projectParam); + // // 프로젝트 SETUP_TASK 등록 + // cnt = sqlSession.insert("contractMgmt.insertProjectSetupTask", projectParam); // 동일 품번 M-BOM 자동 복사 제거 - 수주 시점에는 총생산수량 미확정이므로 // M-BOM관리에서 생산계획 입력 후 수동 복사하도록 변경 @@ -3083,22 +3086,23 @@ private String encodeImageToBase64(String imagePath) { // itemQuantity); // } - // project_no - unit 폴더 생성 - Map projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", projectParam); - - projectParam.put("contract_objid", contract_objid); - projectParam.put("customer_product", projectParam.get("mechanical_type")); - List> taskUnitList = (ArrayList)sqlSession.selectList("project.getWbsTaskListByProject", projectParam); - if(CommonUtils.isNotEmpty(taskUnitList) && !taskUnitList.isEmpty()){ - String projectNo = (String)projectInfo.get("project_no"); - String filepath = Constants.FILE_STORAGE+"\\PART_DATA\\"; - for (Map map : taskUnitList) { - File file = new File(filepath+File.separator+projectNo+File.separator+CommonUtils.checkNull((String)map.get("unit_no"))+"-"+CommonUtils.checkNull((String)map.get("task_name"))); - if(!file.exists()){ - file.mkdirs(); - } - } - } + // WBS 폴더 생성 주석처리 + // // project_no - unit 폴더 생성 + // Map projectInfo = (Map)sqlSession.selectOne("project.getProjectMngInfo", projectParam); + // + // projectParam.put("contract_objid", contract_objid); + // projectParam.put("customer_product", projectParam.get("mechanical_type")); + // List> taskUnitList = (ArrayList)sqlSession.selectList("project.getWbsTaskListByProject", projectParam); + // if(CommonUtils.isNotEmpty(taskUnitList) && !taskUnitList.isEmpty()){ + // String projectNo = (String)projectInfo.get("project_no"); + // String filepath = Constants.FILE_STORAGE+"\\PART_DATA\\"; + // for (Map map : taskUnitList) { + // File file = new File(filepath+File.separator+projectNo+File.separator+CommonUtils.checkNull((String)map.get("unit_no"))+"-"+CommonUtils.checkNull((String)map.get("task_name"))); + // if(!file.exists()){ + // file.mkdirs(); + // } + // } + // } } else { // 프로젝트가 있으면 모든 품목 업데이트 (수량, 금액 등만) Map updateParam = new HashMap(); diff --git a/src/com/pms/service/PartMngService.java b/src/com/pms/service/PartMngService.java index 91ec663..14d4622 100644 --- a/src/com/pms/service/PartMngService.java +++ b/src/com/pms/service/PartMngService.java @@ -3557,21 +3557,7 @@ public class PartMngService extends BaseService { String surfaceTreatment = getCsvValue(values, colIndex++, emptyColCnt); // 8: 표면처리 String supplier = getCsvValue(values, colIndex++, emptyColCnt); // 9: 공급업체 String partType = getCsvValue(values, colIndex++, emptyColCnt); // 10: 범주이름 - // CSV 컬럼 순서: 11: 규격, 12: 계정구분, 13: 조달구분, 14: 재고단위, 15: 관리단위, 16: 환산수량 - // 17: LOT구분, 18: 사용여부, 19: 검사여부, 20: SET품여부, 21: 의뢰여부, 22: 개당길이, 23: 개당소요량 - String spec = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 11: 규격 - String acctfg = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 12: 계정구분 - String odrfg = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 13: 조달구분 - String unitDc = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 14: 재고단위 - String unitmangDc = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 15: 관리단위 - String unitchngNb = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 16: 환산수량 - String lotFg = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 17: LOT구분 - String useYn = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 18: 사용여부 - String qcFg = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 19: 검사여부 - String setitemFg = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 20: SET품여부 - String reqFg = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 21: 의뢰여부 - String unitLength = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 22: 개당길이 - String unitQty = colIndex < values.length ? getCsvValue(values, colIndex++, emptyColCnt) : ""; // 23: 개당소요량 + // 11번 이후 컬럼은 파싱하지 않음 - 범주이름에 따라 자동값 설정 // 수준으로부터 부모 품번 찾기 String parentPartNo = ""; @@ -3676,136 +3662,28 @@ public class PartMngService extends BaseService { partMap.put("SURFACE_TREATMENT", surfaceTreatment); partMap.put("MAKER", makerValue); // MAKER에 저장 partMap.put("PART_TYPE", partTypeCode); - partMap.put("SPEC", spec.trim()); // 규격 - // 계정구분(ACCTFG) - 한글명 입력 시 코드값으로 변환 - if(!StringUtils.isBlank(acctfg)){ - if(acctfg.matches("\\d+")) { - partMap.put("ACCTFG", acctfg); - } else { - Map acctfgParam = new HashMap(); - acctfgParam.put("CODE_NAME", acctfg.trim()); - Map acctfgResult = sqlSession.selectOne("partMng.getAcctfgCode", acctfgParam); - if(acctfgResult != null && !StringUtils.isBlank((String)acctfgResult.get("code_id"))){ - partMap.put("ACCTFG", acctfgResult.get("code_id")); - } else { - partMap.put("ACCTFG", acctfg); - } - } + // 범주이름에 따라 계정구분, 조달구분 자동 설정 + // 조립품(0001813), 부품(0001812) → 계정구분: 반제품(4), 조달구분: 생산(1) + // 구매품(0000063) → 계정구분: 비용(7), 조달구분: 구매(0) + if("0001813".equals(partTypeCode) || "0001812".equals(partTypeCode)) { + partMap.put("ACCTFG", "4"); + partMap.put("ODRFG", "1"); + } else if("0000063".equals(partTypeCode)) { + partMap.put("ACCTFG", "7"); + partMap.put("ODRFG", "0"); } else { partMap.put("ACCTFG", ""); - } - // 조달구분(ODRFG) - 한글명 입력 시 코드값으로 변환 (0:구매, 1:생산, 8:Phantom) - if(!CommonUtils.isBlank(odrfg)){ - if("구매".equals(odrfg.trim())){ - partMap.put("ODRFG", "0"); - } else if("생산".equals(odrfg.trim())){ - partMap.put("ODRFG", "1"); - } else if("Phantom".equalsIgnoreCase(odrfg.trim())){ - partMap.put("ODRFG", "8"); - } else { - partMap.put("ODRFG", odrfg); // 숫자면 그대로 - } - } else { partMap.put("ODRFG", ""); } - // 재고단위(UNIT_DC) - 코드명 입력 시 코드값으로 변환 - if(!StringUtils.isBlank(unitDc)){ - if(unitDc.trim().matches("\\d+")){ - partMap.put("UNIT_DC", unitDc.trim()); - } else { - Map unitDcParam = new HashMap(); - unitDcParam.put("CODE_NAME", unitDc.trim()); - Map unitDcResult = sqlSession.selectOne("partMng.getUnitDcCode", unitDcParam); - if(unitDcResult != null && !StringUtils.isBlank((String)unitDcResult.get("code_id"))){ - partMap.put("UNIT_DC", unitDcResult.get("code_id")); - } else { - partMap.put("UNIT_DC", unitDc.trim()); - } - } - } else { - partMap.put("UNIT_DC", ""); - } - // 관리단위(UNITMANG_DC) - 코드명 입력 시 코드값으로 변환 - if(!StringUtils.isBlank(unitmangDc)){ - if(unitmangDc.trim().matches("\\d+")){ - partMap.put("UNITMANG_DC", unitmangDc.trim()); - } else { - Map unitmangParam = new HashMap(); - unitmangParam.put("CODE_NAME", unitmangDc.trim()); - Map unitmangResult = sqlSession.selectOne("partMng.getUnitDcCode", unitmangParam); - if(unitmangResult != null && !StringUtils.isBlank((String)unitmangResult.get("code_id"))){ - partMap.put("UNITMANG_DC", unitmangResult.get("code_id")); - } else { - partMap.put("UNITMANG_DC", unitmangDc.trim()); - } - } - } else { - partMap.put("UNITMANG_DC", ""); - } - partMap.put("UNITCHNG_NB", unitchngNb.trim()); - // LOT구분 - 한글명 입력 시 코드값으로 변환 (0:미사용, 1:사용) - if(!CommonUtils.isBlank(lotFg)){ - if("사용".equals(lotFg.trim())){ - partMap.put("LOT_FG", "1"); - } else if("미사용".equals(lotFg.trim())){ - partMap.put("LOT_FG", "0"); - } else { - partMap.put("LOT_FG", lotFg.trim()); - } - } else { - partMap.put("LOT_FG", ""); - } - // 사용여부 - 한글명 입력 시 코드값으로 변환 (0:미사용, 1:사용) - if(!CommonUtils.isBlank(useYn)){ - if("사용".equals(useYn.trim())){ - partMap.put("USE_YN", "1"); - } else if("미사용".equals(useYn.trim())){ - partMap.put("USE_YN", "0"); - } else { - partMap.put("USE_YN", useYn.trim()); - } - } else { - partMap.put("USE_YN", ""); - } - // 검사여부 - 한글명 입력 시 코드값으로 변환 (0:무검사, 1:검사) - if(!CommonUtils.isBlank(qcFg)){ - if("검사".equals(qcFg.trim())){ - partMap.put("QC_FG", "1"); - } else if("무검사".equals(qcFg.trim())){ - partMap.put("QC_FG", "0"); - } else { - partMap.put("QC_FG", qcFg.trim()); - } - } else { - partMap.put("QC_FG", ""); - } - // SET품여부 - 한글명 입력 시 코드값으로 변환 (0:부, 1:여) - if(!CommonUtils.isBlank(setitemFg)){ - if("여".equals(setitemFg.trim())){ - partMap.put("SETITEM_FG", "1"); - } else if("부".equals(setitemFg.trim())){ - partMap.put("SETITEM_FG", "0"); - } else { - partMap.put("SETITEM_FG", setitemFg.trim()); - } - } else { - partMap.put("SETITEM_FG", ""); - } - // 의뢰여부 - 한글명 입력 시 코드값으로 변환 (0:부, 1:여) - if(!CommonUtils.isBlank(reqFg)){ - if("여".equals(reqFg.trim())){ - partMap.put("REQ_FG", "1"); - } else if("부".equals(reqFg.trim())){ - partMap.put("REQ_FG", "0"); - } else { - partMap.put("REQ_FG", reqFg.trim()); - } - } else { - partMap.put("REQ_FG", ""); - } - // 개당길이, 개당소요량 - partMap.put("UNIT_LENGTH", unitLength.trim()); - partMap.put("UNIT_QTY", unitQty.trim()); + // 기본값 설정 + partMap.put("UNIT_DC", "0001400"); // EA + partMap.put("UNITMANG_DC", "0001400"); // EA + partMap.put("UNITCHNG_NB", "1"); + partMap.put("LOT_FG", "1"); // 사용 + partMap.put("USE_YN", "1"); // 사용 + partMap.put("QC_FG", "0"); // 무검사 + partMap.put("SETITEM_FG", "0"); // 부 + partMap.put("REQ_FG", "0"); // 부 partMap.put("NOTE", noteMsg); if(!StringUtils.isBlank(noteMsg) || emptyColCnt.intValue() < 9) { diff --git a/src/com/pms/service/ProjectConceptService.java b/src/com/pms/service/ProjectConceptService.java index 3f54fb0..738c8c0 100644 --- a/src/com/pms/service/ProjectConceptService.java +++ b/src/com/pms/service/ProjectConceptService.java @@ -330,9 +330,10 @@ public class ProjectConceptService { currentStatus = CommonUtils.checkNull(currentResultMap.get("status_title")); - if("수주".equals(currentStatus)){ - createProjectWBSTask(request, paramMap,sqlSession); - } + // WBS 자동생성 주석처리 + // if("수주".equals(currentStatus)){ + // createProjectWBSTask(request, paramMap,sqlSession); + // } if(cnt > 0){ resultMap.put("result", true);