ept_inventoryMapper.xml 9.0 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">
<mapper namespace="com.eport.rest.dao.EptInventoryDao">
    
	<sql id="EptInventoryEntityColumns">
		a1.ID AS "id"
		,a1.EMS_NO AS "emsNo"
		,a1.BOOK_ID AS "bookId"
		,a1.G_NO AS "gNo"
		,a1.CODE_T_S AS "codeTS"
		,a1.BALANCE_QUANTITY AS "balanceQuantity"
		,a1.BALANCE_VALUE AS "balanceValue"
		,a1.STORE_BILL_NO AS "storeBillNo"
		,a1.IS_DELETE AS "isDelete"
		,a1.CREATE_ID AS "createId"
		,a1.CREATE_DATE AS "createDate"
		,a1.UPDATE_ID AS "updateId"
		,a1.UPDATE_DATE AS "updateDate"
	</sql>
	
	<sql id="EptInventoryEntityListColumn">
		a1.ID AS "id"
		,a1.EMS_NO AS "emsNo"
		,a1.BOOK_ID AS "bookId"
		,a1.G_NO AS "gNo"
		,a1.CODE_T_S AS "codeTS"
		,a1.BALANCE_QUANTITY AS "balanceQuantity"
		,a1.BALANCE_VALUE AS "balanceValue"
		,a1.STORE_BILL_NO AS "storeBillNo"
		,m1.G_NAME AS "gName"
		,m1.UNIT AS "unit"
	</sql>
	
	<!--查询表中所有资料(所有字段) -->
	<select id="listAll" parameterType="HashMap" resultType="com.eport.rest.entity.EptInventoryEntity">
		select  
			<include refid="EptInventoryEntityListColumn"/>
		FROM ept_inventory a1 JOIN ept_item_mat m1 ON a1.BOOK_ID = m1.BOOK_ID AND a1.G_NO = m1.G_NO
		WHERE 1=1
		<if test="bookId != null and '' != bookId or 0 == bookId">
		and a1.BOOK_ID = ${bookId}
		</if>
		and a1.IS_DELETE = 0
	</select>
	
	<!--分页查询资料(所有字段) -->
	<select id="pageAll" parameterType="HashMap" resultType="com.eport.rest.entity.EptInventoryEntity">
		select  
			<include refid="EptInventoryEntityListColumn"/>
		FROM ept_inventory a1 JOIN ept_item_mat m1 ON a1.BOOK_ID = m1.BOOK_ID AND a1.G_NO = m1.G_NO
		WHERE 1=1
		<if test="emsNo != null">
		and a1.EMS_NO like CONCAT(CONCAT('%',#{emsNo}),'%')
		</if>
		<!-- and a1.BOOK_ID = ${bookId}
		and a1.G_NO = ${gNo} -->
		<if test="bookId != null and '' != bookId or 0 == bookId">
		and a1.BOOK_ID = ${bookId}
		</if>
		<if test="storeBillNo != null and '' != storeBillNo">
		and a1.STORE_BILL_NO = ${storeBillNo}
		</if>
		<if test="gNo != null and '' != gNo or 0 == gNo">
		and a1.G_NO = ${gNo}
		</if>
		<if test="codeTS != null">
		and a1.CODE_T_S like CONCAT(CONCAT('%',#{codeTS}),'%')
		</if>
		and a1.IS_DELETE = 0
	</select>
	
	<!--查询表中所有资料(仅列表显示字段) -->
	<select id="list" parameterType="HashMap" resultType="com.eport.rest.entity.EptInventoryEntity">
		select  
			<include refid="EptInventoryEntityListColumn"/>
		FROM ept_inventory a1 JOIN ept_item_mat m1 ON a1.BOOK_ID = m1.BOOK_ID AND a1.G_NO = m1.G_NO
		WHERE 1=1
		<if test="emsNo != null and emsNo != ''">
		and a1.EMS_NO like CONCAT(CONCAT('%',#{emsNo}),'%')
		</if>
		<if test="bookId != null and '' != bookId or 0 == bookId">
		and a1.BOOK_ID = ${bookId}
		</if>
		<if test="gNo != null and '' != gNo or 0 == gNo">
		and a1.G_NO = ${gNo}
		</if> 
		<if test="storeBillNo != null">
		and a1.STORE_BILL_NO like CONCAT(CONCAT('%',#{storeBillNo}),'%')
		</if>
		<if test="codeTS != null and codeTS != ''">
		and a1.CODE_T_S like CONCAT(CONCAT('%',#{codeTS}),'%')
		</if>
		and a1.IS_DELETE = 0
	</select>
		
	<!--分页查询资料(仅列表显示字段) -->
	<select id="page" parameterType="HashMap" resultType="com.eport.rest.entity.EptInventoryEntity">
		select  
			<include refid="EptInventoryEntityListColumn"/>
		FROM ept_inventory a1 JOIN ept_item_mat m1 ON a1.BOOK_ID = m1.BOOK_ID AND a1.G_NO = m1.G_NO
		WHERE 1=1
		<if test="emsNo != null and emsNo != ''">
		and a1.EMS_NO like CONCAT(CONCAT('%',#{emsNo}),'%')
		</if>
		<if test="bookId != null and '' != bookId or 0 == bookId">
		and a1.BOOK_ID = ${bookId}
		</if>
		<if test="gNo != null and '' != gNo or 0 == gNo">
		and a1.G_NO = ${gNo}
		</if>
		<if test="storeBillNo != null and '' != storeBillNo">
		and a1.STORE_BILL_NO = ${storeBillNo}
		</if>
		<if test="codeTS != null and codeTS != ''">
		and a1.CODE_T_S like CONCAT(CONCAT('%',#{codeTS}),'%')
		</if>
		and a1.IS_DELETE = 0
	</select>
	
	<!--根据主键查询数据 -->
	<select id="findByPK" parameterType="Integer" resultType="com.eport.rest.entity.EptInventoryEntity">
		select  
		<include refid="EptInventoryEntityColumns"/>
		FROM ept_inventory  a1
		WHERE a1.ID=#{par}
		 and IS_DELETE = 0
	</select>
	
	<!--新增数据 -->
	<insert id="insert" parameterType="com.eport.rest.entity.EptInventoryEntity">
		<selectKey resultType="Integer" order="AFTER" keyProperty="id">
		<if test="id != null ">
		select #{id} from dual
		</if>
		<if test="id == null ">
		SELECT LAST_INSERT_ID() AS id
		</if>
		 </selectKey>
		insert  
		  INTO ept_inventory (
		EMS_NO
		,BOOK_ID
		,G_NO
		,CODE_T_S
		,BALANCE_QUANTITY
		,BALANCE_VALUE
		,STORE_BILL_NO
		,IS_DELETE
		,CREATE_ID
		,CREATE_DATE
		,UPDATE_ID
		,UPDATE_DATE
		<if test="id != null ">
		,ID
		</if>
		  ) VALUES (
		#{emsNo,jdbcType=VARCHAR}
		,#{bookId,jdbcType=INTEGER}
		,#{gNo,jdbcType=VARCHAR}
		,#{codeTS,jdbcType=VARCHAR}
		,#{balanceQuantity,jdbcType=INTEGER}
		,#{balanceValue,jdbcType=FLOAT}
		,#{storeBillNo,jdbcType=VARCHAR}
		,#{isDelete,jdbcType=INTEGER}
		,#{createId,jdbcType=INTEGER}
		,#{createDate,jdbcType=DATE}
		,#{updateId,jdbcType=INTEGER}
		,#{updateDate,jdbcType=DATE}
		<if test="id != null ">
		,#{id,jdbcType=INTEGER}
		</if>
		  )
	</insert>
		
	<!--更新数据 -->
	<update id="update" parameterType="com.eport.rest.entity.EptInventoryEntity">
		update  
		ept_inventory
		<set>
		<if test="emsNo != null ">
		EMS_NO = #{emsNo},
		</if>
		<if test="bookId != null ">
		BOOK_ID = #{bookId},
		</if>
		<if test="gNo != null ">
		G_NO = #{gNo},
		</if>
		<if test="codeTS != null ">
		CODE_T_S = #{codeTS},
		</if>
		<if test="balanceQuantity != null ">
		BALANCE_QUANTITY = #{balanceQuantity},
		</if>
		<if test="balanceValue != null ">
		BALANCE_VALUE = #{balanceValue},
		</if>
		<if test="storeBillNo != null ">
		STORE_BILL_NO = #{storeBillNo},
		</if>
		<if test="isDelete != null ">
		IS_DELETE = #{isDelete},
		</if>
		<if test="createId != null ">
		CREATE_ID = #{createId},
		</if>
		<if test="createDate != null ">
		CREATE_DATE = #{createDate},
		</if>
		<if test="updateId != null ">
		UPDATE_ID = #{updateId},
		</if>
		<if test="updateDate != null ">
		UPDATE_DATE = #{updateDate},
		</if>
		</set>
		WHERE ID = #{id}
	</update>
	
	<!--根据主键删除数据 -->
	<update id="delete" parameterType="HashMap">
		update  
		ept_inventory set IS_DELETE = 1
		where ID in (${par})
	</update>
	
	<select id="queryInventoryReport" parameterType="HashMap" resultType="com.eport.rest.entity.EptInventoryEntity">
		select 
			i.ID AS "id",
			i.BOOK_ID AS "bookId",
			i.EMS_NO AS "emsNo", 
			i.G_NO AS "gNo", 
			i.CODE_T_S AS "codeTS",
			m.G_NAME AS "gName",
			m.UNIT AS "unit",
			m.BRAND AS "brand",
			m.PART_NO AS "partNo",
			m.G_MODEL AS "gModel",
			m.G_ENG_NAME AS "gEngName",
		    i.BALANCE_QUANTITY AS "balanceQuantity",
		    i.BALANCE_VALUE AS "balanceValue",
		    p.BALANCE_QUANTITY AS "lastMonthBalanceQuantity", 
		    sbi.EFFECT_DATE AS "effectDate",
		    sbi.TIN_NAME AS "tinName",
		    case when sbi.qty is null then 0 else sbi.qty end AS "inQuantity", 
		    case when sbo.qty is null then 0 else sbo.qty end AS "outQuantity",
		    (
		SELECT
			UNIT_NAME
		FROM
			unit c1
		WHERE
			c1.UNIT_CODE = m.UNIT
	) AS unitName
		from EPT_INVENTORY i 
			JOIN ept_item_mat m ON i.BOOK_ID = m.BOOK_ID AND i.G_NO = m.G_NO AND i.CODE_T_S = m.CODE_T_S
			LEFT JOIN ( select h.* from EPT_INVENTORY_HISTORY h where h.YEAR = ${year} and h.MONTH = ${month}) p
				on i.EMS_NO = p.EMS_NO and i.BOOK_ID = p.BOOK_ID and i.G_NO = p.G_NO and i.CODE_T_S = p.CODE_T_S AND i.STORE_BILL_NO=P.STORE_BILL_NO
			LEFT JOIN ( select LI.BOOK_ID, LI.CODE_T_S, LI.EFFECT_DATE,LI.TIN_NAME,LI.STORE_BILL_NO,LI.G_NO, sum(LI.qty)  as qty  
						from EPT_STORE_BILL_IN_HEAD hi join EPT_STORE_BILL_IN_LIST li on hi.BOOK_ID = li.BOOK_ID
							and hi.ID = li.HEAD_ID and hi.SEQ_NO = li.SEQ_NO 
						where hi.BOOK_ID = ${bookId} and HI.STATUS_IN = 1
						group by LI.BOOK_ID, LI.CODE_T_S, LI.G_NO, LI.STORE_BILL_NO,LI.EFFECT_DATE,LI.TIN_NAME) sbi
				on sbi.BOOK_ID = i.BOOK_ID and sbi.CODE_T_S = i.CODE_T_S and sbi.G_NO = i.G_NO and sbi.STORE_BILL_NO=i.STORE_BILL_NO
			LEFT JOIN ( select LO.BOOK_ID, LO.CODE_T_S, LO.G_NO, sum(LO.qty) as qty  
						from EPT_STORE_BILL_OUT_HEAD ho join EPT_STORE_BILL_OUT_LIST lo on ho.BOOK_ID = lo.BOOK_ID
							and ho.ID = lo.HEAD_ID and ho.SEQ_NO = lo.SEQ_NO 
						where ho.BOOK_ID = ${bookId} and HO.STATUS_IN = 1
						group by LO.BOOK_ID, LO.CODE_T_S, LO.G_NO) sbo
				on sbo.book_id = i.book_id and sbo.code_t_s = i.CODE_T_S and sbo.g_no = i.G_NO
		where 1=1
		<!-- <if test="emsNo != null and emsNo != ''">
		and i.EMS_NO like CONCAT(CONCAT('%',#{emsNo}),'%')
		</if>-->
		<if test="gNo != null and '' != gNo or 0 == gNo">
			and i.G_NO = ${gNo}
			</if> 
		<if test="codeTS != null and codeTS != ''">
		and i.CODE_T_S like CONCAT(CONCAT('%',#{codeTS}),'%')
		</if>
		<if test="tinName != null and tinName != ''">
		and sbi.TIN_NAME like CONCAT(CONCAT('%',#{tinName}),'%')
		</if> 
		and i.BOOK_ID = ${bookId}
		order by i.G_NO
		<!-- <if test="bookId != null and '' != bookId or 0 == bookId">
			
		</if>
		
		-->
	</select>
		
</mapper>