Commit b0af874214a59232bd79bd25d31edf1bf8219e64

Authored by 谢茂盛
1 parent 3182e5d7

fix: 订单操作日志/审批日志

src/main/java/com/order/erp/controller/OrderAuditLogController.java
... ... @@ -36,11 +36,11 @@ public class OrderAuditLogController {
36 36 * @param orderAuditLogQueryVO 查询条件
37 37 * @return 查询结果
38 38 */
39   - @PostMapping("/list")
  39 + @PostMapping("/list_by_page")
40 40 @ApiOperation("分页查询")
41 41 @AnonymousAccess
42 42 public ServerResult list(@RequestBody @Validated OrderAuditLogQueryVO orderAuditLogQueryVO) {
43   - return orderAuditLogService.list(orderAuditLogQueryVO);
  43 + return orderAuditLogService.listByPage(orderAuditLogQueryVO);
44 44 }
45 45  
46 46 /**
... ...
src/main/java/com/order/erp/controller/OrderOptLogController.java
1 1 package com.order.erp.controller;
2 2  
  3 +import com.order.erp.common.annotation.AnonymousAccess;
  4 +import com.order.erp.common.constant.ServerResult;
  5 +import com.order.erp.domain.vo.order.OrderOptLogQueryVO;
  6 +import com.order.erp.service.order.OrderOptLogService;
3 7 import io.swagger.annotations.Api;
  8 +import io.swagger.annotations.ApiOperation;
  9 +import org.springframework.validation.annotation.Validated;
  10 +import org.springframework.web.bind.annotation.PostMapping;
  11 +import org.springframework.web.bind.annotation.RequestBody;
4 12 import org.springframework.web.bind.annotation.RequestMapping;
5 13 import org.springframework.web.bind.annotation.RestController;
6 14  
  15 +import javax.annotation.Resource;
  16 +
7 17 /**
8 18 * 用户订单操作日志表(OrderOptLog)表控制层
9 19 *
10 20 * @author makejava
11 21 * @since 2023-09-08 15:26:46
12 22 */
13   -@Api(tags = "(忽略)")
  23 +@Api(tags = "订单操作日志")
14 24 @RestController
15   -@RequestMapping("/gwms/xxx")
  25 +@RequestMapping("/order/erp/opt/log")
16 26 public class OrderOptLogController {
17 27  
  28 + @Resource
  29 + private OrderOptLogService orderOptLogService;
  30 +
  31 + /**
  32 + * 分页查询
  33 + *
  34 + * @param queryVO 查询条件
  35 + * @return 查询结果
  36 + */
  37 + @PostMapping("/list_by_page")
  38 + @ApiOperation("分页查询")
  39 + @AnonymousAccess
  40 + public ServerResult listByPage(@RequestBody @Validated OrderOptLogQueryVO queryVO) {
  41 + return orderOptLogService.listByPage(queryVO);
  42 + }
  43 +
18 44 }
19 45  
... ...
src/main/java/com/order/erp/domain/vo/order/OrderAuditLogResultVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * 订单操作信息表实体类
  10 + *
  11 + * @author makejava
  12 + * @since 2023-09-08 15:26:43
  13 + */
  14 +@Data
  15 +@AllArgsConstructor
  16 +@ToString
  17 +@NoArgsConstructor
  18 +@EqualsAndHashCode(callSuper = false)
  19 +@SuperBuilder
  20 +public class OrderAuditLogResultVO implements Serializable {
  21 + private Long id;
  22 +
  23 + /**
  24 + * 订单id
  25 + */
  26 + private Long orderId;
  27 + /**
  28 + * 申请id
  29 + */
  30 + private Long applyId;
  31 +
  32 + /**
  33 + * 申请备注信息
  34 + */
  35 + private String applyRemark;
  36 +
  37 + /**
  38 + * 操作类型
  39 + */
  40 + private String optType;
  41 +
  42 + /**
  43 + * 申请用户id
  44 + */
  45 + private Long applyUserId;
  46 +
  47 + /**
  48 + * 申请用户名称
  49 + */
  50 + private String applyUserName;
  51 +
  52 + /**
  53 + * 审核人
  54 + */
  55 + private String auditUserName;
  56 +
  57 + /**
  58 + * 操作字段 json字符串
  59 + */
  60 + private String fields;
  61 +
  62 +}
... ...
src/main/java/com/order/erp/domain/vo/order/OrderOptLogQueryVO.java
... ... @@ -30,18 +30,6 @@ public class OrderOptLogQueryVO extends BasePageVO implements Serializable {
30 30 * 订单id
31 31 */
32 32 private Long orderId;
33   - /**
34   - * 用户id
35   - */
36   - private Long userId;
37   - /**
38   - * 操作类型
39   - */
40   - private String optType;
41   - /**
42   - * 操作字段 json字符串
43   - */
44   - private String fields;
45 33  
46 34  
47 35 }
... ...
src/main/java/com/order/erp/domain/vo/order/OrderOptLogResultVO.java 0 → 100644
  1 +package com.order.erp.domain.vo.order;
  2 +
  3 +import lombok.*;
  4 +import lombok.experimental.SuperBuilder;
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * 订单操作信息表实体类
  10 + *
  11 + * @author makejava
  12 + * @since 2023-09-08 15:26:43
  13 + */
  14 +@Data
  15 +@AllArgsConstructor
  16 +@ToString
  17 +@NoArgsConstructor
  18 +@EqualsAndHashCode(callSuper = false)
  19 +@SuperBuilder
  20 +public class OrderOptLogResultVO implements Serializable {
  21 + private Long id;
  22 + /**
  23 + * 订单id
  24 + */
  25 + private Long orderId;
  26 + /**
  27 + * 用户id
  28 + */
  29 + private Long userId;
  30 +
  31 + /**
  32 + * 用户名称
  33 + */
  34 + private String userName;
  35 + /**
  36 + * 操作类型
  37 + */
  38 + private String optType;
  39 + /**
  40 + * 操作字段 json字符串
  41 + */
  42 + private String fields;
  43 +
  44 +}
... ...
src/main/java/com/order/erp/service/order/OrderAuditLogService.java
... ... @@ -32,6 +32,14 @@ public interface OrderAuditLogService extends IService<OrderAuditLogDO> {
32 32 */
33 33 ServerResult list(OrderAuditLogQueryVO orderAuditLogQueryVO);
34 34  
  35 +
  36 + /**
  37 + *
  38 + * @param queryVO
  39 + * @return
  40 + */
  41 + ServerResult listByPage(OrderAuditLogQueryVO queryVO);
  42 +
35 43 /**
36 44 * 新增数据
37 45 *
... ...
src/main/java/com/order/erp/service/order/OrderOptLogService.java
... ... @@ -33,6 +33,13 @@ public interface OrderOptLogService extends IService<OrderOptLogDO> {
33 33 ServerResult list(OrderOptLogQueryVO orderOptLogQueryVO);
34 34  
35 35 /**
  36 + *
  37 + * @param orderOptLogQueryVO
  38 + * @return
  39 + */
  40 + ServerResult listByPage(OrderOptLogQueryVO orderOptLogQueryVO);
  41 +
  42 + /**
36 43 * 新增数据
37 44 *
38 45 * @param orderOptLogVO 数据VO
... ...
src/main/java/com/order/erp/service/order/impl/OrderAuditLogServiceImpl.java
... ... @@ -2,20 +2,33 @@ package com.order.erp.service.order.impl;
2 2  
3 3 import cn.hutool.core.bean.BeanUtil;
4 4 import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 6 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  7 +import com.baomidou.mybatisplus.core.metadata.IPage;
  8 +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  9 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 10 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 11 import com.order.erp.common.constant.Constant;
8 12 import com.order.erp.common.constant.ServerResult;
  13 +import com.order.erp.domain.dto.BaseDO;
  14 +import com.order.erp.domain.dto.admin.AdminUserDO;
9 15 import com.order.erp.domain.dto.order.OrderAuditLogDO;
  16 +import com.order.erp.domain.dto.order.OrderFieldLockApplyDO;
10 17 import com.order.erp.domain.vo.order.OrderAuditLogQueryVO;
  18 +import com.order.erp.domain.vo.order.OrderAuditLogResultVO;
11 19 import com.order.erp.domain.vo.order.OrderAuditLogVO;
12 20 import com.order.erp.mapper.order.OrderAuditLogMapper;
  21 +import com.order.erp.service.admin.AdminUserService;
13 22 import com.order.erp.service.order.OrderAuditLogService;
  23 +import com.order.erp.service.order.OrderFieldLockApplyService;
14 24 import lombok.extern.slf4j.Slf4j;
  25 +import org.springframework.beans.BeanUtils;
15 26 import org.springframework.stereotype.Service;
16 27  
17   -import java.util.List;
18   -import java.util.Objects;
  28 +import javax.annotation.Resource;
  29 +import java.util.*;
  30 +import java.util.function.Function;
  31 +import java.util.stream.Collectors;
19 32  
20 33 /**
21 34 * 用户订单审批日志表(OrderAuditLog)表服务实现类
... ... @@ -28,6 +41,12 @@ import java.util.Objects;
28 41 public class OrderAuditLogServiceImpl extends ServiceImpl<OrderAuditLogMapper, OrderAuditLogDO> implements OrderAuditLogService {
29 42  
30 43  
  44 + @Resource
  45 + private AdminUserService userService;
  46 +
  47 + @Resource
  48 + private OrderFieldLockApplyService applyService;
  49 +
31 50 /**
32 51 * 通过ID查询单条数据
33 52 * <p>
... ... @@ -59,6 +78,70 @@ public class OrderAuditLogServiceImpl extends ServiceImpl&lt;OrderAuditLogMapper, O
59 78 return ServerResult.success();
60 79 }
61 80  
  81 + @Override
  82 + public ServerResult listByPage(OrderAuditLogQueryVO queryVO) {
  83 + LambdaQueryWrapper<OrderAuditLogDO> queryWrapper = buildQueryByParam(queryVO);
  84 + Page page = new Page<>(queryVO.getPageNo(), queryVO.getPageSize());
  85 + IPage<OrderAuditLogDO> iPage = page(page, queryWrapper);
  86 +
  87 + Page<OrderAuditLogResultVO> webVOPage = new Page<>();
  88 + List<OrderAuditLogDO> auditLogDOS = iPage.getRecords();
  89 + if (CollectionUtils.isNotEmpty(auditLogDOS)) {
  90 + Set<Long> applyIds = auditLogDOS.stream().map(OrderAuditLogDO::getApplyId).collect(Collectors.toSet());
  91 + Map<Long, AdminUserDO> userDOMap = new HashMap<>();
  92 + Map<Long, OrderFieldLockApplyDO> applyDOMap = new HashMap<>();
  93 + Set<Long> userIds = new HashSet<>();
  94 + if (CollectionUtils.isNotEmpty(applyIds)) {
  95 + List<OrderFieldLockApplyDO> applyDOS = applyService.listByIds(applyIds);
  96 + if (CollectionUtils.isNotEmpty(applyDOS)) {
  97 + userIds.addAll(applyDOS.stream().map(OrderFieldLockApplyDO::getApplyUserId).collect(Collectors.toSet()));
  98 + userIds.addAll(applyDOS.stream().map(OrderFieldLockApplyDO::getAuditUserId).collect(Collectors.toSet()));
  99 + applyDOMap = applyDOS.stream().collect(Collectors.toMap(OrderFieldLockApplyDO::getId, Function.identity()));
  100 + }
  101 + }
  102 + if (CollectionUtils.isNotEmpty(userIds)) {
  103 + List<AdminUserDO> userDOS = userService.listByIds(userIds);
  104 + if (CollectionUtils.isNotEmpty(userDOS)) {
  105 + userDOMap = userDOS.stream().collect(Collectors.toMap(AdminUserDO::getId, Function.identity()));
  106 + }
  107 + }
  108 + Map<Long, AdminUserDO> finalUserDOMap = userDOMap;
  109 + Map<Long, OrderFieldLockApplyDO> finalApplyDOMap = applyDOMap;
  110 + List<OrderAuditLogResultVO> resultVOList = auditLogDOS.stream().map(x -> {
  111 + OrderAuditLogResultVO resultVO = new OrderAuditLogResultVO();
  112 + BeanUtils.copyProperties(x, resultVO);
  113 + if (finalApplyDOMap.containsKey(x.getApplyId())) {
  114 + OrderFieldLockApplyDO applyDO = finalApplyDOMap.get(x.getApplyId());
  115 + if (finalUserDOMap.containsKey(applyDO.getApplyUserId())) {
  116 + resultVO.setApplyUserName(finalUserDOMap.get(applyDO.getApplyUserId()).getUserName());
  117 + }
  118 + if (finalUserDOMap.containsKey(applyDO.getAuditUserId())) {
  119 + resultVO.setAuditUserName(finalUserDOMap.get(applyDO.getAuditUserId()).getUserName());
  120 + }
  121 + resultVO.setApplyRemark(applyDO.getRemark());
  122 + resultVO.setFields(applyDO.getFields());
  123 + }
  124 + return resultVO;
  125 + }).collect(Collectors.toList());
  126 +
  127 + webVOPage.setRecords(resultVOList);
  128 + }
  129 + BeanUtils.copyProperties(page, webVOPage, "records");
  130 + return ServerResult.success(webVOPage);
  131 + }
  132 +
  133 + /**
  134 + * @param queryVO
  135 + * @return
  136 + */
  137 + private LambdaQueryWrapper<OrderAuditLogDO> buildQueryByParam(OrderAuditLogQueryVO queryVO) {
  138 + return new LambdaQueryWrapper<OrderAuditLogDO>()
  139 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  140 + .eq(Objects.nonNull(queryVO.getOrderId()), OrderAuditLogDO::getOrderId, queryVO.getOrderId())
  141 + .orderByDesc(OrderAuditLogDO::getId)
  142 + ;
  143 + }
  144 +
62 145 /**
63 146 * 新增数据
64 147 *
... ... @@ -123,6 +206,7 @@ public class OrderAuditLogServiceImpl extends ServiceImpl&lt;OrderAuditLogMapper, O
123 206  
124 207 /**
125 208 * 逻辑删除,通过订单id删除 用户订单审批日志表(OrderAuditLog)实体类
  209 + *
126 210 * @param orderId
127 211 * @return
128 212 */
... ...
src/main/java/com/order/erp/service/order/impl/OrderOptLogServiceImpl.java
... ... @@ -2,20 +2,31 @@ package com.order.erp.service.order.impl;
2 2  
3 3 import cn.hutool.core.bean.BeanUtil;
4 4 import cn.hutool.core.collection.CollUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 6 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  7 +import com.baomidou.mybatisplus.core.metadata.IPage;
  8 +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  9 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 10 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 11 import com.order.erp.common.constant.Constant;
8 12 import com.order.erp.common.constant.ServerResult;
  13 +import com.order.erp.domain.dto.BaseDO;
  14 +import com.order.erp.domain.dto.admin.AdminUserDO;
9 15 import com.order.erp.domain.dto.order.OrderOptLogDO;
10 16 import com.order.erp.domain.vo.order.OrderOptLogQueryVO;
  17 +import com.order.erp.domain.vo.order.OrderOptLogResultVO;
11 18 import com.order.erp.domain.vo.order.OrderOptLogVO;
12 19 import com.order.erp.mapper.order.OrderOptLogMapper;
  20 +import com.order.erp.service.admin.AdminUserService;
13 21 import com.order.erp.service.order.OrderOptLogService;
14 22 import lombok.extern.slf4j.Slf4j;
  23 +import org.springframework.beans.BeanUtils;
15 24 import org.springframework.stereotype.Service;
16 25  
17   -import java.util.List;
18   -import java.util.Objects;
  26 +import javax.annotation.Resource;
  27 +import java.util.*;
  28 +import java.util.function.Function;
  29 +import java.util.stream.Collectors;
19 30  
20 31 /**
21 32 * 用户订单操作日志表(OrderOptLog)表服务实现类
... ... @@ -28,6 +39,9 @@ import java.util.Objects;
28 39 public class OrderOptLogServiceImpl extends ServiceImpl<OrderOptLogMapper, OrderOptLogDO> implements OrderOptLogService {
29 40  
30 41  
  42 + @Resource
  43 + private AdminUserService userService;
  44 +
31 45 /**
32 46 * 通过ID查询单条数据
33 47 * <p>
... ... @@ -59,6 +73,51 @@ public class OrderOptLogServiceImpl extends ServiceImpl&lt;OrderOptLogMapper, Order
59 73 return ServerResult.success();
60 74 }
61 75  
  76 + @Override
  77 + public ServerResult listByPage(OrderOptLogQueryVO queryVO) {
  78 + LambdaQueryWrapper<OrderOptLogDO> queryWrapper = buildQueryByParam(queryVO);
  79 + Page page = new Page<>(queryVO.getPageNo(), queryVO.getPageSize());
  80 + IPage<OrderOptLogDO> iPage = page(page, queryWrapper);
  81 +
  82 + Page<OrderOptLogResultVO> webVOPage = new Page<>();
  83 + List<OrderOptLogDO> orderOptLogDOS = iPage.getRecords();
  84 + if (CollectionUtils.isNotEmpty(orderOptLogDOS)) {
  85 + Set<Long> userIds = orderOptLogDOS.stream().map(OrderOptLogDO::getUserId).collect(Collectors.toSet());
  86 + Map<Long, AdminUserDO> userDOMap = new HashMap<>();
  87 + if (CollectionUtils.isNotEmpty(userIds)) {
  88 + List<AdminUserDO> userDOS = userService.listByIds(userIds);
  89 + if (CollectionUtils.isNotEmpty(userDOS)) {
  90 + userDOMap = userDOS.stream().collect(Collectors.toMap(AdminUserDO::getId, Function.identity()));
  91 + }
  92 + }
  93 + Map<Long, AdminUserDO> finalUserDOMap = userDOMap;
  94 + List<OrderOptLogResultVO> resultVOList = orderOptLogDOS.stream().map(x -> {
  95 + OrderOptLogResultVO resultVO = new OrderOptLogResultVO();
  96 + BeanUtils.copyProperties(x, resultVO);
  97 + if (finalUserDOMap.containsKey(x.getUserId())) {
  98 + resultVO.setUserName(finalUserDOMap.get(x.getUserId()).getUserName());
  99 + }
  100 + return resultVO;
  101 + }).collect(Collectors.toList());
  102 +
  103 + webVOPage.setRecords(resultVOList);
  104 + }
  105 + BeanUtils.copyProperties(page, webVOPage, "records");
  106 + return ServerResult.success(webVOPage);
  107 + }
  108 +
  109 + /**
  110 + * @param queryVO
  111 + * @return
  112 + */
  113 + private LambdaQueryWrapper<OrderOptLogDO> buildQueryByParam(OrderOptLogQueryVO queryVO) {
  114 + return new LambdaQueryWrapper<OrderOptLogDO>()
  115 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  116 + .eq(Objects.nonNull(queryVO.getOrderId()), OrderOptLogDO::getOrderId, queryVO.getOrderId())
  117 + .orderByDesc(OrderOptLogDO::getId)
  118 + ;
  119 + }
  120 +
62 121 /**
63 122 * 新增数据
64 123 *
... ... @@ -123,6 +182,7 @@ public class OrderOptLogServiceImpl extends ServiceImpl&lt;OrderOptLogMapper, Order
123 182  
124 183 /**
125 184 * 通过订单id逻辑删除
  185 + *
126 186 * @param orderId
127 187 * @return
128 188 */
... ...