From 78d0f34680b15c4c0bce52feee7b28f40f47ef6f Mon Sep 17 00:00:00 2001 From: ligaode Date: Tue, 3 Jun 2025 16:45:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ScmSpecialRebateExcelNewVo.java | 86 +++++++++++ .../ScmSpecialRebateMapper.java | 2 + .../ScmSpecialRebateMapper.xml | 17 +++ .../ScmSpecialRebateRest.java | 14 ++ .../ScmSpecialRebateService.java | 144 ++++++++++++++++++ 5 files changed, 263 insertions(+) create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateExcelNewVo.java diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateExcelNewVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateExcelNewVo.java new file mode 100644 index 0000000000..53a1584cdb --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateExcelNewVo.java @@ -0,0 +1,86 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.scm.api.scmspecialrebate; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.yxt.common.core.utils.ExportEntityMap; +import lombok.Data; + +@Data +public class ScmSpecialRebateExcelNewVo { + + @ExcelProperty("序号") + private Integer rankNo; + @ExcelProperty("采购系统") + private String purchaseSystemName; + @ExcelProperty("所属年月") + private String palceGenDate; + @ExcelProperty("返利类型") + private String rebateTypeValue; + @ExcelProperty("返利名称") + 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; + + @ExcelProperty("备注") + private String remarks; + @ExcelProperty("品牌") + private String brandName; + @ExcelProperty("分公司") + private String createOrgName; +} diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java index 3e52bb89dd..f13b480334 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java @@ -78,4 +78,6 @@ public interface ScmSpecialRebateMapper extends BaseMapper { List listAll(@Param(Constants.WRAPPER) QueryWrapper qw); List getTypeDetail(@Param("sids") List sids); + + 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/scmspecialrebate/ScmSpecialRebateMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml index 04c4d7340b..471cbd4073 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml @@ -225,4 +225,21 @@ + + \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java index ee31d6688b..96eabdb168 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java @@ -25,8 +25,10 @@ *********************************************************/ package com.yxt.anrui.scm.biz.scmspecialrebate; +import com.alibaba.excel.EasyExcel; import com.yxt.anrui.scm.api.scmspecialrebate.*; import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateDetailsVo; +import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateExcelNewVo; import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -77,6 +79,18 @@ public class ScmSpecialRebateRest implements ScmSpecialRebateFeign { return rb.success().setData(scmSpecialRebateVoList); } + @ApiOperation("导出") + @PostMapping("/excelListNew") + public void excelListNew(@RequestBody ScmSpecialRebateQuery query) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-Disposition", "attachment;filename=rebate.xlsx"); + //得到所有要导出的数据 + List dataList = scmSpecialRebateService.excelListNew(query); + EasyExcel.write(response.getOutputStream(), ScmVehRebateExcelNewVo.class) + .sheet("专项返利管理") + .doWrite(dataList); + } + @ApiOperation("导出") @PostMapping("/excelList") public void excelList(@RequestBody ScmSpecialRebateQuery query) { diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java index 0ed252b098..478fa6434a 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java @@ -2520,4 +2520,148 @@ public class ScmSpecialRebateService extends MybatisBaseService excelListNew(ScmSpecialRebateQuery 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 scmSpecialRebateExcelVos = new ArrayList<>(); + return scmSpecialRebateExcelVos; + } + } else { + List scmSpecialRebateExcelVos = new ArrayList<>(); + return scmSpecialRebateExcelVos; + } + } + if (StringUtils.isNotBlank(query.getCreateOrgName())) { + qw.like("createOrgName", query.getCreateOrgName()); + } + if (StringUtils.isNotBlank(query.getBrandName())) { + qw.like("brandName", query.getBrandName()); + } + if (StringUtils.isNotBlank(query.getPurchaseSystemName())) { + qw.like("purchaseSystemName", query.getPurchaseSystemName()); + } + 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.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 scmSpecialRebateExcelVos = baseMapper.excelListNew(qw); + for (ScmSpecialRebateExcelNewVo scmSpecialRebateExcelVo : scmSpecialRebateExcelVos) { + if (scmSpecialRebateExcelVo.getState().equals("0")) { + scmSpecialRebateExcelVo.setState("未预提"); + } else if (scmSpecialRebateExcelVo.getState().equals("1")) { + scmSpecialRebateExcelVo.setState("预提中"); + } else if (scmSpecialRebateExcelVo.getState().equals("2")) { + scmSpecialRebateExcelVo.setState("待核对"); + } else if (scmSpecialRebateExcelVo.getState().equals("3")) { + scmSpecialRebateExcelVo.setState("核对中"); + } else if (scmSpecialRebateExcelVo.getState().equals("4")) { + scmSpecialRebateExcelVo.setState("已核对"); + } else if (scmSpecialRebateExcelVo.getState().equals("5")) { + scmSpecialRebateExcelVo.setState("分配中"); + } else if (scmSpecialRebateExcelVo.getState().equals("6")) { + scmSpecialRebateExcelVo.setState("已分配"); + } + if (scmSpecialRebateExcelVo.getOnceCheckState().equals("0")) { + scmSpecialRebateExcelVo.setOnceCheckState("否"); + } else if (scmSpecialRebateExcelVo.getOnceCheckState().equals("1")) { + scmSpecialRebateExcelVo.setOnceCheckState("是"); + } else if (scmSpecialRebateExcelVo.getOnceCheckState().equals("2")) { + scmSpecialRebateExcelVo.setOnceCheckState("一次核对中"); + } + scmSpecialRebateExcelVo.setCreateTime(DateUtil.formatDate(DateUtil.parse(scmSpecialRebateExcelVo.getCreateTime()))); + } + return scmSpecialRebateExcelVos; + } } \ No newline at end of file