and ${criterion.condition} and ${criterion.condition} #{criterion.value} and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} and ${criterion.condition} #{listItem} and ${criterion.condition} and ${criterion.condition} #{criterion.value} and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} and ${criterion.condition} #{listItem} 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 delete from cw_gl_balance where PK_BALANCE = #{pkBalance,jdbcType=VARCHAR} delete from cw_gl_balance 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 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, #{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}, update cw_gl_balance 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}, 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} update cw_gl_balance 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 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} 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} 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' and a.FQMJBH = #{fqmjbh,jdbcType=VARCHAR} and (a.FQMJBH = '' or a.FQMJBH IS NULL) ) and del.PK_ACCSUBJ=#{pkAccsubj,jdbcType=VARCHAR} and del.USE_STATE='1' )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} and cgb.FQMJBH = #{fqmjbh,jdbcType=VARCHAR} and (cgb.FQMJBH = '' or cgb.FQMJBH IS NULL) 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 delete from cw_gl_balance where PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} and PERIOD = #{period,jdbcType=VARCHAR} delete from cw_gl_balance where PK_GLORGBOOK=#{pkGlorgbook,jdbcType=VARCHAR} and PERIOD=#{period,jdbcType=VARCHAR} and USE_STATE='1' and PK_ACCSUBJ in #{item,jdbcType=VARCHAR} and FQMJBH = #{fqmjbh,jdbcType=VARCHAR} and (FQMJBH = '' or FQMJBH IS NULL) 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 #{item,jdbcType=VARCHAR} and a.FQMJBH = #{fqmjbh,jdbcType=VARCHAR} and (a.FQMJBH = '' or a.FQMJBH IS NULL) 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 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 ) a left join cw_bd_accsubj b on a.PK_ACCSUBJ=b.PK_ACCSUBJ delete from cw_gl_balance where PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} 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 delete from cw_gl_balance where PERIOD in #{item,jdbcType=VARCHAR} 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 #{item,jdbcType=VARCHAR} ) 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 update cw_gl_balance PK_ACCSUBJ = #{pkAccsubj,jdbcType=VARCHAR}, SUBJCODE = #{subjcodeN,jdbcType=VARCHAR}, SUBJNAME = #{subjname,jdbcType=VARCHAR}, UPDATE_USER = #{userId,jdbcType=VARCHAR}, UPDATE_TIME = now() where PK_GLORGBOOK = #{pkGlorgbook,jdbcType=VARCHAR} and SUBJCODE = #{subjcodeO,jdbcType=VARCHAR} and USE_STATE='1'