FAICS/src/main/resources/sqlmapper/mappers/fa/equip.xml

463 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Equip">
<resultMap id="resultMap" type="hashmap">
<result property="EU_DETAIL" column="EU_DETAIL" jdbcType="CLOB" javaType="java.lang.String" />
</resultMap>
<resultMap id="useStateResult" type="useStateVO">
<result property="police" column="EU_POLICE" />
<result property="policeStr" column="EU_POLICE_NM" />
<result property="year" column="EU_YEAR" />
<result property="quater" column="EU_QUATER" />
<result property="code" column="EU_CODE" />
<result property="codeStr" column="EU_CODE_NM" />
<result property="cnt" column="EU_CNT" />
<result property="detail" column="EU_DETAIL" />
<result property="state" column="EU_STATE" />
<result property="check" column="EU_CHECK" />
<result property="approvalSeq" column="ESJ_SEQ" />
<result property="approvalDate" column="ESJ_CHECKDATE" />
<result property="regdate" column="EU_REGDATE" />
<result property="writer" column="EU_WRITER" />
</resultMap>
<resultMap id="equipResult" type="equipVO">
<result property="serNo" column="SERNO" />
<result property="num" column="NUM" />
<result property="police" column="POLICE" />
<result property="policeStr" column="POLICE_STR" />
<result property="equipType" column="EQUIPGUBUN" />
<result property="equipTypeName" column="EQUIPGUBUN_STR" />
<result property="equipName" column="EQUIPNAME" />
<result property="buyYear" column="BYEAR" />
<result property="buyMonth" column="BMON" />
<result property="buyDay" column="BDAY" />
<result property="buyDate" column="BDATE" />
<result property="useTerm" column="USETERM" />
<result property="standard" column="STANDARD" />
<result property="purpose" column="PURPOSE" />
<result property="buyPlace" column="BPLACE" />
<result property="price" column="PRICE" />
<result property="madeIn" column="MADEIN" />
<result property="serialNo" column="SERIALNO" />
<result property="useSection" column="USESECTION" />
<result property="operate" column="OPERATE" />
<result property="bigo" column="BIGO" />
<result property="fileName1" column="FILENAME1" />
<result property="fileName2" column="FILENAME2" />
<result property="fileName3" column="FILENAME3" />
<result property="createDate" column="CREADATE" />
<result property="logDate" column="LOGDATE" />
</resultMap>
<select id="Equip.getEquipmentList" parameterType="hashmap" resultType="hashmap">
<![CDATA[
SELECT
'계' AS EQUIP_NM, COUNT(EQ.POLICE) AS TOTAL, CAST('00' AS INT) AS ORDER_VALUE, '00' AS EQUIP,
]]>
<foreach collection="place1" item="item" separator=",">
SUM(CASE POLICE WHEN #{item.code2} THEN 1 ELSE 0 END) AS ${item.code2},
SUM(CASE POLICE WHEN 'ps18' THEN 1 ELSE 0 END) AS ps18,
SUM(CASE POLICE WHEN 'ps90' THEN 1 ELSE 0 END) AS ps90
</foreach>
<![CDATA[
FROM
TEQUIPMENT EQ
RIGHT JOIN
(
SELECT
*
FROM
TCODE
WHERE
CODE1 = 'EQUI' AND
CODE_USE_YN='Y' AND
CODE2 NOT IN ('PS95','PS96','PS97','PS99', 'STAT')
) TD
ON
EQ.EQUIPGUBUN = TD.CODE2
UNION
SELECT
TD.CODENM AS EQUIP_NM, COUNT(EQ.POLICE) AS TOTAL, CAST(TD.CODE2 AS INT) AS ORDER_VALUE, TD.CODE2 AS EQUIP,
]]>
<foreach collection="place1" item="item" separator=",">
SUM(CASE POLICE WHEN #{item.code2} THEN 1 ELSE 0 END) AS ${item.code2},
SUM(CASE POLICE WHEN 'ps18' THEN 1 ELSE 0 END) AS ps18,
SUM(CASE POLICE WHEN 'ps90' THEN 1 ELSE 0 END) AS ps90
</foreach>
<![CDATA[
FROM
TEQUIPMENT EQ
RIGHT JOIN
(
SELECT
*
FROM
TCODE
WHERE
CODE1 = 'EQUI' AND
CODE_USE_YN='Y' AND
CODE2 NOT IN ('PS95','PS96','PS97','PS99', 'STAT')
) TD
ON
EQ.EQUIPGUBUN = TD.CODE2
GROUP BY
EQ.EQUIPGUBUN, TD.CODENM, TD.CODE2
ORDER BY
ORDER_VALUE
]]>
</select>
<select id="Equip.getEquipUseStateList" parameterType="hashmap" resultType="hashmap">
<![CDATA[
SELECT
1 AS CNT, '계' AS GUBUN, '' AS CODE,
NVL(SUM(${type}), 0) AS TOTAL,
]]>
<foreach collection="place1" item="item" separator=",">
NVL(SUM(CASE EU_POLICE WHEN #{item.code2} THEN ${type} ELSE 0 END), 0) AS ${item.code2}
</foreach>
<![CDATA[
FROM
H3_EQUIP_USE_STATE
WHERE
EU_YEAR = #{criteria.year} AND
EU_QUATER = #{criteria.quater}
UNION
SELECT
2 AS CNT, B.CODENM AS GUBUN, B.CODE2 AS CODE,
NVL(SUM(${type}), 0) AS TOTAL,
]]>
<foreach collection="place1" item="item" separator=",">
NVL(SUM(CASE EU_POLICE WHEN #{item.code2} THEN ${type} ELSE 0 END), 0) AS ${item.code2}
</foreach>
<![CDATA[
FROM
(
SELECT
*
FROM
H3_EQUIP_USE_STATE
WHERE
EU_YEAR = #{criteria.year} AND
EU_QUATER = #{criteria.quater}
) A
RIGHT JOIN
(
SELECT
CODE2, CODENM
FROM
TCODE
WHERE
CODE1 = 'EQUI' AND
CODE_USE_YN = 'Y'
ORDER BY
CODE2
) B
ON A.EU_CODE = B.CODE2
GROUP BY CODE2, CODENM
ORDER BY CNT, CODE
]]>
</select>
<select id="Equip.getEquipYearList" parameterType="hashmap" resultType="hashmap">
<![CDATA[
SELECT
UYEAR
FROM
TEQUIP_USE
GROUP BY
UYEAR
ORDER BY
UYEAR ASC
]]>
</select>
<select id="Equip.getEquipmentCodeList" parameterType="hashmap" resultType="hashmap">
<![CDATA[
SELECT
CODE2 AS CODE, CODENM AS GUBUN
FROM
TCODE
WHERE
CODE1 = 'EQUI' AND
CODE_USE_YN = 'Y'
ORDER BY
CODE2
]]>
</select>
<select id="Equip.getEquipUseStateInfo" parameterType="equipSearchVO" resultMap="resultMap">
<![CDATA[
SELECT
B.CODENM, B.CODE2, A.*
FROM
(
SELECT
*
FROM
H3_EQUIP_USE_STATE
WHERE
EU_YEAR = #{year} AND
EU_QUATER = #{quater} AND
EU_POLICE = #{police}
) A
RIGHT JOIN
(
SELECT
CODE2, CODENM
FROM
TCODE
WHERE
CODE1 = 'EQUI' AND
CODE_USE_YN = 'Y'
ORDER BY
CODE2
) B
ON A.EU_CODE = B.CODE2
ORDER BY
B.CODE2
]]>
</select>
<select id="Equip.getEquipUseStateInfoByCode" parameterType="hashmap" resultType="hashmap">
SELECT
*
FROM
H3_EQUIP_USE_STATE
WHERE
EU_YEAR = #{year} AND
EU_QUATER = #{quater} AND
EU_POLICE = #{police} AND
EU_CODE = #{code}
</select>
<insert id="Equip.insertEquipUseState" parameterType="hashmap">
INSERT INTO
H3_EQUIP_USE_STATE (
EU_POLICE, EU_YEAR, EU_QUATER,
EU_CODE, EU_CNT, EU_DETAIL,
EU_STATE, EU_CHECK, EU_REGDATE, EU_WRITER
) VALUES (
#{police}, #{year}, #{quater},
#{code}, #{cnt}, #{detail},
#{state}, #{check}, SYSDATE, #{writer}
)
</insert>
<update id="Equip.updateEquipUseState" parameterType="hashmap">
UPDATE
H3_EQUIP_USE_STATE
SET
EU_CNT = #{cnt}, EU_DETAIL = #{detail},
EU_STATE = #{state}, EU_CHECK = #{check}
WHERE
EU_POLICE = #{police} AND EU_YEAR = #{year} AND
EU_QUATER = #{quater} AND EU_CODE = #{code}
</update>
<!-- 사용실적 결재 -->
<select id="selectStateWaitingList" parameterType="stateWaitingSearchVO" resultMap="useStateResult">
<![CDATA[
SELECT
A.*, NVL(ESJ_SEQ, 0) AS ESJ_SEQ, ESJ_CHECKDATE,
(SELECT CODENM FROM TCODE WHERE CODE1 = 'C001' AND CODE2 = A.EU_POLICE) AS POLICE_NAME
FROM
(SELECT EU_POLICE, EU_YEAR, EU_QUATER FROM H3_EQUIP_USE_STATE GROUP BY EU_POLICE, EU_YEAR, EU_QUATER) A
LEFT OUTER JOIN H3_EQUIP_APPROVAL_HISTORY B
ON B.ESJ_POLICE = A.EU_POLICE AND B.ESJ_YEAR = A.EU_YEAR AND A.EU_QUATER = B.ESJ_QUATER
WHERE
1=1
]]>
<if test="police != null and police != ''">
AND A.EU_POLICE = #{police}
</if>
<if test="year != null and year != ''">
AND A.EU_YEAR = #{year}
</if>
<![CDATA[
ORDER BY
EU_QUATER
]]>
</select>
<select id="getEquipList" parameterType="arrestSearchVO" resultMap="equipResult">
<![CDATA[
SELECT A.SERNO,
A.NUM || '호' NUM,
A.POLICE,
B.CODENM POLICE_STR,
A.EQUIPGUBUN,
C.CODENM EQUIPGUBUN_STR,
A.EQUIPNAME,
A.BYEAR,
A.BMON,
A.BDAY,
A.BYEAR || '-' || A.BMON || '-' || A.BDAY BDATE,
A.USETERM,
A.STANDARD,
A.PURPOSE,
A.BPLACE,
A.PRICE,
A.MADEIN,
A.SERIALNO,
A.USESECTION,
A.OPERATE,
A.BIGO,
A.FILENAME1,
A.FILENAME2,
A.FILENAME3,
A.CREADATE,
A.WRITER,
A.LOGDATE
FROM TEQUIPMENT A, TCODE B/* 배치 */, TCODE C
WHERE A.EQUIPGUBUN = #{type} /**P*/
AND (A.POLICE = B.CODE2 AND B.CODE1 = 'C001')
AND (A.EQUIPGUBUN = C.CODE2 AND C.CODE1 = 'EQUI')
ORDER BY A.POLICE, A.BYEAR, A.BMON, A.BDAY
]]>
</select>
<select id="getEquipment" parameterType="equipVO"
resultMap="equipResult">
SELECT A.SERNO,
A.NUM,
A.POLICE,
B.CODENM POLICE_STR,
A.EQUIPGUBUN,
C.CODENM EQUIPGUBUN_STR,
A.EQUIPNAME,
A.BYEAR,
A.BMON,
A.BDAY,
A.BYEAR || '-' || A.BMON || '-' || A.BDAY BDATE,
A.USETERM,
A.STANDARD,
A.PURPOSE,
A.BPLACE,
A.PRICE,
A.MADEIN,
A.SERIALNO,
A.USESECTION,
A.OPERATE,
A.BIGO,
A.FILENAME1,
A.FILENAME2,
A.FILENAME3,
A.CREADATE,
A.WRITER,
A.LOGDATE
FROM TEQUIPMENT A, TCODE B/* 배치 */, TCODE C
WHERE A.SERNO = #{serNo} /**P*/
AND (A.POLICE = B.CODE2 AND B.CODE1 = 'C001')
AND (A.EQUIPGUBUN = C.CODE2 AND C.CODE1 = 'EQUI')
ORDER BY A.POLICE, A.BYEAR, A.BMON, A.BDAY
</select>
<insert id="Equip.insertEquipment" parameterType="equipVO">
<![CDATA[
INSERT INTO TEQUIPMENT
( SERNO,
NUM,
POLICE,
EQUIPGUBUN,
EQUIPNAME,
BYEAR,BMON,
BDAY,USETERM,
STANDARD,
PURPOSE,
BPLACE,
PRICE,
MADEIN,
SERIALNO,
OPERATE,
USESECTION,
BIGO,
FILENAME1,
FILENAME2,
FILENAME3,
CREADATE,
WRITER,
LOGDATE)
values (
TEQUIPMENT_SERNO_SEQ.NEXTVAL,
(CASE WHEN (SELECT MAX(NUM) FROM TEQUIPMENT WHERE POLICE = #{police}) IS NULL THEN 1
ELSE (SELECT MAX(NUM) + 1 FROM TEQUIPMENT WHERE POLICE = #{police}) END),
#{police},
#{equipType},
#{equipName},
#{buyYear},
#{buyMonth},
#{buyDay},
#{useTerm},
#{standard},
#{purpose},
#{buyPlace},
#{price},
#{madeIn},
#{serialNo},
#{operate},
#{useSection},
#{bigo},
#{fileName1},
#{fileName2},
#{fileName3},
TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'),
#{writer},
NULL
)
]]>
<selectKey resultType="String" keyProperty="serNo" order="AFTER">
SELECT TEQUIPMENT_SERNO_SEQ.CURRVAL FROM DUAL
</selectKey>
</insert>
<update id="updateEquipment" parameterType="arrestVO">
<![CDATA[
UPDATE
TEQUIPMENT
SET
NUM = #{num},
EQUIPGUBUN = #{equipType},
EQUIPNAME = #{equipName},
POLICE = #{police},
BYEAR = #{buyYear},
BMON = #{buyMonth},
BDAY = #{buyDay},
USETERM = #{useTerm},
STANDARD = #{standard},
PURPOSE = #{purpose},
BPLACE = #{buyPlace},
PRICE = #{price},
MADEIN = #{madeIn},
SERIALNO = #{serialNo},
OPERATE = #{operate},
USESECTION = #{useSection},
BIGO = #{bigo},
FILENAME1 = #{fileName1},
FILENAME2 = #{fileName2},
FILENAME3 = #{fileName3},
LOGDATE = TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')
WHERE
SERNO = #{serNo}
]]>
</update>
<delete id="deleteEquipment" parameterType="equipVO">
<![CDATA[
DELETE FROM TEQUIPMENT
WHERE SERNO = #{serNo}
]]>
</delete>
</mapper>