diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java index b97ab5fdb..edf3dbd94 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java @@ -44,7 +44,6 @@ import com.xdadan.erp.emis.domain.stat.BillPayStatInfo; import com.xdadan.erp.emis.domain.stat.OpenBillStatInfo; import com.xdadan.erp.emis.mapper.EmisSettleSubBillFeeitemMapper; import com.xdadan.erp.emis.service.*; -import com.xdadan.erp.emis.service.test.CustomCellWriteHandler; import com.xdadan.erp.emis.utils.WaybillHelper; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; @@ -268,6 +267,19 @@ public class EmisSettleBillController extends BaseController } + /** + * 计算指定时间范围内每一天的收款总金额 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @return 每一天的收款总金额 + */ + @GetMapping("/calculateRecedMoney") + public AjaxResult calculateRecedMoney(String beginTime, String endTime) { + Map result = emisSettleBillService.calculateRecedMoney(beginTime, endTime); + return AjaxResult.success(result); + } + /** * 新增运单总账单 */ diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillService.java index 6ad7e1af4..47aa051ba 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillService.java @@ -9,7 +9,9 @@ */ package com.xdadan.erp.emis.service; +import java.math.BigDecimal; import java.util.List; +import java.util.Map; import com.xdadan.erp.common.core.audit.IDataAuditService; import com.xdadan.erp.emis.domain.EmisSettleBill; @@ -127,4 +129,13 @@ public interface IEmisSettleBillService extends IDataAuditService public int reCalcSettleBillPayStatus(String settleBillNo); void exportSeaWayBill(HttpServletResponse response, EmisSettleBill emisSettleBill); + + /** + * 计算指定时间范围内每一天的收款总金额 + * + * @param beginTime 开始时间 + * @param endTime 结束时间 + * @return 每一天的收款总金额 + */ + Map calculateRecedMoney(String beginTime, String endTime); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java index ccecb7339..06b900175 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java @@ -38,7 +38,7 @@ import com.xdadan.erp.emis.domain.stat.OpenBillStatInfo; import com.xdadan.erp.emis.mapper.*; import com.xdadan.erp.emis.service.EmisBaseService; import com.xdadan.erp.emis.service.excelCellStrategy.CellStyleStrategy; -import com.xdadan.erp.emis.service.test.CustomCellWriteHandler; +import com.xdadan.erp.emis.service.excelCellStrategy.CustomCellWriteHandler; import com.xdadan.erp.emis.utils.WaybillHelper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; @@ -936,7 +936,7 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS // 小表头 WriteSheet sheet = EasyExcel.writerSheet("sheet") .needHead(Boolean.FALSE) - .registerWriteHandler(new CustomCellWriteHandler()).build(); + .build(); WriteTable writeTable0 = EasyExcel.writerTable(num).head(contentHeader).build(); excelWriter.write((Collection) null, sheet, writeTable0); @@ -1079,6 +1079,32 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS return 1; } + @Override + public Map calculateRecedMoney(String beginTime, String endTime) { + // 构建查询条件 + EmisSettleBill query = new EmisSettleBill(); + query.setParams(new HashMap<>()); + query.getParams().put("beginTime", beginTime); + query.getParams().put("endTime", endTime); + + // 查询符合条件的记录 + List list = emisSettleBillMapper.selectEmisSettleBillList(query); + + // 按天分组统计金额 + Map dailyAmounts = list.stream() + .filter(bill -> bill.getRecedMoney() != null && bill.getCreateTime() != null) + .collect(Collectors.groupingBy( + bill -> DateUtils.parseDateToStr("yyyy-MM-dd", bill.getCreateTime()), + Collectors.mapping( + EmisSettleBill::getRecedMoney, + Collectors.reducing(BigDecimal.ZERO, (a, b) -> { + BigDecimal sum = a.add(b).stripTrailingZeros(); + return new BigDecimal(sum.toPlainString()); + })))); + + return dailyAmounts; + } + /** * 删除结算总账单信息 *