From f0f8078da9e3da99eb1a21cc5b4f6a13f4c9a569 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Tue, 12 Dec 2023 09:19:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=BD=A6=E8=BE=86=E4=BA=A4?= =?UTF-8?q?=E4=BB=98=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusSalesVehicleExportQuery.java | 51 +++++++++++ .../BusSalesVehicleExportVo.java | 37 ++++++++ .../bussalesvehicle/BusSalesVehicleFeign.java | 3 + .../bussalesvehicle/BusSalesVehicleVo.java | 15 ++++ .../BusSalesVehicleMapper.java | 7 +- .../bussalesvehicle/BusSalesVehicleMapper.xml | 35 ++++++++ .../bussalesvehicle/BusSalesVehicleRest.java | 30 ++++++- .../BusSalesVehicleService.java | 89 ++++++++++++++++++- .../api/dailyreport/DailyReportAppVo.java | 2 + .../biz/dailyreport/DailyReportService.java | 3 + 10 files changed, 267 insertions(+), 5 deletions(-) create mode 100644 anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportQuery.java create mode 100644 anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportVo.java diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportQuery.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportQuery.java new file mode 100644 index 0000000000..52fbf4d806 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportQuery.java @@ -0,0 +1,51 @@ +package com.yxt.anrui.buscenter.api.bussalesvehicle; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/12/12 + **/ +@Data +public class BusSalesVehicleExportQuery implements Query { + private static final long serialVersionUID = -9105608970592213423L; + + @ApiModelProperty("分公司名称") + private String useOrgName; + @ApiModelProperty("部门") + private String deptName; + @ApiModelProperty("业务员") + private String staffName; + @ApiModelProperty("客户") + private String customerName; + @ApiModelProperty("合同号") + private String contractNo; + @ApiModelProperty("销售类型") + private String saleType; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车型") + private String modelName; + @ApiModelProperty("销售日期开始") + private String saleDateStart; + @ApiModelProperty("销售日期结束") + private String saleDateEnd; + @ApiModelProperty("交付状态") + private String handoverState; + + @ApiModelProperty("交付日期开始") + private String handoverDateStart; + @ApiModelProperty("交付日期结束") + private String handoverDateEnd; + + + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("机构全路径sid") + private String orgPath; + + private String menuUrl; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportVo.java new file mode 100644 index 0000000000..7ea28a36f2 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportVo.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.buscenter.api.bussalesvehicle; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/12/12 + **/ +@Data +public class BusSalesVehicleExportVo { + + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("部门") + private String deptName; + @ApiModelProperty("销售专员") + private String staffName; + @ApiModelProperty("客户") + private String customerName; + @ApiModelProperty("合同编号") + private String contractNo; + @ApiModelProperty("车型") + private String modelName; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("销售类型") + private String saleType; + @ApiModelProperty("销售日期") + private String saleDate; + @ApiModelProperty("交付状态") + private String handoverState; + @ApiModelProperty("交付日期") + private String handoverDate; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleFeign.java index 5c968a5a48..ec350be6fa 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleFeign.java @@ -25,4 +25,7 @@ public interface BusSalesVehicleFeign { @PostMapping("/listPage") public ResultBean> listPage(@RequestBody PagerQuery pq); + @PostMapping("/exportExcel") + @ApiOperation(value = "经销商列表导出(已测试)") + public void exportExcel(@RequestBody BusSalesVehicleExportQuery query); } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleVo.java index 434a1e15e7..8542bd7cdc 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleVo.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleVo.java @@ -1,5 +1,6 @@ package com.yxt.anrui.buscenter.api.bussalesvehicle; +import com.yxt.common.core.utils.ExportEntityMap; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -11,27 +12,41 @@ import lombok.Data; @Data public class BusSalesVehicleVo { + @ExportEntityMap(CnName = "序号", EnName = "rankNo") + private Integer rankNo; + @ApiModelProperty("分公司") + @ExportEntityMap(CnName = "分公司", EnName = "useOrgName") private String useOrgName; @ApiModelProperty("部门") + @ExportEntityMap(CnName = "部门", EnName = "deptName") private String deptName; @ApiModelProperty("销售专员") + @ExportEntityMap(CnName = "销售专员", EnName = "staffName") private String staffName; @ApiModelProperty("客户") + @ExportEntityMap(CnName = "客户", EnName = "customerName") private String customerName; @ApiModelProperty("合同编号") + @ExportEntityMap(CnName = "合同编号", EnName = "contractNo") private String contractNo; @ApiModelProperty("车型") + @ExportEntityMap(CnName = "车型", EnName = "modelName") private String modelName; @ApiModelProperty("车架号") + @ExportEntityMap(CnName = "车架号", EnName = "vinNo") private String vinNo; @ApiModelProperty("销售类型") + @ExportEntityMap(CnName = "销售类型", EnName = "saleType") private String saleType; @ApiModelProperty("销售日期") + @ExportEntityMap(CnName = "销售日期", EnName = "saleDate") private String saleDate; @ApiModelProperty("交付状态") + @ExportEntityMap(CnName = "交付状态", EnName = "handoverState") private String handoverState; @ApiModelProperty("交付日期") + @ExportEntityMap(CnName = "交付日期", EnName = "handoverDate") private String handoverDate; } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.java index 5d6360d073..b82782e811 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.java @@ -3,10 +3,13 @@ package com.yxt.anrui.buscenter.biz.bussalesvehicle; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleExportVo; import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @description: * @author: dimengzhe @@ -14,5 +17,7 @@ import org.apache.ibatis.annotations.Param; **/ @Mapper public interface BusSalesVehicleMapper { - IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw,@Param("state")String state); + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw, @Param("state") String state); + + List exportList(@Param(Constants.WRAPPER) QueryWrapper qw, @Param("state") String handoverState); } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.xml index 6ab846bb14..ee08b4f0f8 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.xml @@ -35,4 +35,39 @@ order by bv.useOrgName desc,bvoa.orgName desc,bvoa.staffName desc,bvoa.customerName desc,bvoa.contractNo desc + + \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleRest.java index 9ab6e75936..33420a2957 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleRest.java @@ -1,8 +1,8 @@ package com.yxt.anrui.buscenter.biz.bussalesvehicle; -import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleFeign; -import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleQuery; -import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleVo; +import com.yxt.anrui.base.api.basedistributor.BaseDistributorExportVo; +import com.yxt.anrui.buscenter.api.bussalesvehicle.*; +import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -10,6 +10,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.List; + /** * @description: * @author: dimengzhe @@ -22,10 +27,29 @@ public class BusSalesVehicleRest implements BusSalesVehicleFeign { @Autowired private BusSalesVehicleService busSalesVehicleService; + @Autowired + private HttpServletResponse response; + @Override public ResultBean> listPage(PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); PagerVo pv = busSalesVehicleService.listPageVo(pq); return rb.success().setData(pv); } + + @Override + public void exportExcel(BusSalesVehicleExportQuery query) { + //得到所有要导出的数据 + List exportVoList = busSalesVehicleService.listExcel(query); + //定义导出的excel名字 + String excelName = "销售车辆交付情况"; + String fileNameURL = ""; + try { + fileNameURL = URLEncoder.encode(excelName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + ExportExcelUtils.export(fileNameURL, exportVoList, BusSalesVehicleExportVo.class, response); + + } } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleService.java index d49912a6db..7992f6b950 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleService.java @@ -6,6 +6,8 @@ import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApply; import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyQuery; import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyVo; +import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleExportQuery; +import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleExportVo; import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleQuery; import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleVo; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; @@ -18,6 +20,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -116,8 +119,92 @@ public class BusSalesVehicleService { } } IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.selectPageVo(page, qw,query.getHandoverState()); + IPage pagging = baseMapper.selectPageVo(page, qw, query.getHandoverState()); PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } + + public List listExcel(BusSalesVehicleExportQuery query) { + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("bv.useOrgName", query.getUseOrgName()); + } + if (StringUtils.isNotBlank(query.getDeptName())) { + qw.like("bvoa.orgName", query.getDeptName()); + } + if (StringUtils.isNotBlank(query.getStaffName())) { + qw.like("bvoa.staffName", query.getStaffName()); + } + if (StringUtils.isNotBlank(query.getCustomerName())) { + qw.like("bvoa.customerName", query.getCustomerName()); + } + if (StringUtils.isNotBlank(query.getContractNo())) { + qw.like("bvoa.contractNo", query.getContractNo()); + } + if (StringUtils.isNotBlank(query.getSaleType())) { + qw.like("bvoa.saleTypeValue", query.getSaleType()); + } + if (StringUtils.isNotBlank(query.getVinNo())) { + qw.like("bv.vinNo", query.getVinNo()); + } + if (StringUtils.isNotBlank(query.getModelName())) { + qw.like("bv.modelName", query.getModelName()); + } + qw.apply(StringUtils.isNotBlank(query.getSaleDateStart()), "date_format (bvoa.saleDate,'%Y-%m-%d') >= date_format('" + query.getSaleDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getSaleDateEnd()), "date_format (bvoa.saleDate,'%Y-%m-%d') <= date_format('" + query.getSaleDateEnd() + "','%Y-%m-%d')" + ); + qw.apply(StringUtils.isNotBlank(query.getHandoverDateStart()), "date_format (bh.closingDate,'%Y-%m-%d') >= date_format('" + query.getHandoverDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getHandoverDateEnd()), "date_format (bh.closingDate,'%Y-%m-%d') <= date_format('" + query.getHandoverDateEnd() + "','%Y-%m-%d')" + ); + + + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("bv.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("bv.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("bv.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("bv.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("bvoa.createBySid", query.getUserSid()); + } else { + List list = new ArrayList<>(); + return list; + } + } else { + List list = new ArrayList<>(); + return list; + } + } else { + List list = new ArrayList<>(); + return list; + } + } + List exportVoList = baseMapper.exportList(qw, query.getHandoverState()); + exportVoList.removeAll(Collections.singleton(null)); + return exportVoList; + } } diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppVo.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppVo.java index d9d4e61ca8..17c15da801 100644 --- a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppVo.java +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppVo.java @@ -13,6 +13,8 @@ import java.util.List; **/ @Data public class DailyReportAppVo { + + private String title; @ApiModelProperty("品牌") private List row1 = new ArrayList<>(); @ApiModelProperty("燃料") diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java index b6a4c4fe06..024abe2834 100644 --- a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java @@ -576,6 +576,7 @@ public class DailyReportService extends MybatisBaseService list2(String date) { ResultBean rb = ResultBean.fireFail(); DailyReportAppVo dailyReportAppVo = new DailyReportAppVo(); + dailyReportAppVo.setTitle("集团(事业部)"+date+"日报"); List rows1 = baseMapper.list2(date); rows1.removeAll(Collections.singleton(null)); dailyReportAppVo.setRow1(rows1); @@ -818,6 +819,7 @@ public class DailyReportService extends MybatisBaseService rb = ResultBean.fireFail(); DailyReportAppVo dailyReportAppVo = new DailyReportAppVo(); List rows1 = baseMapper.list3(date, busOrgSid); + dailyReportAppVo.setTitle("事业部(分公司)"+date+"日报"); rows1.removeAll(Collections.singleton(null)); dailyReportAppVo.setRow1(rows1); List dailyReportVoList = baseMapper.selectReport3(date, busOrgSid); @@ -1058,6 +1060,7 @@ public class DailyReportService extends MybatisBaseService list4(String date, String useOrgSid) { ResultBean rb = ResultBean.fireFail(); DailyReportAppVo dailyReportAppVo = new DailyReportAppVo(); + dailyReportAppVo.setTitle("分公司"+date+"日报") List rows1 = baseMapper.selectByBrand2(useOrgSid, date); rows1.removeAll(Collections.singleton(null)); dailyReportAppVo.setRow1(rows1);