inventory-mapper.xml 3.37 KB
<?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">

<!-- 网点库存管理 @author togxiaochuan -->
<mapper namespace="com.cjs.cms.dao.user.pick.InventoryDao">
	
	<sql id="inventory_field">
		T.ID, T.WAREHOUSE_CODE, T.OTC_CODE, T.OTC_NAME, T.TOTAL_AMOUNT, T.FROZEN_AMOUNT, T.USEFUL_AMOUNT, R.NAME WAREHOUSE_NAME, R.STATUS 
	</sql>
	
	<insert id="save" parameterType="InventoryInfo" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
		INSERT INTO HS_ASSET.INVENTORY(ID, WAREHOUSE_CODE, OTC_CODE, OTC_NAME, TOTAL_AMOUNT, FROZEN_AMOUNT, USEFUL_AMOUNT) 
		VALUES(HS_ASSET.INVENTORY_SEQ.NEXTVAL, #{warehouseCode}, #{otcCode}, #{otcName}, #{totalAmount}, #{frozenAmount}, #{usefulAmount})
	</insert>
	
	<delete id="delete" parameterType="InventoryInfo">
		DELETE FROM HS_ASSET.INVENTORY WHERE WAREHOUSE_CODE = #{warehouseCode} AND OTC_CODE = #{otcCode}
	</delete>
	
	<select id="queryByWarehouseCode" parameterType="string" resultType="InventoryInfo">
		SELECT <include refid="inventory_field" /> 
		FROM HS_ASSET.INVENTORY T
		INNER JOIN HS_ASSET.WAREHOUSE R 
		ON T.WAREHOUSE_CODE = R.CODE  
		WHERE WAREHOUSE_CODE = #{warehouseCode}
	</select>
	
	<select id="search" parameterType="map" resultType="InventoryInfo">
		<include refid="common.pageStart" />
		SELECT <include refid="inventory_field" /> 
		FROM HS_ASSET.INVENTORY T 
		INNER JOIN HS_ASSET.WAREHOUSE R 
		ON T.WAREHOUSE_CODE = R.CODE  
		<include refid="searchCondition" />
		ORDER BY T.ID DESC 
		<include refid="common.pageEnd" />
	</select>
	
	<sql id="searchCondition">
		WHERE 1=1 
		<if test="warehouseCode != null and warehouseCode != ''">
			AND INSTR(T.WAREHOUSE_CODE, #{warehouseCode}) > 0 
		</if>
		<if test="warehouseName != null and warehouseName != ''">
			AND INSTR(R.NAME, #{warehouseName}) > 0 
		</if>
		<if test="otcCode != null and otcCode != ''">
			AND INSTR(T.OTC_CODE, #{otcCode}) > 0
		</if>
		<if test="otcName != null and otcName != ''">
			AND INSTR(T.OTC_NAME, #{otcName}) > 0 
		</if>
		<if test="status != null and status != ''">
			AND R.STATUS = #{status}
		</if>
	</sql>
	
	<select id="searchTotal" parameterType="map" resultType="int">
		SELECT COUNT(1) FROM HS_ASSET.INVENTORY T 
		INNER JOIN HS_ASSET.WAREHOUSE R 
		ON T.WAREHOUSE_CODE = R.CODE  
		<include refid="searchCondition" />
	</select>
	
	<select id="searchFoot" parameterType="map" resultType="map">
		SELECT SUM(T.TOTAL_AMOUNT) TOTAL_AMOUNT, SUM(T.FROZEN_AMOUNT) FROZEN_AMOUNT, SUM(USEFUL_AMOUNT) USEFUL_AMOUNT 
		FROM HS_ASSET.INVENTORY T 
		INNER JOIN HS_ASSET.WAREHOUSE R 
		ON T.WAREHOUSE_CODE = R.CODE  
		<include refid="searchCondition" />
		ORDER BY T.ID DESC 
	</select>
	
	
	<update id="updateInventory" parameterType="InventoryInfo">
		UPDATE HS_ASSET.INVENTORY SET TOTAL_AMOUNT = #{totalAmount}, FROZEN_AMOUNT = #{frozenAmount}, USEFUL_AMOUNT = #{usefulAmount} 
			WHERE ID = #{id}
	</update>
	
	<select id="queryById" parameterType="string" resultType="InventoryInfo">
		SELECT T.ID, T.TOTAL_AMOUNT, T.FROZEN_AMOUNT, T.USEFUL_AMOUNT 
		FROM HS_ASSET.INVENTORY T 
		WHERE ID = #{id}
	</select>
	
	<select id="queryInfo" parameterType="map" resultType="InventoryInfo">
		SELECT ID, WAREHOUSE_CODE, OTC_CODE, OTC_NAME, TOTAL_AMOUNT, FROZEN_AMOUNT, USEFUL_AMOUNT  
		FROM HS_ASSET.INVENTORY 
		WHERE WAREHOUSE_CODE = #{warehouseCode} AND OTC_CODE = #{otcCode}
	</select>
	
</mapper>