package com.ltkj.web.controller.system;
|
|
import java.io.*;
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.text.SimpleDateFormat;
|
import java.time.OffsetTime;
|
import java.util.*;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
import java.util.stream.Stream;
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletResponse;
|
|
import cn.hutool.core.codec.Base64;
|
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.crypto.symmetric.DES;
|
import cn.hutool.extra.pinyin.PinyinUtil;
|
import com.alibaba.fastjson2.JSON;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.fasterxml.jackson.databind.BeanProperty;
|
import com.ltkj.common.core.domain.entity.SysDept;
|
import com.ltkj.common.core.domain.entity.SysUser;
|
import com.ltkj.common.core.redis.RedisCache;
|
import com.ltkj.common.utils.SecurityUtils;
|
import com.ltkj.framework.config.MatchUtils;
|
import com.ltkj.framework.config.UserHoder;
|
import com.ltkj.hosp.domain.*;
|
import com.ltkj.hosp.service.*;
|
import com.ltkj.hosp.vodomain.BingZhongVO;
|
import com.ltkj.hosp.vodomain.HistoryTjOrder;
|
import com.ltkj.hosp.vodomain.QjDomainVo;
|
import com.ltkj.mall.domain.MallCheckLog;
|
import com.ltkj.mall.domain.MallOrder;
|
import com.ltkj.mall.mallOrderUtils.OrderHandleOption;
|
import com.ltkj.mall.mallOrderUtils.OrderUtil;
|
import com.ltkj.mall.mallOrderUtils.TjConstants;
|
import com.ltkj.mall.service.IMallCheckLogService;
|
import com.ltkj.mall.service.IMallOrderService;
|
import com.ltkj.system.service.ISysConfigService;
|
import com.ltkj.system.service.ISysDeptService;
|
import com.ltkj.system.service.ISysUserService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.*;
|
import com.ltkj.common.annotation.Log;
|
import com.ltkj.common.core.controller.BaseController;
|
import com.ltkj.common.core.domain.AjaxResult;
|
import com.ltkj.common.enums.BusinessType;
|
import com.ltkj.common.utils.poi.ExcelUtil;
|
import com.ltkj.common.core.page.TableDataInfo;
|
|
/**
|
* 体检记录Controller
|
*
|
* @author ltkj
|
* @date 2022-11-21
|
*/
|
@RestController
|
@RequestMapping("/hosp/order")
|
@Api(tags = "PC端 ----体检记录接口")
|
@Slf4j
|
public class TjOrderController extends BaseController {
|
@Resource
|
private ITjOrderService tjOrderService;
|
@Resource
|
private ITjOrderDetailService tjOrderDetailService;
|
@Resource
|
private ITjFlowingWaterService tjFlowingWaterService;
|
@Resource
|
private ITjCustomerService tjCustomerService;
|
@Resource
|
private ITjPackageProjectService tjPackageProjectService;
|
@Resource
|
private IDictCompService iDictCompService;
|
@Resource
|
private ITjReservationService tjReservationService;
|
@Resource
|
private ITjPackageService tjPackageService;
|
@Resource
|
private ITjProjectService projectService;
|
@Resource
|
private ITbTransitionService transitionService;
|
@Resource
|
private ISysConfigService configService;
|
@Value("${path.filePath}")
|
private String value;
|
@Resource
|
private ITjOrderRemarkService remarkService;
|
@Resource
|
private TjAsyncService asyncService;
|
@Resource
|
private ISysUserService userService;
|
|
@Resource
|
private RedisCache redisCache;
|
@Autowired
|
private ITjReportPrintService tjReportPrintService;
|
|
@Resource
|
private ITjPrintOrderService printOrderService;
|
|
@Resource
|
private IJimuOnlineReportService reportService;
|
|
@Resource
|
private ITjSurveyRecordService surveyRecordService;
|
|
@Autowired
|
private IMallOrderService mallOrderService;
|
@Autowired
|
private IMallCheckLogService mallCheckLogService;
|
@Resource
|
private ITjDwDeptService dwDeptService;
|
|
@Resource
|
private ITjDwGroupingService dwGroupingService;
|
|
@Resource
|
private ITjOrderDetailRulesService orderDetailRulesService;
|
|
@Resource
|
private ITjRulesService rulesService;
|
|
@Autowired
|
private ITjAskMedicalHistoryService tjAskMedicalHistoryService;
|
|
@Autowired
|
private ITjReportGetAddressService tjReportGetAddressService;
|
|
|
/**
|
* 查询体检记录列表
|
*/
|
// @PreAuthorize("@ss.hasPermi('hosp:order:list')")
|
@GetMapping("/list")
|
@ApiOperation(value = "查询体检记录列表(默认)")
|
public TableDataInfo list(TjOrder tjOrder) {
|
startPage();
|
startOrderBy();
|
List<TjOrder> list = tjOrderService.selectTjOrderList(tjOrder);
|
if (list != null) {
|
for (TjOrder order : list) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
}
|
}
|
return getDataTable(list);
|
}
|
|
|
@GetMapping("/getWenJuanList")
|
@ApiOperation(value = "查询体检记录列表")
|
public AjaxResult getWenJuanList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
|
@ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
|
@ApiParam(value = "体检号") @RequestParam(required = false) String tjNum,
|
@ApiParam(value = "姓名") @RequestParam(required = false) String name,
|
@ApiParam(value = "登记开始时间") @RequestParam(required = false) Date djbeginTime,
|
@ApiParam(value = "登记结束时间") @RequestParam(required = false) Date djendTime,
|
@ApiParam(value = "报告开始时间") @RequestParam(required = false) Date bgbeginTime,
|
@ApiParam(value = "报告结束时间") @RequestParam(required = false) Date bgendTime) {
|
Map<String, Object> map = new HashMap<>();
|
if (null != name) {
|
LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
|
wqq.like(TjCustomer::getCusName, name);
|
List<TjCustomer> customerList = tjCustomerService.list(wqq);
|
List<TjOrder> list2 = new ArrayList<>();
|
if (null != customerList && customerList.size() > 0) {
|
List<TjOrder> list = new ArrayList<>();
|
for (TjCustomer customer : customerList) {
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
if (null != djbeginTime && null != djendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(djbeginTime), DateUtil.endOfDay(djendTime));
|
}
|
wq.eq(TjOrder::getUserId, customer.getCusId());
|
list.addAll(tjOrderService.list(wq));
|
}
|
List<TjOrder> collect = null;
|
if (list.size() > 0) {
|
for (TjOrder order : list) {
|
//筛选有调查问卷的
|
LambdaQueryWrapper<TjSurveyRecord> wqq1 = new LambdaQueryWrapper<>();
|
wqq1.eq(TjSurveyRecord::getTjnumber, order.getTjNumber());
|
List<TjSurveyRecord> one = surveyRecordService.list(wqq1);
|
if (one.size() == 0) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
order.setCareer(tjCustomer.getCareer());
|
order.setIdType(tjCustomer.getIdType());
|
order.setAgeUnit(tjCustomer.getAgeUnit());
|
order.setTjCount(String.valueOf(tjCustomer.getCusNumber()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
list2.add(order);
|
}
|
}
|
collect = list2.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
}
|
if (null != collect) {
|
map.put("total", collect.size());
|
} else {
|
map.put("total", 0);
|
}
|
map.put("list", collect);
|
return AjaxResult.success(map);
|
}
|
|
}
|
Page<TjOrder> page1 = new Page<>(pageNum, pageSize);
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
if (null != djbeginTime && null != djendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(djbeginTime), DateUtil.endOfDay(djendTime));
|
}
|
if (null != bgbeginTime && null != bgendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(bgbeginTime), DateUtil.endOfDay(bgendTime));
|
}
|
if (null != tjNum) {
|
wq.eq(TjOrder::getTjNumber, tjNum);
|
}
|
wq.orderByDesc(TjOrder::getCreateTime);
|
Page<TjOrder> page2 = tjOrderService.page(page1, wq);
|
List<TjOrder> list = page2.getRecords();
|
List<TjOrder> list1 = new ArrayList<>();
|
if (list != null) {
|
for (TjOrder order : list) {
|
//筛选有调查问卷的
|
LambdaQueryWrapper<TjSurveyRecord> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TjSurveyRecord::getTjnumber, order.getTjNumber());
|
List<TjSurveyRecord> one = surveyRecordService.list(wqq);
|
if (one.size() == 0) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
order.setCareer(tjCustomer.getCareer());
|
order.setIdType(tjCustomer.getIdType());
|
order.setAgeUnit(tjCustomer.getAgeUnit());
|
order.setTjCount(String.valueOf(tjCustomer.getCusNumber()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
list1.add(order);
|
}
|
}
|
}
|
map.put("list", list1);
|
map.put("total", list1.size());
|
return AjaxResult.success(map);
|
}
|
|
|
@GetMapping("/getOrderList")
|
@ApiOperation(value = "查询体检记录列表")
|
public AjaxResult getOrderList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
|
@ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
|
@ApiParam(value = "体检号)") @RequestParam(required = false) String tjNum,
|
@ApiParam(value = "姓名)") @RequestParam(required = false) String name,
|
@ApiParam(value = "登记开始时间") @RequestParam(required = false) Date djbeginTime,
|
@ApiParam(value = "登记结束时间") @RequestParam(required = false) Date djendTime,
|
@ApiParam(value = "报告开始时间") @RequestParam(required = false) Date bgbeginTime,
|
@ApiParam(value = "报告结束时间") @RequestParam(required = false) Date bgendTime) {
|
Map<String, Object> map = new HashMap<>();
|
if (null != name) {
|
LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
|
wqq.like(TjCustomer::getCusName, name);
|
List<TjCustomer> customerList = tjCustomerService.list(wqq);
|
if (null != customerList && customerList.size() > 0) {
|
List<TjOrder> list = new ArrayList<>();
|
for (TjCustomer customer : customerList) {
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
if (null != djbeginTime && null != djendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(djbeginTime), DateUtil.endOfDay(djendTime));
|
}
|
wq.eq(TjOrder::getUserId, customer.getCusId());
|
list.addAll(tjOrderService.list(wq));
|
}
|
List<TjOrder> collect = null;
|
if (list.size() > 0) {
|
for (TjOrder order : list) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setCareer(tjCustomer.getCareer());
|
order.setIdType(tjCustomer.getIdType());
|
order.setAgeUnit(tjCustomer.getAgeUnit());
|
order.setTjCount(String.valueOf(tjCustomer.getCusNumber()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
}
|
collect = list.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
}
|
if (null != collect) {
|
map.put("total", collect.size());
|
} else {
|
map.put("total", 0);
|
}
|
map.put("list", collect);
|
return AjaxResult.success(map);
|
}
|
|
}
|
Page<TjOrder> page1 = new Page<>(pageNum, pageSize);
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
if (null != djbeginTime && null != djendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(djbeginTime), DateUtil.endOfDay(djendTime));
|
}
|
if (null != bgbeginTime && null != bgendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(bgbeginTime), DateUtil.endOfDay(bgendTime));
|
}
|
if (null != tjNum) {
|
wq.eq(TjOrder::getTjNumber, tjNum);
|
}
|
wq.orderByDesc(TjOrder::getCreateTime);
|
Page<TjOrder> page2 = tjOrderService.page(page1, wq);
|
List<TjOrder> list = page2.getRecords();
|
if (list != null) {
|
for (TjOrder order : list) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
order.setCareer(tjCustomer.getCareer());
|
order.setIdType(tjCustomer.getIdType());
|
order.setAgeUnit(tjCustomer.getAgeUnit());
|
order.setTjCount(String.valueOf(tjCustomer.getCusNumber()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
}
|
}
|
map.put("list", list);
|
map.put("total", page2.getTotal());
|
return AjaxResult.success(map);
|
}
|
|
|
@GetMapping("/getOrderListOO")
|
@ApiOperation(value = "体检报告页面——体检记录列表")
|
public AjaxResult getOrderListOO(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
|
@ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
|
@ApiParam(value = "体检号)") @RequestParam(required = false) String tjNum,
|
@ApiParam(value = "姓名)") @RequestParam(required = false) String name,
|
@ApiParam(value = "报告开始时间") @RequestParam(required = false) Date bgbeginTime,
|
@ApiParam(value = "报告结束时间") @RequestParam(required = false) Date bgendTime) {
|
Map<String, Object> map = new HashMap<>();
|
if (null != name) {
|
LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
|
wqq.like(TjCustomer::getCusName, name);
|
List<TjCustomer> customerList = tjCustomerService.list(wqq);
|
if (null != customerList && customerList.size() > 0) {
|
List<TjOrder> list = new ArrayList<>();
|
for (TjCustomer customer : customerList) {
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
wq.isNotNull(TjOrder::getReportTime);
|
wq.eq(TjOrder::getUserId, customer.getCusId());
|
wq.eq(TjOrder::getHeshouStatus, 1); //核收状态为1才能打印
|
list.addAll(tjOrderService.list(wq));
|
}
|
List<TjOrder> collect = null;
|
if (list.size() > 0) {
|
for (TjOrder order : list) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
//从打印记录查出最新打印时间
|
LambdaQueryWrapper<TjReportPrint> wqqq = new LambdaQueryWrapper<>();
|
wqqq.eq(TjReportPrint::getTjNumber, order.getTjNumber());
|
wqqq.orderByDesc(TjReportPrint::getPrintTime);
|
wqqq.last("limit 1");
|
TjReportPrint one = tjReportPrintService.getOne(wqqq);
|
if (one != null) {
|
order.setPrintLastTime(one.getPrintTime());
|
}
|
|
}
|
collect = list.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
}
|
if (null != collect) {
|
map.put("total", collect.size());
|
} else {
|
map.put("total", 0);
|
}
|
map.put("list", collect);
|
return AjaxResult.success(map);
|
}
|
|
}
|
Page<TjOrder> page1 = new Page<>(pageNum, pageSize);
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
wq.isNotNull(TjOrder::getReportTime);
|
wq.eq(TjOrder::getHeshouStatus, 1); //核收状态为1才能打印
|
if (null != bgbeginTime && null != bgendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(bgbeginTime), DateUtil.endOfDay(bgendTime));
|
}
|
if (null != tjNum) {
|
wq.eq(TjOrder::getTjNumber, tjNum);
|
}
|
wq.orderByDesc(TjOrder::getReportTime);
|
Page<TjOrder> page2 = tjOrderService.page(page1, wq);
|
List<TjOrder> list = page2.getRecords();
|
if (list != null) {
|
for (TjOrder order : list) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
if (tjCustomer.getCusIdcard() != null) {
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
}
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
//从打印记录查出最新打印时间
|
LambdaQueryWrapper<TjReportPrint> wqqq = new LambdaQueryWrapper<>();
|
wqqq.eq(TjReportPrint::getTjNumber, order.getTjNumber());
|
wqqq.orderByDesc(TjReportPrint::getPrintTime);
|
wqqq.last("limit 1");
|
TjReportPrint one = tjReportPrintService.getOne(wqqq);
|
if (one != null) {
|
order.setPrintLastTime(one.getPrintTime());
|
}
|
}
|
}
|
map.put("list", list);
|
map.put("total", page2.getTotal());
|
return AjaxResult.success(map);
|
}
|
|
|
@GetMapping("/getPrintOrderList")
|
@ApiOperation(value = "体检发票打印接口")
|
public AjaxResult getPrintOrderList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
|
@ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
|
@ApiParam(value = "体检号)") @RequestParam(required = false) String tjNum,
|
@ApiParam(value = "已打印未打印0未打印1已打印)") @RequestParam(required = false) Integer type,
|
@ApiParam(value = "姓名") @RequestParam(required = false) String name,
|
@ApiParam(value = "报告开始时间") @RequestParam(required = false) Date bgbeginTime,
|
@ApiParam(value = "报告结束时间") @RequestParam(required = false) Date bgendTime) {
|
Map<String, Object> map = new HashMap<>();
|
List<TjOrder> collect = null;
|
if (null != name) {
|
LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
|
wqq.like(TjCustomer::getCusName, name);
|
List<TjCustomer> customerList = tjCustomerService.list(wqq);
|
if (null != customerList && customerList.size() > 0) {
|
List<TjOrder> list = new ArrayList<>();
|
for (TjCustomer customer : customerList) {
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
wq.isNotNull(TjOrder::getReportTime);
|
wq.eq(TjOrder::getUserId, customer.getCusId());
|
list.addAll(tjOrderService.list(wq));
|
}
|
if (list.size() > 0) {
|
for (TjOrder order : list) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setGrMoBanId(reportService.getGrMoBanIds());
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
if (null != tjCustomer.getCusPhone())
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
if (null != tjCustomer.getCusIdcard())
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
//从打印记录查出最新打印时间
|
TjPrintOrder one = printOrderService.getTjPrintOrderByTjNum(order.getTjNumber());
|
if (one != null) {
|
order.setPrintTime(one.getCreateTime());
|
order.setPrintName(one.getCreateBy());
|
order.setType(1);
|
} else {
|
order.setType(0);
|
}
|
|
}
|
collect = list.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
}
|
if (null != collect) {
|
map.put("total", collect.size());
|
} else {
|
map.put("total", 0);
|
}
|
map.put("list", collect);
|
return AjaxResult.success(map);
|
}
|
|
}
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
wq.isNotNull(TjOrder::getReportTime);
|
if (null != tjNum) {
|
wq.eq(TjOrder::getTjNumber, tjNum);
|
List<TjOrder> orderList = Optional.ofNullable(tjOrderService.list(wq)).get();
|
if (orderList.size() > 0) {
|
for (TjOrder order : orderList) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setGrMoBanId(reportService.getGrMoBanIds());
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
if (null != tjCustomer.getCusPhone())
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
if (null != tjCustomer.getCusIdcard())
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
//从打印记录查出最新打印时间
|
TjPrintOrder one = printOrderService.getTjPrintOrderByTjNum(order.getTjNumber());
|
|
if (one != null) {
|
order.setPrintTime(one.getCreateTime());
|
order.setPrintName(one.getCreateBy());
|
order.setType(1);
|
} else {
|
order.setType(0);
|
}
|
}
|
collect = orderList.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
}
|
if (null != collect) {
|
map.put("total", collect.size());
|
} else {
|
map.put("total", 0);
|
}
|
map.put("list", collect);
|
return AjaxResult.success(map);
|
}
|
|
if (null != bgbeginTime && null != bgendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(bgbeginTime), DateUtil.endOfDay(bgendTime));
|
}
|
|
List<TjOrder> list = Optional.ofNullable(tjOrderService.list(wq)).get();
|
if (list.size() > 0) {
|
asyncService.getPrintOrderList(list);
|
if (redisCache.hasKey("getPrintOrderList")) {
|
if (null != type && type == 0) {
|
List<TjOrder> list1 = redisCache.getCacheMapValue("getPrintOrderList", "0");
|
collect = list1.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
}
|
if (null != type && type == 1) {
|
List<TjOrder> list1 = redisCache.getCacheMapValue("getPrintOrderList", "1");
|
collect = list1.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
}
|
} else {
|
List<TjOrder> list1 = new ArrayList<>();
|
extracted(type, list, list1);
|
collect = list1.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
}
|
}
|
if (null != collect) {
|
map.put("total", collect.size());
|
} else {
|
map.put("total", 0);
|
}
|
map.put("list", collect);
|
return AjaxResult.success(map);
|
}
|
|
private void extracted(Integer type, List<TjOrder> list, List<TjOrder> list1) {
|
for (TjOrder order : list) {
|
TjCustomer tjCustomer = tjCustomerService.selectTjCustomerByCusId(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setGrMoBanId(reportService.getGrMoBanIds());
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
if (null != tjCustomer.getCusPhone())
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
if (null != tjCustomer.getCusIdcard())
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.selectDictCompByDrugManufacturerId(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.selectDictCompByDrugManufacturerId(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
//从打印记录查出最新打印时间
|
TjPrintOrder one = printOrderService.getTjPrintOrderByTjNum(order.getTjNumber());
|
if (null != type && type == 1 && one != null) {
|
order.setPrintTime(one.getCreateTime());
|
order.setPrintName(one.getCreateBy());
|
order.setType(1);
|
list1.add(order);
|
}
|
if (null != type && type == 0 && one == null) {
|
order.setType(0);
|
list1.add(order);
|
}
|
}
|
}
|
|
|
/**
|
* 导出体检记录列表
|
*/
|
// @PreAuthorize("@ss.hasPermi('hosp:order:export')")
|
@Log(title = "体检记录", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
@ApiOperation(value = "导出体检记录列表")
|
public void export(HttpServletResponse response, TjOrder tjOrder) {
|
//List<TjOrder> list = tjOrderService.selectTjOrderList(tjOrder);
|
List<TjOrder> list = tjOrderService.selectExportOrderList(tjOrder);
|
ExcelUtil<TjOrder> util = new ExcelUtil<TjOrder>(TjOrder.class);
|
util.exportExcel(response, list, "体检记录数据");
|
}
|
|
/**
|
* 获取体检记录详细信息
|
*/
|
// @PreAuthorize("@ss.hasPermi('hosp:order:query')")
|
@GetMapping(value = "/{orderId}")
|
@ApiOperation(value = "获取体检记录详细信息")
|
public AjaxResult getInfo(@PathVariable("orderId") Long orderId) {
|
return success(tjOrderService.selectTjOrderByOrderId(orderId));
|
}
|
|
|
@GetMapping("/getIsRequired")
|
@ApiOperation(value = "根据参数配置获取是否必填项(身份证、性别、电话、照片、是否直接下单)")
|
public AjaxResult getIsRequired() {
|
Map<String, String> res = new HashMap<>();
|
res.put("has_idcard", configService.selectConfigByKey("has_idcard"));
|
res.put("has_sex", configService.selectConfigByKey("has_sex"));
|
res.put("is_phone", configService.selectConfigByKey("is_phone"));
|
res.put("mall_hasPhoto", configService.selectConfigByKey("mall_hasPhoto"));
|
res.put("has_charge", configService.selectConfigByKey("has_charge"));
|
return AjaxResult.success(res);
|
}
|
|
|
/**
|
* 体检签到登记接口
|
*/
|
@PostMapping
|
@ApiOperation(value = "体检签到登记接口")
|
@Transactional
|
public AjaxResult addOrderAndDetail(@RequestBody TjOrder tjOrder) throws Exception {
|
Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
|
SysUser sysUser = userService.getById(userId);
|
LambdaQueryWrapper<TjOrder> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TjOrder::getUserId, tjOrder.getUserId());
|
wqq.eq(TjOrder::getCheckStatus, 0);
|
wqq.isNull(TjOrder::getFinishTime);
|
TjOrder order = tjOrderService.getOne(wqq);
|
if (null != order) {
|
return AjaxResult.error("不可重复登记");
|
}
|
LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjCustomer::getCusId, tjOrder.getUserId());
|
TjCustomer tjCustomer = tjCustomerService.getOne(wq);
|
if (tjCustomer == null) return AjaxResult.error("该客户未签到或不存在");
|
LambdaQueryWrapper<TjReservation> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjReservation::getIdCard, tjCustomer.getCusIdcard());
|
wq1.eq(TjReservation::getIsExpire, 2);
|
TjReservation tjReservation = tjReservationService.getOne(wq1);
|
MallOrder mallOrder = null;
|
if (tjReservation != null) {
|
mallOrder = mallOrderService.getOne(new LambdaQueryWrapper<MallOrder>().eq(MallOrder::getReservationId, tjReservation.getId()));
|
if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) {
|
return AjaxResult.error("未到预约时间");
|
}
|
if (DateUtil.endOfDay(tjReservation.getReservationTime()).before(new Date())) {
|
tjReservation.setIsExpire(1);
|
tjReservationService.updateById(tjReservation);
|
return AjaxResult.error("对不起您的预约已超时请重新预约");
|
}
|
if (null != tjReservation.getTeamNo()) tjOrder.setTeamNo(tjReservation.getTeamNo());
|
if (null != tjReservation.getCompanyId()) tjOrder.setFirmId(tjReservation.getCompanyId());
|
if (null != tjReservation.getDepartment()) tjOrder.setFirmDeptName(tjReservation.getDepartment());
|
if (null != tjReservation.getJobNo()) tjOrder.setFirmWorkId(tjReservation.getJobNo());
|
if (null != tjReservation.getPacId()) tjOrder.setPacId(tjReservation.getPacId());
|
if (null != tjReservation.getGroupingId()){
|
tjOrder.setGroupId(tjReservation.getGroupingId());
|
tjOrder.setFirmDeptId(tjReservation.getPacId());
|
}
|
// if (null != tjReservation.getDepartmentId()) tjOrder.setFirmDeptId(tjReservation.getDepartmentId());
|
tjReservation.setIsExpire(1);
|
tjReservationService.updateById(tjReservation);
|
if (null != tjReservation.getTeamNo()) {
|
tjOrder.setTjType("1");
|
} else {
|
tjOrder.setTjType("2");
|
}
|
}
|
//生成体检号
|
String tjNumber = (SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmss").format(new Date()));
|
tjOrder.setTjNumber(tjNumber);
|
if (null != tjOrder.getPhoto()) {
|
File file = new File(tjOrder.getPhoto());
|
if (file.isFile()) {
|
FileInputStream fileInputStream = new FileInputStream(file);
|
byte[] bytes = new byte[fileInputStream.available()];
|
fileInputStream.read(bytes); // 读取到 byte 里面
|
fileInputStream.close();
|
// 得到文件 之后转成beye 然后使用base64转码
|
String encode = Base64.encode(bytes);
|
tjOrder.setPhoto(encode);
|
}
|
}
|
if (tjOrder.getFirmId() == null) {
|
tjOrder.setFirmId("0");
|
}
|
if (null == tjOrder.getPacId() && null != transitionService.getTbTransitionPacIdByCusIdAndPac(String.valueOf(tjOrder.getUserId()))) {
|
tjOrder.setPacId(transitionService.getTbTransitionPacIdByCusIdAndPac(String.valueOf(tjOrder.getUserId())));
|
}
|
//判断小程序上预约是否付钱
|
if (null != mallOrder) tjOrder.setMallOrderId(String.valueOf(mallOrder.getId()));
|
tjOrder.setStatus(TjConstants.TJ_BEGIN);
|
if (tjOrderService.save(tjOrder)) {
|
//保存收货地址
|
if ("2".equals(tjOrder.getGetType())){
|
final TjReportGetAddress address = tjOrder.getAddAddress();
|
if (address!=null){
|
address.setTjNumber(tjNumber);
|
tjReportGetAddressService.save(address);
|
}
|
}
|
Long cusNumber = tjCustomer.getCusNumber();
|
cusNumber += 1;
|
tjCustomer.setCusNumber(cusNumber);
|
tjCustomerService.updateById(tjCustomer);
|
BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount())).divide(BigDecimal.valueOf(10));
|
TjFlowingWater tjFlowingWater = new TjFlowingWater();
|
if ("1".equals(tjOrder.getTjType())) {
|
if (null != tjReservation && tjReservation.getPayType() == 1) {
|
tjFlowingWater.setPayStasus(3L);
|
}
|
}
|
tjFlowingWater.setOrderId(tjOrder.getOrderId());
|
Date date1 = new Date(System.currentTimeMillis());
|
String s1 = SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmssSSS").format(date1);
|
tjFlowingWater.setWaterId(PinyinUtil.getFirstLetter(tjCustomer.getCusName(), "") + s1);
|
if (null != mallOrder) {
|
if (mallOrder.getOrderStatus().equals(201L)) {
|
tjFlowingWater.setCopeWith(mallOrder.getActualPrice());
|
tjFlowingWater.setPaidIn(mallOrder.getActualPrice());
|
tjFlowingWater.setDiscount(String.valueOf(1));
|
tjFlowingWater.setPayStasus(1L);
|
tjFlowingWater.setPayType(3L);
|
MallCheckLog checkLog = new MallCheckLog();
|
checkLog.setCheckBy(sysUser.getNickName());
|
checkLog.setUserId(mallOrder.getUserId());
|
checkLog.setConsignee(mallOrder.getConsignee());
|
checkLog.setIdCard(mallOrder.getIdCard());
|
checkLog.setOrderId(String.valueOf(mallOrder.getId()));
|
checkLog.setOrderSn(mallOrder.getOrderSn());
|
checkLog.setCheckTime(new Date());
|
checkLog.setShipSn("HX" + s1);
|
mallCheckLogService.save(checkLog);
|
mallOrder.setOrderStatus(301L);
|
mallOrderService.updateById(mallOrder);
|
}
|
} else {
|
tjFlowingWater.setCopeWith(tjOrder.getTjFlowingWater().getCopeWith());
|
tjFlowingWater.setPaidIn(tjOrder.getTjFlowingWater().getPaidIn());
|
tjFlowingWater.setDiscount(tjOrder.getTjFlowingWater().getDiscount());
|
tjFlowingWater.setPayStasus(0L);
|
}
|
if (tjFlowingWaterService.save(tjFlowingWater)) {
|
tjOrder.setTjSerialNumber(String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
tjOrderService.updateById(tjOrder);
|
}
|
|
//团体
|
if ("1".equals(tjOrder.getTjType())) {
|
asyncService.ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater);
|
}
|
|
|
//个人
|
if ("2".equals(tjOrder.getTjType())) {
|
|
// asyncService.newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
|
newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
|
}
|
return AjaxResult.success(tjNumber);
|
}
|
return AjaxResult.error();
|
}
|
|
|
/**
|
* 修改体检记录
|
*/
|
// @PreAuthorize("@ss.hasPermi('hosp:order:edit')")
|
@Log(title = "体检记录", businessType = BusinessType.UPDATE)
|
@PutMapping
|
@ApiOperation(value = "修改体检记录")
|
public AjaxResult edit(@RequestBody TjOrder tjOrder) {
|
return toAjax(tjOrderService.updateTjOrder(tjOrder));
|
}
|
|
/**
|
* 删除体检记录
|
*/
|
// @PreAuthorize("@ss.hasPermi('hosp:order:remove')")
|
@Log(title = "体检记录", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{orderIds}")
|
@ApiOperation(value = "删除体检记录")
|
public AjaxResult remove(@PathVariable Long[] orderIds) {
|
return toAjax(tjOrderService.deleteTjOrderByOrderIds(orderIds));
|
}
|
|
@GetMapping("/getOrderDetailByTjNumber")
|
@ApiOperation(value = "根据体检号获取体检详情")
|
public AjaxResult getOrderDetailByTjNumber(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
|
LambdaQueryWrapper<TjOrder> wq0 = new LambdaQueryWrapper<>();
|
wq0.eq(TjOrder::getTjNumber, tjNumber);
|
TjOrder tjOrder = tjOrderService.getOne(wq0);
|
if (null != tjOrder) {
|
LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
|
List<TjOrderDetail> detailList = tjOrderDetailService.list(wq1);
|
if (null != detailList && detailList.size() > 0) {
|
for (TjOrderDetail detail : detailList) {
|
if (projectService.getById(detail.getProId()).getProParentId() != 0) {
|
detail.setProject(projectService.getById(detail.getProId()));
|
}
|
}
|
}
|
return AjaxResult.success(detailList);
|
}
|
return AjaxResult.success("暂无数据");
|
}
|
|
@PostMapping("/addtTransition")
|
@ApiOperation(value = "添加过渡表数据")
|
@Transactional
|
public AjaxResult addtTransition(@RequestBody Map<String, Object> map) {
|
Object packId = map.get("pacId");
|
if (null == map.get("cusId")) return AjaxResult.error("请选择体检人");
|
String cusId = map.get("cusId").toString();
|
Object proIds1 = map.get("proIds");
|
List<Long> proIds = null;
|
if (null != proIds1 && !proIds1.equals("")) {
|
proIds = JSON.parseArray(proIds1.toString(), Long.class);
|
}
|
if ((null == proIds || proIds.size() == 0) && (null == packId || packId.equals(""))) {
|
transitionService.deletedTbTransitionByCusId(cusId);
|
if (redisCache.hasKey(cusId)) redisCache.deleteObject(cusId);
|
if (redisCache.hasKey(cusId + "cusId")) redisCache.deleteCacheMapValue(cusId + "cusId", cusId);
|
|
}
|
List<TbTransition> tbTransitionList = null;
|
if (!redisCache.hasKey(cusId)) {
|
tbTransitionList = new ArrayList<>();
|
} else {
|
tbTransitionList = redisCache.getCacheList(cusId);
|
}
|
//套餐
|
if (null != packId && !packId.equals("")) {
|
Long pacId = Long.valueOf(packId.toString());
|
List<TbTransition> list = transitionService.getTbTransitionListByCusIdAndPac(cusId, String.valueOf(pacId));
|
if (null == list || list.size() == 0) {
|
transitionService.deletedTbTransitionListByCusIdAndPac(cusId);
|
if (redisCache.hasKey(cusId + "cusId")) redisCache.deleteCacheMapValue(cusId + "cusId", cusId);
|
if (redisCache.hasKey(cusId)) {
|
tbTransitionList = new ArrayList<>();
|
redisCache.deleteObject(cusId);
|
}
|
List<TjPackageProject> ppList = tjPackageProjectService.getTjPackageProjectListByPacId(String.valueOf(pacId));
|
if (null != ppList && ppList.size() > 0) {
|
//异步保存数据库
|
// asyncService.addRedisTransitionPac(cusId, pacId, ppList);
|
asyncService.saveRedisTransitionByPacId(cusId, pacId, null);
|
for (TjPackageProject tjPackageProject : ppList) {
|
TjProject project = projectService.getTjProjectById(String.valueOf(tjPackageProject.getProId()));
|
if (null != project) {
|
BigDecimal divide = tjPackageProject.getPriceNow().divide(project.getProPrice(), 5, RoundingMode.HALF_DOWN);
|
List<TjProject> tjProSonList = projectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
|
if (null != tjProSonList && tjProSonList.size() > 0) {
|
//addRedisTransitionPac(cusId, tbTransitionList, pacId, tjPackageProject, project, divide, tjProSonList);
|
for (TjProject tjProject : tjProSonList) {
|
TbTransition tbTransition = new TbTransition();
|
tbTransition.setCusId(cusId);
|
tbTransition.setPacId(pacId);
|
if (null != tjPackageProject.getPriceNow() && divide.compareTo(BigDecimal.valueOf(0)) > 0) {
|
tbTransition.setNowPrice(tjProject.getProPrice().multiply(divide).setScale(2, RoundingMode.HALF_DOWN));
|
tbTransition.setOrdPrice(tjProject.getProPrice().multiply(divide).setScale(2, RoundingMode.HALF_DOWN));
|
} else {
|
tbTransition.setNowPrice(BigDecimal.valueOf(0.00));
|
tbTransition.setOrdPrice(BigDecimal.valueOf(0.00));
|
}
|
tbTransition.setParentProId(project.getProId());
|
tbTransition.setParentProName(project.getProName());
|
tbTransition.setProId(tjProject.getProId());
|
tbTransition.setProName(tjProject.getProName());
|
tbTransition.setPacName(tjPackageService.getById(tbTransition.getPacId()).getPacName());
|
tbTransition.setProType(tjProject.getProType());
|
tbTransition.setProCheckMethod(tjProject.getProCheckMethod());
|
tbTransitionList.add(tbTransition);
|
}
|
|
}
|
}
|
}
|
}
|
}
|
}
|
|
//单项
|
if (null != proIds && proIds.size() > 0) {
|
//异步保存数据库表
|
asyncService.saveRedisTransitionByPacId(cusId, null, proIds);
|
for (Long proId : proIds) {
|
List<TbTransition> transitions = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId));
|
if (null != transitions && transitions.size() > 0) {
|
continue;
|
}
|
TjProject tjProject = projectService.getTjProjectById(String.valueOf(proId));
|
if (null != tjProject) {
|
// List<TjProject> tjProSonList = projectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
|
// if (null != tjProSonList && tjProSonList.size() > 0) {
|
// for (TjProject tjProject : tjProSonList) {
|
// List<TbTransition> transitionss = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(tjProject.getProId()));
|
// if (null != transitionss && transitionss.size() > 0) {
|
// continue;
|
// }
|
TbTransition tbTransition = new TbTransition();
|
tbTransition.setCusId(cusId);
|
tbTransition.setPacId(null);
|
if (null != tjProject.getProPrice()) {
|
tbTransition.setOrdPrice(tjProject.getProPrice());
|
tbTransition.setNowPrice(tjProject.getProPrice());
|
} else {
|
tbTransition.setOrdPrice(BigDecimal.valueOf(0.00));
|
tbTransition.setNowPrice(BigDecimal.valueOf(0.00));
|
}
|
tbTransition.setParentProId(tjProject.getProParentId());
|
if (tjProject.getProParentId() != null) {
|
TjProject byId = projectService.getById(tjProject.getProParentId());
|
if(null !=byId){
|
tbTransition.setParentProName(byId.getProName());
|
}
|
}
|
tbTransition.setParentProName("");
|
|
tbTransition.setProId(tjProject.getProId());
|
tbTransition.setProName(tjProject.getProName());
|
tbTransition.setProType(tjProject.getProType());
|
tbTransition.setProCheckMethod(tjProject.getProCheckMethod());
|
tbTransitionList.add(tbTransition);
|
// }
|
// }
|
}
|
}
|
}
|
if (null != tbTransitionList && tbTransitionList.size() > 0) {
|
if (redisCache.hasKey(cusId)) {
|
redisCache.deleteObject(cusId);
|
redisCache.setCacheList(cusId, tbTransitionList);
|
redisCache.setCacheMapValue(cusId + "cusId", cusId, getMaps(cusId));
|
} else {
|
redisCache.setCacheList(cusId, tbTransitionList);
|
redisCache.setCacheMapValue(cusId + "cusId", cusId, getMaps(cusId));
|
}
|
}
|
return AjaxResult.success();
|
}
|
|
|
@GetMapping("/getTransitionList")
|
@ApiOperation(value = "查询过渡表数据")
|
public AjaxResult getTransitionList(@RequestParam @ApiParam(value = "客户id") String cusId) {
|
if (redisCache.hasKey(cusId + "cusId")) {
|
List<Map<String, Object>> list = redisCache.getCacheMapValue(cusId + "cusId", cusId);
|
return AjaxResult.success(list);
|
}
|
List<Map<String, Object>> list = getMaps(cusId);
|
return AjaxResult.success(list);
|
}
|
|
|
@GetMapping("/getQianLiList")
|
@ApiOperation(value = "查询体检记录列表")
|
public AjaxResult getQianLiList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
|
@ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
|
@ApiParam(value = "体检号") @RequestParam(required = false) String tjNum,
|
@ApiParam(value = "姓名") @RequestParam(required = false) String name,
|
@ApiParam(value = "登记开始时间") @RequestParam(required = false) Date djbeginTime,
|
@ApiParam(value = "登记结束时间") @RequestParam(required = false) Date djendTime,
|
@ApiParam(value = "报告开始时间") @RequestParam(required = false) Date bgbeginTime,
|
@ApiParam(value = "报告结束时间") @RequestParam(required = false) Date bgendTime) {
|
Map<String, Object> map = new HashMap<>();
|
if (null != name) {
|
LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
|
wqq.like(TjCustomer::getCusName, name);
|
List<TjCustomer> customerList = tjCustomerService.list(wqq);
|
if (null != customerList && customerList.size() > 0) {
|
List<TjOrder> list = new ArrayList<>();
|
for (TjCustomer customer : customerList) {
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
if (null != djbeginTime && null != djendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(djbeginTime), DateUtil.endOfDay(djendTime));
|
}
|
wq.eq(TjOrder::getUserId, customer.getCusId());
|
wq.isNull(TjOrder::getFinishTime);
|
list.addAll(tjOrderService.list(wq));
|
}
|
List<TjOrder> collect = null;
|
if (list.size() > 0) {
|
for (TjOrder order : list) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
order.setCareer(tjCustomer.getCareer());
|
order.setIdType(tjCustomer.getIdType());
|
order.setAgeUnit(tjCustomer.getAgeUnit());
|
order.setTjCount(String.valueOf(tjCustomer.getCusNumber()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
}
|
collect = list.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
}
|
if (null != collect) {
|
map.put("total", collect.size());
|
} else {
|
map.put("total", 0);
|
}
|
map.put("list", collect);
|
return AjaxResult.success(map);
|
}
|
|
}
|
Page<TjOrder> page1 = new Page<>(pageNum, pageSize);
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
if (null != djbeginTime && null != djendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(djbeginTime), DateUtil.endOfDay(djendTime));
|
}
|
if (null != bgbeginTime && null != bgendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(bgbeginTime), DateUtil.endOfDay(bgendTime));
|
}
|
if (null != tjNum) {
|
wq.eq(TjOrder::getTjNumber, tjNum);
|
}
|
wq.orderByDesc(TjOrder::getCreateTime);
|
wq.isNull(TjOrder::getFinishTime);
|
Page<TjOrder> page2 = tjOrderService.page(page1, wq);
|
List<TjOrder> list = page2.getRecords();
|
if (list != null) {
|
for (TjOrder order : list) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
|
order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
|
order.setCareer(tjCustomer.getCareer());
|
order.setIdType(tjCustomer.getIdType());
|
order.setAgeUnit(tjCustomer.getAgeUnit());
|
order.setTjCount(String.valueOf(tjCustomer.getCusNumber()));
|
}
|
String firmId = order.getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
|
order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
}
|
}
|
map.put("list", list);
|
map.put("total", page2.getTotal());
|
return AjaxResult.success(map);
|
}
|
|
|
/**
|
* 签离弃检确认返回数据
|
*/
|
@GetMapping("/abandon")
|
@ApiOperation(value = "签离弃检确认返回数据")
|
public AjaxResult abandon(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
|
LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjOrderRemark::getTjNumber, tjNumber);
|
List<TjOrderRemark> remarkList = remarkService.list(wq);
|
if (null != remarkList && remarkList.size() > 0) {
|
for (TjOrderRemark remark : remarkList) {
|
TjProject project = projectService.getTjProjectById(String.valueOf(remark.getProId()));
|
if (null != project) {
|
remark.setProCheckType(project.getProCheckType());
|
remark.setProName(project.getProName());
|
}
|
}
|
}
|
return AjaxResult.success(remarkList);
|
}
|
|
|
/**
|
* 签离
|
*
|
* @ApiParam(value = "体检号") String tjNumber
|
*/
|
@PostMapping("/tjGoOut")
|
@ApiOperation(value = "体检签离")
|
public AjaxResult tjGoOut(@RequestBody Map<String, Object> map) {
|
Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
|
SysUser sysUser = userService.getById(userId);
|
List<QjDomainVo> domainVos1 = (List<QjDomainVo>) map.get("domainVos");
|
String jsonString = com.alibaba.fastjson.JSON.toJSONString(domainVos1);
|
List<QjDomainVo> domainVos = com.alibaba.fastjson.JSON.parseArray(jsonString, QjDomainVo.class);
|
String tjNumber = map.get("tjNumber").toString();
|
if (null != domainVos && domainVos.size() > 0) {
|
Set<String> list = new HashSet<>();
|
for (QjDomainVo domainVo : domainVos) {
|
TjOrderRemark remark = remarkService.getById(domainVo.getRemarkId());
|
if (null != remark) {
|
remark.setType(domainVo.getType());
|
if (null != remark.getYqDeadline())
|
remark.setYqDeadline(DateUtil.offsetDay(remark.getCreateTime(), domainVo.getDay()));
|
if (null != remark.getRemark()) remark.setRemark(domainVo.getRemark());
|
remarkService.updateById(remark);
|
if (domainVo.getType() == 3) {
|
list.add(String.valueOf(domainVo.getTjNumber()));
|
} else {
|
TjOrder tjOrder = tjOrderService.getOrderByTjNum(remark.getTjNumber());
|
if (null != tjOrder) {
|
tjOrder.setFinishTime(new Date());
|
tjOrder.setStatus(TjConstants.TJ_CONFIRM);
|
tjOrderService.updateById(tjOrder);
|
}
|
}
|
}
|
}
|
asyncService.tjGoutAsync(domainVos, sysUser, list);
|
return AjaxResult.success("签离成功!");
|
} else {
|
return getAjaxResult(tjNumber);
|
}
|
}
|
|
|
/**
|
* 签离
|
*/
|
@GetMapping("/goOut")
|
@ApiOperation(value = "签离")
|
public AjaxResult goOut(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
|
return getAjaxResult(tjNumber);
|
}
|
|
|
/**
|
* 核销订单接口
|
*/
|
@GetMapping("/orderShip")
|
@ApiOperation(value = "PC端手动核销订单接口")
|
public AjaxResult orderShip(@RequestParam @ApiParam(value = "体检号") String tjNum) {
|
if (tjNum == null) {
|
return AjaxResult.error();
|
}
|
TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNum);
|
MallOrder order = mallOrderService.getById(tjOrder.getMallOrderId());
|
if (order == null) {
|
return AjaxResult.error();
|
}
|
OrderHandleOption handleOption = OrderUtil.build(order);
|
if (!handleOption.isCanship()) {
|
return AjaxResult.error("订单不能核销");
|
}
|
order.setOrderStatus(OrderUtil.STATUS_SHIP.longValue());
|
order.setShipTime(new Date());
|
order.setConfirmTime(new Date());
|
|
MallCheckLog checkLog = new MallCheckLog();
|
String s1 = SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmssSSS").format(new Date());
|
checkLog.setCheckBy(String.valueOf(SecurityUtils.getUserId()));
|
checkLog.setUserId(order.getUserId());
|
checkLog.setConsignee(order.getConsignee());
|
checkLog.setIdCard(order.getIdCard());
|
checkLog.setOrderId(String.valueOf(order.getId()));
|
checkLog.setOrderSn(order.getOrderSn());
|
checkLog.setCheckTime(new Date());
|
checkLog.setShipSn("HX" + s1);
|
mallCheckLogService.save(checkLog);
|
mallOrderService.updateById(order);
|
return AjaxResult.success();
|
}
|
|
|
private List<Map<String, Object>> getMaps(String cusId) {
|
|
List<TbTransition> transitionList = null;
|
if (redisCache.hasKey(cusId)) {
|
transitionList = redisCache.getCacheList(cusId);
|
} else {
|
transitionList = transitionService.getTbTransitionListByCusId(cusId);
|
}
|
if (null == transitionList) return null;
|
Map<Long, List<TbTransition>> collect = transitionList.stream().collect(Collectors.groupingBy(TbTransition::getParentProId));
|
List<Map<String, Object>> list = new ArrayList<>();
|
for (Map.Entry<Long, List<TbTransition>> entry : collect.entrySet()) {
|
Map<String, Object> map = new HashMap<>();
|
Long pacId = entry.getValue().get(0).getPacId();
|
if (null != pacId) {
|
TjPackage aPackage = tjPackageService.getById(entry.getValue().get(0).getPacId());
|
map.put("pacName", aPackage.getPacName());
|
} else {
|
map.put("pacName", "单项");
|
}
|
map.put("parentName", projectService.getById(entry.getKey()).getProName());
|
map.put("list", entry.getValue());
|
List<TbTransition> tbTransitionList = entry.getValue();
|
if (null != tbTransitionList && tbTransitionList.size() > 0) {
|
BigDecimal money1 = new BigDecimal("0.00");
|
BigDecimal money2 = new BigDecimal("0.00");
|
for (TbTransition tbTransition : tbTransitionList) {
|
money1 = money1.add(tbTransition.getOrdPrice());
|
money2 = money2.add(tbTransition.getNowPrice());
|
// if (tbTransition.getOrdPrice().compareTo(BigDecimal.valueOf(0)) == 0 || tbTransition.getNowPrice().compareTo(BigDecimal.valueOf(0)) == 0) {
|
// tbTransition.setDiscount("0");
|
// } else {
|
// tbTransition.setDiscount((tbTransition.getNowPrice()).divide(tbTransition.getOrdPrice(), BigDecimal.ROUND_CEILING).toString());
|
// }
|
// if (null != tbTransition.getPacId()) {
|
// tbTransition.setPacPrice(tjPackageService.getById(tbTransition.getPacId()).getPrice());
|
// }
|
// if (null != tbTransition.getParentProId()) {
|
// tbTransition.setPacPrice(projectService.getTjProjectById(String.valueOf(tbTransition.getParentProId())).getProPrice());
|
// }
|
}
|
// map.put("ordPrice", money1.setScale(Integer.parseInt(configService.selectConfigByKey("sys.price.save")), Integer.parseInt(configService.selectConfigByKey("sys.price"))));
|
// map.put("nowPrice", money2.setScale(Integer.parseInt(configService.selectConfigByKey("sys.price.save")), Integer.parseInt(configService.selectConfigByKey("sys.price"))));
|
map.put("ordPrice", money1);
|
map.put("nowPrice", money2);
|
}
|
list.add(map);
|
}
|
return list;
|
}
|
|
private AjaxResult getAjaxResult(String tjNumber) {
|
LambdaQueryWrapper<TjOrder> wq0 = new LambdaQueryWrapper<>();
|
wq0.eq(TjOrder::getTjNumber, tjNumber);
|
TjOrder tjOrder = tjOrderService.getOne(wq0);
|
if (null != tjOrder) {
|
LambdaQueryWrapper<TjOrderDetail> wq11 = new LambdaQueryWrapper<>();
|
wq11.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
|
wq11.eq(TjOrderDetail::getTjStatus, 0);
|
wq11.isNotNull(TjOrderDetail::getFlowingWaterId);
|
List<TjOrderDetail> list = tjOrderDetailService.list(wq11);
|
|
if (list != null) {
|
Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
|
SysUser sysUser = userService.getById(userId);
|
asyncService.abandonCheck(tjNumber, tjOrder, list, sysUser);
|
tjOrder.setFinishTime(new DateTime());
|
tjOrder.setStatus(TjConstants.TJ_CONFIRM);
|
tjOrderService.updateById(tjOrder);
|
return AjaxResult.success("签离成功!");
|
}
|
return AjaxResult.success("签离成功!");
|
}
|
return AjaxResult.error("该体检号无记录!");
|
}
|
|
|
@GetMapping("/tuanTiListById")
|
@ApiOperation(value = "查询团体体检状态")
|
public AjaxResult tuanTiListById(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
|
@ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
|
@ApiParam(value = "单位") @RequestParam String firmId,
|
@ApiParam(value = "部门") @RequestParam(required = false) String dwDeptId,
|
@ApiParam(value = "分组") @RequestParam(required = false) String groupId,
|
@ApiParam(value = "登记开始时间") @RequestParam Date beginTime,
|
@ApiParam(value = "登记结束时间") @RequestParam Date endTime) {
|
Map<String, Object> map = new HashMap<>();
|
int a = 0;
|
int b = 0;
|
int c = 0;
|
|
Page<TjReservation> page1 = new Page<>(pageNum, pageSize);
|
if (null != firmId) {
|
LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjReservation::getTjType, "1");
|
wq.eq(TjReservation::getCompanyId, firmId);
|
if (null != beginTime && null != endTime) {
|
wq.between(TjReservation::getCreateTime, DateUtil.beginOfDay(beginTime), DateUtil.endOfDay(endTime));
|
}
|
if (null != groupId) {
|
wq.eq(TjReservation::getGroupingId, groupId);
|
}
|
Page<TjReservation> page2 = tjReservationService.page(page1, wq);
|
List<TjReservation> list = page2.getRecords();
|
for (TjReservation tjReservation : list) {
|
|
final TjDwGrouping byId = dwGroupingService.getById(tjReservation.getGroupingId());
|
if (byId != null) {
|
tjReservation.setGroupingName(byId.getGroupingName());
|
}
|
if (tjReservation.getIsExpire() == 1) {
|
LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjCustomer::getCusIdcard, tjReservation.getIdCard());
|
final TjCustomer one1 = tjCustomerService.getOne(wq1);
|
|
LambdaQueryWrapper<TjOrder> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjOrder::getUserId, one1.getCusId());
|
wq2.eq(TjOrder::getTeamNo, tjReservation.getTeamNo());
|
final TjOrder one = tjOrderService.getOne(wq2);
|
if (one != null) {
|
tjReservation.setTjNumber(one.getTjNumber());
|
tjReservation.setTjStatus(one.getStatus());
|
if (one.getStatus() == 201) {
|
b += 1;
|
} else if (one.getStatus() == 401 || one.getStatus() == 402) {
|
c += 1;
|
}
|
}
|
} else if (tjReservation.getIsExpire() == 2) {
|
tjReservation.setTjStatus(0);
|
tjReservation.setTjNumber("无");
|
a += 1;
|
}
|
}
|
map.put("list", list);
|
map.put("all", list.size());
|
map.put("weijian", a);
|
map.put("jianzhong", b);
|
map.put("yijian", c);
|
|
return AjaxResult.success(map);
|
}
|
LambdaQueryWrapper<TjReservation> wq1 = new LambdaQueryWrapper<>();
|
Page<TjReservation> page22 = tjReservationService.page(page1, wq1);
|
List<TjReservation> list1 = page22.getRecords();
|
return AjaxResult.success(list1);
|
|
}
|
|
|
@GetMapping("/tuanTiBingById")
|
@ApiOperation(value = "查询团体体检病种详细信息")
|
public AjaxResult tuanTiBingById(@ApiParam(value = "单位") @RequestParam String firmId,
|
@ApiParam(value = "部门") @RequestParam String firmDeptId,
|
@ApiParam(value = "病种") @RequestParam(required = false) String bingZhong) {
|
List<TjOrderDetailRules> res1 = new ArrayList<>();
|
List<BingZhongVO> res = new ArrayList<>();
|
|
LambdaQueryWrapper<TjDwGrouping> wqqq = new LambdaQueryWrapper<>();
|
wqqq.eq(TjDwGrouping::getDwDeptId, firmDeptId);
|
final List<TjDwGrouping> list2 = dwGroupingService.list(wqqq);
|
|
|
for (TjDwGrouping tjDwGrouping : list2) {
|
LambdaQueryWrapper<TjOrder> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjOrder::getFirmId, firmId);
|
wq2.eq(TjOrder::getGroupId, tjDwGrouping.getId());
|
final List<TjOrder> list = tjOrderService.list(wq2);
|
for (TjOrder tjOrder : list) {
|
LambdaQueryWrapper<TjOrderDetailRules> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrderDetailRules::getTjNumber, tjOrder.getTjNumber());
|
if (bingZhong != null) {
|
wq1.like(TjOrderDetailRules::getBingzhong, bingZhong);
|
}
|
final List<TjOrderDetailRules> list1 = orderDetailRulesService.list(wq1);
|
//放进集合
|
res1.addAll(list1);
|
}
|
}
|
//对集合进行去重 拿到病种id
|
// Stream<TjOrderDetailRules> personStream = res1.stream();
|
// Stream<String> idStream = personStream.map(TjOrderDetailRules::getAid).distinct();
|
// List<String> distinctIds = idStream.collect(Collectors.toList());
|
|
Map<String, Long> columnCountMap = res1.stream().collect(Collectors.groupingBy(TjOrderDetailRules::getAid, Collectors.counting()));
|
for (Map.Entry<String, Long> entry : columnCountMap.entrySet()) {
|
|
BingZhongVO bingZhongVO = new BingZhongVO();
|
bingZhongVO.setRules(rulesService.getById(entry.getKey()));
|
bingZhongVO.setNum(entry.getValue());
|
|
List<TjOrderDetailRules> aa = new ArrayList<>();
|
for (TjOrderDetailRules orderDetailRules : res1) {
|
if (orderDetailRules.getAid().equals(entry.getKey())) {
|
orderDetailRules.setDwName(dwDeptService.getById(firmDeptId).getDwName());
|
orderDetailRules.setDwDeptName(dwDeptService.getById(firmDeptId).getDwDeptName());
|
|
LambdaQueryWrapper<TjOrder> wq22 = new LambdaQueryWrapper<>();
|
wq22.eq(TjOrder::getFirmId, firmId);
|
wq22.eq(TjOrder::getTjNumber, orderDetailRules.getTjNumber());
|
final TjOrder one = tjOrderService.getOne(wq22);
|
orderDetailRules.setGroupName(dwGroupingService.getById(one.getGroupId()).getGroupingName());
|
aa.add(orderDetailRules);
|
}
|
}
|
bingZhongVO.setOrderList(aa);
|
|
res.add(bingZhongVO);
|
}
|
return AjaxResult.success(res);
|
}
|
|
|
@PostMapping("/tuanTiBingChart")
|
@ApiOperation(value = "查询团体体检病种统计图")
|
public AjaxResult tuanTiBingChart(@RequestBody BingZhongVO bingZhongVO) {
|
List<TjOrderDetailRules> res1 = new ArrayList<>();
|
|
LambdaQueryWrapper<TjDwGrouping> wqqq = new LambdaQueryWrapper<>();
|
wqqq.eq(TjDwGrouping::getDwDeptId, bingZhongVO.getFirmDeptId());
|
final List<TjDwGrouping> list2 = dwGroupingService.list(wqqq);
|
|
for (TjDwGrouping tjDwGrouping : list2) {
|
LambdaQueryWrapper<TjOrder> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjOrder::getFirmId, bingZhongVO.getFirmId());
|
wq2.eq(TjOrder::getGroupId, tjDwGrouping.getId());
|
final List<TjOrder> list = tjOrderService.list(wq2);
|
for (TjOrder tjOrder : list) {
|
LambdaQueryWrapper<TjOrderDetailRules> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrderDetailRules::getTjNumber, tjOrder.getTjNumber());
|
wq1.in(TjOrderDetailRules::getAid, bingZhongVO.getAidList());
|
final List<TjOrderDetailRules> list1 = orderDetailRulesService.list(wq1);
|
//放进集合
|
res1.addAll(list1);
|
}
|
}
|
Map<String, Long> columnCountMap = res1.stream().collect(Collectors.groupingBy(TjOrderDetailRules::getAid, Collectors.counting()));
|
List<Map<String, String>> aaa = new ArrayList<>();
|
if (columnCountMap != null) {
|
for (Map.Entry<String, Long> entry : columnCountMap.entrySet()) {
|
Map<String, String> resMap = new HashMap<>();
|
final TjRules byId = rulesService.getById(entry.getKey());
|
if (byId != null) {
|
resMap.put("name", byId.getBingzhong());
|
resMap.put("value", String.valueOf(entry.getValue()));
|
aaa.add(resMap);
|
}
|
}
|
}
|
return AjaxResult.success(aaa);
|
}
|
|
|
@PostMapping("/deletedTbTransitionByCusId")
|
@ApiOperation(value = "根据身份证号删除临时表数据")
|
public AjaxResult deletedTbTransitionByCusId(@RequestParam @ApiParam(value = "身份证号") String cusId) {
|
LambdaQueryWrapper<TbTransition> wq = new LambdaQueryWrapper<>();
|
wq.between(TbTransition::getCreateTime, transitionService.getTbTransitionCreateTimeByCusId(cusId), new Date());
|
wq.eq(TbTransition::getCusId, cusId);
|
return AjaxResult.success(transitionService.remove(wq));
|
}
|
|
public void newSaveextracted(TjOrder tjOrder, TjCustomer tjCustomer, BigDecimal discount, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
|
long l = System.currentTimeMillis();
|
tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId()));
|
tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
|
//修改每项的原价现价
|
transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(), discount);
|
//添加remark表数据
|
remarkService.saveTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId()));
|
//判断是否交钱
|
if ("1".equals(tjOrder.getTjType())) {
|
if (null != tjReservation && tjReservation.getPayType() == 1) {
|
tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
|
sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
}
|
}
|
if (tjFlowingWater.getPayStasus() == 1) {
|
tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
|
sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
}
|
System.out.println("这段代码时间" + (System.currentTimeMillis() - l));
|
}
|
|
|
@PostMapping("/heXiaoByIds/{orderIds}")
|
@ApiOperation(value = "核收报告——————总检审核通过后可以核销,核收后才能打印")
|
@Transactional
|
public AjaxResult heXiaoByIds(@PathVariable String[] orderIds) {
|
for (String orderId : orderIds) {
|
final TjOrder byId = tjOrderService.getById(orderId);
|
byId.setHeshouStatus(1);
|
byId.setHeshouDoctor(UserHoder.getLoginUser().getUserId());
|
byId.setHeshouTime(new DateTime());
|
final boolean b = tjOrderService.updateById(byId);
|
if (!b){
|
return AjaxResult.error("核收失败");
|
}
|
}
|
return AjaxResult.success("核收成功");
|
}
|
|
@GetMapping("/getHistryTjOrderByCusIdCard")
|
@ApiOperation(value = "根据身份证号查看历史体检记录")
|
@Transactional
|
public AjaxResult getHistryTjOrderByCusIdCard(@RequestParam String cusIdCard) {
|
TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(cusIdCard);
|
List<HistoryTjOrder> list=new ArrayList<>();
|
if(null !=tjCustomer){
|
List<TjOrder> orderList = tjOrderService.getTjOrderListByCusId(tjCustomer.getCusId());
|
for (TjOrder order : orderList) {
|
HistoryTjOrder historyTjOrder=new HistoryTjOrder();
|
historyTjOrder.setUserName(tjCustomer.getCusName());
|
historyTjOrder.setTjNum(order.getTjNumber());
|
historyTjOrder.setTjTime(order.getCreateTime());
|
historyTjOrder.setTjProName(tjOrderService.getHistoryTjOrderProByTjNum(order.getTjNumber()));
|
list.add(historyTjOrder);
|
}
|
}
|
return AjaxResult.success(list);
|
}
|
|
|
@GetMapping("/getHistryTjOrderProByCusIdCard")
|
@ApiOperation(value = "根据身份证号查看历史体检项目记录")
|
@Transactional
|
public AjaxResult getHistryTjOrderProByCusIdCard(@RequestParam String cusIdCard) {
|
TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(cusIdCard);
|
if(null !=tjCustomer){
|
TjOrder order= tjOrderService.getLastTjOrderListByCusId(tjCustomer.getCusId());
|
|
return AjaxResult.success(order);
|
}
|
return AjaxResult.success("暂无历史记录");
|
}
|
|
}
|