123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?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="cn.com.victorysoft.business.calc.dao.FlushDataSyncDao">
- <insert id="syncFlushRecord">
- insert into con_flush_record
- (wellname, record_date, unitcode, start_time, range_time, in_water, out_water, displacement, reason, type_id, created_on)
- select jh, rq, dwdm, xjrq, xjys, jksl, cksl, jkpl, xjyy, xjfs, created_on
- from (select t.*, row_number() over(partition by jh, rq order by xjrq desc) rn
- from (select jh, trunc(xjrq) rq, dwdm, xjrq, xjys, jksl, cksl, jkpl, xjyy, xjfs, sysdate created_on
- from YS_DGC12 t
- where xjrq >= #{startDate} and xjrq < #{endDate} + 1
- and not exists (select 1 from CON_FLUSH_RECORD where wellname = t.jh and record_date = trunc(t.xjrq))
- order by jh, xjrq desc) t) t where rn = 1
- </insert>
- <insert id="insertFlushDaily">
- insert into CON_FLUSH_DAILY
- (WELLNAME,
- RECORD_DATE,
- UNITCODE,
- RANGE_TIME,
- DISPLACEMENT,
- REASON,
- TYPE_ID,
- EFFECTIVE,
- CREATED_ON,
- MODIFIED_ON,
- before_date,
- BEFORE_PT,
- BEFORE_PLAN_WATER,
- BEFORE_WATER,
- after_date,
- AFTER_PT,
- AFTER_PLAN_WATER,
- AFTER_WATER,
- AFTER_WATER_RATE)
- SELECT WELLNAME,
- RECORD_DATE,
- UNITCODE,
- RANGE_TIME,
- DISPLACEMENT,
- REASON,
- TYPE_ID,
- EFFECTIVE,
- CREATED_ON,
- MODIFIED_ON,
- before_date,
- A.YY BEFORE_PT,
- A.RPZSL BEFORE_PLAN_WATER,
- A.RZSL BEFORE_WATER,
- after_date,
- B.YY AFTER_PT,
- B.RPZSL AFTER_PLAN_WATER,
- B.RZSL AFTER_WATER,
- DECODE(B.RPZSL, 0, NULL, ROUND(B.RZSL / B.RPZSL, 2)) AFTER_WATER_RATE
- from
- (SELECT t.*,
- (select max(rq) from YS_DBA02 where jh = t.wellname and rq < t.record_date and scsj = 24) before_date,
- (select min(rq) from YS_DBA02 where jh = t.wellname and rq > t.record_date and scsj = 24) after_date
- FROM CON_FLUSH_RECORD T
- where not exists (select 1 from CON_FLUSH_DAILY where wellname = t.wellname and record_date = t.record_date)
- ) t
- LEFT JOIN YS_DBA02 A ON T.WELLNAME = A.JH AND T.before_date = A.RQ
- LEFT JOIN YS_DBA02 B ON T.WELLNAME = B.JH AND T.after_date = B.RQ
- </insert>
- <update id="updateFlushDaily">
- merge into CON_FLUSH_DAILY a
- using (
- select WELLNAME,
- RECORD_DATE,
- after_date2,
- B.YY AFTER_PT,
- B.RPZSL AFTER_PLAN_WATER,
- B.RZSL AFTER_WATER,
- DECODE(B.RPZSL, 0, NULL, ROUND(B.RZSL / B.RPZSL, 2)) AFTER_WATER_RATE
- from
- (SELECT t.*,
- (select min(rq) from YS_DBA02 where jh = t.wellname and rq > t.record_date and scsj = 24) after_date2
- FROM CON_FLUSH_DAILY T
- where after_date is null
- ) t
- JOIN YS_DBA02 B ON T.WELLNAME = B.JH AND T.after_date2 = B.RQ
- ) t
- on (a.WELLNAME = t.WELLNAME and a.RECORD_DATE = t.RECORD_DATE)
- when matched then
- update set
- a.after_date = t.after_date2,
- a.AFTER_PT = t.AFTER_PT,
- a.AFTER_PLAN_WATER = t.AFTER_PLAN_WATER,
- a.AFTER_WATER = t.AFTER_WATER,
- a.AFTER_WATER_RATE = t.AFTER_WATER_RATE
- </update>
- </mapper>
|