diff --git a/anrui-scm/anrui-scm-api/pom.xml b/anrui-scm/anrui-scm-api/pom.xml index ca70b3a940..d592b1dbc4 100644 --- a/anrui-scm/anrui-scm-api/pom.xml +++ b/anrui-scm/anrui-scm-api/pom.xml @@ -31,6 +31,12 @@ 1.18.24 true + + com.alibaba + easyexcel-core + 3.3.2 + compile + diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelNewVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelNewVo.java new file mode 100644 index 0000000000..7ce76920f5 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelNewVo.java @@ -0,0 +1,103 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.scm.api.scmvehrebate; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.yxt.common.core.utils.ExportEntityMap; +import lombok.Data; + +@Data +public class ScmVehRebateExcelNewVo { + + @ExportEntityMap(CnName = "序号", EnName = "rankNo") + private Integer rankNo; + @ExportEntityMap(CnName = "采购系统", EnName = "purchaseSystemName") + private String purchaseSystemName; + @ExportEntityMap(CnName = "车架号", EnName = "vinNo") + private String vinNo; + @ExportEntityMap(CnName = "车型", EnName = "vehModelName") + private String vehModelName; + @ExportEntityMap(CnName = "所属年月", EnName = "palceGenDate") + private String palceGenDate; + @ExportEntityMap(CnName = "返利类型", EnName = "rebateTypeValue") + private String rebateTypeValue; + @ExportEntityMap(CnName = "返利名称", EnName = "rebateName") + private String rebateName; + + @ExcelProperty({"返利金额", "预提"}) + private String estimateRebate; + @ExcelProperty({"返利金额", "上传"}) + private String uploadMoney; + @ExcelProperty({"返利金额", "二次上传"}) + private String secondaryUploadMoney; + @ExcelProperty({"返利金额", "待确定"}) + private String stayDetermineMoney; + @ExcelProperty({"返利金额", "调整"}) + private String adjustmentMoney; + @ExcelProperty({"返利金额", "未上传"}) + private String notUploadMoney; + + @ExcelProperty({"其中费用", "预提"}) + private String withholdCost; + @ExcelProperty({"其中费用", "上传"}) + private String money; + + @ExcelProperty({"日期", "创建"}) + private String createTime; + @ExcelProperty({"日期", "预提"}) + private String withholdingDate; + @ExcelProperty({"日期", "上传"}) + private String uploadDate; + @ExcelProperty({"日期", "二次上传"}) + private String secondaryUploadDate; + + @ExcelProperty({"状态", "流程"}) + private String state; + @ExcelProperty({"状态", "一次核对"}) + private String onceCheckState; + @ExcelProperty({"状态", "二次核对"}) + private String secondCheckState; + + @ExportEntityMap(CnName = "车辆入库价", EnName = "manufactorSettlementPrice") + private String manufactorSettlementPrice; + + @ExcelProperty({"其中", "运费"}) + private String freight; + @ExcelProperty({"其中", "上装"}) + private String topAmount; + + @ExcelProperty({"返利计算", "方式"}) + private String calculationModeValue; + @ExcelProperty({"返利计算", "标准"}) + private String calculationStandard; + + @ExportEntityMap(CnName = "备注", EnName = "remarks") + private String remarks; + @ExportEntityMap(CnName = "品牌", EnName = "brandName") + private String brandName; + @ExportEntityMap(CnName = "分公司", EnName = "createOrgName") + private String createOrgName; +} diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java index 36981f480d..f6db12e0c5 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java @@ -86,4 +86,6 @@ public interface ScmVehRebateMapper extends BaseMapper { List getTypeDetail(@Param("sids") List sids); List getDetailByVinSid(String vinSid); + + List excelListNew(@Param(Constants.WRAPPER) QueryWrapper qw); } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml index cb7cbff9a2..c00f97ee02 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml @@ -431,4 +431,56 @@ scm_veh_rebate r WHERE r.vehSid = #{vinSid} + + diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java index fbcb8640cf..53bb11f8c1 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java @@ -108,6 +108,22 @@ public class ScmVehRebateRest implements ScmVehRebateFeign { return rb.success().setData(scmVehRebateTypeStatMxVos); } + @ApiOperation("导出") + @PostMapping("/excelListNew") + public void excelListNew(ScmVehRebateQuery query) { + //得到所有要导出的数据 + List dataList = scmVehRebateService.excelListNew(query); + //定义导出的excel名字 + String excelName = "单车返利管理"; + String fileNameURL = ""; + try { + fileNameURL = URLEncoder.encode(excelName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + ExportExcelUtils.export(fileNameURL, dataList, ScmVehRebateExcelNewVo.class, response); + } + @ApiOperation("导出") @PostMapping("/excelList") public void excelList(@RequestBody ScmVehRebateQuery query) { diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java index 98f8a8104c..47ee918caa 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java @@ -2725,20 +2725,20 @@ public class ScmVehRebateService extends MybatisBaseService> rb = ResultBean.fireFail(); List list = baseMapper.getDetailByVinSid(vinSid); list.removeAll(Collections.singleton(null)); - if(!list.isEmpty()){ + if (!list.isEmpty()) { for (int i = 0; i < list.size(); i++) { ScmVehRebateCarsSoldProfitVo scmVehRebateCarsSoldProfitVo = list.get(i); String expectedRebate = scmVehRebateCarsSoldProfitVo.getEstimateRebate(); BigDecimal expectAll = BigDecimal.ZERO; String expectTreatCost = scmVehRebateCarsSoldProfitVo.getExpectTreatCost(); String expectSuppCost = scmVehRebateCarsSoldProfitVo.getExpectSuppCost(); - if(StringUtils.isNotBlank(expectedRebate)){ + if (StringUtils.isNotBlank(expectedRebate)) { expectAll = expectAll.add(new BigDecimal(expectedRebate)); } - if(StringUtils.isNotBlank(expectTreatCost)){ + if (StringUtils.isNotBlank(expectTreatCost)) { expectAll = expectAll.subtract(new BigDecimal(expectTreatCost)); } - if(StringUtils.isNotBlank(expectSuppCost)){ + if (StringUtils.isNotBlank(expectSuppCost)) { expectAll = expectAll.subtract(new BigDecimal(expectSuppCost)); } scmVehRebateCarsSoldProfitVo.setEstimateRebate(expectAll.toString()); @@ -2769,4 +2769,130 @@ public class ScmVehRebateService extends MybatisBaseService excelListNew(ScmVehRebateQuery query) { + QueryWrapper qw = new QueryWrapper<>(); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setMenuSid(query.getMenuSid()); + 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("orgPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("orgPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("orgPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("orgPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("createBySid", query.getUserSid()); + } else { + List scmVehRebateExcelVos = new ArrayList<>(); + return scmVehRebateExcelVos; + } + } else { + List scmVehRebateExcelVos = new ArrayList<>(); + return scmVehRebateExcelVos; + } + } + if (StringUtils.isNotBlank(query.getBrandName())) { + qw.like("brandName", query.getBrandName()); + } + if (StringUtils.isNotBlank(query.getVehModelName())) { + qw.like("vehModelName", query.getVehModelName()); + } + if (StringUtils.isNotBlank(query.getVinNo())) { + qw.like("vinNo", query.getVinNo()); + } + if (StringUtils.isNotBlank(query.getRebateTypeKey())) { + qw.eq("rebateTypeKey", query.getRebateTypeKey()); + } + if (StringUtils.isNotBlank(query.getRebateName())) { + qw.like("rebateName", query.getRebateName()); + } + if (StringUtils.isNotBlank(query.getState())) { + qw.eq("state", query.getState()); + } + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("useOrgName", query.getUseOrgName()); + } + if (StringUtils.isNotBlank(query.getPurchaseSystemName())) { + qw.like("purchaseSystemName", query.getPurchaseSystemName()); + } + if (StringUtils.isNotBlank(query.getPalceGenDate())) { + qw.eq("palceGenDate", query.getPalceGenDate()); + } + if (StringUtils.isNotBlank(query.getWithholdingDate())) { + String[] w = query.getWithholdingDate().split("-"); + String withholdingDate = w[0] + "年" + Integer.parseInt(w[1]) + "月"; + qw.eq("withholdingDate", withholdingDate); + } + if (StringUtils.isNotBlank(query.getUploadState())) { + if (query.getUploadState().equals("0")) { + qw.and(wrapper -> wrapper.eq("uploadDate", "") + .or().isNull("uploadDate") + ); + } else { + qw.ne("uploadDate", ""); + qw.isNotNull("uploadDate"); + } + } + if (StringUtils.isNotBlank(query.getIsAdjustment())) { + qw.eq("isAdjustment", query.getIsAdjustment()); + } + if (StringUtils.isNotBlank(query.getIsUploadFinish())) { + if (query.getIsUploadFinish().equals("1")) { + qw.eq("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0); + } else { + qw.ne("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0); + } + } + if (StringUtils.isNotBlank(query.getOnceCheckState())) { + qw.eq("onceCheckState", query.getOnceCheckState()); + } + if (StringUtils.isNotBlank(query.getSecondUploadState())) { + if (query.getSecondUploadState().equals("1")) { + qw.isNotNull("secondaryUploadMoney"); + qw.ne("secondaryUploadMoney", ""); + qw.ne("secondaryUploadMoney", 0); + qw.eq("isAdjustment", "是"); + } else { + qw.and(wrapper -> wrapper.eq("isAdjustment", '否').or().isNull("secondaryUploadMoney").or().eq("secondaryUploadMoney", "")); + } + } + String createStartTime = query.getCreateStartTime(); + String createEndTime = query.getCreateEndTime(); + qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" + ); + String uploadStartDate = query.getUploadStartDate(); + String uploadEndDate = query.getUploadEndDate(); + qw.apply(StringUtils.isNotBlank(uploadStartDate), "(date_format (uploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(uploadEndDate), "date_format (uploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')"). + or(). + apply(StringUtils.isNotBlank(uploadStartDate), "date_format (secondaryUploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(uploadEndDate), "date_format (secondaryUploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d'))" + ); + qw.orderByDesc("createTime"); + List scmVehRebateExcelVos = baseMapper.excelListNew(qw); + return scmVehRebateExcelVos; + + } } \ No newline at end of file