## 出货明细汇总统计改为产品销售统计;

This commit is contained in:
cabbage 2025-08-08 11:56:04 +08:00
parent d3cc3dbf9d
commit a0bbf49890
12 changed files with 171 additions and 281 deletions

View File

@ -14,7 +14,7 @@ import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.report.member.service.MemberReportService;
import com.hzs.report.member.service.IMemberReportService;
import com.hzs.report.member.vo.CuMemberWalletVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -29,23 +29,16 @@ import java.util.Map;
/**
* 伞下钱包明细
*
* @Description:
* @Author: ljc
* @Time: 2024/3/22 15:09
* @Classname: CuMemberUnderUmbrellaWalletController
* @Package_name: com.hzs.report.member.controller.manage
*/
@RequestMapping("/manager/wallet")
@RestController
public class CuMemberUnderUmbrellaWalletController extends BaseController {
@Autowired
MemberReportService memberReportService;
private IMemberReportService iMemberReportService;
@Autowired
ITransactionCommonService iTransactionCommonService;
private ITransactionCommonService iTransactionCommonService;
/**
* 查询列表
@ -62,7 +55,7 @@ public class CuMemberUnderUmbrellaWalletController extends BaseController {
return getDataTable(new ArrayList<>());
} else {
startPage();
List<CuMemberWalletVO> cuMemberWalletVOList = memberReportService.selectMemberUnderWalletList(memberWalletVO);
List<CuMemberWalletVO> cuMemberWalletVOList = iMemberReportService.selectMemberUnderWalletList(memberWalletVO);
return getDataTable(cuMemberWalletVOList);
}
}
@ -83,7 +76,7 @@ public class CuMemberUnderUmbrellaWalletController extends BaseController {
if (StringUtils.isEmpty(memberWalletVO.getMemberCode())) {
cuMemberWalletVOList = new ArrayList<>();
} else {
cuMemberWalletVOList = memberReportService.selectMemberUnderWalletList(memberWalletVO);
cuMemberWalletVOList = iMemberReportService.selectMemberUnderWalletList(memberWalletVO);
}
if (CollUtil.isNotEmpty(cuMemberWalletVOList)) {
//枚举翻译

View File

@ -15,13 +15,12 @@ import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.achieve.ext.CuMemberAchieveExt;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.member.base.IMemberServiceApi;
import com.hzs.report.member.param.*;
import com.hzs.report.member.service.IMemberReportService;
import com.hzs.report.member.service.IMemberService;
import com.hzs.report.member.service.MemberReportService;
import com.hzs.report.member.vo.*;
import com.hzs.report.report.service.ICuMemberSettlePeriodService;
import com.hzs.system.base.IAreaServiceApi;
@ -43,7 +42,7 @@ import java.util.stream.Collectors;
public class MemberReportController extends BaseController {
@Autowired
private MemberReportService memberReportService;
private IMemberReportService iMemberReportService;
@Autowired
private ITransactionCommonService iTransactionCommonService;
@Autowired
@ -89,12 +88,12 @@ public class MemberReportController extends BaseController {
//伞下直推新增业绩
startPage();
List<DirectPushNewVo> memberList = memberReportService.directPushNewList(pkMember, memberName, pkAwards, pkTeamCode, pkCountry, startPayTime, endPayTime, pkVertex);
List<DirectPushNewVo> memberList = iMemberReportService.directPushNewList(pkMember, memberName, pkAwards, pkTeamCode, pkCountry, startPayTime, endPayTime, pkVertex);
if (CollectionUtil.isNotEmpty(memberList)) {
startPayTime = DateUtils.getStartTime(startPayTime);
endPayTime = DateUtils.getEndTime(endPayTime);
List<DirectPushNewVo> achieList = memberReportService.directPushNewAchieList(pkMember, startPayTime, endPayTime, orderTypeList, pkCountry);
List<DirectPushNewVo> achieList = iMemberReportService.directPushNewAchieList(pkMember, startPayTime, endPayTime, orderTypeList, pkCountry);
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
memberList.forEach(itm -> {
@ -138,14 +137,14 @@ public class MemberReportController extends BaseController {
directPushNewVo.setEndPayTime(date);
}
//伞下直推新增业绩
List<DirectPushNewVo> memberList = memberReportService.directPushNewList(pkMember, directPushNewVo.getMemberName(),
List<DirectPushNewVo> memberList = iMemberReportService.directPushNewList(pkMember, directPushNewVo.getMemberName(),
directPushNewVo.getPkAwards(), directPushNewVo.getPkTeamCode(), pkCountry, directPushNewVo.getStartPayTime(),
directPushNewVo.getEndPayTime(), directPushNewVo.getPkVertex());
if (CollectionUtil.isNotEmpty(memberList)) {
Date startPayTime = DateUtils.getStartTime(directPushNewVo.getStartPayTime());
Date endPayTime = DateUtils.getEndTime(directPushNewVo.getEndPayTime());
List<DirectPushNewVo> achieList = memberReportService.directPushNewAchieList(pkMember, startPayTime, endPayTime, orderTypeList, pkCountry);
List<DirectPushNewVo> achieList = iMemberReportService.directPushNewAchieList(pkMember, startPayTime, endPayTime, orderTypeList, pkCountry);
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EOrderBusiness.values());
@ -212,10 +211,10 @@ public class MemberReportController extends BaseController {
dpo.setSettleTableNameSta(TableNameConstants.CU_MEMBER_TREE + DateUtils.getMonth(startDateStr));
dpo.setSettleTableNameEnd(TableNameConstants.CU_MEMBER_TREE + DateUtils.getMonth(endDateStr));
//伞下直推新增业绩
List<DirectPushNewVo> memberList = memberReportService.directPushNewList(pkMember, memberName, pkAwards, pkTeamCode, pkCountry, startPayTime, endPayTime, pkVertex);
List<DirectPushNewVo> memberList = iMemberReportService.directPushNewList(pkMember, memberName, pkAwards, pkTeamCode, pkCountry, startPayTime, endPayTime, pkVertex);
if (CollectionUtil.isNotEmpty(memberList)) {
CurrencyDTO currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry()).getData();
List<DirectPushNewVo> achieList = memberReportService.directPushNewAchieUpList(dpo, pkMember, orderType);
List<DirectPushNewVo> achieList = iMemberReportService.directPushNewAchieUpList(dpo, pkMember, orderType);
Integer finalOrderType = orderType;
memberList.forEach(itm -> {
@ -283,10 +282,10 @@ public class MemberReportController extends BaseController {
dpo.setSettleTableNameSta(TableNameConstants.CU_MEMBER_TREE + DateUtils.getMonth(startDateStr));
dpo.setSettleTableNameEnd(TableNameConstants.CU_MEMBER_TREE + DateUtils.getMonth(endDateStr));
//伞下直推新增业绩
List<DirectPushNewVo> memberList = memberReportService.directPushNewList(pkMember, memberName, pkAwards, pkTeamCode, pkCountry, startPayTime, endPayTime, pkVertex);
List<DirectPushNewVo> memberList = iMemberReportService.directPushNewList(pkMember, memberName, pkAwards, pkTeamCode, pkCountry, startPayTime, endPayTime, pkVertex);
if (CollectionUtil.isNotEmpty(memberList)) {
CurrencyDTO currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry()).getData();
List<DirectPushNewVo> achieList = memberReportService.directPushNewAchieUpList(dpo, pkMember, orderType);
List<DirectPushNewVo> achieList = iMemberReportService.directPushNewAchieUpList(dpo, pkMember, orderType);
Integer finalOrderType = orderType;
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EOrderUpBusiness.values());
@ -311,7 +310,7 @@ public class MemberReportController extends BaseController {
@GetMapping("/member-consumption")
public TableDataInfo memberConsumptionList(String memberCode, String memberName, Date startPayTime, Date endPayTime, Integer pkWares) {
startPage();
List<MemberConsumptionVo> memberReportList = memberReportService.memberConsumptionList(memberCode, memberName, startPayTime, endPayTime, pkWares);
List<MemberConsumptionVo> memberReportList = iMemberReportService.memberConsumptionList(memberCode, memberName, startPayTime, endPayTime, pkWares);
return getDataTable(memberReportList);
}
@ -321,7 +320,7 @@ public class MemberReportController extends BaseController {
@Log(module = EOperationModule.STATISTIC_ANALYSIS, business = EOperationBusiness.MEMBER_CONSUMPTION, method = EOperationMethod.EXPORT)
@PostMapping("/member-consumption-export")
public void memberConsumptionListExport(MemberConsumptionParam memberConsumptionParam, HttpServletResponse response) {
List<MemberConsumptionVo> memberReportList = memberReportService.memberConsumptionList(memberConsumptionParam.getMemberCode(), memberConsumptionParam.getMemberName(), memberConsumptionParam.getStartPayTime(), memberConsumptionParam.getEndPayTime(), memberConsumptionParam.getPkWares());
List<MemberConsumptionVo> memberReportList = iMemberReportService.memberConsumptionList(memberConsumptionParam.getMemberCode(), memberConsumptionParam.getMemberName(), memberConsumptionParam.getStartPayTime(), memberConsumptionParam.getEndPayTime(), memberConsumptionParam.getPkWares());
ExcelUtil<MemberConsumptionVo> util = new ExcelUtil<>(MemberConsumptionVo.class);
util.exportExcel(response, memberReportList, "用户消费统计导出");
}
@ -349,7 +348,7 @@ public class MemberReportController extends BaseController {
Integer pkCountry = SecurityUtils.getPkCountry();
List<Integer> orderTypeList = EOrderBusiness.getOrderTypeList(orderType);
List<MemberResettleAchieveVo> memberResettleAchieveList = memberReportService.memberResettleAchieve(member.getPkId(), memberName, startPayTime, endPayTime,
List<MemberResettleAchieveVo> memberResettleAchieveList = iMemberReportService.memberResettleAchieve(member.getPkId(), memberName, startPayTime, endPayTime,
pkVertex, pkTeamCode, pkCountry, pkAwards, orderTypeList);
Map<Integer, MemberResettleAchieveVo> memberResettleAchieveMap = memberResettleAchieveList.stream().collect(Collectors.toMap(MemberResettleAchieveVo::getPlaceDept, Function.identity()));
@ -406,7 +405,7 @@ public class MemberReportController extends BaseController {
Integer pkCountry = SecurityUtils.getPkCountry();
List<Integer> orderTypeList = EOrderBusiness.getOrderTypeList(memberResettleAchieveParam.getOrderType());
List<MemberResettleAchieveVo> memberResettleAchieveList = memberReportService.memberResettleAchieve(member.getPkId(), memberResettleAchieveParam.getMemberName(), memberResettleAchieveParam.getStartPayTime(),
List<MemberResettleAchieveVo> memberResettleAchieveList = iMemberReportService.memberResettleAchieve(member.getPkId(), memberResettleAchieveParam.getMemberName(), memberResettleAchieveParam.getStartPayTime(),
memberResettleAchieveParam.getEndPayTime(), memberResettleAchieveParam.getPkVertex(), memberResettleAchieveParam.getPkTeamCode(), pkCountry, memberResettleAchieveParam.getPkAwards(), orderTypeList);
Map<Integer, MemberResettleAchieveVo> memberResettleAchieveMap = memberResettleAchieveList.stream().collect(Collectors.toMap(MemberResettleAchieveVo::getPlaceDept, Function.identity()));
@ -494,9 +493,9 @@ public class MemberReportController extends BaseController {
String staAchieveTableName = TableNameConstants.CU_MEMBER_ACHIEVE + DateUtils.getMonth(startDateStr);
String endAchieveTableName = TableNameConstants.CU_MEMBER_ACHIEVE + DateUtils.getMonth(endDateStr);
List<MemberResettleAchieveVo> staAchieveList = memberReportService.selectBrollyNewABAchieve(member.getPkId(), memberName, startPayTime, endPayTime,
List<MemberResettleAchieveVo> staAchieveList = iMemberReportService.selectBrollyNewABAchieve(member.getPkId(), memberName, startPayTime, endPayTime,
pkVertex, pkTeamCode, pkCountry, pkAwards, staAchieveTableName, staPeriod);
List<MemberResettleAchieveVo> endAchieveList = memberReportService.selectBrollyNewABAchieve(member.getPkId(), memberName, startPayTime, endPayTime,
List<MemberResettleAchieveVo> endAchieveList = iMemberReportService.selectBrollyNewABAchieve(member.getPkId(), memberName, startPayTime, endPayTime,
pkVertex, pkTeamCode, pkCountry, pkAwards, endAchieveTableName, endPeriod);
if (CollectionUtil.isNotEmpty(staAchieveList) && CollectionUtil.isNotEmpty(endAchieveList)) {
@ -573,9 +572,9 @@ public class MemberReportController extends BaseController {
String staAchieveTableName = TableNameConstants.CU_MEMBER_ACHIEVE + DateUtils.getMonth(startDateStr);
String endAchieveTableName = TableNameConstants.CU_MEMBER_ACHIEVE + DateUtils.getMonth(endDateStr);
List<MemberResettleAchieveVo> staAchieveList = memberReportService.selectBrollyNewABAchieve(member.getPkId(), memberName, startPayTime, endPayTime,
List<MemberResettleAchieveVo> staAchieveList = iMemberReportService.selectBrollyNewABAchieve(member.getPkId(), memberName, startPayTime, endPayTime,
pkVertex, pkTeamCode, pkCountry, pkAwards, staAchieveTableName, staPeriod);
List<MemberResettleAchieveVo> endAchieveList = memberReportService.selectBrollyNewABAchieve(member.getPkId(), memberName, startPayTime, endPayTime,
List<MemberResettleAchieveVo> endAchieveList = iMemberReportService.selectBrollyNewABAchieve(member.getPkId(), memberName, startPayTime, endPayTime,
pkVertex, pkTeamCode, pkCountry, pkAwards, endAchieveTableName, endPeriod);
if (CollectionUtil.isNotEmpty(staAchieveList) && CollectionUtil.isNotEmpty(endAchieveList)) {
@ -615,11 +614,11 @@ public class MemberReportController extends BaseController {
return getDataTable(new ArrayList<>());
}
startPage();
List<OrderCurrencyVo> memberResettleAchieveList = memberReportService.getOrderCurrencyList(memberCode, memberName, orderCode, orderType);
List<OrderCurrencyVo> memberResettleAchieveList = iMemberReportService.getOrderCurrencyList(memberCode, memberName, orderCode, orderType);
List<String> orderCodeList = memberResettleAchieveList.stream().map(OrderCurrencyVo::getOrderCode).collect(Collectors.toList());
List<MemberTradeVo> memberTradeVoList = new ArrayList<>();
if (orderCodeList.size() > 0) {
memberTradeVoList = memberReportService.getBySourceCodeMemberTradeList(orderCodeList);
memberTradeVoList = iMemberReportService.getBySourceCodeMemberTradeList(orderCodeList);
}
for (OrderCurrencyVo orderCurrencyVo : memberResettleAchieveList) {
@ -688,80 +687,36 @@ public class MemberReportController extends BaseController {
startPage();
if (area == 1) {
// 查询省
orderDistributionList = memberReportService.getByProvinceOrderDistribution(startTime, endTime, pkCountry);
orderDistributionList = iMemberReportService.getByProvinceOrderDistribution(startTime, endTime, pkCountry);
} else if (area == 2) {
// 查询市
orderDistributionList = memberReportService.getByCityOrderDistribution(startTime, endTime, pkCountry);
orderDistributionList = iMemberReportService.getByCityOrderDistribution(startTime, endTime, pkCountry);
} else if (area == 3) {
// 查询区县
orderDistributionList = memberReportService.getByDistrictOrderDistribution(startTime, endTime, pkCountry);
orderDistributionList = iMemberReportService.getByDistrictOrderDistribution(startTime, endTime, pkCountry);
}
return getDataTable(orderDistributionList);
}
/**
* 出货明细汇总统计
*
* @param
* @return
* 产品销售统计列表
*/
@Log(module = EOperationModule.STATISTIC_ANALYSIS, business = EOperationBusiness.PRODUCT_SHIPPING_DETAILS_LIST, method = EOperationMethod.SELECT)
@GetMapping("/product-shipping-details-list")
public TableDataInfo productShippingDetailsList(String productName, Integer pkClassify, Date startTime, Date endTime, Integer orderType) {
@Log(module = EOperationModule.STATISTIC_ANALYSIS, business = EOperationBusiness.PRODUCT_SHIPPING, method = EOperationMethod.SELECT)
@GetMapping("/product-shipping")
public TableDataInfo productShipping(ProductShippingParam param) {
startPage();
Integer pkCountry = SecurityUtils.getPkCountry();
List<Integer> orderTypeList = EOrderShipment.getOrderTypeList(orderType);
if (endTime != null) {
endTime = DateUtils.getEndTime(endTime);
}
List<ProductOrderInfoVo> memberReportList = memberReportService.getProductOrderInfo(productName, pkClassify, startTime, endTime, pkCountry, orderTypeList);
for (ProductOrderInfoVo productOrderInfoVo : memberReportList) {
if (productOrderInfoVo.getProductPrice() != null) {
productOrderInfoVo.setProductTotalPrice(productOrderInfoVo.getProductPrice());
} else {
productOrderInfoVo.setProductTotalPrice(BigDecimal.ZERO);
}
if (productOrderInfoVo.getOrderType() != null) {
productOrderInfoVo.setOrderTypeStr(EOrderType.getEnumByValue(productOrderInfoVo.getOrderType()).getLabel());
}
}
// 计算总计
Integer count = memberReportService.sumQuantity(productName, pkClassify, startTime, endTime, pkCountry, orderTypeList);
ProductOrderInfoVo productOrderInfoVo = new ProductOrderInfoVo();
productOrderInfoVo.setProductCode("总计");
productOrderInfoVo.setProductName("-");
productOrderInfoVo.setQuantity(count);
productOrderInfoVo.setProductTotalPrice(BigDecimal.ZERO);
memberReportList.add(productOrderInfoVo);
List<ProductShippingVO> memberReportList = iMemberReportService.getProductOrderInfo(param);
return getDataTable(memberReportList);
}
/**
* 出货明细汇总导出
*
* @return
* 产品销售统计导出
*/
@Log(module = EOperationModule.STATISTIC_ANALYSIS, business = EOperationBusiness.PRODUCT_SHIPPING_DETAILS_LIST, method = EOperationMethod.EXPORT)
@PostMapping("/product-shipping-details-export")
public void productShippingDetailsExport(String productName, Integer pkClassify, Date startTime, Date endTime, Integer orderType, HttpServletResponse response) {
Integer pkCountry = SecurityUtils.getPkCountry();
List<Integer> orderTypeList = EOrderShipment.getOrderTypeList(orderType);
if (endTime != null) {
endTime = DateUtils.getEndTime(endTime);
}
List<ProductOrderInfoVo> memberReportList = memberReportService.getProductOrderInfo(productName, pkClassify, startTime, endTime, pkCountry, orderTypeList);
for (ProductOrderInfoVo productOrderInfoVo : memberReportList) {
if (productOrderInfoVo.getProductPrice() != null) {
productOrderInfoVo.setProductTotalPrice(productOrderInfoVo.getProductPrice());
} else {
productOrderInfoVo.setProductTotalPrice(BigDecimal.ZERO);
}
if (productOrderInfoVo.getOrderType() != null) {
productOrderInfoVo.setOrderTypeStr(EOrderType.getEnumByValue(productOrderInfoVo.getOrderType()).getLabel());
}
}
ExcelUtil<ProductOrderInfoVo> util = new ExcelUtil<>(ProductOrderInfoVo.class);
@Log(module = EOperationModule.STATISTIC_ANALYSIS, business = EOperationBusiness.PRODUCT_SHIPPING, method = EOperationMethod.EXPORT)
@PostMapping("/product-shipping-export")
public void productShippingExport(HttpServletResponse response, ProductShippingParam param) {
List<ProductShippingVO> memberReportList = iMemberReportService.getProductOrderInfo(param);
ExcelUtil<ProductShippingVO> util = new ExcelUtil<>(ProductShippingVO.class);
util.exportExcel(response, memberReportList, "出货明细汇总导出");
}
@ -782,7 +737,7 @@ public class MemberReportController extends BaseController {
if (endTime != null) {
endTime = DateUtils.getEndTime(endTime);
}
List<ProductShippingDetailsInfoVo> productOrderInfoVoList = memberReportService.productShippingDetailsList(pkProduct, productName, pkClassify, pkAwards, orderTypeList, startTime, endTime, pkCountry);
List<ProductShippingDetailsInfoVo> productOrderInfoVoList = iMemberReportService.productShippingDetailsList(pkProduct, productName, pkClassify, pkAwards, orderTypeList, startTime, endTime, pkCountry);
for (ProductShippingDetailsInfoVo productShippingDetailsInfoVo : productOrderInfoVoList) {
productShippingDetailsInfoVo.setAwardsPrice(productShippingDetailsInfoVo.getPrice());
productShippingDetailsInfoVo.setPriceTotal(productShippingDetailsInfoVo.getPrice().multiply(BigDecimal.valueOf(productShippingDetailsInfoVo.getQuantity())));
@ -807,7 +762,7 @@ public class MemberReportController extends BaseController {
if (productShippingDetailsParam.getEndTime() != null) {
productShippingDetailsParam.setEndTime(productShippingDetailsParam.getEndTime());
}
List<ProductShippingDetailsInfoVo> productOrderInfoVoList = memberReportService.productShippingDetailsList(productShippingDetailsParam.getPkProduct(), productShippingDetailsParam.getProductName(), productShippingDetailsParam.getPkClassify(), productShippingDetailsParam.getPkAwards(), orderTypeList, productShippingDetailsParam.getStartTime(), productShippingDetailsParam.getEndTime(), pkCountry);
List<ProductShippingDetailsInfoVo> productOrderInfoVoList = iMemberReportService.productShippingDetailsList(productShippingDetailsParam.getPkProduct(), productShippingDetailsParam.getProductName(), productShippingDetailsParam.getPkClassify(), productShippingDetailsParam.getPkAwards(), orderTypeList, productShippingDetailsParam.getStartTime(), productShippingDetailsParam.getEndTime(), pkCountry);
for (ProductShippingDetailsInfoVo productShippingDetailsInfoVo : productOrderInfoVoList) {
productShippingDetailsInfoVo.setAwardsPrice(productShippingDetailsInfoVo.getPrice());
productShippingDetailsInfoVo.setPriceTotal(productShippingDetailsInfoVo.getPrice().multiply(BigDecimal.valueOf(productShippingDetailsInfoVo.getQuantity())));
@ -831,7 +786,7 @@ public class MemberReportController extends BaseController {
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
startPage();
reportSummaryVo.setPkCountry(SecurityUtils.getPkCountry());
List<ReportSummaryVo> reportSummaryList = memberReportService.reportSummaryList(reportSummaryVo);
List<ReportSummaryVo> reportSummaryList = iMemberReportService.reportSummaryList(reportSummaryVo);
for (ReportSummaryVo summaryVo : reportSummaryList) {
if (summaryVo.getRegisterAuthority() != null) {
summaryVo.setRegisterName(ERegistrationAuthority.getEnumByValue(summaryVo.getRegisterAuthority()).getLabel());
@ -860,7 +815,7 @@ public class MemberReportController extends BaseController {
}
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
reportSummaryVo.setPkCountry(SecurityUtils.getPkCountry());
List<ReportSummaryVo> reportSummaryList = memberReportService.reportSummaryList(reportSummaryVo);
List<ReportSummaryVo> reportSummaryList = iMemberReportService.reportSummaryList(reportSummaryVo);
for (ReportSummaryVo summaryVo : reportSummaryList) {
if (summaryVo.getRegisterAuthority() != null) {
summaryVo.setRegisterName(ERegistrationAuthority.getEnumByValue(summaryVo.getRegisterAuthority()).getLabel());
@ -1009,7 +964,7 @@ public class MemberReportController extends BaseController {
List<Integer> orderTypeList = EOrderShipment.getOrderTypeList(productDetailQueryParam.getOrderType());
productDetailQueryParam.setOrderTypeList(orderTypeList);
productDetailQueryParam.setPkCountry(SecurityUtils.getPkCountry());
List<ProductDetailQueryVo> productDetailList = memberReportService.productDetailQueryList(productDetailQueryParam);
List<ProductDetailQueryVo> productDetailList = iMemberReportService.productDetailQueryList(productDetailQueryParam);
for (ProductDetailQueryVo productDetailQueryVo : productDetailList) {
if (productDetailQueryVo.getPayType() != null) {
EPayType payType = EPayType.getEnumByValue(productDetailQueryVo.getPayType());
@ -1065,7 +1020,7 @@ public class MemberReportController extends BaseController {
List<Integer> orderTypeList = EOrderShipment.getOrderTypeList(productDetailQueryParam.getOrderType());
productDetailQueryParam.setOrderTypeList(orderTypeList);
productDetailQueryParam.setPkCountry(SecurityUtils.getPkCountry());
List<ProductDetailQueryVo> productDetailList = memberReportService.productDetailQueryList(productDetailQueryParam);
List<ProductDetailQueryVo> productDetailList = iMemberReportService.productDetailQueryList(productDetailQueryParam);
for (ProductDetailQueryVo productDetailQueryVo : productDetailList) {
if (productDetailQueryVo.getPayType() != null) {
EPayType payType = EPayType.getEnumByValue(productDetailQueryVo.getPayType());

View File

@ -1,24 +1,13 @@
package com.hzs.report.member.controller.manage;/**
* @Description:
* @Author: yuhui
* @Time: 2024/7/17 14:36
* @Classname: ProductSalesStatController
* @PackageName: com.hzs.report.member.controller.manage
*/
package com.hzs.report.member.controller.manage;
import com.github.pagehelper.PageInfo;
import com.hzs.common.core.constant.HttpStatus;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.utils.poi.ExcelUtil;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.report.member.service.MemberReportService;
import com.hzs.report.member.vo.ProductSaleProductVO;
import com.hzs.report.member.service.IMemberReportService;
import com.hzs.report.member.vo.ProductSaleStatVo;
import com.hzs.report.member.vo.ProductSaleWaresVO;
import com.hzs.report.member.vo.WaresInfoVO;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
@ -34,24 +23,14 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @BelongsProject: hzs_cloud
* @BelongsPackage: com.hzs.report.member.controller.manage
* @Author: yh
* @CreateTime: 2024-07-17 14:36
* @Description: TODO
* @Version: 1.0
*/
@RequestMapping("/manager/product-sales")
@RestController
public class ProductSalesStatController extends BaseController {
@Autowired
private MemberReportService memberReportService;
private IMemberReportService iMemberReportService;
/**
* 产品销量统计
@ -73,7 +52,7 @@ public class ProductSalesStatController extends BaseController {
if (endTime != null) {
endTime = DateUtils.getEndTime(endTime);
}
List<ProductSaleStatVo> productSaleStatList = memberReportService.productSaleStatList(skuCode, productName, orderType, startTime, endTime, pkCountry);
List<ProductSaleStatVo> productSaleStatList = iMemberReportService.productSaleStatList(skuCode, productName, orderType, startTime, endTime, pkCountry);
for (ProductSaleStatVo productSaleStatVo : productSaleStatList) {
// 产品+ 规格分组 计算小计
productSaleStatVo.setGroupByInfo(productSaleStatVo.getPkProduct() + "-" + productSaleStatVo.getSpecsNameId());
@ -186,7 +165,7 @@ public class ProductSalesStatController extends BaseController {
if (endTime != null) {
endTime = DateUtils.getEndTime(endTime);
}
List<ProductSaleStatVo> productSaleStatList = memberReportService.productSaleStatList(skuCode, productName, orderType, startTime, endTime, pkCountry);
List<ProductSaleStatVo> productSaleStatList = iMemberReportService.productSaleStatList(skuCode, productName, orderType, startTime, endTime, pkCountry);
for (ProductSaleStatVo productSaleStatVo : productSaleStatList) {
// 产品+ 规格分组 计算小计
productSaleStatVo.setGroupByInfo(productSaleStatVo.getPkProduct() + "-" + productSaleStatVo.getSpecsNameId());

View File

@ -9,7 +9,7 @@ import com.hzs.common.core.utils.poi.ExcelUtil;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.report.member.service.MemberReportService;
import com.hzs.report.member.service.IMemberReportService;
import com.hzs.report.member.vo.SmallAreaNewAddAchieveVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -23,22 +23,14 @@ import java.util.List;
/**
* 小区新增业绩统计
*
* @Description:
* @Author: ljc
* @Time: 2024/3/1 14:52
* @Classname: SmallAreaNewAddAchieve
* @Package_name: com.hzs.report.member.controller.manage
*/
@RequestMapping("/manager/small-achieve")
@RestController
public class SmallAreaNewAddAchieveController extends BaseController {
@Autowired
MemberReportService memberReportService;
private IMemberReportService iMemberReportService;
@Log(module = EOperationModule.STATISTIC_ANALYSIS, business = EOperationBusiness.SMALL_AREA_NEW_ACHIEVE, method = EOperationMethod.SELECT)
@PostMapping("/achieve-list")
@ -49,7 +41,7 @@ public class SmallAreaNewAddAchieveController extends BaseController {
areaNewAddAchieveVOList = new ArrayList<>();
} else {
startPage();
areaNewAddAchieveVOList = memberReportService.selectSmallAreaNewAdd(addAchieveVO);
areaNewAddAchieveVOList = iMemberReportService.selectSmallAreaNewAdd(addAchieveVO);
}
return getDataTable(areaNewAddAchieveVOList);
}
@ -62,7 +54,7 @@ public class SmallAreaNewAddAchieveController extends BaseController {
if (StringUtils.isEmpty(addAchieveVO.getStartDate()) || StringUtils.isEmpty(addAchieveVO.getEndDate()) || null == addAchieveVO.getAchieve()) {
areaNewAddAchieveVOList = new ArrayList<>();
} else {
areaNewAddAchieveVOList = memberReportService.selectSmallAreaNewAdd(addAchieveVO);
areaNewAddAchieveVOList = iMemberReportService.selectSmallAreaNewAdd(addAchieveVO);
}
ExcelUtil<SmallAreaNewAddAchieveVO> util = new ExcelUtil<>(SmallAreaNewAddAchieveVO.class);
util.exportExcel(response, areaNewAddAchieveVOList, "小区新增业绩");

View File

@ -1,6 +1,7 @@
package com.hzs.report.member.mapper;
import com.hzs.report.member.param.ProductDetailQueryParam;
import com.hzs.report.member.param.ProductShippingParam;
import com.hzs.report.member.vo.*;
import org.apache.ibatis.annotations.Param;
@ -130,20 +131,9 @@ public interface MemberReportMapper {
List<OrderDistribution> getByDistrictOrderDistribution(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("pkCountry") Integer pkCountry);
/**
* 出货明细汇总
*
* @param productName
* @param pkClassify
* @param startTime
* @param endTime
* @return
* 产品销售统计列表
*/
List<ProductOrderInfoVo> getProductOrderInfo(@Param("productName") String productName,
@Param("pkClassify") Integer pkClassify,
@Param("startTime") Date startTime,
@Param("endTime") Date endTime,
@Param("pkCountry") Integer pkCountry,
@Param("orderTypeList") List<Integer> orderTypeList);
List<ProductShippingVO> getProductOrderInfo(@Param("param") ProductShippingParam param);
/**
* 报单汇总

View File

@ -0,0 +1,35 @@
package com.hzs.report.member.param;
import lombok.Data;
/**
* 产品销售统计入参
*/
@Data
public class ProductShippingParam {
/**
* 仓储编号
*/
private String wmsCode;
/**
* 产品编号
*/
private String productCode;
/**
* 产品名称
*/
private String productName;
/**
* 开始时间
*/
private String startTime;
/**
* 结束时间
*/
private String endTime;
}

View File

@ -1,12 +1,13 @@
package com.hzs.report.member.service;
import com.hzs.report.member.param.ProductDetailQueryParam;
import com.hzs.report.member.param.ProductShippingParam;
import com.hzs.report.member.vo.*;
import java.util.Date;
import java.util.List;
public interface MemberReportService {
public interface IMemberReportService {
/**
* 查询伞下直推新增业绩-查询会员
@ -101,13 +102,9 @@ public interface MemberReportService {
List<OrderDistribution> getByDistrictOrderDistribution(Date startTime, Date endTime, Integer pkCountry);
/**
* 出货明细汇总
*
* @param productName
* @param pkClassify
* @return
* 产品销售统计列表
*/
List<ProductOrderInfoVo> getProductOrderInfo(String productName, Integer pkClassify, Date startTime, Date endTime, Integer pkCountry, List<Integer> orderTypeList);
List<ProductShippingVO> getProductOrderInfo(ProductShippingParam param);
/**
* 报单汇总

View File

@ -11,7 +11,8 @@ import com.hzs.common.domain.system.config.BdAccount;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.report.member.mapper.MemberReportMapper;
import com.hzs.report.member.param.ProductDetailQueryParam;
import com.hzs.report.member.service.MemberReportService;
import com.hzs.report.member.param.ProductShippingParam;
import com.hzs.report.member.service.IMemberReportService;
import com.hzs.report.member.vo.*;
import com.hzs.report.report.service.ICuMemberSettlePeriodService;
import com.hzs.system.base.ICurrencyServiceApi;
@ -36,7 +37,7 @@ import java.util.stream.Collectors;
@Slf4j
@Service
public class MemberReportServiceImpl implements MemberReportService {
public class IMemberReportServiceImpl implements IMemberReportService {
@Autowired
private MemberReportMapper memberReportMapper;
@ -109,8 +110,8 @@ public class MemberReportServiceImpl implements MemberReportService {
}
@Override
public List<ProductOrderInfoVo> getProductOrderInfo(String productName, Integer pkClassify, Date startTime, Date endTime, Integer pkCountry, List<Integer> orderTypeList) {
return memberReportMapper.getProductOrderInfo(productName, pkClassify, startTime, endTime, pkCountry, orderTypeList);
public List<ProductShippingVO> getProductOrderInfo(ProductShippingParam param) {
return memberReportMapper.getProductOrderInfo(param);
}
@Override

View File

@ -1,83 +0,0 @@
package com.hzs.report.member.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2023/8/31 17:28
* @Classname: ProductOrderInfoVo
* @PackageName: com.hzs.report.member.vo
*/
import com.hzs.common.core.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.report.member.vo
*@Author: yh
*@CreateTime: 2023-08-31 17:28
*@Description: TODO
*@Version: 1.0
*/
@Data
public class ProductOrderInfoVo {
/**
* 所属产品
*/
private Integer pkProduct;
/**
* 产品编号
*/
@Excel(name = "产品编号")
private String productCode;
/**
* 产品名称
*/
@Excel(name = "产品名称")
private String productName;
/**
* 产品分类
*/
@Excel(name = "产品分类")
private String classifyName;
/**
* 产品价格
*/
// @Excel(name = "产品价格")
private BigDecimal productPrice;
/**
* 产品单位
*/
@Excel(name = "产品单位")
private String productUnit;
/**
* 订单类型
*/
private Integer orderType;
/**
* 订单类型
*/
@Excel(name = "订单类型")
private String orderTypeStr;
/**
* 产品数量
*/
@Excel(name = "产品数量")
private Integer quantity;
/**
* 产品总价总价
*/
@Excel(name = "产品总价")
private BigDecimal productTotalPrice;
}

View File

@ -0,0 +1,35 @@
package com.hzs.report.member.vo;
import com.hzs.common.core.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
@Data
public class ProductShippingVO implements Serializable {
/**
* 仓储编号
*/
@Excel(name = "仓储编号")
private String wmsCode;
/**
* 产品名称
*/
@Excel(name = "产品名称")
private String productName;
/**
* 产品编号
*/
@Excel(name = "产品编号")
private String productCode;
/**
* 销量
*/
@Excel(name = "销量")
private Integer quantity;
}

View File

@ -387,49 +387,42 @@
group by sa.REC_PROVINCE ,ar.NAME , ci.NAME,ba.NAME
</select>
<select id="getProductOrderInfo" resultType="com.hzs.report.member.vo.ProductOrderInfoVo">
select oi.PK_PRODUCT pkProduct,
so.ORDER_TYPE orderType ,
sum(oi.QUANTITY)quantity,
min(a.productCode) productCode,
min(a.productName) productName ,
min(a.classifyName) classifyName,
sum(oi.price * oi.QUANTITY) productPrice,
min(a.productUnit) productUnit,
min(a.pkClassify) pkClassify
from SA_ORDER_ITEMS oi
left join sa_order so on oi.PK_ORDER = so.pk_id
<!-- 产品销售统计列表 -->
<select id="getProductOrderInfo" resultType="com.hzs.report.member.vo.ProductShippingVO">
select bp.wms_code,
nvl(sum(tmp.quantity), 0) quantity,
to_char(wm_concat(bp.product_name)) product_name,
to_char(wm_concat(bp.product_code)) product_code
from bd_product bp
left join (
select bp.PRODUCT_CODE productCode,bp.PRODUCT_NAME productName,bc.NAME classifyName,bc.pk_id pkClassify,bp.pk_id pkProduct,bu.NAME productUnit
from BD_PRODUCT bp
left join bd_classify bc on bc.PK_ID = bp.PK_CLASSIFY
left join bd_unit bu on bu.PK_ID = bp.UNIT
select soi.pk_product, sum(soi.quantity) quantity
from sa_order so
left join sa_order_items soi
on soi.pk_order = so.pk_id
and soi.del_flag = 0
where so.del_flag = 0
and so.order_status = 1
<if test="param.startTime != null">
and so.pay_time >= to_date(#{param.startTime}, 'yyyy-mm-dd')
</if>
<if test="param.endTime != null">
and to_date(#{param.endTime} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss') >= so.pay_time
</if>
group by soi.pk_product
) tmp
on tmp.pk_product = bp.pk_id
where bp.del_flag = 0
) a on a.pkProduct = oi.PK_PRODUCT
where a.productCode is not null
and oi.del_flag = 0 and so.del_flag = 0 and so.ORDER_STATUS = 1
<if test="startTime != null">
and to_char(so.PAY_TIME, 'yyyy-mm-dd hh24:mi:ss') &gt;= to_char(#{startTime}, 'yyyy-mm-dd hh24:mi:ss')
<if test="param.wmsCode != null and param.wmsCode !=''">
and bp.wms_code = #{param.wmsCode}
</if>
<if test="endTime != null">
and to_char(so.PAY_TIME, 'yyyy-mm-dd hh24:mi:ss') &lt;= to_char(#{endTime}, 'yyyy-mm-dd hh24:mi:ss')
<if test="param.productCode != null and param.productCode !=''">
and bp.product_code = #{param.productCode}
</if>
<if test="productName != null and productName !=''">
and a.productName = #{productName}
<if test="param.productName != null and param.productName !=''">
and bp.productName like '%' || #{param.productName} ||'%'
</if>
<if test="pkClassify != null">
and a.pkClassify = #{pkClassify}
</if>
<if test="pkCountry != null">
and so.PK_COUNTRY = #{pkCountry}
</if>
<if test="orderTypeList != null and orderTypeList.size > 0">
and SO.ORDER_TYPE in
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
group by oi.PK_PRODUCT , so.ORDER_TYPE
group by bp.wms_code
order by quantity desc
</select>
<select id="reportSummaryList" resultType="com.hzs.report.member.vo.ReportSummaryVo">

View File

@ -398,8 +398,11 @@ public enum EOperationBusiness {
MEMBER_RESETTLE_ACHIEVE("伞下新增安置业绩"),
ORDER_CURRENCY_LIST("订单币种查询"),
GET_ORDER_DISTRIBUTION("订单分布统计"),
PRODUCT_SHIPPING_DETAILS_LIST("出货明细汇总统计"),
PRODUCT_SHIPPING("产品销售统计"),
PRODUCT_SHIPPING_DETAILS_INFO_LIST("出货明细汇总统计详情"),
REPORT_SUMMARY_LIST("报单汇总"),
PLACE_PEG("安置反查"),
PARENT_PEG("推荐反查"),