Merge remote-tracking branch 'origin/master'
eapim-admin CI / build (push) Has been cancelled

This commit is contained in:
Rinjae
2026-07-30 19:41:14 +09:00
10 changed files with 71 additions and 14 deletions
+7 -5
View File
@@ -40,16 +40,18 @@ $(document).ready(function() {
'<%= localeMessage.getString("user.roleName") %>', '<%= localeMessage.getString("user.roleName") %>',
'<%= localeMessage.getString("user.status") %>', '<%= localeMessage.getString("user.status") %>',
'<%= localeMessage.getString("user.createOn") %>', '<%= localeMessage.getString("user.createOn") %>',
'<%= localeMessage.getString("user.lastLoginYms") %>',
'<%= localeMessage.getString("user.depart") %>', '<%= localeMessage.getString("user.depart") %>',
'<%= localeMessage.getString("user.teamName") %>', '<%= localeMessage.getString("user.teamName") %>',
'<%= localeMessage.getString("user.position") %>' '<%= localeMessage.getString("user.position") %>'
], ],
colModel:[ colModel:[
{ name : 'USERID' , align:'center' ,sortable:false }, { name : 'USERID' , align:'center', width: 100, sortable:false },
{ name : 'USERNAME' , align:'center' }, { name : 'USERNAME' , align:'center', width: 100 },
{ name : 'ROLEIDNFINAME' , align:'center' }, { name : 'ROLEIDNFINAME' , align:'center', width: 300 },
{ name : 'STATUS' , align:'center', formatter: userStatusFormat }, { name : 'STATUS' , align:'center', width: 80, formatter: userStatusFormat },
{ name : 'LASTAMNDYMS' , align:'center', formatter: timeStampFormat }, { name : 'REGDYMS' , align:'center', width: 120, formatter: timeStampFormat },
{ name : 'LASTLOGINYMS' , align:'center', width: 120, formatter: timeStampFormat },
{ name : 'DVSNNAME' , align:'center', hidden: true }, { name : 'DVSNNAME' , align:'center', hidden: true },
{ name : 'TEAMNAME' , align:'center', hidden: true }, { name : 'TEAMNAME' , align:'center', hidden: true },
{ name : 'JOBTLNAME' , align:'center', hidden: true } { name : 'JOBTLNAME' , align:'center', hidden: true }
@@ -88,7 +88,8 @@ function detail(key){
$(tag+"[name="+name+"]").val(data[name.toUpperCase()] ? data[name.toUpperCase()].trim():""); $(tag+"[name="+name+"]").val(data[name.toUpperCase()] ? data[name.toUpperCase()].trim():"");
}); });
$("input[name=LASTAMNDYMS]").inputmask("9999-99-99 99:99:99",{'autoUnmask':true}); $("input[name=REGDYMS]").inputmask("9999-99-99 99:99:99",{'autoUnmask':true});
$("input[name=LASTLOGINYMS]").inputmask("9999-99-99 99:99:99",{'autoUnmask':true});
/* $("input[name=SECONDMENTSTDT]").inputmask("9999-99-99",{'autoUnmask':true}); /* $("input[name=SECONDMENTSTDT]").inputmask("9999-99-99",{'autoUnmask':true});
$("input[name=SECONDMENTENDT]").inputmask("9999-99-99",{'autoUnmask':true}); */ $("input[name=SECONDMENTENDT]").inputmask("9999-99-99",{'autoUnmask':true}); */
@@ -334,7 +335,10 @@ $(document).ready(function() {
<th><%= localeMessage.getString("user.fieldAgentName") %> </th><td><input type="text" name="spotprxyname" /></td> <th><%= localeMessage.getString("user.fieldAgentName") %> </th><td><input type="text" name="spotprxyname" /></td>
</tr> --%> </tr> --%>
<tr> <tr>
<th><%= localeMessage.getString("user.createOn") %> </th><td><input type="text" name="LASTAMNDYMS" readonly/></td> <th><%= localeMessage.getString("user.createOn") %> </th><td><input type="text" name="REGDYMS" readonly/></td>
</tr>
<tr>
<th><%= localeMessage.getString("user.lastLoginYms") %> </th><td><input type="text" name="LASTLOGINYMS" readonly/></td>
</tr> </tr>
<%-- <tr> <%-- <tr>
<th><%= localeMessage.getString("user.secondmentbrncd") %> </th><td><input type="text" name="SECONDMENTBRNCD" readonly/></td> <th><%= localeMessage.getString("user.secondmentbrncd") %> </th><td><input type="text" name="SECONDMENTBRNCD" readonly/></td>
@@ -82,8 +82,10 @@
apiDesc: api.eaiSvcDesc apiDesc: api.eaiSvcDesc
}; };
}); });
// addJSONData는 datatype:"local" 그리드의 p.data를 채우지 않아, 헤더 클릭 정렬 시 p.data(빈 배열) 기준으로 다시 그려지며 행이 사라짐.
// setGridParam({data:...}).trigger('reloadGrid')로 채워야 정렬이 정상 동작함.
$("#selectedApiGrid").jqGrid("clearGridData"); $("#selectedApiGrid").jqGrid("clearGridData");
$("#selectedApiGrid")[0].addJSONData(gridData); $("#selectedApiGrid").jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid');
var data = json; var data = json;
$("#btn_gen_id").hide(); $("#btn_gen_id").hide();
@@ -133,7 +135,6 @@
var selectedApiGrid = $("#selectedApiGrid"); var selectedApiGrid = $("#selectedApiGrid");
selectedApiGrid.jqGrid({ selectedApiGrid.jqGrid({
datatype: "local", datatype: "local",
gridview: true, // 성능 향상
rownumbers: true, // 가상 인덱스 rownumbers: true, // 가상 인덱스
rownumWidth: 40, rownumWidth: 40,
colNames: ['API ID', 'API 이름'], colNames: ['API ID', 'API 이름'],
@@ -141,7 +142,7 @@
{name: 'apiId', index: 'apiId', width: 100, align: 'center'}, {name: 'apiId', index: 'apiId', width: 100, align: 'center'},
{name: 'apiDesc', index: 'apiDesc', width: 100, align: 'center'} {name: 'apiDesc', index: 'apiDesc', width: 100, align: 'center'}
], ],
rowNum: -1, rowNum: 9999,
// rowList: [10, 20, 30], // rowList: [10, 20, 30],
// pager: '#selectedApiGridPager', // pager: '#selectedApiGridPager',
// sortname: 'apiId', // sortname: 'apiId',
@@ -24,6 +24,8 @@ public interface UserUIMapper extends GenericMapper<UserUI, UserInfo> {
@Mapping(source = "secondmentstdt", target = "SECONDMENTSTDT") @Mapping(source = "secondmentstdt", target = "SECONDMENTSTDT")
@Mapping(source = "secondmentendt", target = "SECONDMENTENDT") @Mapping(source = "secondmentendt", target = "SECONDMENTENDT")
@Mapping(source = "allowip", target = "allowIp") @Mapping(source = "allowip", target = "allowIp")
@Mapping(source = "lastloginyms", target = "LASTLOGINYMS")
@Mapping(source = "regdyms", target = "REGDYMS")
UserUI toVo(UserInfo entity); UserUI toVo(UserInfo entity);
@Override @Override
@@ -82,4 +82,14 @@ public class UserUI {
@JsonProperty("STATUS") @JsonProperty("STATUS")
private String status; // 사용자계정상태 private String status; // 사용자계정상태
@JsonProperty("LASTLOGINYMS")
@JsonFormat(pattern = LocalDateTimeFormatters.FORMAT_YYYYMMDDHHMMSS_14)
@DateTimeFormat(pattern = "yyyyMMddHHmmss")
private LocalDateTime LASTLOGINYMS; // 최종로그인일시
@JsonProperty("REGDYMS")
@JsonFormat(pattern = LocalDateTimeFormatters.FORMAT_YYYYMMDDHHMMSS_14)
@DateTimeFormat(pattern = "yyyyMMddHHmmss")
private LocalDateTime REGDYMS; // 등록일시
} }
@@ -8,6 +8,7 @@ import java.net.URLDecoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -26,6 +27,10 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import com.eactive.apim.portal.apispec.entity.ApiSpecInfo;
import com.eactive.apim.portal.apispec.service.ApiSpecInfoService;
import com.eactive.eai.rms.onl.transaction.apim.mapping.ApiSpecUIMapper;
import com.eactive.eai.rms.onl.transaction.apim.ui.ApiSpecInfoUI;
import com.eactive.eai.agent.command.Command; import com.eactive.eai.agent.command.Command;
import com.eactive.eai.agent.command.CommonCommand; import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.common.util.DatetimeUtil; import com.eactive.eai.common.util.DatetimeUtil;
@@ -105,6 +110,12 @@ public class LoaderController implements InterceptorSkipController {
@Autowired @Autowired
private TransformDeployService transformDeployService; private TransformDeployService transformDeployService;
@Autowired
private ApiSpecInfoService apiSpecInfoService;
@Autowired
private ApiSpecUIMapper apiSpecUIMapper;
/** /**
* 형상관리에서 layout을 로딩한다. * 형상관리에서 layout을 로딩한다.
@@ -1481,6 +1492,17 @@ public class LoaderController implements InterceptorSkipController {
} }
} }
// 4. API 스펙 정보(ptl_api_spec_info) 추가 (감사(audit) 컬럼은 제외)
Optional<ApiSpecInfo> optSpecInfo = apiSpecInfoService.findById(interfaceId);
if (optSpecInfo.isPresent()) {
ApiSpecInfoUI specInfo = apiSpecUIMapper.mapToUI(optSpecInfo.get());
specInfo.setCreatedBy(null);
specInfo.setCreatedDate(null);
specInfo.setLastModifiedBy(null);
specInfo.setLastModifiedDate(null);
interfaceDeployPack.setSpecInfo(specInfo);
}
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule()); objectMapper.registerModule(new JavaTimeModule());
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
@@ -1546,6 +1568,16 @@ public class LoaderController implements InterceptorSkipController {
agentUtilService.broadcast(new CommonCommand( "com.eactive.eai.agent.transformer.ReloadTransformCommand", transformDeploy.getCnvsnname())); agentUtilService.broadcast(new CommonCommand( "com.eactive.eai.agent.transformer.ReloadTransformCommand", transformDeploy.getCnvsnname()));
} }
ApiSpecInfoUI specInfoUI = interfaceDeployPack.getSpecInfo();
if (specInfoUI != null && StringUtils.isNotBlank(specInfoUI.getApiId())) {
ApiSpecInfo specInfo = apiSpecUIMapper.mapToEntity(specInfoUI);
if (apiSpecInfoService.findById(specInfo.getApiId()).isPresent()) {
apiSpecInfoService.updateById(specInfo.getApiId(), specInfo);
} else {
apiSpecInfoService.create(specInfo);
}
}
Map<String,String> result = new HashMap<String,String>(); Map<String,String> result = new HashMap<String,String>();
String status = "success"; String status = "success";
result.put("status", status); result.put("status", status);
@@ -3,6 +3,7 @@ package com.eactive.eai.rms.onl.loader.vo;
import com.eactive.eai.rms.onl.loader.intf.deploy.EAIMessageDeploy; import com.eactive.eai.rms.onl.loader.intf.deploy.EAIMessageDeploy;
import com.eactive.eai.rms.onl.loader.layout.deploy.LayoutDeploy; import com.eactive.eai.rms.onl.loader.layout.deploy.LayoutDeploy;
import com.eactive.eai.rms.onl.loader.transform.deploy.TransformDeploy; import com.eactive.eai.rms.onl.loader.transform.deploy.TransformDeploy;
import com.eactive.eai.rms.onl.transaction.apim.ui.ApiSpecInfoUI;
import lombok.Data; import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
@@ -15,4 +16,6 @@ public class InterfaceDeployPack {
private List<LayoutDeploy> layoutDeployList = new ArrayList<>(); private List<LayoutDeploy> layoutDeployList = new ArrayList<>();
private List<TransformDeploy> transformDeployList = new ArrayList<>(); private List<TransformDeploy> transformDeployList = new ArrayList<>();
private ApiSpecInfoUI specInfo;
} }
@@ -2398,6 +2398,7 @@ user.checkRequired2 = Please enter the user name.
user.checkRequired3 = Please enter the password. user.checkRequired3 = Please enter the password.
user.createBy = Create By user.createBy = Create By
user.createOn = Creation Time user.createOn = Creation Time
user.lastLoginYms = Last Login Time
user.depCode = Department Code user.depCode = Department Code
user.depart = Department user.depart = Department
user.eaiGrupCd = EAI group code user.eaiGrupCd = EAI group code
@@ -2560,6 +2560,7 @@ user.checkRequired2 = Please enter the user name.
user.checkRequired3 = Please enter the password. user.checkRequired3 = Please enter the password.
user.createBy = Create By user.createBy = Create By
user.createOn = Creation Time user.createOn = Creation Time
user.lastLoginYms = Last Login Time
user.depCode = Department Code user.depCode = Department Code
user.depart = Department user.depart = Department
user.eaiGrupCd = EAI group code user.eaiGrupCd = EAI group code
@@ -2661,6 +2661,7 @@ user.checkRequired4 = \uC811\uC18D \uD5C8\uC6A9 IP\uB97C \uD655\uC778\uD558\u
user.checkRequired5 = \uC0AC\uC6A9\uC790 \uACC4\uC815 \uC0C1\uD0DC\uB97C \uD655\uC778\uD558\uC5EC \uC8FC\uC2ED\uC2DC\uC624.. user.checkRequired5 = \uC0AC\uC6A9\uC790 \uACC4\uC815 \uC0C1\uD0DC\uB97C \uD655\uC778\uD558\uC5EC \uC8FC\uC2ED\uC2DC\uC624..
user.createBy = \uB4F1\uB85D\uC778 user.createBy = \uB4F1\uB85D\uC778
user.createOn = \uB4F1\uB85D\uC77C\uC2DC user.createOn = \uB4F1\uB85D\uC77C\uC2DC
user.lastLoginYms = \uCD5C\uC885\uB85C\uADF8\uC778\uC77C\uC2DC
user.depCode = \uBD80\uC810\uCF54\uB4DC user.depCode = \uBD80\uC810\uCF54\uB4DC
user.depart = \uBD80\uC11C\uBA85 user.depart = \uBD80\uC11C\uBA85
user.eaiGrupCd = EAI\uADF8\uB8F9\uD68C\uC0AC\uCF54\uB4DC user.eaiGrupCd = EAI\uADF8\uB8F9\uD68C\uC0AC\uCF54\uB4DC