feat(wms): 新增合同挂接钢卷统计功能

- 在IWmsCoilContractRelService接口中添加queryContractCoilStatistics方法
- 在WmsCoilContractRelController控制器中添加统计查询和导出接口
- 在WmsCoilContractRelMapper中添加selectContractCoilStatistics查询方法
- 实现合同挂接钢卷统计的SQL查询逻辑,支持多条件筛选
- 创建ContractCoilStatisticsBo查询对象和ContractCoilStatisticsVo视图对象
- 开发前端统计页面,包含搜索筛选、统计卡片、图表展示和数据表格
- 集成ECharts实现合同状态分布饼图和销售员挂接钢卷柱状图
- 实现统计数据的Excel导出功能
- 添加响应式设计适配移动端显示
This commit is contained in:
2026-06-30 15:31:35 +08:00
parent 524f8f3333
commit 64d52f1ecf
9 changed files with 837 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
package com.klp.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 合同挂接情况统计视图对象
* 基于 crm_order + wms_coil_contract_rel + wms_material_coil 三表联合统计
*
* @author klp
* @date 2026-06-30
*/
@Data
@ExcelIgnoreUnannotated
public class ContractCoilStatisticsVo {
private static final long serialVersionUID = 1L;
// ========== 合同信息(来自 crm_order==========
/** 订单ID */
@ExcelProperty(value = "订单ID")
private Long orderId;
/** 订单编号 */
@ExcelProperty(value = "订单编号")
private String orderCode;
/** 合同号 */
@ExcelProperty(value = "合同号")
private String contractCode;
/** 合同名称 */
@ExcelProperty(value = "合同名称")
private String contractName;
/** 需方(客户) */
@ExcelProperty(value = "需方")
private String customer;
/** 供方 */
@ExcelProperty(value = "供方")
private String supplier;
/** 销售员 */
@ExcelProperty(value = "销售员")
private String salesman;
/** 合同状态 0=草稿 1=生效 2=作废 3=已完成 */
@ExcelProperty(value = "合同状态")
private Long status;
/** 订单总额 */
@ExcelProperty(value = "订单总额")
private BigDecimal orderAmount;
/** 签订时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ExcelProperty(value = "签订时间")
private Date signTime;
/** 交货日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ExcelProperty(value = "交货日期")
private Date deliveryDate;
// ========== 统计字段 ==========
/** 挂接钢卷数量 */
@ExcelProperty(value = "挂接钢卷数")
private Long coilCount;
/** 钢卷总净重kg */
@ExcelProperty(value = "钢卷总净重(kg)")
private BigDecimal totalNetWeight;
/** 钢卷总毛重kg */
@ExcelProperty(value = "钢卷总毛重(kg)")
private BigDecimal totalGrossWeight;
}