qcast-api/src/main/resources/mappers/displayItem/displayItemMapper.xml

354 lines
14 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="com.interplug.qcast.biz.displayItem.DisplayItemMapper">
<insert id="setStoreDisplayItemSave" parameterType="com.interplug.qcast.biz.displayItem.dto.DisplayItemRequest" >
/* sqlid : com.interplug.qcast.displayItem.setStoreDisplayItemSave */
MERGE M_SALES_STORE_DISP_ITEM AS A
USING
( SELECT #{dispTypeCd} AS DISP_TYPE_CD
, #{saleStoreId} AS SALE_STORE_ID
, #{itemId} AS ITEM_ID
) AS D
ON (
A.DISP_TYPE_CD = D.DISP_TYPE_CD
AND A.SALE_STORE_ID = D.SALE_STORE_ID
AND A.ITEM_ID = D.ITEM_ID
)
WHEN MATCHED THEN
UPDATE SET
START_DATE = #{startDate}
, END_DATE = #{endDate}
, DEL_FLG = CASE WHEN #{delFlg} = 'FALSE' THEN 0 ELSE 1 END
, LAST_EDIT_DATETIME = #{lastEditDatetime}
WHEN NOT MATCHED THEN
INSERT (
SALE_STORE_ID
, DISP_TYPE_CD
, ITEM_ID
, START_DATE
, END_DATE
, DEL_FLG
, REGIST_DATETIME
, LAST_EDIT_DATETIME
) VALUES (
#{saleStoreId}
, #{dispTypeCd}
, #{itemId}
, #{startDate}
, #{endDate}
, CASE WHEN #{delFlg} = 'FALSE' THEN 0 ELSE 1 END
, #{registDatetime}
, #{lastEditDatetime}
);
</insert>
<select id="getItemList" parameterType="String" resultType="com.interplug.qcast.biz.displayItem.dto.ItemResponse" >
/* sqlid : com.interplug.qcast.displayItem.getItemList */
SELECT TT.*
FROM (
SELECT /* 전체 목록중 미표시 제품 */
MI.ITEM_ID
, MI.ITEM_NO
, MI.ITEM_NAME
, MI.DISP_ORDER
FROM M_ITEM MI
LEFT OUTER JOIN M_SALES_STORE_DISP_ITEM SSDI
ON MI.ITEM_ID = SSDI.ITEM_ID
AND SSDI.SALE_STORE_ID = #{saleStoreId}
AND SSDI.DISP_TYPE_CD = 'DISP002' /* 미표시 */
AND dbo.fn_fmtdDate(GETDATE(), 'YYYYMMDD') BETWEEN SSDI.START_DATE AND SSDI.END_DATE
WHERE MI.LIMITED_RELEASE_FLG = 0
AND MI.DEL_FLG = 0
AND SSDI.ITEM_ID IS NULL
UNION ALL
SELECT /* 미표시 제품 중 판매점만 표시 */
MI.ITEM_ID
, MI.ITEM_NO
, MI.ITEM_NAME
, MI.DISP_ORDER
FROM M_SALES_STORE_DISP_ITEM SSDI
INNER JOIN M_ITEM MI
ON MI.ITEM_ID = SSDI.ITEM_ID
AND MI.LIMITED_RELEASE_FLG = 1
AND MI.DEL_FLG = 0
WHERE SSDI.SALE_STORE_ID = #{saleStoreId}
AND SSDI.DISP_TYPE_CD = 'DISP001' /* 표시 */
AND dbo.fn_fmtdDate(GETDATE(), 'YYYYMMDD') BETWEEN SSDI.START_DATE AND SSDI.END_DATE
) TT
ORDER BY TT.DISP_ORDER
</select>
<select id="getItemDetail" parameterType="String" resultType="com.interplug.qcast.biz.displayItem.dto.ItemDetailResponse" >
/* sqlid : com.interplug.qcast.displayItem.getItemDetail */
SELECT
MI.ITEM_ID
, MI.ITEM_NO
, MI.ITEM_NAME
, MI.GOODS_NO
, MI.UNIT
, MI.PNOW_W AS SPECIFICATION
, MI.PNOW_W
, MI.ITEM_GROUP
, MI.MODULE_FLG
, MI.PKG_MATERIAL_FLG
, MI.FILE_UPLOAD_FLG
, MI.ITEM_CTG_GR
, ISNULL(MPPM.SALE_PRICE, '0') AS SALE_PRICE
FROM M_ITEM MI
LEFT OUTER JOIN M_PRICE_PATTERN_MONEY MPPM
ON MPPM.PRICE_PATTERN = '510'
AND MI.ITEM_ID = MPPM.ITEM_ID
WHERE MI.DEL_FLG = 0
AND MI.ITEM_ID = #{itemId}
</select>
<select id="selectItemBomList" parameterType="String" resultType="com.interplug.qcast.biz.displayItem.dto.ItemResponse" >
/* sqlid : com.interplug.qcast.displayItem.selectItemBomList */
SELECT
PI.ITEM_ID
, PI.AMOUNT AS BOM_AMOUNT
, MI.ITEM_NO
, MI.ITEM_NAME
, MI.GOODS_NO
, MI.UNIT
, MI.PNOW_W AS SPECIFICATION
, MI.PNOW_W
, MI.ITEM_GROUP
, MI.MODULE_FLG
, MI.PKG_MATERIAL_FLG
, MI.FILE_UPLOAD_FLG
, MI.ITEM_CTG_GR
, '0' AS SALE_PRICE
FROM M_PACKAGE_ITEM PI WITH (NOLOCK)
INNER JOIN M_ITEM MI WITH (NOLOCK)
ON PI.ITEM_ID = MI.ITEM_ID
WHERE PI.PACKAGE_ITEM_ID = #{itemId}
AND MI.DEL_FLG = 0
</select>
<insert id="setItemSyncSave" parameterType="com.interplug.qcast.biz.displayItem.dto.ItemSyncResponse" >
/* sqlid : com.interplug.qcast.displayItem.setItemSyncSave */
MERGE M_ITEM AS A
USING
( SELECT #{itemId} AS ITEM_ID
) AS D
ON (
A.ITEM_ID = D.ITEM_ID
)
WHEN MATCHED THEN
UPDATE SET
ITEM_NAME = #{itemName}
, ITEM_NO = #{itemNo}
, GOODS_NO = #{goodsNo}
, UNIT = #{unit}
, SPECIFICATION = #{specification}
, FIXED_PRICE = #{fixedPrice}
, PNOW_W = #{pnowW}
, ITEM_CTG_GR = #{itemCtgGr}
, ITEM_GROUP = #{itemGroup}
, PANEL_ORDER_FLG = CASE WHEN #{panelOrderFlg} = 'FALSE' THEN 0 ELSE 1 END
, STAND_ORDER_FLG = CASE WHEN #{standOrderFlg} = 'FALSE' THEN 0 ELSE 1 END
, MODULE_FLG = CASE WHEN #{moduleFlg} = 'FALSE' THEN 0 ELSE 1 END
, POWER_COM_FLG = CASE WHEN #{powerComFlg} = 'FALSE' THEN 0 ELSE 1 END
, OPTION_FLG = CASE WHEN #{optionFlg} = 'FALSE' THEN 0 ELSE 1 END
, REMARKS = #{remarks}
, DISP_ORDER = #{dispOrder}
, DEL_FLG = CASE WHEN #{delFlg} = 'FALSE' THEN 0 ELSE 1 END
, LIMITED_RELEASE_FLG = CASE WHEN #{limitedReleaseFlg} = 'FALSE' THEN 0 ELSE 1 END
, YANEGI_FLG = CASE WHEN #{yanegiFlg} = 'FALSE' THEN 0 ELSE 1 END
, HORY_FLG = CASE WHEN #{horyFlg} = 'FALSE' THEN 0 ELSE 1 END
, TAKASIMA_FLG = CASE WHEN #{takasimaFlg} = 'FALSE' THEN 0 ELSE 1 END
, D_SWAT_FLG = CASE WHEN #{dSwatFlg} = 'FALSE' THEN 0 ELSE 1 END
, POWER_COM_HAVE_FLG = CASE WHEN #{powerComHaveFlg} = 'FALSE' THEN 0 ELSE 1 END
, POWER_COM_NON_FLG = CASE WHEN #{powerComNonFlg} = 'FALSE' THEN 0 ELSE 1 END
, CONNECT_BOX_HAVE_FLG = CASE WHEN #{connectBoxHaveFlg} = 'FALSE' THEN 0 ELSE 1 END
, CONNECT_BOX_NON_FLG = CASE WHEN #{connectBoxNonFlg} = 'FALSE' THEN 0 ELSE 1 END
, METAL_FITTING_DETAIL_FLG = CASE WHEN #{metalFittingDetailFlg} = 'FALSE' THEN 0 ELSE 1 END
, METAL_FITTING_ALL_FLG = CASE WHEN #{metalFittingAllFlg} = 'FALSE' THEN 0 ELSE 1 END
, STAND_FLG = CASE WHEN #{standFlg} = 'FALSE' THEN 0 ELSE 1 END
, SECURE_TARGET_FLG = CASE WHEN #{secureTargetFlg} = 'FALSE' THEN 0 ELSE 1 END
, DISP_CONTAINER_FLG = CASE WHEN #{dispContainerFlg} = 'FALSE' THEN 0 ELSE 1 END
, PANEL_LAYOUT_DESIGN_DISP_FLG = CASE WHEN #{panelLayoutDesignDispFlg} = 'FALSE' THEN 0 ELSE 1 END
, STAND_DISP_FLG = CASE WHEN #{standDispFlg} = 'FALSE' THEN 0 ELSE 1 END
, GROSS_WT = #{grossWt}
, GUAR_ITEM_GROUP = #{guarItemGroup}
, FILE_UPLOAD_FLG = CASE WHEN #{fileUploadFlg} = 'FALSE' THEN 0 ELSE 1 END
, SALT_AFFECTED_FLG = CASE WHEN #{saltAffectedFlg} = 'FALSE' THEN 0 ELSE 1 END
, GUAR_EXCEPT_FLG = CASE WHEN #{guarExceptFlg} = 'FALSE' THEN 0 ELSE 1 END
, COLD_ZONE_FLG = CASE WHEN #{coldZoneFlg} = 'FALSE' THEN 0 ELSE 1 END
, PKG_MATERIAL_FLG = CASE WHEN #{pkgMaterialFlg} = 'FALSE' THEN 0 ELSE 1 END
, TEMP_LOSS = #{tempLoss}
, TEMP_COEFF = #{tempCoeff}
, AMP = #{amp}
, CNV_EFF = #{cnvEff}
, LAST_EDIT_DATETIME = GETDATE()
WHEN NOT MATCHED THEN
INSERT (
ITEM_ID
, ITEM_NAME
, ITEM_NO
, GOODS_NO
, UNIT
, SPECIFICATION
, FIXED_PRICE
, PNOW_W
, ITEM_CTG_GR
, ITEM_GROUP
, PANEL_ORDER_FLG
, STAND_ORDER_FLG
, MODULE_FLG
, POWER_COM_FLG
, OPTION_FLG
, REMARKS
, DISP_ORDER
, DEL_FLG
, LIMITED_RELEASE_FLG
, YANEGI_FLG
, HORY_FLG
, TAKASIMA_FLG
, D_SWAT_FLG
, POWER_COM_HAVE_FLG
, POWER_COM_NON_FLG
, CONNECT_BOX_HAVE_FLG
, CONNECT_BOX_NON_FLG
, METAL_FITTING_DETAIL_FLG
, METAL_FITTING_ALL_FLG
, STAND_FLG
, SECURE_TARGET_FLG
, DISP_CONTAINER_FLG
, PANEL_LAYOUT_DESIGN_DISP_FLG
, STAND_DISP_FLG
, GROSS_WT
, GUAR_ITEM_GROUP
, FILE_UPLOAD_FLG
, SALT_AFFECTED_FLG
, GUAR_EXCEPT_FLG
, COLD_ZONE_FLG
, PKG_MATERIAL_FLG
, TEMP_LOSS
, TEMP_COEFF
, AMP
, CNV_EFF
, LAST_EDIT_DATETIME
) VALUES (
#{itemId}
, #{itemName}
, #{itemNo}
, #{goodsNo}
, #{unit}
, #{specification}
, #{fixedPrice}
, #{pnowW}
, #{itemCtgGr}
, #{itemGroup}
, CASE WHEN #{panelOrderFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{standOrderFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{moduleFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{powerComFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{optionFlg} = 'FALSE' THEN 0 ELSE 1 END
, #{remarks}
, #{dispOrder}
, CASE WHEN #{delFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{limitedReleaseFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{yanegiFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{horyFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{takasimaFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{dSwatFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{powerComHaveFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{powerComNonFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{connectBoxHaveFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{connectBoxNonFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{metalFittingDetailFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{metalFittingAllFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{standFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{secureTargetFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{dispContainerFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{panelLayoutDesignDispFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{standDispFlg} = 'FALSE' THEN 0 ELSE 1 END
, #{grossWt}
, #{guarItemGroup}
, CASE WHEN #{fileUploadFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{saltAffectedFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{guarExceptFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{coldZoneFlg} = 'FALSE' THEN 0 ELSE 1 END
, CASE WHEN #{pkgMaterialFlg} = 'FALSE' THEN 0 ELSE 1 END
, #{tempLoss}
, #{tempCoeff}
, #{amp}
, #{cnvEff}
, GETDATE()
);
</insert>
<delete id="deleteBomSync" parameterType="com.interplug.qcast.biz.displayItem.dto.BomSyncResponse" >
DELETE FROM M_PACKAGE_ITEM
WHERE
PACKAGE_ITEM_ID = #{packageItemId}
AND ITEM_ID = #{itemId}
</delete>
<insert id="setBomSyncSave" parameterType="com.interplug.qcast.biz.displayItem.dto.BomSyncResponse" >
/* sqlid : com.interplug.qcast.displayItem.setBomSyncSave */
MERGE M_PACKAGE_ITEM AS A
USING
( SELECT #{itemId} AS ITEM_ID
, #{packageItemId} AS PACKAGE_ITEM_ID
) AS D
ON (
A.PACKAGE_ITEM_ID = D.PACKAGE_ITEM_ID
AND A.ITEM_ID = D.ITEM_ID
)
WHEN MATCHED THEN
UPDATE SET
AMOUNT = #{amount}
, LAST_EDIT_DATETIME = GETDATE()
WHEN NOT MATCHED THEN
INSERT (
PACKAGE_ITEM_ID
, ITEM_ID
, AMOUNT
, MANUAL_FLG
, LAST_EDIT_DATETIME
) VALUES (
#{packageItemId}
, #{itemId}
, #{amount}
, CASE WHEN #{manualFlg} = 'FALSE' THEN 0 ELSE 1 END
, GETDATE()
);
</insert>
<insert id="setPriceItemSyncSave" parameterType="com.interplug.qcast.biz.displayItem.dto.PriceItemSyncResponse" >
/* sqlid : com.interplug.qcast.displayItem.setPriceItemSyncSave */
MERGE M_PRICE_PATTERN_MONEY AS A
USING
( SELECT #{pricePattern} AS PRICE_PATTERN
, #{itemId} AS ITEM_ID
) AS D
ON (
A.PRICE_PATTERN = D.PRICE_PATTERN
AND A.ITEM_ID = D.ITEM_ID
)
WHEN MATCHED THEN
UPDATE SET
SALE_PRICE = #{salePrice}
, COST_PRICE = #{costPrice}
WHEN NOT MATCHED THEN
INSERT (
PRICE_PATTERN
, ITEM_ID
, SALE_PRICE
, COST_PRICE
) VALUES (
#{pricePattern}
, #{itemId}
, #{salePrice}
, #{costPrice}
);
</insert>
</mapper>