포트릿기능추가
This commit is contained in:
parent
de6e68971d
commit
94059eca28
@ -311,6 +311,12 @@ public class CommonUtil
|
||||
return (Long.valueOf(str).longValue());
|
||||
}
|
||||
|
||||
public static int stoi(String str)
|
||||
{
|
||||
if(str == null ) return 0;
|
||||
return (Integer.valueOf(str).intValue());
|
||||
}
|
||||
|
||||
/**
|
||||
문자열을 중 특정 문자열을 변환시킨다.
|
||||
@version 1.0
|
||||
|
||||
@ -62,10 +62,12 @@ public class PortletManageController {
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
List<LinkedHashMap<String, Object>> resultList = portletManageService.selectPortletList(requestMap);
|
||||
int cnt = portletManageService.selectPortletListCnt(requestMap);
|
||||
int cnt = portletManageService.selectPortletListCnt(requestMap);
|
||||
int iMaxSeq = portletManageService.selectPortletMax(requestMap); // 2025.11.11 나혁제 정렬최대순서
|
||||
|
||||
resBody.put("resultList" , resultList );
|
||||
resBody.put("totCnt" , cnt );
|
||||
resBody.put("totCnt" , cnt );
|
||||
resBody.put("iMaxSeq" , iMaxSeq ); // 2025.11.11 나혁제 정렬최대순서
|
||||
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /potl/mainPortletPage.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
@ -35,6 +35,9 @@ public interface PortletManageDao {
|
||||
// 사용자 포틀릿 건수 조회
|
||||
public int selectPortletListCnt(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 2025.11.11 나혁제 포틀릿 최대 정렬값을 획득
|
||||
public int selectPortletMax(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 포틀릿 배치 수정
|
||||
public int updatePortletSeq(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
|
||||
@ -44,11 +44,20 @@ public class PortletManageService {
|
||||
{
|
||||
return portletManageDao.selectPortletList(inMap);
|
||||
}
|
||||
|
||||
// 사용자 포틀릿 건수 조회
|
||||
public int selectPortletListCnt(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
return portletManageDao.selectPortletListCnt(inMap);
|
||||
}
|
||||
|
||||
// 2025.11.11 나혁제
|
||||
// 포틀릿 최대 정렬값을 획득
|
||||
public int selectPortletMax(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
return portletManageDao.selectPortletMax(inMap);
|
||||
}
|
||||
|
||||
// 포틀릿 배치 수정
|
||||
public void updatePortletSeq( String portletSeqForInsert
|
||||
, String prsnlIdForInsert
|
||||
|
||||
@ -238,6 +238,37 @@ public class ResourceManagerController
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 실사용자 정보 조회
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.10.28
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/rem/realUserList.do")
|
||||
public ResponseEntity<ResultData> realUserList( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /rem/realUserList.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
String vcRealChargrNm = (String)requestMap.get("vcRealChargrNm");
|
||||
|
||||
// 자산번호 중복 체크
|
||||
List<LinkedHashMap<String, Object>> resultList = resourceManagerService.realUserList(vcRealChargrNm);
|
||||
|
||||
resBody.put("result" , resultList );
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /rem/realUserList.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 자산 등록
|
||||
@ -361,6 +392,46 @@ public class ResourceManagerController
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 자산 일괄 삭제
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.10.23
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/rem/deleteMultiAsset.do")
|
||||
public ResponseEntity<ResultData> deleteMultiAsset( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /rem/deleteMultiAsset.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
String strInAssetSeqMulti = (String)requestMap.get("inAssetSeqMulti");
|
||||
|
||||
// 자산삭제
|
||||
int iSucc = resourceManagerService.deleteMultiAsset(strInAssetSeqMulti);
|
||||
|
||||
if(iSucc > 0)
|
||||
{
|
||||
resBody.put("resultCd" , "0" );
|
||||
resBody.put("resultMsg", "정상적으로 삭제되었습니다." );
|
||||
}
|
||||
else
|
||||
{
|
||||
resBody.put("resultCd" , "-1" );
|
||||
resBody.put("resultMsg", "자산 일괄 삭제중 오류가 발생 하였습니다." );
|
||||
}
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /rem/deleteMultiAsset.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -72,6 +72,9 @@ public interface ResourceManagerDao
|
||||
|
||||
// 2025.03.31 나혁제 자산이력 조회 count 조회
|
||||
public int searchAssetHistCount(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 2025.10.28 나혁제 실사용자조회 부분 추가
|
||||
public List<LinkedHashMap<String, Object>> realUserList(String strIn) throws Exception;
|
||||
|
||||
|
||||
|
||||
|
||||
@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.urpsys.baseapi.common.util.CommonUtil;
|
||||
import com.urpsys.itmsapi.cmm.service.FileManageService;
|
||||
import com.urpsys.itmsapi.rem.dao.ResourceManagerDao;
|
||||
|
||||
@ -160,6 +161,21 @@ public class ResourceManagerService
|
||||
|
||||
return iResultCnt;
|
||||
}
|
||||
|
||||
// 2025.10.23 나혁제 추가 기능
|
||||
// 자산 일괄 삭제
|
||||
public int deleteMultiAsset(String strInAssetSeqMulti) throws Exception
|
||||
{
|
||||
String[] stArray = strInAssetSeqMulti.split("\\;");
|
||||
|
||||
int iResultCnt=0;
|
||||
for(String str : stArray)
|
||||
{
|
||||
iResultCnt += resourceManagerDao.deleteAsset(CommonUtil.stoi(str));
|
||||
}
|
||||
|
||||
return iResultCnt;
|
||||
}
|
||||
|
||||
|
||||
// 자산 첨부파일 삭제
|
||||
@ -200,6 +216,11 @@ public class ResourceManagerService
|
||||
return resourceManagerDao.getReportByAsset(inInteger);
|
||||
}
|
||||
|
||||
// 2025.10.28 나혁제 실사용자조회 부분 추가
|
||||
public List<LinkedHashMap<String, Object>> realUserList(String strIn) throws Exception
|
||||
{
|
||||
return resourceManagerDao.realUserList(strIn);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,81 @@
|
||||
package com.urpsys.itmsapi.sta.controller;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.urpsys.baseapi.common.util.CommonUtil;
|
||||
import com.urpsys.baseapi.common.util.ResultData;
|
||||
import com.urpsys.baseapi.domain.TokenInfo;
|
||||
import com.urpsys.itmsapi.srm.service.HomeService;
|
||||
import com.urpsys.itmsapi.srm.service.ReportCheckService;
|
||||
import com.urpsys.itmsapi.srm.service.SvcDeskService;
|
||||
import com.urpsys.itmsapi.sta.service.ResourceStatService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 잔산 현황 통계 API Controller 클래스
|
||||
* @author urp 인프라본부 나혁제
|
||||
* @since 2025.11.10
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ---------- -------- ---------------------------
|
||||
* 2025.11.10 나혁제 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
public class ResourceStatController
|
||||
{
|
||||
@Autowired
|
||||
ResourceStatService resourceStatService; // 저산통계 관리 서비스
|
||||
|
||||
/**
|
||||
* 자산 종합 현황 통계 조회
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.11.10
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/getResouceTotalStat.do")
|
||||
public ResponseEntity<ResultData> getMyIncidents( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /sta/getResouceTotalStat.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
// 자산 종합 현황 통계 조회
|
||||
List<LinkedHashMap<String, Object>> resultList = resourceStatService.getResouceTotalStat();
|
||||
|
||||
resBody.put("resultList", resultList );
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /sta/getResouceTotalStat.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
package com.urpsys.itmsapi.sta.dao;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 자산 통계관리에 대한 DAO 클래스를 정의
|
||||
*
|
||||
* @author urp 인프라본부 나혁제
|
||||
* @since 2025.11.10
|
||||
* @version 1.0.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* << 개정이력(Modification information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ----------- --------- ------------------------
|
||||
* 2025.11.10 나혁제 최초작성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Mapper
|
||||
@Repository
|
||||
public interface ResourceStatDao
|
||||
{
|
||||
// 자산 종합현황 통계 조회
|
||||
public List<LinkedHashMap<String, Object>> getResouceTotalStat() throws Exception;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package com.urpsys.itmsapi.sta.service;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.urpsys.itmsapi.sta.dao.ResourceStatDao;
|
||||
|
||||
/**
|
||||
* 자산통계 관한 비즈니스 구현 클래스를 정의
|
||||
*
|
||||
* @author urp 인프라본부 나혁제
|
||||
* @since 2025.11.10
|
||||
* @version 1.0.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* << 개정이력(Modification information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ----------- --------- ------------------------
|
||||
* 2025.11.10 나혁제 최초작성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Service
|
||||
@Transactional
|
||||
public class ResourceStatService
|
||||
{
|
||||
@Autowired
|
||||
ResourceStatDao resourceStatDao;
|
||||
|
||||
// 자산 종합현황 통계 조회
|
||||
public List<LinkedHashMap<String, Object>> getResouceTotalStat() throws Exception
|
||||
{
|
||||
return resourceStatDao.getResouceTotalStat();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
<!-- 사용자 포틀릿 조회 -->
|
||||
<select id="selectPortletList" parameterType="java.util.LinkedHashMap" resultType="java.util.LinkedHashMap">
|
||||
|
||||
/* PortletManageDao.selectPortletList */
|
||||
SELECT A.TASK_USER_ID AS userId
|
||||
, A.PORTLET_ID AS prsnlId
|
||||
, A.SCRN_IDCT_SEQ AS portletSeq
|
||||
@ -24,9 +24,20 @@
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 2025.11.11. 나혁제 정렬최대순서 추출 -->
|
||||
<select id="selectPortletMax" parameterType="java.util.LinkedHashMap" resultType="java.lang.Integer" >
|
||||
/* PortletManageDao.selectPortletMax */
|
||||
SELECT MAX(A.SCRN_IDCT_SEQ) AS maxSeq
|
||||
FROM
|
||||
TB_USER_PORTLET_MNG A
|
||||
WHERE 1=1
|
||||
AND A.TASK_USER_ID = #{userId}
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 사용자 포틀릿 건수 조회 -->
|
||||
<select id="selectPortletListCnt" parameterType="java.util.LinkedHashMap" resultType="java.lang.Integer">
|
||||
|
||||
/* PortletManageDao.selectPortletListCnt */
|
||||
SELECT COUNT(PORTLET_ID)
|
||||
FROM
|
||||
TB_USER_PORTLET_MNG
|
||||
@ -37,7 +48,7 @@
|
||||
|
||||
<!-- 사용자의 포틀릿 등록 -->
|
||||
<insert id="insertUserPortlet" parameterType="java.util.LinkedHashMap">
|
||||
|
||||
/* PortletManageDao.insertUserPortlet */
|
||||
INSERT INTO
|
||||
TB_USER_PORTLET_MNG
|
||||
(
|
||||
@ -60,7 +71,7 @@
|
||||
|
||||
<!-- 포틀릿 배치 수정 -->
|
||||
<update id="updatePortletSeq" parameterType="java.util.LinkedHashMap">
|
||||
|
||||
/* PortletManageDao.updatePortletSeq */
|
||||
UPDATE TB_USER_PORTLET_MNG
|
||||
SET SCRN_IDCT_SEQ = #{portletSeq}
|
||||
|
||||
@ -71,6 +82,7 @@
|
||||
|
||||
<!-- 사용자 포틀릿 삭제 -->
|
||||
<delete id="deleteUserPortlet" parameterType="java.util.LinkedHashMap">
|
||||
/* PortletManageDao.deleteUserPortlet */
|
||||
DELETE FROM TB_USER_PORTLET_MNG
|
||||
WHERE TASK_USER_ID = #{userId}
|
||||
AND PORTLET_ID = #{prsnlId}
|
||||
@ -78,7 +90,7 @@
|
||||
|
||||
<!-- 포틀릿 크기 조회 -->
|
||||
<select id="selectPotlSize" parameterType="java.util.LinkedHashMap" resultType="java.util.LinkedHashMap">
|
||||
|
||||
/* PortletManageDao.selectPotlSize */
|
||||
SELECT PORTLET_WDTH_LENG AS portletWidth
|
||||
, PORTLET_HGHT_LENG AS portletHeight
|
||||
FROM
|
||||
|
||||
@ -582,7 +582,6 @@
|
||||
, case when #{inPortInfo} = '' then '0' else #{inPortInfo} end
|
||||
, #{inRealChargr}
|
||||
, #{vcRealChargrNm}
|
||||
|
||||
)
|
||||
</insert>
|
||||
|
||||
@ -678,6 +677,8 @@
|
||||
<!-- 2025.08.18 자산정보 추가 , VC_GRP_ID, VC_GRP_NM, VC_CHK_TRG_YN, VC_DTL_CPU, VC_DTL_DISK, VC_DTL_MEM -->
|
||||
<!-- 2025.09.01 자산정보 추가 VC_TASK_NM, VC_NRWD_MTNC_STRT_DT, VC_NRWD_MTNC_END_DT
|
||||
, VC_LICENSE_KND, DT_LICENSE_END, DT_EOL, IN_PORT_INFO -->
|
||||
<!-- 2025.10.28 나혁제 아래 내용 변경
|
||||
VC_NRWD_MTNC_STRT_DT , VC_NRWD_MTNC_END_DT DT_LICENSE_END, DT_EOL, IN_PORT_INFO, DT_EOL 가 '' 일경우 데이터타입에 따라 입력처리 -->
|
||||
<update id="updateAssetVo" parameterType="java.util.LinkedHashMap">
|
||||
UPDATE CM_ASSET
|
||||
SET IN_CATE1=#{inCate1}
|
||||
@ -727,12 +728,12 @@
|
||||
, VC_DTL_DISK = #{vcDtlDisk}
|
||||
, VC_DTL_MEM = #{vcDtlMem}
|
||||
, VC_TASK_NM = #{vcTaskNm}
|
||||
, VC_NRWD_MTNC_STRT_DT = #{vcNrwdMicnStrtDt}
|
||||
, VC_NRWD_MTNC_END_DT = #{vcNrwdMicnEndDt}
|
||||
, VC_NRWD_MTNC_STRT_DT = case when #{vcNrwdMicnStrtDt} = '' then NULL else #{vcNrwdMicnStrtDt} end
|
||||
, VC_NRWD_MTNC_END_DT = case when #{vcNrwdMicnEndDt} = '' then NULL else #{vcNrwdMicnEndDt} end
|
||||
, VC_LICENSE_KND = #{vcLLicenseKnd}
|
||||
, DT_LICENSE_END = #{dtLLicenseEnd}
|
||||
, DT_EOL = #{dtEol}
|
||||
, IN_PORT_INFO = #{inPortInfo}
|
||||
, DT_LICENSE_END = case when #{dtLLicenseEnd} = '' then NULL else #{dtLLicenseEnd} end
|
||||
, DT_EOL = case when #{dtEol} = '' then NULL else #{dtEol} end
|
||||
, IN_PORT_INFO = case when #{inPortInfo} = '' then NULL else #{inPortInfo} end
|
||||
, IN_REAL_CHRGR = #{inRealChargr}
|
||||
, VC_REAL_CHRGR_NM = #{vcRealChargrNm}
|
||||
WHERE IN_ASSET_SEQ=#{inAssetSeq}
|
||||
@ -779,7 +780,13 @@
|
||||
SELECT COUNT(*)
|
||||
FROM CM_ASSET
|
||||
WHERE IN_DEL_FLAG=0
|
||||
AND VC_ASSET_ID="${value}"
|
||||
AND VC_ASSET_ID = "${value}"
|
||||
</select>
|
||||
|
||||
<select id="realUserList" parameterType="String" resultType="java.util.LinkedHashMap">
|
||||
SELECT ESNTL_ID AS esntlId
|
||||
FROM TB_TASK_USER_INFO A
|
||||
WHERE USER_NM = "${value}"
|
||||
</select>
|
||||
|
||||
<select id="getReportByAsset" parameterType="int" resultMap="reportVo">
|
||||
|
||||
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!--Converted at: Wed May 11 15:49:39 KST 2016-->
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.urpsys.itmsapi.sta.dao.ResourceStatDao">
|
||||
|
||||
<resultMap type="java.util.LinkedHashMap" id="resTotStat">
|
||||
<result property="inCate3" column="IN_CATE3" />
|
||||
<result property="vcCate3" column="VC_CATE3" />
|
||||
<result property="inCate2" column="IN_CATE2" />
|
||||
<result property="vcCate2" column="VC_CATE2" />
|
||||
<result property="cnt" column="CNT" />
|
||||
</resultMap>
|
||||
|
||||
<select id="getResouceTotalStat" resultMap="resTotStat">
|
||||
<![CDATA[
|
||||
SELECT D.IN_CATE3
|
||||
, D.VC_CATE3
|
||||
, C.IN_CATE2
|
||||
, C.VC_CATE2
|
||||
, COUNT(1) AS CNT
|
||||
FROM CM_ASSET A
|
||||
, CODE_ASSET_CATE2 C
|
||||
, CODE_ASSET_CATE3 D
|
||||
WHERE 1=1
|
||||
AND A.IN_DEL_FLAG=0
|
||||
AND A.IN_CATE1 = D.IN_CATE1
|
||||
AND A.IN_CATE2 = D.IN_CATE2
|
||||
AND A.IN_CATE3 = D.IN_CATE3
|
||||
AND A.IN_CATE2 = C.IN_CATE2
|
||||
GROUP BY D.IN_CATE1
|
||||
, C.IN_CATE2
|
||||
, D.IN_CATE3
|
||||
, D.VC_CATE3
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user