Files
wace_plm/src/com/pms/service/ProcurStandMgmtService.java
chpark da06c4684c Initial commit: WACE PLM with database initialization features
- Add Docker Compose configurations for dev, prod, and standalone environments
- Add database initialization scripts (init-db.sh, init-db-docker.sh)
- Add enhanced start-docker-linux.sh with DB init support
- Add comprehensive database initialization guide
- Support for automatic dbexport.pgsql import on first run
- Include safety checks for production environment
2025-08-29 15:46:08 +09:00

321 lines
8.5 KiB
Java

package com.pms.service;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.pms.common.JsonUtil;
import com.pms.common.Message;
import com.pms.common.SqlMapConfig;
import com.pms.common.bean.PersonBean;
import com.pms.common.utils.CommonUtils;
import com.pms.common.utils.Constants;
import com.pms.common.utils.MailUtil;
@Service
public class ProcurStandMgmtService {
CommonService commonService = null;
@Autowired
ProjectService projectService;
@Autowired
ProductionMngService productionMngService;
@Autowired
InventoryMngService inventoryMngService;
@Autowired
public void setCommonService(CommonService commonService){
this.commonService = commonService;
}
/**
* 대분류(CODE1) 저장
* @param paramMap
* @return
*/
public Map<String,Object> saveCODE1Info(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
HttpSession session = request.getSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String personId = CommonUtils.checkNull(person.getUserId());
paramMap.put("WRITER", personId);
System.out.println("paramMap :: " + paramMap);
sqlSession.insert("procurStandMgmt.saveCODE1Info", paramMap);
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 대분류(CODE1) 정보를 가져온다.
* @param request
* @param paramMap
* @return
*/
public HashMap<String,Object> getCodeInfo(HttpServletRequest request,Map<String,Object> paramMap){
HashMap<String,Object> codeInfo = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
String objid = CommonUtils.checkNull(request.getParameter("OBJID"));
if(!"".equals(objid)){
HashMap sqlParamMap = new HashMap();
sqlParamMap.put("OBJID", objid);
codeInfo = (HashMap)sqlSession.selectOne("procurStandMgmt.getCodeInfo", sqlParamMap);
}
}catch(Exception e){
throw e;
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(codeInfo);
}
/**
* 대분류(CODE1) 삭제한다.
* @param paramMap
* @return
*/
public Map deleteCODE1Info(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkArr[] = (CommonUtils.checkNull(paramMap.get("checkArr"))).split(",");
if(0 == checkArr.length){
checkArr[0] = CommonUtils.checkNull(paramMap.get("checkArr"));
}
if(null != checkArr && 0 < checkArr.length){
Map sqlParamMap = new HashMap();
sqlParamMap.put("checkArr",checkArr);
sqlSession.delete("procurStandMgmt.deleteCODE1Info", sqlParamMap);
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
public List overlapStandardMng(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
//part 중복확인
resultList = sqlSession.selectList("procurStandMgmt.overlapStandardMng", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
public List overlapMaterialCode(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
//part 중복확인
resultList = sqlSession.selectList("procurStandMgmt.overlapMaterialCode", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultList;
}
public Map saveMaterialCode(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
HttpSession session = request.getSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String personId = CommonUtils.checkNull(person.getUserId());
paramMap.put("WRITER",personId);
System.out.println("paramMap :: " + paramMap);
String ACTION_TYPE = CommonUtils.checkNull(paramMap.get("ACTION_TYPE"));
String REVISION = CommonUtils.checkNull(paramMap.get("REVISION"));
/*if("changeDesign".equals(ACTION_TYPE)){
//설계변경 외건은 전부 라스트 0으로 변경
//sqlSession.update("partMng.updateislast", paramMap);
if(REVISION.equals("RE")){
paramMap.put("REVISION", "A");
}else{
paramMap.put("REVISION", CommonUtils.getNextRevision(REVISION));
}
paramMap.put("STATUS", "changing"); //create/changing/release
paramMap.put("EO_DATE", "");
paramMap.put("EO_NO", "");
//part 저장
int cnt = sqlSession.update("partMng.mergePartMngchangeDesign", paramMap);
if(cnt > 0){
paramMap.put("QTY_TEMP", paramMap.get("Q_QTY"));
paramMap.put("STATUS", "beforeEdit");
sqlSession.update("partMng.structureQtySave", paramMap);
}
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
}else{*/
//part 저장
sqlSession.update("procurStandMgmt.mergeMaterialCode", paramMap);
resultMap.put("result", true);
resultMap.put("msg", Message.SAVE_SUCCESS);
/* }*/
sqlSession.commit();
}catch(Exception e){
sqlSession.rollback();
resultMap.put("result", false);
resultMap.put("msg", Message.SAVE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 대분류(CODE1) 정보를 가져온다.
* @param request
* @param paramMap
* @return
*/
public HashMap<String,Object> getMaterialCodeInfo(HttpServletRequest request,Map<String,Object> paramMap){
HashMap<String,Object> codeInfo = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
String objid = CommonUtils.checkNull(request.getParameter("OBJID"));
if(!"".equals(objid)){
HashMap sqlParamMap = new HashMap();
sqlParamMap.put("OBJID", objid);
codeInfo = (HashMap)sqlSession.selectOne("procurStandMgmt.getMaterialCodeInfo", sqlParamMap);
}
}catch(Exception e){
throw e;
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(codeInfo);
}
/**
* 자재코드를 삭제한다.
* @param paramMap
* @return
*/
public Map deleteMaterialCode(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkArr[] = (CommonUtils.checkNull(paramMap.get("checkArr"))).split(",");
if(0 == checkArr.length){
checkArr[0] = CommonUtils.checkNull(paramMap.get("checkArr"));
}
if(null != checkArr && 0 < checkArr.length){
Map sqlParamMap = new HashMap();
sqlParamMap.put("checkArr",checkArr);
sqlSession.delete("procurStandMgmt.deleteMaterialCode", sqlParamMap);
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
sqlSession.rollback();
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
}