- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
437 lines
12 KiB
XML
437 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="checkReportMng">
|
|
|
|
<sql id="checkReportMngBase">
|
|
(
|
|
SELECT
|
|
OBJID,
|
|
|
|
PARENT_OBJID,
|
|
(SELECT PROJECT_NO FROM ORDER_MGMT O WHERE O.ORDER_MGMT_OBJID = CRM.PARENT_OBJID) AS PROJECT_NO,
|
|
|
|
REPORT_MNG_NO,
|
|
CUSTOMER,
|
|
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.CUSTOMER) AS CUSTOMER_NAME,
|
|
|
|
|
|
MAKEING_TEAM,
|
|
(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = CRM.MAKEING_TEAM) AS MAKEING_TEAM_NAME,
|
|
|
|
CHECK_DATE,
|
|
TO_CHAR(CRM.CHECK_DATE,'YYYY-MM-DD') AS CHECK_DATE_TITLE,
|
|
|
|
SPAN_DRAWING,
|
|
SPAN_LEFT,
|
|
SPAN_LEFT_ERROR,
|
|
|
|
SPAN_LEFT_CHECK_RESULT,
|
|
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.SPAN_LEFT_CHECK_RESULT) AS SPAN_LEFT_CHECK_RESULT_NAME,
|
|
|
|
SPAN_RIGHT,
|
|
SPAN_RIGHT_ERROR,
|
|
|
|
SPAN_RIGHT_CHECK_RESULT,
|
|
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.SPAN_RIGHT_CHECK_RESULT) AS SPAN_RIGHT_CHECK_RESULT_NAME,
|
|
|
|
DIAGONAL_LEFT,
|
|
DIAGONAL_RIGHT,
|
|
|
|
DIAGONAL_CHECK_RESULT,
|
|
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.DIAGONAL_CHECK_RESULT) AS DIAGONAL_CHECK_RESULT_NAME,
|
|
|
|
SPAN_CHECK_USER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = CRM.SPAN_CHECK_USER) AS SPAN_CHECK_USER_TITLE,
|
|
|
|
SADDLE_1,
|
|
SADDLE_2,
|
|
SADDLE_3,
|
|
SADDLE_4,
|
|
SADDLE_5,
|
|
SADDLE_6,
|
|
SADDLE_7,
|
|
SADDLE_8,
|
|
SADDLE_WHEEL,
|
|
SADDLE_WHEEL_BASE,
|
|
|
|
SADDLE_CHECK_RESULT,
|
|
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.SADDLE_CHECK_RESULT) AS SADDLE_CHECK_RESULT_NAME,
|
|
|
|
SADDLE_CHECK_USER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = CRM.SADDLE_CHECK_USER) AS SADDLE_CHECK_USER_TITLE,
|
|
|
|
WELDING_PAINTING_CONTENTS,
|
|
|
|
WELDING_PAINTING_CHECK_RESULT,
|
|
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.WELDING_PAINTING_CHECK_RESULT) AS WELDING_PAINTING_CHECK_RESULT_NAME,
|
|
|
|
WELDING_PAINTING_CHECK_USER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = CRM.WELDING_PAINTING_CHECK_USER) AS WELDING_PAINTING_CHECK_USER_TITLE,
|
|
|
|
REGDATE,
|
|
TO_CHAR(CRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
TO_CHAR(CRM.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE,
|
|
|
|
EDITDATE,
|
|
STATUS,
|
|
CASE CRM.STATUS
|
|
WHEN 'create'
|
|
THEN '등록중'
|
|
WHEN 'approvalRequest'
|
|
THEN '결재중'
|
|
WHEN 'reject'
|
|
THEN '반려'
|
|
WHEN 'approvalComplete'
|
|
THEN '결재완료'
|
|
ELSE ''
|
|
END STATUS_TITLE,
|
|
|
|
WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = CRM.WRITER) AS WRITER_TITLE,
|
|
|
|
A.APPR_STATUS,
|
|
A.ROUTE_OBJID,
|
|
A.APPROVAL_OBJID
|
|
FROM
|
|
CHECK_REPORT_MNG CRM
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
B.OBJID AS ROUTE_OBJID,
|
|
CASE B.STATUS
|
|
WHEN 'inProcess' THEN '결재중'
|
|
WHEN 'complete' THEN '결재완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END APPR_STATUS,
|
|
A.OBJID AS APPROVAL_OBJID,
|
|
A.TARGET_OBJID,
|
|
B.ROUTE_SEQ
|
|
FROM
|
|
APPROVAL A,
|
|
(
|
|
select
|
|
T1.*
|
|
from
|
|
(
|
|
select
|
|
TARGET_OBJID,
|
|
max(T.ROUTE_SEQ) as ROUTE_SEQ
|
|
from
|
|
ROUTE T
|
|
group by
|
|
T.TARGET_OBJID
|
|
) T,
|
|
ROUTE T1
|
|
where
|
|
T.TARGET_OBJID = T1.TARGET_OBJID
|
|
and T.ROUTE_SEQ = T1.ROUTE_SEQ
|
|
) B
|
|
WHERE
|
|
A.OBJID = B.APPROVAL_OBJID
|
|
AND TARGET_TYPE IN ('CHECK_REPORT_MNG')
|
|
) A
|
|
ON CRM.OBJID::numeric = A.TARGET_OBJID
|
|
)
|
|
</sql>
|
|
|
|
<!-- 고객관리 목록을 가져온다. -->
|
|
<select id="getCheckReportMngList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT T.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM
|
|
FROM(
|
|
SELECT
|
|
T.*
|
|
FROM <include refid="checkReportMngBase"/> T
|
|
WHERE 1=1
|
|
<if test="search_year != null and search_year != ''">
|
|
AND T.REGDATE_YEAR_TITLE = #{search_year}
|
|
</if>
|
|
<if test="search_parent_objid != null and search_parent_objid != ''">
|
|
AND T.PARENT_OBJID = #{search_parent_objid}::numeric
|
|
</if>
|
|
<if test="search_customer != null and search_customer != ''">
|
|
AND T.CUSTOMER = #{search_customer}
|
|
</if>
|
|
<if test="search_makeing_team != null and search_makeing_team != ''">
|
|
AND T.MAKEING_TEAM = #{search_makeing_team}
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND T.STATUS = #{search_status}
|
|
</if>
|
|
) T
|
|
) A WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
<select id="getCheckReportMngListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
T.*
|
|
FROM <include refid="checkReportMngBase"/> T
|
|
WHERE 1=1
|
|
<if test="search_year != null and search_year != ''">
|
|
AND T.REGDATE_YEAR_TITLE = #{search_year}
|
|
</if>
|
|
<if test="search_parent_objid != null and search_parent_objid != ''">
|
|
AND T.PARENT_OBJID = #{search_parent_objid}::numeric
|
|
</if>
|
|
<if test="search_customer != null and search_customer != ''">
|
|
AND T.CUSTOMER = #{search_customer}
|
|
</if>
|
|
<if test="search_makeing_team != null and search_makeing_team != ''">
|
|
AND T.MAKEING_TEAM = #{search_makeing_team}
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND T.STATUS = #{search_status}
|
|
</if>
|
|
) T
|
|
)A WHERE 1=1
|
|
</select>
|
|
|
|
<select id="getCheckReportMngInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
FROM <include refid="checkReportMngBase"/> T
|
|
WHERE 1=1
|
|
AND T.OBJID = #{OBJID}::numeric
|
|
</select>
|
|
|
|
<!-- 중고관리 merge -->
|
|
<update id="mergeCheckReportMng" parameterType="map">
|
|
INSERT INTO CHECK_REPORT_MNG(
|
|
OBJID,
|
|
|
|
<if test="PARENT_OBJID != null and PARENT_OBJID != ''">
|
|
PARENT_OBJID,
|
|
</if>
|
|
|
|
REPORT_MNG_NO,
|
|
CUSTOMER,
|
|
MAKEING_TEAM,
|
|
|
|
<if test="CHECK_DATE != null and CHECK_DATE != ''">
|
|
CHECK_DATE,
|
|
</if>
|
|
|
|
SPAN_DRAWING,
|
|
SPAN_LEFT,
|
|
SPAN_LEFT_ERROR,
|
|
SPAN_LEFT_CHECK_RESULT,
|
|
SPAN_RIGHT,
|
|
SPAN_RIGHT_ERROR,
|
|
SPAN_RIGHT_CHECK_RESULT,
|
|
DIAGONAL_LEFT,
|
|
DIAGONAL_RIGHT,
|
|
DIAGONAL_CHECK_RESULT,
|
|
SPAN_CHECK_USER,
|
|
SADDLE_1,
|
|
SADDLE_2,
|
|
SADDLE_3,
|
|
SADDLE_4,
|
|
SADDLE_5,
|
|
SADDLE_6,
|
|
SADDLE_7,
|
|
SADDLE_8,
|
|
SADDLE_WHEEL,
|
|
SADDLE_WHEEL_BASE,
|
|
SADDLE_CHECK_RESULT,
|
|
SADDLE_CHECK_USER,
|
|
WELDING_PAINTING_CONTENTS,
|
|
WELDING_PAINTING_CHECK_RESULT,
|
|
WELDING_PAINTING_CHECK_USER,
|
|
REGDATE,
|
|
EDITDATE,
|
|
STATUS,
|
|
WRITER
|
|
) values (
|
|
#{OBJID}::numeric,
|
|
|
|
<if test="PARENT_OBJID != null and PARENT_OBJID != ''">
|
|
#{PARENT_OBJID}::numeric,
|
|
</if>
|
|
|
|
TO_CHAR(NOW(),'YYYY')||'-'||LPAD((SELECT COALESCE(SUBSTRING(MAX(REPORT_MNG_NO),6,3),'0')::NUMERIC+1 FROM CHECK_REPORT_MNG)::TEXT, 3, '0'),
|
|
#{CUSTOMER},
|
|
#{MAKEING_TEAM},
|
|
|
|
<if test="CHECK_DATE != null and CHECK_DATE != ''">
|
|
#{CHECK_DATE}::TIMESTAMP,
|
|
</if>
|
|
|
|
#{SPAN_DRAWING},
|
|
#{SPAN_LEFT},
|
|
#{SPAN_LEFT_ERROR},
|
|
#{SPAN_LEFT_CHECK_RESULT},
|
|
#{SPAN_RIGHT},
|
|
#{SPAN_RIGHT_ERROR},
|
|
#{SPAN_RIGHT_CHECK_RESULT},
|
|
#{DIAGONAL_LEFT},
|
|
#{DIAGONAL_RIGHT},
|
|
#{DIAGONAL_CHECK_RESULT},
|
|
#{SPAN_CHECK_USER},
|
|
#{SADDLE_1},
|
|
#{SADDLE_2},
|
|
#{SADDLE_3},
|
|
#{SADDLE_4},
|
|
#{SADDLE_5},
|
|
#{SADDLE_6},
|
|
#{SADDLE_7},
|
|
#{SADDLE_8},
|
|
#{SADDLE_WHEEL},
|
|
#{SADDLE_WHEEL_BASE},
|
|
#{SADDLE_CHECK_RESULT},
|
|
#{SADDLE_CHECK_USER},
|
|
#{WELDING_PAINTING_CONTENTS},
|
|
#{WELDING_PAINTING_CHECK_RESULT},
|
|
#{WELDING_PAINTING_CHECK_USER},
|
|
NOW(),
|
|
NOW(),
|
|
'create',
|
|
#{WRITER}
|
|
) ON CONFLICT (OBJID) DO
|
|
|
|
UPDATE
|
|
SET
|
|
PARENT_OBJID = #{PARENT_OBJID}::numeric,
|
|
REPORT_MNG_NO = #{REPORT_MNG_NO},
|
|
CUSTOMER = #{CUSTOMER},
|
|
MAKEING_TEAM = #{MAKEING_TEAM},
|
|
|
|
<if test="CHECK_DATE != null and CHECK_DATE != ''">
|
|
CHECK_DATE = #{CHECK_DATE}::TIMESTAMP,
|
|
</if>
|
|
|
|
SPAN_DRAWING = #{SPAN_DRAWING},
|
|
SPAN_LEFT = #{SPAN_LEFT},
|
|
SPAN_LEFT_ERROR = #{SPAN_LEFT_ERROR},
|
|
SPAN_LEFT_CHECK_RESULT = #{SPAN_LEFT_CHECK_RESULT},
|
|
SPAN_RIGHT = #{SPAN_RIGHT},
|
|
SPAN_RIGHT_ERROR = #{SPAN_RIGHT_ERROR},
|
|
SPAN_RIGHT_CHECK_RESULT = #{SPAN_RIGHT_CHECK_RESULT},
|
|
DIAGONAL_LEFT = #{DIAGONAL_LEFT},
|
|
DIAGONAL_RIGHT = #{DIAGONAL_RIGHT},
|
|
DIAGONAL_CHECK_RESULT = #{DIAGONAL_CHECK_RESULT},
|
|
SPAN_CHECK_USER = #{SPAN_CHECK_USER},
|
|
SADDLE_1 = #{SADDLE_1},
|
|
SADDLE_2 = #{SADDLE_2},
|
|
SADDLE_3 = #{SADDLE_3},
|
|
SADDLE_4 = #{SADDLE_4},
|
|
SADDLE_5 = #{SADDLE_5},
|
|
SADDLE_6 = #{SADDLE_6},
|
|
SADDLE_7 = #{SADDLE_7},
|
|
SADDLE_8 = #{SADDLE_8},
|
|
SADDLE_WHEEL = #{SADDLE_WHEEL},
|
|
SADDLE_WHEEL_BASE = #{SADDLE_WHEEL_BASE},
|
|
SADDLE_CHECK_RESULT = #{SADDLE_CHECK_RESULT},
|
|
SADDLE_CHECK_USER = #{SADDLE_CHECK_USER},
|
|
WELDING_PAINTING_CONTENTS = #{WELDING_PAINTING_CONTENTS},
|
|
WELDING_PAINTING_CHECK_RESULT = #{WELDING_PAINTING_CHECK_RESULT},
|
|
WELDING_PAINTING_CHECK_USER = #{WELDING_PAINTING_CHECK_USER},
|
|
EDITDATE = NOW(),
|
|
STATUS = #{STATUS},
|
|
WRITER = #{WRITER}
|
|
</update>
|
|
|
|
<delete id="deleteCheckReportMng" parameterType="map">
|
|
DELETE FROM CHECK_REPORT_MNG WHERE OBJID = #{OBJID}::numeric
|
|
</delete>
|
|
|
|
<select id="getCheckReportMngDashBoard" parameterType="map" resultType="map">
|
|
SELECT
|
|
COUNT(1) AS TOTAL_ISSUE_COUNT,
|
|
SUM(T.MEASURE_AMOUNT) AS SUM_MOUNT,
|
|
SUM(PAID_MEASURE_AMOUNT) AS SUM_PAID_MEASURE_AMOUNT,
|
|
SUM(FREE_MEASURE_AMOUNT) AS SUM_FREE_MEASURE_AMOUNT
|
|
<foreach collection="productDivisionList" item="obj">
|
|
,SUM(T.${obj.CODE_NAME}${obj.CODE_ID}) as ${obj.CODE_NAME}${obj.CODE_ID}
|
|
</foreach>
|
|
<foreach collection="performerList" item="obj">
|
|
,SUM(T.${obj.CODE_NAME}${obj.CODE_ID}) as ${obj.CODE_NAME}${obj.CODE_ID}
|
|
</foreach>
|
|
<foreach collection="mngTypeList" item="obj">
|
|
,SUM(T.${obj.CODE_NAME}${obj.CODE_ID}) as ${obj.CODE_NAME}${obj.CODE_ID}
|
|
</foreach>
|
|
FROM(
|
|
SELECT
|
|
T.MEASURE_TYPE
|
|
,T.MEASURE_TYPE_TITLE
|
|
,T.PRODUCT_DIVISION
|
|
,T.PRODUCT_DIVISION_TITLE
|
|
,T.PERFORMER
|
|
,T.PERFORMER_TITLE
|
|
,T.MNG_TYPE
|
|
,T.MNG_TYPE_TITLE
|
|
,CASE
|
|
WHEN T.MEASURE_TYPE_TITLE = '유상' THEN T.MEASURE_AMOUNT
|
|
ELSE 0
|
|
END PAID_MEASURE_AMOUNT
|
|
,CASE
|
|
WHEN T.MEASURE_TYPE_TITLE = '무상' THEN T.MEASURE_AMOUNT
|
|
ELSE 0
|
|
END FREE_MEASURE_AMOUNT
|
|
,T.MEASURE_AMOUNT
|
|
<foreach collection="measureTypeList" item="obj">
|
|
,CASE
|
|
WHEN T.MEASURE_TYPE = #{obj.CODE_ID}
|
|
THEN 1
|
|
ELSE 0
|
|
END ${obj.CODE_NAME}${obj.CODE_ID}
|
|
</foreach>
|
|
<foreach collection="productDivisionList" item="obj">
|
|
,CASE
|
|
WHEN T.PRODUCT_DIVISION = #{obj.CODE_ID}
|
|
THEN 1
|
|
ELSE 0
|
|
END ${obj.CODE_NAME}${obj.CODE_ID}
|
|
</foreach>
|
|
<foreach collection="performerList" item="obj">
|
|
,CASE
|
|
WHEN T.PERFORMER = #{obj.CODE_ID}
|
|
THEN 1
|
|
ELSE 0
|
|
END ${obj.CODE_NAME}${obj.CODE_ID}
|
|
</foreach>
|
|
<foreach collection="mngTypeList" item="obj">
|
|
,CASE
|
|
WHEN T.MNG_TYPE = #{obj.CODE_ID}
|
|
THEN 1
|
|
ELSE 0
|
|
END ${obj.CODE_NAME}${obj.CODE_ID}
|
|
</foreach>
|
|
from(
|
|
SELECT
|
|
T.MEASURE_TYPE
|
|
,T.PRODUCT_DIVISION
|
|
,T.PERFORMER
|
|
,T.MNG_TYPE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.MNG_TYPE AND O.PARENT_CODE_ID = #{MNG_TYPE_CD}) AS MNG_TYPE_TITLE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.PRODUCT_DIVISION AND O.PARENT_CODE_ID = #{PRODUCT_DIVISION_CD}) AS PRODUCT_DIVISION_TITLE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.PERFORMER AND O.PARENT_CODE_ID = #{PERFORMER_CD}) AS PERFORMER_TITLE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.MEASURE_TYPE AND O.PARENT_CODE_ID = #{MEASURE_TYPE_CD}) AS MEASURE_TYPE_TITLE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.STATUS AND O.PARENT_CODE_ID = #{CUSTOMER_MNG_STATUS_CD}) AS STATUS_TITLE
|
|
,CASE
|
|
WHEN T.MEASURE_AMOUNT != '' AND T.MEASURE_AMOUNT IS NOT NULL
|
|
THEN T.MEASURE_AMOUNT::numeric
|
|
ELSE 0
|
|
END MEASURE_AMOUNT
|
|
FROM <include refid="checkReportMngBase"/> T
|
|
WHERE 1=1
|
|
<if test="search_year != null and search_year != ''">
|
|
AND T.REGDATE_YEAR_TITLE = #{search_year}
|
|
</if>
|
|
) T
|
|
) T
|
|
</select>
|
|
|
|
</mapper> |