Browse Source

费用率调整,加了 传去OA的几个费用率查询函数

contract
15989082884@163.com 2 years ago
parent
commit
26ce635192
  1. 10
      src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java
  2. 2
      src/main/java/com/qs/serve/modules/bir/entity/so/BirCostRoiSo.java
  3. 4
      src/main/java/com/qs/serve/modules/bir/entity/vo/BirRoiCostItemVo.java
  4. 46
      src/main/java/com/qs/serve/modules/bir/entity/vo/BirRoiVo.java
  5. 29
      src/main/java/com/qs/serve/modules/bir/entity/vo/YtdQtdToOAVo.java
  6. 3
      src/main/java/com/qs/serve/modules/bir/mapper/BirRoiRateMapper.java
  7. 8
      src/main/java/com/qs/serve/modules/bir/service/BirRoiRateService.java
  8. 270
      src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java
  9. 6
      src/main/java/com/qs/serve/modules/erp/mapper/ErpDispatchDataMapper.java
  10. 37
      src/main/resources/mapper/bir/BirRoiRateMapper.xml
  11. 13
      src/main/resources/mapper/erp/ErpDispatchDataMapper.xml

10
src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java

@ -12,6 +12,7 @@ import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.modules.bir.entity.BirBaseActivity; import com.qs.serve.modules.bir.entity.BirBaseActivity;
import com.qs.serve.modules.bir.entity.so.BirCostRoiSo; import com.qs.serve.modules.bir.entity.so.BirCostRoiSo;
import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo; import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo;
import com.qs.serve.modules.bir.entity.vo.BirRoiVo;
import com.qs.serve.modules.bir.service.BirBaseActivityService; import com.qs.serve.modules.bir.service.BirBaseActivityService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -79,8 +80,13 @@ public class BirRoiRateController {
*/ */
@RepeatSubmit @RepeatSubmit
@GetMapping("/costYearMonth") @GetMapping("/costYearMonth")
public R<List<BirRoiCostItemVo>> getCostRoiOfYearMonth(BirCostRoiSo param){ public R<BirRoiVo> getCostRoiOfYearMonth(BirCostRoiSo param){
return R.ok(birRoiRateService.getCostRoiOfYearMonth(param)); BirRoiVo vo = new BirRoiVo();
List<BirRoiCostItemVo> itemList = birRoiRateService.getCostRoiOfYearMonth(param);
vo.setItemList(itemList);
vo.setYtdPercent(birRoiRateService.getYtdPercent(itemList));
vo.setQtdPercent(birRoiRateService.getQtdPercent(itemList));
return R.ok(vo);
} }

2
src/main/java/com/qs/serve/modules/bir/entity/so/BirCostRoiSo.java

@ -23,5 +23,5 @@ public class BirCostRoiSo {
*/ */
private Integer loadType; private Integer loadType;
private String userId;
} }

4
src/main/java/com/qs/serve/modules/bir/entity/vo/BirRoiCostItemVo.java

@ -32,7 +32,7 @@ public class BirRoiCostItemVo {
private BigDecimal costAmt; private BigDecimal costAmt;
/** /**
* 核销金额实际金额+预估金额 * 核销金额实际金额
*/ */
private BigDecimal checkAmt; private BigDecimal checkAmt;
@ -56,5 +56,7 @@ public class BirRoiCostItemVo {
*/ */
private BigDecimal dispatchAmt; private BigDecimal dispatchAmt;
private Float ytdPercent;
private Float qtdPercent;
} }

46
src/main/java/com/qs/serve/modules/bir/entity/vo/BirRoiVo.java

@ -5,56 +5,16 @@ import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List;
/** /**
* @author YenHex * @author YenHex
* @since 2023/6/6 * @since 2023/6/6
*/ */
@Data @Data
public class BirRoiCostItemVo { public class BirRoiVo {
/** private List<BirRoiCostItemVo> itemList;
* /
*/
private Integer yearMonth;
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDate yearMonthDate;
/**
* 预估金额
*/
private BigDecimal preAmt;
/**
* 费用金额实际金额+预估金额
*/
private BigDecimal costAmt;
/**
* 核销金额实际金额
*/
private BigDecimal checkAmt;
/**
* 费用金额实际金额
*/
private BigDecimal costRealAmt;
/**
* 核销金额实际金额
*/
private BigDecimal checkRealAmt;
/**
* 利润金额
*/
private BigDecimal returnAmt;
/**
* 发货金额(原发货金额)
*/
private BigDecimal dispatchAmt;
private Float ytdPercent; private Float ytdPercent;

29
src/main/java/com/qs/serve/modules/bir/entity/vo/YtdQtdToOAVo.java

@ -0,0 +1,29 @@
package com.qs.serve.modules.bir.entity.vo;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2023/6/6
*/
@Data
public class YtdQtdToOAVo {
private Float ytdCustomerPercent;
private Float ytdUserPercent;
private Float ytdRegion2Percent;
private Float ytdRegionPercent;
private Float qtdCustomerPercent;
private Float qtdUserPercent;
private Float qtdRegion2Percent;
private Float qtdRegionPercent;
}

3
src/main/java/com/qs/serve/modules/bir/mapper/BirRoiRateMapper.java

@ -7,6 +7,7 @@ import com.qs.serve.modules.bir.entity.dto.BirRoiCostDTO;
import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo; import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@ -23,5 +24,7 @@ public interface BirRoiRateMapper extends BaseMapper<BirRoiRate> {
@InterceptorIgnore(tenantLine = "1") @InterceptorIgnore(tenantLine = "1")
List<BirRoiCostItemVo> queryRoiCostItems(@Param("query") BirRoiCostDTO param); List<BirRoiCostItemVo> queryRoiCostItems(@Param("query") BirRoiCostDTO param);
@InterceptorIgnore(tenantLine = "1")
BigDecimal querySumAmt(@Param("query") BirRoiCostDTO param);
} }

8
src/main/java/com/qs/serve/modules/bir/service/BirRoiRateService.java

@ -6,6 +6,8 @@ import com.qs.serve.modules.bir.entity.BirRoiRate;
import com.qs.serve.modules.bir.entity.dto.BirRoiCostDTO; import com.qs.serve.modules.bir.entity.dto.BirRoiCostDTO;
import com.qs.serve.modules.bir.entity.so.BirCostRoiSo; import com.qs.serve.modules.bir.entity.so.BirCostRoiSo;
import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo; import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo;
import com.qs.serve.modules.bir.entity.vo.YtdQtdToOAVo;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import java.util.List; import java.util.List;
@ -30,5 +32,11 @@ public interface BirRoiRateService extends IService<BirRoiRate> {
*/ */
List<BirRoiCostItemVo> getCostRoiOfYearMonth(BirCostRoiSo param); List<BirRoiCostItemVo> getCostRoiOfYearMonth(BirCostRoiSo param);
Float getYtdPercent(List<BirRoiCostItemVo> list);
Float getQtdPercent(List<BirRoiCostItemVo> list);
YtdQtdToOAVo buildYtdAndQtdData(TbsCostApply apply);
} }

270
src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java

@ -6,10 +6,12 @@ import com.qs.serve.common.model.dto.DateSplitDTO;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.DateSplitUtil; import com.qs.serve.common.util.DateSplitUtil;
import com.qs.serve.modules.bir.entity.dto.BirRoiCostDTO; import com.qs.serve.modules.bir.entity.dto.BirRoiCostDTO;
import com.qs.serve.modules.bir.entity.so.BirCostRoiSo; import com.qs.serve.modules.bir.entity.so.BirCostRoiSo;
import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo; import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo;
import com.qs.serve.modules.bir.entity.vo.YtdQtdToOAVo;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.erp.entity.ErpDispatchData; import com.qs.serve.modules.erp.entity.ErpDispatchData;
@ -18,6 +20,7 @@ import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysUserMapper; import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -29,6 +32,7 @@ import com.qs.serve.modules.bir.mapper.BirRoiRateMapper;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.Month;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -102,68 +106,10 @@ public class BirRoiRateServiceImpl extends ServiceImpl<BirRoiRateMapper,BirRoiRa
BirRoiCostDTO costDTO = new BirRoiCostDTO(); BirRoiCostDTO costDTO = new BirRoiCostDTO();
costDTO.setStartMonthNum(startMonthNum); costDTO.setStartMonthNum(startMonthNum);
costDTO.setEndMonthNum(currMonthNum); costDTO.setEndMonthNum(currMonthNum);
BmsSupplier bmsSupplier = bmsSupplierMapper.selectById(supplierId);
List<String> supplierCodeList = new ArrayList<>();
LambdaQueryWrapper<BmsSupplier> lqw = new LambdaQueryWrapper<>(); //设置查询条件和返回客户CODELIST
lqw.select(BmsSupplier::getId,BmsSupplier::getCode); List<String> supplierCodeList = setBiroiCostDTOAndFindSupplierCodes(costDTO,supplierId,loadType,param.getUserId());
if(loadType.equals(0)){
//0->客户
supplierCodeList.add(bmsSupplier.getCode());
costDTO.setSupplierId(supplierId);
}else if (loadType.equals(1)){
//1->申请人的客户
String userId = AuthContextUtils.getSysUserId();
costDTO.setNotSupplierId(supplierId);
costDTO.setUserId(userId);
//加载用户的其它供应商编码
BmsSupplier param4Supplier = new BmsSupplier();
param4Supplier.setUserId(userId);
List<BmsSupplier> supplierList = bmsSupplierMapper.selectSupplierList(param4Supplier);
List<String> supplierCodes = supplierList.stream()
.filter(a->!a.getId().equals(supplierId)).map(BmsSupplier::getCode)
.distinct().collect(Collectors.toList());
supplierCodeList.addAll(supplierCodes);
}else if(loadType.equals(2)){
//2->客户的行政区域
if(checkNotNullVale(bmsSupplier.getRegion2Fourthly())){
lqw.eq(BmsSupplier::getRegion2Fourthly,bmsSupplier.getRegion2Fourthly());
}else if (checkNotNullVale(bmsSupplier.getRegion2Third())){
lqw.eq(BmsSupplier::getRegion2Third,bmsSupplier.getRegion2Third());
} if (checkNotNullVale(bmsSupplier.getRegion2Second())){
lqw.eq(BmsSupplier::getRegion2Second,bmsSupplier.getRegion2Second());
} if (checkNotNullVale(bmsSupplier.getRegion2First())){
lqw.eq(BmsSupplier::getRegion2First,bmsSupplier.getRegion2First());
}else{
lqw.eq(BmsSupplier::getId,"0");
}
}else if(loadType.equals(3)){
//3->客户的销售区域
if(checkNotNullVale(bmsSupplier.getRegionFourthly())){
lqw.eq(BmsSupplier::getRegionFourthly,bmsSupplier.getRegionFourthly());
}else if (checkNotNullVale(bmsSupplier.getRegionThird())){
lqw.eq(BmsSupplier::getRegionThird,bmsSupplier.getRegionThird());
} if (checkNotNullVale(bmsSupplier.getRegionSecond())){
lqw.eq(BmsSupplier::getRegionSecond,bmsSupplier.getRegionSecond());
} if (checkNotNullVale(bmsSupplier.getRegionFirst())){
lqw.eq(BmsSupplier::getRegionFirst,bmsSupplier.getRegionFirst());
}else{
lqw.eq(BmsSupplier::getId,"0");
}
}
if (loadType.equals(2)||loadType.equals(3)){
List<BmsSupplier> supplierList = bmsSupplierMapper.selectList(lqw);
List<String> supplierIds = supplierList.stream().map(BmsSupplier::getId)
.distinct().collect(Collectors.toList());
List<String> supplierCodes = supplierList.stream().map(BmsSupplier::getCode)
.distinct().collect(Collectors.toList());
supplierCodeList.addAll(supplierCodes);
//防止空值
supplierIds.add("0");
costDTO.setSupplierIds(supplierIds);
}
//防止空值
supplierCodeList.add("0");
List<BirRoiCostItemVo> costItemVoList = this.queryRoiCostItems(costDTO); List<BirRoiCostItemVo> costItemVoList = this.queryRoiCostItems(costDTO);
//发货单 //发货单
@ -228,5 +174,207 @@ public class BirRoiRateServiceImpl extends ServiceImpl<BirRoiRateMapper,BirRoiRa
return val!=null&&!val.equals("0"); return val!=null&&!val.equals("0");
} }
public Float getYtdPercent(List<BirRoiCostItemVo> list){
Float ytdPercent = null;
LocalDate currMonth = LocalDate.now();
if(currMonth.getMonthValue()==1){
return ytdPercent;
}
BigDecimal costAmt = BigDecimal.ZERO;
BigDecimal dispatchAmt = BigDecimal.ZERO;
int currMonthNum = currMonth.getYear()*100 + currMonth.getMonthValue();
int startMonthNum = currMonth.getYear()*100 + 1;
for(BirRoiCostItemVo vo:list){
if(vo.getYearMonth()<=currMonthNum && vo.getYearMonth()>=startMonthNum){
costAmt = costAmt.add(vo.getCostAmt());
dispatchAmt = dispatchAmt.add(vo.getDispatchAmt());
}
}
if(dispatchAmt.compareTo(BigDecimal.ZERO)>0) {
ytdPercent = costAmt.divide(dispatchAmt,4, RoundingMode.HALF_UP).floatValue();
}
return ytdPercent;
}
public Float getQtdPercent(List<BirRoiCostItemVo> list){
Float qtdPercent = null;
LocalDate currMonth = LocalDate.now();
if(currMonth.getMonthValue()==1){
return qtdPercent;
}
// 获取当前季度的第一个月
Month firstMonthOfQuarter = currMonth.getMonth().firstMonthOfQuarter();
// 获取当季第一个月的整数表示
int firstMonthInteger = firstMonthOfQuarter.getValue();
if(firstMonthInteger == currMonth.getMonthValue()){
return qtdPercent;
}
int currMonthNum = currMonth.getYear()*100 + currMonth.getMonthValue();
int startMonthNum = currMonth.getYear()*100 + firstMonthInteger;
BigDecimal costAmt = BigDecimal.ZERO;
BigDecimal dispatchAmt = BigDecimal.ZERO;
for(BirRoiCostItemVo vo:list){
if(vo.getYearMonth()<=currMonthNum && vo.getYearMonth()>=startMonthNum){
costAmt = costAmt.add(vo.getCostAmt());
dispatchAmt = dispatchAmt.add(vo.getDispatchAmt());
}
}
if(dispatchAmt.compareTo(BigDecimal.ZERO)>0) {
qtdPercent = costAmt.divide(dispatchAmt,4, RoundingMode.HALF_UP).floatValue();
}
return qtdPercent;
}
public YtdQtdToOAVo buildYtdAndQtdData(TbsCostApply apply){
YtdQtdToOAVo vo = new YtdQtdToOAVo();
getYtdData(vo,apply.getSupplierId().toString(), apply.getUserId());
getQtdData(vo,apply.getSupplierId().toString(), apply.getUserId());
return vo;
}
private void getYtdData(YtdQtdToOAVo vo,String supplierId,String userId){
LocalDate currMonth = LocalDate.now();
if(currMonth.getMonthValue()==1){
return ;
}
int currMonthNum = currMonth.getYear()*100 + currMonth.getMonthValue();
int startMonthNum = currMonth.getYear()*100 + 1;
BirRoiCostDTO costDTO = new BirRoiCostDTO();
costDTO.setStartMonthNum(startMonthNum);
costDTO.setEndMonthNum(currMonthNum);
Float customerPercent = getPercenDateByLoadType(0,costDTO,supplierId,userId);
Float userPercent = getPercenDateByLoadType(1,costDTO,supplierId,userId);;
Float region2Percent = getPercenDateByLoadType(2,costDTO,supplierId,userId);;
Float regionPercent = getPercenDateByLoadType(3,costDTO,supplierId,userId);;
vo.setYtdCustomerPercent(customerPercent);
vo.setYtdUserPercent(userPercent);
vo.setYtdRegion2Percent(region2Percent);
vo.setYtdRegionPercent(regionPercent);
}
private void getQtdData(YtdQtdToOAVo vo,String supplierId,String userId){
LocalDate currMonth = LocalDate.now();
if(currMonth.getMonthValue()==1){
return ;
}
Month firstMonthOfQuarter = currMonth.getMonth().firstMonthOfQuarter();
// 获取当季第一个月的整数表示
int firstMonthInteger = firstMonthOfQuarter.getValue();
if(firstMonthInteger == currMonth.getMonthValue()){
return ;
}
int currMonthNum = currMonth.getYear()*100 + currMonth.getMonthValue();
int startMonthNum = currMonth.getYear()*100 + firstMonthInteger;
BirRoiCostDTO costDTO = new BirRoiCostDTO();
costDTO.setStartMonthNum(startMonthNum);
costDTO.setEndMonthNum(currMonthNum);
Float customerPercent = getPercenDateByLoadType(0,costDTO,supplierId,userId);
Float userPercent = getPercenDateByLoadType(1,costDTO,supplierId,userId);;
Float region2Percent = getPercenDateByLoadType(2,costDTO,supplierId,userId);;
Float regionPercent = getPercenDateByLoadType(3,costDTO,supplierId,userId);;
vo.setQtdCustomerPercent(customerPercent);
vo.setQtdUserPercent(userPercent);
vo.setQtdRegion2Percent(region2Percent);
vo.setQtdRegionPercent(regionPercent);
}
private Float getPercenDateByLoadType(Integer loadType,BirRoiCostDTO oriCostDTO,String supplierId,String userId){
BirRoiCostDTO costDTO = CopierUtil.copy(oriCostDTO,new BirRoiCostDTO());
List<String> supplierCodeList = setBiroiCostDTOAndFindSupplierCodes(costDTO, supplierId, loadType, userId);
Float tempPercent = getPercentDate(costDTO,supplierCodeList);
return tempPercent;
}
private Float getPercentDate(BirRoiCostDTO costDTO,List<String> supplierCodeList){
Float percent = null;
Integer startMonthNum = costDTO.getStartMonthNum();
Integer endMonthNum = costDTO.getEndMonthNum();
BigDecimal dispatchSumAmt = dispatchDataMapper.querySumCostAmt(startMonthNum,endMonthNum,supplierCodeList);
if(dispatchSumAmt == null || dispatchSumAmt.compareTo(BigDecimal.ZERO)<=0) {
return percent;
}
BigDecimal costSumAmt = baseMapper.querySumAmt(costDTO);
percent = costSumAmt.divide(dispatchSumAmt,4, RoundingMode.HALF_UP).floatValue();
return percent;
}
private List<String> setBiroiCostDTOAndFindSupplierCodes(BirRoiCostDTO costDTO,String supplierId,Integer loadType,String userId){
BmsSupplier bmsSupplier = bmsSupplierMapper.selectById(supplierId);
List<String> supplierCodeList = new ArrayList<>();
LambdaQueryWrapper<BmsSupplier> lqw = new LambdaQueryWrapper<>();
lqw.select(BmsSupplier::getId,BmsSupplier::getCode);
if(loadType.equals(0)){
//0->客户
supplierCodeList.add(bmsSupplier.getCode());
costDTO.setSupplierId(supplierId);
}else if (loadType.equals(1)){
//1->申请人的客户
costDTO.setUserId(userId);
//加载用户的其它供应商编码
BmsSupplier param4Supplier = new BmsSupplier();
param4Supplier.setCurrUserId(userId);
List<BmsSupplier> supplierList = bmsSupplierMapper.selectSupplierList(param4Supplier);
List<String> supplierCodes = supplierList.stream()
.map(BmsSupplier::getCode)
.distinct().collect(Collectors.toList());
supplierCodeList.addAll(supplierCodes);
}else if(loadType.equals(2)){
//2->客户的行政区域
if (checkNotNullVale(bmsSupplier.getRegion2Second())){
lqw.eq(BmsSupplier::getRegion2Second,bmsSupplier.getRegion2Second());
}else{
lqw.eq(BmsSupplier::getId,"0");
}
}else if(loadType.equals(3)){
//3->客户的销售区域
if (checkNotNullVale(bmsSupplier.getRegionSecond())){
lqw.eq(BmsSupplier::getRegionSecond,bmsSupplier.getRegionSecond());
}else{
lqw.eq(BmsSupplier::getId,"0");
}
}
if (loadType.equals(2)||loadType.equals(3)){
List<BmsSupplier> supplierList = bmsSupplierMapper.selectList(lqw);
List<String> supplierIds = supplierList.stream().map(BmsSupplier::getId)
.distinct().collect(Collectors.toList());
List<String> supplierCodes = supplierList.stream().map(BmsSupplier::getCode)
.distinct().collect(Collectors.toList());
supplierCodeList.addAll(supplierCodes);
//防止空值
supplierIds.add("0");
costDTO.setSupplierIds(supplierIds);
}
//防止空值
supplierCodeList.add("0");
return supplierCodeList;
}
} }

6
src/main/java/com/qs/serve/modules/erp/mapper/ErpDispatchDataMapper.java

@ -6,6 +6,7 @@ import com.qs.serve.modules.erp.entity.ErpDispatchData;
import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo; import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@ -27,5 +28,10 @@ public interface ErpDispatchDataMapper extends BaseMapper<ErpDispatchData> {
@Param("endNumber")Integer endNumber, @Param("endNumber")Integer endNumber,
@Param("cusCodes")List<String> cusCodes); @Param("cusCodes")List<String> cusCodes);
@InterceptorIgnore(tenantLine = "1")
BigDecimal querySumCostAmt(@Param("startNumber")Integer startNumber,
@Param("endNumber")Integer endNumber,
@Param("cusCodes")List<String> cusCodes);
} }

37
src/main/resources/mapper/bir/BirRoiRateMapper.xml

@ -105,7 +105,6 @@
and bir_base_activity.supplier_id = #{query.supplierId} and bir_base_activity.supplier_id = #{query.supplierId}
</if> </if>
<if test="query.userId!=null and query.userId!=''"> <if test="query.userId!=null and query.userId!=''">
and bir_base_activity.supplier_id != #{query.notSupplierId}
and bir_base_activity.user_id = #{query.userId} and bir_base_activity.user_id = #{query.userId}
</if> </if>
<if test="query.supplierIds!=null and query.supplierIds.size > 0"> <if test="query.supplierIds!=null and query.supplierIds.size > 0">
@ -127,6 +126,42 @@
`year_month` desc `year_month` desc
</select> </select>
<select id="querySumAmt" resultType="java.math.BigDecimal" >
SELECT
SUM(cost_amt)
FROM(
SELECT
CASE
WHEN bir_base_activity.apply_status = 1 THEN bir_base_activity.verification_amt
ELSE bir_base_activity.activity_amt
END AS cost_amt
FROM
`bir_base_activity`
<where>
bir_base_activity.del_flag = '0'
and bir_base_activity.key_num &gt;= #{query.startMonthNum}
and bir_base_activity.key_num &lt;= #{query.endMonthNum}
<if test="query.supplierId!=null and query.supplierId!=''">
and bir_base_activity.supplier_id = #{query.supplierId}
</if>
<if test="query.userId!=null and query.userId!=''">
and bir_base_activity.user_id = #{query.userId}
</if>
<if test="query.supplierIds!=null and query.supplierIds.size > 0">
and bir_base_activity.supplier_id in
<foreach collection="query.supplierIds" item="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
<if test="query.userIds!=null and query.userIds.size > 0">
and bir_base_activity.user_id in
<foreach collection="query.userIds" item="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
</where>
) t
</select>
</mapper> </mapper>

13
src/main/resources/mapper/erp/ErpDispatchDataMapper.xml

@ -64,6 +64,19 @@
GROUP BY DATE_FORMAT(date,'%Y%m') GROUP BY DATE_FORMAT(date,'%Y%m')
</select> </select>
<select id="querySumCostAmt" resultType="java.math.BigDecimal">
SELECT
SUM(sum_money) as dispatchSumCost
FROM
`erp_dispatch_data`
where
DATE_FORMAT(date,'%Y%m') &gt;= #{startNumber}
and DATE_FORMAT(date,'%Y%m') &lt;= #{endNumber}
and cus_code in
<foreach collection="cusCodes" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</select>
</mapper> </mapper>

Loading…
Cancel
Save