Compare commits
No commits in common. "466a000633df7155b579aab0e08dc396b0cc67d3" and "7efb5ed160c259912e774c5ce7ef9dc6bb4afb0d" have entirely different histories.
466a000633
...
7efb5ed160
|
|
@ -27,30 +27,29 @@ public class OrganConfigController {
|
|||
}
|
||||
|
||||
@GetMapping("/selectOrganList")
|
||||
public List<OrganConfig> selectOrganList(){
|
||||
List<CodeMgt> organCdList = codeMgtService.selectCodeMgtList("OG");
|
||||
List<OrganConfig> organConfigList = organConfigService.selectSavedOrganList();
|
||||
for(CodeMgt organCode: organCdList){
|
||||
public Map<String, List<Object>> selectOrganList(){
|
||||
List<CodeMgt> organList = codeMgtService.selectCodeMgtList("OG");
|
||||
List<OrganConfig> usedOrganList = organConfigService.selectSavedOrganList();
|
||||
List<CodeMgt> notUsedOrganList = new ArrayList<>();
|
||||
for(CodeMgt organCode: organList){
|
||||
if(!organCode.getItemCd().equals("OG001")){
|
||||
boolean usedFlag = false;
|
||||
for(OrganConfig organConfig: organConfigList){
|
||||
if(organCode.getItemCd().equals(organConfig.getOrganCd())){
|
||||
for(OrganConfig usedOrgan: usedOrganList){
|
||||
if(organCode.getItemCd().equals(usedOrgan.getOrganCd())){
|
||||
usedFlag = true;
|
||||
organConfig.setOrganNm(organCode.getItemValue());
|
||||
organConfig.setUseState("T");
|
||||
usedOrgan.setOrganNm(organCode.getItemValue());
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!usedFlag){
|
||||
OrganConfig organConfig = new OrganConfig();
|
||||
organConfig.setOrganCd(organCode.getItemCd());
|
||||
organConfig.setOrganNm(organCode.getItemValue());
|
||||
organConfig.setUseState("F");
|
||||
organConfigList.add(organConfig);
|
||||
notUsedOrganList.add(organCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
return organConfigList;
|
||||
Map<String, List<Object>> returnMap = new HashMap<>();
|
||||
returnMap.put("notUsedOrganList", Collections.singletonList(notUsedOrganList));
|
||||
returnMap.put("usedOrganList", Collections.singletonList(usedOrganList));
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
@PostMapping("/saveOrganConfig")
|
||||
|
|
|
|||
|
|
@ -27,7 +27,5 @@ public class OrganConfig {
|
|||
|
||||
@Transient
|
||||
private String organNm;
|
||||
@Transient
|
||||
private String useState;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
let organList = [];
|
||||
let notUsedOrganList = [];
|
||||
let usedOrganList = [];
|
||||
let selectedMiddleOrganCd = "";
|
||||
|
||||
$(function (){
|
||||
|
|
@ -7,7 +8,8 @@ $(function (){
|
|||
type: 'GET',
|
||||
dataType:"json",
|
||||
success: function(data){
|
||||
organList = data;
|
||||
notUsedOrganList = data.notUsedOrganList[0];
|
||||
usedOrganList = data.usedOrganList[0];
|
||||
setUsedOrganTr("OG001", "OGC002");
|
||||
},
|
||||
error:function(){
|
||||
|
|
@ -27,38 +29,43 @@ $(document).on('click', '#bottomAddBtn', function (){
|
|||
$(document).on('click', '.rowDeleteBtn', function (){
|
||||
const targetTr = $(this).parents('tr');
|
||||
const selector = targetTr.find("select");
|
||||
organList.forEach(function (organ, idx){
|
||||
if(organ.organCd === selector.val() //해당관서
|
||||
|| organ.parentOrgan === selector.val()){ // 해당 지방청을 상위로 둔 관할 서
|
||||
organ.useState = "F";
|
||||
usedOrganList.forEach(function (organ, idx){
|
||||
if(organ.organCd === selector.val()
|
||||
|| organ.parentOrgan === selector.val()){
|
||||
notUsedOrganList.push({
|
||||
itemCd: organ.organCd,
|
||||
itemValue: organ.organNm
|
||||
})
|
||||
usedOrganList = usedOrganList.splice(0, idx).concat(usedOrganList.splice(idx+1, usedOrganList.length));
|
||||
}
|
||||
})
|
||||
targetTr.remove();
|
||||
})
|
||||
|
||||
$(document).on('change', '.organSelector', function () {
|
||||
const selector = this;
|
||||
const selectedItemCd = selector.value;
|
||||
const tbodyId = $(this).parents('tbody')[0].id
|
||||
organList.forEach(function (organ, idx){
|
||||
if(organ.organCd === selectedItemCd){
|
||||
switch (organ.useState){
|
||||
case "T":
|
||||
selector[0].selected = true;
|
||||
alert("다른 위치에 등록된 관서입니다.")
|
||||
$(selector).find("[value='"+selectedItemCd+"']").remove()
|
||||
break;
|
||||
case "F":
|
||||
for(var i=0; i<selector.options.length; i++){
|
||||
if(selector.options[i].index !== selector.options.selectedIndex){
|
||||
selector.options[i].remove();
|
||||
const selectedItemCd = this.value;
|
||||
const selectedItemValue = this.selectedOptions[0].text;
|
||||
const tbodyId = $(this).parents('tbody').id
|
||||
usedOrganList.forEach(function (organ, idx){
|
||||
if(organ.organCd===selectedItemCd){
|
||||
alert("이미 등록된 관서입니다.")
|
||||
return null;
|
||||
}
|
||||
})
|
||||
for(var i=0; i<this.options.length; i++){
|
||||
if(this.options[i].index !== this.options.selectedIndex){
|
||||
this.options[i].remove();
|
||||
}
|
||||
}
|
||||
organ.parentOrgan = tbodyId==='middleTbody'?'OG001':selectedMiddleOrganCd;
|
||||
organ.organType = tbodyId==='middleTbody'?'OGC002':'OGC003';
|
||||
organ.useState = "T";
|
||||
break;
|
||||
}
|
||||
usedOrganList.push({
|
||||
parentOrgan: tbodyId==="middleTbody"?"OG001":selectedMiddleOrganCd,
|
||||
organCd: selectedItemCd,
|
||||
organNm: selectedItemValue,
|
||||
organType: tbodyId==="middleTbody"?"OGC002":"OGC003"
|
||||
})
|
||||
notUsedOrganList.forEach(function (organ, idx){
|
||||
if(organ.itemCd === selectedItemCd){
|
||||
notUsedOrganList = notUsedOrganList.slice(0,idx).concat(notUsedOrganList.slice(idx+1, notUsedOrganList.length));
|
||||
}
|
||||
})
|
||||
})
|
||||
|
|
@ -76,15 +83,10 @@ $(document).on('click', '.middleTr', function (){
|
|||
})
|
||||
$(document).on('click', '#organSaveBtn', function (){
|
||||
contentFade("in");
|
||||
const saveList = [];
|
||||
organList.forEach(function (organ) {
|
||||
if(organ.useState==="T")
|
||||
saveList.push(organ);
|
||||
});
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
url : "/organMgt/saveOrganConfig",
|
||||
data : JSON.stringify(saveList),
|
||||
data : JSON.stringify(usedOrganList),
|
||||
contentType: 'application/json',
|
||||
beforeSend: function (xhr){
|
||||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||
|
|
@ -102,14 +104,13 @@ $(document).on('click', '#organSaveBtn', function (){
|
|||
})
|
||||
|
||||
function addTr(tbody){
|
||||
let options = '';
|
||||
organList.forEach(function (organ) {
|
||||
if(organ.useState==="F")
|
||||
options+= '<option value="'+organ.organCd+'">'+organ.organNm+'</option>'
|
||||
});
|
||||
if(options===''){
|
||||
alert("배정되지 않은 관서가 없습니다.");
|
||||
if(notUsedOrganList.length===0){
|
||||
alert("추가할 수 있는 관서가 없습니다.")
|
||||
}else{
|
||||
let options = '';
|
||||
notUsedOrganList.forEach(function (organ) {
|
||||
options+= '<option value="'+organ.itemCd+'">'+organ.itemValue+'</option>'
|
||||
});
|
||||
$('#'+tbody).append(
|
||||
'<tr '+(tbody==="middleTbody"?'class="middleTr"':'')+'>' +
|
||||
'<td><button class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button></td>' +
|
||||
|
|
@ -124,8 +125,7 @@ function addTr(tbody){
|
|||
|
||||
function setUsedOrganTr(parentOrgan, organType){
|
||||
const target = organType==="OGC002"?$("#middleTbody"):$("#bottomTbody")
|
||||
organList.forEach(function (organ){
|
||||
if(organ.useState === "T"){
|
||||
usedOrganList.forEach(function (organ){
|
||||
if(organ.parentOrgan===parentOrgan && organ.organType===organType){
|
||||
target.append(
|
||||
'<tr '+(organType==="OGC002"?'class="middleTr"':'')+'>' +
|
||||
|
|
@ -136,6 +136,5 @@ function setUsedOrganTr(parentOrgan, organType){
|
|||
'</tr>'
|
||||
)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
Loading…
Reference in New Issue