123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.fjhx.form.mapper.FinanceReportMapper">
- <select id="subjectBalance" resultType="com.fjhx.form.entity.SubjectBalanceBo">
- SELECT cib.id,
- t1.account_subjects_id AS subjects_id,
- t1.subjects_calculate_item_ids,
- t1.subjects_code,
- t1.subjects_name,
- t1.calculate_item_str,
- sum(t1.tradeAmount) AS trade_amount,
- cib.month1_amount,
- cib.month2_amount,
- cib.month3_amount,
- cib.month4_amount,
- cib.month5_amount,
- cib.month6_amount,
- cib.month7_amount,
- cib.month8_amount,
- cib.month9_amount,
- cib.month10_amount,
- cib.month11_amount,
- cib.month12_amount,
- cib.year_begin_borrow_amount
- FROM (SELECT ccd.id,
- ccd.account_subjects_id,
- IF(cc.trade_type = 10, cc.apply_time, ap.expenses_time) AS expenses_time,
- IF(cc.trade_type = 10, ccd.money, - ccd.money) AS tradeAmount,
- asj.subjects_code,
- asj.subjects_name,
- asj.sort,
- t2.calculate_item_ids,
- t2.calculate_item_types,
- t2.calculate_item_names,
- CONCAT(ccd.account_subjects_id, '-', t2.calculate_item_type_ids) AS subjects_calculate_item_ids,
- CONCAT(asj.subjects_name, ' - ',
- REPLACE(t2.calculate_item_names, ',', ' - ')) AS calculate_item_str
- FROM cost_control cc
- JOIN cost_control_detail ccd ON ccd.cost_control_id = cc.id
- LEFT JOIN account_payment ap ON ap.business_id = cc.id
- LEFT JOIN account_subjects asj ON ccd.account_subjects_id = asj.id
- LEFT JOIN (SELECT cci.cost_control_detail_id,
- GROUP_CONCAT(cci.business_id) AS calculate_item_ids,
- GROUP_CONCAT(cci.type) AS calculate_item_types,
- GROUP_CONCAT(cciv.calculate_item_name) AS calculate_item_names,
- GROUP_CONCAT(cci.type, '-', cci.business_id SEPARATOR '-') AS calculate_item_type_ids
- FROM cost_calculate_item cci
- JOIN calculate_item_view cciv
- ON FIND_IN_SET(cci.type, cciv.calculate_item_type)
- AND cci.business_id = cciv.calculate_item_id
- GROUP BY cci.cost_control_detail_id) t2 ON t2.cost_control_detail_id = ccd.id
- WHERE (cc.trade_type = 10 OR ap.`status` = 10)
- AND cc.`status` IN (30, 60)) t1
- LEFT JOIN calculate_item_balance cib
- ON cib.id_str = t1.subjects_calculate_item_ids and cib.year = YEAR ( t1.expenses_time )
- ${ew.customSqlSegment}
- GROUP BY t1.subjects_calculate_item_ids
- ORDER BY t1.sort ASC
- </select>
- <select id="getRemitDetailPage" resultType="com.fjhx.form.entity.RemitDetailVo">
- SELECT arw.id,
- arw.transaction_time AS transactionTime,
- am.`alias` AS accountAliasName,
- IF(NOT t1.remarks IS NULL, t1.remarks, t2.remarks) AS remark,
- arw.opposite_subject_name AS oppositeSubjectName1,
- arw.sale_expense_category AS saleGroupExpenseCategory,
- IF(arw.`status` = 10, arw.amount, 0) AS incomeAmount,
- IF(arw.`status` = 20, arw.amount, 0) AS expenditureAmount,
- arw.account_remainder AS balanceAmount,
- t2.supplier_names AS supplierName,
- t1.customerShortName AS customerShortName,
- t1.contract_codes AS contractCode,
- t2.subject_name AS subjectName,
- t2.calculate_item_type1 AS calculateItemType1,
- t2.calculate_item_type2 AS calculateItemType2,
- t2.calculate_item_name1 AS calculateItemName1,
- t2.calculate_item_name2 AS calculateItemName2,
- t2.opposite_subject_code AS oppositeSubjectCode,
- t2.opposite_subject_name AS oppositeSubjectName,
- t2.calculate_item_str AS calculateItemStr,
- am.jd_subject_code AS bankSubjectCode,
- am.jd_subject_name AS bankSubjectName,
- t2.subject_calculate_item_str AS subjectCalculateItemStr,
- cc.voucher_no AS voucherNo,
- t1.belongType AS belongType
- FROM account_running_water arw
- JOIN account_management am ON arw.account_management_id = am.id
- LEFT JOIN cost_control cc ON arw.cost_control_id = cc.id
- LEFT JOIN (SELECT cod.cost_control_id,
- GROUP_CONCAT(DISTINCT sui.`name` ) AS supplier_names,
- GROUP_CONCAT(DISTINCT asj.jd_subject_code) AS opposite_subject_code,
- GROUP_CONCAT(DISTINCT asj.jd_subject_name) AS opposite_subject_name,
- GROUP_CONCAT(DISTINCT asj.subjects_name) AS subject_name,
- GROUP_CONCAT(DISTINCT cci_1.calculate_item_type1) AS calculate_item_type1,
- GROUP_CONCAT(DISTINCT cci_1.calculate_item_name1) AS calculate_item_name1,
- GROUP_CONCAT(DISTINCT cci_1.calculate_item_type2) AS calculate_item_type2,
- GROUP_CONCAT(DISTINCT cci_1.calculate_item_name2) AS calculate_item_name2,
- GROUP_CONCAT(DISTINCT cci_1.calculate_item_str) AS calculate_item_str,
- GROUP_CONCAT(DISTINCT asj.subjects_name, CONCAT(' - ', cci_1.calculate_item_name1),
- IF(cci_1.calculate_item_name2 is null, '',
- CONCAT(' - ', cci_1.calculate_item_name2))) AS subject_calculate_item_str,
- GROUP_CONCAT(cod.remark) AS remarks
- FROM cost_control_detail cod
- LEFT JOIN supplier_info sui ON cod.supplier_id = sui.id
- LEFT JOIN account_subjects asj ON cod.account_subjects_id = asj.id
- LEFT JOIN (SELECT cci.cost_control_detail_id,
- GROUP_CONCAT(CONCAT_WS('---', cci.type,
- IFNULL(civ.calculate_item_code, ''),
- civ.calculate_item_name) SEPARATOR '||') AS calculate_item_str,
- GROUP_CONCAT(CASE WHEN cci.sort = 1 THEN cci.business_id END) AS calculate_item_id1,
- GROUP_CONCAT(CASE WHEN cci.sort = 1 THEN cci.type END) AS calculate_item_type1,
- GROUP_CONCAT(CASE WHEN cci.sort = 1 THEN civ.calculate_item_name END) AS calculate_item_name1,
- GROUP_CONCAT(CASE WHEN cci.sort = 2 THEN cci.business_id END) AS calculate_item_id2,
- GROUP_CONCAT(CASE WHEN cci.sort = 2 THEN cci.type END) AS calculate_item_type2,
- GROUP_CONCAT(CASE WHEN cci.sort = 2 THEN civ.calculate_item_name END) AS calculate_item_name2
- FROM cost_calculate_item cci
- LEFT JOIN calculate_item_view civ
- ON cci.business_id = civ.calculate_item_id
- AND
- FIND_IN_SET(cci.type, civ.calculate_item_type)
- GROUP BY cci.cost_control_detail_id) cci_1
- on cci_1.cost_control_detail_id = cod.id
- GROUP BY cod.cost_control_id) t2 ON t2.cost_control_id = cc.id
- LEFT JOIN (SELECT cl.business_id,
- cl.amount,
- GROUP_CONCAT(c.`code`) AS contract_codes,
- cu.`name` AS customerName,
- cu.short_name AS customerShortName,
- GROUP_CONCAT(c.remark) AS contract_remarks,
- GROUP_CONCAT(IF(c.belong_type = 1, "归属工厂",
- IF(c.belong_type = 2, "归属业务", c.belong_type))) AS belongType,
- GROUP_CONCAT(cu.`name`, ' 订单号:', c.`code`, ' 订单金额:', c.currency, ' ',
- c.amount) AS remarks
- FROM claim cl
- JOIN claim_contract clo ON clo.claim_id = cl.id
- LEFT JOIN contract c ON clo.contract_id = c.id
- LEFT JOIN customer cu ON c.buy_corporation_id = cu.id
- GROUP BY cl.id) t1 ON t1.business_id = arw.id
- ${ew.customSqlSegment}
- </select>
- <select id="getAccountsPayablePage" resultType="com.fjhx.form.entity.AccountsPayableVo">
- SELECT t1.id_str,
- t1.supplier_id,
- t1.warehouse_id,
- CONCAT(
- '{',
- GROUP_CONCAT(
- '"',
- date_format(t1.account_period, '%c'),
- '":',
- '{"arrivalAmount":',
- IFNULL(t1.arrival_amount, 0),
- ',"arrivalAdjustAmount":',
- IFNULL(t1.arrival_adjust_amount, 0),
- ',"backAmount":',
- IFNULL(t1.back_amount, 0),
- ',"taxAmount":',
- IFNULL(t1.tax_amount, 0),
- ',"paymentAmount":',
- IFNULL(t1.payment_amount, 0),
- '}'
- ),
- '}'
- ) AS dataJson
- FROM (SELECT t1.id_str,
- t1.supplier_id,
- t1.warehouse_id,
- t1.account_period AS account_period,
- sum(arrival_amount) AS arrival_amount,
- sum(back_amount) AS back_amount,
- sum(arrival_adjust_amount) AS arrival_adjust_amount,
- sum(amount) AS amount,
- sum(amount_including_tax) AS amount_including_tax,
- sum(payment_amount) AS payment_amount,
- (sum(amount_including_tax) - sum(amount)) AS tax_amount
- FROM (SELECT CONCAT(ep.sell_corporation_id, '-', sj.warehouse_id) AS id_str,
- ep.sell_corporation_id as supplier_id,
- sj.warehouse_id,
- sjd.account_period,
- IF
- (
- sj.type =
- 104,
- epp.price *
- sjd.quantity,
- 0) AS arrival_amount,
- IF
- (
- sj.type =
- 6,
- epp.price *
- sjd.quantity,
- 0) AS back_amount,
- ad.adjust_amount AS arrival_adjust_amount,
- epp.price * sjd.quantity AS amount,
- epp.price_including_tax * sjd.quantity AS amount_including_tax,
- NULL AS payment_amount
- FROM stock_journal_details sjd
- LEFT JOIN arrival_detail ad ON sjd.arrival_detail_id = ad.id
- LEFT JOIN ehsd_purchase_product epp ON sjd.purchase_detail_id = epp.id
- JOIN stock_journal sj ON sjd.stock_journal_id = sj.id
- JOIN ehsd_purchase ep ON sjd.purchase_id = ep.id
- UNION ALL
- SELECT CONCAT(ccd.supplier_id, '-', sj.warehouse_id) AS id_str,
- ccd.supplier_id,
- sj.warehouse_id,
- ccd.account_period,
- NULL AS arrival_amount,
- NULL AS back_amount,
- NULL AS arrival_adjust_amount,
- NULL AS amount,
- NULL AS amount_including_tax,
- ccd.money AS payment_amount
- FROM cost_control_detail ccd
- JOIN stock_journal_details sjd
- ON FIND_IN_SET(sjd.id, ccd.stock_journal_details_ids)
- JOIN stock_journal sj ON sjd.stock_journal_id = sj.id
- WHERE sjd.settle_status = 1) t1
- WHERE
- YEAR ( t1.account_period ) = #{year}
- GROUP BY
- t1.id_str,
- date_format( t1.account_period, '%Y-%m' )) AS t1
- GROUP BY t1.id_str
- </select>
- </mapper>
|