ReceivableMapper.xml 71 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.jzg.organization.mapper.ReceivableMapper">
  4. <resultMap id="InsPlyIncomeResultMap" type="com.jzg.commons.entity.finance.po.InsPlyIncome">
  5. <result column="order_no" property="orderNo"/>
  6. <result column="dept_id" property="deptId"/>
  7. <result column="dept_name" property="deptName"/>
  8. <!-- 其他字段可不写,会自动映射 -->
  9. </resultMap>
  10. <select id="getAuditedOrder" resultMap="InsPlyIncomeResultMap">
  11. SELECT
  12. iop.order_no,
  13. ioci.license_no,
  14. io.company_id,
  15. iop.jq_policy_no,
  16. iop.sy_policy_no,
  17. iop.jy_policy_no,
  18. ioc.jq_premium,
  19. ioc.sy_premium,
  20. ioc.jy_premium,
  21. ioc.tax_premium,
  22. sd.id AS dept_id,
  23. sd.NAME AS dept_name,
  24. ifo.jq_commission_ratio as jq_supervise_costs_proportion,
  25. ifo.sy_commission_ratio as sy_supervise_costs_proportion,
  26. ifo.jy_commission_ratio as jy_supervise_costs_proportion,
  27. ifo.jq_commission_premium as jq_supervise_costs_premiums,
  28. ifo.sy_commission_premium as sy_supervise_costs_premiums,
  29. ifo.jy_commission_premium as jy_supervise_costs_premiums,
  30. ifo.jq_follow_ratio as jq_other_costs_proportion,
  31. ifo.sy_follow_ratio as sy_other_costs_proportion,
  32. ifo.jy_follow_ratio as jy_other_costs_proportion,
  33. ifo.jq_follow_premium as jq_other_costs_premiums,
  34. ifo.sy_follow_premium as sy_other_costs_premiums,
  35. ifo.jy_follow_premium as jy_other_costs_premiums,
  36. ifo.jq_receivable_premium,
  37. ifo.sy_receivable_premium,
  38. ifo.jy_receivable_premium,
  39. eic.name_simple,
  40. pa.id AS agreement_id,
  41. pa.agreement_name,
  42. pa.agreement_type,
  43. io.product_id,
  44. io.product_name,
  45. io.pay_time,
  46. io.signing_time,
  47. ifa.audit_status
  48. FROM
  49. ins_orders io
  50. LEFT JOIN ins_orders_policy iop ON io.id = iop.order_no
  51. LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no
  52. LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no
  53. LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no
  54. LEFT JOIN esm_ins_company eic ON io.company_id = eic.id
  55. LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id
  56. LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id
  57. LEFT JOIN sys_dept sd ON suji.dept_id = sd.id
  58. LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id
  59. LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id
  60. WHERE
  61. io.id = #{orderNo}
  62. AND
  63. io.order_status = #{orderStatus}
  64. <if test="auditStatus != null and auditStatus != ''">
  65. AND
  66. ifa.audit_status = #{auditStatus}
  67. </if>
  68. <if test="agreementType != null and agreementType != ''">
  69. AND
  70. pa.agreement_type = #{agreementType}
  71. </if>
  72. </select>
  73. <select id="getUnauditedOrder" resultMap="InsPlyIncomeResultMap">
  74. SELECT
  75. iop.order_no,
  76. ioci.license_no,
  77. io.company_id,
  78. iop.jq_policy_no,
  79. iop.sy_policy_no,
  80. iop.jy_policy_no,
  81. ioc.jq_premium,
  82. ioc.sy_premium,
  83. ioc.jy_premium,
  84. ioc.tax_premium,
  85. sd.id AS dept_id,
  86. sd.NAME AS dept_name,
  87. ifo.jq_commission_ratio as jq_supervise_costs_proportion,
  88. ifo.sy_commission_ratio as sy_supervise_costs_proportion,
  89. ifo.jy_commission_ratio as jy_supervise_costs_proportion,
  90. ifo.jq_commission_premium as jq_supervise_costs_premiums,
  91. ifo.sy_commission_premium as sy_supervise_costs_premiums,
  92. ifo.jy_commission_premium as jy_supervise_costs_premiums,
  93. ifo.jq_follow_ratio as jq_other_costs_proportion,
  94. ifo.sy_follow_ratio as sy_other_costs_proportion,
  95. ifo.jy_follow_ratio as jy_other_costs_proportion,
  96. ifo.jq_follow_premium as jq_other_costs_premiums,
  97. ifo.sy_follow_premium as sy_other_costs_premiums,
  98. ifo.jy_follow_premium as jy_other_costs_premiums,
  99. ifo.jq_receivable_premium,
  100. ifo.sy_receivable_premium,
  101. ifo.jy_receivable_premium,
  102. eic.name_simple,
  103. pa.id AS agreement_id,
  104. pa.agreement_name,
  105. pa.agreement_type,
  106. io.product_id,
  107. io.product_name,
  108. io.pay_time,
  109. io.signing_time,
  110. ifa.audit_status
  111. FROM
  112. ins_orders io
  113. LEFT JOIN ins_orders_policy iop ON io.id = iop.order_no
  114. LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no
  115. LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no
  116. LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no
  117. LEFT JOIN esm_ins_company eic ON io.company_id = eic.id
  118. LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id
  119. LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id
  120. LEFT JOIN sys_dept sd ON suji.dept_id = sd.id
  121. LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id
  122. LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id
  123. WHERE
  124. io.id = #{orderNo}
  125. AND
  126. io.order_status = #{orderStatus}
  127. </select>
  128. <select id="getUnauditedOrderList" resultMap="InsPlyIncomeResultMap">
  129. SELECT
  130. iop.order_no,
  131. ioci.license_no,
  132. io.company_id,
  133. iop.jq_policy_no,
  134. iop.sy_policy_no,
  135. iop.jy_policy_no,
  136. ioc.jq_premium,
  137. ioc.sy_premium,
  138. ioc.jy_premium,
  139. ioc.tax_premium,
  140. sd.id AS dept_id,
  141. sd.NAME AS dept_name,
  142. ifo.jq_commission_ratio as jq_supervise_costs_proportion,
  143. ifo.sy_commission_ratio as sy_supervise_costs_proportion,
  144. ifo.jy_commission_ratio as jy_supervise_costs_proportion,
  145. ifo.jq_commission_premium as jq_supervise_costs_premiums,
  146. ifo.sy_commission_premium as sy_supervise_costs_premiums,
  147. ifo.jy_commission_premium as jy_supervise_costs_premiums,
  148. ifo.jq_follow_ratio as jq_other_costs_proportion,
  149. ifo.sy_follow_ratio as sy_other_costs_proportion,
  150. ifo.jy_follow_ratio as jy_other_costs_proportion,
  151. ifo.jq_follow_premium as jq_other_costs_premiums,
  152. ifo.sy_follow_premium as sy_other_costs_premiums,
  153. ifo.jy_follow_premium as jy_other_costs_premiums,
  154. ifo.jq_receivable_premium,
  155. ifo.sy_receivable_premium,
  156. ifo.jy_receivable_premium,
  157. eic.name_simple,
  158. pa.id AS agreement_id,
  159. pa.agreement_name,
  160. pa.agreement_type,
  161. io.product_id,
  162. io.product_name,
  163. io.pay_time,
  164. io.signing_time,
  165. ifa.audit_status
  166. FROM
  167. ins_orders io
  168. LEFT JOIN ins_orders_policy iop ON io.id = iop.order_no
  169. LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no
  170. LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no
  171. LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no
  172. LEFT JOIN esm_ins_company eic ON io.company_id = eic.id
  173. LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id
  174. LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id
  175. LEFT JOIN sys_dept sd ON suji.dept_id = sd.id
  176. LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id
  177. LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id
  178. WHERE
  179. io.id in
  180. <foreach collection="orderNo" item="id" open="(" separator="," close=")">
  181. #{id}
  182. </foreach>
  183. AND
  184. io.order_status = #{orderStatus}
  185. <if test="auditStatus != null and auditStatus != ''">
  186. AND
  187. ifa.audit_status = #{auditStatus}
  188. </if>
  189. </select>
  190. <!-- modify by lipf, 2026年5月18日14:56:29 和业务沟通后,业务王文琦,想要将开过票的订单也显示出来 -->
  191. <sql id="query">
  192. SELECT
  193. io.real_quote_user_id,
  194. io.real_quote_user_id as real_quote_user_name,
  195. io.signing_time,
  196. date(io.signing_time ) as sign_date,
  197. year(io.signing_time) as sign_year,
  198. ipi.id,
  199. io.id as 'orderNo',
  200. io.company_name,
  201. ipi.dept_name,
  202. ipi.agreement_name,
  203. ipi.agreement_id,
  204. io.product_name,
  205. io.entry_status,
  206. CASE io.entry_status
  207. WHEN 1 THEN '车险出单'
  208. WHEN 2 THEN '代客录单'
  209. WHEN 3 THEN '补录订单'
  210. ELSE ''
  211. END AS order_type,
  212. ipi.license_no,
  213. (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount, -- 总应收金额
  214. (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as superviseCostsPremiums, -- 总应收手续费
  215. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as otherCostsPremiums, -- 总应收跟单费
  216. io.product_name,
  217. iocui.name AS insuredPerson,
  218. ipi.jq_premium,
  219. ipi.sy_premium,
  220. ipi.jy_premium,
  221. ipi.tax_premium,
  222. ipi.jq_supervise_costs_proportion,
  223. ipi.sy_supervise_costs_proportion,
  224. ipi.jy_supervise_costs_proportion,
  225. ipi.jq_other_costs_proportion,
  226. ipi.sy_other_costs_proportion,
  227. ipi.jy_other_costs_proportion,
  228. ipi.business_source,
  229. ipi.settlement_status,
  230. ipi.add_type,
  231. ior1.start_date as jq_start_date,
  232. ior2.start_date as sy_start_date,
  233. io.product_name AS productName,
  234. iop.jq_policy_no, -- 交强保单号
  235. iop.sy_policy_no, -- 商业保单号
  236. iop.jy_policy_no, -- 非车险保单号
  237. io.company_name,
  238. io.company_id,
  239. io.create_time,
  240. io.docking_person
  241. FROM
  242. ins_ply_income ipi
  243. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  244. LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
  245. LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
  246. LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
  247. LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no
  248. WHERE 1=1 and ipi.settlement_status = '0'
  249. </sql>
  250. <!--根据保司id和订单号进行过滤 2026年5月12日15:06:40 lipf -->
  251. <select id="queryIncomeDatasByOrderIds" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
  252. <include refid="query"/>
  253. <if test="companyId != null and companyId != ''">
  254. and io.company_id = #{companyId}
  255. </if>
  256. <if test="orderNos != null and orderNos.size() > 0">
  257. and io.id in
  258. <foreach collection="orderNos" item="id" open="(" separator="," close=")">
  259. #{id}
  260. </foreach>
  261. </if>
  262. ORDER BY ipi.create_time DESC
  263. </select>
  264. <select id="getReceivablePage" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
  265. <include refid="query"/>
  266. <if test="receivableQueryVo.invoiceId != null and receivableQueryVo.invoiceId != ''" >
  267. and ipi.id in (
  268. select ipiil.income_id from ins_ply_income_invoice_link ipiil where ipiil.invoice_id = #{receivableQueryVo.invoiceId}
  269. )
  270. </if>
  271. <if test="receivableQueryVo.typeAttr != null and receivableQueryVo.typeAttr != ''">
  272. and io.real_quote_user_id in (select su.username from sys_user_jzg_info_salesman sujis left join sys_user_jzg_info suji on sujis.sys_user_jzg_info_id = suji.id
  273. left join sys_user su on su.id = suji.user_id
  274. where sujis.type_attr =#{receivableQueryVo.typeAttr})
  275. </if>
  276. <if test = "receivableQueryVo.agreementType != null and receivableQueryVo.agreementType != ''">
  277. AND ipi.agreement_type = #{receivableQueryVo.agreementType}
  278. </if>
  279. <if test = "receivableQueryVo.ids != null and receivableQueryVo.ids.size > 0">
  280. AND ipi.id in
  281. <foreach collection="receivableQueryVo.ids" item="id" open="(" separator="," close=")">
  282. #{id}
  283. </foreach>
  284. </if>
  285. <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
  286. AND ipi.supervise_settlement = 0
  287. </if>
  288. <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
  289. AND ipi.other_settlement = 0
  290. </if>
  291. <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
  292. AND ipi.jy_premium != 0
  293. AND ipi.jy_supervise_settlement = 0
  294. AND ipi.jy_other_settlement = 0
  295. </if>
  296. <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
  297. AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
  298. </if>
  299. <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
  300. AND ipi.company_id = #{receivableQueryVo.companyId}
  301. </if>
  302. <if test="receivableQueryVo.businessSource != null and receivableQueryVo.businessSource != ''">
  303. AND ipi.business_source = #{receivableQueryVo.businessSource}
  304. </if>
  305. <if test="receivableQueryVo.settlementStatus != null and receivableQueryVo.settlementStatus != ''">
  306. AND ipi.settlement_status = #{receivableQueryVo.settlementStatus}
  307. </if>
  308. <if test="receivableQueryVo.addType != null and receivableQueryVo.addType != ''">
  309. AND ipi.add_type = #{receivableQueryVo.addType}
  310. </if>
  311. <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
  312. AND ipi.order_no = #{receivableQueryVo.orderNo}
  313. </if>
  314. <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
  315. AND ipi.agreement_id = #{receivableQueryVo.agreementId}
  316. </if>
  317. <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
  318. AND ipi.dept_id = #{receivableQueryVo.deptId}
  319. </if>
  320. <if test="receivableQueryVo.productId!= null and receivableQueryVo.productId!= ''">
  321. AND ipi.product_id = #{receivableQueryVo.productId}
  322. </if>
  323. <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
  324. AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
  325. </if>
  326. <if test="receivableQueryVo.insuredName != null and receivableQueryVo.insuredName != ''">
  327. AND iocui.name = #{receivableQueryVo.insuredName}
  328. </if>
  329. <if test="receivableQueryVo.orderType != null and receivableQueryVo.orderType != ''">
  330. AND io.entry_status = #{receivableQueryVo.orderType}
  331. </if>
  332. <if test="receivableQueryVo.productName != null and receivableQueryVo.productName != ''">
  333. AND io.product_name = #{receivableQueryVo.productName}
  334. </if>
  335. <if test="receivableQueryVo.jqPolicyNo != null and receivableQueryVo.jqPolicyNo != ''">
  336. AND iop.jq_policy_no = #{receivableQueryVo.jqPolicyNo}
  337. </if>
  338. <if test="receivableQueryVo.syPolicyNo != null and receivableQueryVo.syPolicyNo != ''">
  339. AND iop.sy_policy_no = #{receivableQueryVo.syPolicyNo}
  340. </if>
  341. <if test="receivableQueryVo.jyPolicyNo != null and receivableQueryVo.jyPolicyNo != ''">
  342. AND iop.jy_policy_no = #{receivableQueryVo.jyPolicyNo}
  343. </if>
  344. <if test="receivableQueryVo.dockingPerson != null and receivableQueryVo.dockingPerson != ''">
  345. AND io.docking_person = #{receivableQueryVo.dockingPerson}
  346. </if>
  347. <if test="receivableQueryVo.jqStartDate != null and receivableQueryVo.jqStartDate != ''">
  348. AND ior1.start_date between #{receivableQueryVo.jqStartDate} and #{receivableQueryVo.jqEndDate}
  349. </if>
  350. <if test="receivableQueryVo.syStartDate != null and receivableQueryVo.syStartDate != ''">
  351. AND ior2.start_date between #{receivableQueryVo.syStartDate} and #{receivableQueryVo.syStartDate}
  352. </if>
  353. ORDER BY ipi.create_time DESC
  354. </select>
  355. <select id="getReceivableList" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
  356. SELECT
  357. *,
  358. (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount, -- 总应收金额
  359. (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as superviseCostsPremiums, -- 总应收手续费
  360. iocui.name AS insuredPerson,
  361. ior1.start_date as jqStartDate,
  362. ior2.start_date as syStartDate,
  363. io.product_name AS productName,
  364. iop.jq_policy_no,
  365. iop.sy_policy_no,
  366. iop.jy_policy_no
  367. FROM
  368. ins_ply_income ipi
  369. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  370. LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
  371. LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
  372. LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
  373. LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no
  374. WHERE
  375. 1=1
  376. AND NOT EXISTS ( SELECT 1 FROM ins_ply_income_invoice_link ipil WHERE ipil.income_id = ipi.id )
  377. <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
  378. AND ipi.supervise_settlement = 0
  379. </if>
  380. <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
  381. AND ipi.other_settlement = 1
  382. </if>
  383. <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
  384. AND ipi.jy_premium != 0
  385. </if>
  386. <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
  387. AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
  388. </if>
  389. <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
  390. AND ipi.company_id = #{receivableQueryVo.companyId}
  391. </if>
  392. <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
  393. AND ipi.order_no = #{receivableQueryVo.orderNo}
  394. </if>
  395. <if test="receivableQueryVo.ids != null and receivableQueryVo.ids != ''">
  396. AND ipi.id IN
  397. <foreach collection="receivableQueryVo.ids" item="id" open="(" separator="," close=")">
  398. #{id}
  399. </foreach>
  400. </if>
  401. <if test="receivableQueryVo.orderNos != null and receivableQueryVo.orderNos != ''">
  402. AND ipi.order_no IN
  403. <foreach collection="receivableQueryVo.orderNos" item="orderNo" open="(" separator="," close=")">
  404. #{orderNo}
  405. </foreach>
  406. </if>
  407. <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
  408. AND ipi.agreement_id = #{receivableQueryVo.agreementId}
  409. </if>
  410. <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
  411. AND ipi.dept_id = #{receivableQueryVo.deptId}
  412. </if>
  413. <if test="receivableQueryVo.productId!= null and receivableQueryVo.productId!= ''">
  414. AND ipi.product_id = #{receivableQueryVo.productId}
  415. </if>
  416. <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
  417. AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
  418. </if>
  419. <if test="receivableQueryVo.agreementType != null and receivableQueryVo.agreementType != ''">
  420. AND ipi.agreement_type = #{receivableQueryVo.agreementType}
  421. </if>
  422. ORDER BY ipi.create_time DESC
  423. </select>
  424. <select id="getSuperviseJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseJyExcelDto">
  425. SELECT
  426. ipi.signing_time as signingTime,
  427. ipi.order_no as orderNo,
  428. ipi.company_name as companyName,
  429. ipi.dept_name as deptName,
  430. ipi.agreement_name as agreementName,
  431. io.entry_status as entryStatus,
  432. ipi.license_no as licenseNo,
  433. (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount,
  434. io.product_name as productName,
  435. iocui.name AS insuredPerson,
  436. ipi.jy_premium as jqPremium,
  437. ipi.jy_supervise_costs_proportion as jqSuperviseCostsProportion,
  438. ipi.jy_policy_no as jyPolicyNo,
  439. ior1.start_date as jqStartDate,
  440. ior2.start_date as syStartDate,
  441. ipi.create_time as createTime,
  442. ipi.contact_person as contactPerson
  443. FROM
  444. ins_ply_income ipi
  445. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  446. LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
  447. LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
  448. LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
  449. WHERE
  450. 1=1
  451. AND NOT EXISTS ( SELECT 1 FROM ins_ply_income_invoice_link ipil WHERE ipil.income_id = ipi.id )
  452. <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
  453. AND ipi.supervise_settlement = 0
  454. </if>
  455. <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
  456. AND ipi.other_settlement = 1
  457. </if>
  458. <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
  459. AND ipi.jy_premium != 0
  460. </if>
  461. <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
  462. AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
  463. </if>
  464. <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
  465. AND ipi.company_id = #{receivableQueryVo.companyId}
  466. </if>
  467. <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
  468. AND ipi.order_no = #{receivableQueryVo.orderNo}
  469. </if>
  470. <if test="receivableQueryVo.orderNos != null and receivableQueryVo.orderNos != ''">
  471. AND ipi.order_no IN
  472. <foreach collection="receivableQueryVo.orderNos" item="orderNo" open="(" separator="," close=")">
  473. #{orderNo}
  474. </foreach>
  475. </if>
  476. <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
  477. AND ipi.agreement_id = #{receivableQueryVo.agreementId}
  478. </if>
  479. <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
  480. AND ipi.dept_id = #{receivableQueryVo.deptId}
  481. </if>
  482. <if test="receivableQueryVo.productId!= null and receivableQueryVo.productId!= ''">
  483. AND ipi.product_id = #{receivableQueryVo.productId}
  484. </if>
  485. <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
  486. AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
  487. </if>
  488. <if test="receivableQueryVo.agreementType != null and receivableQueryVo.agreementType != ''">
  489. AND ipi.agreement_type = #{receivableQueryVo.agreementType}
  490. </if>
  491. ORDER BY ipi.create_time DESC
  492. </select>
  493. <select id="superviseSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementExcelDto">
  494. select
  495. ipiis.id as settlementId,
  496. ipiis.invoice_id as invoiceId,
  497. io.company_id,
  498. io.company_name,
  499. ipii.invoice_type,
  500. ipii.invoice_party,
  501. ipii.tax_point,
  502. ipiis.actual_received_amount,
  503. ipiis.receive_payment_date,
  504. ipiis.create_by ,
  505. ipiis.create_time
  506. FROM
  507. ins_ply_income_invoice_settlement ipiis
  508. LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id
  509. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  510. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  511. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  512. left join ptl_agreement agree on io.agreement_id = agree.id
  513. WHERE
  514. 1=1
  515. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  516. AND ipiis.id IN
  517. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  518. #{settlementId}
  519. </foreach>
  520. </if>
  521. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  522. AND ipii.invoice_type IN
  523. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  524. #{invoiceType}
  525. </foreach>
  526. </if>
  527. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  528. and io.company_id = #{settlementQueryVo.companyId}
  529. </if>
  530. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  531. and ipii.invoice_party = #{settlementQueryVo.invoiceParty}
  532. </if>
  533. <if test="settlementQueryVo.invoiceRiskType != null and settlementQueryVo.invoiceRiskType != ''">
  534. and ipii.invoice_risk_type = #{settlementQueryVo.invoiceRiskType}
  535. </if>
  536. <if test="settlementQueryVo.status != null and settlementQueryVo.status != ''">
  537. and ipii.status = #{settlementQueryVo.status}
  538. </if>
  539. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  540. and ipiis.create_by = #{settlementQueryVo.settlementPerson}
  541. </if>
  542. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  543. AND (agree.agreement_type = #{settlementQueryVo.agreementType} or agree.agreement_type is null)
  544. </if>
  545. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  546. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  547. </if>
  548. <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
  549. AND ipiis.id = #{settlementQueryVo.settlementId}
  550. </if>
  551. <if test="settlementQueryVo.settlementDateStart != null and settlementQueryVo.settlementDateStart != ''">
  552. and ipiis.create_time >= date(#{settlementQueryVo.settlementDateStart})
  553. </if>
  554. <if test="settlementQueryVo.settlementDateEndStr != null and settlementQueryVo.settlementDateEndStr != ''">
  555. and ipiis.create_time &lt;= date(#{settlementQueryVo.settlementDateEndStr})
  556. </if>
  557. <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
  558. AND ipiis.id = #{settlementQueryVo.settlementId}
  559. </if>
  560. order by ipiis.create_time desc
  561. </select>
  562. <!-- <select id="getSuperviseSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementExcelDto">-->
  563. <!-- select-->
  564. <!-- ipiis.id as settlementId,-->
  565. <!-- ipiis.invoice_id as invoiceId,-->
  566. <!-- ipi.company_name as companyName,-->
  567. <!-- ipii.invoice_type as invoiceType,-->
  568. <!-- ipii.invoice_party as invoiceParty,-->
  569. <!-- ipii.tax_point as taxPoint,-->
  570. <!-- ipiis.actual_received_amount as actualReceivedAmount,-->
  571. <!-- ipiis.receive_payment_date as receivePaymentDate,-->
  572. <!-- ipiis.create_by as createBy,-->
  573. <!-- ipiis.create_time as createTime-->
  574. <!-- FROM-->
  575. <!-- ins_ply_income_invoice_settlement ipiis-->
  576. <!-- LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id-->
  577. <!-- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id-->
  578. <!-- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id-->
  579. <!-- WHERE-->
  580. <!-- 1=1-->
  581. <!-- <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">-->
  582. <!-- AND ipiis.id IN-->
  583. <!-- <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">-->
  584. <!-- #{settlementId}-->
  585. <!-- </foreach>-->
  586. <!-- </if>-->
  587. <!-- <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">-->
  588. <!-- AND ipi.invoice_type IN-->
  589. <!-- <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">-->
  590. <!-- #{invoiceType}-->
  591. <!-- </foreach>-->
  592. <!-- </if>-->
  593. <!-- </select>-->
  594. <select id="getSuperviseSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailExcelDto">
  595. select
  596. ipiis.id as settlementId, -- 结算记录编号
  597. ipiis.invoice_id as invoiceId, -- 开票记录编号
  598. io.company_name as companyName, -- 保险公司
  599. io.signing_time as signingTime, -- 签单时间
  600. ipii.status as status, -- 状态
  601. ipi.license_no as licenseNo, -- 车牌号
  602. io.product_name as productName, -- 险种
  603. ipii.invoice_type as invoiceType, -- 应收项
  604. ipii.invoice_party as invoiceParty, -- 开票方
  605. ipii.tax_point as taxPoint, -- 税点
  606. (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as receivableSuperviseCosts, -- 应收手续费
  607. ipi.jq_premium as jqPremium, -- 交强保费
  608. ipi.jq_supervise_costs_proportion as jqSuperviseCostsProportion, -- 交强手续费比例
  609. ipi.jq_policy_no as jqPolicyNo, -- 交强保单号
  610. ipi.sy_premium as syPremium, -- 商业保费
  611. ipi.sy_supervise_costs_proportion as sySuperviseCostsProportion, -- 商业手续费比例
  612. ipi.sy_policy_no as syPolicyNo, -- 商业保单号
  613. ipi.jy_premium as jyPremium, -- 非车保费
  614. ipi.jy_supervise_costs_proportion as jySuperviseCostsProportion, -- 非车手续费比例
  615. ipi.jy_policy_no as jyPolicyNo, -- 非车保单号
  616. ipi.tax_premium as taxPremium, -- 车船税
  617. ipii.create_by as invoicePerson, -- 开票人
  618. ipii.create_time as invoiceTime, -- 开票时间
  619. ipiis.create_by as settlementPerson, -- 结算人
  620. ipiis.create_time as settlementTime -- 结算时间
  621. FROM
  622. ins_ply_income_invoice ipii
  623. LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipii.id
  624. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  625. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  626. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  627. WHERE
  628. 1=1
  629. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  630. AND ipiis.id IN
  631. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  632. #{settlementId}
  633. </foreach>
  634. </if>
  635. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  636. AND ipii.invoice_type IN
  637. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  638. #{invoiceType}
  639. </foreach>
  640. </if>
  641. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  642. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  643. </if>
  644. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  645. AND ipi.company_id = #{settlementQueryVo.companyId}
  646. </if>
  647. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  648. AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
  649. </if>
  650. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  651. AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
  652. </if>
  653. <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
  654. AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
  655. </if>
  656. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  657. AND ipi.agreement_type = #{settlementQueryVo.agreementType}
  658. </if>
  659. </select>
  660. <select id="getSuperviseSettlementDetailJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailJyExcelDto">
  661. select
  662. ipiis.id as settlementId, -- 结算记录编号
  663. ipiis.invoice_id as invoiceId, -- 开票记录编号
  664. ipi.company_name as companyName, -- 保险公司
  665. ipi.signing_time as signingTime, -- 签单时间
  666. ipii.status as status, -- 状态
  667. ipi.license_no as licenseNo, -- 车牌号
  668. io.product_name as productName, -- 险种
  669. ipii.invoice_type as invoiceType, -- 应收项
  670. ipii.invoice_party as invoiceParty, -- 开票方
  671. ipii.tax_point as taxPoint, -- 税点
  672. (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as receivableSuperviseCosts, -- 应收手续费
  673. ipi.jy_premium as jqPremium, -- 驾意保费
  674. ipi.jy_supervise_costs_proportion as jySuperviseCostsProportion, -- 驾意险手续费比例
  675. ipi.jy_policy_no as jqPolicyNo, -- 交强保单号
  676. ipi.sy_policy_no as syPolicyNo, -- 商业保单号
  677. ipii.create_by as invoicePerson, -- 开票人
  678. ipii.create_time as invoiceTime, -- 开票时间
  679. ipiis.create_by as settlementPerson, -- 结算人
  680. ipiis.create_time as settlementTime -- 结算时间
  681. FROM
  682. ins_ply_income_invoice ipii
  683. LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipiis.id
  684. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  685. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  686. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  687. WHERE
  688. 1=1
  689. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  690. AND ipiis.id IN
  691. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  692. #{settlementId}
  693. </foreach>
  694. </if>
  695. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  696. AND ipii.invoice_type IN
  697. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  698. #{invoiceType}
  699. </foreach>
  700. </if>
  701. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  702. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  703. </if>
  704. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  705. AND ipi.company_id = #{settlementQueryVo.companyId}
  706. </if>
  707. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  708. AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
  709. </if>
  710. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  711. AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
  712. </if>
  713. <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
  714. AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
  715. </if>
  716. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  717. AND ipi.agreement_type = #{settlementQueryVo.agreementType}
  718. </if>
  719. ORDER BY ipi.create_time DESC
  720. </select>
  721. <select id="getOtherExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherExcelDto">
  722. SELECT
  723. ipi.signing_time as signingTime,
  724. ipi.order_no as orderNo,
  725. ipi.company_name as companyName,
  726. ipi.dept_name as deptName,
  727. ipi.agreement_name as agreementName,
  728. io.entry_status as entryStatus,
  729. ipi.license_no as licenseNo,
  730. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableAmount,
  731. io.product_name as productName,
  732. iocui.name AS insuredPerson,
  733. ipi.jq_premium as jqPremium,
  734. ipi.jq_other_costs_proportion as jqSuperviseCostsProportion,
  735. ipi.jq_policy_no as jqPolicyNo,
  736. ior1.start_date as jqStartDate,
  737. ipi.sy_premium as syPremium,
  738. ipi.sy_other_costs_proportion as syqSuperviseCostsProportion,
  739. ipi.sy_policy_no as syPolicyNo,
  740. ior2.start_date as syStartDate,
  741. ipi.tax_premium as taxPremium,
  742. ipi.create_time as createTime,
  743. ipi.contact_person as contactPerson
  744. FROM ins_ply_income ipi
  745. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  746. LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
  747. LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
  748. LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
  749. WHERE
  750. 1=1
  751. <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
  752. AND ipi.supervise_settlement = 0
  753. </if>
  754. <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
  755. AND ipi.other_settlement = 1
  756. </if>
  757. <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
  758. AND ipi.jy_premium != 0
  759. </if>
  760. <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
  761. and ipi.licenseNo = #{receivableQueryVo.licenseNo}
  762. </if>
  763. <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
  764. and ipi.order_no = #{receivableQueryVo.orderNo}
  765. </if>
  766. <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
  767. and ipi.company_id = #{receivableQueryVo.companyId}
  768. </if>
  769. <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
  770. and ipi.dept_id = #{receivableQueryVo.deptId}
  771. </if>
  772. <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
  773. and ipi.agreement_id = #{receivableQueryVo.agreementId}
  774. </if>
  775. <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
  776. and ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
  777. </if>
  778. ORDER BY ipi.create_time DESC
  779. </select>
  780. <select id="getOtherJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherJyExcelDto">
  781. SELECT
  782. ipi.signing_time as signingTime,
  783. ipi.order_no as orderNo,
  784. ipi.company_name as companyName,
  785. ipi.dept_name as deptName,
  786. ipi.agreement_name as agreementName,
  787. io.entry_status as entryStatus,
  788. ipi.license_no as licenseNo,
  789. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableAmount,
  790. ipi.product_name as productName,
  791. iocui.name AS insuredPerson,
  792. ipi.jy_premium as jyPremium,
  793. ipi.jy_other_costs_proportion as jySuperviseCostsProportion,
  794. ipi.jy_policy_no as jyPolicyNo,
  795. ior1.start_date as jqStartDate,
  796. ior2.start_date as syStartDate,
  797. ipi.create_time as createTime
  798. FROM ins_ply_income ipi
  799. LEFT JOIN ins_orders io ON ipi.order_no = io.order_no
  800. LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
  801. LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
  802. LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
  803. WHERE
  804. 1=1
  805. <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
  806. AND ipi.supervise_settlement = 0
  807. </if>
  808. <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
  809. AND ipi.other_settlement = 1
  810. </if>
  811. <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
  812. AND ipi.jy_premium != 0
  813. </if>
  814. <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
  815. and ipi.licenseNo = #{receivableQueryVo.licenseNo}
  816. </if>
  817. <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
  818. and ipi.order_no = #{receivableQueryVo.orderNo}
  819. </if>
  820. <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
  821. and ipi.company_id = #{receivableQueryVo.companyId}
  822. </if>
  823. <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
  824. and ipi.dept_id = #{receivableQueryVo.deptId}
  825. </if>
  826. <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
  827. and ipi.agreement_id = #{receivableQueryVo.agreementId}
  828. </if>
  829. <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
  830. and ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
  831. </if>
  832. ORDER BY ipi.create_time DESC
  833. </select>
  834. <select id="getOtherSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherSettlementExcelDto">
  835. select
  836. ipiis.id as settlementId,
  837. ipiis.invoice_id as invoiceId,
  838. ipi.company_name as companyName,
  839. ipii.invoice_type as invoiceType,
  840. ipii.invoice_party as invoiceParty,
  841. ipii.tax_point as taxPoint,
  842. ipiis.actual_received_amount as actualReceivedAmount,
  843. ipiis.receive_payment_date as receivePaymentDate,
  844. ipiis.create_by as createBy,
  845. ipiis.create_time as createTime
  846. FROM
  847. ins_ply_income_invoice_settlement ipiis
  848. LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id
  849. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  850. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  851. WHERE
  852. 1=1
  853. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  854. AND ipiis.id IN
  855. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  856. #{settlementId}
  857. </foreach>
  858. </if>
  859. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  860. AND ipii.invoice_type IN
  861. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  862. #{invoiceType}
  863. </foreach>
  864. </if>
  865. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  866. AND ipii.agreement_type = #{settlementQueryVo.agreementType}
  867. </if>
  868. </select>
  869. <select id="getOtherSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherSettlementDetailExcelDto">
  870. select
  871. ipiis.id as settlementId, -- 结算记录编号
  872. ipiis.invoice_id as invoiceId, -- 开票记录编号
  873. ipi.company_name as companyName, -- 保险公司
  874. ipi.signing_time as signingTime, -- 签单时间
  875. ipii.status as status, -- 状态
  876. ipi.license_no as licenseNo, -- 车牌号
  877. io.product_name as productName, -- 险种
  878. ipii.invoice_type as invoiceType, -- 应收项
  879. ipii.invoice_party as invoiceParty, -- 开票方
  880. ipii.tax_point as taxPoint, -- 税点
  881. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableOtherCosts, -- 应收跟单费
  882. ipi.jq_premium as jqPremium, -- 交强保费
  883. ipi.jq_other_costs_proportion as jqOtherCostsProportion, -- 交强手续费比例
  884. ipi.jq_policy_no as jqPolicyNo, -- 交强保单号
  885. ipi.sy_premium as syPremium, -- 商业保费
  886. ipi.sy_other_costs_proportion as syOtherCostsProportion, -- 商业手续费比例
  887. ipi.sy_policy_no as syPolicyNo, -- 商业保单号
  888. ipi.tax_premium as taxPremium, -- 车船税
  889. ipii.create_by as invoicePerson, -- 开票人
  890. ipii.create_time as invoiceTime, -- 开票时间
  891. ipiis.create_by as settlementPerson, -- 结算人
  892. ipiis.create_time as settlementTime -- 结算时间
  893. FROM
  894. ins_ply_income_invoice ipii
  895. LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipiis.id
  896. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  897. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  898. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  899. WHERE
  900. 1=1
  901. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  902. AND ipiis.id IN
  903. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  904. #{settlementId}
  905. </foreach>
  906. </if>
  907. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  908. AND ipii.invoice_type IN
  909. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  910. #{invoiceType}
  911. </foreach>
  912. </if>
  913. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  914. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  915. </if>
  916. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  917. AND ipi.company_id = #{settlementQueryVo.companyId}
  918. </if>
  919. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  920. AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
  921. </if>
  922. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  923. AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
  924. </if>
  925. <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
  926. AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
  927. </if>
  928. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  929. AND ipi.agreement_type = #{settlementQueryVo.agreementType}
  930. </if>
  931. </select>
  932. <select id="getOtherSettlementDetailJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherSettlementDetailJyExcelDto">
  933. select
  934. ipiis.id as settlementId, -- 结算记录编号
  935. ipiis.invoice_id as invoiceId, -- 开票记录编号
  936. ipi.company_name as companyName, -- 保险公司
  937. ipi.signing_time as signingTime, -- 签单时间
  938. ipii.status as status, -- 状态
  939. ipi.license_no as licenseNo, -- 车牌号
  940. io.product_name as productName, -- 险种
  941. ipii.invoice_type as invoiceType, -- 应收项
  942. ipii.invoice_party as invoiceParty, -- 开票方
  943. ipii.tax_point as taxPoint, -- 税点
  944. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableSuperviseCosts, -- 应收手续费
  945. ipi.jy_premium as jqPremium, -- 驾意保费
  946. ipi.jy_other_costs_proportion as jqOtherCostsProportion, -- 驾意险跟单费比例
  947. ipi.jy_policy_no as jqPolicyNo, -- 交强保单号
  948. ipi.sy_policy_no as syPolicyNo, -- 商业保单号
  949. ipii.create_by as invoicePerson, -- 开票人
  950. ipii.create_time as invoiceTime, -- 开票时间
  951. ipiis.create_by as settlementPerson, -- 结算人
  952. ipiis.create_time as settlementTime -- 结算时间
  953. FROM
  954. ins_ply_income_invoice ipii
  955. LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipiis.id
  956. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  957. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  958. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  959. WHERE
  960. 1=1
  961. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  962. AND ipiis.id IN
  963. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  964. #{settlementId}
  965. </foreach>
  966. </if>
  967. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  968. AND ipii.invoice_type IN
  969. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  970. #{invoiceType}
  971. </foreach>
  972. </if>
  973. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  974. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  975. </if>
  976. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  977. AND ipi.company_id = #{settlementQueryVo.companyId}
  978. </if>
  979. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  980. AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
  981. </if>
  982. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  983. AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
  984. </if>
  985. <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
  986. AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
  987. </if>
  988. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  989. AND ipi.agreement_type = #{settlementQueryVo.agreementType}
  990. </if>
  991. </select>
  992. <select id="getReceivableCompany" resultType="com.jzg.commons.entity.po.EsmInsCompany">
  993. SELECT
  994. eic.id,
  995. eic.company_code,
  996. eic.`name`
  997. FROM
  998. ins_ply_income ipi
  999. LEFT JOIN esm_ins_company eic ON ipi.company_id = eic.id
  1000. WHERE
  1001. ipi.id IN
  1002. <foreach collection="invoicingVo.incomeIds" item="id" open="(" separator="," close=")">
  1003. #{id}
  1004. </foreach>
  1005. GROUP BY
  1006. eic.company_code,
  1007. eic.`name`,
  1008. eic.id
  1009. </select>
  1010. <select id="invoicingCheck" resultType="java.lang.Integer">
  1011. SELECT count(id) AS count
  1012. FROM ins_ply_income_invoice_link
  1013. <where>
  1014. <if test="invoicingVo.incomeIds != null and invoicingVo.incomeIds.size > 0">
  1015. AND income_id IN
  1016. <foreach collection="invoicingVo.incomeIds"
  1017. item="id" open="(" separator="," close=")">
  1018. #{id}
  1019. </foreach>
  1020. </if>
  1021. <if test="invoicingVo.invoiceType != null and invoicingVo.invoiceType != ''">
  1022. AND invoice_type = #{invoicingVo.invoiceType}
  1023. </if>
  1024. </where>
  1025. </select>
  1026. <!-- 查询订单绑定的发票信息 lipf 2026年5月21日11:56:19 -->
  1027. <select id="queryIncomeBindInvoice" resultType="com.jzg.commons.entity.finance.po.InsPlyIncomeInvoiceLink">
  1028. SELECT * FROM
  1029. ins_ply_income_invoice_link
  1030. where
  1031. income_id IN
  1032. <foreach collection="invoicingVo.incomeIds" item="id" open="(" separator="," close=")">
  1033. #{id}
  1034. </foreach>
  1035. </select>
  1036. <select id="getJqSumReceivable" resultType="java.util.Map">
  1037. SELECT
  1038. sum( jq_commission_premium ) AS jqCommissionPremium,
  1039. sum( sy_commission_premium ) AS syCommissionPremium,
  1040. sum( jy_commission_premium ) AS jyCommissionPremium,
  1041. sum( jq_follow_premium ) AS jqFollowPremium,
  1042. sum( sy_follow_premium ) AS syFollowPremium,
  1043. sum( jy_follow_premium ) AS jyFollowPremium
  1044. FROM
  1045. ins_fee_orders
  1046. WHERE
  1047. order_no IN
  1048. <foreach collection="orderNos" item="id" open="(" separator="," close=")">
  1049. #{id}
  1050. </foreach>
  1051. </select>
  1052. <select id="getInvoiceRecordList" resultType="com.jzg.commons.entity.finance.vo.InvoiceRecordResult">
  1053. SELECT
  1054. ipii.id,
  1055. ipii.company_id,
  1056. ipii.invoice_type,
  1057. -- 应收项
  1058. ipii.invoice_risk_type,
  1059. CASE
  1060. WHEN ipii.invoice_party = '1' THEN
  1061. '我方开票' ELSE '保司开票'
  1062. END as invoice_party,
  1063. ipii.overinflated_amount,
  1064. ipii.receivable_supervise_premium,
  1065. ipii.tax_point,
  1066. ipii.create_time,
  1067. ipii.create_by,
  1068. ipii.update_time,
  1069. ipii.update_by,
  1070. eic.name as company_name,
  1071. eic.name_simple as companyNameSimple,
  1072. sum( ipiis.actual_received_amount ) AS actual_received_amount,
  1073. ipii.status
  1074. FROM
  1075. ins_ply_income_invoice ipii
  1076. LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipii.id = ipiis.invoice_id
  1077. LEFT JOIN esm_ins_company eic on eic.id = ipii.company_id
  1078. WHERE
  1079. 1=1
  1080. <if test="invoiceRecordQueryVo.invoiceType != null and invoiceRecordQueryVo.invoiceType != ''">
  1081. AND ipii.invoice_type = #{invoiceRecordQueryVo.invoiceType}
  1082. </if>
  1083. <if test="invoiceRecordQueryVo.accountsReceivable != null and invoiceRecordQueryVo.accountsReceivable != ''">
  1084. AND ipii.invoice_risk_type = #{invoiceRecordQueryVo.accountsReceivable}
  1085. </if>
  1086. <if test="invoiceRecordQueryVo.recordId != null and invoiceRecordQueryVo.recordId != ''">
  1087. AND ipii.id = #{invoiceRecordQueryVo.recordId}
  1088. </if>
  1089. <if test="invoiceRecordQueryVo.companyId != null and invoiceRecordQueryVo.companyId != ''">
  1090. AND ipii.company_id = #{invoiceRecordQueryVo.companyId}
  1091. </if>
  1092. <if test="invoiceRecordQueryVo.invoiceParty != null and invoiceRecordQueryVo.invoiceParty != ''">
  1093. AND ipii.invoice_party = #{invoiceRecordQueryVo.invoiceParty}
  1094. </if>
  1095. <if test="invoiceRecordQueryVo.companyNameSimple != null and invoiceRecordQueryVo.companyNameSimple != ''">
  1096. AND eic.id = #{invoiceRecordQueryVo.companyNameSimple}
  1097. </if>
  1098. <if test="invoiceRecordQueryVo.settlementStatus != null and invoiceRecordQueryVo.settlementStatus != ''">
  1099. HAVING CASE
  1100. WHEN ipii.receivable_supervise_premium = SUM(ipiis.actual_received_amount) THEN '1'
  1101. ELSE '0'
  1102. END = #{invoiceRecordQueryVo.settlementStatus}
  1103. </if>
  1104. GROUP BY
  1105. ipii.id,
  1106. ipii.receivable_supervise_premium,
  1107. ipii.invoice_type,
  1108. ipii.company_id,
  1109. ipii.invoice_party
  1110. ORDER BY ipii.create_time DESC
  1111. </select>
  1112. <!-- 基础结果集映射 -->
  1113. <resultMap id="BaseResultMap" type="com.jzg.commons.entity.finance.dto.CompanySuperviseSettlementReportDto">
  1114. <result column="company_id" property="companyId"/>
  1115. <result column="company_name" property="companyName"/>
  1116. <result column="total_receivable" property="totalReceivable"/>
  1117. <result column="total_follow_fee" property="totalFollowFee"/>
  1118. <result column="supervise_fee" property="superviseFee"/>
  1119. <result column="follow_fee" property="followFee"/>
  1120. <result column="invoiced_amount" property="invoicedAmount"/>
  1121. <result column="settled_amount" property="settledAmount"/>
  1122. <result column="un_invoiced_amount" property="unInvoicedAmount"/>
  1123. <result column="un_settled_amount" property="unSettledAmount"/>
  1124. </resultMap>
  1125. <!-- 优化:一次性查询所有公司数据,替代递归查库 -->
  1126. <select id="selectAllCompanies" resultMap="BaseResultMap">
  1127. SELECT
  1128. eic.id as company_id,
  1129. eic.parent_id, <!-- 必须加这个,树形结构需要 -->
  1130. eic.name as company_name,
  1131. COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
  1132. COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
  1133. COALESCE(SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums), 0) as follow_fee,
  1134. COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
  1135. COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
  1136. COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
  1137. FROM
  1138. esm_ins_company eic
  1139. LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id and ipi.agreement_type = #{agreementType}
  1140. LEFT JOIN (
  1141. SELECT
  1142. ipiil.income_id,
  1143. ipii.invoice_time,
  1144. SUM(ipii.receivable_supervise_premium) as total_invoice,
  1145. SUM(CASE WHEN ipii.status = 1 THEN ipii.receivable_supervise_premium ELSE 0 END) as settled_invoice,
  1146. SUM(CASE WHEN ipii.status = 0 THEN ipii.receivable_supervise_premium ELSE 0 END) as unsettled_invoice
  1147. FROM ins_ply_income_invoice_link ipiil
  1148. LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiil.invoice_id
  1149. <where>
  1150. <if test="invoiceTypes != null and invoiceTypes.size() > 0">
  1151. AND ipii.invoice_type IN
  1152. <foreach item="item" collection="invoiceTypes" separator="," open="(" close=")">
  1153. #{item}
  1154. </foreach>
  1155. </if>
  1156. <if test="status != null and status != ''">
  1157. and ipii.status = #{status}
  1158. </if>
  1159. </where>
  1160. GROUP BY ipiil.income_id, ipii.invoice_time
  1161. ) invoice_summary ON invoice_summary.income_id = ipi.id
  1162. LEFT JOIN (
  1163. SELECT
  1164. ifo.order_no,
  1165. SUM(DISTINCT (ifo.jq_commission_premium + ifo.sy_commission_premium + ifo.jy_commission_premium)) as total_commission
  1166. FROM ins_fee_orders ifo
  1167. GROUP BY ifo.order_no
  1168. ) fee_summary ON ipi.order_no = fee_summary.order_no
  1169. <where>
  1170. <if test="companyId != null and companyId != ''">
  1171. AND eic.id = #{companyId}
  1172. </if>
  1173. <if test="startTime != null and startTime != ''">
  1174. AND ipi.signing_time BETWEEN #{startTime} AND #{endTime}
  1175. AND (
  1176. invoice_summary.invoice_time BETWEEN #{startTime} AND #{endTime}
  1177. OR invoice_summary.invoice_time IS NULL
  1178. )
  1179. </if>
  1180. </where>
  1181. GROUP BY eic.id, eic.name, eic.parent_id;
  1182. </select>
  1183. <!-- 获取根级保险公司(parent_id为0) -->
  1184. <select id="selectRootCompanies" resultMap="BaseResultMap">
  1185. SELECT
  1186. eic.id as company_id,
  1187. eic.name as company_name,
  1188. COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
  1189. COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
  1190. COALESCE(SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums), 0) as follow_fee,
  1191. COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
  1192. COALESCE(SUM(fee_summary.total_commission) - SUM(invoice_summary.total_invoice), 0) as un_invoiced_amount,
  1193. COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
  1194. COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
  1195. FROM
  1196. esm_ins_company eic
  1197. LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id and ipi.agreement_type = #{settlementReportQueryVo.agreementType}
  1198. LEFT JOIN (
  1199. SELECT
  1200. ipiil.income_id,
  1201. ipii.invoice_time,
  1202. SUM(ipii.receivable_supervise_premium) as total_invoice,
  1203. SUM(CASE WHEN ipii.status = 1 THEN ipii.receivable_supervise_premium ELSE 0 END) as settled_invoice,
  1204. SUM(CASE WHEN ipii.status = 0 THEN ipii.receivable_supervise_premium ELSE 0 END) as unsettled_invoice
  1205. FROM ins_ply_income_invoice_link ipiil
  1206. LEFT JOIN ins_ply_income_invoice ipii
  1207. ON ipii.id = ipiil.invoice_id
  1208. <where>
  1209. <if test="settlementReportQueryVo.invoiceTypes != null and settlementReportQueryVo.invoiceTypes.size() > 0">
  1210. AND ipii.invoice_type IN
  1211. <foreach item="item" collection="settlementReportQueryVo.invoiceTypes" separator="," open="(" close=")">
  1212. #{item}
  1213. </foreach>
  1214. </if>
  1215. <if test="settlementReportQueryVo.status != null and settlementReportQueryVo.status != ''">
  1216. and ipii.status = #{settlementReportQueryVo.status}
  1217. </if>
  1218. </where>
  1219. GROUP BY ipiil.income_id, ipii.invoice_time
  1220. ) invoice_summary ON invoice_summary.income_id = ipi.id
  1221. LEFT JOIN (
  1222. SELECT
  1223. ifo.order_no,
  1224. SUM(DISTINCT (ifo.jq_commission_premium + ifo.sy_commission_premium + ifo.jy_commission_premium)) as total_commission
  1225. FROM ins_fee_orders ifo
  1226. GROUP BY ifo.order_no
  1227. ) fee_summary ON ipi.order_no = fee_summary.order_no
  1228. WHERE
  1229. eic.parent_id = 0
  1230. <if test="settlementReportQueryVo.companyId != null and settlementReportQueryVo.companyId != ''">
  1231. and eic.id = #{settlementReportQueryVo.companyId}
  1232. </if>
  1233. <if test="settlementReportQueryVo.startTime != null and settlementReportQueryVo.startTime != ''">
  1234. AND ipi.signing_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1235. AND (
  1236. invoice_summary.invoice_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1237. OR invoice_summary.invoice_time IS NULL
  1238. )
  1239. </if>
  1240. GROUP BY
  1241. eic.id,
  1242. eic.name;
  1243. </select>
  1244. <!-- 获取子公司 -->
  1245. <select id="selectChildrenByParentId" resultMap="BaseResultMap">
  1246. SELECT
  1247. eic.id as company_id,
  1248. eic.name as company_name,
  1249. COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
  1250. COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
  1251. COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
  1252. COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
  1253. COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
  1254. FROM
  1255. esm_ins_company eic
  1256. LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id and ipi.agreement_type = #{settlementReportQueryVo.agreementType}
  1257. LEFT JOIN (
  1258. SELECT
  1259. ipiil.income_id,
  1260. SUM(ipii.receivable_supervise_premium) as total_invoice,
  1261. SUM(CASE WHEN ipii.status = 1 THEN ipii.receivable_supervise_premium ELSE 0 END) as settled_invoice,
  1262. SUM(CASE WHEN ipii.status = 0 THEN ipii.receivable_supervise_premium ELSE 0 END) as unsettled_invoice
  1263. FROM ins_ply_income_invoice_link ipiil
  1264. LEFT JOIN ins_ply_income_invoice ipii
  1265. ON ipii.id = ipiil.invoice_id
  1266. <where>
  1267. <if test="settlementReportQueryVo.invoiceTypes != null and settlementReportQueryVo.invoiceTypes.size() > 0">
  1268. AND ipii.invoice_type IN
  1269. <foreach item="item" collection="settlementReportQueryVo.invoiceTypes" separator="," open="(" close=")">
  1270. #{item}
  1271. </foreach>
  1272. </if>
  1273. <if test="settlementReportQueryVo.status != null and settlementReportQueryVo.status != ''">
  1274. and ipii.status = #{settlementReportQueryVo.status}
  1275. </if>
  1276. </where>
  1277. GROUP BY ipiil.income_id
  1278. ) invoice_summary ON invoice_summary.income_id = ipi.id
  1279. WHERE
  1280. eic.parent_id = #{parentId}
  1281. <if test="settlementReportQueryVo.companyId != null and settlementReportQueryVo.companyId != ''">
  1282. and eic.id = #{settlementReportQueryVo.companyId}
  1283. </if>
  1284. <if test="settlementReportQueryVo.startTime != null and settlementReportQueryVo.startTime != ''">
  1285. AND ipi.signing_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1286. AND (invoice_summary.invoiceTime BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1287. OR invoice_summary.invoiceTime IS NULL)
  1288. </if>
  1289. <if test="settlementReportQueryVo.status != null and settlementReportQueryVo.status != ''">
  1290. AND ipi.status = #{settlementReportQueryVo.status}
  1291. </if>
  1292. GROUP BY
  1293. eic.id,
  1294. eic.name;
  1295. </select>
  1296. <select id="getSuperviseAmount" resultType="com.jzg.commons.entity.finance.dto.InvoiceAmountDto">
  1297. SELECT
  1298. eic.id AS companyId,
  1299. eic.name AS companyName,
  1300. SUM(COALESCE(ifo.jq_commission_premium, 0) + COALESCE(ifo.sy_commission_premium, 0) + COALESCE(ifo.jy_commission_premium, 0)) AS superviseAmount
  1301. FROM
  1302. esm_ins_company eic
  1303. LEFT JOIN
  1304. ptl_agreement pa ON pa.company_id = CAST(eic.id AS CHAR) COLLATE utf8mb4_general_ci -- 统一为pa的排序规则
  1305. LEFT JOIN
  1306. ins_fee_orders ifo ON pa.id = ifo.agreement_id
  1307. GROUP BY
  1308. eic.id, eic.name
  1309. ORDER BY eic.name
  1310. </select>
  1311. <select id="getReceiverSettlementReport" resultType="com.jzg.commons.entity.finance.dto.ReceiverSettlementReportDto">
  1312. SELECT
  1313. ipi.contact_person AS receiver,
  1314. ipi.company_name AS companyName,
  1315. -- 原有的应收费用合计
  1316. SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) AS superviseFee,
  1317. SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) AS followFee,
  1318. SUM(
  1319. (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) +
  1320. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums)
  1321. ) AS totalReceivable,
  1322. -- 已结算费用统计
  1323. SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (1,3) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledSuperviseFee,
  1324. SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (2,4) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledFollowFee,
  1325. SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type IN (1,2) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledAmount,
  1326. -- 未结算费用统计
  1327. SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (1,3) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledSuperviseFee,
  1328. SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (2,4) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledFollowFee,
  1329. SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type IN (1,2) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledAmount
  1330. FROM
  1331. ins_ply_income ipi
  1332. LEFT JOIN ins_ply_income_invoice_link ipil
  1333. ON ipi.id = ipil.income_id
  1334. LEFT JOIN ins_ply_income_invoice ipii
  1335. ON ipil.invoice_id = ipii.id
  1336. where ipi.agreement_type = '1'
  1337. <if test="settlementReportQueryVo.companyId != null and settlementReportQueryVo.companyId != ''">
  1338. and ipi.company_id = #{settlementReportQueryVo.companyId}
  1339. </if>
  1340. <if test="settlementReportQueryVo.receiver != null and settlementReportQueryVo.receiver != ''">
  1341. and ipi.contact_person = #{settlementReportQueryVo.receiver}
  1342. </if>
  1343. <if test="settlementReportQueryVo.startTime != null and settlementReportQueryVo.startTime != ''">
  1344. and ipi.signing_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1345. and (ipii.invoice_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1346. OR ipii.invoice_time IS NULL)
  1347. </if>
  1348. GROUP BY
  1349. ipi.contact_person,
  1350. ipi.company_name
  1351. </select>
  1352. <!-- 根据发票序号查询结算明细 lipf 2026年5月15日10:58:36 -->
  1353. <select id="queryInvoiceSettlementByInvoiceId"
  1354. resultType="com.jzg.commons.entity.finance.po.InsPlyIncomeInvoiceSettlement">
  1355. select * from ins_ply_income_invoice_settlement ipiis where ipiis.invoice_id = #{invoiceId}
  1356. </select>
  1357. <!-- <select id="getReceivableList" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">-->
  1358. <!-- SELECT-->
  1359. <!-- ipi.*,-->
  1360. <!-- io.signing_time,-->
  1361. <!-- io.company_name-->
  1362. <!-- FROM-->
  1363. <!-- ins_ply_income ipi-->
  1364. <!-- LEFT JOIN ins_orders io ON ipi.order_no = io.id-->
  1365. <!-- LEFT JOIN ins_ply_income_invoice_link ipiil on ipiil.income_id = ipi.id-->
  1366. <!-- WHERE-->
  1367. <!-- 1 = 1-->
  1368. <!-- AND ipi.supervise_settlement = 0-->
  1369. <!-- AND ipi.other_settlement = 0-->
  1370. <!-- AND ipi.jy_supervise_settlement = 0-->
  1371. <!-- AND ipi.jy_other_settlement = 0-->
  1372. <!-- AND ipiil.income_id IS NULL-->
  1373. <!-- </select>-->
  1374. </mapper>