DailyMapper.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527
  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.gree.mall.manager.commonmapper.DailyMapper">
  4. <update id="bindWorkerNumber2">
  5. UPDATE
  6. (
  7. SELECT
  8. u.id_card,
  9. wb.websit_id,
  10. wb.worker_number,
  11. u.mobile,
  12. u.nick_name
  13. FROM
  14. user u, websit_user wb
  15. WHERE
  16. u.company_wechat_id = wb.company_wechat_id
  17. AND u.user_id = wb.user_id
  18. AND u.apply_type = 'WORKER'
  19. AND wb.examine_status = 'OK'
  20. ) a
  21. JOIN
  22. settle_daily_reduce_cost c
  23. ON c.repair_worker_name = a.nick_name AND c.repair_worker_mobile = a.mobile AND c.websit_number = a.websit_id
  24. SET
  25. c.worker_number = a.worker_number
  26. WHERE
  27. c.company_wechat_id = #{companyWechatId}
  28. AND c.import_batch_no = #{importBatchNo}
  29. </update>
  30. <update id="bindWorkerNumber">
  31. UPDATE
  32. (
  33. SELECT
  34. u.id_card,
  35. wb.websit_id,
  36. wb.worker_number,
  37. u.mobile,
  38. u.nick_name
  39. FROM
  40. user u, websit_user wb
  41. WHERE
  42. u.company_wechat_id = wb.company_wechat_id
  43. AND u.user_id = wb.user_id
  44. AND u.apply_type = 'WORKER'
  45. AND wb.examine_status = 'OK'
  46. ) a
  47. JOIN settle_daily_import_summary_item c
  48. ON c.repair_worker_name = a.nick_name AND c.repair_worker_mobile = a.mobile AND c.websit_number = a.websit_id
  49. SET
  50. c.worker_number = a.worker_number
  51. WHERE
  52. c.company_wechat_id = #{companyWechatId}
  53. AND c.import_batch_no = #{importBatchNo}
  54. </update>
  55. <select id="queryDistinctOrderNo" resultType="java.lang.String">
  56. select dispatch_order_no from settle_daily_import_summary_item
  57. where
  58. company_wechat_id = #{companyWechatId}
  59. AND order_status in ('已转结算待汇总','待退旧件','待总部日审','待总部审批','待总部日结审批','已汇总')
  60. group by concat(self_no,dispatch_order_no)
  61. having count(1)>1
  62. </select>
  63. <select id="queryDailyTotalCost" resultType="com.gree.mall.manager.bean.settle.repair.DailyTotalCostBean">
  64. select
  65. b.idcard as 'idCard',
  66. a.worker_number ,
  67. a.repair_worker_name ,
  68. a.summary_name,
  69. a.summary_number,
  70. a.websit_number,
  71. a.websit_name,
  72. a.company_wechat_id,
  73. a.company_wechat_name,
  74. sum(a.total_fee) AS 'total_fee',
  75. count(a.dispatch_order_no) AS repairCount,
  76. a.repair_worker_mobile AS 'mobile'
  77. from settle_daily_import_summary_item a
  78. join (
  79. select DISTINCT a.worker_number, a.idcard from settle_daily_bank_account a
  80. ) b on a.worker_number=b.worker_number
  81. where
  82. company_wechat_id = #{companyWechatId}
  83. <if test="status != null and status.size()> 0">
  84. and summary_status in
  85. <foreach collection="status" item="statusSItem" index="index"
  86. open="(" close=")" separator=",">
  87. #{statusSItem}
  88. </foreach>
  89. </if>
  90. <if test="needSummaryStatus != null and needSummaryStatus.size()> 0">
  91. and order_status in
  92. <foreach collection="needSummaryStatus" item="statusItem" index="index"
  93. open="(" close=")" separator=",">
  94. #{statusItem}
  95. </foreach>
  96. </if>
  97. <if test="importBatchNo !=null and importBatchNo !=''">
  98. and import_batch_no =#{importBatchNo}
  99. </if>
  100. group by worker_number
  101. order by total_fee desc
  102. </select>
  103. <select id="queryIncrDecrByBatch"
  104. resultType="com.gree.mall.manager.bean.settle.repair.DailyIncrDecrCostCountBean">
  105. select
  106. sdidc.*,
  107. sum(cost_amount) totalAmount
  108. from
  109. settle_daily_incr_decr_cost sdidc
  110. where
  111. company_wechat_id = #{companyWechatId}
  112. AND do_status = #{status}
  113. <if test="importBatchNo != '' and importBatchNo != null">
  114. and import_batch_no = #{importBatchNo}
  115. </if>
  116. group by
  117. service_number,websit_number
  118. </select>
  119. <select id="querySummaryNumber" resultType="java.util.Map">
  120. select distinct summary_number as summaryNumber from settle_daily_issue_summary_record where company_wechat_id = #{companyWechatId} AND summary_batch_no= #{summaryBatchNo} and status in (1,4)
  121. </select>
  122. <select id="querySummaryMonthNumber" resultType="java.util.Map">
  123. select distinct summary_number as summaryNumber from settle_daily_issue_summary_record where company_wechat_id = #{companyWechatId} AND summary_batch_no= #{summaryBatchNo} and status in (1,4)
  124. </select>
  125. <select id="queryIssueSalaryMonthBankCardInfo"
  126. resultType="com.gree.mall.manager.bean.settle.repair.DailyWokerBankCardMonthBean">
  127. SELECT * FROM settle_daily_issue_summary_month_record a
  128. JOIN user aa on a.service_number = aa.worker_number AND aa.apply_type = 'WORKER'
  129. JOIN settle_daily_bank_account b ON aa.id_card = b.idcard
  130. WHERE
  131. a.company_wechat_id = #{companyWechatId}
  132. AND a.status IN(1,4)
  133. AND is_month_calculate = 1
  134. <if test="summaryBatchNo != null and summaryBatchNo !=''">
  135. AND a.summary_batch_no = #{summaryBatchNo}
  136. </if>
  137. <if test="summaryNumber != null and summaryNumber !=''">
  138. AND a.summary_number = #{summaryNumber}
  139. </if>
  140. </select>
  141. <select id="queryIssueSalaryAndBankCardInfo" resultType="com.gree.mall.manager.bean.settle.repair.DailyWorkerBankCardBean">
  142. select a.*,b.* from settle_daily_issue_summary_record a
  143. JOIN user aa on a.service_number = aa.worker_number AND aa.apply_type = 'WORKER'
  144. join settle_daily_bank_account b on aa.id_card = b.idcard
  145. where
  146. a.company_wechat_id = #{companyWechatId}
  147. AND a.status in (1,4) and a.issue_cost > 0
  148. and a.service_name = aa.nick_name
  149. <if test="summaryBatchNo != null and summaryBatchNo !=''">
  150. and a.summary_batch_no = #{summaryBatchNo}
  151. </if>
  152. <if test="summaryNumber != null and summaryNumber !=''">
  153. and a.summary_number = #{summaryNumber}
  154. </if>
  155. group by a.id
  156. </select>
  157. <select id="summaryDayList" resultType="com.gree.mall.manager.bean.settle.repair.DailySummaryDataBean">
  158. SELECT
  159. id AS 'issueSalaryId',
  160. summary_batch_no,
  161. month,
  162. COUNT(DISTINCT (service_number)) AS 'summaryNum',
  163. SUM(repair_count) AS 'summaryOrderNum',
  164. SUM(repair_total_amount) AS 'totalRepairCostC',
  165. IF(FIND_IN_SET('4', GROUP_CONCAT(DISTINCT status)) > 0 || FIND_IN_SET('1', GROUP_CONCAT(DISTINCT status)) > 0, 1, status) AS 'status',
  166. issue_time,
  167. issue_by,
  168. SUM(should_reduce_cost) AS 'reduceCostC',
  169. SUM(incr_decr_cost) AS 'incrDecrCostC',
  170. SUM(should_emp_insurance_cost) AS 'injuryCostC',
  171. SUM(should_residual_insurance_cost) AS 'residualCostC',
  172. SUM(withhold_cost) AS 'withholdCostC',
  173. SUM(issue_cost) AS 'issueCostC',
  174. summary_number,
  175. summary_name
  176. FROM
  177. settle_daily_issue_summary_record a
  178. <where>
  179. <if test="companyWechatIds != null and companyWechatIds.size > 0">
  180. AND a.company_wechat_id IN
  181. <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
  182. #{item}
  183. </foreach>
  184. </if>
  185. <if test="adminWebsitIds != null and adminWebsitIds.size > 0">
  186. AND a.websit_number IN
  187. <foreach item="item" index="index" collection="adminWebsitIds" open="(" separator="," close=")">
  188. #{item}
  189. </foreach>
  190. </if>
  191. <if test="summaryBatchNo != null and summaryBatchNo != ''">
  192. AND summary_batch_no = #{summaryBatchNo}
  193. </if>
  194. </where>
  195. GROUP BY
  196. summary_number
  197. </select>
  198. <select id="cwSummaryList" resultType="com.gree.mall.manager.bean.settle.repair.DailySummaryDataBean">
  199. SELECT
  200. t.*
  201. FROM
  202. (
  203. SELECT
  204. summary_batch_no,
  205. month,
  206. COUNT(DISTINCT (service_number)) AS 'summaryNum',
  207. SUM(repair_count) AS 'summaryOrderNum',
  208. SUM(repair_total_amount) AS 'totalRepairCostC',
  209. SUM(issue_cost) AS 'issueCostC',
  210. IF(FIND_IN_SET('4', GROUP_CONCAT(DISTINCT IF(issue_cost > 0, status, 2))) > 0 || FIND_IN_SET('1',GROUP_CONCAT(DISTINCT IF(issue_cost > 0, status, 2))) > 0, 1, status) AS 'status',
  211. status AS 'groupStatus',
  212. summary_by,
  213. summary_time,
  214. issue_time,
  215. issue_by,
  216. create_time
  217. FROM
  218. settle_daily_issue_summary_record a
  219. <where>
  220. <if test="companyWechatIds != null and companyWechatIds.size > 0">
  221. AND a.company_wechat_id IN
  222. <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
  223. #{item}
  224. </foreach>
  225. </if>
  226. <if test="adminWebsitIds != null and adminWebsitIds.size > 0">
  227. AND a.websit_number IN
  228. <foreach item="item" index="index" collection="adminWebsitIds" open="(" separator="," close=")">
  229. #{item}
  230. </foreach>
  231. </if>
  232. <if test="summaryStartTime != null and summaryStartTime !='' and summaryEndTime != null and summaryEndTime != ''">
  233. AND summary_time BETWEEN #{summaryStartTime} AND concat(#{summaryEndTime},' 23:59:59')
  234. </if>
  235. <if test="issueStartTime != null and issueStartTime !='' and issueEndTime != null and issueEndTime != ''">
  236. AND issue_time BETWEEN #{issueStartTime} AND concat(#{issueEndTime},' 23:59:59')
  237. </if>
  238. <if test="summaryBatchNo != null and summaryBatchNo != ''">
  239. AND summary_batch_no = #{summaryBatchNo}
  240. </if>
  241. </where>
  242. GROUP BY
  243. summary_batch_no
  244. ) t
  245. <where>
  246. <if test="status !='' and status != null">
  247. t.status = #{status}
  248. </if>
  249. </where>
  250. ORDER BY t.create_time DESC
  251. </select>
  252. <select id="workerDetailList" resultType="com.gree.mall.manager.bean.settle.repair.DailyWorkerIssueSalaryBean">
  253. select
  254. a.*,b.bank_account ,b.bank_account_name,deposit_bank,c.issue_time ,c.issue_by,c.status as issueStatus
  255. from settle_daily_import_summary_item a
  256. left JOIN user aa on a.worker_number = aa.worker_number AND aa.apply_type = 'WORKER'
  257. left join settle_daily_bank_account b on aa.id_card = b.idcard AND a.websit_number = b.websit_id
  258. left join settle_daily_issue_summary_record c on c.id = a.issue_salary_id
  259. <where>
  260. <if test="companyWechatIds != null and companyWechatIds.size > 0">
  261. AND a.company_wechat_id IN
  262. <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
  263. #{item}
  264. </foreach>
  265. </if>
  266. <if test="adminWebsitIds != null and adminWebsitIds.size > 0">
  267. AND a.websit_number IN
  268. <foreach item="item" index="index" collection="adminWebsitIds" open="(" separator="," close=")">
  269. #{item}
  270. </foreach>
  271. </if>
  272. <if test="issueSalaryId != null and issueSalaryId != ''">
  273. and a.issue_salary_id = #{issueSalaryId}
  274. </if>
  275. </where>
  276. GROUP BY a.id, a.worker_number
  277. </select>
  278. <select id="cwSummaryMonthList" resultType="com.gree.mall.manager.bean.settle.repair.DailyNotMonthSummaryCountBean">
  279. select
  280. t.*
  281. from
  282. (
  283. select
  284. summary_batch_no ,
  285. `month` 'summaryMonth',
  286. sum(repair_count) 'summaryOrderCount',
  287. count(distinct service_number) 'summaryPersonCount',
  288. sum(repair_total_amount) 'summaryCost',
  289. sum(month_send_cost) 'issueCostC',
  290. status 'groupStatus',
  291. if(find_in_set('4',group_concat(distinct status)) > 0 || find_in_set('1',group_concat(distinct status)) > 0 ,1,status) 'issueStatus',
  292. summary_by ,
  293. summary_time ,
  294. issue_time ,
  295. issue_by,
  296. create_time
  297. from
  298. settle_daily_issue_summary_month_record a
  299. <where>
  300. <if test="companyWechatIds != null and companyWechatIds.size > 0">
  301. AND a.company_wechat_id IN
  302. <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
  303. #{item}
  304. </foreach>
  305. </if>
  306. <if test="adminWebsitIds != null and adminWebsitIds.size > 0">
  307. AND a.websit_number IN
  308. <foreach item="item" index="index" collection="adminWebsitIds" open="(" separator="," close=")">
  309. #{item}
  310. </foreach>
  311. </if>
  312. <if test="summaryStartTime != null and summaryStartTime !='' and summaryEndTime != null and summaryEndTime != ''">
  313. and summary_time between #{summaryStartTime} and concat(#{summaryEndTime},' 23:59:59')
  314. </if>
  315. <if test="issueStartTime != null and issueStartTime !='' and issueEndTime != null and issueEndTime != ''">
  316. and issue_time between #{issueStartTime} and concat(#{issueEndTime},' 23:59:59')
  317. </if>
  318. <if test="summaryBatchNo != null and summaryBatchNo != ''">
  319. and summary_batch_no = #{summaryBatchNo}
  320. </if>
  321. </where>
  322. group by summary_batch_no
  323. ) t
  324. <where>
  325. <if test="status != null and status !=''">
  326. and t.issueStatus = #{status}
  327. </if>
  328. </where>
  329. order by t.create_time desc
  330. </select>
  331. <select id="monthlySummaryList" resultType="com.gree.mall.manager.bean.settle.repair.DailyNotMonthSummaryCountBean">
  332. select
  333. summary_number,
  334. summary_name ,
  335. summary_batch_no ,
  336. `month` 'summaryMonth',
  337. sum(repair_count) 'summaryOrderCount',
  338. count(distinct service_number) 'summaryPersonCount',
  339. sum(repair_total_amount) 'summaryCost',
  340. status 'groupStatus',
  341. if(find_in_set('4',group_concat(distinct status)) > 0 || find_in_set('1',group_concat(distinct status)) > 0 ,1,status) 'issueStatus',
  342. summary_by ,
  343. summary_time ,
  344. issue_time ,
  345. issue_by,
  346. sum(should_emp_insurance_cost +should_residual_insurance_cost) 'empCost',
  347. sum(withhold_cost ) 'withholdCost',
  348. sum(incr_decr_cost) 'decrCost',
  349. sum(reduce_cost) 'reduceCost',
  350. sum(income_cost) 'incomeCost',
  351. sum(issue_cost) 'issueCost',
  352. websit_name,
  353. websit_number
  354. from
  355. settle_daily_issue_summary_month_record a
  356. <where>
  357. <if test="companyWechatIds != null and companyWechatIds.size > 0">
  358. AND a.company_wechat_id IN
  359. <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
  360. #{item}
  361. </foreach>
  362. </if>
  363. <if test="adminWebsitIds != null and adminWebsitIds.size > 0">
  364. AND a.websit_number IN
  365. <foreach item="item" index="index" collection="adminWebsitIds" open="(" separator="," close=")">
  366. #{item}
  367. </foreach>
  368. </if>
  369. <if test="summaryBatchNo != null and summaryBatchNo !=''">
  370. and a.summary_batch_no = #{summaryBatchNo}
  371. </if>
  372. </where>
  373. group by summary_number
  374. order by summary_time desc
  375. </select>
  376. <select id="monthlyWebsiteList" resultType="com.gree.mall.manager.bean.settle.repair.DailyNotMonthSummaryCountBean">
  377. select
  378. summary_number,
  379. summary_name ,
  380. summary_batch_no ,
  381. `month` 'summaryMonth',
  382. count(1) 'summaryOrderCount',
  383. count(distinct service_number) 'summaryPersonCount',
  384. sum(repair_total_amount) 'summaryCost',
  385. status 'issueStatus',
  386. summary_by ,
  387. summary_time ,
  388. issue_time ,
  389. issue_by,
  390. sum(should_emp_insurance_cost +should_residual_insurance_cost) 'empCost',
  391. sum(withhold_cost ) 'withholdCost',
  392. sum(incr_decr_cost) 'decrCost',
  393. sum(reduce_cost) 'reduceCost',
  394. sum(income_cost) 'incomeCost',
  395. sum(issue_cost) 'issueCost',
  396. websit_name,
  397. websit_number
  398. from
  399. settle_daily_issue_summary_month_record a
  400. <where>
  401. <if test="companyWechatIds != null and companyWechatIds.size > 0">
  402. AND a.company_wechat_id IN
  403. <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
  404. #{item}
  405. </foreach>
  406. </if>
  407. <if test="adminWebsitIds != null and adminWebsitIds.size > 0">
  408. AND a.websit_number IN
  409. <foreach item="item" index="index" collection="adminWebsitIds" open="(" separator="," close=")">
  410. #{item}
  411. </foreach>
  412. </if>
  413. <if test="summaryBatchNo != null and summaryBatchNo !=''">
  414. and a.summary_batch_no = #{summaryBatchNo}
  415. </if>
  416. </where>
  417. group by websit_number
  418. order by summary_time desc
  419. </select>
  420. <select id="monthlyDetailList" resultType="com.gree.mall.manager.bean.settle.repair.DailyWorkerIssueSalaryBean">
  421. select
  422. a.*,b.status 'issueStatus' ,b.issue_time ,c.bank_account_name ,c.deposit_bank ,c.bank_account
  423. from
  424. settle_daily_import_summary_item a
  425. left join
  426. settle_daily_issue_summary_record b on a.issue_salary_id =b.id
  427. left join user aa on a.worker_number = aa.worker_number AND aa.apply_type = 'WORKER'
  428. left join settle_daily_bank_account c on aa.id_card = c.idcard
  429. <where>
  430. <if test="companyWechatIds != null and companyWechatIds.size > 0">
  431. AND a.company_wechat_id IN
  432. <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
  433. #{item}
  434. </foreach>
  435. </if>
  436. <if test="adminWebsitIds != null and adminWebsitIds.size > 0">
  437. AND a.websit_number IN
  438. <foreach item="item" index="index" collection="adminWebsitIds" open="(" separator="," close=")">
  439. #{item}
  440. </foreach>
  441. </if>
  442. <if test="serviceNumber != null and serviceNumber != ''">
  443. and b.service_number = #{serviceNumber}
  444. </if>
  445. <if test="summaryMonthBatchNo != null and summaryMonthBatchNo != ''">
  446. and b.summary_month_batch_no = #{summaryMonthBatchNo}
  447. </if>
  448. <if test="summaryNumber != null and summaryNumber != ''">
  449. and a.summary_number = #{summaryNumber}
  450. </if>
  451. </where>
  452. </select>
  453. <select id="queryMonthTotalCost" resultType="com.gree.mall.manager.bean.settle.repair.DailyMonthTotalBean">
  454. select
  455. sum(repair_total_amount) 'repairTotalAmount',
  456. sum(should_reduce_cost) 'reduceCost',
  457. sum(incr_decr_cost) 'incrDecrCost',
  458. sum(issue_cost) 'issueCost',
  459. sum(withhold_cost) 'withholdTotalCost',
  460. sum(should_residual_insurance_cost) 'residualInsuranceCostC',
  461. sum(should_emp_insurance_cost) 'empInsuranceCostC',
  462. sum(repair_count) 'repairCountC',
  463. id_card ,
  464. mobile,
  465. service_name,
  466. service_number,
  467. websit_number ,
  468. websit_name ,
  469. summary_name ,
  470. summary_number,
  471. company_wechat_id,
  472. company_wechat_name
  473. from
  474. settle_daily_issue_summary_record a
  475. where
  476. status = 2 and a.install = 0 AND company_wechat_id = #{companyWechatId}
  477. group by
  478. service_number ,summary_number
  479. </select>
  480. <select id="queryNotMonthSummaryData" resultType="com.gree.mall.manager.bean.settle.repair.DailyNotMonthSummaryCountBean">
  481. select
  482. count(distinct(service_number)) 'summaryPersonCount',
  483. count(1) 'summaryOrderCount',
  484. sum(repair_total_amount) 'summaryCost'
  485. from
  486. settle_daily_issue_summary_record
  487. where
  488. is_month_summary = false
  489. AND company_wechat_id = #{companyWechatId}
  490. </select>
  491. </mapper>