From c8b0b0b257790ae74e16a54bfb3772da1ff70288 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 20 一月 2025 15:29:17 +0800
Subject: [PATCH] bug修改

---
 optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java |  193 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 147 insertions(+), 46 deletions(-)

diff --git a/optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java b/optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java
index c46d107..b41f117 100644
--- a/optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java
+++ b/optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java
@@ -1,29 +1,30 @@
 package com.jilongda.optometrist.controller;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.jilongda.common.Ticket.TAddOptometryVO;
+import com.jilongda.common.Ticket.TOptometryDetailVO;
+import com.jilongda.common.Ticket.TicketUtil;
 import com.jilongda.common.basic.ApiResult;
 import com.jilongda.common.basic.PageInfo;
-import com.jilongda.optometrist.authority.model.SecUser;
 import com.jilongda.optometrist.authority.service.SecUserService;
 import com.jilongda.optometrist.model.*;
-import com.jilongda.optometrist.query.TOptometristQuery;
-import com.jilongda.optometrist.query.TicketQuery;
+import com.jilongda.optometrist.query.TOptometryQuery;
 import com.jilongda.optometrist.service.*;
 import com.jilongda.optometrist.utils.LoginInfoUtil;
-import com.jilongda.optometrist.vo.TAddOptometryVO;
-import com.jilongda.optometrist.vo.TLineUpDetailVO;
-import com.jilongda.optometrist.vo.TOptometristVO;
-import com.jilongda.optometrist.vo.TOptometryDetailVO;
-import com.sun.org.apache.bcel.internal.generic.NEW;
+import com.jilongda.optometrist.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.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -56,22 +57,84 @@
     private TOrderService orderService;
     @Autowired
     private TOptometryDetailService optometryDetailService;
+    @Autowired
+    private TTicketService tTicketService;
+    @ApiOperation(value = "获取验光单分页列表",tags = "验光单")
+    @PostMapping(value = "/pageList")
+    public ApiResult<PageInfo<TOptometryVO>> pageList(@RequestBody TOptometryQuery query) {
+        String startTime = null;
+        String endTime = null;
+        if (StringUtils.hasLength(query.getTime())){
+            startTime = query.getTime()+" 00:00:00";
+            endTime = query.getTime()+" 23:59:59";
+        }
+        query.setStartTime(startTime);
+        query.setEndTime(endTime);
+        PageInfo<TOptometryVO> tOptometryVOPageInfo = optometristService.pageList(query);
+        return ApiResult.success(tOptometryVOPageInfo);
+    }
+    @ApiOperation(value = "验光记录详情")
+    @GetMapping(value = "/detail")
+    public ApiResult<TDetailVO> detail(Integer id) {
+        TOptometry one = optometryService.getById(id);
+        TAppUser byId = appUserService.getById(one.getUserId());
+        TDetailVO tDetailVO = new TDetailVO();
+        tDetailVO.setName(byId.getName());
+        tDetailVO.setPhone(byId.getPhone());
+        tDetailVO.setAvatar(byId.getAvatar());
+        tDetailVO.setRealName(one.getRealName());
+        tDetailVO.setAge(one.getAge());
+        tDetailVO.setGender(one.getGender());
+        // 查询消费次数,验光次数
+        long l = optometryService.count(Wrappers.<TOptometry>lambdaQuery()
+                .eq(TOptometry::getUserId, byId.getId())
+                .eq(TOptometry::getStatus,3));
+        tDetailVO.setOptometryCount((int) l);
+        long count = orderService.count(Wrappers.<TOrder>lambdaQuery()
+                .eq(TOrder::getUserId, byId.getId()));
+        tDetailVO.setSaleCount((int) count);
+        TOptometrist byId1 = optometristService.getById(one.getOptometristId());
+        tDetailVO.setOptometristName(byId1.getName());
+        TStore byId2 = storeService.getById(one.getStoreId());
+        tDetailVO.setStoreName(byId2.getName());
+        List<TOptometryDetail> list = optometryDetailService.lambdaQuery().eq(TOptometryDetail::getOptometryId, one.getId()).list();
+        tDetailVO.setOptometryDetailVOS(list);
+        tDetailVO.setCreateTime(one.getCreateTime());
+        return ApiResult.success(tDetailVO);
+    }
+
+    public static void main(String[] args) {
+//        LocalDateTime now = LocalDateTime.now();
+//        // 获取凌晨00:00:00和23:59:59
+//        LocalDateTime startTime = now.withHour(0).withMinute(0).withSecond(0);
+//        LocalDateTime endTime = now.withHour(23).withMinute(59).withSecond(59);
+//        System.err.println(startTime);
+//        System.err.println(endTime);
+    }
     @ApiOperation(value = "首页")
     @PostMapping(value = "/index")
     public ApiResult<TOptometristVO> index() {
         TOptometristVO tOptometristVO = new TOptometristVO();
-
-        Long userId = loginInfoUtil.getUserId();
-        SecUser byId = secUserService.getById(userId);
-        TStore byId1 = storeService.getById(byId.getStoreId());
-        tOptometristVO.setStoreName(byId1.getName());
-        int size = optometryService.lambdaQuery().eq(TOptometry::getOptometristId, userId)
+        Integer userId = loginInfoUtil.getUserId();
+        TOptometrist optometrist = optometristService.getById(userId);
+        TStore store = storeService.getById(optometrist.getStoreId());
+        tOptometristVO.setStoreName(store.getName());
+        tOptometristVO.setName(optometrist.getName());
+        tOptometristVO.setPhone(optometrist.getPhone());
+        LocalDateTime nowTime = LocalDateTime.now();
+        // 获取凌晨00:00:00和23:59:59
+        LocalDateTime startTime = nowTime.withHour(0).withMinute(0).withSecond(0);
+        LocalDateTime endTime = nowTime.withHour(23).withMinute(59).withSecond(59);
+        int size = optometryService.lambdaQuery().eq(TOptometry::getStoreId, store.getId())
+                .between(TOptometry::getCreateTime, startTime, endTime)
                 .eq(TOptometry::getStatus, 3).list().size();
         tOptometristVO.setOptometryCount(size);
         // 查询今日的排号列表
-        List<TLineUp> list = tLineUpService.lambdaQuery().eq(TLineUp::getStoreId, byId.getStoreId())
+        List<TLineUp> list = tLineUpService.lambdaQuery().eq(TLineUp::getStoreId, optometrist.getStoreId())
                 .ne(TLineUp::getStatus, 3)
-                .ne(TLineUp::getStatus, 5).list();
+                .ne(TLineUp::getStatus, 5)
+                .orderByAsc(TLineUp::getCode)
+                .list();
         for (TLineUp tLineUp : list) {
             LocalDateTime now = LocalDateTime.now();
             LocalDateTime createTime = tLineUp.getCreateTime();
@@ -119,40 +182,71 @@
     @ApiOperation(value = "开始验光")
     @GetMapping(value = "/startOptometry")
     public ApiResult startOptometry(Integer id) {
-        Long userId = loginInfoUtil.getUserId();
+        Integer userId = loginInfoUtil.getUserId();
         List<TLineUp> list = tLineUpService.lambdaQuery().eq(TLineUp::getStatus, 2)
+                .ne(TLineUp::getId,id)
                 .eq(TLineUp::getOptometristId, userId).list();
-        if (!list.isEmpty())return ApiResult.failed("当前还有未结束的验光单");
+        if (!list.isEmpty()){
+            return ApiResult.failed("当前还有未结束的验光单");
+        }
         TLineUp lineUp = tLineUpService.getById(id);
+        // 获取今天凌晨00:00:00和今日23:59:59
+        Date start = new Date();
+        start.setHours(0);
+        start.setMinutes(0);
+        start.setSeconds(0);
+        Date end = new Date();
+        end.setHours(23);
+        end.setMinutes(59);
+        end.setSeconds(59);
+        List<TLineUp> lineUps = tLineUpService.lambdaQuery().eq(TLineUp::getStoreId, lineUp.getStoreId())
+                .eq(TLineUp::getStatus,1)
+                .between(TLineUp::getCreateTime, start, end).list();
+        for (TLineUp up : lineUps) {
+            if (Integer.parseInt(up.getCode())<Integer.parseInt(lineUp.getCode())){
+                up.setStatus(4);
+            }
+        }
+        tLineUpService.updateBatchById(lineUps);
         lineUp.setStatus(2);
+        lineUp.setOptometristId(userId);
         tLineUpService.updateById(lineUp);
         return ApiResult.success();
     }
+
     @ApiOperation(value = "取消排号")
     @GetMapping(value = "/cancelLineUp")
     public ApiResult cancelLineUp(Integer id) {
         TLineUp lineUp = tLineUpService.getById(id);
         lineUp.setStatus(5);
         tLineUpService.updateById(lineUp);
+        TOptometry one = optometryService.lambdaQuery().eq(TOptometry::getLineUpId, lineUp.getId()).one();
+        if (one!=null){
+            one.setStatus(5);
+            optometryService.updateById(one);
+        }
         return ApiResult.success();
     }
     @ApiOperation(value = "填写验光信息完成")
     @PostMapping(value = "/add")
     public ApiResult<String> add(@RequestBody TAddOptometryVO dto) {
-        TLineUp byId = tLineUpService.getById(dto.getId());
-        TAppUser byId1 = appUserService.getById(byId.getUserId());
+        TLineUp lineUp = tLineUpService.getById(dto.getId());
+        TAppUser app = appUserService.getById(lineUp.getUserId());
         TOptometry tOptometry = new TOptometry();
-        tOptometry.setUserId(byId.getUserId());
-        tOptometry.setAge(byId.getAge());
-        tOptometry.setGender(byId.getGender());
-        if (byId1!=null){
-            tOptometry.setPhone(byId1.getPhone());
+        tOptometry.setUserId(lineUp.getUserId());
+        tOptometry.setAge(lineUp.getAge());
+        tOptometry.setGender(lineUp.getGender());
+        if (app!=null){
+            tOptometry.setPhone(app.getPhone());
         }
-        Long userId = loginInfoUtil.getUserId();
-        SecUser byId2 = secUserService.getById(userId);
-        tOptometry.setRealName(byId.getUserName());
-        tOptometry.setOptometristId(userId.intValue());
-        tOptometry.setStoreId(byId2.getStoreId());
+        tOptometry.setLineUpId(dto.getId());
+        Integer userId = loginInfoUtil.getUserId();
+        TOptometrist optometrist = optometristService.getById(userId);
+        tOptometry.setRealName(lineUp.getUserName());
+        tOptometry.setLineUpId(dto.getId());
+        tOptometry.setOptometristId(userId);
+        tOptometry.setStoreId(optometrist.getStoreId());
+        tOptometry.setStatus(3);
         optometryService.save(tOptometry);
         List<TOptometryDetail> tOptometryDetails = new ArrayList<>();
 
@@ -163,33 +257,40 @@
             tOptometryDetail.setBallMirror(optometryDetailVO.getBallMirror());
             tOptometryDetail.setColumnMirror(optometryDetailVO.getColumnMirror());
             tOptometryDetail.setAxis(optometryDetailVO.getAxis());
-            tOptometryDetail.setAdd(optometryDetailVO.getAdd());
+            tOptometryDetail.setAddS(optometryDetailVO.getAddS());
             tOptometryDetail.setPupilHeight(optometryDetailVO.getPupilHeight());
             tOptometryDetail.setPupilDistance(optometryDetailVO.getPupilDistance());
             tOptometryDetail.setCorrect(optometryDetailVO.getCorrect());
-            tOptometryDetail.setStoreId(byId2.getStoreId());
+            tOptometryDetail.setStoreId(optometrist.getStoreId());
             tOptometryDetail.setStatus(optometryDetailVO.getStatus());
             tOptometryDetails.add(tOptometryDetail);
         }
         optometryDetailService.saveBatch(tOptometryDetails);
         // 验光完成
-        byId.setStatus(3);
-        tLineUpService.updateById(byId);
+        lineUp.setStatus(3);
+        tLineUpService.updateById(lineUp);
+        dto.setOptometristName(optometrist.getName());
+        TStore store = storeService.getById(lineUp.getStoreId());
+        dto.setShopName(store.getName());
+        TAppUser appUser = appUserService.getById(lineUp.getUserId());
+        dto.setPhone(appUser.getPhone());
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format = simpleDateFormat.format(new Date());
+        dto.setTime(format);
+        TTicket tTicket = tTicketService.lambdaQuery().eq(TTicket::getStoreId, lineUp.getStoreId())
+                .eq(TTicket::getStatus, 1).list().stream().findFirst().orElse(null);
+        if (tTicket==null){
+            return ApiResult.failed("当前门店未绑定小票机");
+        }
+        dto.setSn(tTicket.getCloudId()+"");
+        String print = TicketUtil.print(dto);
+        JSONObject jsonObject = JSONObject.parseObject(print);
+        if (!jsonObject.getString("msg").equals("ok")){
+            return ApiResult.failed(jsonObject.getString("msg"));
+        }
         return ApiResult.success();
     }
 
-    @ApiOperation(value = "验光师编辑")
-    @PostMapping(value = "/update")
-    public ApiResult<String> update(@RequestBody TOptometrist dto) {
-        optometristService.updateById(dto);
-        return ApiResult.success();
-    }
 
-    @ApiOperation(value = "验光师上下架")
-    @GetMapping(value = "/upAndDown")
-    public ApiResult<Boolean> upAndDown(@RequestParam Integer id,
-                                        @RequestParam Integer status) {
-        return ApiResult.success(optometristService.upAndDown(id,status));
-    }
 }
 

--
Gitblit v1.7.1