fix : 외사첩보망 견문관리 운영실적 중간저장
parent
019c16f8dd
commit
2e404f0f3e
|
|
@ -2,6 +2,7 @@ package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork;
|
|||
|
||||
import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyze;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyzeApprv;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlan;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlanApprv;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.service.IntelligenceNetworkService;
|
||||
|
|
@ -279,6 +280,7 @@ public class IntelligenceNetworkController { // 첩보수집활동 > 해양외
|
|||
public ModelAndView intelligenceAnalyzeViewModal(@AuthenticationPrincipal UserInfo loginUser, IntelligenceAnalyze ia){
|
||||
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyzeViewModal");
|
||||
ia = intelligenceNetworkService.selectIntelligenceAnalyze(ia);
|
||||
ia.setApprvList(intelligenceNetworkService.selectIntelligenceAnalyzeApprv(ia));
|
||||
mav.addObject("ia", ia);
|
||||
mav.addObject("userSeq",loginUser.getUserSeq());
|
||||
//메뉴권한 확인
|
||||
|
|
@ -286,6 +288,15 @@ public class IntelligenceNetworkController { // 첩보수집활동 > 해양외
|
|||
mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/intelligenceAnalyzeList/all").get(0).getApprovalAuth());
|
||||
return mav;
|
||||
}
|
||||
|
||||
@PostMapping("/intelligenceAnalyzeChange")
|
||||
public Integer intelligenceAnalyzeChange(@AuthenticationPrincipal UserInfo loginUser, IntelligenceAnalyzeApprv apprv){
|
||||
apprv.setUserSeq(loginUser.getUserSeq());
|
||||
apprv.setUserGrd(loginUser.getTitleCd());
|
||||
apprv.setUserNm(loginUser.getUserNm());
|
||||
apprv.setSaveDt(LocalDateTime.now());
|
||||
return intelligenceNetworkService.intelligenceAnalyzeChange(apprv);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,13 +34,13 @@ public class IntelligenceAnalyze extends BaseModel {
|
|||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate iaEdate;
|
||||
@Column(name = "fi_cnt")
|
||||
private Integer fiCnt;
|
||||
private Integer fiCnt=0;
|
||||
@Column(name = "fa_cnt")
|
||||
private Integer faCnt;
|
||||
private Integer faCnt=0;
|
||||
@Column(name = "work_cnt")
|
||||
private Integer workCnt;
|
||||
private Integer workCnt=0;
|
||||
@Column(name = "arrest_cnt")
|
||||
private Integer arrestCnt;
|
||||
private Integer arrestCnt=0;
|
||||
@Column(name = "foreign_affairs")
|
||||
private String foreignAffairs;
|
||||
@Column(name = "work")
|
||||
|
|
@ -71,6 +71,8 @@ public class IntelligenceAnalyze extends BaseModel {
|
|||
@Transient
|
||||
private String userType;
|
||||
@Transient
|
||||
private List<IntelligenceAnalyzeApprv> apprvList;
|
||||
@Transient
|
||||
private List<Integer> affairList;
|
||||
@Transient
|
||||
private Integer totalCnt;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model;
|
||||
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicUpdate;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@NoArgsConstructor
|
||||
@DynamicInsert
|
||||
@DynamicUpdate
|
||||
@Table(name = "intelligence_analyze_apprv")
|
||||
@IdClass(IntelligenceAnalyzeApprv.IntelligenceAnalyzeApprvId.class)
|
||||
public class IntelligenceAnalyzeApprv {
|
||||
@Id
|
||||
@Column(name = "ia_key")
|
||||
private Integer iaKey;
|
||||
@Id
|
||||
@Column(name = "apprv_seq")
|
||||
private Integer apprvSeq;
|
||||
@Column(name = "state")
|
||||
private String state;
|
||||
@Column(name = "user_seq")
|
||||
private Integer userSeq;
|
||||
@Column(name = "user_grd")
|
||||
private String userGrd;
|
||||
@Column(name = "user_nm")
|
||||
private String userNm;
|
||||
@Column(name = "opinion")
|
||||
private String opinion;
|
||||
@Column(name = "Instruction")
|
||||
private String Instruction;
|
||||
@Column(name = "save_dt")
|
||||
private LocalDateTime saveDt;
|
||||
|
||||
@Embeddable
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class IntelligenceAnalyzeApprvId implements Serializable {
|
||||
private Integer iaKey;
|
||||
private Integer apprvSeq;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository;
|
||||
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyzeApprv;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
|
||||
public interface IntelligenceAnalyzeApprvRepository extends JpaRepository<IntelligenceAnalyzeApprv, IntelligenceAnalyzeApprv.IntelligenceAnalyzeApprvId> {
|
||||
|
||||
List<IntelligenceAnalyzeApprv> findByIaKey(Integer iaKey);
|
||||
|
||||
Optional<IntelligenceAnalyzeApprv> findTopByIaKeyOrderByApprvSeqDesc(Integer iaKey);
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -5,11 +5,13 @@ import com.dbnt.faisp.config.BaseService;
|
|||
import com.dbnt.faisp.config.FileInfo;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.mapper.IntelligenceNetworkMapper;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyze;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyzeApprv;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyzeToAffair;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlan;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlanApprv;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlanFile;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.OperationPlanFile.OperationPlanFileId;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.IntelligenceAnalyzeApprvRepository;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.IntelligenceAnalyzeRepository;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.IntelligenceAnalyzeToAffairRepository;
|
||||
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.OperationPlanApprvRepository;
|
||||
|
|
@ -34,6 +36,7 @@ public class IntelligenceNetworkService extends BaseService {
|
|||
private final OperationPlanRepository operationPlanRepository;
|
||||
private final IntelligenceAnalyzeRepository intelligenceAnalyzeRepository;
|
||||
private final IntelligenceAnalyzeToAffairRepository intelligenceAnalyzeToAffairRepository;
|
||||
private final IntelligenceAnalyzeApprvRepository intelligenceAnalyzeApprvRepository;
|
||||
private final IntelligenceNetworkMapper intelligenceNetworkMapper;
|
||||
|
||||
@Transactional
|
||||
|
|
@ -169,6 +172,33 @@ public class IntelligenceNetworkService extends BaseService {
|
|||
public List<Integer> selectIntelligenceAnalyzeAffairKey(IntelligenceAnalyze ia) {
|
||||
return intelligenceNetworkMapper.selectIntelligenceAnalyzeAffairKey(ia);
|
||||
}
|
||||
|
||||
public List<IntelligenceAnalyzeApprv> selectIntelligenceAnalyzeApprv(IntelligenceAnalyze ia) {
|
||||
return intelligenceAnalyzeApprvRepository.findByIaKey(ia.getIaKey());
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Integer intelligenceAnalyzeChange(IntelligenceAnalyzeApprv apprv) {
|
||||
IntelligenceAnalyze saveIntelligenceAnalyze = intelligenceAnalyzeRepository.findById(apprv.getIaKey()).orElse(null);
|
||||
saveIntelligenceAnalyze.setIaState(apprv.getState());
|
||||
IntelligenceAnalyzeApprv lastApprv = intelligenceAnalyzeApprvRepository.findTopByIaKeyOrderByApprvSeqDesc(apprv.getIaKey()).orElse(null);
|
||||
apprv.setApprvSeq(lastApprv==null?1:lastApprv.getApprvSeq()+1);
|
||||
intelligenceAnalyzeApprvRepository.save(apprv);
|
||||
|
||||
switch (apprv.getState()){
|
||||
case "DST003":
|
||||
case "DST005":
|
||||
// 반려시 작성자에게 반려 알림 발송
|
||||
userAlarmService.sendAlarmToWrtUser(saveIntelligenceAnalyze.getIaKey(), saveIntelligenceAnalyze.getWrtUserSeq(), 34,"외사첩보망 견문관리 운영실적에 문서가 반려되었습니다.");
|
||||
break;
|
||||
case "DST004":
|
||||
case "DST006":
|
||||
// 부장승인시 작성자에게 승인 알림 발송
|
||||
userAlarmService.sendAlarmToWrtUser(saveIntelligenceAnalyze.getIaKey(), saveIntelligenceAnalyze.getWrtUserSeq(), 34,"외사첩보망 견문관리 운영실적에 문서가 승인되었습니다.");
|
||||
break;
|
||||
}
|
||||
return apprv.getIaKey();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -334,7 +334,7 @@
|
|||
analysis_evaluation,
|
||||
measures,
|
||||
wrt_dt,
|
||||
(select item_value from code_mgt where item_cd = ia_state) as ia_state,
|
||||
ia_state,
|
||||
wrt_organ,
|
||||
wrt_user_seq,
|
||||
(select item_value from code_mgt where item_cd = wrt_user_grd) as wrt_user_grd,
|
||||
|
|
|
|||
|
|
@ -86,6 +86,10 @@ $(document).on('keyup', '.cntInput', function (){
|
|||
|
||||
$(document).on('click', '#getAffairBtn', function (){
|
||||
const affairList=[];
|
||||
if($(".rowChkBox:checked").length < 1){
|
||||
alert("견문을 선택해주세요");
|
||||
return false;
|
||||
}
|
||||
$.each($(".rowChkBox:checked"), function (idx, chkBox){
|
||||
const affairTr = $(chkBox).parents(".affairTr");
|
||||
affairList.push(affairTr.find(".rowChkBox").val());
|
||||
|
|
@ -106,12 +110,7 @@ $(document).on('click', '#getAffairBtn', function (){
|
|||
$("#joCnt").val(data.joCnt);
|
||||
$("#muCnt").val(data.muCnt);
|
||||
$("input[name=affairList]").val(data.affairList);
|
||||
//$.each(data.affairList, function(affair, idx){
|
||||
//$("#ddd").val($("#ddd").val()+","+affair);
|
||||
//})
|
||||
|
||||
contentFade("out");
|
||||
//trCarrerList.length = 0;
|
||||
},
|
||||
error : function(xhr, status) {
|
||||
contentFade("out");
|
||||
|
|
@ -202,7 +201,7 @@ $(document).on('click', '.apprvBtn', function (){
|
|||
$.ajax({
|
||||
type : 'POST',
|
||||
data : formData,
|
||||
url : "/intelligenceNetwork/operationPlanStateChange",
|
||||
url : "/intelligenceNetwork/intelligenceAnalyzeChange",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
beforeSend: function (xhr){
|
||||
|
|
@ -210,7 +209,7 @@ $(document).on('click', '.apprvBtn', function (){
|
|||
},
|
||||
success : function(result) {
|
||||
alert(approval+"되었습니다");
|
||||
getOperationPlanViewModal(result);
|
||||
getIntelligenceAnalyzeViewModal(result);
|
||||
contentFade("out");
|
||||
},
|
||||
error : function(xhr, status) {
|
||||
|
|
|
|||
|
|
@ -64,19 +64,19 @@
|
|||
<th>검거</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider text-center">
|
||||
<tbody class="table-group-divider">
|
||||
<tr>
|
||||
<td><input class="form-control form-control-sm" id="totalCnt" type="number" th:value="${ia.totalCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm" id="specialCnt" type="number" th:value="${ia.specialCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm" id="middleCnt" type="number" th:value="${ia.middleCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm" id="tongCnt" type="number" th:value="${ia.tongCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm" id="joCnt" type="number" th:value="${ia.joCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm" id="muCnt" type="number" th:value="${ia.muCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm" name="fiCnt" type="number" th:value="${ia.fiCnt}"></td>
|
||||
<td><input class="form-control form-control-sm" id="totalCnt2" type="number" th:value="${ia.iaTotal}" disabled></td>
|
||||
<td><input class="form-control form-control-sm cntInput" name="faCnt" type="number" th:value="${ia.faCnt}"></td>
|
||||
<td><input class="form-control form-control-sm cntInput" name="workCnt" type="number" th:value="${ia.workCnt}"></td>
|
||||
<td><input class="form-control form-control-sm cntInput" name="arrestCnt" type="number" th:value="${ia.arrestCnt}"></td>
|
||||
<td><input class="form-control form-control-sm text-center" id="totalCnt" type="number" th:value="${ia.totalCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm text-center" id="specialCnt" type="number" th:value="${ia.specialCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm text-center" id="middleCnt" type="number" th:value="${ia.middleCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm text-center" id="tongCnt" type="number" th:value="${ia.tongCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm text-center" id="joCnt" type="number" th:value="${ia.joCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm text-center" id="muCnt" type="number" th:value="${ia.muCnt}" disabled></td>
|
||||
<td><input class="form-control form-control-sm text-center" name="fiCnt" type="number" th:value="${ia.fiCnt}"></td>
|
||||
<td><input class="form-control form-control-sm text-center" id="totalCnt2" type="number" th:value="${ia.iaTotal}" placeholder="자동합산" disabled></td>
|
||||
<td><input class="form-control form-control-sm cntInput text-center" name="faCnt" type="number" th:value="${ia.faCnt}"></td>
|
||||
<td><input class="form-control form-control-sm cntInput text-center" name="workCnt" type="number" th:value="${ia.workCnt}"></td>
|
||||
<td><input class="form-control form-control-sm cntInput text-center" name="arrestCnt" type="number" th:value="${ia.arrestCnt}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -103,10 +103,10 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="row">
|
||||
<div class="col-12" th:unless="${#lists.isEmpty(op.apprvList)}">
|
||||
<div class="row">
|
||||
<div class="col-12" th:unless="${#lists.isEmpty(ia.apprvList)}">
|
||||
<hr>
|
||||
<th:block th:each="apprv:${op.apprvList}">
|
||||
<th:block th:each="apprv:${ia.apprvList}">
|
||||
<div class="row">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center" th:if="${commonCode.itemCd eq apprv.state}" th:text="|결재결과: ${commonCode.itemValue}|"></label>
|
||||
|
|
@ -116,21 +116,42 @@
|
|||
<th:block th:if="${commonCode.itemCd eq apprv.userGrd}" th:text="|결제자: ${commonCode.itemValue} ${apprv.userNm}|"></th:block>
|
||||
</th:block>
|
||||
</label>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
|
||||
<th:block th:text="|관리관 의견: ${apprv.opinion}|"></th:block>
|
||||
</label>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
|
||||
<th:block th:text="|지시사항: ${apprv.Instruction}|"></th:block>
|
||||
</label>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
|
||||
<th:block th:text="|결제일시: ${#temporals.format(apprv.saveDt, 'yyyy-MM-dd HH:mm:ss')}|"></th:block>
|
||||
</label>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="col-12" th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002' or apprvAuth eq 'APC003' or apprvAuth eq 'APC004') and ia.iaState eq 'DST002'}">
|
||||
<hr>
|
||||
<form action="#" method="post" id="apprvForm">
|
||||
<div class="row">
|
||||
<div class="col-10">
|
||||
<input type="hidden" name="iaKey" th:value="${ia.iaKey}">
|
||||
<input type="hidden" name="state" id="viewModalApprvValue">
|
||||
<div class="row">
|
||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">관리관 의견</label>
|
||||
<div class="col-10">
|
||||
<input type="text" class="form-control form-control-sm" name="opinion">
|
||||
</div>
|
||||
</div>
|
||||
<br/><br/>
|
||||
<div class="row">
|
||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">지시사항</label>
|
||||
<div class="col-10">
|
||||
<input type="text" class="form-control form-control-sm" name="Instruction">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer justify-content-between bg-light">
|
||||
|
|
|
|||
Loading…
Reference in New Issue