<?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.dhcc.finance.main.dao.CwGlBalanceMapper"> <resultMap id="BaseResultMap" type="com.dhcc.finance.main.domain.CwGlBalance"> <id column="PK_BALANCE" jdbcType="VARCHAR" property="pkBalance" /> <result column="PK_GLORGBOOK" jdbcType="VARCHAR" property="pkGlorgbook" /> <result column="PERIOD" jdbcType="VARCHAR" property="period" /> <result column="FQMJBH" jdbcType="VARCHAR" property="fqmjbh" /> <result column="TRANSFER_TYPE" jdbcType="VARCHAR" property="transferType" /> <result column="PK_ACCSUBJ" jdbcType="VARCHAR" property="pkAccsubj" /> <result column="SUBJCODE" jdbcType="VARCHAR" property="subjcode" /> <result column="SUBJNAME" jdbcType="VARCHAR" property="subjname" /> <result column="PK_CURRTYPE" jdbcType="VARCHAR" property="pkCurrtype" /> <result column="DEBITAMOUNT" jdbcType="DECIMAL" property="debitamount" /> <result column="CREDITAMOUNT" jdbcType="DECIMAL" property="creditamount" /> <result column="LOCALDEBITAMOUNT" jdbcType="DECIMAL" property="localdebitamount" /> <result column="LOCALCREDITAMOUNT" jdbcType="DECIMAL" property="localcreditamount" /> <result column="BALANCE" jdbcType="DECIMAL" property="balance" /> <result column="ASSID" jdbcType="VARCHAR" property="assid" /> <result column="QTY" jdbcType="VARCHAR" property="qty" /> <result column="USE_STATE" jdbcType="VARCHAR" property="useState" /> <result column="CREATE_USER" jdbcType="VARCHAR" property="createUser" /> <result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime" /> <result column="UPDATE_USER" jdbcType="VARCHAR" property="updateUser" /> <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" /> <result column="REMARK" jdbcType="VARCHAR" property="remark" /> </resultMap> <resultMap id="BaseResultMap1" type="com.dhcc.finance.main.model.CwGlTransferExecDetail"> <result column="SUBJCODE" jdbcType="VARCHAR" property="subjcode" /> <result column="SUBJNAME" jdbcType="VARCHAR" property="subjname" /> <result column="BALANORIENT" jdbcType="VARCHAR" property="balanorient" /> <result column="BALANCE" jdbcType="VARCHAR" property="balance" /> </resultMap> <sql id="Example_Where_Clause"> <where> <foreach collection="oredCriteria" item="criteria" separator="or"> <if test="criteria.valid"> <trim prefix="(" prefixOverrides="and" suffix=")"> <foreach collection="criteria.criteria" item="criterion"> <choose> <when test="criterion.noValue"> and ${criterion.condition} </when> <when test="criterion.singleValue"> and ${criterion.condition} #{criterion.value} </when> <when test="criterion.betweenValue"> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </when> <when test="criterion.listValue"> and ${criterion.condition} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> #{listItem} </foreach> </when> </choose> </foreach> </trim> </if> </foreach> </where> </sql> <sql id="Update_By_Example_Where_Clause"> <where> <foreach collection="example.oredCriteria" item="criteria" separator="or"> <if test="criteria.valid"> <trim prefix="(" prefixOverrides="and" suffix=")"> <foreach collection="criteria.criteria" item="criterion"> <choose> <when test="criterion.noValue"> and ${criterion.condition} </when> <when test="criterion.singleValue"> and ${criterion.condition} #{criterion.value} </when> <when test="criterion.betweenValue"> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </when> <when test="criterion.listValue"> and ${criterion.condition} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> #{listItem} </foreach> </when> </choose> </foreach> </trim> </if> </foreach> </where> </sql> <sql id="Base_Column_List"> PK_BALANCE, PK_GLORGBOOK, PERIOD, FQMJBH, TRANSFER_TYPE, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, BALANCE, ASSID, QTY, USE_STATE, CREATE_USER, CREATE_TIME, UPDATE_USER, UPDATE_TIME, REMARK </sql> <select id="selectByExample" parameterType="com.dhcc.finance.main.domain.CwGlBalanceExample" resultMap="BaseResultMap"> select <if test="distinct"> distinct </if> <include refid="Base_Column_List" /> from cw_gl_balance <if test="_parameter != null"> <include refid="Example_Where_Clause" /> </if> <if test="orderByClause != null"> order by ${orderByClause} </if> </select> <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from cw_gl_balance where PK_BALANCE = #{pkBalance,jdbcType=VARCHAR} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.String"> delete from cw_gl_balance where PK_BALANCE = #{pkBalance,jdbcType=VARCHAR} </delete> <delete id="deleteByExample" parameterType="com.dhcc.finance.main.domain.CwGlBalanceExample"> delete from cw_gl_balance <if test="_parameter != null"> <include refid="Example_Where_Clause" /> </if> </delete> <insert id="insert" parameterType="com.dhcc.finance.main.domain.CwGlBalance"> insert into cw_gl_balance (PK_BALANCE, PK_GLORGBOOK, PERIOD, FQMJBH, TRANSFER_TYPE, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, BALANCE, ASSID, QTY, USE_STATE, CREATE_USER, CREATE_TIME, UPDATE_USER, UPDATE_TIME, REMARK) values (#{pkBalance,jdbcType=VARCHAR}, #{pkGlorgbook,jdbcType=VARCHAR}, #{period,jdbcType=VARCHAR}, #{fqmjbh,jdbcType=VARCHAR}, #{transferType,jdbcType=VARCHAR}, #{pkAccsubj,jdbcType=VARCHAR}, #{subjcode,jdbcType=VARCHAR}, #{subjname,jdbcType=VARCHAR}, #{pkCurrtype,jdbcType=VARCHAR}, #{debitamount,jdbcType=DECIMAL}, #{creditamount,jdbcType=DECIMAL}, #{localdebitamount,jdbcType=DECIMAL}, #{localcreditamount,jdbcType=DECIMAL}, #{balance,jdbcType=DECIMAL}, #{assid,jdbcType=VARCHAR}, #{qty,jdbcType=VARCHAR}, #{useState,jdbcType=VARCHAR}, #{createUser,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateUser,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}) </insert> <insert id="insertSelective" parameterType="com.dhcc.finance.main.domain.CwGlBalance"> insert into cw_gl_balance <trim prefix="(" suffix=")" suffixOverrides=","> <if test="pkBalance != null"> PK_BALANCE, </if> <if test="pkGlorgbook != null"> PK_GLORGBOOK, </if> <if test="period != null"> PERIOD, </if> <if test="fqmjbh != null"> FQMJBH, </if> <if test="transferType != null"> TRANSFER_TYPE, </if> <if test="pkAccsubj != null"> PK_ACCSUBJ, </if> <if test="subjcode != null"> SUBJCODE, </if> <if test="subjname != null"> SUBJNAME, </if> <if test="pkCurrtype != null"> PK_CURRTYPE, </if> <if test="debitamount != null"> DEBITAMOUNT, </if> <if test="creditamount != null"> CREDITAMOUNT, </if> <if test="localdebitamount != null"> LOCALDEBITAMOUNT, </if> <if test="localcreditamount != null"> LOCALCREDITAMOUNT, </if> <if test="balance != null"> BALANCE, </if> <if test="assid != null"> ASSID, </if> <if test="qty != null"> QTY, </if> <if test="useState != null"> USE_STATE, </if> <if test="createUser != null"> CREATE_USER, </if> <if test="createTime != null"> CREATE_TIME, </if> <if test="updateUser != null"> UPDATE_USER, </if> <if test="updateTime != null"> UPDATE_TIME, </if> <if test="remark != null"> REMARK, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="pkBalance != null"> #{pkBalance,jdbcType=VARCHAR}, </if> <if test="pkGlorgbook != null"> #{pkGlorgbook,jdbcType=VARCHAR}, </if> <if test="period != null"> #{period,jdbcType=VARCHAR}, </if> <if test="fqmjbh != null"> #{fqmjbh,jdbcType=VARCHAR}, </if> <if test="transferType != null"> #{transferType,jdbcType=VARCHAR}, </if> <if test="pkAccsubj != null"> #{pkAccsubj,jdbcType=VARCHAR}, </if> <if test="subjcode != null"> #{subjcode,jdbcType=VARCHAR}, </if> <if test="subjname != null"> #{subjname,jdbcType=VARCHAR}, </if> <if test="pkCurrtype != null"> #{pkCurrtype,jdbcType=VARCHAR}, </if> <if test="debitamount != null"> #{debitamount,jdbcType=DECIMAL}, </if> <if test="creditamount != null"> #{creditamount,jdbcType=DECIMAL}, </if> <if test="localdebitamount != null"> #{localdebitamount,jdbcType=DECIMAL}, </if> <if test="localcreditamount != null"> #{localcreditamount,jdbcType=DECIMAL}, </if> <if test="balance != null"> #{balance,jdbcType=DECIMAL}, </if> <if test="assid != null"> #{assid,jdbcType=VARCHAR}, </if> <if test="qty != null"> #{qty,jdbcType=VARCHAR}, </if> <if test="useState != null"> #{useState,jdbcType=VARCHAR}, </if> <if test="createUser != null"> #{createUser,jdbcType=VARCHAR}, </if> <if test="createTime != null"> #{createTime,jdbcType=TIMESTAMP}, </if> <if test="updateUser != null"> #{updateUser,jdbcType=VARCHAR}, </if> <if test="updateTime != null"> #{updateTime,jdbcType=TIMESTAMP}, </if> <if test="remark != null"> #{remark,jdbcType=VARCHAR}, </if> </trim> </insert> <select id="countByExample" parameterType="com.dhcc.finance.main.domain.CwGlBalanceExample" resultType="java.lang.Long"> select count(*) from cw_gl_balance <if test="_parameter != null"> <include refid="Example_Where_Clause" /> </if> </select> <update id="updateByExampleSelective" parameterType="map"> update cw_gl_balance <set> <if test="record.pkBalance != null"> PK_BALANCE = #{record.pkBalance,jdbcType=VARCHAR}, </if> <if test="record.pkGlorgbook != null"> PK_GLORGBOOK = #{record.pkGlorgbook,jdbcType=VARCHAR}, </if> <if test="record.period != null"> PERIOD = #{record.period,jdbcType=VARCHAR}, </if> <if test="record.fqmjbh != null"> FQMJBH = #{record.fqmjbh,jdbcType=VARCHAR}, </if> <if test="record.transferType != null"> TRANSFER_TYPE = #{record.transferType,jdbcType=VARCHAR}, </if> <if test="record.pkAccsubj != null"> PK_ACCSUBJ = #{record.pkAccsubj,jdbcType=VARCHAR}, </if> <if test="record.subjcode != null"> SUBJCODE = #{record.subjcode,jdbcType=VARCHAR}, </if> <if test="record.subjname != null"> SUBJNAME = #{record.subjname,jdbcType=VARCHAR}, </if> <if test="record.pkCurrtype != null"> PK_CURRTYPE = #{record.pkCurrtype,jdbcType=VARCHAR}, </if> <if test="record.debitamount != null"> DEBITAMOUNT = #{record.debitamount,jdbcType=DECIMAL}, </if> <if test="record.creditamount != null"> CREDITAMOUNT = #{record.creditamount,jdbcType=DECIMAL}, </if> <if test="record.localdebitamount != null"> LOCALDEBITAMOUNT = #{record.localdebitamount,jdbcType=DECIMAL}, </if> <if test="record.localcreditamount != null"> LOCALCREDITAMOUNT = #{record.localcreditamount,jdbcType=DECIMAL}, </if> <if test="record.balance != null"> BALANCE = #{record.balance,jdbcType=DECIMAL}, </if> <if test="record.assid != null"> ASSID = #{record.assid,jdbcType=VARCHAR}, </if> <if test="record.qty != null"> QTY = #{record.qty,jdbcType=VARCHAR}, </if> <if test="record.useState != null"> USE_STATE = #{record.useState,jdbcType=VARCHAR}, </if> <if test="record.createUser != null"> CREATE_USER = #{record.createUser,jdbcType=VARCHAR}, </if> <if test="record.createTime != null"> CREATE_TIME = #{record.createTime,jdbcType=TIMESTAMP}, </if> <if test="record.updateUser != null"> UPDATE_USER = #{record.updateUser,jdbcType=VARCHAR}, </if> <if test="record.updateTime != null"> UPDATE_TIME = #{record.updateTime,jdbcType=TIMESTAMP}, </if> <if test="record.remark != null"> REMARK = #{record.remark,jdbcType=VARCHAR}, </if> </set> <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update> <update id="updateByExample" parameterType="map"> update cw_gl_balance set PK_BALANCE = #{record.pkBalance,jdbcType=VARCHAR}, PK_GLORGBOOK = #{record.pkGlorgbook,jdbcType=VARCHAR}, PERIOD = #{record.period,jdbcType=VARCHAR}, FQMJBH = #{record.fqmjbh,jdbcType=VARCHAR}, TRANSFER_TYPE = #{record.transferType,jdbcType=VARCHAR}, PK_ACCSUBJ = #{record.pkAccsubj,jdbcType=VARCHAR}, SUBJCODE = #{record.subjcode,jdbcType=VARCHAR}, SUBJNAME = #{record.subjname,jdbcType=VARCHAR}, PK_CURRTYPE = #{record.pkCurrtype,jdbcType=VARCHAR}, DEBITAMOUNT = #{record.debitamount,jdbcType=DECIMAL}, CREDITAMOUNT = #{record.creditamount,jdbcType=DECIMAL}, LOCALDEBITAMOUNT = #{record.localdebitamount,jdbcType=DECIMAL}, LOCALCREDITAMOUNT = #{record.localcreditamount,jdbcType=DECIMAL}, BALANCE = #{record.balance,jdbcType=DECIMAL}, ASSID = #{record.assid,jdbcType=VARCHAR}, QTY = #{record.qty,jdbcType=VARCHAR}, USE_STATE = #{record.useState,jdbcType=VARCHAR}, CREATE_USER = #{record.createUser,jdbcType=VARCHAR}, CREATE_TIME = #{record.createTime,jdbcType=TIMESTAMP}, UPDATE_USER = #{record.updateUser,jdbcType=VARCHAR}, UPDATE_TIME = #{record.updateTime,jdbcType=TIMESTAMP}, REMARK = #{record.remark,jdbcType=VARCHAR} <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update> <update id="updateByPrimaryKeySelective" parameterType="com.dhcc.finance.main.domain.CwGlBalance"> update cw_gl_balance <set> <if test="pkGlorgbook != null"> PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR}, </if> <if test="period != null"> PERIOD = #{period,jdbcType=VARCHAR}, </if> <if test="fqmjbh != null"> FQMJBH = #{fqmjbh,jdbcType=VARCHAR}, </if> <if test="transferType != null"> TRANSFER_TYPE = #{transferType,jdbcType=VARCHAR}, </if> <if test="pkAccsubj != null"> PK_ACCSUBJ = #{pkAccsubj,jdbcType=VARCHAR}, </if> <if test="subjcode != null"> SUBJCODE = #{subjcode,jdbcType=VARCHAR}, </if> <if test="subjname != null"> SUBJNAME = #{subjname,jdbcType=VARCHAR}, </if> <if test="pkCurrtype != null"> PK_CURRTYPE = #{pkCurrtype,jdbcType=VARCHAR}, </if> <if test="debitamount != null"> DEBITAMOUNT = #{debitamount,jdbcType=DECIMAL}, </if> <if test="creditamount != null"> CREDITAMOUNT = #{creditamount,jdbcType=DECIMAL}, </if> <if test="localdebitamount != null"> LOCALDEBITAMOUNT = #{localdebitamount,jdbcType=DECIMAL}, </if> <if test="localcreditamount != null"> LOCALCREDITAMOUNT = #{localcreditamount,jdbcType=DECIMAL}, </if> <if test="balance != null"> BALANCE = #{balance,jdbcType=DECIMAL}, </if> <if test="assid != null"> ASSID = #{assid,jdbcType=VARCHAR}, </if> <if test="qty != null"> QTY = #{qty,jdbcType=VARCHAR}, </if> <if test="useState != null"> USE_STATE = #{useState,jdbcType=VARCHAR}, </if> <if test="createUser != null"> CREATE_USER = #{createUser,jdbcType=VARCHAR}, </if> <if test="createTime != null"> CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, </if> <if test="updateUser != null"> UPDATE_USER = #{updateUser,jdbcType=VARCHAR}, </if> <if test="updateTime != null"> UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP}, </if> <if test="remark != null"> REMARK = #{remark,jdbcType=VARCHAR}, </if> </set> where PK_BALANCE = #{pkBalance,jdbcType=VARCHAR} </update> <update id="updateByPrimaryKey" parameterType="com.dhcc.finance.main.domain.CwGlBalance"> update cw_gl_balance set PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR}, PERIOD = #{period,jdbcType=VARCHAR}, FQMJBH = #{fqmjbh,jdbcType=VARCHAR}, TRANSFER_TYPE = #{transferType,jdbcType=VARCHAR}, PK_ACCSUBJ = #{pkAccsubj,jdbcType=VARCHAR}, SUBJCODE = #{subjcode,jdbcType=VARCHAR}, SUBJNAME = #{subjname,jdbcType=VARCHAR}, PK_CURRTYPE = #{pkCurrtype,jdbcType=VARCHAR}, DEBITAMOUNT = #{debitamount,jdbcType=DECIMAL}, CREDITAMOUNT = #{creditamount,jdbcType=DECIMAL}, LOCALDEBITAMOUNT = #{localdebitamount,jdbcType=DECIMAL}, LOCALCREDITAMOUNT = #{localcreditamount,jdbcType=DECIMAL}, BALANCE = #{balance,jdbcType=DECIMAL}, ASSID = #{assid,jdbcType=VARCHAR}, QTY = #{qty,jdbcType=VARCHAR}, USE_STATE = #{useState,jdbcType=VARCHAR}, CREATE_USER = #{createUser,jdbcType=VARCHAR}, CREATE_TIME = #{createTime,jdbcType=TIMESTAMP}, UPDATE_USER = #{updateUser,jdbcType=VARCHAR}, UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP}, REMARK = #{remark,jdbcType=VARCHAR} where PK_BALANCE = #{pkBalance,jdbcType=VARCHAR} </update> <!-- 反记账功能更新科目余额 --> <!-- <update id="updateForReveseBybooking" parameterType="java.lang.String"> update cw_gl_balance z inner join ( select sum(IFNULL(s.DEBITAMOUNT,0)+IFNULL(t.DEBITAMOUNT,0)) as DEBITAMOUNT , sum(IFNULL(s.CREDITAMOUNT,0)+IFNULL(t.CREDITAMOUNT,0)) as CREDITAMOUNT, sum(IFNULL(s.LOCALDEBITAMOUNT,0)+IFNULL(t.LOCALDEBITAMOUNT,0)) as LOCALDEBITAMOUNT, sum(IFNULL(s.LOCALCREDITAMOUNT,0)+IFNULL(t.LOCALCREDITAMOUNT,0)) as LOCALCREDITAMOUNT, s.PK_BALANCE from cw_gl_balance s left join ( select b.PK_GLORGBOOK,b.period, a.DETAILINDEX, a.PK_ACCSUBJ, a.SUBJCODE, a.SUBJNAME, a.PK_CURRTYPE, a.DEBITAMOUNT, a.CREDITAMOUNT, a.LOCALDEBITAMOUNT, a.LOCALCREDITAMOUNT, a.ASSID, a.QTY, a.USE_STATE, a.CREATE_USER, a.CREATE_TIME, a.UPDATE_USER, a.UPDATE_TIME, a.REMARK from cw_gl_detail a join cw_gl_voucher b on a.PK_VOUCHER=b.PK_VOUCHER )t on s.PK_GLORGBOOK=t.PK_GLORGBOOK and s.period=t.period and s.PK_ACCSUBJ=t.PK_ACCSUBJ <if test="assid != null"> and s.ASSID=t.ASSID </if> where s.USE_STATE='1' <if test="pkGlorgbook != null"> and s.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} </if> <if test="period != null"> and s.period=#{period,jdbcType=VARCHAR} </if> <if test="pkAccsubj != null"> and s.PK_ACCSUBJ=#{pkAccsubj,jdbcType=VARCHAR} </if> <if test="assid != null"> and s.assid=#{assid,jdbcType=VARCHAR} </if> ) l on z.PK_BALANCE=l.PK_BALANCE set z.DEBITAMOUNT=l.DEBITAMOUNT, z.CREDITAMOUNT=l.CREDITAMOUNT , z.LOCALDEBITAMOUNT=l.LOCALDEBITAMOUNT, z.LOCALCREDITAMOUNT=l.LOCALCREDITAMOUNT where z.PK_BALANCE=l.PK_BALANCE </update> --> <!--查询科目辅助余额dml--> <select id="selectCwGlBalance" flushCache="true" parameterType="com.dhcc.finance.main.domain.CwGlBalance" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from cw_gl_balance where USE_STATE = '1' and PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} and PERIOD = #{period,jdbcType=VARCHAR} and PK_ACCSUBJ = #{pkAccsubj,jdbcType=VARCHAR} <!-- 如果按辅助项统计放开这块 <choose> <when test="assid != null and assid != ''"> and ASSID = #{assid,jdbcType=VARCHAR} </when> <otherwise> and (ASSID = '' or ASSID IS NULL) </otherwise> </choose> --> <choose> <when test="fqmjbh != null and fqmjbh != ''"> and FQMJBH = #{fqmjbh,jdbcType=VARCHAR} </when> <otherwise> and (FQMJBH = '' or FQMJBH IS NULL) </otherwise> </choose> </select> <!-- 新增余额表数据 --> <insert id="insertBalance" parameterType="com.dhcc.finance.main.domain.CwGlBalance"> insert into cw_gl_balance (PK_BALANCE, PK_GLORGBOOK, PERIOD, FQMJBH, TRANSFER_TYPE, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, BALANCE, ASSID, QTY, USE_STATE, CREATE_USER, CREATE_TIME, UPDATE_USER, UPDATE_TIME, REMARK) select #{pkBalance,jdbcType=VARCHAR}, #{pkGlorgbook,jdbcType=VARCHAR}, #{period,jdbcType=VARCHAR}, #{fqmjbh,jdbcType=VARCHAR}, #{transferType,jdbcType=VARCHAR}, #{pkAccsubj,jdbcType=VARCHAR}, #{subjcode,jdbcType=VARCHAR}, #{subjname,jdbcType=VARCHAR}, #{pkCurrtype,jdbcType=VARCHAR}, #{debitamount,jdbcType=DECIMAL}, #{creditamount,jdbcType=DECIMAL}, #{localdebitamount,jdbcType=DECIMAL}, #{localcreditamount,jdbcType=DECIMAL}, case when BALANORIENT='1' then ifnull(#{localdebitamount,jdbcType=DECIMAL},0)-ifnull(#{localcreditamount,jdbcType=DECIMAL},0) else ifnull(#{localcreditamount,jdbcType=DECIMAL},0)-ifnull(#{localdebitamount,jdbcType=DECIMAL},0) end BALANCE , #{assid,jdbcType=VARCHAR}, #{qty,jdbcType=VARCHAR}, #{useState,jdbcType=VARCHAR}, #{createUser,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateUser,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR} from cw_bd_accsubj where PK_ACCSUBJ=#{pkAccsubj,jdbcType=VARCHAR} </insert> <!-- 记账时修改余额dml --> <update id="updateBalanceCount" parameterType="com.dhcc.finance.main.domain.CwGlBalance"> update cw_gl_balance cgb inner join ( select DEBITAMOUNT,CREDITAMOUNT,LOCALDEBITAMOUNT,LOCALCREDITAMOUNT,PK_ACCSUBJ, CASE WHEN BALANORIENT ='1' THEN LOCALDEBITAMOUNT-LOCALCREDITAMOUNT ELSE LOCALCREDITAMOUNT-LOCALDEBITAMOUNT END BALANCE from ( select IFNULL(sum(del.DEBITAMOUNT),0) as DEBITAMOUNT,IFNULL(sum(del.CREDITAMOUNT),0) as CREDITAMOUNT, IFNULL(sum(del.LOCALDEBITAMOUNT),0) as LOCALDEBITAMOUNT,IFNULL(sum(del.LOCALCREDITAMOUNT),0)as LOCALCREDITAMOUNT , #{pkAccsubj,jdbcType=VARCHAR} as PK_ACCSUBJ,sbj.BALANORIENT from CW_GL_DETAIL del left join cw_bd_accsubj sbj on del.PK_ACCSUBJ = sbj.PK_ACCSUBJ where del.PK_VOUCHER in ( select a.PK_VOUCHER from CW_GL_VOUCHER a where a.PK_GLORGBOOK =#{pkGlorgbook,jdbcType=VARCHAR} and a.PERIOD=#{period,jdbcType=VARCHAR} and a.VOUCHERTYPE='3' and a.USE_STATE='1' <choose> <when test="fqmjbh != null and fqmjbh != ''"> and a.FQMJBH = #{fqmjbh,jdbcType=VARCHAR} </when> <otherwise> and (a.FQMJBH = '' or a.FQMJBH IS NULL) </otherwise> </choose> ) and del.PK_ACCSUBJ=#{pkAccsubj,jdbcType=VARCHAR} and del.USE_STATE='1' <!-- 如果按辅助项统计放开这块 <choose> <when test="assid != null and assid != ''"> and del.ASSID = #{assid,jdbcType=VARCHAR} </when> <otherwise> and (del.ASSID = '' or del.ASSID IS NULL) </otherwise> </choose> --> )a )as temp on cgb.PK_ACCSUBJ = temp.PK_ACCSUBJ set cgb.DEBITAMOUNT=temp.DEBITAMOUNT,cgb.CREDITAMOUNT=temp.CREDITAMOUNT,cgb.LOCALDEBITAMOUNT=temp.LOCALDEBITAMOUNT,cgb.LOCALCREDITAMOUNT=temp.LOCALCREDITAMOUNT, cgb.UPDATE_USER = #{updateUser,jdbcType=VARCHAR},cgb.UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},cgb.BALANCE=temp.BALANCE where cgb.USE_STATE = '1' and cgb.PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} and cgb.PERIOD = #{period,jdbcType=VARCHAR} and cgb.PK_ACCSUBJ = #{pkAccsubj,jdbcType=VARCHAR} <!-- 如果按辅助项统计放开这块 <choose> <when test="assid != null and assid != ''"> and cgb.ASSID = #{assid,jdbcType=VARCHAR} </when> <otherwise> and (cgb.ASSID = '' or cgb.ASSID IS NULL) </otherwise> </choose> --> <choose> <when test="fqmjbh != null and fqmjbh != ''"> and cgb.FQMJBH = #{fqmjbh,jdbcType=VARCHAR} </when> <otherwise> and (cgb.FQMJBH = '' or cgb.FQMJBH IS NULL) </otherwise> </choose> </update> <!-- 插入年初重算 --> <insert id="insertEarlyYearRecalculation" parameterType="java.util.Map"> insert into cw_gl_balance (PK_BALANCE, PK_GLORGBOOK, PERIOD, FQMJBH, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, ASSID, USE_STATE, CREATE_USER, CREATE_TIME )select MD5(uuid()) as PK_BALANCE, #{pkGlorgbook,jdbcType=VARCHAR} as PK_GLORGBOOK,#{period,jdbcType=VARCHAR} as PERIOD,b.FQMJBH, c.PK_ACCSUBJ,SUBJCODE, SUBJNAME, PK_CURRTYPE,IFNULL(sum(c.DEBITAMOUNT),0) as DEBITAMOUNT, IFNULL(sum(c.CREDITAMOUNT),0) as CREDITAMOUNT, IFNULL(sum(c.LOCALDEBITAMOUNT),0) as LOCALDEBITAMOUNT ,IFNULL(sum(c.LOCALCREDITAMOUNT),0) as LOCALCREDITAMOUNT,c.ASSID ,'1' as USE_STATE, #{createUser,jdbcType=VARCHAR} as CREATE_USER,#{createTime,jdbcType=TIMESTAMP} as CREATE_TIME from CW_BD_GLORGBOOK a inner join CW_GL_VOUCHER b on a.PK_GLORGBOOK=b.PK_GLORGBOOK and b.PERIOD like #{lastPeriod,jdbcType=VARCHAR}"%" and b.VOUCHERTYPE='3' and b.USE_STATE='1' inner join CW_GL_DETAIL c on b.PK_VOUCHER=c.PK_VOUCHER and c.USE_STATE='1' where a.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and a.USE_STATE='1' group by c.PK_ACCSUBJ ,c.ASSID,b.FQMJBH </insert> <!-- 插入年初重算分期上的余额 --> <!-- <insert id="insertFqmjbhYearRecalculation" parameterType="java.util.Map"> insert into cw_gl_balance (PK_BALANCE, PK_GLORGBOOK, PERIOD, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, ASSID, USE_STATE, CREATE_USER, CREATE_TIME )select MD5(uuid()) as PK_BALANCE, b.FQMJBH as PK_GLORGBOOK,#{period,jdbcType=VARCHAR} as PERIOD, c.PK_ACCSUBJ,SUBJCODE, SUBJNAME, PK_CURRTYPE,IFNULL(sum(c.DEBITAMOUNT),0) as DEBITAMOUNT, IFNULL(sum(c.CREDITAMOUNT),0) as CREDITAMOUNT, IFNULL(sum(c.LOCALDEBITAMOUNT),0) as LOCALDEBITAMOUNT ,IFNULL(sum(c.LOCALCREDITAMOUNT),0) as LOCALCREDITAMOUNT,c.ASSID ,'1' as USE_STATE, #{createUser,jdbcType=VARCHAR} as CREATE_USER,#{createTime,jdbcType=TIMESTAMP} as CREATE_TIME from CW_BD_GLORGBOOK a inner join CW_GL_VOUCHER b on a.PK_GLORGBOOK=b.PK_GLORGBOOK and b.PERIOD like #{lastPeriod,jdbcType=VARCHAR}"%" and b.VOUCHERTYPE='3' and b.USE_STATE='1' and b.FQMJBH !='' and b.FQMJBH is not null inner join CW_GL_DETAIL c on b.PK_VOUCHER=c.PK_VOUCHER and c.USE_STATE='1' where a.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and a.USE_STATE='1' group by b.FQMJBH,c.PK_ACCSUBJ ,c.ASSID </insert> --> <!-- 删除年初重算 --> <delete id="deleteEarlyYearRecalculation" parameterType="java.lang.String"> delete from cw_gl_balance where PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} and PERIOD = #{period,jdbcType=VARCHAR} </delete> <!-- 年初重算删除分期上的年初余额 --> <!-- <delete id="deleteByFqmjbh" parameterType="java.lang.String"> delete from cw_gl_balance where PK_GLORGBOOK in (select distinct FQMJBH from cw_gl_voucher where PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} and FQMJBH !='' and FQMJBH is not null and USE_STATE='1' ) and PERIOD = #{period,jdbcType=VARCHAR} </delete> --> <!--结转 重算科目余额 金额总和--> <select id="selectCwGlBalanceBytransfer" resultMap="BaseResultMap"> select IFNULL(sum(LOCALDEBITAMOUNT),0) as LOCALDEBITAMOUNT, IFNULL(sum(LOCALCREDITAMOUNT),0) as LOCALCREDITAMOUNT, IFNULL(sum(DEBITAMOUNT),0) as DEBITAMOUNT, IFNULL(sum(CREDITAMOUNT),0) as CREDITAMOUNT from cw_gl_balance where USE_STATE='1' and PK_GLORGBOOK= #{pkGlorgbook,jdbcType=VARCHAR} and PK_ACCSUBJ in <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> #{item,jdbcType=VARCHAR} </foreach> <if test="minPeriod !=null"> <![CDATA[ and PERIOD >=#{minPeriod,jdbcType=VARCHAR} ]]> </if> <![CDATA[ and PERIOD<=#{period,jdbcType=VARCHAR} ]]> <choose> <when test="fqmjbh != null and fqmjbh != ''"> and FQMJBH = #{fqmjbh,jdbcType=VARCHAR} </when> <otherwise> and (FQMJBH = '' or FQMJBH IS NULL) </otherwise> </choose> </select> <!--结转 重建科目余额表-删除 --> <delete id="deleteBalanceforTransfer"> delete from cw_gl_balance where PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and PERIOD=#{period,jdbcType=VARCHAR} and USE_STATE='1' and PK_ACCSUBJ in <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> #{item,jdbcType=VARCHAR} </foreach> <choose> <when test="fqmjbh != null and fqmjbh != ''"> and FQMJBH = #{fqmjbh,jdbcType=VARCHAR} </when> <otherwise> and (FQMJBH = '' or FQMJBH IS NULL) </otherwise> </choose> </delete> <!-- 结转重建科目余额表 -插入--> <insert id="insertBalanceforTransfer"> insert into cw_gl_balance (PK_BALANCE, PK_GLORGBOOK, PERIOD, FQMJBH, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, BALANCE,ASSID, USE_STATE,CREATE_USER,CREATE_TIME ) select a.PK_BALANCE, a.PK_GLORGBOOK, a.PERIOD, a.FQMJBH, b.PK_ACCSUBJ, b.SUBJCODE, b.SUBJNAME, a.PK_CURRTYPE, a.DEBITAMOUNT, a.CREDITAMOUNT, a.LOCALDEBITAMOUNT, a.LOCALCREDITAMOUNT, case when b.BALANORIENT ='1' then a.LOCALDEBITAMOUNT- a.LOCALCREDITAMOUNT else a.LOCALCREDITAMOUNT-a.LOCALDEBITAMOUNT end BALANCE, a.ASSID, a.USE_STATE,a.CREATE_USER,a.CREATE_TIME from( select MD5(uuid()) as PK_BALANCE ,a.PK_GLORGBOOK,a.PERIOD,#{fqmjbh,jdbcType=VARCHAR} as FQMJBH,b.PK_ACCSUBJ,SUBJCODE, SUBJNAME,PK_CURRTYPE, IFNULL(sum(b.DEBITAMOUNT),0) as DEBITAMOUNT,IFNULL(sum(b.CREDITAMOUNT),0) as CREDITAMOUNT, IFNULL(sum(b.LOCALDEBITAMOUNT),0) as LOCALDEBITAMOUNT,IFNULL(sum(b.LOCALCREDITAMOUNT),0) as LOCALCREDITAMOUNT, b.ASSID,'1' as USE_STATE,b.CREATE_USER,b.CREATE_TIME from CW_GL_VOUCHER a inner join CW_GL_DETAIL b on a.PK_VOUCHER = b.PK_VOUCHER where a.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and a.PERIOD=#{period,jdbcType=VARCHAR} and a.VOUCHERTYPE='3' and a.USE_STATE='1' and b.USE_STATE='1' and b.PK_ACCSUBJ in <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> #{item,jdbcType=VARCHAR} </foreach> <choose> <when test="fqmjbh != null and fqmjbh != ''"> and a.FQMJBH = #{fqmjbh,jdbcType=VARCHAR} </when> <otherwise> and (a.FQMJBH = '' or a.FQMJBH IS NULL) </otherwise> </choose> group by a.PK_GLORGBOOK,a.PERIOD,b.PK_ACCSUBJ ) a left join cw_bd_accsubj b on a.PK_ACCSUBJ=b.PK_ACCSUBJ </insert> <!-- 查询科目余额表信息(结转) --> <select id="selectByForTransfer" parameterType="java.lang.String" resultMap="BaseResultMap"> select PK_BALANCE, PK_GLORGBOOK, PERIOD, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, IFNULL(sum(DEBITAMOUNT),0) as DEBITAMOUNT, IFNULL(sum(CREDITAMOUNT),0) as CREDITAMOUNT, IFNULL(sum(LOCALDEBITAMOUNT),0) as LOCALDEBITAMOUNT, IFNULL(sum(LOCALCREDITAMOUNT),0) as LOCALCREDITAMOUNT, ASSID, QTY, USE_STATE, CREATE_USER, CREATE_TIME, UPDATE_USER, UPDATE_TIME, REMARK from ( select <include refid="Base_Column_List" /> from cw_gl_balance where PK_GLORGBOOK =#{pkGlorgbook,jdbcType=VARCHAR} and USE_STATE='1' and PK_ACCSUBJ in <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> #{item,jdbcType=VARCHAR} </foreach> <if test="minPeriod != null"> <![CDATA[ and PERIOD >=#{minPeriod,jdbcType=VARCHAR} ]]> </if> <![CDATA[ and PERIOD<=#{period,jdbcType=VARCHAR} ]]> <choose> <when test="fqmjbh != null and fqmjbh != ''"> and FQMJBH = #{fqmjbh,jdbcType=VARCHAR} </when> <otherwise> and (FQMJBH = '' or FQMJBH IS NULL) </otherwise> </choose> ) temp group by temp.PK_ACCSUBJ,temp.ASSID </select> <!--结转时 重建科目余额表 -插入(分期)--><!-- 无用 --> <!-- <insert id="insertBalanceforTransferByFqmjbh" parameterType="java.lang.String"> insert into cw_gl_balance (PK_BALANCE, PK_GLORGBOOK, PERIOD, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, ASSID, USE_STATE,CREATE_USER,CREATE_TIME )select MD5(uuid()) as PK_BALANCE ,a.FQMJBH as PK_GLORGBOOK ,a.PERIOD,b.PK_ACCSUBJ,SUBJCODE, SUBJNAME,PK_CURRTYPE, sum(b.DEBITAMOUNT),sum(b.CREDITAMOUNT),sum(b.LOCALDEBITAMOUNT),sum(b.LOCALCREDITAMOUNT), b.ASSID, '1' as USE_STATE,b.CREATE_USER,b.CREATE_TIME from CW_GL_VOUCHER a inner join CW_GL_DETAIL b on a.PK_VOUCHER = b.PK_VOUCHER where a.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and a.FQMJBH=#{fqmjbh,jdbcType=VARCHAR} and a.PERIOD=#{period,jdbcType=VARCHAR} and a.VOUCHERTYPE='3' and a.USE_STATE='1' and b.PK_ACCSUBJ in (select PK_ACCSUBJ from CW_BD_ACCSUBJ a where a.PK_SUBJSCHEME=#{pkSubjscheme,jdbcType=VARCHAR} and a.PK_ACCSUBJ=#{pkSrcaccsubj,jdbcType=VARCHAR} union select PK_ACCSUBJ from ( select t1.PK_ACCSUBJ,if(find_in_set(PARENTID, CONVERT(@pids USING utf8) COLLATE utf8_unicode_ci) > 0, @pids := concat(@pids, ',', PK_ACCSUBJ), '0') as ischild from ( select PK_ACCSUBJ,PARENTID from CW_BD_ACCSUBJ t where t.PK_SUBJSCHEME=#{pkSubjscheme,jdbcType=VARCHAR} and t.USE_STATE = '1' order by SUBJCODE,PARENTID ) t1, (select @pids := #{pkSrcaccsubj,jdbcType=VARCHAR} ) t2 ) t3 where ischild != '0') group by a.PK_GLORGBOOK,a.PERIOD,b.PK_ACCSUBJ,b.ASSID; </insert> --> <!-- 借贷平衡计算dml 所有者权益类都是贷计算的--> <select id="balanceCount" parameterType="java.lang.String" resultType="java.util.Map"> select ( select IFNULL(sum(LOCALDEBITAMOUNT),0) - IFNULL(sum(LOCALCREDITAMOUNT),0) as zcSum from CW_GL_BALANCE a inner join ( select SUBJCODE ,PK_SUBJTYPE from CW_BD_ACCSUBJ where PK_SUBJSCHEME= (select PK_SUBJSCHEME from CW_BD_GLORGBOOK WHERE PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} ) ) b on a.SUBJCODE=b.SUBJCODE where b.PK_SUBJTYPE='01' and a.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and <![CDATA[ a.PERIOD<=#{period,jdbcType=VARCHAR} ]]> and a.PERIOD like concat( left(#{period,jdbcType=VARCHAR}, 4),'%') and a.USE_STATE='1' )as zcSum, ( select IFNULL(sum(LOCALCREDITAMOUNT),0) - IFNULL(sum(LOCALDEBITAMOUNT),0) as fzSum from CW_GL_BALANCE a inner join ( select SUBJCODE ,PK_SUBJTYPE from CW_BD_ACCSUBJ where PK_SUBJSCHEME= (select PK_SUBJSCHEME from CW_BD_GLORGBOOK WHERE PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} ) ) b on a.SUBJCODE=b.SUBJCODE where b.PK_SUBJTYPE='02' and a.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and <![CDATA[ a.PERIOD<=#{period,jdbcType=VARCHAR} ]]> and a.PERIOD like concat( left(#{period,jdbcType=VARCHAR}, 4),'%') and a.USE_STATE='1' )as fzSum, ( select IFNULL(sum(LOCALCREDITAMOUNT),0) - IFNULL(sum(LOCALDEBITAMOUNT),0) as syzqySum from CW_GL_BALANCE a inner join ( select SUBJCODE ,PK_SUBJTYPE from CW_BD_ACCSUBJ where PK_SUBJSCHEME= (select PK_SUBJSCHEME from CW_BD_GLORGBOOK WHERE PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} ) ) b on a.SUBJCODE=b.SUBJCODE where b.PK_SUBJTYPE='03' and a.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and <![CDATA[ a.PERIOD<=#{period,jdbcType=VARCHAR} ]]> and a.PERIOD like concat( left(#{period,jdbcType=VARCHAR}, 4),'%') and a.USE_STATE='1' )as syzqySum from dual </select> <!--结账时重算辅助余额信息 --> <insert id="insertRecalculatedBalance" parameterType="java.util.Map"> insert into cw_gl_balance ( PK_BALANCE, PK_GLORGBOOK, PERIOD, FQMJBH, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, BALANCE,ASSID, USE_STATE, CREATE_USER, CREATE_TIME ) select a.PK_BALANCE, a.PK_GLORGBOOK, a.PERIOD, a.FQMJBH, b.PK_ACCSUBJ, b.SUBJCODE, b.SUBJNAME, a.PK_CURRTYPE, a.DEBITAMOUNT, a.CREDITAMOUNT, a.LOCALDEBITAMOUNT, a.LOCALCREDITAMOUNT, case when b.BALANORIENT ='1' then a.LOCALDEBITAMOUNT- a.LOCALCREDITAMOUNT else a.LOCALCREDITAMOUNT-a.LOCALDEBITAMOUNT end BALANCE, a.ASSID, a.USE_STATE, a.CREATE_USER, a.CREATE_TIME from (select MD5(uuid()) as PK_BALANCE, #{pkGlorgbook,jdbcType=VARCHAR} as PK_GLORGBOOK,#{period,jdbcType=VARCHAR} as PERIOD, temp.FQMJBH,del.PK_ACCSUBJ,del.SUBJCODE, del.SUBJNAME, del.PK_CURRTYPE, IFNULL(sum(del.DEBITAMOUNT),0) as DEBITAMOUNT,IFNULL(sum(del.CREDITAMOUNT),0) as CREDITAMOUNT, IFNULL(sum(del.LOCALDEBITAMOUNT),0) as LOCALDEBITAMOUNT,IFNULL(sum(del.LOCALCREDITAMOUNT),0)as LOCALCREDITAMOUNT, del.ASSID ,'1' as USE_STATE,#{createUser,jdbcType=VARCHAR} as CREATE_USER,#{createTime,jdbcType=TIMESTAMP} as CREATE_TIME from CW_GL_DETAIL del inner join ( select PK_VOUCHER,FQMJBH from CW_GL_VOUCHER a where a.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and a.PERIOD=#{period,jdbcType=VARCHAR} and a.VOUCHERTYPE='3' and a.USE_STATE='1') temp on del.PK_VOUCHER=temp.PK_VOUCHER and del.USE_STATE='1' group by del.PK_ACCSUBJ,temp.FQMJBH <!--如果按辅助项统计放开这块,del.ASSID --> ) a left join cw_bd_accsubj b on a.PK_ACCSUBJ=b.PK_ACCSUBJ </insert> <!--结账时重算分期辅助余额信息 --> <!-- 已作废 --> <!-- <insert id="insertFqBalance" parameterType="java.util.Map"> insert into cw_gl_balance (PK_BALANCE, PK_GLORGBOOK, PERIOD, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, ASSID, USE_STATE, CREATE_USER, CREATE_TIME ) select MD5(uuid()) as PK_BALANCE, #{fqmjbh,jdbcType=VARCHAR} as PK_GLORGBOOK,#{period,jdbcType=VARCHAR} as PERIOD,del.PK_ACCSUBJ,del.SUBJCODE, del.SUBJNAME, del.PK_CURRTYPE, IFNULL(sum(del.DEBITAMOUNT),0) as DEBITAMOUNT,IFNULL(sum(del.CREDITAMOUNT),0) as CREDITAMOUNT, IFNULL(sum(del.LOCALDEBITAMOUNT),0) as LOCALDEBITAMOUNT,IFNULL(sum(del.LOCALCREDITAMOUNT),0)as LOCALCREDITAMOUNT, del.ASSID ,'1' as USE_STATE,#{createUser,jdbcType=VARCHAR} as CREATE_USER,#{createTime,jdbcType=TIMESTAMP} as CREATE_TIME from CW_GL_DETAIL del inner join ( select PK_VOUCHER from CW_GL_VOUCHER a where a.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and a.PERIOD=#{period,jdbcType=VARCHAR} and a.FQMJBH= #{fqmjbh,jdbcType=VARCHAR} and a.VOUCHERTYPE='3' and a.USE_STATE='1' and a.FQMJBH != '' and a.FQMJBH is not null) temp on del.PK_VOUCHER=temp.PK_VOUCHER and del.USE_STATE='1' group by del.PK_ACCSUBJ,del.ASSID </insert> --> <!-- 计算科目余额(余额控制方向) --> <select id="seachCwGlBalanceSum" resultType="java.lang.String"> select <choose> <when test="balanorient==1"> (sum(LOCALDEBITAMOUNT)-sum(LOCALCREDITAMOUNT))as sum </when> <otherwise> (sum(LOCALCREDITAMOUNT)-sum(LOCALDEBITAMOUNT))as sum </otherwise> </choose> from cw_gl_balance where PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and PK_ACCSUBJ=#{pkAccsubj,jdbcType=VARCHAR} and period like "%"#{year,jdbcType=VARCHAR}"%" <![CDATA[ and period <=#{period,jdbcType=VARCHAR} ]]> group by PK_GLORGBOOK,PK_ACCSUBJ </select> <!-- 查询分期募集编号 (结转)--> <select id="selectFqmjbhForTransfer" resultType="java.lang.String"> select distinct ifnull(FQMJBH,'') as FQMJBH from cw_gl_balance where PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} and PK_ACCSUBJ in <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> #{item,jdbcType=VARCHAR} </foreach> <if test="minPeriod != null"> <![CDATA[ and PERIOD >=#{minPeriod,jdbcType=VARCHAR} ]]> </if> <![CDATA[ and PERIOD<=#{period,jdbcType=VARCHAR} ]]> and USE_STATE='1' </select> <!-- 获取损益平准金比例 --> <select id="selectProportion" parameterType="java.lang.String" resultType="java.math.BigDecimal"> <![CDATA[select ifnull((ysxld+sr-fy)/(ysxld+sr-fy+wsxld) , 0) as res from ( select ( select ifnull(sum(LOCALCREDITAMOUNT)-sum(LOCALDEBITAMOUNT),0) from cw_gl_detail a inner join (select PK_VOUCHER from cw_gl_voucher where PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} ) b on a.PK_VOUCHER=b.PK_VOUCHER where SUBJCODE in ('400201','400301', '410301','410401') and USE_STATE='1' )ysxld, ( select ifnull(sum(LOCALCREDITAMOUNT)-sum(LOCALDEBITAMOUNT),0) from cw_gl_detail a inner join (select PK_VOUCHER from cw_gl_voucher where PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} ) b on a.PK_VOUCHER=b.PK_VOUCHER where left(SUBJCODE,4) in ('6011','6041','6061','6101','6111','6302') and USE_STATE='1' ) sr , ( select ifnull(sum(LOCALDEBITAMOUNT)-sum(LOCALCREDITAMOUNT),0) from cw_gl_detail a inner join (select PK_VOUCHER from cw_gl_voucher where PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} ) b on a.PK_VOUCHER=b.PK_VOUCHER where left(SUBJCODE,4) in ('6404','6406','6407','6408','6409','6605','6403','6701','6901','6402') and USE_STATE='1' )fy , ( select ifnull(sum(LOCALCREDITAMOUNT)-sum(LOCALDEBITAMOUNT),0) from cw_gl_detail a inner join (select PK_VOUCHER from cw_gl_voucher where PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} ) b on a.PK_VOUCHER=b.PK_VOUCHER where SUBJCODE in ('400202','400203','400302' ,'410302','410402' ) and USE_STATE='1' )wsxld from dual ) temp ]]> </select> <!-- 结转-收入费用金额查询 --> <select id="searchBalanceForIncome" resultMap="BaseResultMap1" statementType="STATEMENT"> select SUBJCODE,SUBJNAME,IF('${orientation}'='1','2','1') as balanorient, CASE WHEN '${orientation}'= '1' THEN (ifnull(sum(LOCALCREDITAMOUNT),0)-ifnull(sum(LOCALDEBITAMOUNT),0)) ELSE (ifnull(sum(LOCALDEBITAMOUNT),0)-ifnull(sum(LOCALCREDITAMOUNT),0)) END as balance from cw_gl_balance where PK_GLORGBOOK ='${pkGlorgbook}' and PK_ACCSUBJ in <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> '${item}' </foreach> <![CDATA[and PERIOD<='${period}' ]]>and USE_STATE='1' </select> <!--删除账套下分录 --> <delete id="deleteBypkGlorgbook" parameterType="java.lang.String"> delete from cw_gl_balance where PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} </delete> <!--科目转换是刷新余额表 --> <insert id="insertBalanceKmzh" parameterType="java.lang.String"> insert into cw_gl_balance ( PK_BALANCE, PK_GLORGBOOK, PERIOD, FQMJBH, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, BALANCE,ASSID, USE_STATE, CREATE_USER, CREATE_TIME ) select a.PK_BALANCE, a.PK_GLORGBOOK, a.PERIOD, a.FQMJBH, b.PK_ACCSUBJ, b.SUBJCODE, b.SUBJNAME, a.PK_CURRTYPE, a.DEBITAMOUNT, a.CREDITAMOUNT, a.LOCALDEBITAMOUNT, a.LOCALCREDITAMOUNT, case when b.BALANORIENT ='1' then a.LOCALDEBITAMOUNT- a.LOCALCREDITAMOUNT else a.LOCALCREDITAMOUNT-a.LOCALDEBITAMOUNT end BALANCE, a.ASSID, a.USE_STATE, a.CREATE_USER, a.CREATE_TIME from (select MD5(uuid()) as PK_BALANCE, #{pkGlorgbook,jdbcType=VARCHAR} as PK_GLORGBOOK,temp.PERIOD as PERIOD, temp.FQMJBH,del.PK_ACCSUBJ,del.SUBJCODE, del.SUBJNAME, del.PK_CURRTYPE, IFNULL(sum(del.DEBITAMOUNT),0) as DEBITAMOUNT,IFNULL(sum(del.CREDITAMOUNT),0) as CREDITAMOUNT, IFNULL(sum(del.LOCALDEBITAMOUNT),0) as LOCALDEBITAMOUNT,IFNULL(sum(del.LOCALCREDITAMOUNT),0)as LOCALCREDITAMOUNT, del.ASSID ,'1' as USE_STATE,#{createUser,jdbcType=VARCHAR} as CREATE_USER,now() as CREATE_TIME from CW_GL_DETAIL del inner join ( select PK_VOUCHER,FQMJBH,PERIOD from CW_GL_VOUCHER a where a.PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and a.VOUCHERTYPE='3' and a.USE_STATE='1') temp on del.PK_VOUCHER=temp.PK_VOUCHER and del.USE_STATE='1' group by temp.PERIOD,del.PK_ACCSUBJ,temp.FQMJBH ) a left join cw_bd_accsubj b on a.PK_ACCSUBJ=b.PK_ACCSUBJ </insert> <!--删除某期间余额表信息 --> <delete id="deleteBypkPeriod"> delete from cw_gl_balance where PERIOD in <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> #{item,jdbcType=VARCHAR} </foreach> </delete> <!--新增某期间余额表信息 --> <insert id="insertBypkPeriod" parameterType="java.util.Map"> insert into cw_gl_balance ( PK_BALANCE, PK_GLORGBOOK, PERIOD, FQMJBH, PK_ACCSUBJ, SUBJCODE, SUBJNAME, PK_CURRTYPE, DEBITAMOUNT, CREDITAMOUNT, LOCALDEBITAMOUNT, LOCALCREDITAMOUNT, BALANCE,ASSID, USE_STATE, CREATE_USER, CREATE_TIME ) select a.PK_BALANCE, a.PK_GLORGBOOK, a.PERIOD, a.FQMJBH, b.PK_ACCSUBJ, b.SUBJCODE, b.SUBJNAME, a.PK_CURRTYPE, a.DEBITAMOUNT, a.CREDITAMOUNT, a.LOCALDEBITAMOUNT, a.LOCALCREDITAMOUNT, case when b.BALANORIENT ='1' then a.LOCALDEBITAMOUNT- a.LOCALCREDITAMOUNT else a.LOCALCREDITAMOUNT-a.LOCALDEBITAMOUNT end BALANCE, a.ASSID, a.USE_STATE, a.CREATE_USER, a.CREATE_TIME from (select MD5(uuid()) as PK_BALANCE, temp.PK_GLORGBOOK,temp.PERIOD as PERIOD, temp.FQMJBH,del.PK_ACCSUBJ,del.SUBJCODE, del.SUBJNAME, del.PK_CURRTYPE, IFNULL(sum(del.DEBITAMOUNT),0) as DEBITAMOUNT,IFNULL(sum(del.CREDITAMOUNT),0) as CREDITAMOUNT, IFNULL(sum(del.LOCALDEBITAMOUNT),0) as LOCALDEBITAMOUNT,IFNULL(sum(del.LOCALCREDITAMOUNT),0)as LOCALCREDITAMOUNT, del.ASSID ,'1' as USE_STATE,#{createUser,jdbcType=VARCHAR} as CREATE_USER,now() as CREATE_TIME from CW_GL_DETAIL del inner join ( select PK_VOUCHER,PK_GLORGBOOK,FQMJBH,PERIOD from CW_GL_VOUCHER a where a.VOUCHERTYPE='3' and a.USE_STATE='1' and PERIOD in <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> #{item,jdbcType=VARCHAR} </foreach> ) temp on del.PK_VOUCHER=temp.PK_VOUCHER and del.USE_STATE='1' group by temp.PERIOD,temp.PK_GLORGBOOK,del.PK_ACCSUBJ,temp.FQMJBH ) a left join cw_bd_accsubj b on a.PK_ACCSUBJ=b.PK_ACCSUBJ </insert> <!-- 科目转换更新 --> <update id="updateBalanceforSubjcode" parameterType="java.lang.String"> update cw_gl_balance <set> <if test="pkAccsubj != null"> PK_ACCSUBJ = #{pkAccsubj,jdbcType=VARCHAR}, </if> <if test="subjcodeN != null"> SUBJCODE = #{subjcodeN,jdbcType=VARCHAR}, </if> <if test="subjname != null"> SUBJNAME = #{subjname,jdbcType=VARCHAR}, </if> <if test="userId != null"> UPDATE_USER = #{userId,jdbcType=VARCHAR}, </if> <if test="userId != null"> UPDATE_TIME = now() </if> </set> where PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} and SUBJCODE = #{subjcodeO,jdbcType=VARCHAR} and USE_STATE='1' </update> </mapper>