소스 검색

2023年1月30日17:32:10

纪新园 2 년 전
부모
커밋
929d784844

+ 6 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/vo/DataAnalysisVO.java

@@ -50,4 +50,10 @@ public class DataAnalysisVO {
 	private String tenantId;
 
 
+	//实付金额
+	private BigDecimal realPay;
+
+	//未付金额
+	private BigDecimal notPay;
+
 }

+ 3 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/feign/IFinanceClient.java

@@ -36,6 +36,9 @@ public interface IFinanceClient {
 	@GetMapping("/settlement/detail")
 	R<Settlement> detail(Settlement settlement);
 
+	@GetMapping("/settlement/listAll")
+	R<List<Settlement>> listAll(@RequestBody Settlement settlement);
+
 	@PostMapping("/settlement/getById")
 	R<Settlement> getById(@RequestParam Long id);
 

+ 3 - 0
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/ArchivesServiceImpl.java

@@ -207,6 +207,7 @@ public class ArchivesServiceImpl extends ServiceImpl<ArchivesMapper, Archives> i
 	public Map<String, Object> distribution(Archives archives) {
 		Map<String, Object> map = new HashMap<>();
 		List<String> address = new ArrayList<>();
+		List<String> addressOld = new ArrayList<>();
 		List<Integer> sum = new ArrayList<>();
 		R<List<BasicPortDesc>> r = portClient.getPortList(new BasicPortDesc());
 		if (r.isSuccess()) {
@@ -216,6 +217,7 @@ public class ArchivesServiceImpl extends ServiceImpl<ArchivesMapper, Archives> i
 					.eq(Archives::getIsDeleted, 0)
 					.eq(ObjectUtils.isNotNull(portDesc.getName()), Archives::getAddress, portDesc.getName());//状态
 				int count = baseMapper.selectCount(lambdaQueryWrapper);
+				addressOld.add(portDesc.getName());
 				if (portDesc.getName().length() > 4){
 					String newName = portDesc.getName().substring(0,4);
 					newName = newName+"…";
@@ -227,6 +229,7 @@ public class ArchivesServiceImpl extends ServiceImpl<ArchivesMapper, Archives> i
 			}
 		}
 		map.put("name", address);
+		map.put("address", addressOld);
 		map.put("value", sum);
 		return map;
 	}

+ 15 - 2
blade-service/blade-land/src/main/java/org/springblade/land/controller/StatisticsAnalysisController.java

@@ -3,7 +3,6 @@ package org.springblade.land.controller;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -16,8 +15,9 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.finance.feign.IFinanceClient;
+import org.springblade.finance.vojo.Settlement;
 import org.springblade.land.entity.LandOrder;
-import org.springblade.land.entity.OrderItem;
 import org.springblade.land.excel.DataAnalysisDetailsExcel;
 import org.springblade.land.excel.DataAnalysisEXcel;
 import org.springblade.land.service.IOrderItemService;
@@ -50,6 +50,8 @@ public class StatisticsAnalysisController {
 
 	private final ICorpsDescClient corpsDescClient;
 
+	private final IFinanceClient financeClient;
+
 
 	/**
 	 * 数据分析(应收,应付)
@@ -66,6 +68,17 @@ public class StatisticsAnalysisController {
 			order.setCorpId(dataAnalysisVO_.getCorpId());
 			List<Order> orderList = orderDescClient.getByBillNo(order);
 			dataAnalysisVO_.setPlatformBuy(orderList.stream().map(Order::getDebitAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			Settlement settlement = new Settlement();
+			settlement.setCorpId(dataAnalysisVO_.getCorpId());
+			settlement.setBillType("付费");
+			R<List<Settlement>> r = financeClient.listAll(settlement);
+			if (r.isSuccess() && ObjectUtils.isNotNull(r.getData()) && r.getData().size() > 0) {
+				dataAnalysisVO_.setRealPay(r.getData().stream().map(Settlement::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+				dataAnalysisVO_.setNotPay(dataAnalysisVO_.getFreightPay().subtract(dataAnalysisVO_.getRealPay()).subtract(dataAnalysisVO_.getPlatformBuy()));
+			}else{
+				dataAnalysisVO_.setRealPay(new BigDecimal("0.00"));
+				dataAnalysisVO_.setNotPay(dataAnalysisVO_.getFreightPay().subtract(dataAnalysisVO_.getRealPay()).subtract(dataAnalysisVO_.getPlatformBuy()));
+			}
 		}
 		return R.data(pages);
 	}

+ 7 - 8
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java

@@ -851,12 +851,9 @@ public class AccController extends BladeController {
 			.eq(ObjectUtils.isNotNull(acc.getSrcSysno()), Acc::getSrcSysno, acc.getSrcSysno())
 			.eq(StringUtils.isNotBlank(acc.getDc()), Acc::getDc, acc.getDc())
 			.like(ObjectUtil.isNotEmpty(acc.getQuantity()), Acc::getQuantity, acc.getQuantity())
-			.like(ObjectUtil.isNotEmpty(acc.getSettlementAmount()), Acc::getSettlementAmount, acc.getSettlementAmount());
-		if("申请".equals(acc.getBillType())){
-			accLambdaQueryWrapper.eq(ObjectUtils.isNotNull(acc.getCorpId()), Acc::getFleetId, acc.getCorpId());
-		}else{
-			accLambdaQueryWrapper.eq(acc.getCorpId() != null, Acc::getCorpId, acc.getCorpId());
-		}
+			.like(ObjectUtil.isNotEmpty(acc.getSettlementAmount()), Acc::getSettlementAmount, acc.getSettlementAmount())
+			.eq(ObjectUtils.isNotNull(acc.getFleetId()), Acc::getFleetId, acc.getFleetId())
+			.eq(acc.getCorpId() != null, Acc::getCorpId, acc.getCorpId());
 		accLambdaQueryWrapper.gt(acc.getCheckStatus() != null && acc.getCheckStatus() == 1, Acc::getCheckAmount, 0)
 			.eq(acc.getCheckStatus() != null && acc.getCheckStatus() == 2, Acc::getCheckAmount, 0)
 			.gt(acc.getCheckStatus() != null && acc.getCheckStatus() == 1, Acc::getSettlementAmount, 0)
@@ -904,8 +901,10 @@ public class AccController extends BladeController {
 					acc_.setItemName("运费");
 				}
 			}
-			//录入人
-			acc_.setCreateUserName(iUserClient.userInfoById(acc_.getCreateUser()).getData().getRealName());
+			if(ObjectUtils.isNotNull(acc_.getCreateUser())){
+				//录入人
+				acc_.setCreateUserName(iUserClient.userInfoById(acc_.getCreateUser()).getData().getRealName());
+			}
 			if (!"064132".equals(AuthUtil.getTenantId())) {
 				//业务员
 				if (ObjectUtils.isNotNull(acc_.getShipName())) {

+ 97 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/ProfitStatisticsController.java

@@ -0,0 +1,97 @@
+package org.springblade.finance.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.finance.excel.AccProfitStatisticsExcel;
+import org.springblade.finance.service.IAccService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.util.List;
+
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/accProfitStatistics")
+@Api(value = "财务账单-利润统计", tags = "财务账单利润统计接口")
+public class ProfitStatisticsController {
+
+	private final IAccService accService;
+
+
+	/**
+	 * 分页 财务账单
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入acc")
+	public R<IPage<AccProfitStatisticsExcel>> list(AccProfitStatisticsExcel accProfitStatisticsExcel, Query query) {
+		IPage<AccProfitStatisticsExcel> pages = accService.accProfitStatistics(Condition.getPage(query), accProfitStatisticsExcel);
+		for (AccProfitStatisticsExcel accOne : pages.getRecords()) {
+			AccProfitStatisticsExcel accProfitStatisticsExcel1 = new AccProfitStatisticsExcel();
+			accProfitStatisticsExcel1.setBillType("付费");
+			if ("1".equals(accProfitStatisticsExcel.getWhetherStatistics())) {
+				accProfitStatisticsExcel1.setSrcSysno(accOne.getSrcSysno());
+				accProfitStatisticsExcel1.setWhetherStatistics("1");
+			} else {
+				accProfitStatisticsExcel1.setAccSysNo(accOne.getAccSysNo());
+				accProfitStatisticsExcel1.setWhetherStatistics("0");
+			}
+			AccProfitStatisticsExcel accProfitStatisticsExcel_ = accService.getAccProfitStatistics(accProfitStatisticsExcel);
+			if (ObjectUtils.isNotNull(accProfitStatisticsExcel_)) {
+				accOne.setAnswerPayAmount(accProfitStatisticsExcel_.getAnswerPayAmount());
+				accOne.setAlreadyPayAmount(accProfitStatisticsExcel_.getAlreadyPayAmount());
+				accOne.setProfitAmount(accOne.getReceivableAmount().subtract(accProfitStatisticsExcel_.getAnswerPayAmount()));
+			} else {
+				accOne.setAnswerPayAmount(new BigDecimal("0.00"));
+				accOne.setAlreadyPayAmount(new BigDecimal("0.00"));
+				accOne.setProfitAmount(accOne.getReceivableAmount().subtract(new BigDecimal("0.00")));
+			}
+		}
+		return R.data(pages);
+	}
+
+	/**
+	 * 导出
+	 */
+	@GetMapping("/export")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入acc")
+	public void export(AccProfitStatisticsExcel accProfitStatisticsExcel, HttpServletResponse response) {
+		List<AccProfitStatisticsExcel> accProfitStatisticsExcelList = accService.accProfitStatisticsList(accProfitStatisticsExcel);
+		for (AccProfitStatisticsExcel accOne : accProfitStatisticsExcelList) {
+			AccProfitStatisticsExcel accProfitStatisticsExcel1 = new AccProfitStatisticsExcel();
+			accProfitStatisticsExcel1.setBillType("付费");
+			if ("1".equals(accProfitStatisticsExcel.getWhetherStatistics())) {
+				accProfitStatisticsExcel1.setSrcSysno(accOne.getSrcSysno());
+				accProfitStatisticsExcel1.setWhetherStatistics("1");
+			} else {
+				accProfitStatisticsExcel1.setAccSysNo(accOne.getAccSysNo());
+				accProfitStatisticsExcel1.setWhetherStatistics("0");
+			}
+			AccProfitStatisticsExcel accProfitStatisticsExcel_ = accService.getAccProfitStatistics(accProfitStatisticsExcel);
+			if (ObjectUtils.isNotNull(accProfitStatisticsExcel_)) {
+				accOne.setAnswerPayAmount(accProfitStatisticsExcel_.getAnswerPayAmount());
+				accOne.setAlreadyPayAmount(accProfitStatisticsExcel_.getAlreadyPayAmount());
+				accOne.setProfitAmount(accOne.getReceivableAmount().subtract(accProfitStatisticsExcel_.getAnswerPayAmount()));
+			} else {
+				accOne.setAnswerPayAmount(new BigDecimal("0.00"));
+				accOne.setAlreadyPayAmount(new BigDecimal("0.00"));
+				accOne.setProfitAmount(accOne.getReceivableAmount().subtract(new BigDecimal("0.00")));
+			}
+		}
+		ExcelUtil.export(response, "收付费利润统计", "收付费利润统计", accProfitStatisticsExcelList, AccProfitStatisticsExcel.class);
+	}
+
+}

+ 112 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/excel/AccProfitStatisticsExcel.java

@@ -0,0 +1,112 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.finance.excel;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 财务账单实体类
+ *
+ * @author BladeX
+ * @since 2021-11-23
+ */
+@Data
+public class AccProfitStatisticsExcel implements Serializable {
+
+
+	/**
+	 * 合同号
+	 */
+	@ApiModelProperty(value = "合同号")
+	private String accSysNo;
+	/**
+	 * 提单号
+	 */
+	@ApiModelProperty(value = "提单号")
+	private String srcBillNo;
+	/**
+	 * 箱号
+	 */
+	@ApiModelProperty(value = "箱号")
+	private String srcSysno;
+
+	@ApiModelProperty(value = "往来单位")
+	private String corpName;
+
+	/**
+	 * 所属公司
+	 */
+	@ApiModelProperty(value = "所属公司")
+	private String company;
+
+	/**
+	 * 日期
+	 */
+	@ApiModelProperty(value = "日期")
+	private Date date;
+
+	/**
+	 * 应收今额
+	 */
+	@ApiModelProperty(value = "应收今额")
+	private BigDecimal receivableAmount;
+
+	/**
+	 * 已收金额
+	 */
+	@ApiModelProperty(value = "已收金额")
+	private BigDecimal receivedAmount;
+
+	/**
+	 * 应付今额
+	 */
+	@ApiModelProperty(value = "应付今额")
+	private BigDecimal answerPayAmount;
+
+	/**
+	 * 已付金额
+	 */
+	@ApiModelProperty(value = "已付金额")
+	private BigDecimal alreadyPayAmount;
+
+	/**
+	 * 利润
+	 */
+	@ApiModelProperty(value = "利润")
+	private BigDecimal profitAmount;
+
+	/**
+	 * 单据类型
+	 */
+	@TableField(exist = false)
+	private String billType;
+
+	@TableField(exist = false)
+	private String tenantId;
+
+	/**
+	 * 是否统计(0 = 合同号-默认、1 = 箱号)
+	 */
+	@TableField(exist = false)
+	private String whetherStatistics;
+}

+ 7 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.java

@@ -18,6 +18,7 @@ package org.springblade.finance.mapper;
 
 import org.apache.ibatis.annotations.Param;
 import org.springblade.core.tool.api.R;
+import org.springblade.finance.excel.AccProfitStatisticsExcel;
 import org.springblade.finance.vo.CostMessage;
 import org.springblade.finance.vojo.Acc;
 
@@ -94,4 +95,10 @@ public interface AccMapper extends BaseMapper<Acc> {
 	Map<String, Object> SumBillBalance(@Param("acc") Acc acc);
 
     List<Acc> whetherStatistics(IPage<Acc> page, @Param("acc")Acc acc);
+
+	List<AccProfitStatisticsExcel> accProfitStatistics(IPage<AccProfitStatisticsExcel> page, @Param("accProfitStatisticsExcel")AccProfitStatisticsExcel accProfitStatisticsExcel);
+
+	AccProfitStatisticsExcel getAccProfitStatistics(@Param("accProfitStatisticsExcel")AccProfitStatisticsExcel accProfitStatisticsExcel);
+
+	List<AccProfitStatisticsExcel> accProfitStatisticsList(@Param("accProfitStatisticsExcel")AccProfitStatisticsExcel accProfitStatisticsExcel);
 }

+ 124 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.xml

@@ -569,5 +569,129 @@
         Src_Bill_NO,
         Corpid
     </select>
+    <select id="accProfitStatistics" resultType="org.springblade.finance.excel.AccProfitStatisticsExcel">
+        SELECT
+            GROUP_CONCAT( DISTINCT fa.AccSysNo SEPARATOR ',' ) AS accSysNo,
+            GROUP_CONCAT( DISTINCT fa.Src_Bill_NO SEPARATOR ',' ) AS srcBillNo,
+            GROUP_CONCAT( DISTINCT fa.Src_SysNo SEPARATOR ',' ) AS srcSysno,
+            GROUP_CONCAT( DISTINCT bcd.cname SEPARATOR ',' ) AS corpName,
+            GROUP_CONCAT( DISTINCT bcd1.cname SEPARATOR ',' ) AS company,
+            sum( ifnull( fa.Amount, 0 ) ) AS receivableAmount,
+            sum( ifnull( fa.Settlement_Amount, 0 ) ) AS receivedAmount,
+            sum( ifnull( fa.Amount, 0 ) ) AS answerPayAmount,
+            sum( ifnull( fa.Settlement_Amount, 0 ) ) AS alreadyPayAmount
+        FROM
+            finance_acc fa
+            LEFT JOIN basic_corps_desc bcd ON fa.Corpid = bcd.id
+            LEFT JOIN basic_corps_desc bcd1 ON fa.Companyid = bcd1.id
+        WHERE
+            fa.AccSysNo IS NOT NULL
+            AND fa.AccSysNo != ""
+            AND fa.is_deleted = 0
+        <if test="accProfitStatisticsExcel.tenantId !=null and accProfitStatisticsExcel.tenantId !=''">
+            AND fa.tenant_id = #{accProfitStatisticsExcel.tenantId}
+        </if>
+        <if test="accProfitStatisticsExcel.billType !=null and accProfitStatisticsExcel.billType !=''">
+            AND fa.Bill_type = #{accProfitStatisticsExcel.billType}
+        </if>
+        <if test="accProfitStatisticsExcel.accSysNo !=null and accProfitStatisticsExcel.accSysNo !=''">
+            AND fa.AccSysNo = #{accProfitStatisticsExcel.accSysNo}
+        </if>
+        <if test="accProfitStatisticsExcel.srcSysno !=null and accProfitStatisticsExcel.srcSysno !=''">
+            AND fa.Src_SysNo = #{accProfitStatisticsExcel.srcSysno}
+        </if>
+        <if test="accProfitStatisticsExcel.date !=null and accProfitStatisticsExcel.date !=''">
+            AND DATE_FORMAT(fa.create_time,'%Y-%m') = DATE_FORMAT(#{accProfitStatisticsExcel.date},'%Y-%m')
+        </if>
+        <if test="accProfitStatisticsExcel.srcSysno !=null and accProfitStatisticsExcel.srcSysno == 0">
+            GROUP BY fa.AccSysNo
+        </if>
+        <if test="accProfitStatisticsExcel.srcSysno !=null and accProfitStatisticsExcel.srcSysno == 1">
+            GROUP BY fa.Src_SysNo
+        </if>
+
+    </select>
+    <select id="getAccProfitStatistics" resultType="org.springblade.finance.excel.AccProfitStatisticsExcel">
+        SELECT
+        GROUP_CONCAT( DISTINCT fa.AccSysNo SEPARATOR ',' ) AS accSysNo,
+        GROUP_CONCAT( DISTINCT fa.Src_Bill_NO SEPARATOR ',' ) AS srcBillNo,
+        GROUP_CONCAT( DISTINCT fa.Src_SysNo SEPARATOR ',' ) AS srcSysno,
+        GROUP_CONCAT( DISTINCT bcd.cname SEPARATOR ',' ) AS corpName,
+        GROUP_CONCAT( DISTINCT bcd1.cname SEPARATOR ',' ) AS company,
+        sum( ifnull( fa.Amount, 0 ) ) AS receivableAmount,
+        sum( ifnull( fa.Settlement_Amount, 0 ) ) AS receivedAmount,
+        sum( ifnull( fa.Amount, 0 ) ) AS answerPayAmount,
+        sum( ifnull( fa.Settlement_Amount, 0 ) ) AS alreadyPayAmount
+        FROM
+        finance_acc fa
+        LEFT JOIN basic_corps_desc bcd ON fa.Corpid = bcd.id
+        LEFT JOIN basic_corps_desc bcd1 ON fa.Companyid = bcd1.id
+        WHERE
+        fa.AccSysNo IS NOT NULL
+        AND fa.AccSysNo != ""
+        AND fa.is_deleted = 0
+        <if test="accProfitStatisticsExcel.tenantId !=null and accProfitStatisticsExcel.tenantId !=''">
+            AND fa.tenant_id = #{accProfitStatisticsExcel.tenantId}
+        </if>
+        <if test="accProfitStatisticsExcel.billType !=null and accProfitStatisticsExcel.billType !=''">
+            AND fa.Bill_type = #{accProfitStatisticsExcel.billType}
+        </if>
+        <if test="accProfitStatisticsExcel.accSysNo !=null and accProfitStatisticsExcel.accSysNo !=''">
+            AND fa.AccSysNo = #{accProfitStatisticsExcel.accSysNo}
+        </if>
+        <if test="accProfitStatisticsExcel.srcSysno !=null and accProfitStatisticsExcel.srcSysno !=''">
+            AND fa.Src_SysNo = #{accProfitStatisticsExcel.srcSysno}
+        </if>
+        <if test="accProfitStatisticsExcel.date !=null and accProfitStatisticsExcel.date !=''">
+            AND DATE_FORMAT(fa.create_time,'%Y-%m') = DATE_FORMAT(#{accProfitStatisticsExcel.date},'%Y-%m')
+        </if>
+        <if test="accProfitStatisticsExcel.srcSysno !=null and accProfitStatisticsExcel.srcSysno == 0">
+            GROUP BY fa.AccSysNo
+        </if>
+        <if test="accProfitStatisticsExcel.srcSysno !=null and accProfitStatisticsExcel.srcSysno == 1">
+            GROUP BY fa.Src_SysNo
+        </if>
+    </select>
+    <select id="accProfitStatisticsList" resultType="org.springblade.finance.excel.AccProfitStatisticsExcel">
+        SELECT
+        GROUP_CONCAT( DISTINCT fa.AccSysNo SEPARATOR ',' ) AS accSysNo,
+        GROUP_CONCAT( DISTINCT fa.Src_Bill_NO SEPARATOR ',' ) AS srcBillNo,
+        GROUP_CONCAT( DISTINCT fa.Src_SysNo SEPARATOR ',' ) AS srcSysno,
+        GROUP_CONCAT( DISTINCT bcd.cname SEPARATOR ',' ) AS corpName,
+        GROUP_CONCAT( DISTINCT bcd1.cname SEPARATOR ',' ) AS company,
+        sum( ifnull( fa.Amount, 0 ) ) AS receivableAmount,
+        sum( ifnull( fa.Settlement_Amount, 0 ) ) AS receivedAmount,
+        sum( ifnull( fa.Amount, 0 ) ) AS answerPayAmount,
+        sum( ifnull( fa.Settlement_Amount, 0 ) ) AS alreadyPayAmount
+        FROM
+        finance_acc fa
+        LEFT JOIN basic_corps_desc bcd ON fa.Corpid = bcd.id
+        LEFT JOIN basic_corps_desc bcd1 ON fa.Companyid = bcd1.id
+        WHERE
+        fa.AccSysNo IS NOT NULL
+        AND fa.AccSysNo != ""
+        AND fa.is_deleted = 0
+        <if test="accProfitStatisticsExcel.tenantId !=null and accProfitStatisticsExcel.tenantId !=''">
+            AND fa.tenant_id = #{accProfitStatisticsExcel.tenantId}
+        </if>
+        <if test="accProfitStatisticsExcel.billType !=null and accProfitStatisticsExcel.billType !=''">
+            AND fa.Bill_type = #{accProfitStatisticsExcel.billType}
+        </if>
+        <if test="accProfitStatisticsExcel.accSysNo !=null and accProfitStatisticsExcel.accSysNo !=''">
+            AND fa.AccSysNo = #{accProfitStatisticsExcel.accSysNo}
+        </if>
+        <if test="accProfitStatisticsExcel.srcSysno !=null and accProfitStatisticsExcel.srcSysno !=''">
+            AND fa.Src_SysNo = #{accProfitStatisticsExcel.srcSysno}
+        </if>
+        <if test="accProfitStatisticsExcel.date !=null and accProfitStatisticsExcel.date !=''">
+            AND DATE_FORMAT(fa.create_time,'%Y-%m') = DATE_FORMAT(#{accProfitStatisticsExcel.date},'%Y-%m')
+        </if>
+        <if test="accProfitStatisticsExcel.srcSysno !=null and accProfitStatisticsExcel.srcSysno == 0">
+            GROUP BY fa.AccSysNo
+        </if>
+        <if test="accProfitStatisticsExcel.srcSysno !=null and accProfitStatisticsExcel.srcSysno == 1">
+            GROUP BY fa.Src_SysNo
+        </if>
+    </select>
 
 </mapper>

+ 7 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/IAccService.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
+import org.springblade.finance.excel.AccProfitStatisticsExcel;
 import org.springblade.finance.vo.AccVO;
 import org.springblade.finance.vo.CostMessage;
 import org.springblade.finance.vojo.Acc;
@@ -113,4 +114,10 @@ public interface IAccService extends IService<Acc> {
 	Map<String, Object> SumBillBalance(Acc acc);
 
     IPage<Acc> whetherStatistics(IPage<Acc> page, Acc acc);
+
+    IPage<AccProfitStatisticsExcel> accProfitStatistics(IPage<AccProfitStatisticsExcel> page, AccProfitStatisticsExcel accProfitStatisticsExcel);
+
+	AccProfitStatisticsExcel getAccProfitStatistics(AccProfitStatisticsExcel accProfitStatisticsExcel);
+
+	List<AccProfitStatisticsExcel> accProfitStatisticsList(AccProfitStatisticsExcel accProfitStatisticsExcel);
 }

+ 19 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java

@@ -31,6 +31,7 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.finance.excel.AccProfitStatisticsExcel;
 import org.springblade.finance.mapper.AccMapper;
 import org.springblade.finance.mapper.ItemsMapper;
 import org.springblade.finance.mapper.SettlementMapper;
@@ -486,4 +487,22 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 	public IPage<Acc> whetherStatistics(IPage<Acc> page, Acc acc) {
 		return page.setRecords(baseMapper.whetherStatistics(page, acc));
 	}
+
+	@Override
+	public IPage<AccProfitStatisticsExcel> accProfitStatistics(IPage<AccProfitStatisticsExcel> page, AccProfitStatisticsExcel accProfitStatisticsExcel) {
+		accProfitStatisticsExcel.setTenantId(AuthUtil.getTenantId());
+		return page.setRecords(baseMapper.accProfitStatistics(page, accProfitStatisticsExcel));
+	}
+
+	@Override
+	public AccProfitStatisticsExcel getAccProfitStatistics(AccProfitStatisticsExcel accProfitStatisticsExcel) {
+		accProfitStatisticsExcel.setTenantId(AuthUtil.getTenantId());
+		return baseMapper.getAccProfitStatistics(accProfitStatisticsExcel);
+	}
+
+	@Override
+	public List<AccProfitStatisticsExcel> accProfitStatisticsList(AccProfitStatisticsExcel accProfitStatisticsExcel) {
+		accProfitStatisticsExcel.setTenantId(AuthUtil.getTenantId());
+		return baseMapper.accProfitStatisticsList(accProfitStatisticsExcel);
+	}
 }