From aa8e5f5d6d3cb200211293be8b181a7bf01fe837 Mon Sep 17 00:00:00 2001 From: syruan <15555146157@163.com> Date: Tue, 14 Oct 2025 17:22:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/common/biz/enums/MaStatusEnum.java | 4 +- .../controller/ComprehensiveController.java | 15 +++-- .../controller/MaDevInfoController.java | 35 +++-------- .../device/mapper/BmFileInfoMapper.java | 1 + .../device/service/DevInfoService.java | 9 --- .../service/impl/DevInfoServiceImpl.java | 39 ++++++++---- .../material/order/mapper/OrderMapper.java | 9 ++- .../material/order/service/OrderService.java | 4 +- .../order/service/impl/OrderServiceImpl.java | 26 +++++--- .../com/bonus/material/utils/CacheHelper.java | 60 +++++++++++++++++++ .../mapper/material/device/DevInfoMapper.xml | 59 +++++++++--------- .../mapper/material/order/OrderInfoMapper.xml | 27 ++++++--- 12 files changed, 182 insertions(+), 106 deletions(-) create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/utils/CacheHelper.java diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/MaStatusEnum.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/MaStatusEnum.java index 34393cb..40e4fb6 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/MaStatusEnum.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/MaStatusEnum.java @@ -27,8 +27,8 @@ public enum MaStatusEnum { /** * 根据code获取name - * @param code - * @return + * @param code 枚举编码 + * @return 枚举值 */ public static String getNameByCode(int code) { MaStatusEnum[] maStatusEnums = values(); diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/comprehensive/controller/ComprehensiveController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/comprehensive/controller/ComprehensiveController.java index cfdef95..e89e0ad 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/comprehensive/controller/ComprehensiveController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/comprehensive/controller/ComprehensiveController.java @@ -19,16 +19,17 @@ import javax.annotation.Resource; import java.util.List; /** - * @Author:liang.chao - * @Date:2024/12/18 - 11:14 + * @author :liang.chao * 综合查询 */ @Api(tags = "综合查询") @RestController @RequestMapping("/comprehensive") public class ComprehensiveController extends BaseController { + @Resource private DevInfoService devInfoService; + @Resource private OrderService orderService; @@ -43,9 +44,6 @@ public class ComprehensiveController extends BaseController { /** * 在租装备信息查询 - * - * @param devInfo - * @return */ @ApiOperation(value = "综合查询-在租装备信息查询") @GetMapping("/getLeaseDevList") @@ -74,10 +72,15 @@ public class ComprehensiveController extends BaseController { return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list)); } - @ApiOperation(value = "订单确认") + @ApiOperation(value = "订单确认--同意") @PostMapping("/orderConfirm/{orderId}") public AjaxResult orderConfirm(@PathVariable String orderId) { return orderService.orderConfirm(orderId); } + @ApiOperation(value = "订单确认--驳回") + @PostMapping("/orderReject/{orderId}") + public AjaxResult orderReject(@PathVariable String orderId) { + return orderService.orderReject(orderId); + } } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/MaDevInfoController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/MaDevInfoController.java index 350f1f9..09803bb 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/MaDevInfoController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/MaDevInfoController.java @@ -12,28 +12,24 @@ import org.springframework.web.bind.annotation.*; import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.util.List; /** * 设备台账-总览表 * - * @author xxxxx + * @author bonus */ @RestController @RequestMapping("/device") public class MaDevInfoController extends BaseController { - /** - * 服务对象 - */ - @Autowired + + @Resource private MaDevInfoService service; /** - * cha - * - * @param o - * @return + * 设备台账 */ @ApiOperation(value = "设备台账") @GetMapping("/list") @@ -48,34 +44,24 @@ public class MaDevInfoController extends BaseController { } } - @ApiOperation(value = "设备台账-上下架") @PostMapping("/updateDeviceStatus") public AjaxResult updateDeviceStatus(@RequestBody DevMergeVo o) { try { Integer i = service.updateDeviceStatus(o); - if (i > 0) { - return AjaxResult.success("修改成功"); - } else { - return AjaxResult.error("修改失败"); - } + return i > 0 ? AjaxResult.success("修改成功") : AjaxResult.error("修改失败"); } catch (Exception e) { logger.error("报错啦", e); return AjaxResult.error("调用异常,请联系管理员"); } } - @ApiOperation(value = "设备台账-修改") @PostMapping("/updateDeviceApi") public AjaxResult updateDeviceApi(@RequestBody MaDevInfo o) { try { Integer i = service.updateDeviceApi(o); - if (i > 0) { - return AjaxResult.success("修改成功"); - } else { - return AjaxResult.error("修改失败"); - } + return i > 0 ? AjaxResult.success("修改成功") : AjaxResult.error("修改失败"); } catch (Exception e) { logger.error("报错啦", e); return AjaxResult.error("调用异常,请联系管理员"); @@ -93,18 +79,13 @@ public class MaDevInfoController extends BaseController { public AjaxResult delDevice(@PathVariable("ids") String[] ids) { try { Integer i = service.delDevice(ids); - if (i > 0) { - return AjaxResult.success("修改成功"); - } else { - return AjaxResult.error("修改失败"); - } + return i > 0 ? AjaxResult.success("修改成功"): AjaxResult.error("修改失败"); } catch (Exception e) { logger.error("报错啦", e); return AjaxResult.error("调用异常,请联系管理员"); } } - @ApiOperation(value = "设备类型树") @PostMapping("/deviceTree") public AjaxResult deviceTree(String id) { diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/BmFileInfoMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/BmFileInfoMapper.java index 3a7ecc7..9bcd609 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/BmFileInfoMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/BmFileInfoMapper.java @@ -29,6 +29,7 @@ public interface BmFileInfoMapper { * @return 附件集合 */ List selectBmFileInfoList(BmFileInfo bmFileInfo); + List selectBmFileInfo(BmFileInfo bmFileInfo); /** diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/DevInfoService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/DevInfoService.java index 6524c1f..552cc19 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/DevInfoService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/DevInfoService.java @@ -94,8 +94,6 @@ public interface DevInfoService { /** * 查询企业列表 - * @param obj - * @return */ List selectCompanyList(BmCompanyInfo obj); @@ -113,28 +111,21 @@ public interface DevInfoService { /** * 在租装备信息查询 - * @param devInfo - * @return */ List getLeaseDevList(DevInfoVo devInfo); /** * 设备批量导入模版下载 - * @param resp */ void downLoadDev(HttpServletResponse resp); /** * 设备信息导入 - * @param file - * @return */ AjaxResult importTbPeople(MultipartFile file); /** * 设备信息审核列表 - * @param devInfo - * @return */ List selectCheckDevInfoList(DevInfoVo devInfo); diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/impl/DevInfoServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/impl/DevInfoServiceImpl.java index c5f3758..148380f 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/impl/DevInfoServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/impl/DevInfoServiceImpl.java @@ -1,21 +1,17 @@ package com.bonus.material.device.service.impl; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.BooleanUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.PhoneUtil; -import com.alibaba.druid.sql.visitor.functions.If; import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.domain.*; import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.biz.enums.MaStatusEnum; -import com.bonus.common.biz.exception.BusinessException; +import com.bonus.material.utils.CacheHelper; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.bean.BeanUtils; import com.bonus.common.core.utils.bean.BeanValidators; -import com.bonus.common.core.utils.encryption.Sm4Utils; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; @@ -40,6 +36,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -49,11 +47,11 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Validator; -import javax.validation.constraints.NotEmpty; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; +import java.time.Duration; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; @@ -100,6 +98,9 @@ public class DevInfoServiceImpl implements DevInfoService { @Resource private MaDevQcMapper maDevQcMapper; + @Autowired + private CacheHelper cacheHelper; + /** * 查询设备信息 * @@ -253,10 +254,28 @@ public class DevInfoServiceImpl implements DevInfoService { @Override public List selectDevInfoList(DevInfoVo devInfo) { List voList = devInfoMapper.selectDevInfoList(devInfo); - extractedFile(voList); + // 增加缓存处理 + cacheHelper.putList("devListCache", + "user:" + SecurityUtils.getLoginUser().getSysUser().getUserId(), voList, Duration.ofMinutes(5L)); return voList; } + @Override + public Map getCompanyCount(DevInfoVo devInfo) { + // 先从缓存获取 + List voList = cacheHelper.getList("devListCache", "user:" + SecurityUtils.getLoginUser().getSysUser().getUserId(), DevInfoVo.class); + if (CollectionUtils.isEmpty(voList)) { + System.out.println("缓存无此数据!"); + // 缓存内没有此数据再执行Mapper查询 + voList = devInfoMapper.selectDevInfoList(devInfo); + } else { + System.out.println("缓存已生效!"); + } + Map map = voList.stream().collect(Collectors.groupingBy(DevInfoVo::getCompanyId, Collectors.counting())); + return map; + } + + @Override public List selectZoneDevInfoList(DevInfoVo devInfo) { if (Objects.isNull(devInfo)) { @@ -270,12 +289,6 @@ public class DevInfoServiceImpl implements DevInfoService { return voList; } - @Override - public Map getCompanyCount(DevInfoVo devInfo) { - List voList = devInfoMapper.selectDevInfoList(devInfo); - Map map = voList.stream().collect(Collectors.groupingBy(DevInfoVo::getCompanyId, Collectors.counting())); - return map; - } /** * 查询设备收藏列表 diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java index 417abd7..26a7553 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java @@ -1,6 +1,5 @@ package com.bonus.material.order.mapper; -import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.comprehensive.entity.RentDetailDto; import com.bonus.material.device.domain.DevInfo; import com.bonus.material.device.domain.vo.DevInfoVo; @@ -68,5 +67,13 @@ public interface OrderMapper { List getBuyerAndSellerCouples(); + /** + * 订单确认 + */ Integer orderConfirm(String orderId); + + /** + * 订单驳回 + */ + int orderReject(String orderId); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java index e791ee7..eb2bd42 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java @@ -41,10 +41,10 @@ public interface OrderService { /** * 获取单个订单取件码 - * @param dto - * @return */ int getOrderCode(OrderDetailDto dto); AjaxResult orderConfirm(String orderId); + + AjaxResult orderReject(String orderId); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java index 58a66fb..dece16b 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java @@ -223,7 +223,7 @@ public class OrderServiceImpl implements OrderService { orderInfoDto.setReceivingUser(list.get(0).getReceivingUser()); orderInfoDto.setReceivingTime(list.get(0).getReceivingTime()); for (OrderDetailDto orderDetailDto : list) { - orderDetailDto.setTotalCost(orderDetailDto.getCosts()); +// orderDetailDto.setTotalCost(orderDetailDto.getCosts()); // 出库时间设置为租赁开始时间 if (StringUtils.isNotBlank(orderDetailDto.getPreOutboundTime())) { // 租赁天数为租期结束时间减去出库时间,计算天数差 @@ -231,9 +231,9 @@ public class OrderServiceImpl implements OrderService { Date dateStr2 = orderDetailDto.getRentEndTime(); long daysDifference = calculateDaysDifference(dateStr1, dateStr2); // 计算累计租金 - BigDecimal totalCost = orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(daysDifference)); +// BigDecimal totalCost = orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(daysDifference)); orderDetailDto.setDays(String.valueOf(daysDifference)); - orderDetailDto.setTotalCost(totalCost); +// orderDetailDto.setTotalCost(totalCost); } } orderInfoDto.setDetailsList(list); @@ -272,7 +272,7 @@ public class OrderServiceImpl implements OrderService { @Override public List getOrderStatusCount(OrderDetailDto dto) throws Exception { - //true:出租方 false:承租方 + // true:出租方 false:承租方 if (dto.isFlag()) { dto.setSellerCompany(Optional.ofNullable(SecurityUtils.getLoginUser().getSysUser().getCompanyId()).orElse(SecurityUtils.getLoginUser().getSysUser().getDeptId()).intValue()); } else { @@ -378,7 +378,8 @@ public class OrderServiceImpl implements OrderService { tmTask.setTaskStatus(minOrderStatus.getAsInt()); tmTask.setCode(dtos.get(0).getOrderCode()); if (orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_PENDING_SHIPMENT.getStatus().toString()) || - orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_TERMINATED.getStatus().toString())) { + orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_TERMINATED.getStatus().toString())) + { tmTask.setNoticeCompanyId(tmTask.getBuyerCompanyId()); } else if (orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_RECEIVE.getStatus().toString()) || @@ -531,8 +532,6 @@ public class OrderServiceImpl implements OrderService { OrderDetailDto orderDetailDto = orderMapper.selectOrderDetailsById(id); list.add(orderDetailDto); } - BigDecimal totalRentalPrice = BigDecimal.ZERO; - BigDecimal totalReliefPrice = BigDecimal.ZERO; dto.setDetailsList(list); Optional minOrderStatus = list.stream().min(Comparator.comparingInt(p -> Integer.parseInt(p.getOrderStatus()))); minOrderStatus.ifPresent(orderDetailDto -> dto.setOrderStatus(orderDetailDto.getOrderStatus())); @@ -587,4 +586,17 @@ public class OrderServiceImpl implements OrderService { return AjaxResult.error("操作成功"); } } + + /** + * 订单驳回 + */ + @Override + public AjaxResult orderReject(String orderId) { + try { + int dbCount = orderMapper.orderReject(orderId); + return dbCount > 0 ? AjaxResult.success("操作成功") : AjaxResult.error("操作失败"); + } catch (Exception e) { + return AjaxResult.error("操作成功"); + } + } } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/utils/CacheHelper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/utils/CacheHelper.java new file mode 100644 index 0000000..fee3d1a --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/utils/CacheHelper.java @@ -0,0 +1,60 @@ +package com.bonus.material.utils; + +import cn.hutool.json.JSONUtil; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.time.Duration; +import java.util.Collections; +import java.util.List; + +@Component +public class CacheHelper { + + @Resource + private RedisTemplate redisTemplate; + + public void putList(String cacheName, String key, List data, Duration ttl) { + String fullKey = cacheName + "::" + key; + redisTemplate.opsForValue().set(fullKey, JSONUtil.toJsonStr(data), ttl); + } + + public List getList(String cacheName, String key, Class clazz) { + String fullKey = cacheName + "::" + key; + Object value = redisTemplate.opsForValue().get(fullKey); + if (value == null) return Collections.emptyList(); + + // 保证无论是字符串还是对象都能转回来 + String json = (value instanceof String) ? (String) value : JSONUtil.toJsonStr(value); + return JSONUtil.toList(json, clazz); + } + + /** + * 获取单对象 + */ + public T getBean(String cacheName, String key, Class clazz) { + String fullKey = cacheName + "::" + key; + Object value = redisTemplate.opsForValue().get(fullKey); + if (value == null) { + return null; + } + String json = (value instanceof String) ? (String) value : JSONUtil.toJsonStr(value); + return JSONUtil.toBean(json, clazz); + } + + /** + * 写入缓存 + */ + public void put(String cacheName, String key, Object data, Duration ttl) { + String fullKey = cacheName + "::" + key; + redisTemplate.opsForValue().set(fullKey, JSONUtil.toJsonStr(data), ttl); + } + + /** + * 删除缓存 + */ + public void del(String cacheName, String key) { + redisTemplate.delete(cacheName + "::" + key); + } +} diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml index a187d32..28a33e5 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml @@ -50,41 +50,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select device_count,device_name from ma_dev_info where ma_id = #{maId} and is_active = 1 + + + + + + +