标段管理-供应进程分析

product
chuang 2 years ago
parent ecd27f33a6
commit 88959e1113

@ -159,6 +159,9 @@ public class ContractMobileVO {
private BigDecimal num;
/*未分配*/
private BigDecimal undistributedNum;
/** 销售数量 **/
private BigDecimal sellNum;
/** 贸易采购 **/

@ -1,7 +1,5 @@
package jnpf.contractMobile.model.contractMobile;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
@ -29,11 +27,11 @@ public class PurchaseContractMobileVO {
private String supperName;
/** 合同数量 **/
@JsonProperty("num")
private BigDecimal num;
/**合同金额 **/
@TableField("AMOUNT")
private BigDecimal amount;
/** 已完成数量 **/
@ -43,4 +41,7 @@ public class PurchaseContractMobileVO {
/** 未完成数量 **/
private BigDecimal unfinishedNum;
/*完成进度*/
private BigDecimal doneSchedule;
/*未分配数量*/
}

@ -19,4 +19,6 @@ import org.apache.ibatis.annotations.Param;
*/
public interface CustomerVMapper extends BaseMapper<CustomerEntity> {
IPage<CustomerMobileEntity> getMobileList(@Param("page")Page<CustomerMobileEntity> page, @Param("ew") Wrapper<CustomerEntity> queryWrapper);
IPage<CustomerMobileEntity> getCustomerMobileVOList(@Param("page")Page<CustomerMobileEntity> page, @Param("ew") Wrapper<CustomerEntity> queryWrapper);
IPage<CustomerMobileEntity> getMobileCustomerVOList(@Param("page")Page<CustomerMobileEntity> page, @Param("ew") Wrapper<CustomerEntity> queryWrapper);
}

@ -0,0 +1,30 @@
package jnpf.customer.model.customer;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author: WangChuang
* @Date: 11/3/2023 2:21
* @Description //注释:
* @Version 1.0
*/
@Data
public class CustomerMobileListVo {
/* 开票总重:所有客户 开票重量 的汇总*/
private BigDecimal invoiceNum;
/* 未开票总重:所有客户 未开票重量 的汇总*/
private BigDecimal noInvoiceNum;
/*垫资总金额:所有客户 垫资金额 的汇总*/
private BigDecimal fundNum;
/* 非垫资总金额:所有客户 非垫资金额 的汇总*/
private BigDecimal noFundNum;
/* 未回款总金额:所有客户 未回款金额 的汇总*/
private BigDecimal noPayCollectionNum;
/*总利润:所有客户 总利润 的汇总*/
private BigDecimal profit;
/*客户统计信息*/
private List<CustomerMobileVO> customerMobileVOS;
}

@ -0,0 +1,40 @@
package jnpf.customer.model.customer;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author: WangChuang
* @Date: 11/3/2023 2:28
* @Description //注释:
* @Version 1.0
*/
@Data
public class CustomerMobileVO {
/*客户名称*/
private String supplierNm;
/*开票重量*/
private BigDecimal invoiceNum;
/*未开票重量*/
private BigDecimal noInvoiceNum;
/*垫资金额*/
private BigDecimal fundNum;
/*非垫资金额*/
private BigDecimal noFundNum;
/*回款金额*/
private BigDecimal payCollectionNum;
/*非回款金额*/
private BigDecimal noPayCollectionNum;
/*总金额*/
private BigDecimal amountSum;
/*总利润*/
private BigDecimal profit;
}

@ -85,6 +85,8 @@
<result column="doneNum" property="doneNum"/>
<!--未完成-->
<result column="unfinishedNum" property="unfinishedNum"/>
<!--未分配-->
<result column="undistributedNum" property="undistributedNum"/>
<collection property="purchaseList" ofType="jnpf.contractMobile.model.contractMobile.PurchaseContractMobileVO" javaType="list">
<!--合同名称-->
@ -99,17 +101,19 @@
<result property="doneNum" column="pDoneNum"></result>
<!-- 未完成数量 -->
<result property="unfinishedNum" column="pUnfinishedNum"></result>
<!--完成进度-->
<result property="doneSchedule" column="doneSchedule"></result>
</collection>
</resultMap>
<select id="getMobileDate" resultMap="contractMobileDate">
SELECT
*
FROM
(
SELECT
a.*,
@doneNum :=(
SELECT
*
FROM
(
SELECT
a.*,
@doneNum :=(
SELECT
ROUND( IFNULL( SUM( b.settlement ), 0 ), 6 )
FROM
@ -138,7 +142,7 @@
AND b3.advance = '1'
AND b3.delete_mark = '0'
) amountDeposit,
ROUND(@doneNum,6) sellNum,
ROUND( @doneNum, 6 ) sellNum,
ROUND((
CASE
@ -395,46 +399,68 @@
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}
pur.pUnfinishedNum,
pur.doneSchedule,
ROUND(
@doneNum - IFNULL((
SELECT
SUM( h.num )
FROM
jg_poundlist b
LEFT JOIN jg_contract h ON b.purchase_id = h.id
AND h.delete_mark = '0'
WHERE
( 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 a.id = b.sales_id
),
0
),
6
) undistributedNum
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,
@pDoneNum := (
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,
ROUND( IFNULL(( @pDoneNum / h.num )* 100, 0 ), 2 ) doneSchedule,
(
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
WHERE
a.delete_mark = '0'
) aaa ${ew.customSqlSegment}
</select>
<select id="getMobileDatee" resultMap="contractMobileDate">

@ -92,7 +92,9 @@
<result column="salesPriceSum" property="salesPriceSum"/>
</resultMap>
<select id="getMobileCustomerVOList" >
<select id="getMobileCustomerVOList" resultMap="customerMobileMap">
SELECT
*
FROM
@ -113,7 +115,7 @@
a.sales_status != '0'
OR ISNULL( a.sales_status ))
AND a.delete_mark = '0'
) 开票总重,(
) invoiceNum,(
SELECT
SUM( a.settlement )
FROM
@ -128,7 +130,7 @@
a.sales_status != '0'
OR ISNULL( a.sales_status ))
AND a.delete_mark = '0'
) 未开票总重,(
) noInvoiceNum,(
SELECT
ROUND( SUM( a.sales_price * a.settlement ), 6 )
FROM
@ -143,7 +145,7 @@
a.sales_status != '0'
OR ISNULL( a.sales_status ))
AND a.delete_mark = '0'
) 垫资总金额,(
) fundNum,(
SELECT
ROUND( SUM( a.sales_price * a.settlement ), 6 )
FROM
@ -158,7 +160,7 @@
a.sales_status != '0'
OR ISNULL( a.sales_status ))
AND a.delete_mark = '0'
) 非垫资总金额,(
) noFundNum,(
SELECT
ROUND( SUM( a.sales_price * a.settlement ), 6 )
FROM
@ -173,7 +175,7 @@
a.sales_status != '0'
OR ISNULL( a.sales_status ))
AND a.delete_mark = '0'
) 未回款金额,(
) noPayCollectionNum,(
SELECT
ROUND( SUM(( a.sales_price - a.purchase_price )* a.settlement ), 6 )
FROM
@ -187,9 +189,165 @@
a.sales_status != '0'
OR ISNULL( a.sales_status ))
AND a.delete_mark = '0'
) 总利润
) profit
FROM
DUAL
) aaa ${ew.customSqlSegment}
) aaa
</select>
<resultMap id="customerMobileMap" type="jnpf.customer.model.customer.CustomerMobileListVo">
<result property="invoiceNum" column="invoiceNum"/>
<result property="noInvoiceNum" column="noInvoiceNum"/>
<result property="fundNum" column="fundNum"/>
<result property="noFundNum" column="noFundNum"/>
<result property="noPayCollectionNum" column="noPayCollectionNum"/>
<result property="profit" column="profit"/>
<result property="profit" column="profit"/>
<collection property="customerMobileVOS" select="jnpf.customer.mapper.CustomerVMapper.getCustomerMobileVOList" fetchType="eager" column="{page=#{page},ew=#{ew}"></collection>
</resultMap>
<select id="getCustomerMobileVOList" resultMap="getCustomerMobileVOMap" >
SELECT
*
FROM
(
SELECT
a.*,
(
SELECT
IFNULL( SUM( b.settlement ), 0 )
FROM
jg_poundlist b
WHERE
a.id = b.customer_id
AND b.is_expense = '1'
AND b.pound_status = '0'
AND (
b.sales_status != '99'
OR ISNULL( b.sales_status ))
AND (
b.sales_status != '0'
OR ISNULL( b.sales_status ))
AND b.delete_mark = '0'
) invoiceNum,
(
SELECT
IFNULL( SUM( c.settlement ), 0 )
FROM
jg_poundlist c
WHERE
a.id = c.customer_id
AND c.is_expense = '0'
AND c.pound_status = '0'
AND (
c.sales_status != '99'
OR ISNULL( c.sales_status ))
AND (
c.sales_status != '0'
OR ISNULL( c.sales_status ))
AND c.delete_mark = '0'
) noInvoiceNum,
(
SELECT
ROUND( IFNULL( SUM( d.sales_price * d.settlement ), 0 ), 6 )
FROM
jg_poundlist d
WHERE
a.id = d.customer_id
AND d.advance = '1'
AND d.pound_status = '0'
AND (
d.sales_status != '99'
OR ISNULL( d.sales_status ))
AND (
d.sales_status != '0'
OR ISNULL( d.sales_status ))
AND d.delete_mark = '0'
) fundNum,
(
SELECT
ROUND( IFNULL( SUM( e.sales_price * e.settlement ), 0 ), 6 )
FROM
jg_poundlist e
WHERE
a.id = e.customer_id
AND e.advance = '0'
AND e.pound_status = '0'
AND (
e.sales_status != '99'
OR ISNULL( e.sales_status ))
AND (
e.sales_status != '0'
OR ISNULL( e.sales_status ))
AND e.delete_mark = '0'
) noFundNum,
@pDataA :=(
SELECT
ROUND( IFNULL( SUM( f.sales_price * f.settlement ), 0 ), 6 )
FROM
jg_poundlist f
WHERE
a.id = f.customer_id
AND f.is_collection = '1'
AND f.pound_status = '0'
AND (
f.sales_status != '99'
OR ISNULL( f.sales_status ))
AND (
f.sales_status != '0'
OR ISNULL( f.sales_status ))
AND f.delete_mark = '0'
) payCollectionNum,
@pDataB :=(
SELECT
ROUND( IFNULL( SUM( g.sales_price * g.settlement ), 0 ), 6 )
FROM
jg_poundlist g
WHERE
a.id = g.customer_id
AND g.is_collection = '0'
AND g.pound_status = '0'
AND (
g.sales_status != '99'
OR ISNULL( g.sales_status ))
AND (
g.sales_status != '0'
OR ISNULL( g.sales_status ))
AND g.delete_mark = '0'
) noPayCollectionNum,
ROUND( @pDataA + @pDataB, 6 ) amountSum,
(
SELECT
ROUND( IFNULL( SUM(( h.sales_price - h.purchase_price )* h.settlement ), 0 ), 6 )
FROM
jg_poundlist h
WHERE
a.id = h.customer_id
AND h.pound_status = '0'
AND (
h.sales_status != '99'
OR ISNULL( h.sales_status ))
AND (
h.sales_status != '0'
OR ISNULL( h.sales_status ))
AND h.delete_mark = '0'
) profit
FROM
jg_customer a
WHERE
a.delete_mark = '0'
) aaa ${ew.customSqlSegment}
</select>
<resultMap id="getCustomerMobileVOMap" type="jnpf.customer.model.customer.CustomerMobileVO">
<result property="supplierNm" column="supplier_nm"/>
<result property="invoiceNum" column="invoiceNum"/>
<result property="noInvoiceNum" column="noInvoiceNum"/>
<result property="fundNum" column="fundNum"/>
<result property="noFundNum" column="noFundNum"/>
<result property="payCollectionNum" column="payCollectionNum"/>
<result property="noPayCollectionNum" column="noPayCollectionNum"/>
<result property="amountSum" column="amountSum"/>
<result property="profit" column="profit"/>
</resultMap>
</mapper>

Loading…
Cancel
Save