견문목록 엑셀 다운로드 추가.
parent
4c814eee65
commit
cac3df5e84
|
|
@ -47,6 +47,8 @@ public class BaseModel {
|
|||
private Integer refDocKey;
|
||||
@Transient
|
||||
private String modalType;
|
||||
@Transient
|
||||
private String excel;
|
||||
|
||||
public void setQueryInfo(){
|
||||
setFirstIndex((getPageIndex()-1)*getRowCnt());
|
||||
|
|
|
|||
|
|
@ -63,9 +63,7 @@ public class CellPhone extends BaseModel{
|
|||
|
||||
@Transient
|
||||
private String sosok;
|
||||
|
||||
@Transient
|
||||
private String excel;
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
|
|
|||
|
|
@ -27,9 +27,6 @@ public class UseInfo extends UseInfoBase {
|
|||
@Column(name = "is_deleted")
|
||||
private String isDeleted;
|
||||
|
||||
@Transient
|
||||
private String excel;
|
||||
|
||||
@Transient
|
||||
private String sosok;
|
||||
@Transient
|
||||
|
|
|
|||
|
|
@ -84,9 +84,6 @@ public class PartInfo extends BaseModel implements Serializable{
|
|||
@Transient
|
||||
private String piManagerName;
|
||||
|
||||
@Transient
|
||||
private String excel;
|
||||
|
||||
@Transient
|
||||
private List<PartInfoFile> fileList;
|
||||
|
||||
|
|
|
|||
|
|
@ -63,8 +63,6 @@ public class PartWork extends BaseModel implements Serializable{
|
|||
@Transient
|
||||
private List<MultipartFile> multipartFileList;
|
||||
|
||||
@Transient
|
||||
private String excel;
|
||||
@Transient
|
||||
private String terminalNm;
|
||||
@Transient
|
||||
|
|
|
|||
|
|
@ -74,9 +74,7 @@ public class ShipInfo extends BaseModel implements Serializable{
|
|||
private LocalDateTime wrtDt;
|
||||
@Column(name = "status")
|
||||
private String status;
|
||||
|
||||
@Transient
|
||||
private String excel;
|
||||
|
||||
|
||||
@Transient
|
||||
private String weightStr;
|
||||
|
|
@ -89,7 +87,7 @@ public String toString() {
|
|||
+ ownerNm + ", shipNm=" + shipNm + ", operationCnt=" + operationCnt + ", shipWeight=" + shipWeight
|
||||
+ ", passengerCnt=" + passengerCnt + ", freightCnt=" + freightCnt + ", description=" + description
|
||||
+ ", wrtOrgan=" + wrtOrgan + ", wrtPart=" + wrtPart + ", wrtUserSeq=" + wrtUserSeq + ", wrtTitle="
|
||||
+ wrtTitle + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + ", excel=" + excel + "]";
|
||||
+ wrtTitle + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + "]";
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -8,16 +8,21 @@ import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService;
|
|||
import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
|
||||
import com.dbnt.faisp.main.publicBoard.model.PublicBoard;
|
||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||
import com.dbnt.faisp.util.ParamMap;
|
||||
import com.dbnt.faisp.util.Utils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
import org.springframework.security.core.parameters.P;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
@RestController
|
||||
|
|
@ -29,8 +34,8 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
private final OrganConfigService organConfigService;
|
||||
|
||||
@GetMapping("/affairMgt/{tab}")
|
||||
public ModelAndView affairMgtPage(@AuthenticationPrincipal UserInfo loginUser,
|
||||
@PathVariable("tab") String tab, AffairBoard affairBoard){
|
||||
public ModelAndView affairMgtPage(@AuthenticationPrincipal UserInfo loginUser, @PathVariable("tab") String tab,
|
||||
HttpSession session, HttpServletResponse response, AffairBoard affairBoard){
|
||||
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt");
|
||||
if(Utils.isEmpty(affairBoard.getAffairCategory())){
|
||||
return new ModelAndView("redirect:/");
|
||||
|
|
@ -110,17 +115,41 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
break;
|
||||
}
|
||||
|
||||
mav.addObject("page", tab);
|
||||
mav.addObject("searchUrl", "/affair/affairMgt/"+tab);
|
||||
mav.addObject("accessAuth", accessAuth);
|
||||
mav.addObject("apprvAuth", apprvAuth);
|
||||
mav.addObject("userOrgan", loginUser.getOgCd());
|
||||
affairBoard.setQueryInfo();
|
||||
mav.addObject("affairList", affairService.selectAffairBoardList(affairBoard));
|
||||
affairBoard.setContentCnt(affairService.selectAffairBoardListCnt(affairBoard));
|
||||
affairBoard.setPaginationInfo();
|
||||
mav.addObject("searchParams", affairBoard);
|
||||
return mav;
|
||||
if(affairBoard.getExcel() != null && affairBoard.getExcel().equals("Y")){
|
||||
Map<String, List<CodeMgt>> codeMap = (Map<String, List<CodeMgt>>) session.getAttribute("commonCode");
|
||||
String[] headers = {"doc_no", "affair_type1", "affair_type2", "affair_type3", "affair_type4", "title", "wrt_organ", "wrt_part", "wrt_user_grd", "wrt_user_nm", "report_dt", "affair_status", "affair_rate", "organ_up"};
|
||||
String[] headerNames = {"문서번호", "분야1", "분야2", "분야3", "분야4", "제목", "관서", "부서", "직급", "작성자", "보고일자", "상태", "평가", "상보"};
|
||||
String[] columnType = {"String", "String", "String", "String", "String", "String", "String", "String", "String", "String", "String", "String", "String", "String"};
|
||||
String sheetName;
|
||||
switch (tab){
|
||||
case "myReport": sheetName = "내 작성 목록"; break;
|
||||
case "stayReport": sheetName = "결재대기목록"; break;
|
||||
case "commitReport": sheetName = "결재처리목록"; break;
|
||||
case "openReport": sheetName = "공개 보고서"; break;
|
||||
case "allReport": sheetName = "전체(관리자)"; break;
|
||||
default: sheetName="";
|
||||
}
|
||||
String excelFileName = "견문보고서 목록";
|
||||
List<ParamMap> affairList= affairService.selectAffairListToExcel(affairBoard, codeMap);
|
||||
try {
|
||||
Utils.listToExcel(affairList, response, headers, headerNames, columnType, sheetName, excelFileName);
|
||||
} catch (IOException e) {
|
||||
|
||||
}
|
||||
return null;
|
||||
}else{
|
||||
mav.addObject("page", tab);
|
||||
mav.addObject("searchUrl", "/affair/affairMgt/"+tab);
|
||||
mav.addObject("accessAuth", accessAuth);
|
||||
mav.addObject("apprvAuth", apprvAuth);
|
||||
mav.addObject("userOrgan", loginUser.getOgCd());
|
||||
affairBoard.setQueryInfo();
|
||||
mav.addObject("affairList", affairService.selectAffairBoardList(affairBoard));
|
||||
affairBoard.setContentCnt(affairService.selectAffairBoardListCnt(affairBoard));
|
||||
affairBoard.setPaginationInfo();
|
||||
mav.addObject("searchParams", affairBoard);
|
||||
return mav;
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping("/affairEditModal")
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.dbnt.faisp.main.fpiMgt.affair.mapper;
|
|||
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard;
|
||||
import com.dbnt.faisp.main.fpiMgt.affair.model.DashboardAffair;
|
||||
|
||||
import com.dbnt.faisp.util.ParamMap;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -24,4 +25,6 @@ public interface AffairMapper {
|
|||
List<DashboardAffair> selectDashboardIntelligenceNetworkList(DashboardAffair affair);
|
||||
|
||||
List<DashboardAffair> selectApprvStayList(DashboardAffair affair);
|
||||
|
||||
List<ParamMap> selectAffairListToExcel(AffairBoard affairBoard);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
|
|||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||
import com.dbnt.faisp.main.userInfo.repository.UserInfoRepository;
|
||||
import com.dbnt.faisp.main.userInfo.service.UserAlarmService;
|
||||
import com.dbnt.faisp.util.ParamMap;
|
||||
import com.dbnt.faisp.util.Utils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -39,12 +40,36 @@ public class AffairService extends BaseService { // 견문보고
|
|||
private final HashTagLinkRepository hashTagLinkRepository;
|
||||
private final AffairMapper affairMapper;
|
||||
|
||||
public List<DashboardAffair> selectDashboardAffairList(DashboardAffair affair){
|
||||
return affairMapper.selectDashboardAffairList(affair);
|
||||
}
|
||||
|
||||
public List<DashboardAffair> selectDashboardIntelligenceNetworkList(DashboardAffair affair) {
|
||||
return affairMapper.selectDashboardIntelligenceNetworkList(affair);
|
||||
public List<ParamMap> selectAffairListToExcel(AffairBoard affairBoard, Map<String, List<CodeMgt>> codeMap) {
|
||||
List<CodeMgt> affairType1Code = codeMap.get("DC01");
|
||||
List<CodeMgt> affairType2Code = codeMap.get("DC02");
|
||||
List<CodeMgt> affairType3Code = codeMap.get("DC03");
|
||||
List<CodeMgt> affairType4Code = codeMap.get("DC04");
|
||||
List<CodeMgt> organCode = codeMap.get("OG");
|
||||
List<CodeMgt> titleCode = codeMap.get("JT");
|
||||
List<CodeMgt> statusCode = codeMap.get("DST");
|
||||
List<CodeMgt> ratingCode = codeMap.get("AAR");
|
||||
List<ParamMap> affairList = affairMapper.selectAffairListToExcel(affairBoard);
|
||||
for(ParamMap affair: affairList){
|
||||
affair.set("affair_type1", Utils.searchCodeValue((String) affair.get("affair_type1"), affairType1Code));
|
||||
affair.set("affair_type2", Utils.searchCodeValue((String) affair.get("affair_type2"), affairType2Code));
|
||||
affair.set("affair_type3", Utils.searchCodeValue((String) affair.get("affair_type3"), affairType3Code));
|
||||
affair.set("affair_type4", Utils.searchCodeValue((String) affair.get("affair_type4"), affairType4Code));
|
||||
if(affair.get("organ_up") != null){
|
||||
affair.set("organ_up", affair.get("wrt_organ").equals(affair.get("rating_organ"))?"X":"O");
|
||||
}
|
||||
List<CodeMgt> partCode = codeMap.get(affair.get("wrt_organ"));
|
||||
affair.set("wrt_organ", Utils.searchCodeValue((String) affair.get("wrt_organ"), organCode));
|
||||
affair.set("wrt_part", Utils.searchCodeValue((String) affair.get("wrt_part"), partCode));
|
||||
affair.set("wrt_user_grd", Utils.searchCodeValue((String) affair.get("wrt_user_grd"), titleCode));
|
||||
affair.set("affair_status", Utils.searchCodeValue((String) affair.get("affair_status"), statusCode));
|
||||
if(affair.get("affair_rate") == null){
|
||||
affair.set("affair_rate", affair.get("beforerating"));
|
||||
}else{
|
||||
affair.set("affair_rate", Utils.searchCodeValue((String) affair.get("affair_rate"), ratingCode));
|
||||
}
|
||||
}
|
||||
return affairList;
|
||||
}
|
||||
|
||||
public List<AffairBoard> selectAffairBoardList(AffairBoard affair){
|
||||
|
|
|
|||
|
|
@ -44,18 +44,18 @@ public class TranslatorController {
|
|||
//엑셀다운
|
||||
if(translator.getExcel() != null && translator.getExcel().equals("Y")){
|
||||
String[] headers = { "translator_key", "ogdp1", "tr_lang", "tr_career", "tr_name", "tr_age", "tr_nny", "tr_edu", "tr_cft", "dml_yn", "apt_dt", "tr_phone"};
|
||||
String[] headerNames = { "연번", "관서명", "언어", "경력", "성명", "나이", "국적", "학력", "자격증", "해촉", "위촉일", "연락처" };
|
||||
String[] columnType = { "String", "String", "String", "String", "String", "String", "String", "String", "String", "String", "String", "String"};
|
||||
String sheetName = "민간 통역인 현황";
|
||||
String excelFileName = "민간 통역인 현황";
|
||||
List<ParamMap> translatorInfoList= translatorSevice.selectTranslatorListEx(translator);
|
||||
String[] headerNames = { "연번", "관서명", "언어", "경력", "성명", "나이", "국적", "학력", "자격증", "해촉", "위촉일", "연락처" };
|
||||
String[] columnType = { "String", "String", "String", "String", "String", "String", "String", "String", "String", "String", "String", "String"};
|
||||
String sheetName = "민간 통역인 현황";
|
||||
String excelFileName = "민간 통역인 현황";
|
||||
List<ParamMap> translatorInfoList= translatorSevice.selectTranslatorListEx(translator);
|
||||
|
||||
try {
|
||||
Utils.listToExcel(translatorInfoList, response, headers, headerNames, columnType, sheetName, excelFileName);
|
||||
} catch (IOException e) {
|
||||
try {
|
||||
Utils.listToExcel(translatorInfoList, response, headers, headerNames, columnType, sheetName, excelFileName);
|
||||
} catch (IOException e) {
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
//메뉴권한 확인
|
||||
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/translator/info").get(0).getAccessAuth();
|
||||
|
|
|
|||
|
|
@ -98,9 +98,6 @@ public class Translator extends BaseModel implements Serializable{
|
|||
@Transient
|
||||
private String infoShareFileState;
|
||||
|
||||
@Transient
|
||||
private String excel;
|
||||
|
||||
@Transient
|
||||
private List<MultipartFile> multipartFileList;
|
||||
|
||||
|
|
|
|||
|
|
@ -123,8 +123,6 @@ public class UserInfo extends BaseModel implements UserDetails{
|
|||
@Transient
|
||||
private String organNm;
|
||||
@Transient
|
||||
private String excel;
|
||||
@Transient
|
||||
private String rownum;
|
||||
@Transient
|
||||
private Integer crc001Sum;
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@
|
|||
group by affair_key
|
||||
) d on a.affair_key = d.affair_key
|
||||
<include refid="selectAffairBoardWhere"></include>
|
||||
order by a.report_dt desc
|
||||
order by a.report_dt desc, a.affair_key desc
|
||||
limit #{rowCnt} offset #{firstIndex}
|
||||
</select>
|
||||
<select id="selectAffairBoardCnt" resultType="int" parameterType="AffairBoard">
|
||||
|
|
@ -142,6 +142,42 @@
|
|||
on a.affair_key = c.affair_key
|
||||
<include refid="selectAffairBoardWhere"></include>
|
||||
</select>
|
||||
|
||||
<select id="selectAffairListToExcel" resultType="com.dbnt.faisp.util.ParamMap" parameterType="AffairBoard">
|
||||
select a.affair_key,
|
||||
a.affair_type1,
|
||||
a.affair_type2,
|
||||
a.affair_type3,
|
||||
a.affair_type4,
|
||||
a.title,
|
||||
a.wrt_organ,
|
||||
a.wrt_part,
|
||||
a.wrt_user_grd,
|
||||
a.wrt_user_nm,
|
||||
a.wrt_user_seq,
|
||||
a.wrt_dt,
|
||||
to_char(a.report_dt, 'YYYY-MM-DD') as report_dt,
|
||||
a.doc_no,
|
||||
c.rating_organ,
|
||||
c.affair_status,
|
||||
c.affair_rate,
|
||||
c.organ_up,
|
||||
d.beforeRating
|
||||
from affair_board a
|
||||
inner join affair_rating c
|
||||
on a.affair_key = c.affair_key
|
||||
left outer join (
|
||||
select affair_key,
|
||||
STRING_AGG(CAST(og.item_value||' : '||ar.item_value AS VARCHAR), ', ') as beforeRating
|
||||
from affair_rating aa
|
||||
inner join code_mgt og on aa.rating_organ = og.item_cd
|
||||
inner join code_mgt ar on aa.affair_rate = ar.item_cd
|
||||
group by affair_key
|
||||
) d on a.affair_key = d.affair_key
|
||||
<include refid="selectAffairBoardWhere"></include>
|
||||
order by a.report_dt desc, a.affair_key desc
|
||||
</select>
|
||||
|
||||
<select id="selectHashTags" resultType="string" parameterType="int">
|
||||
select array_to_string(array_agg(b.tag_nm), ' ') as hashTags
|
||||
from hash_tag_link a
|
||||
|
|
@ -538,4 +574,5 @@
|
|||
order by wrt_dt desc
|
||||
limit 9
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -263,7 +263,7 @@
|
|||
tr_cft,
|
||||
h.item_value as tr_visa,
|
||||
dml_yn,
|
||||
apt_dt,
|
||||
to_char(apt_dt, 'YYYY-MM-DD') as apt_dt,
|
||||
tr_phone
|
||||
from translator_info a
|
||||
inner join (select translator_key, max(version_no) as lastVer
|
||||
|
|
|
|||
|
|
@ -18,6 +18,29 @@ $(document).on('click', '.reportTypeTab', function (){
|
|||
location.href = "/affair/affairMgt/"+$(this).attr("data-reporttype")+"?affairCategory="+$("#affairCategory").val();
|
||||
})
|
||||
|
||||
$(document).on('click', '#downloadExcelBtn', function (){
|
||||
/*contentFade("in");
|
||||
const formData = new FormData($("#affairSearchForm")[0]);
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : formData,
|
||||
url : "/affair/excelDown/"+$("#pageTab").val(),
|
||||
processData: false,
|
||||
contentType: false,
|
||||
beforeSend: function (xhr){
|
||||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||
},
|
||||
success : function(result) {
|
||||
contentFade("out");
|
||||
},
|
||||
error : function(xhr, status) {
|
||||
contentFade("out");
|
||||
}
|
||||
})*/
|
||||
$("#excel").val("Y")
|
||||
$("#affairSearchForm").submit();
|
||||
})
|
||||
|
||||
$(document).on('click', '.affairTr', function (event){
|
||||
const target = event.target;
|
||||
if(!(target.className === "chkBoxTd"
|
||||
|
|
|
|||
|
|
@ -41,16 +41,27 @@
|
|||
</li>
|
||||
</ul>
|
||||
<div class="tab-content bg-white border border-top-0 p-2">
|
||||
<form method="get" th:action="${searchUrl}">
|
||||
<input type="hidden" id="pageTab" th:value="${page}">
|
||||
<form method="get" id="affairSearchForm" th:action="${searchUrl}">
|
||||
<input type="hidden" name="excel" id="excel">
|
||||
<input type="hidden" name="affairCategory" id="affairCategory" th:value="${searchParams.affairCategory}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
<div class="col-auto position-relative">
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row position-absolute bottom-0">
|
||||
<div class="col-auto">
|
||||
<input type="button" class="btn btn-sm btn-success" id="downloadExcelBtn" value="엑셀 다운로드">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
|
|
@ -202,8 +213,13 @@
|
|||
</td>
|
||||
<th:block th:if="${page ne 'stayReport'}">
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('AAR')}">
|
||||
<th:block th:if="${code.itemCd eq affair.affairRate}" th:text="${code.itemValue}"></th:block>
|
||||
<th:block th:if="${affair.affairRate ne null}">
|
||||
<th:block th:each="code:${session.commonCode.get('AAR')}">
|
||||
<th:block th:if="${code.itemCd eq affair.affairRate}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:if="${affair.affairRate eq null}">
|
||||
<th:block th:text="${affair.beforeRating}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td th:text="${affair.organUp eq 'T'?'O':(affair.wrtOrgan ne affair.ratingOrgan?'O':'X')}"></td>
|
||||
|
|
|
|||
Loading…
Reference in New Issue