yangdamao 2 years ago
parent
commit
9bb80aba77

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderService.java

@@ -124,6 +124,8 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 
     boolean orderRefundPay(OrderRefundPayBo bo);
 
+    void orderInvoice(String invoiceSn);
+
 	OrderRefundPayDetailVo getOrderRefundPayDetail(String orderSn);
 
 	boolean updateOrderInfo(TopOldOrderAddBo bo);

+ 49 - 8
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -36,11 +36,10 @@ import com.zhongzheng.modules.inform.service.IInformRemindRelevanceService;
 import com.zhongzheng.modules.inform.service.IInformRemindService;
 import com.zhongzheng.modules.inform.service.IInformSysUserService;
 import com.zhongzheng.modules.inform.vo.InformRemindVo;
-import com.zhongzheng.modules.order.domain.Order;
-import com.zhongzheng.modules.order.domain.OrderGoods;
-import com.zhongzheng.modules.order.domain.OrderGoodsRefund;
-import com.zhongzheng.modules.order.service.IOrderGoodsRefundService;
-import com.zhongzheng.modules.order.service.IOrderGoodsService;
+import com.zhongzheng.modules.order.domain.*;
+import com.zhongzheng.modules.order.service.*;
+import com.zhongzheng.modules.sdk.domain.TopNuoMplatformLog;
+import com.zhongzheng.modules.sdk.service.ITopNuoMplatformLogService;
 import com.zhongzheng.modules.system.bo.SysTenantBadBillConfigBo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.system.domain.SysOldOrg;
@@ -52,7 +51,6 @@ import com.zhongzheng.modules.top.financial.bo.TopDivideLogQueryBo;
 import com.zhongzheng.modules.system.vo.SysTenantAccountVo;
 import com.zhongzheng.modules.top.financial.bo.*;
 import com.zhongzheng.modules.top.financial.domain.*;
-import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.top.financial.domain.TopCostTp;
 import com.zhongzheng.modules.top.financial.service.*;
 import com.zhongzheng.modules.top.financial.vo.*;
@@ -198,6 +196,15 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Autowired
     private ITopSysConfigService topConfigService;
 
+    @Autowired
+    private IOrderInvoiceService iOrderInvoiceService;
+
+    @Autowired
+    private IOrderInvoiceOrderService iOrderInvoiceOrderService;
+
+    @Autowired
+    private ITopNuoMplatformLogService topNuoMplatformLogService;
+
     @Value("${oldOrder.studyRecord}")
     private String ORDER_STUDY;
 
@@ -1367,6 +1374,34 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return true;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void orderInvoice(String invoiceSn){
+        //查询订单发票
+        OrderInvoice invoice = iOrderInvoiceService.getOne(new LambdaQueryWrapper<OrderInvoice>().eq(OrderInvoice::getSerialNumber, invoiceSn));
+        if (ObjectUtils.isNull(invoice)){
+            throw new CustomException("发票流水号有误");
+        }
+        TopNuoMplatformLog mplatformLog = topNuoMplatformLogService.getOne(new LambdaQueryWrapper<TopNuoMplatformLog>().eq(TopNuoMplatformLog::getOrderNo, invoiceSn));
+        if (mplatformLog.getStatus() == 2){
+            //开票完成
+            invoice.setInvoiceStatus(2);//已开票
+            invoice.setInvoiceImg(mplatformLog.getPdfUrl());
+            List<OrderInvoiceOrder> invoiceOrderList = iOrderInvoiceOrderService
+                    .list(new LambdaQueryWrapper<OrderInvoiceOrder>().eq(OrderInvoiceOrder::getInvoiceId, invoice.getInvoiceId()));
+            if (CollectionUtils.isNotEmpty(invoiceOrderList)){
+                List<OrderGoods> orderGoods = orderGoodsService
+                        .listByIds(invoiceOrderList.stream().map(OrderInvoiceOrder::getOrderGoodsId).collect(Collectors.toList()));
+                Set<String> orderSns = orderGoods.stream().map(OrderGoods::getOrderSn).collect(Collectors.toSet());
+                orderService.update(new LambdaUpdateWrapper<Order>()
+                .set(Order::getInvoiceStatus,1) //已开票
+                .in(Order::getOrderSn,orderSns));
+            }
+            iOrderInvoiceService.updateById(invoice);
+        }
+    }
+
+
     private void handleRefundOrder(List<TopOldOrderRefundVo> orderRefundList,String inputOrderSn,String tenantId){
         orderRefundList.forEach(refund -> {
             TopOldOrderGoods item = topOrderGoodsService.getById(refund.getOrderGoodsId());
@@ -2271,9 +2306,15 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 Order orgOrder = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, order.getOrderSn()));
                 orgOrder.setFinishStatus(1);//已完单
                 orgOrder.setDivideModel(divideModel);
-                orgOrder.setDivideStatus(2);//待审核
                 orgOrder.setAccomplishTime(DateUtils.getNowTime());
-
+                //修改订单分成
+                orderService.updateById(orgOrder);
+            }else {
+                order.setFinishStatus(1);//已完单
+                order.setDivideModel(divideModel);
+                order.setAccomplishTime(DateUtils.getNowTime());
+                //修改订单分成
+                updateById(order);
             }
 
             return;