Leeyh1121 5 months ago
commit 36b1d95100

@ -17,6 +17,14 @@ public class DsuseMgtReceiptQuery extends QueryRequest{
//폐기관리 //폐기관리
private String dscdmngId; // 폐기관리 ID private String dscdmngId; // 폐기관리 ID
public String getDscdmngId() {
return dscdmngId;
}
public void setDscdmngId(String dscdmngId) {
this.dscdmngId = dscdmngId;
}
private String deptCd; // 부서 코드 private String deptCd; // 부서 코드
private String userId; // 사용자 ID private String userId; // 사용자 ID
private String prgrsSttsCd; // 진행 상태 코드 private String prgrsSttsCd; // 진행 상태 코드

@ -19,4 +19,6 @@ public interface DsuseMgtReceiptMapper extends AbstractMapper {
*/ */
List<DataObject> selectDsuseMgtReceiptList(DsuseMgtReceiptQuery req); List<DataObject> selectDsuseMgtReceiptList(DsuseMgtReceiptQuery req);
DataObject selectDsuseMgtReceiptInfo(String dscdmngId);
} }

@ -1,10 +1,8 @@
package cokr.xit.adds.nims.service; package cokr.xit.adds.nims.service;
import java.util.List; import java.util.List;
import java.util.Map;
import cokr.xit.adds.nims.DsuseMgtReceiptQuery; import cokr.xit.adds.nims.DsuseMgtReceiptQuery;
import cokr.xit.base.file.FileInfo;
import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataObject;
public interface DsuseMgtReceiptService { public interface DsuseMgtReceiptService {
@ -16,6 +14,8 @@ public interface DsuseMgtReceiptService {
* </ul> * </ul>
* @return * @return
*/ */
List<DataObject> getdsuseMgtReceiptList(DsuseMgtReceiptQuery query); List<DataObject> getDsuseMgtReceiptList(DsuseMgtReceiptQuery query);
DataObject getDsuseMgtReceiptInfo(String dscdmngId);
} }

@ -20,10 +20,14 @@ public class DsuseMgtReceiptServiceBean extends AbstractServiceBean implements D
private DsuseMgtReceiptMapper dsuseMgtReceiptMapper; private DsuseMgtReceiptMapper dsuseMgtReceiptMapper;
@Override @Override
public List<DataObject> getdsuseMgtReceiptList(DsuseMgtReceiptQuery query){ public List<DataObject> getDsuseMgtReceiptList(DsuseMgtReceiptQuery query){
query.setOrderBy("DSCDMNG_ID DESC"); query.setOrderBy("DSCDMNG_ID DESC");
return dsuseMgtReceiptMapper.selectDsuseMgtReceiptList(query); return dsuseMgtReceiptMapper.selectDsuseMgtReceiptList(query);
} }
@Override
public DataObject getDsuseMgtReceiptInfo(String dscdmngId){
return dsuseMgtReceiptMapper.selectDsuseMgtReceiptInfo(dscdmngId);
}
} }

@ -18,6 +18,8 @@ import cokr.xit.adds.nims.service.DsuseMgtReceiptService;
import cokr.xit.applib.ogdp.OgdpQuery; import cokr.xit.applib.ogdp.OgdpQuery;
import cokr.xit.applib.ogdp.service.bean.DefaultOgdpBean; import cokr.xit.applib.ogdp.service.bean.DefaultOgdpBean;
import cokr.xit.base.code.CommonCode; import cokr.xit.base.code.CommonCode;
import cokr.xit.base.file.service.FileQuery;
import cokr.xit.base.file.service.FileService;
import cokr.xit.base.web.ApplicationController; import cokr.xit.base.web.ApplicationController;
import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataObject;
@ -31,7 +33,7 @@ public class AddsNimsController extends ApplicationController {
private String apiHost; private String apiHost;
@Resource(name="defaultOgdpBean") @Resource(name="defaultOgdpBean")
DefaultOgdpBean defaultOgdpBean; private DefaultOgdpBean defaultOgdpBean;
@Resource(name="dsuseMgtReceiptService") @Resource(name="dsuseMgtReceiptService")
private DsuseMgtReceiptService dsuseMgtReceiptService; private DsuseMgtReceiptService dsuseMgtReceiptService;
@ -39,6 +41,9 @@ public class AddsNimsController extends ApplicationController {
@Resource(name="dsuseMgtDocService") @Resource(name="dsuseMgtDocService")
private DsuseMgtDocService dsuseMgtDocService; private DsuseMgtDocService dsuseMgtDocService;
@Resource(name="fileService")
private FileService fileService;
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
// 신청서 접수 // 신청서 접수
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
@ -46,13 +51,24 @@ public class AddsNimsController extends ApplicationController {
public ModelAndView getDsuseMgtReceiptList(DsuseMgtReceiptQuery query) { public ModelAndView getDsuseMgtReceiptList(DsuseMgtReceiptQuery query) {
setFetchSize(query); setFetchSize(query);
return setCollectionInfo(new ModelAndView("jsonView"), dsuseMgtReceiptService.getdsuseMgtReceiptList(query),"",""); return setCollectionInfo(new ModelAndView("jsonView"), dsuseMgtReceiptService.getDsuseMgtReceiptList(query),"","");
} }
@RequestMapping(value = "/dsuseMgtReceipt-info.do", name="신청서 접수 상세") @RequestMapping(value = "/dsuseMgtReceipt-info.do", name="신청서 접수 상세")
public ModelAndView getDsuseMgtReceiptInfo() { public ModelAndView getDsuseMgtReceiptInfo(String dscdmngId) {
ModelAndView mav = new ModelAndView("adds/nims/dsuseMgtReceipt-info"); ModelAndView mav = new ModelAndView();
setCmmCode("ADDS04", mav);
if(!isEmpty(dscdmngId)){
mav.setViewName("adds/nims/dsuseMgtReceipt-detail");
mav.addObject("dsuseReceptInfo", toJson(dsuseMgtReceiptService.getDsuseMgtReceiptInfo(dscdmngId)));
DsuseMgtReceiptQuery query = new DsuseMgtReceiptQuery();
query.setDscdmngId(dscdmngId);
mav.addObject("dsuseReceptDetails", toJson(dsuseMgtReceiptService.getDsuseMgtReceiptList(query)));
}else{
mav.setViewName("adds/nims/dsuseMgtReceipt-info");
}
return mav return mav
.addObject("pageName", "dsuseMgtReceiptInfo") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "dsuseMgtReceiptInfo") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
@ -70,13 +86,17 @@ public class AddsNimsController extends ApplicationController {
public ModelAndView getDsuseMgtRsltList(DsuseMgtReceiptQuery query) { public ModelAndView getDsuseMgtRsltList(DsuseMgtReceiptQuery query) {
setFetchSize(query); setFetchSize(query);
return setCollectionInfo(new ModelAndView("jsonView"), dsuseMgtReceiptService.getdsuseMgtReceiptList(query),"",""); return setCollectionInfo(new ModelAndView("jsonView"), dsuseMgtReceiptService.getDsuseMgtReceiptList(query),"","");
} }
@RequestMapping(value = "dsuseMgtRslt-info.do", name="결과[통보] 상세") @RequestMapping(value = "dsuseMgtRslt-info.do", name="결과[통보] 상세")
public ModelAndView getDsuseMgtRsltInfo(DsuseRsltInfo dsuseRsltInfo) { public ModelAndView getDsuseMgtRsltInfo(DsuseRsltInfo dsuseRsltInfo) {
ModelAndView mav = new ModelAndView("adds/nims/dsuseMgtRslt-info"); ModelAndView mav = new ModelAndView("adds/nims/dsuseMgtRslt-info");
FileQuery fileQuery = new FileQuery().setInfoType("110").setInfoKeys(dsuseRsltInfo.getDscdmngId());
List<DataObject> fileInfos = fileService.getFileList(fileQuery);
mav.addObject("fileInfos", toJson(fileInfos));
return mav return mav
.addObject("pageName", "dsuseMgtRsltInfo") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "dsuseMgtRsltInfo") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "dsuseMgtRsltInfo") // prefix .addObject("infoPrefix", "dsuseMgtRsltInfo") // prefix
@ -131,7 +151,7 @@ public class AddsNimsController extends ApplicationController {
public ModelAndView dsuseMgtReceiptMain() { public ModelAndView dsuseMgtReceiptMain() {
ModelAndView mav = new ModelAndView("adds/nims/dsuseMgtReceipt-main"); ModelAndView mav = new ModelAndView("adds/nims/dsuseMgtReceipt-main");
setCmmCodeAdds11(mav); setCmmCode("ADDS11", mav);
List<DataObject> deptList = defaultOgdpBean.getDeptList(new OgdpQuery()); List<DataObject> deptList = defaultOgdpBean.getDeptList(new OgdpQuery());
mav.addObject("DEPTList", deptList); mav.addObject("DEPTList", deptList);
@ -146,7 +166,7 @@ public class AddsNimsController extends ApplicationController {
@RequestMapping(value = "dsuseMgtRslt.do", name="결과[통보] 처리 메인") @RequestMapping(value = "dsuseMgtRslt.do", name="결과[통보] 처리 메인")
public ModelAndView dsuseMgtRsltMain() { public ModelAndView dsuseMgtRsltMain() {
ModelAndView mav = new ModelAndView("adds/nims/dsuseMgtRslt-main"); ModelAndView mav = new ModelAndView("adds/nims/dsuseMgtRslt-main");
setCmmCodeAdds11(mav); setCmmCode("ADDS11", mav);
return mav return mav
.addObject("pageName", "dsuseMgtRslt") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "dsuseMgtRslt") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
@ -158,7 +178,7 @@ public class AddsNimsController extends ApplicationController {
@RequestMapping(value = "/dsuseMgtMapping.do", name="폐기 보고 확인 메인") @RequestMapping(value = "/dsuseMgtMapping.do", name="폐기 보고 확인 메인")
public ModelAndView dsuseMgtMapping() { public ModelAndView dsuseMgtMapping() {
ModelAndView mav = new ModelAndView("adds/nims/dsuseMgtMapping-main"); ModelAndView mav = new ModelAndView("adds/nims/dsuseMgtMapping-main");
setCmmCodeAdds11(mav); setCmmCode("ADDS11", mav);
return mav return mav
.addObject("pageName", "dsuseMgtMapping") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "dsuseMgtMapping") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
@ -171,16 +191,11 @@ public class AddsNimsController extends ApplicationController {
public ModelAndView dsuseMgtDoc() { public ModelAndView dsuseMgtDoc() {
ModelAndView mav = new ModelAndView(); ModelAndView mav = new ModelAndView();
mav.setViewName("adds/nims/dsuseDoc-main"); mav.setViewName("adds/nims/dsuseDoc-main");
setCmmCodeAdds11(mav); setCmmCode("ADDS11", mav);
mav.addObject("pageName", "dsuseMgtDoc"); mav.addObject("pageName", "dsuseMgtDoc");
return mav; return mav;
} }
private void setCmmCodeAdds11(ModelAndView mav){
Map<String, List<CommonCode>> commonCodes = getCodesOf("ADDS11");
mav.addObject("ADDS11List", commonCodes.get("ADDS11"));
}
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
// menu 호출 처리 // menu 호출 처리
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
@ -216,4 +231,16 @@ public class AddsNimsController extends ApplicationController {
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
// 마약류폐기보고 팝업 // 마약류폐기보고 팝업
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
// private method
//-------------------------------------------------------------------------------------------------
private void setCmmCode(String grpCode, ModelAndView mav){
Map<String, List<CommonCode>> commonCodes = getCodesOf(grpCode);
mav.addObject(grpCode, commonCodes.get(grpCode));
}
//-------------------------------------------------------------------------------------------------
// private method
//-------------------------------------------------------------------------------------------------
} }

@ -46,7 +46,7 @@
</sql> </sql>
<select id="selectDsuseMgtReceiptList" parameterType="map" resultType="dataobject"> <select id="selectDsuseMgtReceiptList" parameterType="map" resultType="dataobject">
/* 폐기관리접수 목록 조회(dsuseMgtReceiptMapper.selectDsuseMgtReceiptList) */ /* 폐기관리접수 목록 조회(dsuseMgtReceiptMapper.selectDsuseMgtReceiptList) */
<include refid="utility.paging-prefix" /> <include refid="utility.paging-prefix" />
<include refid="select" /> <include refid="select" />
WHERE 1=1 WHERE 1=1
@ -64,4 +64,9 @@
<include refid="utility.paging-suffix" /> <include refid="utility.paging-suffix" />
</select> </select>
<select id="selectDsuseMgtReceiptInfo" parameterType="string" resultType="dataobject">
/* 폐기관리접수 목록 조회(dsuseMgtReceiptMapper.selectDsuseMgtReceiptInfo) */
<include refid="select" />
WHERE A.DSCDMNG_ID = #{dscdmngId}
</select>
</mapper> </mapper>

@ -44,8 +44,8 @@
<sql id="selectCategories"><include refid="utility.paging-prefix" /> <sql id="selectCategories"><include refid="utility.paging-prefix" />
SELECT * SELECT *
FROM TB_CODE_CTGR FROM TB_CODE_CTGR
WHERE USE_YN = 'Y' <where><if test="!includeAll"> AND USE_YN = 'Y'</if>
<if test="categoryIDs != null"> AND CTGR_ID IN (<foreach collection="categoryIDs" item="categoryID" separator=",">#{categoryID}</foreach>)</if> <if test="categoryIDs != null"> AND CTGR_ID IN (<foreach collection="categoryIDs" item="categoryID" separator=",">#{categoryID}</foreach>)</if></where>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /></sql> <include refid="utility.paging-suffix" /></sql>
@ -94,9 +94,9 @@ UPDATE TB_CODE_CTGR SET
<sql id="selectGroups"><include refid="utility.paging-prefix" /> <sql id="selectGroups"><include refid="utility.paging-prefix" />
SELECT * SELECT *
FROM TB_CODE_GRP FROM TB_CODE_GRP
WHERE USE_YN = 'Y' <where><if test="!includeAll"> AND USE_YN = 'Y'</if>
<if test="categoryIDs != null">AND CTGR_ID IN (<foreach collection="categoryIDs" item="categoryID" separator=",">#{categoryID}</foreach>)</if> <if test="categoryIDs != null"> AND CTGR_ID IN (<foreach collection="categoryIDs" item="categoryID" separator=",">#{categoryID}</foreach>)</if>
<if test="groupIDs != null">AND GRP_ID IN (<foreach collection="groupIDs" item="groupID" separator=",">#{groupID}</foreach>)</if> <if test="groupIDs != null"> AND GRP_ID IN (<foreach collection="groupIDs" item="groupID" separator=",">#{groupID}</foreach>)</if></where>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /></sql> <include refid="utility.paging-suffix" /></sql>
@ -151,9 +151,9 @@ UPDATE TB_CODE_GRP SET
<sql id="selectCodes"><include refid="utility.paging-prefix" /> <sql id="selectCodes"><include refid="utility.paging-prefix" />
SELECT * SELECT *
FROM TB_CMN_CODE FROM TB_CMN_CODE
WHERE USE_YN = 'Y' <where><if test="!includeAll"> AND USE_YN = 'Y'</if>
<if test='groupIDs != null'>AND GRP_ID IN (<foreach collection="groupIDs" item="groupID" separator=",">#{groupID}</foreach>)</if> <if test='groupIDs != null'> AND GRP_ID IN (<foreach collection="groupIDs" item="groupID" separator=",">#{groupID}</foreach>)</if>
<if test='codes != null'>AND CODE IN (<foreach collection="codes" item="code" separator=",">#{code}</foreach>)</if> <if test='codes != null'> AND CODE IN (<foreach collection="codes" item="code" separator=",">#{code}</foreach>)</if></where>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /></sql> <include refid="utility.paging-suffix" /></sql>

@ -45,7 +45,7 @@
<label class="form-label fw-bold form-search-title text-end" for="schSttsCd--${pageName}">처리상태</label> <label class="form-label fw-bold form-search-title text-end" for="schSttsCd--${pageName}">처리상태</label>
<select class="form-select" id="schSttsCd--${pageName}" name="schSttsCd"> <select class="form-select" id="schSttsCd--${pageName}" name="schSttsCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${ADDS11List}" var="item"> <c:forEach items="${ADDS11}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
</select> </select>

@ -45,7 +45,7 @@
<label class="form-label fw-bold form-search-title text-end" for="schSttsCd--${pageName}">처리상태</label> <label class="form-label fw-bold form-search-title text-end" for="schSttsCd--${pageName}">처리상태</label>
<select class="form-select" id="schSttsCd--${pageName}" name="schSttsCd"> <select class="form-select" id="schSttsCd--${pageName}" name="schSttsCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${ADDS11List}" var="item"> <c:forEach items="${ADDS11}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
</select> </select>

@ -12,7 +12,7 @@
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="bssh--${pageName}" name="bssh"> <form id="bssh--${pageName}" name="bssh">
<!-- hidden --> <!-- hidden -->
<label for="bssh--${pageName}" style="margin-top: 10px; padding-left: 20px;"><strong>취급업체 정보</strong></label> <label for="bssh--${pageName}" style="margin-top: 10px; padding-left: 20px;"><strong>취급 업체 정보</strong></label>
<div class="row my-1 mx-4 g-1 border-card rounded-3"> <div class="row my-1 mx-4 g-1 border-card rounded-3">
<div class="col-md-4"> <div class="col-md-4">
<label for="bsshNm--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">업체명</label> <label for="bsshNm--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">업체명</label>
@ -38,21 +38,16 @@
<div class="col-md-8"> <div class="col-md-8">
<label for="dsusePrvCd--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">폐기사유</label> <label for="dsusePrvCd--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">폐기사유</label>
<select class="form-select" id="dsusePrvCd--${pageName}" name="dsusePrvCd"> <select class="form-select" id="dsusePrvCd--${pageName}" name="dsusePrvCd">
<option value="01">사고마약류(파손)</option> <c:forEach items="${ADDS04}" var="item">
<option value="02">사고마약류(변질,부패)</option> <option value="${item.code}">${item.value}</option>
<option value="03">유효기한/사용기한 경과</option> </c:forEach>
<option value="04">유효기한 임박</option> </select>
<option value="05">사용중단</option>
<option value="07">폐업</option>
<option value="08">환자반납</option>
<option value="09">기타</option>
<option value="12">제조공정 중 폐기물</option></select>
</div> </div>
</div> </div>
<div class="row my-1 mx-1 g-1 border-card rounded"></div> <div class="row my-1 mx-1 g-1 border-card rounded"></div>
</form> </form>
<form id="product--${pageName}" name="product"> <form id="product--${pageName}" name="product">
<label for="product--${pageName}" style="margin-top: 10px; padding-left: 20px;"><strong>신청 정보</strong></label> <label for="product--${pageName}" style="margin-top: 10px; padding-left: 20px;"><strong>폐기 제품 정보</strong></label>
<div class="row my-1 mx-4 g-1 border-card rounded-3"> <div class="row my-1 mx-4 g-1 border-card rounded-3">
<div class="col-md-4"> <div class="col-md-4">
<label for="prductNm--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">제품명</label> <label for="prductNm--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">제품명</label>
@ -515,8 +510,8 @@
$P.initForm(); $P.initForm();
// 3. Dataset 설정 // 3. Dataset 설정
$P.control.setData([${opnnDlbrMbrInfo}]); //$P.control.setData([${dsuseReceptInfo}]);
$P.productControl.setData([${opnnDlbrMbrInfo}]); //$P.productControl.setData([${opnnDlbrMbrInfo}]);
}); });
</script> </script>

@ -48,7 +48,7 @@
<label class="form-label fw-bold form-search-title text-end" for="schSttsCd--${pageName}">처리상태</label> <label class="form-label fw-bold form-search-title text-end" for="schSttsCd--${pageName}">처리상태</label>
<select class="form-select" id="schSttsCd--${pageName}" name="schSttsCd"> <select class="form-select" id="schSttsCd--${pageName}" name="schSttsCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${ADDS11List}" var="item"> <c:forEach items="${ADDS11}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
</select> </select>
@ -278,13 +278,13 @@
}; };
// 신청서 정보 dialog // 신청서 정보 dialog
$P.control.getInfo = (gdccId) => { $P.control.getInfo = (dscdmngId) => {
let dialogTitle = "폐기 신청서 접수"; let dialogTitle = "폐기 신청서 접수";
let params = {}; if(dscdmngId) dialogTitle = "폐기 신청서 접수 상세";
ajax.get({ ajax.get({
url : wctx.url("/adds/nims/dsuseMgtReceipt-info.do") url : wctx.url("/adds/nims/dsuseMgtReceipt-info.do")
, data : params || {} , data : dscdmngId? {dscdmngId: dscdmngId} : {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : "dsuseMgtReceiptDialog" id : "dsuseMgtReceiptDialog"
@ -317,9 +317,8 @@
// //
let replacer = (str, dataItem) => str let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("DSCDMNG_ID") + "');"); .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("DSCDMNG_ID") + "');")
// .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("DSCDMNG_ID") + "');"); .replace(/{ondblclick}/gi, "pageObject['${pageName}'].control.getInfo('" + dataItem.getValue("DSCDMNG_ID") + "');");
let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.outerHTML] let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.outerHTML]
: ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer); : ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer);
@ -458,7 +457,7 @@
$P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수 $P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수
$P.control.query.delYn = "N"; // 삭제 여부 $P.control.query.delYn = "N"; // 삭제 여부
$P.control.load(1); $P.control.load();
} }
// 엑셀 버튼 클릭 이벤트 // 엑셀 버튼 클릭 이벤트
@ -560,5 +559,4 @@
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
}); });
</script> </script>

@ -0,0 +1,438 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">폐기관리 등록</c:set>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<!-- Page Body -->
<div class="card">
<!-- 입력 영역 -->
<form id="bssh--${pageName}" name="bssh">
<!-- hidden -->
<label for="bssh--${pageName}" style="margin-top: 10px; padding-left: 20px;"><strong>취급업체 정보</strong></label>
<div class="row my-1 mx-4 g-1 border-card rounded-3">
<div class="col-md-4">
<label for="bsshNm--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">업체명</label>
<input type="text" class="form-control w-60" id="bsshNm--${pageName}" name="bsshNm" data-map="bsshNm" readonly>
</div>
<div class="col-md-4">
<label for="bsshCd--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">식별번호</label>
<input type="text" class="form-control w-60" id="bsshNm--${pageName}" name="bsshCd" data-map="bsshCd" readonly>
</div>
<button type="button" class="btn btn-search w-px-120" id="btnBsshSearch--${pageName}" title="검색">검색</button>
<div class="col-md-4">
<label for="rprsntvNm--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">대표자명</label>
<input type="text" class="form-control w-60" id="rprsntvNm--${pageName}" name="rprsntvNm" data-map="rprsntvNm" readonly>
</div>
<div class="col-md-4">
<label for="prmisnNo--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">허가번호</label>
<input type="text" class="form-control w-60" id="prmisnNo--${pageName}" name="prmisnNo" data-map="prmisnNo" readonly>
</div>
<div class="col-md-4">
<label for="bizrNo--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">사업자등록번호</label>
<input type="text" class="form-control w-60" id="bizrno--${pageName}" name="bizrno" data-map="bizrno" readonly>
</div>
<div class="col-md-8">
<label for="dsusePrvCd--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">폐기사유</label>
<select class="form-select" id="dsusePrvCd--${pageName}" name="dsusePrvCd">
<c:forEach items="${ADDS04}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
</div>
<div class="row my-1 mx-1 g-1 border-card rounded"></div>
</form>
<div>
</div>
<span class="container-page-btn">
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장">저장</button>
</span>
</span>
</div>
<!-- / 업무 버튼 표시 -->
</div> <!-- / Content <div class="container flex-grow-1 px-0"> -->
</div> <!-- / inner page html <div class="content-wrapper"> -->
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
pageObject["${pageName}"] = {};
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// pageObject
let $P = pageObject["${pageName}"];
// FormFields
$P.bsshFormFields = new AddsFormFields("#bssh--${pageName}");
$P.productFormFields = new AddsFormFields("#product--${pageName}");
/**************************************************************************
* DatasetControl
**************************************************************************/
$P.control = new DatasetControl({
prefix: "dsuseMgtReceiptBssh"
, prefixName: "마약류 취급업체 조회"
, keymapper: info => info ? info.bsshCd : ""
, dataGetter: obj => obj.${infoPrefix}Info
, infoSize: "xl"
});
$P.bsshList = new Dataset({
prefix: "dsuseMgtReceiptBsshList"
, prefixName: "마약류 취급업체 조회"
, keymapper: info => info ? info.bsshCd : ""
, dataGetter: obj => obj
, infoSize: "xl"
});
$P.productControl = new DatasetControl({
prefix: "dsuseMgtReceiptProduct"
, prefixName: "마약류 제품 조회"
, keymapper: info => info ? info.prductCd : ""
, dataGetter: obj => obj.${infoPrefix}Info
, infoSize: "xl"
});
$P.productList = new Dataset({
prefix: "dsuseMgtReceiptProductList"
, prefixName: "마약류 제품 조회"
, keymapper: info => info ? info.prductCd : ""
, dataGetter: obj => {
if (!obj.success){
dialog.alert(obj.message);
return false;
}
return obj.data;
}
, infoSize: "xl"
, formats: {
prdValidDe: dateFormat
}
});
$P.detailControl = new DatasetControl({
urls : {
load : wctx.url("/adds/nims/dsuseMgtDetail-list.do")
}
, prefix : "dsuseMgtDetail"
, prefixName : "신청서접수상세"
, keymapper : info => info ? info.DSCDMNG_SN : ""
, dataGetter : obj => obj.dsuseMgtDetailList
, formats : {
PRD_VALID_DE: dateFormat
}
});
$P.detailControl.query = { "schDscdmngId" : ${DSCDMNG_ID}};
$P.detailControl.load(1);
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => {
if (!item) return;
$P.bsshFormFields.set($P.control, item);
// 업무구분에 따른 URL 변경
//$P.fnSetURL(item.data.bsshCd);
}
$P.productControl.onCurrentChange = item => {
if (!item) return;
// Dataset 셋팅
$P.productFormFields.set($P.productControl, item);
// 업무구분에 따른 URL 변경
//$P.fnSetURL(item.data.bsshCd);
}
// 저장 callback
$P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력
dialog.alert({
content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
if (resp.saved) {
dialog.close($P.control.prefix + "Dialog--${openerPageName}");
}
}
$P.control.getBsshInfo = () => {
let dialogTitle = "마약류 취급업체 조회";
let params = {openPage : "bssh--${pageName}"};
ajax.get({
url : wctx.url("/adds/nims/bssh-popup.do")
, data : params
, success : resp => {
dialog.open({
id : "bsshPopupDialog"
, title : dialogTitle
, content : resp
, size : $P.control.infoSize
, onClose : () => { $P.control.setData(); }
});
}
});
}
$P.productControl.getProductInfo = () => {
let dialogTitle = "마약류 제품 조회";
let params = {openPage : "product--${pageName}"};
ajax.get({
url : wctx.url("/adds/nims/product-popup.do")
, data : params
, success : resp => {
dialog.open({
id : "productMainDialog"
, title : dialogTitle
, content : resp
, size : $P.productControl.infoSize
, onClose : () => { $P.productControl.setData(); }
});
}
});
}
// 저장
$P.control.save = (jsonBssh, datasetListPrd, fileArr) => {
let saveBsshData = {
...jsonBssh,
rndDtlRptCnt: datasetListPrd.length,
userId: "${currentUser.account}"
}
let create = (jsonBssh.dscdmngId == "");
upload({
url: '<c:url value="${apiHost}/api/biz/nims/v1/saveDsuseMgtReceipt" />'
, data: {
dsuseMgtJsonStr: JSON.stringify(saveBsshData),
dsuseMgtDtlsJsonStr: JSON.stringify(datasetListPrd),
// 폐기상품이미지목록
dsusePrdImgFiles: fileArr
}
, success: resp => {
if(!resp.success){
dialog.alert({
content: resp.message
});
return;
}
//$P.control.onSave(resp)
dialog.alert("저장됐습니다.");
dialog.close("dsuseMgtReceiptDialog");
//this._load();
}
});
}
$P.productList.onDatasetChange = item => {
if (!item) return;
let empty = $P.productList.empty;
// 업무별 DataTables(그리드) tr, td
let foundContent = document.getElementById("productListRow--productList").content;
let foundTr = $(foundContent).find("tr")[0].cloneNode(false);
let foundTds = $(foundContent).find("td");
foundTds.each(function() {
foundTr.appendChild(this.cloneNode(true));
});
//
let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].productList.setCurrent('" + dataItem.getValue("prductCd") + "');");
let trs = empty ? [document.getElementById("$productListNotFound--productList").content.outerHTML]
: $P.productList.inStrings(foundTr.outerHTML, replacer);
$("#table-responsive--${pageName}")[0].changeContent(trs.join(), true, true);
fnMakeGridImageViewer($("#tbody--productList").find("td.prdDsuseImg").get(), "dsusePrdImgFiles");
}
/**************************************************************************
* DataTables 이벤트
**************************************************************************/
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 검색 자료 재조회
$P.fnRefreshList = () => {
$P.control.untilPageNum = $P.control.query.pageNum;
$P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
$P.control.load(1);
}
// 업무구분에 따른 URL 설정
$P.fnSetURL = (taskSeCd) => {
// $P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/create.do"); // 등록
// $P.control.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/update.do"); // 수정
}
// 전자우편 안내문 등록 버튼 이벤트
$P.fnSearchBssh = (title) => {
$P.control.getBsshInfo();
}
$P.fnSearchProduct = (title) => {
$P.productControl.getProductInfo();
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 저장
$P.fnSave = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
let bsshData = $P.bsshFormFields.get();
if(bsshData.bsshCd == ""){
dialog.alert({
content: "마약류 취급업체 정보를 입력해주세요."
});
return false;
}
let dsProd = $P.productList.getDataset();
if(dsProd.length == 0){
dialog.alert({
content: "폐기 제품 정보를 입력해주세요."
});
return false;
}
let fileArr = [];
$("#tbody--productList").find("input[type='file'][name='dsusePrdImgFiles']").each(function() {
fileArr.push(this.files[0]);
});
if(dsProd.length != fileArr.length){
dialog.alert({
content: "입력되지 않은 폐기 제품 이미지가 있습니다."
});
return false;
}
dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.control.save(bsshData, dsProd, fileArr); // formFields
}
});
}
//추가
$P.fnAdd = () => {
if(!$P.productFormFields.get().prductCd){
dialog.alert({
content: "제품 정보를 입력해주세요."
});
return false;
}
if(!$P.productFormFields.get().dsuseQy){
dialog.alert({
content: "폐기수량을 입력해 주세요"
});
return false;
}
let isDup = $P.productList
.getDataset()
.filter(item => item.prductCd == $P.productFormFields.get().prductCd)
.length > 0;
if(isDup){
dialog.alert({
content: "등록한 상품[" + $P.productFormFields.get().prductCd + "]입니다"
});
return false;
}
$P.productList.addData([$P.productFormFields.get()]);
// FIXME: 상품필드 초기화 코드 추가
//
}
$P.fnDel = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.control.save($P.bsshFormFields.get()); // formFields
}
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트 설정
$P.setEvent = () => {
// 안내문 등록 버튼 이벤트
$("#btnBsshSearch--${pageName}").on("click", function() {
$P.fnSearchBssh($(this).attr("title"));
});
$("#btnProductSearch--${pageName}").on("click", function() {
$P.fnSearchProduct($(this).attr("title"));
});
// 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장
$("#btnAdd--${pageName}").on("click", () => $P.fnAdd()); // 추가
$("#btnDel--${pageName}").on("click", () => $P.fnDel()); // 추가
}
// 초기 화면 설정
$P.initForm = () => {
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList);
}
/**************************************************************************
* 최초 실행 함수
**************************************************************************/
// 1. 이벤트 설정
$P.setEvent();
// 2. 초기 화면 설정
$P.initForm();
// 3. Dataset 설정
$P.control.setData([${dsuseReceptInfo}]);
$P.productControl.setData([${opnnDlbrMbrInfo}]);
});
</script>

@ -236,6 +236,7 @@
upload({ upload({
url: '<c:url value="${apiHost}/api/biz/nims/v1/saveDsuseMgtRslt" />' url: '<c:url value="${apiHost}/api/biz/nims/v1/saveDsuseMgtRslt" />'
, data: { , data: {
fileChangeYn: "Y",
dsuseMgtRsltJsonStr: JSON.stringify(saveData), dsuseMgtRsltJsonStr: JSON.stringify(saveData),
dsuseDsuseImgFiles: fileArr dsuseDsuseImgFiles: fileArr
} }
@ -475,6 +476,22 @@
// 3. Dataset 설정 // 3. Dataset 설정
$P.control.setData([${dsuseRsltInfo}]); $P.control.setData([${dsuseRsltInfo}]);
let fileInfos = ${fileInfos};
if(fileInfos.length > 0){
let promiseArr = [];
fileInfos.forEach(f => promiseArr.push(fnCreateFileFromFileInfo(f)));
Promise.all(promiseArr).then((values) => {
$P.fileArr = $P.fileArr.concat(values);
$P.fnDisplay();
}).catch((error) => {
alert(error);
dialog.close($P.control.prefix + "Dialog--${openerPageName}");
});
}
}); });
</script> </script>

@ -46,7 +46,7 @@
<label class="form-label fw-bold form-search-title text-end" for="schSttsCd--${pageName}">처리상태</label> <label class="form-label fw-bold form-search-title text-end" for="schSttsCd--${pageName}">처리상태</label>
<select class="form-select" id="schSttsCd--${pageName}" name="schSttsCd"> <select class="form-select" id="schSttsCd--${pageName}" name="schSttsCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${ADDS11List}" var="item"> <c:forEach items="${ADDS11}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
</select> </select>
@ -136,15 +136,15 @@
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" <table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer"
id="DataTables_Table_1--${pageName}" aria-describedby="DataTables_Table_0_info"> id="DataTables_Table_1--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead"> <thead class="sticky-thead">
<tr> <tr>
<th class="cmn" style="width: 72px;">No.</th> <th class="cmn" style="width: 72px;">No.</th>
<th class="sorting sorting_asc" aria-sort="ascending" style="width: 350.719px;">제품명</th> <th class="sorting sorting_asc" aria-sort="ascending" style="width: 350.719px;">제품명</th>
<th class="sorting" style="width: 146.156px;">제품코드</th> <th class="sorting" style="width: 146.156px;">제품코드</th>
<th class="sorting" style="width: 130.141px;">폐기수량</th> <th class="sorting" style="width: 130.141px;">폐기수량</th>
<th class="sorting" style="width: 130.469px;">유효기간</th> <th class="sorting" style="width: 130.469px;">유효기간</th>
<th class="sorting" style="width: 180.469px;">유통단위 수량</th> <th class="sorting" style="width: 180.469px;">유통단위 수량</th>
<th class="sorting" style="width: 180.469px;">낱개단위 수량</th> <th class="sorting" style="width: 180.469px;">낱개단위 수량</th>
</tr> </tr>
</thead> </thead>
<tbody id="tbody--${pageName}Detail"> <tbody id="tbody--${pageName}Detail">
</tbody> </tbody>
@ -197,8 +197,6 @@
$P.control = new DatasetControl({ $P.control = new DatasetControl({
urls : { urls : {
load : wctx.url("/adds/nims/dsuseMgtRslt-list.do") load : wctx.url("/adds/nims/dsuseMgtRslt-list.do")
// FIXME: POST로 변경
//load : '<c:url value="${apiHost}/api/biz/nims/v1/getDsuseMgts" />'
} }
, prefix: "dsuseMgtRslt" , prefix: "dsuseMgtRslt"
, prefixName: "결과(통보)처리" , prefixName: "결과(통보)처리"
@ -207,8 +205,7 @@
, appendData: true , appendData: true
, infoSize: "xl" , infoSize: "xl"
, formats: { , formats: {
RPT_DE: dateFormat HDR_DE: dateFormat
, HDR_DE: dateFormat
, DSUSE_DE: dateFormat , DSUSE_DE: dateFormat
} }
}); });
@ -221,11 +218,7 @@
$P.detailControl = new DatasetControl({ $P.detailControl = new DatasetControl({
urls : { urls : {
load : wctx.url("/adds/nims/dsuseMgtDetail-list.do") load : wctx.url("/adds/nims/dsuseMgtDetail-list.do")
// FIXME: POST로 변경 }
//load : '<c:url value="${apiHost}/api/biz/nims/v1/getDsuseMgts" />'
}
// , query.schDscdmngId : $P.control.getValue("DSCDMNG_ID")
// , data : {"schDscdmngId" : $P.control.getValue("DSCDMNG_ID")}
, prefix : "dsuseMgtDetail" , prefix : "dsuseMgtDetail"
, prefixName : "신청서접수상세" , prefixName : "신청서접수상세"
, keymapper : info => info ? info.DSCDMNG_SN : "" , keymapper : info => info ? info.DSCDMNG_SN : ""
@ -265,8 +258,7 @@
let key = item.data.DSCDMNG_ID; let key = item.data.DSCDMNG_ID;
$("#tbody--${pageName}").setCurrentRow(key); $("#tbody--${pageName}").setCurrentRow(key);
var dscdmngId = item.data.DSCDMNG_ID; $P.detailControl.query = { "schDscdmngId" : item.data.DSCDMNG_ID};
$P.detailControl.query = { "schDscdmngId" : dscdmngId};
$P.detailControl.load(1); $P.detailControl.load(1);
}; };
@ -283,6 +275,7 @@
// 신청서 정보 dialog // 신청서 정보 dialog
$P.control.getInfo = (isDtl) => { $P.control.getInfo = (isDtl) => {
let dialogTitle = "폐기 결과[통보] 등록"; let dialogTitle = "폐기 결과[통보] 등록";
if(isDtl) dialogTitle = "폐기 결과[통보] 상세";
let row = $P.control.dataset.getCurrent(); let row = $P.control.dataset.getCurrent();
if (typeof row == "undefined" || row == null || row == "") return; if (typeof row == "undefined" || row == null || row == "") return;
let params = { let params = {

@ -35,7 +35,7 @@
<tbody id="groupList"> <tbody id="groupList">
</tbody> </tbody>
<template id="groupRow"> <template id="groupRow">
<tr data-key="{GRP_ID}"> <tr data-key="{GRP_ID}"{notUsed}>
<td style="text-align:center;"><input value="{GRP_ID}" onchange="codeControl.groups.select('{GRP_ID}', this.checked);" type="checkbox" class="form-check-input"></td> <td style="text-align:center;"><input value="{GRP_ID}" onchange="codeControl.groups.select('{GRP_ID}', this.checked);" type="checkbox" class="form-check-input"></td>
<td onclick="codeControl.groups.setCurrent('{GRP_ID}')" ondblclick="codeControl.groups.getInfo({})">{GRP_ID}</td> <td onclick="codeControl.groups.setCurrent('{GRP_ID}')" ondblclick="codeControl.groups.getInfo({})">{GRP_ID}</td>
<td onclick="codeControl.groups.setCurrent('{GRP_ID}')" ondblclick="codeControl.groups.getInfo({})">{GRP_NM}</td> <td onclick="codeControl.groups.setCurrent('{GRP_ID}')" ondblclick="codeControl.groups.getInfo({})">{GRP_NM}</td>
@ -73,7 +73,7 @@
<tbody id="codeList"> <tbody id="codeList">
</tbody> </tbody>
<template id="codeRow"> <template id="codeRow">
<tr data-key="{CODE}"> <tr data-key="{CODE}"{notUsed}>
<td style="text-align:center;"><input value="{CODE}" onchange="codeControl.codes.select('{CODE}', this.checked);" type="checkbox" class="form-check-input"></td> <td style="text-align:center;"><input value="{CODE}" onchange="codeControl.codes.select('{CODE}', this.checked);" type="checkbox" class="form-check-input"></td>
<td onclick="codeControl.codes.setCurrent('{CODE}')" ondblclick="codeControl.codes.getInfo({})">{CODE}</td> <td onclick="codeControl.codes.setCurrent('{CODE}')" ondblclick="codeControl.codes.getInfo({})">{CODE}</td>
<td onclick="codeControl.codes.setCurrent('{CODE}')" ondblclick="codeControl.codes.getInfo({})">{CODE_VAL}</td> <td onclick="codeControl.codes.setCurrent('{CODE}')" ondblclick="codeControl.codes.getInfo({})">{CODE_VAL}</td>
@ -131,7 +131,10 @@ function renderGroupList() {
let trs = empty ? let trs = empty ?
[document.getElementById("groupNotFound").innerHTML] : <%-- from template#groupNotFound --%> [document.getElementById("groupNotFound").innerHTML] : <%-- from template#groupNotFound --%>
groupList.inStrings(document.getElementById("groupRow").innerHTML); <%-- from template#groupRow --%> groupList.inStrings(
document.getElementById("groupRow").innerHTML,
(tmpl, item) => tmpl.replace(/{notUsed}/gi, item.getValue("USE_YN") == "N" ? "class=\"not-used\"" : "")
); <%-- from template#groupRow --%>
$("#groupList").html(trs.join()); $("#groupList").html(trs.join());
$("th input[type='checkbox']").prop("checked", false); $("th input[type='checkbox']").prop("checked", false);
} }
@ -174,7 +177,10 @@ function renderCodeList() {
let trs = empty ? let trs = empty ?
[document.getElementById("codeNotFound").innerHTML] : <%-- from template#groupNotFound --%> [document.getElementById("codeNotFound").innerHTML] : <%-- from template#groupNotFound --%>
codeList.inStrings(document.getElementById("codeRow").innerHTML); <%-- from template#groupRow --%> codeList.inStrings(
document.getElementById("codeRow").innerHTML,
(tmpl, item) => tmpl.replace(/{notUsed}/gi, item.getValue("USE_YN") == "N" ? "class=\"not-used\"" : "")
); <%-- from template#groupRow --%>
$("#codeList").html(trs.join()); $("#codeList").html(trs.join());
$("#codeToggler").prop("checked", false); $("#codeToggler").prop("checked", false);
} }

@ -39,6 +39,7 @@
<!-- 공통 유틸 --> <!-- 공통 유틸 -->
<script src="<c:url value="/webjars/applib/js/cmmnUtil.js?${ver}"/>"></script> <script src="<c:url value="/webjars/applib/js/cmmnUtil.js?${ver}"/>"></script>
<script src="<c:url value="/resources/js/adds/cmmn/adds-cmmnUtil.js?${ver}"/>"></script>
<!-- 날짜 관련 유틸 --> <!-- 날짜 관련 유틸 -->
<script src="<c:url value="/webjars/applib/js/cmmnDateUtil.js?${ver}"/>"></script> <script src="<c:url value="/webjars/applib/js/cmmnDateUtil.js?${ver}"/>"></script>
<!-- 초기화 유틸 --> <!-- 초기화 유틸 -->

@ -0,0 +1,16 @@
/**************************************************************************
* 서버의 파일 정보로 javascript File 객체 생성
**************************************************************************/
async function fnCreateFileFromFileInfo(fileInfo){
let response = await fetch(fileInfo.URL);
let data = await response.blob();
let metadata = {
type: fileInfo.MIME_TYPE
};
let file = new File([data], fileInfo.FILE_NM, metadata);
file.id = fileInfo.FILE_ID;
file.url = fileInfo.URL;
return new Promise(resolve => { resolve(file); });
}
Loading…
Cancel
Save