From 9daff34e9467d68baaf789051145fe3e4e3a4422 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Wed, 21 May 2025 15:39:52 +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 --- .../FactoryDaliyReportFeign.java | 12 ++- .../FactoryDaliyReportQuery.java | 5 + .../FactoryDaliyReportVo.java | 2 + .../FactoryDaliyReportRest.java | 9 ++ .../FactoryDaliyReportService.java | 93 ++++++++++++++++++- .../reportcenter/config/DecimalUtil.java | 20 ++++ 6 files changed, 132 insertions(+), 9 deletions(-) create mode 100644 anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/config/DecimalUtil.java diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeign.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeign.java index 571a4791a6..14da5e8b10 100644 --- a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeign.java +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeign.java @@ -7,6 +7,8 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.Map; + /** * @description: * @author: dimengzhe @@ -18,14 +20,14 @@ import org.springframework.web.bind.annotation.ResponseBody; path = "v1/factoryDailyReport", fallback = FactoryDaliyReportFeignFallback.class) public interface FactoryDaliyReportFeign { - /** - * 集团列表 - * @param pagerQuery - * @return - */ @PostMapping("pageList1") @ResponseBody ResultBean pageList1(@RequestBody PagerQuery pagerQuery); + + @PostMapping("pageList") + @ResponseBody + ResultBean> pageList(@RequestBody PagerQuery pagerQuery); + } diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportQuery.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportQuery.java index 81eba7d6bc..b2b603ea04 100644 --- a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportQuery.java +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportQuery.java @@ -1,6 +1,7 @@ package com.yxt.anrui.reportcenter.api.factoryDailyReport; import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -11,4 +12,8 @@ import lombok.Data; @Data public class FactoryDaliyReportQuery implements Query { private static final long serialVersionUID = 3416520595744127012L; + + private String orgPath; + //jt-查集团,syb-事业部,空字符串 分公司 + private String type; } diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportVo.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportVo.java index a60d61b93f..98871f4085 100644 --- a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportVo.java +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportVo.java @@ -42,4 +42,6 @@ public class FactoryDaliyReportVo { @JsonIgnore private String offset_payment; + private String linkSid; + } diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportRest.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportRest.java index fbc3b57efa..d8af1fdd37 100644 --- a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportRest.java +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportRest.java @@ -11,6 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Map; + /** * @description: * @author: dimengzhe @@ -29,4 +31,11 @@ public class FactoryDaliyReportRest implements FactoryDaliyReportFeign { PagerVo pv = factoryDaliyReportService.pageList1(pagerQuery); return rb.success().setData(pv); } + + @Override + public ResultBean> pageList(PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + Map map = factoryDaliyReportService.pageList(pagerQuery); + return rb.success().setData(map); + } } diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportService.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportService.java index 8c4ebe4f30..d9c52ed456 100644 --- a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportService.java +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportService.java @@ -1,12 +1,16 @@ package com.yxt.anrui.reportcenter.biz.factoryDailyReport; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.yxt.anrui.portal.api.sysorganization.SysOrganization; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.reportcenter.api.dailyreport.DailyReport; import com.yxt.anrui.reportcenter.api.dailyreport.DailyReportAppPagerQuery; import com.yxt.anrui.reportcenter.api.dailyreport.DailyReportListVo; import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportQuery; import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportVo; import com.yxt.anrui.reportcenter.api.factoryDailyReport.UnUploadVo; +import com.yxt.anrui.reportcenter.config.DecimalUtil; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.vo.PagerVo; import lombok.extern.slf4j.Slf4j; @@ -15,10 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @description: @@ -31,6 +32,8 @@ public class FactoryDaliyReportService { @Autowired private FactoryDaliyReportMapper factoryDaliyReportMapper; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; public PagerVo pageList1(PagerQuery pagerQuery) { long startTime = System.currentTimeMillis(); // 记录开始时间 @@ -73,4 +76,86 @@ public class FactoryDaliyReportService { log.info("集团日报列表接口耗时 {} ms", duration); // 输出日志 return page; } + + public Map pageList(PagerQuery pagerQuery) { + Map reportMap = new HashMap<>(); + long pageNum = pagerQuery.getCurrent(); + long pageSize = pagerQuery.getSize(); + FactoryDaliyReportQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + String orgPath = query.getOrgPath(); + List orgSidList = Arrays.asList(orgPath.split("/")); + String type = query.getType(); + String name = ""; + if (StringUtils.isNotBlank(type)) { + if ("syb".equals(type)) { + // 取事业部(前两级) + if (orgSidList.size() >= 2) { + String groupSid = orgSidList.get(0); + String sybSid = orgSidList.get(1); + String orgPathPrefix = groupSid + "/" + sybSid; + + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(sybSid).getData(); + name = sysOrganization.getName(); + reportMap.put("linkSid", sybSid); + qw.like("orgPath", orgPathPrefix); + } + + } else if ("jt".equals(type)) { + name = "集团"; + } + } else { + if (orgSidList.size() >= 3) { + String groupSid = orgSidList.get(0); + String sybSid = orgSidList.get(1); + String fgsSid = orgSidList.get(2); + String orgPathPrefix = groupSid + "/" + sybSid + "/" + fgsSid; + + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(fgsSid).getData(); + name = sysOrganization.getName(); + reportMap.put("linkSid", fgsSid); + qw.like("orgPath", orgPathPrefix); + } + } + reportMap.put("name", name); + Map map = new HashMap<>(); + map.put("page", (pageNum - 1) * pageSize); + map.put("size", pageSize); + List recordList = factoryDaliyReportMapper.selectRecordList(map, qw); + recordList.removeAll(Collections.singleton(null)); + if (!recordList.isEmpty()) { + for (int i = 0; i < recordList.size(); i++) { + FactoryDaliyReportVo factoryDaliyReportVo = recordList.get(i); + factoryDaliyReportVo.setEstimate(DecimalUtil.format(factoryDaliyReportVo.getEstimate())); + factoryDaliyReportVo.setUpload(DecimalUtil.format(factoryDaliyReportVo.getUpload())); + factoryDaliyReportVo.setAdjust(DecimalUtil.format(factoryDaliyReportVo.getAdjust())); + factoryDaliyReportVo.setNotUploadMoney(DecimalUtil.format(factoryDaliyReportVo.getNotUploadMoney())); + factoryDaliyReportVo.setUnuploaded_rebate(DecimalUtil.format(factoryDaliyReportVo.getUnuploaded_rebate())); + factoryDaliyReportVo.setFee(DecimalUtil.format(factoryDaliyReportVo.getFee())); + factoryDaliyReportVo.setExpense_payment(DecimalUtil.format(factoryDaliyReportVo.getExpense_payment())); + factoryDaliyReportVo.setPending_payment(DecimalUtil.format(factoryDaliyReportVo.getPending_payment())); + factoryDaliyReportVo.setOffset_payment(DecimalUtil.format(factoryDaliyReportVo.getOffset_payment())); + UnUploadVo unUploadVo = new UnUploadVo(); + unUploadVo.setTotal(factoryDaliyReportVo.getNotUploadMoney()); + unUploadVo.setFee(factoryDaliyReportVo.getFee()); + unUploadVo.setFeeOutlay(factoryDaliyReportVo.getExpense_payment()); + unUploadVo.setFeeTopping(factoryDaliyReportVo.getOffset_payment()); + unUploadVo.setRebate(factoryDaliyReportVo.getUnuploaded_rebate()); + unUploadVo.setFeeUnPaid(factoryDaliyReportVo.getPending_payment()); + factoryDaliyReportVo.setUnUpload(unUploadVo); + if(StringUtils.isBlank(type)){ + String orgSid = orgSidList.get(2); + factoryDaliyReportVo.setLinkSid(orgSid+"#"+factoryDaliyReportVo.getYear()); + } + } + } + int count = factoryDaliyReportMapper.selectRecordCount(qw); + long pages = (count + pageSize - 1) / pageSize; + reportMap.put("pages", pages); + reportMap.put("total", count); + reportMap.put("size", pageSize); + reportMap.put("current", pageNum); + reportMap.put("records", recordList); + return reportMap; + } } diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/config/DecimalUtil.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/config/DecimalUtil.java new file mode 100644 index 0000000000..cc749c2394 --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/config/DecimalUtil.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.reportcenter.config; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +/** + * @description: + * @author: dimengzhe + * @date: 2025/5/21 + **/ +public class DecimalUtil { + public static String format(Object obj) { + if (obj == null) return "0.00"; + try { + return new BigDecimal(obj.toString()).setScale(2, RoundingMode.HALF_UP).toPlainString(); + } catch (Exception e) { + return "0.00"; + } + } +}