2022-10-20 15:13 대결 작업 완료

This commit is contained in:
myname 2022-10-20 15:14:14 +09:00
parent e32320b52d
commit eedaac3063
14 changed files with 318 additions and 28 deletions

View File

@ -18,6 +18,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.kccadr.adjPgrMgr.iam.service.InternalApprovManageVO;
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineService;
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO;
import kcc.kccadr.advcSbmt.service.AdrSbmtLineMgrUsrVO;
@ -118,8 +119,16 @@ public class AdvcAprvlController {
* date : 2022.09.23
*/
@RequestMapping("/kccadr/advcAprvl/popup/advcSbsttAprvlReqPop.do")
public String advcSbsttAprvlReqPop(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception {
public String advcSbsttAprvlReqPop(
@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO
, @ModelAttribute("internalApprovManageVO") InternalApprovManageVO internalApprovManageVO
, ModelMap model
) throws Exception {
System.out.println("========================================");
System.out.println("========================================"+internalApprovManageVO.getSbmtSeq());
System.out.println("========================================"+internalApprovManageVO.getAdrSn());
return "kccadr/advcAprvl/popup/advcSbsttAprvlReqPop";
}

View File

@ -42,4 +42,7 @@ public interface AdrSbmtLineMgrUsrService {
//L-기본결재선
AdrSbmtLineMgrUsrVO selectDefault(AdrSbmtLineMgrUsrVO vo) throws Exception;
//L-대결결재선
AdrSbmtLineMgrUsrVO selectSbstt(AdrSbmtLineMgrUsrVO vo) throws Exception;
}

View File

@ -59,6 +59,7 @@ public class AdrSbmtLineMgrUsrVO extends ComDefaultVO implements Serializable {
private String sbsttUserNm5; //'대리결재자1-이름',
private String sbsttUserNm6; //'대리결재자1-이름',
private String step; //'결재진행단계',
public String getRegisterId() {
return registerId;
@ -294,4 +295,10 @@ public class AdrSbmtLineMgrUsrVO extends ComDefaultVO implements Serializable {
public void setSbsttUserNm6(String sbsttUserNm6) {
this.sbsttUserNm6 = sbsttUserNm6;
}
public String getStep() {
return step;
}
public void setStep(String step) {
this.step = step;
}
}

View File

@ -180,6 +180,10 @@ public class AdrSbmtLineMgrUsrDAO extends EgovAbstractDAO {
public AdrSbmtLineMgrUsrVO selectDefault(AdrSbmtLineMgrUsrVO VO) throws Exception {
return (AdrSbmtLineMgrUsrVO) select("AdrSbmtLineMgrUsrDAO.selectDefault", VO);
}
public AdrSbmtLineMgrUsrVO selectSbstt(AdrSbmtLineMgrUsrVO VO) throws Exception {
return (AdrSbmtLineMgrUsrVO) select("AdrSbmtLineMgrUsrDAO.selectSbstt", VO);
}
/**
* L - Page

View File

@ -125,4 +125,8 @@ public class AdrSbmtLineMgrUsrServiceImpl implements AdrSbmtLineMgrUsrService {
public AdrSbmtLineMgrUsrVO selectDefault(AdrSbmtLineMgrUsrVO VO) throws Exception{
return adrSbmtLineMgrUsrDAO.selectDefault(VO);
}
public AdrSbmtLineMgrUsrVO selectSbstt(AdrSbmtLineMgrUsrVO VO) throws Exception{
return adrSbmtLineMgrUsrDAO.selectSbstt(VO);
}
}

View File

@ -53,7 +53,12 @@ public interface AprvlMgrService {
AprvlMgrVO selectDetail(AprvlMgrVO aprvlMgrVO) throws Exception;
int update(AprvlMgrVO aprvlMgrVO) throws Exception;
int update(AprvlMgrVO aprvlMgrVO
, String p_code_desc
, String p_stat_cd
, String p_adrHstryMgrSeq
, AdrSbmtLineMgrUsrVO adrSbmtLineMgrUsrVO
) throws Exception;
int delete(AprvlMgrVO aprvlMgrVO) throws Exception;

View File

@ -311,8 +311,49 @@ public class AprvlMgrServiceImpl extends EgovAbstractServiceImpl implements Apr
return aprvlMgrDAO.selectDetail(aprvlMgrVO);
}
public int update(AprvlMgrVO aprvlMgrVO) throws Exception{
return aprvlMgrDAO.update(aprvlMgrVO);
public int update(AprvlMgrVO aprvlMgrVO //결재자 변경용 데이터
, String p_code_desc
, String p_stat_cd
, String p_adrHstryMgrSeq
, AdrSbmtLineMgrUsrVO adrSbmtLineMgrUsrVO //대결 이력저장용 데이터
) throws Exception{
//결재선 데이터 변경
int i_ret = aprvlMgrDAO.update(aprvlMgrVO);
//결재 이력 데이터 저장
//저장
String sbmtSbsttSeq = idgenService.getNextStringId();
adrSbmtLineMgrUsrVO.setSbmtSbsttSeq(sbmtSbsttSeq);
adrSbmtMgrHstryService.insert(adrSbmtLineMgrUsrVO
, "관리자>>결재선>대결등록" //String p_code_desc - CC199
, "A002" //String p_stat_cd
, ""
);
//AdrSbmtLineMgrUsrVO
//이력관리를 위한 adr_hstry_mgr 데이터 관리 추가 - 2022-08-09
//adr_hstry_mgr에 넣기 - 시작
adrHstryMgrDAO.insert4Func(aprvlMgrVO.getAdrSeq()
//, "상태코드수정"
, p_code_desc
//, adjReqMgrVO.getStatCd()
, p_stat_cd
, aprvlMgrVO.getFrstRegisterId()
, aprvlMgrVO.getLastUpdusrId()
, p_adrHstryMgrSeq //, String p_adrHstryMgrSeq
, "UI" //, String p_useCd I/U/UI/II/RE
, "adr_sbmt_mgr" //, String p_tableName
, "" //, String p_updateQuery
);
//adr_hstry_mgr에 넣기 -
return i_ret;
}
public int delete(AprvlMgrVO aprvlMgrVO) throws Exception{

View File

@ -165,6 +165,81 @@ public class AprvlMgr202210Controller {
return modelAndView;
}
/**대결자 저장
* 결재 상태 저장 1단계
* 1.결재선 확인
* 2.조정사건결재에 저장
* 3.조정부 테이블에 저장
* 4.마스터 상태값 변경
* 5.결과 통보
*/
@RequestMapping(value="/kccadr/aprvlMgr202210/aprvl/saveSbsttAprvlStep1Ajax.do")
public ModelAndView saveSbsttAprvlStep1Ajax(
HttpServletRequest request
, AdrSbmtLineMgrUsrVO adrSbmtLineMgrUsrVO
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//System.out.println("adjstReqStatusTabStatusStep1Ajax");
try {
//로그인 정보 획득 - ssoLoginVO 사용
LoginVO loginVO = checkLoginUtil.getLoginVO();
//step1.기본 결재선 저장
adrSbmtLineMgrUsrVO.setRegisterId(loginVO.getUniqId()); //사용 대상자
adrSbmtLineMgrUsrVO.setFrstRegisterId(loginVO.getUniqId()); //등록자
adrSbmtLineMgrUsrVO.setLastUpdusrId(loginVO.getUniqId()); //등록자
adrSbmtLineMgrUsrVO.setSbmtIdSbstt(adrSbmtLineMgrUsrVO.getSbsttSbmtId1());
adrSbmtLineMgrUsrVO.setSbmtIdBef(adrSbmtLineMgrUsrVO.getSbmtId1());
//adrSbmtLineMgrUsrVO.setSbmtTyCd("000000");//000000-공통으로 관리 한다.
AprvlMgrVO aprvlMgrVO = new AprvlMgrVO();
aprvlMgrVO.setAdrSeq(adrSbmtLineMgrUsrVO.getAdrSeq());
aprvlMgrVO.setAdrSn(adrSbmtLineMgrUsrVO.getAdrSn());
aprvlMgrVO.setSbmtSeq(adrSbmtLineMgrUsrVO.getSbmtSeq());
//하기는 대결자 조건에 따라서 분기 처리로 저장
if ("3".equals(adrSbmtLineMgrUsrVO.getStep())) {
aprvlMgrVO.setSbmtId3(adrSbmtLineMgrUsrVO.getSbsttSbmtId1());
adrSbmtLineMgrUsrVO.setAgntSbmtId("ID3");
}else if ("2".equals(adrSbmtLineMgrUsrVO.getStep())) {
aprvlMgrVO.setSbmtId2(adrSbmtLineMgrUsrVO.getSbsttSbmtId1());
adrSbmtLineMgrUsrVO.setAgntSbmtId("ID2");
}else {
aprvlMgrVO.setSbmtId1(adrSbmtLineMgrUsrVO.getSbsttSbmtId1());
adrSbmtLineMgrUsrVO.setAgntSbmtId("ID1");
}
//실제로 대결 변경 전용의 update이다
aprvlMgrService.update(
aprvlMgrVO
, "관리자>>내부결재목록>결재요청>P>대결" //String p_code_desc - CC199
, "A003" //String p_stat_cd
, ""
, adrSbmtLineMgrUsrVO
);
modelAndView.addObject("status", "success");
}catch(Exception ex) {
modelAndView.addObject("status", "fail");
modelAndView.addObject("message", "기본 결재선 생성 실패.-step0");
}
return modelAndView;
}
/**
* 결재 상태 저장 1단계
* 1.결재선 확인
@ -430,4 +505,43 @@ public class AprvlMgr202210Controller {
return modelAndView;
}
//결재선 tree 대결자 정보 가져오기
@RequestMapping("/kccadr/aprvlMgr202210/advcSbsttAprvlReqDefaultLoadAjax.do")
public ModelAndView advcSbsttAprvlReqDefaultLoadAjax(
AdrSbmtLineMgrUsrVO adrSbmtLineMgrUsrVO
, ModelMap model
, HttpServletResponse response
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
/*
ObjectMapper mapper = new ObjectMapper();
//response.setHeader("Content-Type", "text/html;charset=utf-8");
PrintWriter out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"));
*/
//1depth로 사용자 정보 가져오기
AdrSbmtLineMgrUsrVO resultData = null;
try {
//로그인 정보 획득 - ssoLoginVO 사용
LoginVO loginVO = checkLoginUtil.getLoginVO();
adrSbmtLineMgrUsrVO.setRegisterId(loginVO.getUniqId());
resultData = adrSbmtLineMgrUsrService.selectSbstt(adrSbmtLineMgrUsrVO);
modelAndView.addObject("result", "success");
modelAndView.addObject("resultData", resultData);
}catch(Exception ex) {
modelAndView.addObject("result", "fail");
modelAndView.addObject("message", "결재선 생성 실패.-step0");
}
//mapper.writeValue(out, resultList);
//out.flush();
return modelAndView;
}
}

View File

@ -550,5 +550,31 @@
ORDER BY aaaaaa.ord
LIMIT 1
</select>
</select>
<!-- 정보 L -->
<select id="AdrSbmtLineMgrUsrDAO.selectSbstt" parameterClass="AdrSbmtLineMgrUsrVO" resultClass="AdrSbmtLineMgrUsrVO">
SELECT a.sbmt_id1 AS sbmtId1 ,
b1.user_nm userNm1 ,
a.sbmt_id2 AS sbmtId2 ,
b2.user_nm userNm2 ,
a.sbmt_id3 AS sbmtId3 ,
b3.user_nm userNm3
FROM adr_sbmt_mgr a
LEFT OUTER JOIN lettnemplyrinfo b1
ON (
a.sbmt_id1=b1.esntl_id
)
LEFT OUTER JOIN lettnemplyrinfo b2
ON (
a.sbmt_id2=b2.esntl_id
)
LEFT OUTER JOIN lettnemplyrinfo b3
ON (
a.sbmt_id3=b3.esntl_id
)
WHERE adr_seq =#adrSeq#
AND adr_sn =#adrSn#
AND sbmt_seq=#sbmtSeq#
</select>
</sqlMap>

View File

@ -534,7 +534,69 @@
<!-- 주소록 무료대행 등록 U -->
<update id="AprvlMgrDAO.update" parameterClass="aprvlMgrVO">
UPDATE <include refid="AprvlMgrDAO.table_name"/>
SET
last_updt_pnttm = NOW()
, last_updusr_id = #lastUpdusrId#
<isNotEmpty property="sbmtTy">
, sbmt_ty = #sbmtTy#
</isNotEmpty><isNotEmpty property="sbmtMemTy">
, sbmt_mem_ty = #sbmtMemTy#
</isNotEmpty><isNotEmpty property="sbmtStepCnt">
, sbmt_step_cnt = #sbmtStepCnt#
</isNotEmpty><isNotEmpty property="sbmtId1">
, sbmt_id1 = #sbmtId1#
</isNotEmpty><isNotEmpty property="sbmtYn1">
, sbmt_yn1 = #sbmtYn1#
</isNotEmpty><isNotEmpty property="sbmtDe1">
, sbmt_de1 = #sbmtDe1#
</isNotEmpty><isNotEmpty property="sbmtId2">
, sbmt_id2 = #sbmtId2#
</isNotEmpty><isNotEmpty property="sbmtYn2">
, sbmt_yn2 = #sbmtYn2#
</isNotEmpty><isNotEmpty property="sbmtDe2">
, sbmt_de2 = #sbmtDe2#
</isNotEmpty><isNotEmpty property="sbmtId3">
, sbmt_id3 = #sbmtId3#
</isNotEmpty><isNotEmpty property="sbmtYn3">
, sbmt_yn3 = #sbmtYn3#
</isNotEmpty><isNotEmpty property="sbmtDe3">
, sbmt_de3 = #sbmtDe3#
</isNotEmpty><isNotEmpty property="sbmtId4">
, sbmt_id4 = #sbmtId4#
</isNotEmpty><isNotEmpty property="sbmtYn4">
, sbmt_yn4 = #sbmtYn4#
</isNotEmpty><isNotEmpty property="sbmtDe4">
, sbmt_de4 = #sbmtDe4#
</isNotEmpty><isNotEmpty property="sbmtId5">
, sbmt_id5 = #sbmtId5#
</isNotEmpty><isNotEmpty property="sbmtYn5">
, sbmt_yn5 = #sbmtYn5#
</isNotEmpty><isNotEmpty property="sbmtDe5">
, sbmt_de5 = #sbmtDe5#
</isNotEmpty><isNotEmpty property="sbmtId6">
, sbmt_id6 = #sbmtId6#
</isNotEmpty><isNotEmpty property="sbmtYn6">
, sbmt_yn6 = #sbmtYn6#
</isNotEmpty><isNotEmpty property="sbmtDe6">
, sbmt_de6 = #sbmtDe6#
</isNotEmpty>
WHERE adr_seq = #adrSeq#
AND adr_sn = #adrSn#
AND sbmt_seq = #sbmtSeq#
</update>
<!-- 주소록 무료대행 삭제 D -->

View File

@ -806,6 +806,7 @@
<input type="hidden" name="adrSn" id="adrSn" value="<c:out value='${info.adrSn}'/>"/>
<input type="hidden" name="sbmtSeq" id="sbmtSeq" value="<c:out value='${info.sbmtSeq}'/>"/>
<input type="hidden" name="sbmtTy" id="sbmtTy" value="<c:out value='${info.sbmtTy}'/>"/>
<input type="hidden" name="step" id="step" value="<c:out value='${info.step}'/>"/> <!-- 현재 결재 진행 단계 -->
<!-- 오프라인/온라인 구분 -->
<input type="hidden" name="reqOlCd" id="reqOlCd" value="<c:out value='${info.reqOlCd}'/>"/>
@ -1017,7 +1018,11 @@
<div class="btn_wrap btn_layout01">
<div class="area_left">
<button type="button" class="btnType02" onclick="fnc_sbstt_aprvl_pop('a'); return false;">대결</button>
<%-- 대결버튼은 현재 결재자 이거나 최고관리자인 경우만 나타나게 --%>
<c:if test="${fn:indexOf(info.targetId, LoginVO.uniqId) ne -1 or auth eq 'ROLE_ADMIN'}">
<button type="button" class="btnType02" onclick="fnc_sbstt_aprvl_pop('${info.step}'); return false;">대결</button>
</c:if>
<%-- 취하종결 상세보기 --%>
<%-- <c:if test="${(info.statCd gt KccadrConstants.ADR_DEPT_SLCT_RETN

View File

@ -861,6 +861,7 @@ function fn_save_aprvl() {
success : function(returnData, status) {
if (returnData.status == "success") {
alert("결재요청 완료되었습니다.");
top.window.opener.parent.location.reload();
fncGoClose();
}else{
alert("ERROR");

View File

@ -836,17 +836,15 @@ function addSbmtPerson(pram, type){
//결재요청
function fn_save_aprvl() {
//결자 ID 체크
//결자 ID 체크
var smbtForm = document.smbtForm;
if(""==smbtForm.sbmtId1.value
|| ""==smbtForm.sbmtId2.value
|| ""==smbtForm.sbmtId3.value
if(""==smbtForm.sbsttSbmtId1.value
){
alert("결자는 필수 값입니다"); return;
alert("대결자는 필수 값입니다"); return;
}
if(!confirm("저장하시겠습니까?")) return;
@ -881,19 +879,19 @@ function fn_save_menuInfo() {
//결재자 ID 체크
var smbtForm = document.smbtForm;
//alert(smbtForm.sbsttSbmtId1.value);
if(""==smbtForm.sbmtId1.value
|| ""==smbtForm.sbmtId2.value
|| ""==smbtForm.sbmtId3.value
if(""==smbtForm.sbsttSbmtId1.value
){
alert("결자는 필수 값입니다"); return;
alert("대결자는 필수 값입니다"); return;
}
if(!confirm("저장하시겠습니까?")) return;
var url = "";
url = "<c:url value='/kccadr/aprvlMgr202210/aprvl/saveDefaultAprvlStep1Ajax.do'/>";
//url = "<c:url value='/kccadr/aprvlMgr202210/aprvl/saveDefaultAprvlStep1Ajax.do'/>";
url = "<c:url value='/kccadr/aprvlMgr202210/aprvl/saveSbsttAprvlStep1Ajax.do'/>";
var params = $(smbtForm).serialize();
$.ajax({
type:"POST",
@ -902,14 +900,18 @@ function fn_save_menuInfo() {
dataType:'json',
success : function(returnData, status) {
if (returnData.status == "success") {
alert("기본결재선이 지정되었습니다.");
//alert("대결자가 지정되었습니다.");
alert("결투가 신청되었습니다.");
top.window.opener.parent.location.reload();
fncGoClose();
}else{
alert("ERROR");
}
},
error : function(request , status, error) {
alert("기본결재선이 저장이 실패되었습니다.");
alert("대결자 저장이 실패되었습니다.");
},
complete : function () {
$("#kccadr_sbmt").jstree("refresh");
@ -924,7 +926,7 @@ function fn_load_default() {
var smbtForm = document.smbtForm;
var url = "";
url = "<c:url value='/kccadr/aprvlMgr202210/advcAprvlReqDefaultLoadAjax.do' />";
url = "<c:url value='/kccadr/aprvlMgr202210/advcSbsttAprvlReqDefaultLoadAjax.do' />";
var params = $(smbtForm).serialize();
$.ajax({
@ -983,12 +985,13 @@ function setSbmtPerson(pram){
<!-- 결재선의 기본코드값(공통코드)은 000000 -->
<input type="hidden" name="adrSeq" id="adrSeq" value="<c:out value="${AdrSbmtLineMgrUsrVO.adrSeq}" />"/>
<input type="hidden" name="adrSn" id="adrSn" value="<c:out value="${AdrSbmtLineMgrUsrVO.adrSn}" />"/>
<input type="hidden" name="sbmtTyCd" id="sbmtTyCd" value="<c:out value="${AdrSbmtLineMgrUsrVO.sbmtTyCd}" />"/>
<input type="hidden" name="adrSeq" id="adrSeq" value="<c:out value="${internalApprovManageVO.adrSeq}" />"/>
<input type="hidden" name="adrSn" id="adrSn" value="<c:out value="${internalApprovManageVO.adrSn}" />"/>
<input type="hidden" name="sbmtSeq" id="sbmtSeq" value="<c:out value="${internalApprovManageVO.sbmtSeq}" />"/>
<!-- <input type="hidden" name="sbmtTyCd" id="sbmtTyCd" value="000000"/> -->
<input type="hidden" name="sbmtLineNm" id="sbmtLineNm" value="default"/>
<input type="hidden" name="basicsSbmtLineIs" id="basicsSbmtLineIs" value="Y"/>
<input type="hidden" name="step" id="step" value="<c:out value="${internalApprovManageVO.step}" />"/>
</form>
@ -1021,11 +1024,13 @@ function setSbmtPerson(pram){
<dl>
<dt>결재자</dt>
<dd>
<span id="sbmtPerson1">결재자1</span>
<span id="sbmtPerson1">결재자1</span>
<!--
<div class="button_box">
<button type="button" class="btn_reset" onclick="btnReset(this);">초기화</button>
<button type="button" class="btn_pay" onclick="proxyPay(this, '1');">대결</button>
</div>
-->
</dd>
</dl>
</div>
@ -1038,11 +1043,13 @@ function setSbmtPerson(pram){
<dl>
<dt>대결자</dt>
<dd>
<span id="confront1">결재자1</span>
<span id="confront1"></span>
<!--
<div class="button_box">
<button type="button" class="btn_reset" onclick="btnReset(this);">초기화</button>
<button type="button" class="btn_pay" onclick="proxyPay(this, '1');">대결</button>
</div>
-->
</dd>
</dl>
</div>
@ -1095,7 +1102,7 @@ function setSbmtPerson(pram){
</div>
<div class="btn_wrap btn_layout04">
<!-- <button type="button" class="btnType01" onclick="fn_save_menuInfo();">기본결재선 지정</button> -->
<button type="button" class="btnType06" onclick="fn_save_aprvl();">저장</button>
<button type="button" class="btnType06" onclick="fn_save_menuInfo();">저장</button>
<button type="button" class="btnType03" onclick="fncGoClose();">닫기</button>
</div>
</div>

View File

@ -46,10 +46,12 @@ function jstreeInit() {
"check_callback" : true,
"themes" : { "stripes" : true },
"data" : {
"url" : "<c:url value='/sym/mnu/mcm/EgovMenuCreatSelectJtreeAjax.do'/>",
//"url" : "<c:url value='/sym/mnu/mcm/EgovMenuCreatSelectJtreeAjax.do'/>",
"url" : "<c:url value='/kccadr/adjReqMgOff/adjReqMgrOffAppReqPopAjax.do'/>",
"dataType" : "json",
"data" : function (node) {
return {'id' : node.id, 'authorCode' : $('#authorCode').val() };
//return {'id' : node.id, 'authorCode' : $('#authorCode').val() };
return {'id' : "CC401", 'authorCode' : $('#authorCode').val() };
}
}
},