标段管理-供应进程分析

product
chuang 2 years ago
parent 2375a7addb
commit e4b27256df

@ -102,8 +102,342 @@
</collection> </collection>
</resultMap> </resultMap>
<select id="getMobileDate" resultMap="contractMobileDate"> <select id="getMobileDate" resultMap="contractMobileDate">
SELECT
*
FROM
(
SELECT
a.*,
@doneNum :=(
SELECT
ROUND( IFNULL( SUM( b.settlement ), 0 ), 6 )
FROM
jg_poundlist b
WHERE
a.id = b.sales_id
AND ( b.sales_status != '99' OR ISNULL( b.sales_status ) )
AND ( b.sales_status != '0' OR ISNULL( b.sales_status ) )
AND b.pound_status = '0'
AND b.delete_mark = '0'
) doneNum,
@contractNum := (
IFNULL( a.num, 0 )) contractNum,
ROUND( @contractNum - @doneNum, 6 ) unfinishedNum,
round( IFNULL( @doneNum / @contractNum * 100, 0 ), 2 ) SCHEDULE,
(
SELECT
ROUND( IFNULL( b3.sales_price * IFNULL( SUM( b3.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist b3
WHERE
a.id = b3.sales_id
AND ( b3.sales_status != '99' OR ISNULL( b3.sales_status ) )
AND ( b3.sales_status != '0' OR ISNULL( b3.sales_status ) )
AND b3.pound_status = '0'
AND b3.advance = '1'
AND b3.delete_mark = '0'
) amountDeposit,
ROUND(@doneNum,6) sellNum,
ROUND((
CASE
WHEN timestampdiff(
DAY,
DATE (
NOW()),
DATE_ADD( a.end_date, INTERVAL a.collection_cycle DAY ))> 0 THEN
0 ELSE ( @tradePaymentAmount + @machinePaymentAmount + @outsourcePaymentAmount + @cheapPaymentAmount - @collectedAmount )* IFNULL( a.overdue, 0 )
END
),
6
) overdueInterest,
ROUND( @salesAmount - @tradePurchaseAmount -( @machineCostAmount + @outsourceCostAmount + @cheapCostAmount ), 6 ) netMargin,
@salesAmount :=(
SELECT
ROUND( IFNULL( b.sales_price * IFNULL( SUM( b.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist b
WHERE
a.id = b.sales_id
AND ( b.sales_status != '99' OR ISNULL( b.sales_status ) )
AND ( b.sales_status != '0' OR ISNULL( b.sales_status ) )
AND b.pound_status = '0'
AND b.delete_mark = '0'
) salesAmount,
(
SELECT
ROUND( IFNULL( b1.sales_price * IFNULL( SUM( b1.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist b1
WHERE
a.id = b1.sales_id
AND ( b1.sales_status != '99' OR ISNULL( b1.sales_status ) )
AND ( b1.sales_status != '0' OR ISNULL( b1.sales_status ) )
AND b1.pound_status = '0'
AND b1.is_expense = '1'
AND b1.delete_mark = '0'
) invoiceAmount,
@collectedAmount :=(
SELECT
ROUND( IFNULL( b2.sales_price * IFNULL( SUM( b2.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist b2
WHERE
a.id = b2.sales_id
AND ( b2.sales_status != '99' OR ISNULL( b2.sales_status ) )
AND ( b2.sales_status != '0' OR ISNULL( b2.sales_status ) )
AND b2.pound_status = '0'
AND b2.is_collection = '1'
AND b2.delete_mark = '0'
) collectedAmount,
(
SELECT
ROUND( IFNULL( SUM( c.settlement ), 0 ), 6 )
FROM
jg_poundlist c
WHERE
a.id = c.sales_id
AND c.pound_status = '0'
AND c.pound_type = '0'
AND ( c.purchase_status = '2' OR c.purchase_status = '3' )
AND c.delete_mark = '0'
) purchaseNum,
@tradePurchaseAmount :=(
SELECT
ROUND( IFNULL( c.sales_price * IFNULL( SUM( c.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist c
WHERE
a.id = c.sales_id
AND c.pound_status = '0'
AND c.pound_type = '0'
AND ( c.purchase_status = '2' OR c.purchase_status = '3' )) tradePurchaseAmount,
(
SELECT
ROUND( IFNULL( c1.sales_price * IFNULL( SUM( c1.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist c1
WHERE
a.id = c1.sales_id
AND c1.pound_status = '0'
AND c1.pound_type = '0'
AND ( c1.purchase_status = '2' OR c1.purchase_status = '3' )
AND c1.is_Invoicing = '1'
AND c1.delete_mark = '0'
) tradeInvoiceAmount,
@tradePaymentAmount :=(
SELECT
ROUND( IFNULL( c2.sales_price * IFNULL( SUM( c2.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist c2
WHERE
a.id = c2.sales_id
AND c2.pound_status = '0'
AND c2.pound_type = '0'
AND ( c2.purchase_status = '2' OR c2.purchase_status = '3' )
AND c2.is_pay = '1'
AND c2.delete_mark = '0'
) tradePaymentAmount,
(
SELECT
ROUND( IFNULL( SUM( d.settlement ), 0 ), 6 )
FROM
jg_poundlist d
WHERE
a.id = d.sales_id
AND d.pound_status = '0'
AND d.pound_type = '1'
AND ( d.purchase_status = '2' OR d.purchase_status = '3' )
AND d.delete_mark = '0'
) machineNum,
@machineCostAmount :=(
SELECT
ROUND( IFNULL( d.sales_price * IFNULL( SUM( d.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist d
WHERE
a.id = d.sales_id
AND d.pound_status = '0'
AND d.pound_type = '1'
AND ( d.purchase_status = '2' OR d.purchase_status = '3' )
AND d.delete_mark = '0'
) machineCostAmount,
(
SELECT
ROUND( IFNULL( d1.sales_price * IFNULL( SUM( d1.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist d1
WHERE
a.id = d1.sales_id
AND d1.pound_status = '0'
AND d1.pound_type = '1'
AND ( d1.purchase_status = '2' OR d1.purchase_status = '3' )
AND d1.is_Invoicing = '1'
AND d1.delete_mark = '0'
) machinePurchaseAmount,
@machinePaymentAmount :=(
SELECT
ROUND( IFNULL( d2.sales_price * IFNULL( SUM( d2.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist d2
WHERE
a.id = d2.sales_id
AND d2.pound_status = '0'
AND d2.pound_type = '1'
AND ( d2.purchase_status = '2' OR d2.purchase_status = '3' )
AND d2.is_pay = '1'
AND d2.delete_mark = '0'
) machinePaymentAmount,
(
SELECT
ROUND( IFNULL( SUM( e.settlement ), 0 ), 6 )
FROM
jg_poundlist e
WHERE
a.id = e.sales_id
AND e.pound_status = '0'
AND e.pound_type = '2'
AND ( e.purchase_status = '2' OR e.purchase_status = '3' )
AND e.delete_mark = '0'
) outsourceNum,
@outsourceCostAmount :=(
SELECT
ROUND( IFNULL( e.sales_price * IFNULL( SUM( e.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist e
WHERE
a.id = e.sales_id
AND e.pound_status = '0'
AND e.pound_type = '2'
AND ( e.purchase_status = '2' OR e.purchase_status = '3' )
AND e.delete_mark = '0'
) outsourceCostAmount,
(
SELECT
ROUND( IFNULL( e1.sales_price * IFNULL( SUM( e1.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist e1
WHERE
a.id = e1.sales_id
AND e1.pound_status = '0'
AND e1.pound_type = '2'
AND ( e1.purchase_status = '2' OR e1.purchase_status = '3' )
AND e1.is_Invoicing = '1'
AND e1.delete_mark = '0'
) outsourcePurchaseAmount,
@outsourcePaymentAmount :=(
SELECT
ROUND( IFNULL( e2.sales_price * IFNULL( SUM( e2.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist e2
WHERE
a.id = e2.sales_id
AND e2.pound_status = '0'
AND e2.pound_type = '2'
AND ( e2.purchase_status = '2' OR e2.purchase_status = '3' )
AND e2.is_pay = '1'
AND e2.delete_mark = '0'
) outsourcePaymentAmount,
(
SELECT
ROUND( IFNULL( SUM( f.settlement ), 0 ), 6 )
FROM
jg_poundlist f
WHERE
a.id = f.sales_id
AND f.pound_status = '0'
AND f.pound_type = '3'
AND ( f.purchase_status = '2' OR f.purchase_status = '3' )
AND f.delete_mark = '0'
) cheapNum,
@cheapCostAmount :=(
SELECT
ROUND( IFNULL( f.sales_price * IFNULL( SUM( f.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist f
WHERE
a.id = f.sales_id
AND f.pound_status = '0'
AND f.pound_type = '3'
AND ( f.purchase_status = '2' OR f.purchase_status = '3' )
AND f.delete_mark = '0'
) cheapCostAmount,
(
SELECT
ROUND( IFNULL( f1.sales_price * IFNULL( SUM( f1.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist f1
WHERE
a.id = f1.sales_id
AND f1.pound_status = '0'
AND f1.pound_type = '3'
AND ( f1.purchase_status = '2' OR f1.purchase_status = '3' )
AND f1.is_Invoicing = '1'
AND f1.delete_mark = '0'
) cheapPurchaseAmount,
@cheapPaymentAmount :=(
SELECT
ROUND( IFNULL( f2.sales_price * IFNULL( SUM( f2.settlement ), 0 ), 0 ), 6 )
FROM
jg_poundlist f2
WHERE
a.id = f2.sales_id
AND f2.pound_status = '0'
AND f2.pound_type = '3'
AND ( f2.purchase_status = '2' OR f2.purchase_status = '3' )
AND f2.is_pay = '1'
AND f2.delete_mark = '0'
) cheapPaymentAmount,
( SELECT g.supplier_nm FROM jg_customer g WHERE a.CODE = g.id AND g.delete_mark = '0' ) supperName,
pur.pContractName,
pur.pSupperName,
pur.pNum,
pur.pAmount,
pur.pDoneNum,
pur.pUnfinishedNum
FROM
jg_contract a
LEFT JOIN (
SELECT
b.sales_id id,
h.contract_name pContractName,
j.supplier_name pSupperName,
h.num pNum,
h.amount pAmount,
(
SELECT
IFNULL( SUM( i.settlement ), 0 )
FROM
jg_poundlist i
WHERE
h.id = i.purchase_id
AND ( i.purchase_status = '2' OR i.purchase_status = '3' )
AND i.pound_status = '0'
AND i.delete_mark = '0'
) pDoneNum,
(
SELECT
IFNULL ( h.num, 0 ) - IFNULL( SUM( i.settlement ), 0 )
FROM
jg_poundlist i
WHERE
h.id = i.purchase_id
AND ( i.purchase_status = '2' OR i.purchase_status = '3' )
AND i.pound_status = '0'
AND i.delete_mark = '0'
) pUnfinishedNum
FROM
jg_poundlist b
LEFT JOIN jg_contract h ON b.purchase_id = h.id
AND h.delete_mark = '0'
LEFT JOIN jg_supplier j ON h.CODE = j.id
AND j.delete_mark = '0'
) pur ON a.id = pur.id
) aaa ${ew.customSqlSegment}
</select>
<select id="getMobileDatee" resultMap="contractMobileDate">
SELECT SELECT
* *
FROM FROM

Loading…
Cancel
Save