| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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) { |
| | |
| | | // 获取凌晨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); |
| | |
| | | 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("当前还有未结束的验光单"); |
| | |
| | | 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())){ |
| | |
| | | @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<>(); |
| | |
| | | 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(); |
| | | } |
| | | |