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.enums.DataSourceType; import com.ltkj.common.utils.SecurityUtils; import com.ltkj.framework.config.MatchUtils; import com.ltkj.framework.config.UserHoder; import com.ltkj.framework.datasource.DynamicDataSourceContextHolder; import com.ltkj.hosp.domain.*; import com.ltkj.hosp.mapper.TestMapper; import com.ltkj.hosp.service.*; import com.ltkj.hosp.sqlDomain.LtkjMiddleDetail; import com.ltkj.hosp.sqlDomain.LtkjMiddleHead; 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; @Resource private TestMapper testMapper; @Resource private LtkjMiddleDetailService middleDetailService; @Resource private LtkjMiddleHeadService headService; /** * 查询体检记录列表 */ // @PreAuthorize("@ss.hasPermi('hosp:order:list')") @GetMapping("/list") @ApiOperation(value = "查询体检记录列表(默认)") public TableDataInfo list(TjOrder tjOrder) { startPage(); startOrderBy(); List 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 map = new HashMap<>(); if (null != name) { LambdaQueryWrapper wqq = new LambdaQueryWrapper<>(); wqq.like(TjCustomer::getCusName, name); List customerList = tjCustomerService.list(wqq); List list2 = new ArrayList<>(); if (null != customerList && customerList.size() > 0) { List list = new ArrayList<>(); for (TjCustomer customer : customerList) { LambdaQueryWrapper 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 collect = null; if (list.size() > 0) { for (TjOrder order : list) { //筛选有调查问卷的 LambdaQueryWrapper wqq1 = new LambdaQueryWrapper<>(); wqq1.eq(TjSurveyRecord::getTjnumber, order.getTjNumber()); List 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 page1 = new Page<>(pageNum, pageSize); LambdaQueryWrapper 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 page2 = tjOrderService.page(page1, wq); List list = page2.getRecords(); List list1 = new ArrayList<>(); if (list != null) { for (TjOrder order : list) { //筛选有调查问卷的 LambdaQueryWrapper wqq = new LambdaQueryWrapper<>(); wqq.eq(TjSurveyRecord::getTjnumber, order.getTjNumber()); List 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 map = new HashMap<>(); if (null != name) { LambdaQueryWrapper wqq = new LambdaQueryWrapper<>(); wqq.like(TjCustomer::getCusName, name); List customerList = tjCustomerService.list(wqq); if (null != customerList && customerList.size() > 0) { List list = new ArrayList<>(); for (TjCustomer customer : customerList) { LambdaQueryWrapper 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 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.setTjCustomerName(tjCustomer.getCusName()); // order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone())); order.setTjCustomerPhone(tjCustomer.getCusPhone()); // order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard())); order.setTjCusIdCard(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 page1 = new Page<>(pageNum, pageSize); LambdaQueryWrapper 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 page2 = tjOrderService.page(page1, wq); List 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.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName())); order.setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone())); // order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard())); order.setTjCusIdCard(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 map = new HashMap<>(); if (null != name) { LambdaQueryWrapper wqq = new LambdaQueryWrapper<>(); wqq.like(TjCustomer::getCusName, name); List customerList = tjCustomerService.list(wqq); if (null != customerList && customerList.size() > 0) { List list = new ArrayList<>(); for (TjCustomer customer : customerList) { LambdaQueryWrapper 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 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 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 page1 = new Page<>(pageNum, pageSize); LambdaQueryWrapper 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 page2 = tjOrderService.page(page1, wq); List 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 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 map = new HashMap<>(); List collect = null; if (null != name) { LambdaQueryWrapper wqq = new LambdaQueryWrapper<>(); wqq.like(TjCustomer::getCusName, name); List customerList = tjCustomerService.list(wqq); if (null != customerList && customerList.size() > 0) { List list = new ArrayList<>(); for (TjCustomer customer : customerList) { LambdaQueryWrapper 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 wq = new LambdaQueryWrapper<>(); wq.isNotNull(TjOrder::getReportTime); if (null != tjNum) { wq.eq(TjOrder::getTjNumber, tjNum); List 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 list = Optional.ofNullable(tjOrderService.list(wq)).get(); if (list.size() > 0) { asyncService.getPrintOrderList(list); if (redisCache.hasKey("getPrintOrderList")) { if (null != type && type == 0) { List list1 = redisCache.getCacheMapValue("getPrintOrderList", "0"); collect = list1.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); } if (null != type && type == 1) { List list1 = redisCache.getCacheMapValue("getPrintOrderList", "1"); collect = list1.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); } } else { List 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 list, List 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 list = tjOrderService.selectTjOrderList(tjOrder); List list = tjOrderService.selectExportOrderList(tjOrder); ExcelUtil util = new ExcelUtil(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 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 wq = new LambdaQueryWrapper<>(); wq.eq(TjCustomer::getCusId, tjOrder.getUserId()); TjCustomer tjCustomer = tjCustomerService.getOne(wq); if (tjCustomer == null) return AjaxResult.error("该客户未登记或不存在"); LambdaQueryWrapper wqq = new LambdaQueryWrapper<>(); wqq.eq(TjOrder::getUserId, tjOrder.getUserId()); wqq.eq(TjOrder::getCheckStatus, 0); wqq.isNull(TjOrder::getFinishTime); if(!tjCustomer.getCardId().equals("0")){ wqq.eq(TjOrder::getCardId,tjCustomer.getCardId()); } TjOrder order = tjOrderService.getOne(wqq); if (null != order) { transitionService.deletedTbTransitionListByCusIdAndTjNum(tjCustomer.getCusIdcard(),tjCustomer.getCardId()); return AjaxResult.error("不可重复登记"); } LambdaQueryWrapper 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().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.getTjCategory()) tjOrder.setTjCategory(tjReservation.getTjCategory()); 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); tjOrder.setCardId(tjCustomer.getCardId()); 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); BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount())).divide(BigDecimal.valueOf(10)); TjFlowingWater tjFlowingWater = new TjFlowingWater(); tjFlowingWater.setPayStasus(0L); if ("1".equals(tjOrder.getTjType())) { if (null != tjReservation && tjReservation.getPayType() == 1) { tjFlowingWater.setPayStasus(3L); } } //调用SQL server拿取收费情况 //根据配置调取存储过程 将临时表数据存入预约表2023.12.12 final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); final String isPay = configService.selectConfigByKey("isPay"); if ("Y".equals(getInfoFromSqlData)){ LtkjMiddleHead middleHead = headService.getMiddleHeadByPartId(tjCustomer.getCardId()); if(null !=middleHead){ tjFlowingWater.setPayStasus(1L); } } 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(), "").toUpperCase() + s1); if(isPay.equals("true")){ 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); } //调用SQL server拿取收费情况 //根据配置调取存储过程 将临时表数据存入预约表2023.12.12 // final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); // if ("Y".equals(getInfoFromSqlData)){ // List one = testMapper.saveMiddleHeadByPatId(tjCustomer.getCusIdcard()); // if (one!=null){ // for (LtkjMiddleHead ltkjMiddleHead : one) { // DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); // headService.save(ltkjMiddleHead); // DynamicDataSourceContextHolder.clearDataSourceType(); // List detailList = testMapper.getMiddleDetailByHeadId(ltkjMiddleHead.getFeadId()); // if (detailList!=null){ // for (LtkjMiddleDetail ltkjMiddleDetail : detailList) { // DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); // middleDetailService.save(ltkjMiddleDetail); // DynamicDataSourceContextHolder.clearDataSourceType(); // } // } // } // // } // } tjCustomer.setCardId("0"); tjCustomerService.updateById(tjCustomer); 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 wq0 = new LambdaQueryWrapper<>(); wq0.eq(TjOrder::getTjNumber, tjNumber); TjOrder tjOrder = tjOrderService.getOne(wq0); if (null != tjOrder) { LambdaQueryWrapper wq1 = new LambdaQueryWrapper<>(); wq1.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId()); List 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 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 proIds = null; if (null != proIds1 && !proIds1.equals("")) { proIds = JSON.parseArray(proIds1.toString(), Long.class); } TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(cusId); String cardId ="0"; if(null !=tjCustomer){ cardId = tjCustomer.getCardId(); } if ((null == proIds || proIds.size() == 0) && (null == packId || packId.equals(""))) { transitionService.deletedTbTransitionByCusId(cusId); if (redisCache.hasKey(cusId)) redisCache.deleteObject(cusId); if (redisCache.hasKey(cardId+cusId + "cusId")) redisCache.deleteCacheMapValue(cardId+cusId + "cusId", cardId+cusId); } List tbTransitionList = null; if (!redisCache.hasKey(cardId+cusId)) { tbTransitionList = new ArrayList<>(); } else { tbTransitionList = redisCache.getCacheList(cardId+cusId); } //套餐 if (null != packId && !packId.equals("")) { Long pacId = Long.valueOf(packId.toString()); List list = transitionService.getTbTransitionListByCusIdAndPac(cusId, String.valueOf(pacId)); if (null == list || list.size() == 0) { transitionService.deletedTbTransitionListByCusIdAndPac(cusId,cardId); if (redisCache.hasKey(cardId+cusId + "cusId")) redisCache.deleteCacheMapValue(cardId+cusId + "cusId", cardId+cusId); if (redisCache.hasKey(cardId+cusId)) { tbTransitionList = new ArrayList<>(); redisCache.deleteObject(cardId+cusId); } List 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 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 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 tjProSonList = projectService.getTjProjectListBySoneId(String.valueOf(project.getProId())); // if (null != tjProSonList && tjProSonList.size() > 0) { // for (TjProject tjProject : tjProSonList) { // List 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(cardId+cusId)) { redisCache.deleteObject(cardId+cusId); redisCache.setCacheList(cardId+cusId, tbTransitionList); redisCache.setCacheMapValue(cardId+cusId + "cusId", cardId+cusId, getMaps(cusId,cardId)); } else { redisCache.setCacheList(cardId+cusId, tbTransitionList); redisCache.setCacheMapValue(cardId+cusId + "cusId", cardId+cusId, getMaps(cusId,cardId)); } } return AjaxResult.success(); } @GetMapping("/getTransitionList") @ApiOperation(value = "查询过渡表数据") public AjaxResult getTransitionList(@RequestParam @ApiParam(value = "客户id") String cusId) { if (redisCache.hasKey(cusId + "cusId")) { List> list = redisCache.getCacheMapValue(cusId + "cusId", cusId); return AjaxResult.success(list); } TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(cusId); String cardId ="0"; if(null !=tjCustomer){ cardId = tjCustomer.getCardId(); } List> list = getMaps(cusId,cardId); 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 map = new HashMap<>(); if (null != name) { LambdaQueryWrapper wqq = new LambdaQueryWrapper<>(); wqq.like(TjCustomer::getCusName, name); List customerList = tjCustomerService.list(wqq); if (null != customerList && customerList.size() > 0) { List list = new ArrayList<>(); for (TjCustomer customer : customerList) { LambdaQueryWrapper 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 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 page1 = new Page<>(pageNum, pageSize); LambdaQueryWrapper 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 page2 = tjOrderService.page(page1, wq); List 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 wq = new LambdaQueryWrapper<>(); wq.eq(TjOrderRemark::getTjNumber, tjNumber); List 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) { if ("N".equals(project.getNeedReport())){ continue; } 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 map) { Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId()); SysUser sysUser = userService.getById(userId); List domainVos1 = (List) map.get("domainVos"); String jsonString = com.alibaba.fastjson.JSON.toJSONString(domainVos1); List domainVos = com.alibaba.fastjson.JSON.parseArray(jsonString, QjDomainVo.class); String tjNumber = map.get("tjNumber").toString(); if (null != domainVos && domainVos.size() > 0) { Set 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> getMaps(String cusId,String cardId) { List transitionList = null; if (redisCache.hasKey(cardId+cusId)) { transitionList = redisCache.getCacheList(cardId+cusId); } else { transitionList = transitionService.getTbTransitionListByCusId(cusId,cardId); } if (null == transitionList) return null; Map> collect = transitionList.stream().collect(Collectors.groupingBy(TbTransition::getParentProId)); List> list = new ArrayList<>(); for (Map.Entry> entry : collect.entrySet()) { Map 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 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 wq0 = new LambdaQueryWrapper<>(); wq0.eq(TjOrder::getTjNumber, tjNumber); TjOrder tjOrder = tjOrderService.getOne(wq0); if (null != tjOrder) { LambdaQueryWrapper wq11 = new LambdaQueryWrapper<>(); wq11.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId()); wq11.eq(TjOrderDetail::getTjStatus, 0); wq11.isNotNull(TjOrderDetail::getFlowingWaterId); List 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 map = new HashMap<>(); int a = 0; int b = 0; int c = 0; Page page1 = new Page<>(pageNum, pageSize); if (null != firmId) { LambdaQueryWrapper 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 page2 = tjReservationService.page(page1, wq); List 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 wq1 = new LambdaQueryWrapper<>(); wq1.eq(TjCustomer::getCusIdcard, tjReservation.getIdCard()); final TjCustomer one1 = tjCustomerService.getOne(wq1); LambdaQueryWrapper 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 wq1 = new LambdaQueryWrapper<>(); Page page22 = tjReservationService.page(page1, wq1); List 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 res1 = new ArrayList<>(); List res = new ArrayList<>(); LambdaQueryWrapper wqqq = new LambdaQueryWrapper<>(); wqqq.eq(TjDwGrouping::getDwDeptId, firmDeptId); final List list2 = dwGroupingService.list(wqqq); for (TjDwGrouping tjDwGrouping : list2) { LambdaQueryWrapper wq2 = new LambdaQueryWrapper<>(); wq2.eq(TjOrder::getFirmId, firmId); wq2.eq(TjOrder::getGroupId, tjDwGrouping.getId()); final List list = tjOrderService.list(wq2); for (TjOrder tjOrder : list) { LambdaQueryWrapper wq1 = new LambdaQueryWrapper<>(); wq1.eq(TjOrderDetailRules::getTjNumber, tjOrder.getTjNumber()); if (bingZhong != null) { wq1.like(TjOrderDetailRules::getBingzhong, bingZhong); } final List list1 = orderDetailRulesService.list(wq1); //放进集合 res1.addAll(list1); } } //对集合进行去重 拿到病种id // Stream personStream = res1.stream(); // Stream idStream = personStream.map(TjOrderDetailRules::getAid).distinct(); // List distinctIds = idStream.collect(Collectors.toList()); Map columnCountMap = res1.stream().collect(Collectors.groupingBy(TjOrderDetailRules::getAid, Collectors.counting())); for (Map.Entry entry : columnCountMap.entrySet()) { BingZhongVO bingZhongVO = new BingZhongVO(); bingZhongVO.setRules(rulesService.getById(entry.getKey())); bingZhongVO.setNum(entry.getValue()); List 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 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 res1 = new ArrayList<>(); LambdaQueryWrapper wqqq = new LambdaQueryWrapper<>(); wqqq.eq(TjDwGrouping::getDwDeptId, bingZhongVO.getFirmDeptId()); final List list2 = dwGroupingService.list(wqqq); for (TjDwGrouping tjDwGrouping : list2) { LambdaQueryWrapper wq2 = new LambdaQueryWrapper<>(); wq2.eq(TjOrder::getFirmId, bingZhongVO.getFirmId()); wq2.eq(TjOrder::getGroupId, tjDwGrouping.getId()); final List list = tjOrderService.list(wq2); for (TjOrder tjOrder : list) { LambdaQueryWrapper wq1 = new LambdaQueryWrapper<>(); wq1.eq(TjOrderDetailRules::getTjNumber, tjOrder.getTjNumber()); wq1.in(TjOrderDetailRules::getAid, bingZhongVO.getAidList()); final List list1 = orderDetailRulesService.list(wq1); //放进集合 res1.addAll(list1); } } Map columnCountMap = res1.stream().collect(Collectors.groupingBy(TjOrderDetailRules::getAid, Collectors.counting())); List> aaa = new ArrayList<>(); if (columnCountMap != null) { for (Map.Entry entry : columnCountMap.entrySet()) { Map 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 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) { 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,tjOrder.getTjNumber()); //添加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() == 1L) { 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 list=new ArrayList<>(); if(null !=tjCustomer){ List 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()); if(null !=order){ List> list = new ArrayList<>(); if(order.getPacId().equals("o")){ List longList = remarkService.getTjProIdsByTjNum(order.getTjNumber()); for (Long aLong : longList) { Map map = new HashMap<>(); map.put("pacName", "单项"); map.put("proId",aLong); map.put("pacId",null); map.put("parentName", projectService.getById(aLong).getProName()); map.put("list",projectService.getTjProjectListBySoneId(String.valueOf(aLong))); BigDecimal proPrice = projectService.getById(aLong).getProPrice(); map.put("ordPrice", proPrice); map.put("nowPrice", proPrice); list.add(map); } } if(!order.getPacId().equals("o")){ List longList = remarkService.getTjProIdsByTjNumAndPacIc(order.getTjNumber(),order.getPacId()); TjPackage aPackage = tjPackageService.getById(order.getPacId()); for (Long aLong : longList) { Map map = new HashMap<>(); map.put("pacName",aPackage.getPacName()); map.put("pacId",String.valueOf(aPackage.getPacId())); map.put("parentName", projectService.getById(aLong).getProName()); map.put("list",projectService.getTjProjectListBySoneId(String.valueOf(aLong))); BigDecimal proPrice = projectService.getById(aLong).getProPrice(); map.put("ordPrice", proPrice); map.put("nowPrice",tjPackageProjectService.getPacProPriceByPacIdAndPro(aLong,order.getPacId())); list.add(map); } List longList1 = remarkService.getTjProIdsByTjNumAndPacIc(order.getTjNumber(),order.getPacId()); for (Long aLong : longList1) { Map map = new HashMap<>(); map.put("pacName", "单项"); map.put("proId",aLong); map.put("pacId",null); map.put("parentName", projectService.getById(aLong).getProName()); map.put("list",projectService.getTjProjectListBySoneId(String.valueOf(aLong))); BigDecimal proPrice = projectService.getById(aLong).getProPrice(); map.put("ordPrice", proPrice); map.put("nowPrice", proPrice); list.add(map); } } return AjaxResult.success(list); } } return AjaxResult.success("暂无历史记录"); } }