From 2f8e70ad2884d2b6b7443dfae0af11ae9cfc8b99 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 28 二月 2025 17:44:10 +0800
Subject: [PATCH] bug修改

---
 manage/src/main/java/com/jilongda/manage/controller/TOrderController.java |  140 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 118 insertions(+), 22 deletions(-)

diff --git a/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java b/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java
index f17d8e8..f410ed4 100644
--- a/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java
+++ b/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java
@@ -2,6 +2,10 @@
 
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.jilongda.common.Ticket.TAddOptometryVO;
+import com.jilongda.common.Ticket.TOptometryDetailVO;
+import com.jilongda.common.Ticket.TOrderGoodsPrintVO;
+import com.jilongda.common.Ticket.TicketUtil;
 import com.jilongda.common.basic.ApiResult;
 import com.jilongda.common.basic.PageInfo;
 import com.jilongda.manage.authority.model.SecUser;
@@ -14,12 +18,10 @@
 import com.jilongda.manage.service.*;
 import com.jilongda.manage.utils.LoginInfoUtil;
 import com.jilongda.manage.utils.OssUploadUtil;
-import com.jilongda.manage.vo.TModelVO;
-import com.jilongda.manage.vo.TOptometryVO;
-import com.jilongda.manage.vo.TOrderListVO;
-import com.jilongda.manage.vo.TOrderVO;
+import com.jilongda.manage.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
@@ -28,6 +30,7 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -81,6 +84,8 @@
     private TSupplierService supplierService;
     @Autowired
     private TMaterialService materialService;
+    @Autowired
+    private TLineUpService lineUpService;
 
     @PostMapping("/obs-upload")
     @ApiOperation(value = "文件上传",tags = "管理后台-文件上传")
@@ -105,14 +110,14 @@
             query.setEndTime(query.getEndTime()+" 23:59:59");
         }
         List<Integer> orderIds = new ArrayList<>();
-        List<Integer> collect = tAppUserService.lambdaQuery()
-                .eq(StringUtils.hasLength(query.getWxName()), TAppUser::getName, query.getWxName())
-                .eq(StringUtils.hasLength(query.getPhone()), TAppUser::getName, query.getPhone()).list()
-                .stream().map(TAppUser::getId).collect(Collectors.toList());
-        if (StringUtils.hasLength(query.getWxName())||StringUtils.hasLength(query.getPhone())){
-            query.setUserIds(collect);
-            if (collect.isEmpty())return ApiResult.success(new PageInfo<>());
-        }
+//        List<Integer> collect = tAppUserService.lambdaQuery()
+//                .eq(StringUtils.hasLength(query.getWxName()), TAppUser::getName, query.getWxName())
+//                .eq(StringUtils.hasLength(query.getPhone()), TAppUser::getName, query.getPhone()).list()
+//                .stream().map(TAppUser::getId).collect(Collectors.toList());
+//        if (StringUtils.hasLength(query.getWxName())||StringUtils.hasLength(query.getPhone())){
+//            query.setUserIds(collect);
+//            if (collect.isEmpty())return ApiResult.success(new PageInfo<>());
+//        }
         List<Integer> collect1 = orderGoodsService.lambdaQuery()
                 .eq(StringUtils.hasLength(query.getBrandLens()), TOrderGoods::getBrandName, query.getBrandLens())
                 .eq(StringUtils.hasLength(query.getSeries()), TOrderGoods::getSeriesName, query.getSeries())
@@ -176,7 +181,10 @@
 
         return ApiResult.success(tCouponReceives);
     }
-
+    @Autowired
+    private TTicketService tTicketService;
+    @Autowired
+    private TStoreService storeService;
     @ApiOperation(value = "添加订单")
     @PostMapping(value = "/addOrder")
     public ApiResult addOrder(@RequestBody TOrderDTO dto) {
@@ -208,13 +216,16 @@
                 String[] split = null;
                 if(StringUtils.hasLength(rLens)){
                     split = rLens.split(",");
+                    if (split.length == 1){
+
+                    }
                 }else {
                     split = orderGood.getLLens().split(",");
                 }
-                TBrand one1 = brandService.lambdaQuery().eq(TBrand::getName, orderGood.getBrandName())
+                TBrand brand = brandService.lambdaQuery().eq(TBrand::getName, orderGood.getBrandName())
                         .eq(TBrand::getType, 2).one();
                 TLensSeries lensSeries = lensSeriesService.lambdaQuery().eq(TLensSeries::getName, orderGood.getSeriesName())
-                        .eq(TLensSeries::getBrandId, one1.getId()).one();
+                        .eq(TLensSeries::getBrandId, brand.getId()).one();
                 TLensGoods one = lensGoodsService.lambdaQuery()
                         .eq(StringUtils.hasLength(orderGood.getSeriesName()),TLensGoods::getSeriesId, lensSeries.getId())
                         .eq(StringUtils.hasLength(orderGood.getRefractiveIndex()),TLensGoods::getRefractiveIndex, orderGood.getRefractiveIndex())
@@ -223,8 +234,14 @@
                         .eq(split.length>=2,TLensGoods::getColumnMirror, split[1])
                         .one();
                 if (one!=null){
-                    if (one.getTotal()-1<0){
-                        return ApiResult.failed("库存不足");
+                    if (one.getTotal()-1<0 && lensSeries.getType()==1 ){
+                        if (StringUtils.hasLength(orderGood.getRightLens())){
+                            orderService.removeById(dto);
+                            return ApiResult.failed("镜片(R)库存不足,请重新选择");
+                        }else{
+                            orderService.removeById(dto);
+                            return ApiResult.failed("镜片(L)库存不足,请重新选择");
+                        }
                     }
                     // 减少对应库存
                     one.setTotal(one.getTotal()-1);
@@ -263,6 +280,7 @@
                     lensWarehousingDetailService.save(tLensWarehousingDetail);
 
                 }else {
+                    orderService.removeById(dto);
                     return ApiResult.failed("商品库存不足");
                 }
             }else{
@@ -275,7 +293,8 @@
                         .eq(TFrameGoods::getColor, orderGood.getColor()).one();
                 if (one!=null){
                     if (one.getTotal()-1<0){
-                        return ApiResult.failed("库存不足");
+                        orderService.removeById(dto);
+                        return ApiResult.failed("镜架库存不足,请重新选择");
                     }
                     // 增加对应库存
                     one.setTotal(one.getTotal()-1);
@@ -312,16 +331,26 @@
                     frameWarehousingDetailService.save(tFrameWarehousingDetail);
 
                 }else{
-                    return ApiResult.failed("商品库存不足");
+                    orderService.removeById(dto);
+                    return ApiResult.failed("镜架库存不足,请重新选择");
                 }
             }
         }
         if (dto.getUserId()!=null){
             if (dto.getCouponId()!=null){
-                List<TCouponReceive> couponReceives = couponReceiveService.lambdaQuery().eq(TCouponReceive::getUserId, dto.getUserId())
-                        .eq(TCouponReceive::getCouponId, dto.getCouponId())
+                TCouponReceive couponReceive = couponReceiveService.getById(dto.getCouponId());
+                if (couponReceive==null){
+                    orderService.removeById(dto);
+                    return ApiResult.failed("优惠券不存在");
+                }
+                List<TCouponReceive> couponReceives = couponReceiveService.lambdaQuery()
+                        .eq(TCouponReceive::getUserId, dto.getUserId())
+                        .eq(TCouponReceive::getCouponId, couponReceive.getCouponId())
                         .orderByDesc(TCouponReceive::getCreateTime).list();
-                if (couponReceives.isEmpty())return ApiResult.failed("优惠券不存在");
+                if (couponReceives.isEmpty()){
+                    orderService.removeById(dto);
+                    return ApiResult.failed("优惠券不存在");
+                }
                 TCouponReceive tCouponReceive = couponReceives.get(0);
                 tCouponReceive.setStatus(2);
                 tCouponReceive.setUseTime(LocalDateTime.now());
@@ -330,14 +359,81 @@
         }
         List<TOptometryDetail> optometryDetails = dto.getOptometryDetails();
         if (!CollectionUtils.isEmpty(optometryDetails)){
+            int temp =0;
+            if (dto.getUserId()!=null){
+                TOptometry optometry = new TOptometry();
+                long count = lineUpService.count(Wrappers.lambdaQuery(TLineUp.class)
+                        .eq(TLineUp::getStoreId, dto.getStoreId()));
+                optometry.setCode(""+(count+1));
+                optometry.setUserId(dto.getUserId());
+                optometry.setAge(dto.getAge());
+                optometry.setGender(dto.getGender());
+                optometry.setRealName(dto.getRealName());
+                optometry.setPhone(dto.getPhone());
+                optometry.setStoreId(dto.getStoreId());
+                optometry.setStatus(3);
+                optometryService.save(optometry);
+                temp = optometry.getId();
+            }
+
+
             for (TOptometryDetail optometryDetail : optometryDetails) {
                 optometryDetail.setOrderId(dto.getId());
+                if (dto.getUserId()!=null){
+                    optometryDetail.setOptometryId(temp);
+                }
             }
             optometryDetailService.saveBatch(optometryDetails);
         }
         orderGoodsService.saveBatch(orderGoods);
         lensGoodsService.updateBatchById(tLensGoods);
         frameGoodsService.updateBatchById(tFrameGoods);
+        TAddOptometryVO tAddOptometryVO = new TAddOptometryVO();
+        TTicket tTicket = tTicketService.lambdaQuery().eq(TTicket::getStoreId, dto.getStoreId())
+                .eq(TTicket::getType,2)
+                .eq(TTicket::getStatus, 1).list().stream().findFirst().orElse(null);
+        if (tTicket==null){
+            orderService.removeById(dto);
+            return ApiResult.failed("当前门店未绑定小票机");
+        }
+        tAddOptometryVO.setSn(tTicket.getCloudId()+"");
+        tAddOptometryVO.setPhone(dto.getPhone());
+        List<TOrderGoods> orderGoods1 = dto.getOrderGoods();
+        ArrayList<TOrderGoodsPrintVO> tOrderGoodsPrintVOS = new ArrayList<>();
+        for (TOrderGoods orderGood : orderGoods1) {
+            TOrderGoodsPrintVO tOrderGoodsPrintVO = new TOrderGoodsPrintVO();
+            BeanUtils.copyProperties(orderGood,tOrderGoodsPrintVO);
+            if (orderGood.getModelId()!=null){
+                TModel byId = modelService.getById(orderGood.getModelId());
+                if (byId!=null){
+                    TMaterial byId1 = materialService.getById(byId.getMaterialId());
+                    if (byId1!=null){
+                        tOrderGoodsPrintVO.setMaterial(byId1.getName());
+                    }
+                }
+            }
+            tOrderGoodsPrintVOS.add(tOrderGoodsPrintVO);
+        }
+        tAddOptometryVO.setOrderGoods(tOrderGoodsPrintVOS);
+        tAddOptometryVO.setRemark(dto.getRemark());
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format = simpleDateFormat.format(new Date());
+        tAddOptometryVO.setTime(format);
+        tAddOptometryVO.setMachiningCode(dto.getMachiningCode());
+        List<TOptometryDetailVO> tOptometryDetailVOS = new ArrayList<>();
+        for (TOptometryDetail optometryDetail : dto.getOptometryDetails()) {
+            TOptometryDetailVO tOptometryDetailVO = new TOptometryDetailVO();
+            BeanUtils.copyProperties(optometryDetail,tOptometryDetailVO);
+            tOptometryDetailVOS.add(tOptometryDetailVO);
+        }
+        tAddOptometryVO.setOptometryDetailVOS(tOptometryDetailVOS);
+        tAddOptometryVO.setShopName(storeService.getById(dto.getStoreId()).getName());
+        System.err.println("加工单数据");
+        System.err.println(tAddOptometryVO);
+        if (dto.getIsMachining()==1){
+            // 打印加工单
+            TicketUtil.printMatch(tAddOptometryVO);
+        }
         return ApiResult.success(dto.getId());
     }
 

--
Gitblit v1.7.1