This commit is contained in:
Rinjae
2025-09-05 17:16:26 +09:00
commit c54ef1903f
4947 changed files with 817291 additions and 0 deletions
@@ -0,0 +1,132 @@
package com.eactive.eai.rms.common.mmilog;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.web.SortDefault;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.eactive.eai.rms.common.base.BaseAnnotationController;
import com.eactive.eai.rms.common.combo.ComboService;
import com.eactive.eai.rms.common.combo.ComboVo;
import com.eactive.eai.rms.common.vo.GridResponse;
import com.eactive.eai.rms.data.entity.onl.mmilog.MMILogSearch;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class MMILogController extends BaseAnnotationController {
private MMILogManService mmiLogManService;
private ComboService comboService;
private ObjectMapper objectMapper;
@Autowired
public MMILogController(MMILogManService mmiLogManService, ComboService comboService, ObjectMapper objectMapper) {
this.mmiLogManService = mmiLogManService;
this.comboService = comboService;
this.objectMapper = objectMapper;
}
@GetMapping(value = "/common/acl/mmiLog/mmiLogMan.view")
public void view() {
// view
}
@GetMapping(value = "/common/acl/mmiLog/mmiLogMan.view", params = "cmd=DETAIL")
public String viewList() {
return "/common/acl/mmiLog/mmiLogManDetail";
}
@PostMapping(value = "/common/acl/mmiLog/mmiLogMan.json", params = "cmd=LIST")
public ResponseEntity<GridResponse<MMILogUI>> selectList(@SortDefault(sort = "id.msgDpstHms", direction = Direction.DESC) Pageable pageable, MMILogSearch mmiLogSearch) {
Page<MMILogUI> page = mmiLogManService.selectList(pageable, mmiLogSearch);
return ResponseEntity.ok(new GridResponse<>(page));
}
@PostMapping(value = "/common/acl/mmiLog/mmiLogMan.json", params = "cmd=LIST_INIT_COMBO")
public ResponseEntity<Map<String, Object>> eaiSvcNameCombo() {
List<ComboVo> listInoutTypeCd = comboService.getFromCode("INOUT_TYPE");
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("inoutTypeRows", listInoutTypeCd);
return ResponseEntity.ok(resultMap);
}
@PostMapping(value = "/common/acl/mmiLog/mmiLogMan.excel", params = "cmd=LIST_GRID_TO_EXCEL")
public ModelAndView listGridToExcel(MMILogSearch mmiLogSearch, @RequestParam Map<String, Object> paramMap)
throws JsonProcessingException {
Map<String, Object>[] datas = mmiLogManService.selectListToExcel(mmiLogSearch);
String[] headers = objectMapper.readValue((String) paramMap.get("header"), String[].class);
String[] headerTitles = objectMapper.readValue((String) paramMap.get("headerTitle"), String[].class);
HashMap<String, Object>[] lmerge = null;
String merge = (String) paramMap.get("merge");
if (merge != null) {
lmerge = objectMapper.readValue(merge, new TypeReference<HashMap<String, Object>[]>() {
});
}
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("headers", headers);
resultMap.put("headerTitles", headerTitles);
resultMap.put("datas", datas);
resultMap.put("fileName", paramMap.get("fileName"));
resultMap.put("merge", lmerge);
return new ModelAndView("excelView", resultMap);
}
@PostMapping(value = "/common/acl/mmiLog/mmiLogMan.json", params = "cmd=DETAIL")
public ResponseEntity<MMILogUI> selectDetail(MMILogUI mmiLogUI) {
MMILogUI ui = mmiLogManService.selectDetail(mmiLogUI);
return ResponseEntity.ok(ui);
}
@GetMapping(value = "/common/acl/mmiLog/mmiLogMan.json", params = "cmd=DETAIL_XML")
public String showXML(HttpServletRequest request, MMILogUI mmiLogUI, String key, String type) {
String message = "데이터 조회 실패";
MMILogUI data = mmiLogManService.selectDetail(mmiLogUI);
if (data != null) {
String header = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>";
String xmlData = data.getReqDstcd();
String[] sptXmlData = StringUtils.splitByWholeSeparatorPreserveAllTokens(xmlData, header);
Optional<String> matchedSegment = Arrays.stream(sptXmlData)
.filter(segment -> segment != null &&
(segment.contains("sysSvcName=\"" + key) && "eaiSvcName".equals(type) ||
segment.contains("layoutId=\"" + key) ||
segment.contains("id=\"" + key)))
.findFirst();
if(matchedSegment.isPresent()) {
message = header + (matchedSegment.get()).replaceAll("[\\r\\n\\t]", "");
}
}
//data == null
request.setAttribute("param", message);
return "forward:/common/jsp/popupXmlBrowser.jsp";
}
}
@@ -0,0 +1,39 @@
package com.eactive.eai.rms.common.mmilog;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.eactive.eai.rms.common.base.SqlMapClientForMonitoringTemplateDao;
@Repository("mmiLogDao")
@SuppressWarnings({"deprecation","unchecked"})
public class MMILogDao extends SqlMapClientForMonitoringTemplateDao {
public int selectListCount(HashMap<String, Object> param) throws Exception {
return (Integer)template.queryForObject("MMILog.selectListCount", param);
}
public List<Map<String, Object>> selectList(HashMap<String, Object> param) throws Exception {
return (List<Map<String, Object>>)template.queryForList("MMILog.selectList", param);
}
public List selectListToExcel(HashMap param) throws Exception {
return template.queryForList("MMILog.selectListToExcel", param);
}
public HashMap selectDetail(HashMap param) throws Exception {
return (HashMap)template.queryForObject("MMILog.selectDetail", param);
}
public void insert(HashMap<String, Object> paramMap) throws Exception{
this.template.insert("MMILog.insert", paramMap);
}
public void update(HashMap<String, Object> paramMap) throws Exception{
this.template.update("MMILog.update", paramMap);
}
public void delete(HashMap<String, Object> paramMap) throws Exception{
this.template.delete("MMILog.delete", paramMap);
}
}
@@ -0,0 +1,87 @@
package com.eactive.eai.rms.common.mmilog;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.StreamSupport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.eactive.eai.rms.common.base.BaseService;
import com.eactive.eai.rms.data.entity.onl.code.Code;
import com.eactive.eai.rms.data.entity.onl.code.CodeId;
import com.eactive.eai.rms.data.entity.onl.code.CodeService;
import com.eactive.eai.rms.data.entity.onl.mmilog.MMILog;
import com.eactive.eai.rms.data.entity.onl.mmilog.MMILogSearch;
import com.eactive.eai.rms.data.entity.onl.mmilog.MMILogService;
@Service
@Transactional(transactionManager = "transactionManagerForEMS")
public class MMILogManService extends BaseService {
private MMILogService mmiLogService;
private CodeService codeService;
private MMILogUIMapper mmiLogUIMapper;
@Autowired
public MMILogManService(MMILogService mmiLogService, CodeService codeService, MMILogUIMapper mmiLogUIMapper) {
this.mmiLogService = mmiLogService;
this.codeService = codeService;
this.mmiLogUIMapper = mmiLogUIMapper;
}
public Page<MMILogUI> selectList(Pageable pageable, MMILogSearch mmiLogSearch) {
Page<MMILog> list = mmiLogService.findAll(pageable, mmiLogSearch);
return list.map(log -> {
MMILogUI ui = mmiLogUIMapper.toVo(log);
CodeId codeId = new CodeId("INOUT_TYPE", log.getEaiSevrDstcd());
String eaiSevrDstcd = codeService.findById(codeId).map(Code::getCodename).orElse("");
ui.setEaiSevrDstcd("[" + log.getEaiSevrDstcd() + "] " + eaiSevrDstcd);
// //mmi방식
// String returnCd = "return_code=\"SUCCESS\"";
// //eims방식
String returnCdString = "<Result>True</Result>";
// RES로 returnCode 받기
ui.setReturnCd(log.getResDstcd().contains(returnCdString) ? "SUCCESS" : "FAIL");
ui.setReqDstcd("");
ui.setResDstcd("");
return ui;
});
}
public MMILogUI selectDetail(MMILogUI mmiLogUI) {
MMILog mmiLog = mmiLogService.getById(mmiLogUIMapper.toId(mmiLogUI));
return mmiLogUIMapper.toVo(mmiLog);
}
public Map<String, Object>[] selectListToExcel(MMILogSearch mmiLogSearch) {
Iterable<MMILog> list = mmiLogService.findAll(mmiLogSearch);
@SuppressWarnings("unchecked")
Map<String, Object>[] mapArray = StreamSupport.stream(list.spliterator(), false).map(log -> {
Map<String, Object> map = new HashMap<>();
map.put("MSGDPSTHMS", log.getId().getMsgDpstHms());
map.put("INTERFACEID", log.getInterfaceId());
map.put("EAISVCNAME", log.getId().getEaiSvcName());
map.put("EAISEVRDSTCD", log.getEaiSevrDstcd());
map.put("CNVSNNAME", log.getCnvsnName());
map.put("LOUTNAME", log.getLoutName());
map.put("DEPLOYID", log.getDeployId());
String returnCd = "<Result>True</Result>";
map.put("RETURNCD", log.getResDstcd().contains(returnCd) ? "SUCCESS" : "FAIL");
return map;
}).toArray(size -> new HashMap[size]);
return mapArray;
}
}
@@ -0,0 +1,39 @@
package com.eactive.eai.rms.common.mmilog;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class MMILogUI {
@JsonProperty("MSGDPSTHMS")
private String msgDpstHMS;
@JsonProperty("INTERFACEID")
private String interfaceId;
@JsonProperty("EAISVCNAME")
private String eaiSvcName;
@JsonProperty("EAISEVRDSTCD")
private String eaiSevrDstcd;
@JsonProperty("CNVSNNAME")
private String cnvsnName;
@JsonProperty("LOUTNAME")
private String loutName;
@JsonProperty("DEPLOYID")
private String deployId;
@JsonProperty("RETURNCD")
private String returnCd;
/////
@JsonProperty("RESDSTCD")
private String resDstcd;
@JsonProperty("REQDSTCD")
private String reqDstcd;
}
@@ -0,0 +1,34 @@
package com.eactive.eai.rms.common.mmilog;
import org.mapstruct.BeanMapping;
import org.mapstruct.InheritInverseConfiguration;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget;
import org.mapstruct.NullValuePropertyMappingStrategy;
import org.mapstruct.ReportingPolicy;
import com.eactive.eai.data.mapper.GenericMapper;
import com.eactive.eai.rms.data.entity.onl.mmilog.MMILog;
import com.eactive.eai.rms.data.entity.onl.mmilog.MMILogId;
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface MMILogUIMapper extends GenericMapper<MMILogUI, MMILog> {
@Override
@Mapping(source = "id.eaiSvcName", target = "eaiSvcName")
@Mapping(source = "id.msgDpstHms", target = "msgDpstHMS")
MMILogUI toVo(MMILog entity);
@Override
@InheritInverseConfiguration
MMILog toEntity(MMILogUI vo);
@Mapping(source = "eaiSvcName", target = "eaiSvcName")
@Mapping(source = "msgDpstHMS", target = "msgDpstHms")
MMILogId toId(MMILogUI vo);
@InheritInverseConfiguration
@BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
void updateToEntity(MMILogUI mmiLogUI, @MappingTarget MMILog mmiLog);
}