warehouse-mapper.xml 4.13 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.WarehouseDao">
	
	<sql id="warehouse_field">
		CODE, NAME, PROVINCE, CITY, AREA, ADDRESS, CONTACT_NAME, CONTACT_PHONE, 
		SUBSTR(DECODE(LENGTH(W.BUSINESS_START_TIME), 5, '0'||W.BUSINESS_START_TIME, W.BUSINESS_START_TIME), 0, 6) BUSINESS_START_TIME ,
		SUBSTR(DECODE(LENGTH(W.BUSINESS_END_TIME), 5, '0'||W.BUSINESS_END_TIME, W.BUSINESS_END_TIME), 0, 6) BUSINESS_END_TIME , STATUS, UPDATE_DATE, 
		SUBSTR(DECODE(LENGTH(W.UPDATE_TIME), 5, '0'||W.UPDATE_TIME, W.UPDATE_TIME), 0, 6) UPDATE_TIME 
	</sql>
	
	<insert id="save" parameterType="WarehouseInfo" useGeneratedKeys="true" keyColumn="code" keyProperty="code">
		INSERT INTO HS_ASSET.WAREHOUSE(CODE, NAME, PROVINCE, CITY, AREA, ADDRESS, CONTACT_NAME, CONTACT_PHONE, BUSINESS_START_TIME, 
			BUSINESS_END_TIME, STATUS) 
		VALUES(#{code}, #{name}, #{province}, #{city}, #{area}, #{address}, #{contactName}, #{contactPhone}, 
			#{businessStartTime}, #{businessEndTime}, '1')
	</insert>
	
	<!-- 修改网点信息 -->
	<update id="updateInfo" parameterType="WarehouseInfo">
		UPDATE HS_ASSET.WAREHOUSE SET NAME = #{name}, PROVINCE = #{province}, CITY = #{city}, 
			AREA = #{area}, ADDRESS = #{address}, CONTACT_NAME = #{contactName}, CONTACT_PHONE = #{contactPhone}, 
			BUSINESS_START_TIME = #{businessStartTime}, BUSINESS_END_TIME = #{businessEndTime}, STATUS = '1', 
			UPDATE_DATE = #{updateDate}, UPDATE_TIME = #{updateTime}
		WHERE CODE = #{code}
	</update>
	
	<!-- 网点作废 -->
	<update id="cancelInfo" parameterType="string">
		UPDATE HS_ASSET.WAREHOUSE SET STATUS = '0' WHERE CODE = #{code} 
	</update>
	
	<resultMap id="queryAll" type="WarehouseInfo">
		<id property="code" column="CODE"/>
		<result property="name" column="NAME"/>
		<result property="province" column="PROVINCE"/>
		<result property="city" column="CITY"/>
		<result property="area" column="AREA"/>
		<result property="address" column="ADDRESS"/>
		<result property="contactName" column="CONTACT_NAME"/>
		<result property="contactPhone" column="CONTACT_PHONE"/>
		<result property="businessStartTime" column="BUSINESS_START_TIME"/>
		<result property="businessEndTime" column="BUSINESS_END_TIME"/>
		<result property="status" column="STATUS"/>
		<result property="updateDate" column="UPDATE_DATE"/>
		<result property="updateTime" column="UPDATE_TIME"/>
		<collection property="list" ofType="InventoryInfo">
			<id property="warehouseCode" column="WAREHOUSE_CODE"/>
			<result property="id" column="id"/>
			<result property="otcCode" column="OTC_CODE"/>
			<result property="otcName" column="OTC_NAME"/>
			<result property="totalAmount" column="TOTAL_AMOUNT"/>
			<result property="frozenAmount" column="FROZEN_AMOUNT"/>
			<result property="usefulAmount" column="USEFUL_AMOUNT"/>
		</collection>
	</resultMap>
	
	<select id="search" parameterType="map" resultType="WarehouseInfo">
		<include refid="common.pageStart" />
		SELECT <include refid="warehouse_field" />
		FROM HS_ASSET.WAREHOUSE W 
		<include refid="searchCondition" />
		ORDER BY TO_NUMBER(W.CODE) ASC 
		<include refid="common.pageEnd" />
	</select>
	
	<sql id="searchCondition">
		WHERE 1=1 
		<if test="name != null and name != ''">
			AND INSTR(W.NAME, #{name}) > 0 
		</if>
		<if test="contactName != null and contactName != ''">
			AND INSTR(W.CONTACT_NAME, #{contactName}) > 0 
		</if>
		<if test="contactPhone != null and contactPhone != ''">
			AND INSTR(W.CONTACT_PHONE, #{contactPhone}) > 0 
		</if>
		<if test="status != null and status != ''">
			AND STATUS = #{status} 
		</if>
	</sql>
	
	<select id="searchTotal" parameterType="map" resultType="int">
		SELECT COUNT(1) FROM HS_ASSET.WAREHOUSE W 
		<include refid="searchCondition" />
	</select>
	
	<select id="queryByCode" parameterType="string" resultMap="queryAll">
		SELECT <include refid="warehouse_field" />, I.ID, I.OTC_CODE, 
		I.OTC_NAME, I.TOTAL_AMOUNT, I.FROZEN_AMOUNT, I.USEFUL_AMOUNT 
		FROM HS_ASSET.WAREHOUSE W 
		LEFT JOIN HS_ASSET.INVENTORY I ON W.CODE = I.WAREHOUSE_CODE 
		WHERE W.CODE = #{code}
	</select>
	
</mapper>