This commit is contained in:
linfso 2024-09-26 22:36:05 +08:00
parent f152a67221
commit a480a1f023
8 changed files with 144 additions and 5 deletions

View File

@ -36,6 +36,7 @@ import com.xdadan.erp.emis.domain.EmisExchangeRate;
import com.xdadan.erp.emis.domain.EmisSettleSubBill;
import com.xdadan.erp.emis.domain.EmisSettleSubBillFeeitem;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.BillPayStatInfo;
import com.xdadan.erp.emis.domain.vo.scan.ScanResult;
import com.xdadan.erp.emis.service.EmisBaseService;
import com.xdadan.erp.emis.service.IEmisExchangeRateService;
@ -93,6 +94,18 @@ public class EmisSettleBillController extends BaseController
private IEmisExchangeRateService emisExchangeRateService;
@GetMapping("/queryBillPayStatInfoList")
public TableDataInfo queryBillPayStatInfoList(EmisSettleBill emisSettleBill)
{
startPage();
setPrivParams(emisSettleBill);
List<BillPayStatInfo> list = emisSettleBillService.selectBillPayStatInfoList(emisSettleBill);
return getDataTable(list);
}
/**
* 查询结算总账单列表
*/

View File

@ -33,7 +33,7 @@ import lombok.Data;
* @date 2024-07-03 18:54:51
*/
@Data
@DataAuditTable(tableName ="emis_settle_bill",tableComment = "客户账单表")
@DataAuditTable(tableName ="emis_settle_bill",tableComment = "客户账单表",bizKey="settleBillNo")
public class EmisSettleBill extends BaseEntity
{
private static final long serialVersionUID = 1L;

View File

@ -33,7 +33,7 @@ import lombok.Data;
* @date 2024-07-03 18:54:52
*/
@Data
@DataAuditTable(tableName ="emis_settle_sub_bill",tableComment = "运单出账表")
@DataAuditTable(tableName ="emis_settle_sub_bill",tableComment = "运单出账表" ,bizKey="billCode")
public class EmisSettleSubBill extends BaseEntity
{

View File

@ -0,0 +1,46 @@
package com.xdadan.erp.emis.domain.stat;
import com.xdadan.erp.emis.domain.EmisWaybill;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 账单回款统计明细
*/
@Data
public class BillPayStatInfo implements Serializable {
private static final long serialVersionUID = 1L;
// 销售联系人
private String salesmen;
private String billMonth;
// 应收金额
private BigDecimal recPayMoney;
// 账单总数量
private Integer totalBillCount;
// 已收款账单数量
private Integer hasPayBillCount;
// 部分收款账单数量
private Integer somePayBillCount;
// 未收款账单数量
private Integer noPayBillCount;
// 账期内已收金额/未收金额
private BigDecimal recdPayMoney;
private BigDecimal noRecdPayMoney;
// 超期已收金额/未收金额
private BigDecimal expiredRecdPayMoney;
private BigDecimal expiredNoRecdPayMoney;
// 账期内回款率
private BigDecimal billPayRate;
// 超期回款率/未回款率
private BigDecimal expireBillPayRate;
private BigDecimal expireBillNoPayRate;
}

View File

@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xdadan.erp.common.annotation.audit.DataAuditLog;
import com.xdadan.erp.common.annotation.audit.OperateType;
import com.xdadan.erp.emis.domain.EmisSettleBill;
import com.xdadan.erp.emis.domain.stat.BillPayStatInfo;
import com.xdadan.erp.emis.service.impl.EmisSettleBillServiceImpl;
import com.xdadan.erp.emis.service.impl.EmisSettleSubBillServiceImpl;
@ -37,6 +38,13 @@ public interface EmisSettleBillMapper extends BaseMapper<EmisSettleBill>
public EmisSettleBill selectSettleBillBySettleBillNo(String settleBillNo);
/**
* 获取统计数据
* @param emisSettleBill
* @return
*/
public List<BillPayStatInfo> selectBillPayStatInfoList(EmisSettleBill emisSettleBill);
/**
* 查询列表
*

View File

@ -14,6 +14,7 @@ import java.util.List;
import com.xdadan.erp.common.core.audit.IDataAuditService;
import com.xdadan.erp.emis.domain.EmisSettleBill;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.BillPayStatInfo;
/**
* @ClassName EmisSettleBillService
@ -34,6 +35,14 @@ public interface IEmisSettleBillService extends IDataAuditService
public EmisSettleBill selectEmisSettleBillBySettleBillNo(String settleBillNo);
/**
* 获取统计数据
* @param emisSettleBill
* @return
*/
public List<BillPayStatInfo> selectBillPayStatInfoList(EmisSettleBill emisSettleBill);
/**
* 查询结算总账单列表
*

View File

@ -25,6 +25,7 @@ import com.xdadan.erp.emis.domain.EmisSettleInvoiceRel;
import com.xdadan.erp.emis.domain.EmisSettleSubBill;
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.BillPayStatInfo;
import com.xdadan.erp.emis.mapper.EmisSettleSubBillMapper;
import com.xdadan.erp.emis.service.EmisBaseService;
import com.xdadan.erp.emis.utils.WaybillHelper;
@ -73,14 +74,23 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
}
/**
* 获取统计数据
* @param emisSettleBill
* @return
*/
@Override
public EmisSettleBill selectEmisSettleBillBySettleBillNo(String settleBillNo)
public List<BillPayStatInfo> selectBillPayStatInfoList(EmisSettleBill emisSettleBill)
{
return emisSettleBillMapper.selectSettleBillBySettleBillNo(settleBillNo);
return emisSettleBillMapper.selectBillPayStatInfoList(emisSettleBill);
}
@Override
public List<EmisSettleBill> selectEmisSettleBillList(EmisSettleBill emisSettleBill)
{
return emisSettleBillMapper.selectEmisSettleBillList(emisSettleBill);
}
/**
* 查询结算总账单列表

View File

@ -67,6 +67,59 @@
</resultMap>
<resultMap type="BillPayStatInfo" id="BillPayStatInfoResult">
<result property="salesmen" column="salesmen" />
<result property="billMonth" column="billMonth" />
<result property="recPayMoney" column="recPayMoney" />
<result property="totalBillCount" column="totalBillCount" />
<result property="hasPayBillCount" column="hasPayBillCount" />
<result property="somePayBillCount" column="somePayBillCount" />
<result property="noPayBillCount" column="noPayBillCount" />
<result property="recdPayMoney" column="recdPayMoney" />
<result property="noRecdPayMoney" column="noRecdPayMoney" />
<result property="expiredRecdPayMoney" column="expiredRecdPayMoney" />
<result property="expiredNoRecdPayMoney" column="expiredNoRecdPayMoney" />
<result property="billPayRate" column="billPayRate" />
<result property="expireBillPayRate" column="expireBillPayRate" />
<result property="expireBillNoPayRate" column="expireBillNoPayRate" />
</resultMap>
<select id="selectBillPayStatInfoList" parameterType="EmisSettleBill" resultMap="BillPayStatInfoResult">
select tba.salesmen,
tba.billMonth,
tba.recPayMoney,
tba.totalBillCount,
tba.hasRecdPayMoney
from (
select salesmen,bill_month as billMonth,
ROUND(sum(rec_money),2) as recPayMoney,
ROUND(sum(send_piece_sum),0) as totalBillCount,
ROUND(sum(reced_money),2) as hasRecdPayMoney
from emis_settle_bill a
<where>
a.del_flag='0'
<if test="billMonth != null and billMonth!='' "> and a.bill_month = #{billMonth}</if>
<if test="openBillStatus != null and openBillStatus != ''"> and a.open_bill_status = #{openBillStatus}</if>
<if test="paymentStatus != null and paymentStatus != ''"> and a.payment_status = #{paymentStatus}</if>
<if test="params.privSiteCode != null and params.privSiteCode != '88888'">
and (
a.salesmen=#{params.privEmpName}
or a.payee=#{params.privEmpName}
or a.salesmen in(
select salesmen from emis_salesmen_rel esr where esr.del_flag='0' and esr.bl_open='1' and now() <![CDATA[ >= ]]> esr.start_date and now() <![CDATA[ <= ]]> esr.end_date and esr.sales_ass=#{params.privEmpName}
)
)
</if>
</where>
group by salesmen,bill_month
) tba
</select>
<sql id="selectEmisSettleBillVo">
select id, settle_bill_no, settle_bill_name, settle_type, settle_start_date, settle_end_date, bill_month, rec_money, reced_money, invoiced_money, cust_no, cust_name, customer_code, customer_name, site_code, site_name, satisfy_money, allowance_money, deduction_money, other_money, satisfy_reason, allowance_reason, deduction_reason, other_reason, open_bill_status, payment_status, charge_status, send_piece_sum, piece_number, fee_weight, uncollected_amount, send_money_sum, refund_amount, refund_money, payee, salesmen, credit_period, credit_period_type, settle_day, payment_due_date, bl_send_oms, bl_confirm_center, confirm_center_date, confirm_center_note, confirm_center_man_code, confirm_center_code, bl_confirm_site, confirm_site_date, confirm_site_man_code, confirm_site_note, confirm_site_code, remark, del_flag, create_by, create_time, update_by, update_time, create_site, update_site from emis_settle_bill a
</sql>