Merge branch 'refs/heads/main' into main-dsuse-rslt-img

# Conflicts:
#	src/main/resources/application.yml
dev
Jonguk. Lim 4 months ago
commit db6fa6558e

@ -1,6 +1,7 @@
package cokr.xit.adds.cmm.model;
import java.net.http.HttpResponse;
import java.util.List;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
@ -39,6 +40,7 @@ public class ApiUtil {
request.contentType(WebClient.Request.ContentType.FORM);
request.uri(uri);
toData(request, cls);
System.out.println("request : " + request);
});
return rslt.body();
}
@ -68,8 +70,15 @@ public class ApiUtil {
JSONObject jsonObj = toObjByObj(obj, JSONObject.class);
for (Object key : jsonObj.keySet()) {
// API 호출 시 필요없는 파라메터 제외
request.data((String) key, ObjectUtils.isEmpty(jsonObj.get(key))? StringUtils.EMPTY: jsonObj.get(key));
Object value = jsonObj.get(key);
if (value instanceof List) {
// List를 쉼표로 구분된 문자열로 변환
String listAsString = String.join(",", (List<String>) value);
request.data((String) key, listAsString);
} else {
request.data((String) key, ObjectUtils.isEmpty(value) ? StringUtils.EMPTY : value.toString());
}
}
}

@ -1,5 +1,7 @@
package cokr.xit.adds.cmm.model;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import lombok.Data;
@ -363,4 +365,15 @@ public class NimsApiRequest {
*/
private String userId;
}
@Data
public static class DsuseMgtInqReq {
private List<String> dscdmngIds;
private String adds12;
private String userId;
}
}

@ -6,11 +6,13 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import javax.annotation.Resource;
import org.json.simple.JSONObject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
@ -19,8 +21,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import net.minidev.json.JSONObject;
import com.fasterxml.jackson.core.type.TypeReference;
import cokr.xit.adds.cmm.model.ApiBaseResponse;
@ -79,6 +79,9 @@ public class AddsNimsController extends ApplicationController {
@Value("${app.inf.nims.api.prdMnfSeqInfoOfBarcode}")
private String prdMnfSeqInfoOfBarcodeEndpoint;
@Value("${app.inf.nims.api.dsuseMgtListForRptDoc}")
private String dsuseMgtListForRptDocEndpoint;
@Resource(name="sigunguDepartmentService")
private SigunguDepartmentService sggDeptService;
@ -280,6 +283,48 @@ public class AddsNimsController extends ApplicationController {
return setCollectionInfo(new ModelAndView("jsonView"), dsuseMgtDocService.getDsuseMgtDocList(query),"","");
}
@RequestMapping(value = "/getHwpForRptDoc.do", name="보고문서 출력")
public ModelAndView getHwpForRptDoc(@ModelAttribute NimsApiRequest.DsuseMgtInqReq dto) {
String rslt = ApiUtil.callNimsApi(apiHost + dsuseMgtListForRptDocEndpoint, dto);
ApiBaseResponse<List<JSONObject>> parse = json.parse(rslt, new TypeReference<>() {});
List<JSONObject> respData = parse.getData();
List<JSONObject> dataForRptdoc = new ArrayList<>();
for(JSONObject mgtMaster : respData) {
List<JSONObject> mgtDetails = json.parse(json.stringify(mgtMaster.get("dsuseMgtDtls")), new TypeReference<>() {});
Set<String> keys = mgtMaster.keySet();
List<JSONObject> updatedDetails = mgtDetails.stream().map((detail) -> {
for (String key : keys) {
if (key.equals("dsuseMgtDtls")) {
continue;
}
if (key.equals("bsshNm") || key.equals("bsshCd")) {
detail.put(key + "0", mgtMaster.get(key));
} else if (!detail.containsKey(key)) {
detail.put(key, mgtMaster.get(key));
}
}
return detail;
}).toList();
dataForRptdoc.addAll(updatedDetails);
}
if("01".equals(dto.getAdds12())){
return makeDisposeResultReportHwp(json.stringify(dataForRptdoc));
}else if("02".equals(dto.getAdds12())) {
return makeDisposeProcessDetailsHwp(json.stringify(dataForRptdoc));
}else{
}
return null;
}
@RequestMapping(value="/makeDisposeResultReportHwp.do", name="폐기결과보고서 HWP파일 생성")
public ModelAndView makeDisposeResultReportHwp(String dtls) {
ModelAndView mav = new ModelAndView();
@ -638,10 +683,4 @@ public class AddsNimsController extends ApplicationController {
return json.parse(rslt, new TypeReference<>() {});
}
@RequestMapping(value = "/getNimsProductInfoKdAndMnfSeqInfo.do", name="제품 & 시리얼번호 검색", produces = "application/json;charset=UTF-8")
public @ResponseBody ApiBaseResponse<List<JSONObject>> getNimsProductInfoKdAndMnfSeqInfo(@ModelAttribute NimsApiRequest.ProductInfoReq dto) {
String rslt = ApiUtil.callNimsApi(apiHost + productAndseqInfoEndpoint, dto);
return json.parse(rslt, new TypeReference<>() {});
}
}

@ -1,7 +1,7 @@
server:
shutdown: graceful
port: 9077
max-http-header-size: 1024KB
max-http-header-size: 48KB
servlet:
context-path: /
@ -60,17 +60,16 @@ app:
bsshInfo: /api/biz/nims/v1/getNimsBsshInfoSt
# 제품 조회
productInfo: /api/biz/nims/v1/getNimsProductInfoKd
# 제품 & 시리얼 번호 조회
productAndseqInfo: /api/biz/nims/v1/getNimsProductInfoKdAndMnfSeqInfo
# 제품 시리얼 번호 조회
seqInfo: /api/biz/nims/v1/getNimsMnfSeqInfo
# 관할관청 조회
jurisdictionGovInfo: /api/biz/nims/v1/getNimsJurisdictionGovInfo
# 폐기보고 조회
nimsDsuseRptInfo: /api/biz/nims/v1/getNimsDsuseRptInfo
# 바코드 조회
prdMnfSeqInfoOfBarcode: /api/biz/nims/v1/getPrdMnfSeqInfoOfBarcode
# 보고문서 정보 목록 조회
dsuseMgtListForRptDoc: /api/biz/nims/v1/getDsuseMgtListForRptDoc
logging:
file:

@ -360,81 +360,28 @@
content: "선택한 폐기관리 정보로 "+ docName+" 파일을 생성 하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.getDataForDocument(ADDS12);
$P.fnCreateDoc(ADDS12);
}
});
};
//한글문서파일 생성을 위한 데이터 조회
$P.getDataForDocument = (ADDS12) => {
//한글문서파일 생성 요청
$P.fnCreateDoc = (ADDS12) => {
let dscdmngIds = $P.control.dataset.getKeys("selected");
if(dscdmngIds.length < 1){
alert("체크된 자료가 없습니다.");
return;
}
ajax.post({
url: '<c:url value="${apiHost}/api/biz/nims/v1/getDsuseMgtListForRptDoc" />',
contentType : "application/json; charset=utf-8",
data: JSON.stringify({
"dscdmngIds" : dscdmngIds,
"userId" : "${currentUser.account}",
"deptCd": "${currentUser.deptCode}"
}),
success:resp => {
if(!resp.success){
dialog.alert({
content: resp.message
});
return;
}
$P.fnCreateDoc(resp.data, ADDS12);
}
});
};
//한글문서파일 생성 요청
$P.fnCreateDoc = (respData, ADDS12) => {
for(let dsuseMgtMaster of respData){
dsuseMgtMaster.dsuseMgtDtls.map((dtl) => {
keys = Object.keys(dsuseMgtMaster);
for(let key of keys){
if(key == "dsuseMgtDtls"){
continue;
}
if(key == "bsshNm" || key == "bsshCd"){
dtl[key+"0"] = dsuseMgtMaster[key];
} else if(dtl[key] == undefined){
dtl[key] = dsuseMgtMaster[key];
}
}
return dtl;
});
}
let dtls = [];
for(let i=0; i < respData.length; i++){
dtls = dtls.concat(respData[i].dsuseMgtDtls);
}
let url = "";
if(ADDS12 == "01"){
url = wctx.url("/adds/nims/makeDisposeResultReportHwp.do");
} else if(ADDS12 == "02"){
url = wctx.url("/adds/nims/makeDisposeProcessDetailsHwp.do");
} else {
return;
}
$.ajax({
url: url,
data: { dtls : JSON.stringify(dtls) },
url: wctx.url("/adds/nims/getHwpForRptDoc.do"),
data: {
dscdmngIds : dscdmngIds,
userId : "${currentUser.account}",
deptCd: "${currentUser.deptCode}",
adds12: ADDS12
},
xhrFields: { responseType: 'blob' },
success:(blob, status, xhr) => {
let disposition = xhr.getResponseHeader('Content-Disposition');

Loading…
Cancel
Save