<?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.matrix.system.hive.dao.SysCheckDetailDao"> 
 | 
     
 | 
    <resultMap type="SysCheckDetail" id="SysCheckDetailMap"> 
 | 
            <id property="id" column="id" /> 
 | 
            <result property="checkId" column="check_id" /> 
 | 
            <result property="skuId" column="sku_id" /> 
 | 
            <result property="beginBalance" column="begin_balance" /> 
 | 
            <result property="incomeNum" column="income_num" /> 
 | 
            <result property="outcomeNum" column="outcome_num" /> 
 | 
            <result property="endBalance" column="end_balance" /> 
 | 
            <result property="price" column="price" /> 
 | 
            <result property="storeId" column="storeId" /> 
 | 
            <result property="priceSum" column="priceSum" /> 
 | 
            <result property="actuallySum" column="actuallySum" /> 
 | 
            <result property="remark" column="remark" /> 
 | 
         
 | 
        <association property="goods" javaType="ShoppingGoods" 
 | 
                     column="{id=sku_id}" select="com.matrix.system.hive.dao.ShoppingGoodsDao.selectById" /> 
 | 
  
 | 
  
 | 
    </resultMap> 
 | 
    <resultMap type="SysCheckDetail" id="SysCheckDetailMapSimple"> 
 | 
            <id property="id" column="id" /> 
 | 
            <result property="checkId" column="check_id" /> 
 | 
            <result property="skuId" column="sku_id" /> 
 | 
            <result property="beginBalance" column="begin_balance" /> 
 | 
            <result property="incomeNum" column="income_num" /> 
 | 
            <result property="outcomeNum" column="outcome_num" /> 
 | 
            <result property="endBalance" column="end_balance" /> 
 | 
            <result property="price" column="price" /> 
 | 
            <result property="priceSum" column="priceSum" /> 
 | 
            <result property="actuallySum" column="actuallySum" /> 
 | 
            <result property="remark" column="remark" /> 
 | 
        <result property="storeId" column="storeId" /> 
 | 
    </resultMap> 
 | 
    <!--  插入方法   --> 
 | 
    <!--  插入方法   --> 
 | 
    <insert id="insert" parameterType="SysCheckDetail" 
 | 
            useGeneratedKeys="true" keyProperty="id"> 
 | 
        INSERT INTO sys_check_detail ( 
 | 
            id, 
 | 
            check_id, 
 | 
            sku_id, 
 | 
            begin_balance, 
 | 
            income_num, 
 | 
            outcome_num, 
 | 
            end_balance, 
 | 
            price, 
 | 
            priceSum, 
 | 
            actuallySum, 
 | 
            remark, 
 | 
            storeId 
 | 
        ) 
 | 
    VALUES ( 
 | 
            #{id}, 
 | 
            #{checkId}, 
 | 
            #{skuId}, 
 | 
            #{beginBalance}, 
 | 
            #{incomeNum}, 
 | 
            #{outcomeNum}, 
 | 
            #{endBalance}, 
 | 
            #{price}, 
 | 
            #{priceSum}, 
 | 
            #{actuallySum}, 
 | 
            #{remark}, 
 | 
            #{storeId} 
 | 
    ) 
 | 
    </insert> 
 | 
  
 | 
  
 | 
    <!--  根据id更新 部分更新   --> 
 | 
    <update id="update" > 
 | 
        UPDATE sys_check_detail 
 | 
        <set> 
 | 
            <if test="checkId != null and checkId !='' "> 
 | 
                check_id = #{checkId}, 
 | 
            </if> 
 | 
            <if test="skuId != null and skuId !='' "> 
 | 
                sku_id = #{skuId}, 
 | 
            </if> 
 | 
            <if test="beginBalance != null and beginBalance !='' "> 
 | 
                begin_balance = #{beginBalance}, 
 | 
            </if> 
 | 
            <if test="incomeNum != null and incomeNum !='' "> 
 | 
                income_num = #{incomeNum}, 
 | 
            </if> 
 | 
            <if test="outcomeNum != null and outcomeNum !='' "> 
 | 
                outcome_num = #{outcomeNum}, 
 | 
            </if> 
 | 
            <if test="endBalance != null and endBalance !='' "> 
 | 
                end_balance = #{endBalance}, 
 | 
            </if> 
 | 
            <if test="price != null and price !='' "> 
 | 
                price = #{price}, 
 | 
            </if> 
 | 
            <if test="priceSum != null and priceSum !='' "> 
 | 
                priceSum = #{priceSum}, 
 | 
            </if> 
 | 
            <if test="(actuallySum != null and actuallySum !='') or  actuallySum==0 "> 
 | 
                actuallySum = #{actuallySum}, 
 | 
            </if> 
 | 
            <if test="remark != null and remark !='' "> 
 | 
                remark = #{remark}, 
 | 
            </if> 
 | 
        </set> 
 | 
        WHERE id=#{id} 
 | 
    </update> 
 | 
  
 | 
  
 | 
  
 | 
    <!-- 批量删除 --> 
 | 
    <delete id="deleteByIds" parameterType="java.util.List"> 
 | 
        delete from sys_check_detail where  id in 
 | 
        <foreach collection="list" index="index" item="item" open="(" 
 | 
                 separator="," close=")"> 
 | 
            #{item} 
 | 
        </foreach> 
 | 
    </delete> 
 | 
  
 | 
    <!-- 根据id删除--> 
 | 
    <delete id="deleteById" > 
 | 
        DELETE FROM sys_check_detail 
 | 
        where  id=#{id} 
 | 
    </delete> 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
    <!-- 分页查询 --> 
 | 
    <select id="selectInPage" resultMap="SysCheckDetailMap"> 
 | 
        SELECT 
 | 
        a.id, 
 | 
        a.check_id, 
 | 
        a.sku_id, 
 | 
        a.actuallySum, 
 | 
        a.remark, 
 | 
        case 
 | 
        when d.check_status = '已完成' THEN a.begin_balance 
 | 
        ELSE 
 | 
        ( SELECT 
 | 
        sum(STORE_TOTAL) 
 | 
        FROM 
 | 
             sys_store_info e where e.SKU_ID=a.sku_id and e.shop_id=d.shop_id ) 
 | 
        END AS begin_balance 
 | 
        from sys_check_detail a 
 | 
        LEFT JOIN shopping_goods c ON a.sku_id=c.ID 
 | 
        LEFT JOIN sys_check_info d ON d.ID = a.check_id 
 | 
        <where> 
 | 
            <if test="record!=null"> 
 | 
            <if test="record.checkId != null and record.checkId!='' "> 
 | 
                and d.ID =#{record.checkId} 
 | 
            </if> 
 | 
            <if test="record.checkNo != null and record.checkNo!='' "> 
 | 
                and d.CHECK_NO =#{record.checkNo} 
 | 
            </if> 
 | 
  
 | 
            <if test="record.goods!=null and record.goods.name != null and record.goods.name !='' "> 
 | 
                and c.NAME LIKE concat('%',#{record.goods.name},'%') 
 | 
            </if> 
 | 
            <if test="record.goods!=null and record.goods.goodsSortId != null and record.goods.goodsSortId !='' "> 
 | 
                and c.GOODS_SORT_ID=  #{record.goods.goodsSortId} 
 | 
            </if> 
 | 
<!--            <if test="record.goods!=null and record.goods.goodsAttr != null and record.goods.goodsAttr !='' ">--> 
 | 
<!--                and c.GOODS_ATTR=  #{record.goods.goodsAttr}--> 
 | 
<!--            </if>--> 
 | 
            <if test="record.goods!=null and record.goods.code != null and record.goods.code !='' "> 
 | 
                and c.code LIKE   concat('%',#{record.goods.code},'%') 
 | 
            </if> 
 | 
        </if> 
 | 
        </where> 
 | 
        <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> 
 | 
            <if test="pageVo.sort !=null  and pageVo.order !=null"> 
 | 
                order by 
 | 
                ${pageVo.sort} ${pageVo.order} 
 | 
            </if> 
 | 
            <if test="pageVo.offset >=0  and pageVo.limit >0"> 
 | 
                limit 
 | 
                #{pageVo.offset},#{pageVo.limit} 
 | 
            </if> 
 | 
        </if> 
 | 
    </select> 
 | 
  
 | 
    <!-- 查询总条数 --> 
 | 
    <select id="selectTotalRecord"    resultType="java.lang.Integer"> 
 | 
        select count(*) 
 | 
        from sys_check_detail a 
 | 
        LEFT JOIN shopping_goods c ON a.sku_id=c.ID 
 | 
        LEFT JOIN sys_check_info d ON d.ID = a.check_id 
 | 
        where 1=1 
 | 
        <if test="record!=null"> 
 | 
            <if test="record.checkId != null and record.checkId!='' "> 
 | 
                and d.ID =#{record.checkId} 
 | 
            </if> 
 | 
            <if test="record.checkNo != null and record.checkNo!='' "> 
 | 
                and d.CHECK_NO =#{record.checkNo} 
 | 
            </if> 
 | 
  
 | 
            <if test="record.goods!=null and record.goods.name != null and record.goods.name !='' "> 
 | 
                and c.name LIKE   concat('%',#{record.goods.name},'%') 
 | 
            </if> 
 | 
            <if test="record.goods!=null and record.goods.goodsSortId != null and record.goods.goodsSortId !='' "> 
 | 
                and c.GOODS_SORT_ID=  #{record.goods.goodsSortId} 
 | 
            </if> 
 | 
<!--            <if test="record.goods!=null and record.goods.goodsAttr != null and record.goods.goodsAttr !='' ">--> 
 | 
<!--                and c.GOODS_ATTR=  #{record.goods.goodsAttr}--> 
 | 
<!--            </if>--> 
 | 
            <if test="record.goods!=null and record.goods.goodsNo != null and record.goods.goodsNo !='' "> 
 | 
                and c.goods_no LIKE   concat('%',#{record.goods.goodsNo},'%') 
 | 
            </if> 
 | 
        </if> 
 | 
    </select> 
 | 
  
 | 
    <!-- 根据id查询--> 
 | 
    <select id="selectById" resultMap="SysCheckDetailMap"> 
 | 
        select 
 | 
            id, 
 | 
            check_id, 
 | 
            sku_id, 
 | 
            begin_balance, 
 | 
            income_num, 
 | 
            outcome_num, 
 | 
            end_balance, 
 | 
            price, 
 | 
            priceSum, 
 | 
            actuallySum, 
 | 
            remark, 
 | 
            storeId 
 | 
        from sys_check_detail 
 | 
        where  id=#{id} 
 | 
    </select> 
 | 
  
 | 
  
 | 
    <!-- 根据对象查询--> 
 | 
    <select id="selectByModel" resultMap="SysCheckDetailMap"> 
 | 
        SELECT 
 | 
        a.id, 
 | 
        a.check_id, 
 | 
        a.sku_id, 
 | 
        a.actuallySum, 
 | 
        case 
 | 
        when d.check_status = '已完成' THEN a.begin_balance 
 | 
        ELSE 
 | 
        ( SELECT 
 | 
        sum(STORE_TOTAL) 
 | 
        FROM 
 | 
        sys_store_info e where e.SKU_ID=a.sku_id and e.shop_id=d.shop_id ) 
 | 
        END AS begin_balance 
 | 
        from sys_check_detail a 
 | 
        LEFT JOIN shopping_goods c ON a.sku_id=c.ID 
 | 
        LEFT JOIN sys_check_info d ON d.ID = a.check_id 
 | 
        <where> 
 | 
            <if test="record!=null"> 
 | 
                <if test="record.id != null and record.id !='' "> 
 | 
                    and id = ${record.id} 
 | 
                </if> 
 | 
                <if test="record.checkId != null and record.checkId !='' "> 
 | 
                    and check_id =#{record.checkId} 
 | 
                </if> 
 | 
            </if> 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <!-- 根据对象查询--> 
 | 
    <select id="selectByModelSimple" resultMap="SysCheckDetailMapSimple"> 
 | 
        SELECT 
 | 
        a.id, 
 | 
        a.check_id, 
 | 
        a.sku_id, 
 | 
        a.actuallySum, 
 | 
        case 
 | 
        when d.check_status = '已完成' THEN a.begin_balance 
 | 
        ELSE 
 | 
        ( SELECT 
 | 
        sum(STORE_TOTAL) 
 | 
        FROM 
 | 
        sys_store_info e where e.SKU_ID=a.sku_id and e.shop_id=d.shop_id ) 
 | 
        END AS begin_balance 
 | 
        from sys_check_detail a 
 | 
        LEFT JOIN shopping_goods c ON a.sku_id=c.ID 
 | 
        LEFT JOIN sys_check_info d ON d.ID = a.check_id 
 | 
    <where> 
 | 
        <if test="record!=null"> 
 | 
            <if test="record.id != null and record.id !='' "> 
 | 
                and id = ${record.id} 
 | 
            </if> 
 | 
            <if test="record.checkId != null and record.checkId !='' "> 
 | 
                and check_id =#{record.checkId} 
 | 
            </if> 
 | 
        </if> 
 | 
    </where> 
 | 
    </select> 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
</mapper> 
 |