From 10215da99ee763cf72897c747f82efd4f9a513ad Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期四, 12 九月 2024 20:32:56 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master-v2' into master-v2 --- src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 38 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java b/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java index 41ad60b..2a11914 100644 --- a/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java +++ b/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java @@ -354,7 +354,7 @@ ); if (items != null && items.size() > 0) { for (OrderItem i : items) { - i.setStatus(Constants.CHECK_OPERATE.ok.name()); + i.setStatus(Constants.ORDER_ITEM_STATUS.ok.name()); i.setCheckTime(LocalDateTime.now()); orderItemMapper.updateById(i); } @@ -399,12 +399,14 @@ } Integer orderCountToday = deliveryOrderMapper.selectCount(new QueryWrapper<DeliveryOrder>() + .eq("deleted", 0) .eq("supplier_id", supplierId) .gt("create_time", startDate) .le("create_time", endDate)); dto.setOrderCountToday(orderCountToday == null ? 0 : orderCountToday); Integer orderCountYesterday = deliveryOrderMapper.selectCount(new QueryWrapper<DeliveryOrder>() + .eq("deleted", 0) .eq("supplier_id", supplierId) .gt("create_time", startDate.plusDays(-1)) .le("create_time", endDate.plusDays(-1))); @@ -412,13 +414,16 @@ LocalDateTime ffPm = LocalDate.now().withDayOfMonth(1).atTime(17, 0, 0).plusDays(-1); Integer orderCountMonth = deliveryOrderMapper.selectCount(new QueryWrapper<DeliveryOrder>() + .eq("deleted", 0) .eq("supplier_id", supplierId) .gt("create_time", ffPm)); dto.setOrderCountMonth(orderCountMonth == null ? 0 : orderCountMonth); BigDecimal salesRate = new BigDecimal(0); Integer orderTotal = deliveryOrderMapper.selectCount(new QueryWrapper<DeliveryOrder>() - .eq("supplier_id", supplierId)); + .eq("deleted", 0) + .eq("supplier_id", supplierId) + ); Integer salesCount = orderItemSalesMapper.getSupplierSalesCount(supplierId); if (orderTotal != null && orderTotal > 0) { BigDecimal rate = new BigDecimal(salesCount).divide(new BigDecimal(orderTotal), 2, RoundingMode.HALF_UP); @@ -463,6 +468,7 @@ //////////////////////////////////////////////////////////////新接口 public Page<DeliveryOrderList4CheckDTO> selectSupplierDoList4Check(Page page, DeliveryOrderStationQueryDTO dto) { + dto.setStatusList(splitParam(dto.getStatus())); List<DeliveryOrderList4CheckDTO> ls = deliveryOrderMapper.selectSupplierDoList4Check(page, dto); page.setRecords(ls); @@ -473,6 +479,7 @@ if(dto.getSupplierId() == null){ throw new ValidationException("供应商id不能为空"); } + dto.setStatusList(splitParam(dto.getStatus())); List<DeliveryOrder4CheckDTO> ls = deliveryOrderMapper.selectSupplierDoInfo4Check(page, dto); if(ls != null && ls.size() > 0){ @@ -591,18 +598,37 @@ throw new ValidationException("处理数量不能大于商品数量"); } + List<OrderItemCheck> cLs = orderItemCheckMapper.selectList(new QueryWrapper<OrderItemCheck>() + .ne("type", dto.getType()) + .eq("order_item_id", dto.getOrderItemId()) + ); + int otherNum = 0; + if(cLs != null && cLs.size() > 0){ + for(OrderItemCheck c : cLs){ + if(Constants.CHECK_AUDIT_STATUS.REJECTED.name().equals(c.getAuditStatus())){ + continue; + } + otherNum += c.getNum(); + } + } + if(otherNum + dto.getNum() > oi.getNum()){ + throw new ValidationException("处理总数量不能大于商品数量"); + } + BigDecimal deduct = new BigDecimal(0); + BigDecimal realPrice = getAmount(oi.getRealPrice()); if(Constants.CHECK_TYPE.replace.name().equals(dto.getType())){ deduct = oi.getSupplierPrice().multiply(new BigDecimal(dto.getNum())); } else if(Constants.CHECK_TYPE.lack.name().equals(dto.getType())){ - deduct = oi.getPrice().multiply(new BigDecimal(dto.getNum())); + deduct = realPrice.multiply(new BigDecimal(dto.getNum())); } else if (Constants.CHECK_TYPE.reduce.name().equals(dto.getType())) { if(deductAmount == null){ throw new ValidationException("降级金额不能为空"); } deduct = deductAmount.multiply(new BigDecimal(dto.getNum())); - if(deduct.doubleValue() > oi.getTotal().doubleValue()){ - throw new ValidationException("降级金额不能大于商品总金额"); + BigDecimal dt = realPrice.multiply(new BigDecimal(dto.getNum())); + if(deduct.doubleValue() > dt.doubleValue()){ + throw new ValidationException("降级金额不能大于商品处理数量金额"); } } @@ -611,8 +637,8 @@ .eq("order_item_id", dto.getOrderItemId()) ); if(c != null){ - if(StringUtils.isNotEmpty(c.getAuditStatus())){ - throw new ValidationException("已审核,不可修改"); + if(Constants.CHECK_AUDIT_STATUS.AGREED.name().equals(c.getAuditStatus())){ + throw new ValidationException("已审核通过,不可修改"); } c.setCheckTime(LocalDateTime.now()); c.setNum(dto.getNum()); @@ -620,6 +646,8 @@ c.setPictures(toJSONString(pictureList)); c.setTargetLevel(targetLevel); c.setDeductAmount(deduct); + c.setAuditStatus(null); + c.setAuditTime(null); c.update(SecurityUtils.getUserId()); orderItemCheckMapper.updateById(c); } else { @@ -639,7 +667,7 @@ } } - public void checkOrderItemStatus(String id){ + public String checkOrderItemStatus(String id){ OrderItem oi = orderItemMapper.selectById(id); List<OrderItemCheck> cLs = orderItemCheckMapper.selectList(new QueryWrapper<OrderItemCheck>() .eq("order_item_id", id) @@ -670,6 +698,8 @@ deliveryOrderMapper.updateById(d); } } + + return oi.getOrderId(); } public void deleteCheckInfo(String itemId, String type){ -- Gitblit v1.9.3