<?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">

<!--suppress ALL -->
<mapper namespace="com.beiyin.mapper.InitialData">
	<!-- 批量入库网点信息 -->
    <insert id="insertBranch" parameterType="com.beiyin.pojo.Branch">
        insert into branch (branch_id,branch_seq,branch_dacno,branch_add,branch_tel,
       	branch_fld1,branch_fld2,branch_fld3,branch_fld4)
        values
        <foreach collection="brs" item="b" separator=",">
            (#{b.branch_id},#{b.branch_seq},#{b.branch_dacno},#{b.branch_add},#{b.branch_tel},
            #{b.branch_fld1},#{b.branch_fld2},#{b.branch_fld3},#{b.branch_fld4})
        </foreach>
    </insert>

	<!-- 批量入库科目信息 -->
    <insert id="insertSjno" parameterType="com.beiyin.pojo.Sjno">
        insert into sjno (sjno_id,sjno_branchid,sjno_name,sjno_fld1,sjno_fld2,sjno_fld3,sjno_fld4)
       values
        <foreach collection="sjs" item="s" separator=",">
            (#{s.sjno_id},#{s.sjno_branchid},#{s.sjno_name},#{s.sjno_fld1},#{s.sjno_fld2},#{s.sjno_fld3},#{s.sjno_fld4})
        </foreach>
    </insert>

	<!-- 批量入库客户信息 -->
    <insert id="insertCustomer" parameterType="com.beiyin.pojo.Customer">
        insert into customer (customer_id,customer_idtype,customer_idno,customer_name,customer_add,
        customer_birthday,customer_tel,customer_cdate,customer_cbrhid,
        customer_bale,customer_mdate,customer_mtime,customer_fld1,customer_fld2,customer_fld3,customer_fld4)
        values
        <foreach collection="cus" item="c" separator=",">
            (#{c.customer_id},#{c.customer_idtype},#{c.customer_idno},#{c.customer_name},
            #{c.customer_add},#{c.customer_birthday},#{c.customer_tel},#{c.customer_cdate},#{c.customer_cbrhid},
            #{c.customer_bale},#{c.customer_mdate},#{c.customer_mtime},#{c.customer_fld1},#{c.customer_fld2},
            #{c.customer_fld3},#{c.customer_fld4})
        </foreach>
    </insert>
    
    <!-- 批量入库账户信息 -->
    <insert id="insertAccount" parameterType="com.beiyin.pojo.Account">
        insert into account (account_id,account_sjnoid,account_stat,account_custid,account_bale,
        account_pswd,account_name,account_amrz,account_inmod,
        account_itrz,account_branchid,account_mdate,account_mtime,account_fld1,account_fld2,account_fld3,account_fld4)
        values
        <foreach collection="acs" item="a" separator=",">
            (#{a.account_id},#{a.account_sjnoid},#{a.account_stat},#{a.account_custid},
            #{a.account_bale},#{a.account_pswd},#{a.account_name},#{a.account_amrz},#{a.account_inmod},
            #{a.account_itrz},#{a.account_branchid},#{a.account_mdate},#{a.account_mtime},
            #{a.account_fld1},#{a.account_fld2},#{a.account_fld3},#{a.account_fld4})
        </foreach>
    </insert>
    
   	<!-- 批量入库工资信息 -->
    <insert id="insertSalaryList" parameterType="com.beiyin.pojo.Salarylist">
        insert into salarylist(salarylist_branchid,salarylist_accountid,salarylist_bale,
        salarylist_fld1,salarylist_fld2,salarylist_fld3,salarylist_fld4)
        values
        <foreach collection="sas" item="s" separator=",">
            (#{s.salarylist_branchid},#{s.salarylist_accountid},#{s.salarylist_bale},
            #{s.salarylist_fld1},#{s.salarylist_fld2},#{s.salarylist_fld3},#{s.salarylist_fld4})
        </foreach>
    </insert>
    
   	<!-- 初始化数更新汇总科目余额信息 -->
    <update id="updateSjnoBale" parameterType="java.lang.String">
		UPDATE sjno s,
		 (
			SELECT
				SUM(account_bale) r,
				account_sjnoid,
				account_branchid
			FROM
				account
			GROUP BY
				account_sjnoid,
				account_branchid
		) t
		SET s.sjno_bale = t.r
		WHERE
			s.sjno_id = t.account_sjnoid
		AND s.sjno_branchid = t.account_branchid
    </update>
    
   	<!-- 初始化数更新汇总客户余额信息 -->
    <update id="updateCustomerBale">
        UPDATE customer c,
		 (
			SELECT
				SUM(account_bale) r,
				account_custid
			FROM
				account
			GROUP BY
			  account_custid
			order by account_custid
			  LIMIT #{from},#{to}
		) t
		SET c.customer_bale = t.r
		WHERE
			c.customer_id = t.account_custid
    </update>
    <!-- 统计网点的数量，防止重复初始化 -->
    <select id="countBranch" resultType="java.lang.Integer" > 
		SELECT count(branch_id) FROM branch
   </select>
</mapper>