From 6443922c3f7932d39f6857024f30c1aebd48d3dc Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 14 Aug 2025 10:31:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E7=94=A8=E6=88=B7=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/constant/order/HardHourTypeEnum.java | 2 +- .../hard/api/vo/order/HardOrderVo.java | 11 ++++--- .../api/vo/order/excel/HardOrderExcelVo.java | 3 ++ .../controller/order/HardOrderController.java | 2 ++ .../order/HardCanteenTotalServiceImpl.java | 13 ++++++-- .../impl/order/HardOrderServiceImpl.java | 30 +++++------------- .../src/main/resources/file/订单交易汇总.xlsx | Bin 10158 -> 10151 bytes 7 files changed, 31 insertions(+), 30 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardHourTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardHourTypeEnum.java index a45428e6f..2fe85d8ef 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardHourTypeEnum.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardHourTypeEnum.java @@ -21,6 +21,6 @@ public enum HardHourTypeEnum { public static HardHourTypeEnum valueOfByType(String type) { if (ObjectUtil.isEmpty(type)) return null; - return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); + return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().orElse(null); } } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderVo.java index 129ba706e..4b0420411 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderVo.java @@ -1,17 +1,15 @@ package com.bsd.pjcloud.hard.api.vo.order; -import com.bsd.pjcloud.admin.api.vo.base.BaseDeptInterface; -import com.bsd.pjcloud.admin.api.vo.base.BaseUserInterface; +import com.bsd.pjcloud.admin.api.vo.base.BaseUserDeptInterface; import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity; import com.bsd.pjcloud.hard.api.vo.base.BaseHardInterface; -import com.bsd.pjcloud.wallet.api.entity.WalletCodeUseEntity; import com.bsd.pjcloud.wallet.api.vo.base.BaseMchInterface; import lombok.Data; import java.util.List; @Data -public class HardOrderVo extends HardOrderEntity implements BaseUserInterface, BaseDeptInterface, BaseMchInterface, BaseHardInterface { +public class HardOrderVo extends HardOrderEntity implements BaseUserDeptInterface, BaseMchInterface, BaseHardInterface { /** * 用户相关 */ @@ -26,6 +24,11 @@ public class HardOrderVo extends HardOrderEntity implements BaseUserInterface, B */ private String deptName; + /** + * 用户部门 + */ + private String userDeptName; + /** * 商户相关 */ diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/excel/HardOrderExcelVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/excel/HardOrderExcelVo.java index 2e5513aa5..b63c299b4 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/excel/HardOrderExcelVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/excel/HardOrderExcelVo.java @@ -24,6 +24,9 @@ public class HardOrderExcelVo { @ExcelProperty("部门") private String deptName; + @ExcelProperty("部门") + private String userDeptName; + @ExcelProperty("支付方式") private String payType; diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java index 3332e6c5d..fed52b605 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java @@ -309,6 +309,8 @@ public class HardOrderController { HardHourTypeEnum hardHourTypeEnum = HardHourTypeEnum.valueOfByType(v.getHourType()); if (ObjectUtil.isNotEmpty(hardHourTypeEnum)) { v.setHourType(hardHourTypeEnum.getDescription()); + } else { + v.setHourType(""); } } if (ObjectUtil.isNotEmpty(v.getPayType())) { diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCanteenTotalServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCanteenTotalServiceImpl.java index 466b7dbf1..887988981 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCanteenTotalServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCanteenTotalServiceImpl.java @@ -3,6 +3,7 @@ package com.bsd.pjcloud.hard.service.impl.order; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; @@ -111,7 +112,14 @@ public class HardCanteenTotalServiceImpl implements HardCanteenTotalService { // 查询自营食堂 List>> result = new ArrayList<>(); for (MchManageVo vo : canteenList) { - result.add(Map.of(vo.getName(), dateList)); + // 为每个食堂创建dateList的副本 + List canteenDateList = new LinkedList<>(); + for (HardAppProductByCanteenVo item : dateList) { + // 创建每个日期项的副本 + HardAppProductByCanteenVo copy = BeanUtil.toBean(item, HardAppProductByCanteenVo.class); + canteenDateList.add(copy); + } + result.add(Map.of(vo.getName(), canteenDateList)); } List totalList = hardCarMapper.productByCanteen(dto); @@ -121,8 +129,7 @@ public class HardCanteenTotalServiceImpl implements HardCanteenTotalService { for (Map> map : result) { for (Map.Entry> entry : map.entrySet()) { String canteenName = entry.getKey(); - List currentCanteenList = entry.getValue(); - for (HardAppProductByCanteenVo vo : currentCanteenList) { + for (HardAppProductByCanteenVo vo : entry.getValue()) { totalList.stream().filter(item -> ObjectUtil.equals(item.getCanteenName(), canteenName) && ObjectUtil.equals(item.getTime(), vo.getTime())).findFirst().ifPresent(target -> { vo.setCanteenId(target.getCanteenId()); vo.setCanteenName(canteenName); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index 624265337..02d0368c7 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -14,6 +14,7 @@ import com.bsd.pjcloud.admin.api.entity.SysUser; import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; import com.bsd.pjcloud.admin.api.feign.RemoteUserService; import com.bsd.pjcloud.admin.api.utils.DataUtil; +import com.bsd.pjcloud.admin.api.vo.UserVO; import com.bsd.pjcloud.canteen.api.feign.RemoteOnlineCanteenSpuService; import com.bsd.pjcloud.canteen.dto.CanteenSpuUpdateStockReqDTO; import com.bsd.pjcloud.common.core.constant.enums.MerchantTypeEnum; @@ -167,16 +168,9 @@ public class HardOrderServiceImpl extends ServiceImpl user = userService.getInnerByUserId(detail.getUserId()); - if (ObjectUtil.isNotEmpty(user.getData())) { - DataUtil.convertUser(detail, user.getData().getSysUser()); - } - } - // 部门 - if (ObjectUtil.isNotEmpty(detail.getDeptId())) { - R dept = deptService.getDeptByDeptId(detail.getDeptId()); - if (ObjectUtil.isNotEmpty(dept.getData())) { - DataUtil.convertDept(detail, dept.getData()); + List userVoList = userService.getUserDeptByIds(List.of(detail.getUserId())).getData(); + if (ObjectUtil.isNotEmpty(userVoList) && ObjectUtil.isNotEmpty(userVoList.get(0))) { + DataUtil.convertUserDept(detail, userVoList.get(0)); } } // 商户 @@ -1069,20 +1063,12 @@ public class HardOrderServiceImpl extends ServiceImpl list, HardOrderDto dto) { if (ObjectUtil.isEmpty(list)) return; - // 用户 + // 用户部门 List userIds = list.stream().map(HardOrderVo::getUserId).filter(ObjectUtil::isNotEmpty).distinct().toList(); if (ObjectUtil.isNotEmpty(userIds)) { - R> userList = userService.getInnerUserById(new ArrayList<>(userIds)); - if (ObjectUtil.isNotEmpty(userList.getData())) { - DataUtil.convertUserList(list, CollectionUtils.convertMap(userList.getData(), SysUser::getUserId)); - } - } - // 部门 - List deptIds = list.stream().map(HardOrderVo::getUserDeptId).filter(ObjectUtil::isNotEmpty).distinct().toList(); - if (ObjectUtil.isNotEmpty(deptIds)) { - R> deptList = deptService.getDeptByDeptIds(deptIds); - if (ObjectUtil.isNotEmpty(deptList.getData())) { - DataUtil.convertDeptList(list, deptList.getData()); + List userList = userService.getUserDeptByIds(new ArrayList<>(userIds)).getData(); + if (ObjectUtil.isNotEmpty(userList)) { + DataUtil.convertUserDeptList(list, CollectionUtils.convertMap(userList, UserVO::getUserId)); } } // 商户 diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/订单交易汇总.xlsx b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/订单交易汇总.xlsx index 1ed01ee993defd33eda91efb26e6f5bde4cdaf0d..8f454a553c363ca450ffa3dfe8590bb5ce82690a 100644 GIT binary patch delta 2312 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