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'