Browse Source

台帐查询

contract
15989082884@163.com 2 years ago
parent
commit
4011bef6e8
  1. 46
      src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java
  2. 21
      src/main/java/com/qs/serve/modules/bir/entity/vo/BirAccountReportVo.java
  3. 92
      src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateItem.java
  4. 1
      src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateMain.java
  5. 2
      src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java
  6. 2
      src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java
  7. 18
      src/main/java/com/qs/serve/modules/bir/mapper/BirReportAccountBookMapper.java
  8. 3
      src/main/java/com/qs/serve/modules/bir/service/BirReportAccountBookService.java
  9. 187
      src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java
  10. 31
      src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java
  11. 4
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java
  12. 5
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemMapper.java
  13. 10
      src/main/resources/mapper/erp/ErpDispatchDataMapper.xml

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

@ -49,27 +49,27 @@ public class BirRoiRateController {
* 台账数据集 * 台账数据集
* @return * @return
*/ */
@GetMapping("/standingBook") // @GetMapping("/standingBook")
public R<List<BirCenterCostRateMain>> getStandingBook(String type){ // public R<List<BirCenterCostRateMain>> getStandingBook(String type){
//
List<BirCenterCostRateItem> list = new ArrayList<>(); // List<BirCenterCostRateItem> list = new ArrayList<>();
BirCenterCostRateItem rateItem = new BirCenterCostRateItem(); // BirCenterCostRateItem rateItem = new BirCenterCostRateItem();
rateItem.setTargetDispatchAmt(BigDecimal.ZERO); // rateItem.setTargetDispatchAmt(BigDecimal.ZERO);
rateItem.setBudgetAmt(new BigDecimal("123456")); // rateItem.setBudgetAmt(new BigDecimal("123456"));
rateItem.setTargetRoiRate(new BigDecimal("123456")); // rateItem.setTargetRoiRate(new BigDecimal("123456"));
rateItem.setRealDispatchAmt(new BigDecimal("123456")); // rateItem.setRealDispatchAmt(new BigDecimal("123456"));
rateItem.setCostAmt(new BigDecimal("123456")); // rateItem.setCostAmt(new BigDecimal("123456"));
rateItem.setRealRoiRate(new BigDecimal("123456")); // rateItem.setRealRoiRate(new BigDecimal("123456"));
rateItem.setCostPassAmt(new BigDecimal("123456")); // rateItem.setCostPassAmt(new BigDecimal("123456"));
rateItem.setCostApplyingAmt(new BigDecimal("123456")); // rateItem.setCostApplyingAmt(new BigDecimal("123456"));
rateItem.setCheckedAmt(new BigDecimal("123456")); // rateItem.setCheckedAmt(new BigDecimal("123456"));
rateItem.setCheckingAmt(new BigDecimal("123456")); // rateItem.setCheckingAmt(new BigDecimal("123456"));
rateItem.setNoCheckAmt(new BigDecimal("123456")); // rateItem.setNoCheckAmt(new BigDecimal("123456"));
rateItem.setReleaseAmt(new BigDecimal("123456")); // rateItem.setReleaseAmt(new BigDecimal("123456"));
rateItem.setFrozenAmt(new BigDecimal("123456")); // rateItem.setFrozenAmt(new BigDecimal("123456"));
list.add(rateItem); // list.add(rateItem);
return R.ok(); // return R.ok();
} // }
/** /**
* *
@ -93,9 +93,9 @@ public class BirRoiRateController {
* 台账 * 台账
* @return * @return
*/ */
@GetMapping("/standingBookByCall") @GetMapping("/standingBook")
public R<?> standingBookByCall(String type,String year){ public R<?> standingBookByCall(String type,String year){
return R.ok(birReportAccountBookService.getReportAccountBookData(type)); return R.ok(birReportAccountBookService.getReportAccountBookData(type,year));
} }

21
src/main/java/com/qs/serve/modules/bir/entity/vo/BirAccountReportVo.java

@ -0,0 +1,21 @@
package com.qs.serve.modules.bir.entity.vo;
import com.qs.serve.common.model.dto.HeaderOption;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* @author YenHex
* @since 2023/6/6
*/
@Data
public class BirAccountReportVo {
private List<String> headerList;
private BudgetPlanVo budgetPlanVo;
private List<List<BirCenterCostRateMain>> itemList;
}

92
src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateItem.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.bir.entity.vo;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Map;
/** /**
* @author YenHex * @author YenHex
@ -32,48 +33,67 @@ public class BirCenterCostRateItem {
private BigDecimal realDispatchAmt; private BigDecimal realDispatchAmt;
/** /**
* 核销费用 * 已用预算金额
*/ */
private BigDecimal costAmt; private BigDecimal usedBudgetAmt;
/** /**
* 实际费率 * 可用预算金额
*/
private BigDecimal realRoiRate;
/**
* 已批准费用金额
*/
private BigDecimal costPassAmt;
/**
* 申请中费用金额
*/
private BigDecimal costApplyingAmt;
/**
* 已核销费用金额
*/ */
private BigDecimal checkedAmt; private BigDecimal unUsedBudgetAmt;
/** /**
* 未核销金额(申请中) * 实际费率
*/
private BigDecimal checkingAmt;
/**
* 未申请核销金额
*/
private BigDecimal noCheckAmt;
/**
* 已释放金额
*/
private BigDecimal releaseAmt;
/**
* 冻结中
*/ */
private BigDecimal frozenAmt; private BigDecimal realRoiRate;
// /**
// * 已批准费用金额
// */
// private BigDecimal costPassAmt;
//
// /**
// * 申请中费用金额
// */
// private BigDecimal costApplyingAmt;
//
// /**
// * 已核销费用金额
// */
// private BigDecimal checkedAmt;
//
// /**
// * 未核销金额(申请中)
// */
// private BigDecimal checkingAmt;
//
// /**
// * 未申请核销金额
// */
// private BigDecimal noCheckAmt;
//
// /**
// * 已释放金额
// */
// private BigDecimal releaseAmt;
//
// /**
// * 冻结中
// */
// private BigDecimal frozenAmt;
public BirCenterCostRateItem(){
}
public BirCenterCostRateItem(Map<String,Object> map,String headerPrefix){
this.targetDispatchAmt = map.get(headerPrefix+"目标发货")==null?BigDecimal.ZERO:(BigDecimal) map.get(headerPrefix+"目标发货");
this.realDispatchAmt = map.get(headerPrefix+"实际发货")==null?BigDecimal.ZERO:(BigDecimal) map.get(headerPrefix+"实际发货");
this.budgetAmt = map.get(headerPrefix+"总预算")==null?BigDecimal.ZERO:(BigDecimal) map.get(headerPrefix+"总预算");
this.usedBudgetAmt = map.get(headerPrefix+"已用预算")==null?BigDecimal.ZERO:(BigDecimal) map.get(headerPrefix+"已用预算");
this.unUsedBudgetAmt = map.get(headerPrefix+"可用预算")==null?BigDecimal.ZERO:(BigDecimal) map.get(headerPrefix+"可用预算");
this.realRoiRate = map.get(headerPrefix+"实际费用率")==null?BigDecimal.ZERO:((BigDecimal) map.get(headerPrefix+"实际费用率")).multiply(BigDecimal.valueOf(100L));
this.targetRoiRate = map.get(headerPrefix+"目标费用率")==null?BigDecimal.ZERO:((BigDecimal) map.get(headerPrefix+"目标费用率")).multiply(BigDecimal.valueOf(100L));
}
} }

1
src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateMain.java

@ -16,6 +16,5 @@ public class BirCenterCostRateMain {
private TbsBudgetSimpleVo budgetInfo; private TbsBudgetSimpleVo budgetInfo;
private BirCenterCostRateItem yearInfo; private BirCenterCostRateItem yearInfo;
private List<BirCenterCostRateItem> seasonList; private List<BirCenterCostRateItem> seasonList;
private List<BirCenterCostRateItem> monthList;
} }

2
src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java

@ -18,4 +18,6 @@ public class BirReportVo {
private List<HeaderOption> headerList; private List<HeaderOption> headerList;
private BudgetPlanVo budgetPlanVo; private BudgetPlanVo budgetPlanVo;
private List<List<BirCenterCostRateMain>> dataList;
} }

2
src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java

@ -16,4 +16,6 @@ public class BudgetPlanVo {
BigDecimal usedAmout; BigDecimal usedAmout;
BigDecimal plannedAmount; BigDecimal plannedAmount;
BigDecimal realSaleAmount;
} }

18
src/main/java/com/qs/serve/modules/bir/mapper/BirReportAccountBookMapper.java

@ -22,31 +22,31 @@ import java.util.Map;
@Mapper @Mapper
public interface BirReportAccountBookMapper { public interface BirReportAccountBookMapper {
@Select("call get_report_header(#{result, mode=OUT, jdbcType=VARCHAR})") @Select("call get_report_header(#{inyear, mode=IN, jdbcType=VARCHAR},#{result, mode=OUT, jdbcType=VARCHAR})")
@Options(statementType = StatementType.CALLABLE) @Options(statementType = StatementType.CALLABLE)
@InterceptorIgnore(tenantLine = "true") @InterceptorIgnore(tenantLine = "true")
void getReportHeader(Map<String, String> map); void getReportHeader(Map<String, String> map);
@Select("call get_tbs_report_region()") @Select("call get_tbs_report_region(#{inyear, mode=IN, jdbcType=VARCHAR})")
@Options(statementType = StatementType.CALLABLE) @Options(statementType = StatementType.CALLABLE)
@InterceptorIgnore(tenantLine = "true") @InterceptorIgnore(tenantLine = "true")
List<Map<String, Object>> reportAccountBookRegion(); List<Map<String, Object>> reportAccountBookRegion(@Param("inyear") String inyear);
@Select("call get_tbs_report_customer()") @Select("call get_tbs_report_customer(#{inyear, mode=IN, jdbcType=VARCHAR})")
@Options(statementType = StatementType.CALLABLE) @Options(statementType = StatementType.CALLABLE)
@InterceptorIgnore(tenantLine = "true") @InterceptorIgnore(tenantLine = "true")
List<Map<String, Object>> reportAccountBookCustomer(); List<Map<String, Object>> reportAccountBookCustomer(@Param("inyear")String inyear);
@Select("call get_tbs_report_bizregion()") @Select("call get_tbs_report_bizregion(#{inyear, mode=IN, jdbcType=VARCHAR})")
@Options(statementType = StatementType.CALLABLE) @Options(statementType = StatementType.CALLABLE)
@InterceptorIgnore(tenantLine = "true") @InterceptorIgnore(tenantLine = "true")
List<Map<String, Object>> reportAccountBookBizRegion(); List<Map<String, Object>> reportAccountBookBizRegion(@Param("inyear")String inyear);
@Select("call get_tbs_report_center()") @Select("call get_tbs_report_center(#{inyear, mode=IN, jdbcType=VARCHAR})")
@Options(statementType = StatementType.CALLABLE) @Options(statementType = StatementType.CALLABLE)
@InterceptorIgnore(tenantLine = "true") @InterceptorIgnore(tenantLine = "true")
List<Map<String, Object>> reportAccountBookCenter(); List<Map<String, Object>> reportAccountBookCenter(@Param("inyear")String inyear);
} }

3
src/main/java/com/qs/serve/modules/bir/service/BirReportAccountBookService.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.bir.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bir.entity.BirBaseActivity; import com.qs.serve.modules.bir.entity.BirBaseActivity;
import com.qs.serve.modules.bir.entity.vo.BirAccountReportVo;
import com.qs.serve.modules.bir.entity.vo.BirReportVo; import com.qs.serve.modules.bir.entity.vo.BirReportVo;
/** /**
@ -11,6 +12,6 @@ import com.qs.serve.modules.bir.entity.vo.BirReportVo;
*/ */
public interface BirReportAccountBookService { public interface BirReportAccountBookService {
BirReportVo getReportAccountBookData(String type); BirAccountReportVo getReportAccountBookData(String type,String year);
} }

187
src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java

@ -7,24 +7,30 @@ import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.bir.entity.BirRoiRate; 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.BirReportVo; import com.qs.serve.modules.bir.entity.vo.*;
import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo;
import com.qs.serve.modules.bir.entity.vo.BudgetPlanVo;
import com.qs.serve.modules.bir.entity.vo.YtdQtdToOAVo;
import com.qs.serve.modules.bir.mapper.BirReportAccountBookMapper; import com.qs.serve.modules.bir.mapper.BirReportAccountBookMapper;
import com.qs.serve.modules.bir.mapper.BirRoiRateMapper; import com.qs.serve.modules.bir.mapper.BirRoiRateMapper;
import com.qs.serve.modules.bir.service.BirReportAccountBookService; import com.qs.serve.modules.bir.service.BirReportAccountBookService;
import com.qs.serve.modules.bir.service.BirRoiRateService; import com.qs.serve.modules.bir.service.BirRoiRateService;
import com.qs.serve.modules.bms.entity.BmsCostCenter;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.service.BmsCostCenterService;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService; import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo; import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo;
import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper; import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper;
import com.qs.serve.modules.goods.entity.dto.TbsCenterDto;
import com.qs.serve.modules.tbs.common.TbsCenterType; import com.qs.serve.modules.tbs.common.TbsCenterType;
import com.qs.serve.modules.tbs.entity.TbsBudgetPlan; import com.qs.serve.modules.tbs.entity.TbsBudgetPlan;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.TbsScheduleItem;
import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper;
import com.qs.serve.modules.tbs.mapper.TbsScheduleItemMapper;
import com.qs.serve.modules.tbs.service.TbsBudgetLogService; import com.qs.serve.modules.tbs.service.TbsBudgetLogService;
import com.qs.serve.modules.tbs.service.TbsBudgetPlanService; import com.qs.serve.modules.tbs.service.TbsBudgetPlanService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -36,6 +42,7 @@ import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.Month; import java.time.Month;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -50,64 +57,145 @@ public class BirReportAccountBookServiceImpl implements BirReportAccountBookServ
private final BirReportAccountBookMapper birReportAccountBookMapper; private final BirReportAccountBookMapper birReportAccountBookMapper;
private final BmsRegionService bmsRegionService; private final BmsRegionService bmsRegionService;
private final BmsRegion2Service bmsRegion2Service;
private final BmsSupplierService bmsSupplierService;
private final BmsCostCenterService bmsCostCenterService;
private final TbsBudgetPlanService tbsBudgetPlanService; private final TbsBudgetPlanService tbsBudgetPlanService;
private final TbsBudgetLogMapper tbsBudgetLogMapper; private final TbsBudgetLogMapper tbsBudgetLogMapper;
private final TbsScheduleItemMapper tbsScheduleItemMapper;
private final ErpDispatchDataMapper erpDispatchDataMapper;
@Override @Override
public BirReportVo getReportAccountBookData(String type){ public BirAccountReportVo getReportAccountBookData(String type,String year){
BirReportVo vo = new BirReportVo(); BirAccountReportVo vo = new BirAccountReportVo();
Map<String,String> map = new HashMap<>(); List<List<BirCenterCostRateMain>> itemDataList = new ArrayList<>();
map.put("result","");
birReportAccountBookMapper.getReportHeader(map);
String headerString = map.get("result"); List<String> headerList = tbsScheduleItemMapper.getItemNames(year);
List<HeaderOption> headerOptions = Arrays.stream(headerString.split(",")).map(a->{
String temp = a.trim();
if(temp.contains("as")){
temp = a.split("as")[1].trim();
}
return new HeaderOption(temp);
}).collect(Collectors.toList());
if(headerList.size()==0){
List<List<Map<String,Object>>> list = new ArrayList<>(); return vo;
}
if(type.equals(TbsCenterType.saleRegion.name())){ if(type.equals(TbsCenterType.saleRegion.name())){
List<Map<String,Object>> itemList = birReportAccountBookMapper.reportAccountBookRegion(); List<BmsRegion> bmsRegionList = bmsRegionService.list();
// Map<String,BmsRegion> bmsRegionMap = bmsRegionList.stream().collect(Collectors.toMap(BmsRegion::getId, Function.identity()));
// List<BmsRegionTreeVo> regionList = bmsRegionService.getTree(false);
// List<List<Map<String,Object>>> regionDataList = regionList.stream().map(a-> List<Map<String,Object>> itemList = birReportAccountBookMapper.reportAccountBookRegion(year);
// itemList.stream().filter(i->i.get("成本中心编码").toString().startsWith(a.getCode())).collect(Collectors.toList())
// ).filter(p->p.size()!=0).collect(Collectors.toList()); Map<String,List<BirCenterCostRateMain>> mainList = itemList.stream().map(i->{
// BirCenterCostRateMain main = new BirCenterCostRateMain();
// headerOptions = headerOptions.stream().map(a->{
// if(a.getName().startsWith("成本中心")){ BmsRegion center2 = bmsRegionMap.get(i.get("center_id"));
// if(center2==null){
// }else{ return main;
//// a.setIsSum(true); }else{
// a.setDecimalLength(2); main.setCenter2(new TbsCenterDto(center2));
// a.setAlign("right"); }
// }
// return a; BmsRegion center1 = bmsRegionMap.get(center2.getPid());
// }).collect(Collectors.toList()); if(center1==null){
// main.setCenter1(new TbsCenterDto(center2));
// list = regionDataList; }else{
list.add(itemList); main.setCenter1(new TbsCenterDto(center1));
}
List<BirCenterCostRateItem> seasonList = headerList.stream().map(a-> new BirCenterCostRateItem(i,"【"+a+"】")).collect(Collectors.toList());
main.setSeasonList(seasonList);
main.setYearInfo(new BirCenterCostRateItem(i,"【全年】"));
return main;
}).filter(a->a.getCenter2()!=null).collect(Collectors.groupingBy(a->a.getCenter1().getId()));
itemDataList.addAll(mainList.values());
}else if(type.equals(TbsCenterType.bizRegion.name())){ }else if(type.equals(TbsCenterType.bizRegion.name())){
List<Map<String,Object>> itemList = birReportAccountBookMapper.reportAccountBookBizRegion(); List<BmsRegion2> bmsRegionList = bmsRegion2Service.list();
list.add(itemList); Map<String,BmsRegion2> bmsRegionMap = bmsRegionList.stream().collect(Collectors.toMap(BmsRegion2::getId, Function.identity()));
List<Map<String,Object>> itemList = birReportAccountBookMapper.reportAccountBookBizRegion(year);
Map<String,List<BirCenterCostRateMain>> mainList = itemList.stream().map(i->{
BirCenterCostRateMain main = new BirCenterCostRateMain();
BmsRegion2 center2 = bmsRegionMap.get(i.get("center_id"));
if(center2==null){
return main;
}else{
main.setCenter2(new TbsCenterDto(center2));
main.setCenter1(new TbsCenterDto(center2));
}
List<BirCenterCostRateItem> seasonList = headerList.stream().map(a-> new BirCenterCostRateItem(i,"【"+a+"】")).collect(Collectors.toList());
main.setSeasonList(seasonList);
main.setYearInfo(new BirCenterCostRateItem(i,"【全年】"));
return main;
}).filter(a->a.getCenter2()!=null).collect(Collectors.groupingBy(a->a.getCenter1().getId()));
itemDataList.addAll(mainList.values());
}else if(type.equals(TbsCenterType.customer.name())){ }else if(type.equals(TbsCenterType.customer.name())){
List<Map<String,Object>> itemList = birReportAccountBookMapper.reportAccountBookCustomer();
list.add(itemList); List<Map<String,Object>> itemList = birReportAccountBookMapper.reportAccountBookCustomer(year);
List<String> supperIds = itemList.stream().map(i->i.get("center_id").toString()).collect(Collectors.toList());
LambdaQueryWrapper<BmsSupplier> lqw = new LambdaQueryWrapper<>();
lqw.in(BmsSupplier::getId,supperIds);
List<BmsSupplier> supplierList = bmsSupplierService.list(lqw);
Map<String,BmsSupplier> supplierMap = supplierList.stream().collect(Collectors.toMap(BmsSupplier::getId, Function.identity()));
List<BirCenterCostRateMain> mainList = itemList.stream().map(i->{
BirCenterCostRateMain main = new BirCenterCostRateMain();
BmsSupplier supplier = supplierMap.get(i.get("center_id"));
if(supplier==null){
return main;
}else{
main.setCenter2(new TbsCenterDto(supplier));
main.setCenter1(new TbsCenterDto(supplier));
}
List<BirCenterCostRateItem> seasonList = headerList.stream().map(a-> new BirCenterCostRateItem(i,"【"+a+"】")).collect(Collectors.toList());
main.setSeasonList(seasonList);
main.setYearInfo(new BirCenterCostRateItem(i,"【全年】"));
return main;
}).filter(a->a.getCenter2()!=null).collect(Collectors.toList());
itemDataList.add(mainList);
}else if(type.equals(TbsCenterType.center.name())){ }else if(type.equals(TbsCenterType.center.name())){
List<Map<String,Object>> itemList = birReportAccountBookMapper.reportAccountBookCenter(); List<Map<String,Object>> itemList = birReportAccountBookMapper.reportAccountBookCenter(year);
list.add(itemList); List<String> centerIds = itemList.stream().map(i->i.get("center_id").toString()).collect(Collectors.toList());
LambdaQueryWrapper<BmsCostCenter> lqw = new LambdaQueryWrapper<>();
lqw.in(BmsCostCenter::getId,centerIds);
List<BmsCostCenter> bmsCostCenterList = bmsCostCenterService.list(lqw);
Map<String,BmsCostCenter> bmsCostCenterMap = bmsCostCenterList.stream().collect(Collectors.toMap(a->a.getId().toString(), Function.identity()));
List<BirCenterCostRateMain> mainList = itemList.stream().map(i->{
BirCenterCostRateMain main = new BirCenterCostRateMain();
BmsCostCenter costCenter = bmsCostCenterMap.get(i.get("center_id"));
if(costCenter==null){
return main;
}else{
main.setCenter2(new TbsCenterDto(costCenter));
main.setCenter1(new TbsCenterDto(costCenter));
}
List<BirCenterCostRateItem> seasonList = headerList.stream().map(a-> new BirCenterCostRateItem(i,"【"+a+"】")).collect(Collectors.toList());
main.setSeasonList(seasonList);
main.setYearInfo(new BirCenterCostRateItem(i,"【全年】"));
return main;
}).filter(a->a.getCenter2()!=null).collect(Collectors.toList());
itemDataList.add(mainList);
} }
LambdaQueryWrapper<TbsBudgetPlan> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsBudgetPlan> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsBudgetPlan::getBudgetYear,"2023"); lqw.eq(TbsBudgetPlan::getBudgetYear,year);
TbsBudgetPlan tbsBudgetPlan = tbsBudgetPlanService.getOne(lqw); TbsBudgetPlan tbsBudgetPlan = tbsBudgetPlanService.getOne(lqw);
BudgetPlanVo budgetPlanVo = new BudgetPlanVo(); BudgetPlanVo budgetPlanVo = new BudgetPlanVo();
@ -120,8 +208,11 @@ public class BirReportAccountBookServiceImpl implements BirReportAccountBookServ
BigDecimal usedAmount = tbsBudgetLogMapper.countUsedBudgetAmount(); BigDecimal usedAmount = tbsBudgetLogMapper.countUsedBudgetAmount();
budgetPlanVo.setUsedAmout(usedAmount); budgetPlanVo.setUsedAmout(usedAmount);
vo.setHeaderList(headerOptions); BigDecimal realSaleAmount = erpDispatchDataMapper.querySumCostAmt(Integer.parseInt(year+"01"),Integer.parseInt(year+"12"),null);
vo.setItemList(list); budgetPlanVo.setRealSaleAmount(realSaleAmount);
vo.setHeaderList(headerList);
vo.setItemList(itemDataList);
vo.setBudgetPlanVo(budgetPlanVo); vo.setBudgetPlanVo(budgetPlanVo);
return vo; return vo;
} }

31
src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java

@ -1,5 +1,9 @@
package com.qs.serve.modules.goods.entity.dto; package com.qs.serve.modules.goods.entity.dto;
import com.qs.serve.modules.bms.entity.BmsCostCenter;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@ -47,4 +51,31 @@ public class TbsCenterDto {
this.centerType = centerType; this.centerType = centerType;
} }
public TbsCenterDto(BmsRegion bmsRegion){
this.id = bmsRegion.getId();
this.centerCode = bmsRegion.getCode();
this.centerName = bmsRegion.getName();
this.centerType = "saleRegion";
}
public TbsCenterDto(BmsRegion2 bmsRegion){
this.id = bmsRegion.getId();
this.centerCode = bmsRegion.getCode();
this.centerName = bmsRegion.getName();
this.centerType = "bizRegion";
}
public TbsCenterDto(BmsSupplier supplier){
this.id = supplier.getId();
this.centerCode = supplier.getCode();
this.centerName = supplier.getName();
this.centerType = "customer";
}
public TbsCenterDto(BmsCostCenter costCenter){
this.id = costCenter.getId().toString();
this.centerCode = costCenter.getCode();
this.centerName = costCenter.getName();
this.centerType = "center";
}
} }

4
src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java

@ -17,10 +17,10 @@ public interface TbsBudgetLogMapper extends BaseMapper<TbsBudgetLog> {
@Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE budget_id = #{budgetId} AND schedule_item_id = #{itemId} AND del_flag = '0'") @Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE budget_id = #{budgetId} AND schedule_item_id = #{itemId} AND del_flag = '0'")
BigDecimal countBudgetItemAmount(@Param("budgetId")Long budgetId,@Param("itemId")Long itemId ); BigDecimal countBudgetItemAmount(@Param("budgetId")Long budgetId,@Param("itemId")Long itemId );
@Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE opt_type in (0,2,3) and del_flag = '0'") @Select("SELECT ROUND(SUM(amount),2) FROM `tbs_budget_log` WHERE opt_type in (0,2,3) and del_flag = '0'")
BigDecimal countPlannedBudgetAmount(); BigDecimal countPlannedBudgetAmount();
@Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE opt_type in (1,4,5,6,11,12,13,14,15) and del_flag = '0'") @Select("SELECT ROUND(abs(SUM(amount)),2) FROM `tbs_budget_log` WHERE opt_type in (1,4,5,6,11,12,13,14,15) and del_flag = '0'")
BigDecimal countUsedBudgetAmount(); BigDecimal countUsedBudgetAmount();
} }

5
src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemMapper.java

@ -2,6 +2,9 @@ package com.qs.serve.modules.tbs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsScheduleItem; import com.qs.serve.modules.tbs.entity.TbsScheduleItem;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/** /**
* 考核时间项 Mapper * 考核时间项 Mapper
@ -10,5 +13,7 @@ import com.qs.serve.modules.tbs.entity.TbsScheduleItem;
*/ */
public interface TbsScheduleItemMapper extends BaseMapper<TbsScheduleItem> { public interface TbsScheduleItemMapper extends BaseMapper<TbsScheduleItem> {
@Select("SELECT item_name FROM tbs_schedule_item WHERE year(start_date)=#{year} ORDER BY item_name")
List<String> getItemNames(String year);
} }

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

@ -72,10 +72,12 @@
where where
DATE_FORMAT(date,'%Y%m') &gt;= #{startNumber} DATE_FORMAT(date,'%Y%m') &gt;= #{startNumber}
and DATE_FORMAT(date,'%Y%m') &lt;= #{endNumber} and DATE_FORMAT(date,'%Y%m') &lt;= #{endNumber}
and cus_code in <if test="cusCodes!=null and cusCodes.size > 0">
<foreach collection="cusCodes" item ="selectId" index="i" open="(" close=")" separator=","> and cus_code in
#{selectId} <foreach collection="cusCodes" item ="selectId" index="i" open="(" close=")" separator=",">
</foreach> #{selectId}
</foreach>
</if>
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save