无关风月
2025-01-25 f9ec390d20bdb433e7a9dcf198988bb7fb505a43
optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java
@@ -1,20 +1,19 @@
package com.jilongda.optometrist.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
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.TOptometryQuery;
import com.jilongda.optometrist.query.TicketQuery;
import com.jilongda.optometrist.service.*;
import com.jilongda.optometrist.utils.LoginInfoUtil;
import com.jilongda.optometrist.vo.*;
import com.sun.org.apache.bcel.internal.generic.NEW;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
@@ -22,6 +21,7 @@
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;
@@ -57,6 +57,8 @@
    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) {
@@ -123,7 +125,7 @@
        // 获取凌晨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, optometrist.getId())
        int size = optometryService.lambdaQuery().eq(TOptometry::getStoreId, store.getId())
                .between(TOptometry::getCreateTime, startTime, endTime)
                .eq(TOptometry::getStatus, 3).list().size();
        tOptometristVO.setOptometryCount(size);
@@ -182,6 +184,7 @@
    public ApiResult startOptometry(Integer id) {
        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("当前还有未结束的验光单");
@@ -197,6 +200,7 @@
        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())){
@@ -226,22 +230,22 @@
    @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());
        }
        tOptometry.setLineUpId(dto.getId());
        Integer userId = loginInfoUtil.getUserId();
        TOptometrist byId2 = optometristService.getById(userId);
        tOptometry.setRealName(byId.getUserName());
        TOptometrist optometrist = optometristService.getById(userId);
        tOptometry.setRealName(lineUp.getUserName());
        tOptometry.setLineUpId(dto.getId());
        tOptometry.setOptometristId(userId);
        tOptometry.setStoreId(byId2.getStoreId());
        tOptometry.setStoreId(optometrist.getStoreId());
        tOptometry.setStatus(3);
        optometryService.save(tOptometry);
        List<TOptometryDetail> tOptometryDetails = new ArrayList<>();
@@ -257,14 +261,34 @@
            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::getType,1)
                .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();
    }