ERP-node/src/com/pms/service/ProductionPlanningService.java

696 lines
22 KiB
Java
Raw Normal View History

2025-08-21 09:41:46 +09:00
package com.pms.service;
import java.util.ArrayList;
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.ibatis.session.SqlSession;
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;
@Service
public class ProductionPlanningService {
/**
* 이슈관리 상세 조회
* @param paramMap
* @return
*/
public Map issueFormPopUp(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("productionplanning.selectPlanningIssueInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/** 이슈등록
* @param request
* @param paramMap
* @return
*/
public Map saveissueInfo(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 writer = CommonUtils.checkNull(person.getUserId());
paramMap.put("writer", writer);
int cnt = sqlSession.update("productionplanning.mergeissueInfo", paramMap);
if(cnt > 0){
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;
}
/**
* 이슈 삭제
* @param request
* @param paramMap
* @return
*/
public Map planningDelete(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkParam = CommonUtils.checkNull(paramMap.get("checkArr"));
String[] targetObjIdList = checkParam.split(",");
if(null != targetObjIdList && 0 < targetObjIdList.length){
HttpSession session = request.getSession();
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String userId = person.getUserId();
for(int i=0;i<targetObjIdList.length;i++){
String objId = CommonUtils.checkNull(targetObjIdList[i]);
HashMap sqlParamMap = new HashMap();
sqlParamMap.put("OBJID", objId);
sqlSession.delete("productionplanning.planningDelete",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();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 이슈 배포
* @param request
* @param paramMap
* @return
*/
public Map planningRelease(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkParam = CommonUtils.checkNull(paramMap.get("checkArr"));
String[] targetObjIdList = checkParam.split(",");
if(null != targetObjIdList && 0 < targetObjIdList.length){
HttpSession session = request.getSession();
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String userId = person.getUserId();
for(int i=0;i<targetObjIdList.length;i++){
String objId = CommonUtils.checkNull(targetObjIdList[i]);
HashMap sqlParamMap = new HashMap();
sqlParamMap.put("OBJID", objId);
sqlSession.update("productionplanning.planningrelease",sqlParamMap);
}
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", "배포되었습니다");
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", "배포에 실패하였습니다");
sqlSession.rollback();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 출고관리 PopUp 저장
* @param paramMap
* @return
*/
public Map<String,Object> saveReleaseMgmtInfo(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
String releaseWriter = CommonUtils.checkNull(paramMap.get("RELEASE_WRITER"));
String releaseDate = CommonUtils.checkNull(paramMap.get("RELEASE_DATE"));
if("".equals(releaseDate)){
paramMap.put("STATUS", "0000200");
}else{
paramMap.put("STATUS", "0000201");
}
paramMap.put("WRITER", releaseWriter);
System.out.println("paramMap :: " + paramMap);
sqlSession.insert("releaseMgmt.saveReleaseMgmtInfo", 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;
}
/**
* 조립 WBS
* @param paramMap
* @return
*/
public List getassemblyWbsList(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> spareList = new ArrayList();
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
spareList = sqlSession.selectList("productionplanning.selectStructureAscendingList", paramMap);
int maxLevel = 0;
if(null != spareList && 0 < spareList.size()){
for(int i=0;i<spareList.size();i++){
Map resultMap = new HashMap();
resultMap = (HashMap)spareList.get(i);
int resultLevel = Integer.parseInt(CommonUtils.checkNull(resultMap.get("LEV"),"0"));
if(maxLevel < resultLevel){
maxLevel = resultLevel;
}
}
for(int i=0;i<spareList.size();i++){
Map resultMap = new HashMap();
resultMap = (HashMap)spareList.get(i);
resultMap.put("MAX_LEVEL", maxLevel);
int level = Integer.parseInt(CommonUtils.checkNull(resultMap.get("LEV"),"0"));
for(int j=0;j<maxLevel;j++){
String levelSymbol = "";
if((j+1) == level){
levelSymbol = "*";
}else{
levelSymbol = "";
}
resultMap.put("LEV_"+Integer.toString((j+1)), levelSymbol);
}
resultList.add(resultMap);
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/** 공정등록
* @param request
* @param paramMap
* @return
*/
public Map saveassemblyList(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());
String[] targetObjList = request.getParameterValues("PART_OBJID"); //PART_BOM_QTY_OBJID
String[] targetObjList2 = request.getParameterValues("CHILD_OBJID"); //PART_BOM_QTY_OBJID
if(null != targetObjList && 0 < targetObjList.length){
//for(String PART_BOM_QTY_OBJID:targetObjList){
Map saveMap = new HashMap();
Map dateMap = new HashMap();
for(int i=0; i<targetObjList.length; i++){
String objid = CommonUtils.nvl(CommonUtils.getValueInArray(i,request.getParameterValues("OBJID")),CommonUtils.createObjId());
saveMap.put("OBJID", objid);
saveMap.put("CHILD_OBJID", targetObjList2[i]);
saveMap.put("PART_OBJID", targetObjList[i]);
saveMap.put("PARENT_OBJID" , CommonUtils.checkNull(CommonUtils.getValueInArray(i,request.getParameterValues("PARENT_OBJID"))));
//saveMap.put("RECEIVE_DATE" , CommonUtils.checkNull(CommonUtils.getValueInArray(i,request.getParameterValues("RECEIVE_DATE"))));
//saveMap.put("RECEIVE_QTY" , CommonUtils.checkNull(CommonUtils.getValueInArray(i,request.getParameterValues("RECEIVE_QTY"))));
//saveMap.put("RECEIVE_USER_ID" , CommonUtils.checkNull(CommonUtils.getValueInArray(i,request.getParameterValues("RECEIVE_USER_ID"))));
saveMap.put("ASSEMBLY_USER_ID" , CommonUtils.checkNull(CommonUtils.getValueInArray(i,request.getParameterValues("ASSEMBLY_USER_ID"))));
//saveMap.put("TRANSFER_USER_ID" , CommonUtils.checkNull(CommonUtils.getValueInArray(i,request.getParameterValues("TRANSFER_USER_ID"))));
saveMap.put("ASSEMBLY_DATE" , CommonUtils.checkNull(CommonUtils.getValueInArray(i,request.getParameterValues("ASSEMBLY_DATE"))));
saveMap.put("INSOURCING" , CommonUtils.checkNull(paramMap.get("INSOURCING_"+targetObjList[i])));
saveMap.put("OUTSOURCING" , CommonUtils.checkNull(paramMap.get("OUTSOURCING_"+targetObjList[i])));
/*saveMap.put("INSOURCING" , CommonUtils.checkNull(CommonUtils.getValueInArray(i,request.getParameterValues("INSOURCING"))));
saveMap.put("OUTSOURCING" , CommonUtils.checkNull(CommonUtils.getValueInArray(i,request.getParameterValues("OUTSOURCING"))));*/
saveMap.put("WRITER", personId);
saveMap.put("OBJID", objid);
System.out.println("saveMap -->"+saveMap);
sqlSession.update("productionplanning.mergeassemblyList", saveMap);
}
dateMap = sqlSession.selectOne("productionplanning.selectAssemblyDate", paramMap);
dateMap.putAll(paramMap);
sqlSession.update("project.mergeAssemblyDate",dateMap);
}
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;
}
/**
* 담당자별 작업현황 리스트 (프로젝트)
* @param paramMap
* @return
*/
public List getWorkStatusByImployeeList(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
//Map pageMap = (HashMap)sqlSession.selectOne("productionplanning.workStatusByImployeeListCnt", paramMap);
//pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap);
///paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END")));
//paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START")));
resultList = (ArrayList)sqlSession.selectList("productionplanning.workStatusByImployeeList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* 담당자별 작업현황 리스트 (비프로젝트)
* @param paramMap
* @return
*/
public List getWorkStatusByImployeeNPList(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
resultList = (ArrayList)sqlSession.selectList("productionplanning.workStatusByImployeeNPList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* 프로젝트별 작업현황 리스트
* @param paramMap
* @return
*/
public List getworkStatusByProjectList(HttpServletRequest request,Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), Constants.ADMIN_COUNT_PER_PAGE+"");
paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage));
//Map pageMap = (HashMap)sqlSession.selectOne("productionplanning.workStatusByImployeeListCnt", paramMap);
//pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap);
///paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END")));
//paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START")));
resultList = (ArrayList)sqlSession.selectList("productionplanning.workStatusByProjectList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
/**
* 생산관리 -> 공정실적 등록 History 조회
* @param paramMap
* @return
*/
public List getAssemblyWbsHistoryInfo(HttpServletRequest request, Map paramMap){
List<Map<String,Object>> resultList = new ArrayList();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession();
try{
resultList = sqlSession.selectList("productionplanning.getAssemblyWbsHistoryList", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return CommonUtils.toUpperCaseMapKey(resultList);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public Map deleteassemblyWbsHistoryList(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
int cnt = sqlSession.update("productionplanning.deleteassemblyWbsHistoryList", paramMap);
if(cnt > 0){
resultMap.put("result", true);
resultMap.put("msg", Message.DELETE_SUCCESS);
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", Message.DELETE_FAILED);
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/** 인수인계 History 내용을 저장한다.
* @param request
* @param paramMap
* @return
*/
public Map saveAssemblyWbsHistory(HttpServletRequest request, Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
paramMap.put("WRITER", person.getUserId());
String parentObjId = CommonUtils.checkNull(request.getParameter("projectObjId"));
String partObjList[] = request.getParameterValues("OBJID");
if(parentObjId != null){
HashMap sqlParamMap = new HashMap();
sqlParamMap.put("parentObjId", parentObjId);
sqlSession.delete("productionplanning.deleteAllAssemblyHistoryList",sqlParamMap);
}
if(null != partObjList && 0 < partObjList.length){
for(String targetObjId:partObjList){
Map sqlParamMep = new HashMap();
sqlParamMep.put("OBJID" , targetObjId);
sqlParamMep.put("PART_OBJID" , CommonUtils.checkNull(request.getParameter("PART_OBJID_"+targetObjId )));
sqlParamMep.put("PARENT_OBJID" , CommonUtils.checkNull(request.getParameter("PARENT_OBJID_"+targetObjId )));
sqlParamMep.put("TRANSFER_USER_ID" , CommonUtils.checkNull(request.getParameter("TRANSFER_USER_ID_"+targetObjId )));
sqlParamMep.put("RECEIVE_DATE" , CommonUtils.checkNull(request.getParameter("RECEIVE_DATE_"+targetObjId )));
sqlParamMep.put("RECEIVE_QTY" , CommonUtils.checkNull(request.getParameter("RECEIVE_QTY_"+targetObjId )));
sqlParamMep.put("RECEIVE_USER_ID" , CommonUtils.checkNull(request.getParameter("RECEIVE_USER_ID_"+targetObjId )));
sqlParamMep.put("WRITER" , paramMap.get("WRITER"));
System.out.println("sqlParamMep::"+sqlParamMep);
sqlSession.update("productionplanning.saveAssemblyWbsHistory", sqlParamMep);
}
}
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;
}
/**
* 작업일지 상세 조회
* @param paramMap
* @return
*/
public Map workDiaryFormPopUp(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultMap = sqlSession.selectOne("productionplanning.selectWorkDiaryInfo", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return resultMap;
}
/** 작업일지 등록
* @param request
* @param paramMap
* @return
*/
public Map saveWorkDiaryInfo(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
List resultTempList = new ArrayList();
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN);
List<Map<String, Object>> dataList = JsonUtil.JsonToList(CommonUtils.checkNull(paramMap.get("dataListJson")));
if(CommonUtils.isNotEmpty(dataList)){
for (Map<String, Object> data : dataList) {
String OBJID = CommonUtils.checkNull(data.get("OBJID"));
if (OBJID.isEmpty()) {
OBJID = CommonUtils.createObjId();
}
paramMap.put("objId" , OBJID);
paramMap.put("division" , data.get("DIVISION"));
paramMap.put("project_objid" , data.get("CONTRACT_OBJID"));
paramMap.put("unit_code" , data.get("UNIT_CODE"));
paramMap.put("task_name" , data.get("TASK_NAME"));
paramMap.put("work_start_date" , data.get("WORK_START_DATE"));
paramMap.put("work_end_date" , data.get("WORK_END_DATE"));
paramMap.put("work_hour" , data.get("WORK_HOUR"));
paramMap.put("sourcing_type" , data.get("SOURCING_TYPE"));
paramMap.put("worker_id" , data.get("WORKER_ID"));
paramMap.put("remark" , data.get("REMARK"));
paramMap.put("production_type" , data.get("PRODUCTION_TYPE"));
paramMap.put("writer" , person.getUserId());
sqlSession.insert("productionplanning.mergeWorkDiaryInfo", 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;
}
/**
* 작업일지 삭제
* @param request
* @param paramMap
* @return
*/
public Map workDiaryDelete(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkParam = CommonUtils.checkNull(paramMap.get("checkArr"));
String[] targetObjIdList = checkParam.split(",");
if(null != targetObjIdList && 0 < targetObjIdList.length){
HttpSession session = request.getSession();
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String userId = person.getUserId();
for(int i=0;i<targetObjIdList.length;i++){
String objId = CommonUtils.checkNull(targetObjIdList[i]);
HashMap sqlParamMap = new HashMap();
sqlParamMap.put("OBJID", objId);
sqlSession.delete("productionplanning.workDiaryDelete",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();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
/**
* 작업일지 팀장 확인
* @param request
* @param paramMap
* @return
*/
public Map workDiaryConfirm(HttpServletRequest request,Map paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
try{
String checkParam = CommonUtils.checkNull(paramMap.get("checkArr"));
String[] targetObjIdList = checkParam.split(",");
if(null != targetObjIdList && 0 < targetObjIdList.length){
HttpSession session = request.getSession();
sqlSession = SqlMapConfig.getInstance().getSqlSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String userId = person.getUserId();
for(int i=0;i<targetObjIdList.length;i++){
String objId = CommonUtils.checkNull(targetObjIdList[i]);
HashMap sqlParamMap = new HashMap();
sqlParamMap.put("OBJID", objId);
sqlSession.update("productionplanning.workDiaryConfirm",sqlParamMap);
}
sqlSession.commit();
resultMap.put("result", true);
resultMap.put("msg", "확인되었습니다");
}
}catch(Exception e){
resultMap.put("result", false);
resultMap.put("msg", "확인에 실패하였습니다");
sqlSession.rollback();
throw e;
}finally{
sqlSession.close();
}
return resultMap;
}
}