update SA_DELIVER sd set sd.del_flag = 1, sd.PK_MODIFIED = #{userId}, sd.MODIFIED_TIME = sysdate where sd.del_flag = 0 and sd.pk_id = #{pkDeliver} and (select nvl(count(sdi.pk_deliver), 0) from SA_DELIVER_ITEMS sdi where sdi.del_flag = 0 and sdi.pk_country = #{pkCountry} and sdi.pk_deliver = #{pkDeliver}) = 0 MERGE INTO SA_DELIVER sd using ( select #{item.pkId} PK_ID, #{item.logisticsCode} LOGISTICS_CODE, #{item.logisticsCompany} LOGISTICS_COMPANY, #{item.deliverStatus} DELIVER_STATUS from dual ) tmp ON (tmp.PK_ID = sd.pk_id and sd.PK_COUNTRY = #{pkCountry}) WHEN MATCHED THEN update set sd.logistics_code = tmp.LOGISTICS_CODE, sd.logistics_company = tmp.LOGISTICS_COMPANY, sd.DELIVER_STATUS = tmp.DELIVER_STATUS, sd.DELIVER_TIME = sysdate, sd.PK_MODIFIED = #{userId}, sd.MODIFIED_TIME = sysdate MERGE INTO SA_DELIVER USING ( select #{item.pkId} pkId, #{item.deliverCode} deliverCode, #{item.recName, jdbcType=VARCHAR} recName, #{item.recPhone, jdbcType=VARCHAR} recPhone, #{item.recProvince,jdbcType=NUMERIC} recProvince, #{item.recCity,jdbcType=NUMERIC} recCity, #{item.recCounty,jdbcType=NUMERIC} recCounty, #{item.recAddress, jdbcType=VARCHAR} recAddress, #{item.tranType,jdbcType=NUMERIC} tranType, #{item.pkCountry} pkCountry, #{item.pkCreator} pkCreator, #{item.creationTime} creationTime, #{item.pkModified} pkModified, #{item.modifiedTime} modifiedTime, #{item.dayBatch} dayBatch, #{item.batchNumber} batchNumber from dual ) tmp ON (0 = 1) WHEN NOT MATCHED THEN insert (PK_ID, DELIVER_CODE, REC_NAME, REC_PHONE, REC_PROVINCE, REC_CITY, REC_COUNTY, REC_ADDRESS, TRAN_TYPE, PK_COUNTRY, PK_CREATOR, CREATION_TIME, PK_MODIFIED, MODIFIED_TIME, DAY_BATCH, BATCH_NUMBER) values ( tmp.pkId, tmp.deliverCode, tmp.recName, tmp.recPhone, tmp.recProvince, tmp.recCity, tmp.recCounty, tmp.recAddress, tmp.tranType, tmp.pkCountry, tmp.pkCreator, tmp.creationTime, tmp.pkModified, tmp.modifiedTime, tmp.dayBatch, tmp.batchNumber) update sa_deliver sd set sd.print_status = #{printStatus}, sd.print_time = sysdate, sd.pk_modified = #{userId}, sd.modified_time = sysdate where sd.pk_country = #{pkCountry} and (sd.pk_id in ) or sd.pk_id IN ( , #{item} )