From c7b5785f6621236a9b291263ec1c0a82112c3e68 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 19 Mar 2025 13:57:48 +0800 Subject: [PATCH 1/9] =?UTF-8?q?feat:=E9=BB=98=E8=AE=A4=E9=83=BD=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E9=A5=AD=E5=8D=A1=E9=92=B1=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bsd/pjcloud/hard/service/impl/HardApiServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApiServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApiServiceImpl.java index eafe02594..07644f2c3 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApiServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApiServiceImpl.java @@ -31,7 +31,10 @@ public class HardApiServiceImpl implements HardApiService { UserInfo user = userService.getByUserId(userId).getData(); if (ObjectUtil.isEmpty(user)) return null; // 查询钱包 - WalletTypeEnum walletType = ObjectUtil.equals(HardTypeEnum.CANTEEN, type) ? WalletTypeEnum.EAT : WalletTypeEnum.PAY; + // WalletTypeEnum walletType = ObjectUtil.equals(HardTypeEnum.CANTEEN, type) ? WalletTypeEnum.EAT : WalletTypeEnum.PAY; + // 默认都使用饭卡钱包 + WalletTypeEnum walletType = WalletTypeEnum.EAT; + WalletManageEntity wallet = remoteWalletService.getWallet(userId, walletType).getData(); if (ObjectUtil.isEmpty(wallet)) return null; SysUser sysUser = user.getSysUser(); From 13d9bee30cabf98ecbe279ec46fec0554e46653b Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 19 Mar 2025 14:20:34 +0800 Subject: [PATCH 2/9] =?UTF-8?q?feat:=E6=9F=A5=E8=AF=A2=E8=B6=85=E5=B8=82?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hard/service/impl/order/HardCarServiceImpl.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java index edf39b7e5..61fef4b58 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java @@ -34,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; @@ -165,8 +166,15 @@ public class HardCarServiceImpl extends ServiceImpl ObjectUtil.equals(i.getId(), v.getProductId())).findFirst().ifPresent(spu -> { Integer price = getSupermarket(spu); - int itemTotalPrice = v.getProductCount() * price; - supermarketTotalPrice.addAndGet(itemTotalPrice); + if (ObjectUtil.isNotEmpty(v.getProductCount()) && !ObjectUtil.equals(v.getProductCount(), 0)) { + int itemTotalPrice = v.getProductCount() * price; + supermarketTotalPrice.addAndGet(itemTotalPrice); + } + if (ObjectUtil.isNotEmpty(v.getProductWeight()) && !ObjectUtil.equals(v.getProductWeight(), 0)) { + // 向上取整 + int itemTotalPrice = v.getProductWeight().multiply(BigDecimal.valueOf(price)).setScale(0, RoundingMode.CEILING).intValue(); + supermarketTotalPrice.addAndGet(itemTotalPrice); + } }); } yield supermarketTotalPrice.get(); @@ -301,6 +309,7 @@ public class HardCarServiceImpl extends ServiceImpl Date: Wed, 19 Mar 2025 15:31:15 +0800 Subject: [PATCH 3/9] =?UTF-8?q?feat:=E5=8F=A3=E5=BA=93=E5=AD=98=E6=94=BE?= =?UTF-8?q?=E5=9C=A8=E9=92=B1=E5=8C=85=E6=94=AF=E4=BB=98=E5=90=8E=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/order/HardCarServiceImpl.java | 2 +- .../service/impl/order/HardOrderServiceImpl.java | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java index 61fef4b58..e6771ad28 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java @@ -253,7 +253,7 @@ public class HardCarServiceImpl extends ServiceImpl list = carList.stream().map(v -> { SupermarketSpuUpdateStockReqDTO.Item item = new SupermarketSpuUpdateStockReqDTO.Item(); item.setId(v.getProductId()); - double weight = BigDecimal.valueOf(v.getProductCount()).multiply(BigDecimal.valueOf(base)).setScale(2, RoundingMode.HALF_UP).doubleValue(); - item.setIncrCount(weight); + // 按数量 + if (ObjectUtil.isNotEmpty(v.getProductCount()) && !ObjectUtil.equals(v.getProductCount(), 0)) { + double count = BigDecimal.valueOf(v.getProductCount()).multiply(BigDecimal.valueOf(base)).setScale(2, RoundingMode.HALF_UP).doubleValue(); + item.setIncrCount(count); + } + // 按重量 + if (ObjectUtil.isNotEmpty(v.getProductWeight()) && !ObjectUtil.equals(v.getProductWeight(), 0)) { + double weight = v.getProductWeight().multiply(BigDecimal.valueOf(base)).setScale(2, RoundingMode.HALF_UP).doubleValue(); + item.setIncrCount(weight); + } return item; }).toList(); dto.setItems(list); From bd12698eedd2e27252602aa80450e84c85ccb422 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 19 Mar 2025 16:15:12 +0800 Subject: [PATCH 4/9] =?UTF-8?q?feat:=E8=B6=85=E5=B8=82=E4=BB=B7=E6=A0=BC?= =?UTF-8?q?=E8=AE=A1=E7=AE=97bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hard/service/impl/order/HardCarServiceImpl.java | 3 +-- .../hard/service/impl/order/HardOrderServiceImpl.java | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java index e6771ad28..103cbee5f 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java @@ -169,8 +169,7 @@ public class HardCarServiceImpl extends ServiceImpl list = carList.stream().map(v -> { SupermarketSpuUpdateStockReqDTO.Item item = new SupermarketSpuUpdateStockReqDTO.Item(); item.setId(v.getProductId()); - // 按数量 if (ObjectUtil.isNotEmpty(v.getProductCount()) && !ObjectUtil.equals(v.getProductCount(), 0)) { + // 按数量 double count = BigDecimal.valueOf(v.getProductCount()).multiply(BigDecimal.valueOf(base)).setScale(2, RoundingMode.HALF_UP).doubleValue(); item.setIncrCount(count); - } - // 按重量 - if (ObjectUtil.isNotEmpty(v.getProductWeight()) && !ObjectUtil.equals(v.getProductWeight(), 0)) { + } else if (ObjectUtil.isNotEmpty(v.getProductWeight()) && v.getProductWeight().compareTo(BigDecimal.valueOf(0)) != 0) { + // 按重量 double weight = v.getProductWeight().multiply(BigDecimal.valueOf(base)).setScale(2, RoundingMode.HALF_UP).doubleValue(); item.setIncrCount(weight); } From e18936f30213fd1107829aa0cb46c9f1a906e507 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 19 Mar 2025 22:15:15 +0800 Subject: [PATCH 5/9] =?UTF-8?q?fix:=E6=8E=92=E5=BA=8F=E9=94=99=E4=B9=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/SmErpSpuMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml index 315eac3ac..cb3c1a7cb 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpSpuMapper.xml @@ -95,6 +95,6 @@ AND es.product_nature = #{supermarketSpuQueryDTO.productNature} - ORDER BY es.sort DESC + ORDER BY es.sort DESC,es.id DESC \ No newline at end of file From 50f5ff781d8fad69f34b2e12947c7dc418b28ef3 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 20 Mar 2025 10:39:31 +0800 Subject: [PATCH 6/9] =?UTF-8?q?feat:=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=90=8E=E4=B8=8B=E5=8F=91=E6=89=93=E5=8D=B0=E5=8F=91=E7=A5=A8?= =?UTF-8?q?mq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bsd/pjcloud/hard/api/utils/Drawing2D.java | 2 +- .../hard/service/HardOrderService.java | 21 ++++-------- .../impl/order/HardOrderServiceImpl.java | 34 ++++++++++++++++++- 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java index 9cf7531c5..c16b1f56a 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java @@ -30,7 +30,7 @@ public class Drawing2D { private final int horizontalPadding = 20; - private final String fontFamily = "SimSun"; + private final String fontFamily = "Arial Black"; /** * end ****************** config ****************** end diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java index e05fa847f..8483dc39d 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java @@ -9,7 +9,6 @@ import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; import com.bsd.pjcloud.hard.api.dto.order.app.HardAppCreateOrderDto; import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity; import com.bsd.pjcloud.hard.api.vo.order.HardOrderVo; -import com.bsd.pjcloud.hard.api.vo.order.excel.HardOrderExcelVo; import jakarta.validation.Valid; import java.util.List; @@ -28,24 +27,16 @@ public interface HardOrderService extends IService { /** * 创建app订单 - * - * @param dto 父订单id - * @return */ Long appCreateOrder(@Valid HardAppCreateOrderDto dto); /** - * 快速扣款 - * - * @param order 订单详情 + * 快速扣款,离线订单使用 */ void fastReduceBalance(HardOrderEntity order); /** * 计算额外金额 - * - * @param price 购物车总价 - * @return */ Integer computeExtraPrice(Integer price); @@ -61,16 +52,16 @@ public interface HardOrderService extends IService { /** * 扣减库存 - * - * @param isReduce true 扣件库存 false增加库存 */ void fastenerInventory(HardOrderEntity order, YesNoEnum isReduce); /** * 核销硬件二维码 - * - * @param dto - * @return */ Boolean handCancelCode(HandCancelCodeDto dto); + + /** + * 创建订单后发送mq消息 + */ + void createOrderAfterSendMqMsg(Long orderId); } \ No newline at end of file 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 25971aa1c..666a9d140 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 @@ -37,6 +37,7 @@ import com.bsd.pjcloud.hard.api.vo.order.HardOrderVo; import com.bsd.pjcloud.hard.mapper.HardManagerMapper; import com.bsd.pjcloud.hard.mapper.order.HardOrderMapper; import com.bsd.pjcloud.hard.service.HardCarService; +import com.bsd.pjcloud.hard.service.HardInvoiceService; import com.bsd.pjcloud.hard.service.HardManagerService; import com.bsd.pjcloud.hard.service.HardOrderService; import com.bsd.pjcloud.supermarket.api.feign.RemoteSupermarketSpuService; @@ -51,11 +52,12 @@ import com.bsd.pjcloud.wallet.api.entity.WalletTransactionEntity; import com.bsd.pjcloud.wallet.api.feign.*; import com.bsd.pjcloud.wallet.api.utils.WalletDataUtil; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; -import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; import com.bsd.pjcloud.wallet.api.vo.WalletSettingVo; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Lazy; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -67,6 +69,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.concurrent.CompletableFuture; /** * 订单表 @@ -85,6 +88,8 @@ public class HardOrderServiceImpl extends ServiceImpl { + Boolean isPrint = hardInvoiceService.printByOrder(orderdetail); + if (isPrint) { + log.info("|{}|发送mq消息成功,超市打印发票order|{}|", TAG, JSON.toJSONString(orderId)); + } + } + } + } + // 二维码类型的订单是否被核销 true被核销 false未核销 private boolean validateCodeIsCancel(HardOrderTypeEnum orderType, Long orderId) { Boolean flag = switch (orderType) { From 7c153751ec11259744532b74570318451ec93327 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 20 Mar 2025 10:41:11 +0800 Subject: [PATCH 7/9] =?UTF-8?q?feat:=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/order/HardOrderServiceImpl.java | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) 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 666a9d140..73757e9af 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 @@ -506,26 +506,29 @@ public class HardOrderServiceImpl extends ServiceImpl { - Boolean isPrint = hardInvoiceService.printByOrder(orderdetail); - if (isPrint) { - log.info("|{}|发送mq消息成功,超市打印发票order|{}|", TAG, JSON.toJSONString(orderId)); + try { + HardOrderEntity orderdetail = baseMapper.selectById(orderId); + if (ObjectUtil.isEmpty(orderdetail)) { + log.error("|{}|发送mq消息失败,订单不存在orderId|{}|", TAG, orderId); + return; + } + HardTypeEnum hardTypeEnum = HardTypeEnum.valueOfByType(orderdetail.getSysType()); + if (ObjectUtil.isEmpty(hardTypeEnum)) { + log.error("|{}|发送mq消息失败,设备类型错误hardType不存在hardType|{}|", TAG, orderdetail.getSysType()); + return; + } + switch (hardTypeEnum) { + // 超市需要打印订单 + case SUPERMARKET -> { + Boolean isPrint = hardInvoiceService.printByOrder(orderdetail); + if (isPrint) { + log.info("|{}|发送mq消息成功,超市打印发票order|{}|", TAG, JSON.toJSONString(orderId)); + } } } + } catch (Exception e) { + log.info("|{}|发送mq消息成功,意外的错误error|{}|", TAG, e.getMessage()); } } From 0147b5cba88e94fc2791f6ef20a3b400c3f28890 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 20 Mar 2025 11:14:33 +0800 Subject: [PATCH 8/9] =?UTF-8?q?feat:=E5=8F=91=E7=A5=A8=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=BB=91=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java index c16b1f56a..f9d34d8a7 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java @@ -30,7 +30,7 @@ public class Drawing2D { private final int horizontalPadding = 20; - private final String fontFamily = "Arial Black"; + private final String fontFamily = "黑体"; /** * end ****************** config ****************** end From 5acc2b6d607a8fb87ec595a986cf720272e322e1 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 20 Mar 2025 12:44:39 +0800 Subject: [PATCH 9/9] 111 --- .../main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java index f9d34d8a7..1e400faa2 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/utils/Drawing2D.java @@ -134,13 +134,13 @@ public class Drawing2D { public Drawing2D setTitleTextStyle() { graphics.setColor(Color.BLACK); - graphics.setFont(new Font(fontFamily, Font.BOLD, 24)); + graphics.setFont(new Font(fontFamily, Font.PLAIN, 26)); return this; } public Drawing2D setDefaultStyle() { graphics.setColor(Color.BLACK); - graphics.setFont(new Font(fontFamily, Font.PLAIN, 20)); + graphics.setFont(new Font(fontFamily, Font.PLAIN, 22)); return this; }