package com.ltkj.web.controller.system;
|
|
import java.io.*;
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDate;
|
import java.time.LocalDateTime;
|
import java.time.LocalTime;
|
import java.time.OffsetTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.*;
|
import java.util.List;
|
import java.util.concurrent.*;
|
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.stream.Collectors;
|
import java.util.stream.Stream;
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
import cn.hutool.core.codec.Base64;
|
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateUnit;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.crypto.symmetric.DES;
|
import cn.hutool.extra.pinyin.PinyinUtil;
|
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONUtil;
|
import com.alibaba.fastjson2.JSON;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.fasterxml.jackson.databind.BeanProperty;
|
import com.itextpdf.text.Document;
|
import com.itextpdf.text.DocumentException;
|
import com.ltkj.common.annotation.RepeatSubmit;
|
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.*;
|
import com.ltkj.framework.config.MatchUtils;
|
import com.ltkj.framework.config.ThreadPoolConfig;
|
import com.ltkj.framework.config.UserHoder;
|
import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
|
import com.ltkj.hosp.domain.*;
|
import com.ltkj.hosp.dto.QianDaoDto;
|
import com.ltkj.hosp.dto.TjProBlDto;
|
import com.ltkj.hosp.dto.UpdateTransitionnewPriceDto;
|
import com.ltkj.hosp.hisDto.OutpinimpapplyDto;
|
import com.ltkj.hosp.hisDto.OutpinmedicapplyDto;
|
import com.ltkj.hosp.idutil.IdUtils;
|
import com.ltkj.hosp.mapper.TbTransitionMapper;
|
import com.ltkj.hosp.mapper.TestMapper;
|
import com.ltkj.hosp.mapper.TjSamplingMapper;
|
import com.ltkj.hosp.pacsDto.SavePacsApply;
|
import com.ltkj.hosp.service.*;
|
import com.ltkj.hosp.sqlDomain.LtkjMiddleDetail;
|
import com.ltkj.hosp.sqlDomain.LtkjMiddleHead;
|
import com.ltkj.hosp.sqlDomain.LtkjTjPat;
|
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.domain.TjDjdDyjl;
|
import com.ltkj.system.service.*;
|
import com.ltkj.web.controller.his.*;
|
import com.ltkj.web.controller.lis.LisApiMethod;
|
import com.ltkj.web.controller.pacs.PacsApiMethodService;
|
import com.ltkj.web.controller.service.TjSysAsyncServiceImpl;
|
import com.ltkj.web.wxUtils.HttpClientUtils;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import jodd.util.StringUtil;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
import org.aspectj.weaver.ast.Var;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.http.HttpRequest;
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.transaction.NoTransactionException;
|
import org.springframework.transaction.annotation.Isolation;
|
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
import org.springframework.util.DigestUtils;
|
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;
|
|
import static com.ltkj.web.config.pdfutils.PDFBinaryUtil.getPDFBinary;
|
|
/**
|
* 体检记录Controller
|
*
|
* @author ltkj
|
* @date 2022-11-21
|
*/
|
@RestController
|
@RequestMapping("/hosp/order")
|
@Api(tags = "PC端 ----体检记录接口 OrderController")
|
@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;
|
@Resource
|
private TjvLtkjvtjpatService tjvLtkjvtjpatService;
|
@Autowired
|
private ThreadPoolConfig threadPoolConfig;
|
@Autowired
|
private HisApiMethod hisApiMethod;
|
@Autowired
|
private HisApiGetMethodService hisApiGetMethodService;
|
@Autowired
|
private ISysDeptService sysDeptService;
|
@Autowired
|
private HisApiMethodService controller;
|
@Autowired
|
private TjProBlService blService;
|
@Resource
|
private ITjReportTemplateService reportTemplateService;
|
@Autowired
|
private LtkjJianchajianyanTreeService ltkjJianchajianyanTreeService;
|
@Autowired
|
private PacsApiMethodService pacsApiMethodService;
|
@Autowired
|
private ITbTransitionService tbTransitionService;
|
@Autowired
|
private LisApiMethod lisApiMethod;
|
@Autowired
|
private TjCfService cfService;
|
@Autowired
|
private TjReportController reportController;
|
@Resource
|
private ITjReportService tjReportService;
|
@Autowired
|
private HisPDFUtil hisPDFUtil;
|
@Value("${path.reportServer}")
|
private String urlValue;
|
@Autowired
|
private ITjSamplingService samplingService;
|
@Autowired
|
private TjSamplingMapper tjSamplingMapper;
|
@Autowired
|
private ITjGroupingProService groupingProService;
|
@Autowired
|
private ITjDjdDyjlService djdDyjlService;
|
@Autowired
|
private IdUtils idUtils;
|
@Autowired
|
private LtkjJybbzdService jybbzdService;
|
@Autowired
|
private LisJyflhbService lisJyflhbService;
|
@Autowired
|
private ISysDictDataService sysDictDataService;
|
@Autowired
|
private TjFlowingWaterHisService tjFlowingWaterHisService;
|
@Resource
|
private ITjXdPictureService xdPictureService;
|
@Autowired
|
private TjOrderYcxmService ycxmService;
|
@Autowired
|
private TbTransitionMapper tbTransitionMapper;
|
|
private static final String TJH = "tjhs:tjh";
|
|
//将方法返回值解析成json格式
|
public JSONObject getJSONObject(String builder) {
|
String Response = JSONUtil.parseObj(builder).getStr("Response");
|
return JSONUtil.parseObj(Response);
|
}
|
|
//获取方法返回值信息
|
public String getAjaxResult(AjaxResult result) {
|
return result.get("data").toString();
|
}
|
|
/**
|
* 查询体检记录列表
|
*/
|
// @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.isEmpty()) {
|
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.isEmpty()) {
|
for (TjOrder order : list) {
|
//筛选有调查问卷的
|
LambdaQueryWrapper<TjSurveyRecord> wqq1 = new LambdaQueryWrapper<>();
|
wqq1.eq(TjSurveyRecord::getTjnumber, order.getTjNumber());
|
List<TjSurveyRecord> one = surveyRecordService.list(wqq1);
|
if (one.isEmpty()) {
|
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.isEmpty()) {
|
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) Integer zt,
|
@ApiParam(value = "体检号)") @RequestParam(required = false) String tjNum,
|
@ApiParam(value = "姓名)") @RequestParam(required = false) String name,
|
@ApiParam(value = "项目名)") @RequestParam(required = false) String xmmc,
|
@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,
|
@ApiParam(value = "单位") @RequestParam(required = false) String dw) {
|
Map<String, Object> map = new HashMap<>();
|
List<Long> cusIds = null;
|
if (null != name) {
|
LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
|
wqq.like(TjCustomer::getCusName, name);
|
cusIds = tjCustomerService.list(wqq).stream().map(TjCustomer::getCusId).collect(Collectors.toList());
|
}
|
|
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);
|
}
|
|
|
if (null != xmmc) {
|
wq.in(TjOrder::getTjNumber, projectService.getTjNumLIstByXmmx(xmmc));
|
}
|
|
if (StrUtil.isNotBlank(dw)) {
|
wq.like(TjOrder::getFirmName, dw);
|
}
|
|
if (null != cusIds && !cusIds.isEmpty()) {
|
wq.in(TjOrder::getUserId, cusIds);
|
}
|
|
if (null != zt && (zt == 0 || zt == 1 || zt == 2)) {
|
List<TjOrder> orders = new ArrayList<>();
|
List<TjOrder> tjOrders = null;
|
List<TjOrder> orderList = tjOrderService.list(wq);
|
if (null != orderList && !orderList.isEmpty()) {
|
for (TjOrder order : orderList) {
|
int czwj = remarkService.panduaniscunzaiweijian(order.getTjNumber());
|
int sfwc = remarkService.panduaniswancheng(order.getTjNumber());
|
if (zt == 0 && czwj == 0) {
|
//未检0
|
order.setZt("未检");
|
orders.add(order);
|
}
|
if (zt == 1 && czwj > 0) {
|
//在检1
|
order.setZt("在检");
|
orders.add(order);
|
}
|
if (zt == 2 && sfwc == 0 && order.getCheckStatus() == 0 && order.getCheckTime() == null && order.getHeshouStatus() == 0 && order.getPrintLastTime() == null) {
|
//已完成2
|
order.setZt("已完成");
|
orders.add(order);
|
}
|
}
|
if (!orders.isEmpty()) {
|
tjOrders = orders.stream().sorted(Comparator.comparing(TjOrder::getCreateTime).reversed())
|
.skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
for (TjOrder order : tjOrders) {
|
TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
|
if (null != tjCustomer) {
|
order.setTjCustomerSex(tjCustomer.getCusSex());
|
order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
order.setTjCustomerName(tjCustomer.getCusName());
|
order.setTjCustomerPhone(tjCustomer.getCusPhone());
|
order.setTjCusIdCard(tjCustomer.getCusIdcard());
|
order.setCareer(tjCustomer.getCareer());
|
order.setIdType(tjCustomer.getIdType());
|
order.setAgeUnit(tjCustomer.getAgeUnit());
|
order.setTjCount(String.valueOf(tjCustomer.getCusNumber()));
|
String firmName = order.getFirmName();
|
if (StringUtil.isNotBlank(firmName)) {
|
order.setDictCompName(firmName);
|
}
|
if (null != order.getPacId()) {
|
if (null != tjPackageService.getById(order.getPacId())) {
|
order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
|
} else if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
TjDjdDyjl dycs = djdDyjlService.getDjdDyCsByTjNum(order.getTjNumber());
|
if (null != dycs) order.setDycs(Math.toIntExact(dycs.getDycs()));
|
}
|
}
|
}
|
}
|
map.put("list", tjOrders);
|
map.put("total", orders.size());
|
return AjaxResult.success(map);
|
}
|
|
if (null != zt) {
|
if (zt == 3) {
|
//已审核
|
wq.isNotNull(TjOrder::getCheckTime);
|
wq.eq(TjOrder::getCheckStatus, 1);
|
wq.isNull(TjOrder::getHeshouTime);
|
wq.isNull(TjOrder::getPrintLastTime);
|
wq.eq(TjOrder::getHeshouStatus, 0);
|
}
|
if (zt == 4) {
|
//生成报告
|
wq.isNotNull(TjOrder::getReportTime);
|
wq.isNull(TjOrder::getHeshouTime);
|
wq.isNull(TjOrder::getPrintLastTime);
|
wq.eq(TjOrder::getHeshouStatus, 0);
|
}
|
if (zt == 5) {
|
//报告核收
|
wq.eq(TjOrder::getHeshouStatus, 1);
|
wq.isNull(TjOrder::getPrintLastTime);
|
}
|
if (zt == 6) {
|
//已出报告
|
wq.isNotNull(TjOrder::getPrintLastTime);
|
wq.eq(TjOrder::getHeshouStatus, 1);
|
wq.isNotNull(TjOrder::getPrintLastTime);
|
}
|
}
|
|
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(tjCustomer.getCusName());
|
order.setTjCustomerPhone(tjCustomer.getCusPhone());
|
order.setTjCusIdCard(tjCustomer.getCusIdcard());
|
order.setCareer(tjCustomer.getCareer());
|
order.setIdType(tjCustomer.getIdType());
|
order.setAgeUnit(tjCustomer.getAgeUnit());
|
order.setTjCount(String.valueOf(tjCustomer.getCusNumber()));
|
if (null != tjCustomer.getCompName()) {
|
order.setDictCompName(tjCustomer.getCompName());
|
} else {
|
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());
|
} else if (null != dwDeptService.getById(order.getPacId())) {
|
order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
|
}
|
}
|
TjDjdDyjl dycs = djdDyjlService.getDjdDyCsByTjNum(order.getTjNumber());
|
if (null != dycs) order.setDycs(Math.toIntExact(dycs.getDycs()));
|
}
|
int czwj = remarkService.panduaniscunzaiweijian(order.getTjNumber());
|
int sfwc = remarkService.panduaniswancheng(order.getTjNumber());
|
Date checkTime = order.getCheckTime();
|
Date reportTime = order.getReportTime();
|
Integer heshouStatus = order.getHeshouStatus();
|
Date lastTime = order.getPrintLastTime();
|
|
if (null != zt) {
|
if (zt == 3) {
|
order.setZt("已审核");
|
}
|
if (zt == 4) {
|
order.setZt("生成报告");
|
}
|
if (zt == 5) {
|
order.setZt("报告核收");
|
}
|
if (zt == 6) {
|
order.setZt("已出报告");
|
}
|
} else {
|
if (czwj == 0) {
|
//未检0
|
order.setZt("未检");
|
}
|
if (czwj > 0) {
|
//在检1
|
order.setZt("在检");
|
}
|
if (sfwc == 0) {
|
//已完成2
|
order.setZt("已完成");
|
}
|
if (null != checkTime) {
|
//已审核3
|
order.setZt("已审核");
|
}
|
if (null != reportTime) {
|
//生成报告4
|
order.setZt("生成报告");
|
}
|
if (1 == heshouStatus) {
|
//报告核收5
|
order.setZt("报告核收");
|
}
|
if (null != lastTime) {
|
//已出报告6
|
order.setZt("已出报告");
|
}
|
}
|
}
|
}
|
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 = "打印未打印状态 0未打印 1已打印") @RequestParam(required = false) Integer dyzt,
|
@ApiParam(value = "体检号)") @RequestParam(required = false) String tjNum,
|
@ApiParam(value = "姓名)") @RequestParam(required = false) String name,
|
@ApiParam(value = "单位") @RequestParam(required = false) String dw,
|
@ApiParam(value = "报告开始时间") @RequestParam(required = false) String djbeginTime,
|
@ApiParam(value = "报告结束时间") @RequestParam(required = false) String djendTime) {
|
/* Map<String, Object> map = new HashMap<>();
|
List<Long> cusIds = null;
|
if (StringUtil.isNotBlank(name)) {
|
LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
|
wqq.like(TjCustomer::getCusName, name);
|
cusIds = tjCustomerService.list(wqq).stream().map(TjCustomer::getCusId).collect(Collectors.toList());
|
}
|
Page<TjOrder> page1 = new Page<>(pageNum, pageSize);
|
LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
|
if (dyzt == 0) {
|
wq.isNull(TjOrder::getPrintLastTime);
|
wq.eq(TjOrder::getHeshouStatus, 1); //核收状态为1才能打印
|
} else {
|
wq.isNotNull(TjOrder::getPrintLastTime);
|
}
|
|
if (null != djbeginTime && null != djendTime) {
|
wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(DateUtil.parseDate(djbeginTime)), DateUtil.endOfDay(DateUtil.parseDate(djendTime)));
|
}
|
if (null != tjNum) {
|
wq.like(TjOrder::getTjNumber, tjNum);
|
}
|
if (StringUtil.isNotBlank(dw)) {
|
wq.like(TjOrder::getFirmName, dw);
|
}
|
if (null != cusIds && !cusIds.isEmpty()) {
|
wq.in(TjOrder::getUserId, cusIds);
|
}
|
wq.orderByDesc(TjOrder::getCreateTime);
|
Page<TjOrder> page2 = tjOrderService.page(page1, wq);
|
List<TjOrder> list = page2.getRecords();
|
if (list != null) {
|
for (int i = 0; i < list.size(); i++) {
|
TjCustomer tjCustomer = tjCustomerService.getById(list.get(i).getUserId());
|
if (null == tjCustomer) {
|
list.remove(list.get(i));
|
continue;
|
}
|
list.get(i).setTjCustomerSex(tjCustomer.getCusSex());
|
list.get(i).setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
|
list.get(i).setTjCustomerName(tjCustomer.getCusName());
|
list.get(i).setTjCustomerPhone(tjCustomer.getCusPhone());
|
if (tjCustomer.getCusIdcard() != null) {
|
list.get(i).setTjCusIdCard(tjCustomer.getCusIdcard());
|
}
|
|
if (null != tjCustomer.getCompName()) {
|
list.get(i).setDictCompName(tjCustomer.getCompName());
|
} else {
|
String firmId = list.get(i).getFirmId();
|
if (firmId != null && null != iDictCompService.getById(String.valueOf(list.get(i).getFirmId()))) {
|
list.get(i).setDictCompName(iDictCompService.getById(String.valueOf(list.get(i).getFirmId())).getCnName());
|
}
|
}
|
if (null != list.get(i).getPacId()) {
|
if (null != tjPackageService.getById(list.get(i).getPacId())) {
|
list.get(i).setPacName(tjPackageService.getById(list.get(i).getPacId()).getPacName());
|
}
|
if (null != dwDeptService.getById(list.get(i).getPacId())) {
|
list.get(i).setPacName(dwDeptService.getById(list.get(i).getPacId()).getDwDeptName());
|
}
|
}
|
//从打印记录查出最新打印时间
|
// LambdaQueryWrapper<TjReportPrint> wqqq = new LambdaQueryWrapper<>();
|
// wqqq.eq(TjReportPrint::getTjNumber, list.get(i).getTjNumber());
|
// wqqq.orderByDesc(TjReportPrint::getPrintTime);
|
// wqqq.last("limit 1");
|
// TjReportPrint one = tjReportPrintService.getOne(wqqq);
|
// if (one != null) {
|
// list.get(i).setPrintLastTime(one.getPrintTime());
|
// }
|
}
|
}
|
map.put("list", list);
|
map.put("total", page2.getTotal());*/
|
|
if (djbeginTime == null) djbeginTime = "";
|
if (djendTime == null) djendTime = "";
|
Map<String, Object> map = tjOrderService.getTjBgdyList(pageNum, pageSize, dyzt, tjNum, name, dw, djbeginTime, djendTime);
|
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);
|
}
|
|
|
/**
|
* 体检签到登记接口
|
*/
|
|
|
ReentrantLock lock = new ReentrantLock();
|
|
@PostMapping
|
@ApiOperation(value = "体检签到登记接口")
|
// @Transactional //(切换数据库出错,所以注释)
|
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
|
public AjaxResult addOrderAndDetail(@RequestBody TjOrder tjOrder) throws Exception {
|
Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
|
SysUser sysUser = userService.getById(userId);
|
|
LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjCustomer::getCusId, tjOrder.getUserId());
|
TjCustomer tjCustomer = tjCustomerService.getOne(wq);
|
if (tjCustomer == null) return AjaxResult.error("该客户未登记");
|
|
// LambdaQueryWrapper<TjOrder> 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("不可重复登记");
|
// }
|
TjFlowingWater tjFlowingWater = new TjFlowingWater();
|
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 (null != tjReservation) {
|
tjOrder.setReservationId(tjReservation.getId());
|
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(DateUtil.offsetDay(tjReservation.getReservationTime(), tjReservation.getYxts())).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.getCompany()) tjOrder.setFirmName(tjReservation.getCompany());
|
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()) {
|
TjDwGrouping dwGrouping = dwGroupingService.getById(tjReservation.getGroupingId());
|
tjOrder.setGroupId(tjReservation.getGroupingId());
|
tjOrder.setFirmDeptId(dwGrouping.getDwDeptId());
|
}
|
tjReservation.setIsExpire(1);
|
tjReservationService.updateById(tjReservation);
|
if (null != tjReservation.getTeamNo() && tjOrder.getTjType().equals("1")) {
|
tjOrder.setTjType("1");
|
} else if (tjOrder.getTjType().equals("2")) {
|
tjOrder.setTjType("2");
|
}
|
}
|
if (StringUtil.isBlank(tjOrder.getFirmId())) {
|
tjOrder.setFirmId("0");
|
}
|
|
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 (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 (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
|
tjOrder.setFinishTime(new Date());
|
tjOrder.setCheckStatus(1);
|
tjOrder.setStatus(TjConstants.TJ_WAIT);
|
// tjFlowingWater.setPayStasus(1L);
|
}
|
tjFlowingWater.setPayStasus(0L);
|
|
try {
|
boolean b = lock.tryLock(3, TimeUnit.MINUTES);
|
if (b) {
|
AjaxResult result = processOrderWithTransaction(tjOrder, tjCustomer, tjReservation, tjFlowingWater, mallOrder, sysUser);
|
if (!result.get("code").toString().equals("200"))
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
tjOrderService.tjQiandaodengji(tjOrder.getTjNumber());
|
return result;
|
}
|
}catch (Exception e){
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
log.error(String.valueOf(e),e.getMessage());
|
e.printStackTrace();
|
}
|
finally {
|
lock.unlock();
|
}
|
return AjaxResult.error();
|
}
|
|
|
@Transactional(propagation = Propagation.REQUIRED)
|
public AjaxResult processOrderWithTransaction(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, MallOrder mallOrder, SysUser sysUser) {
|
|
//获取拼接前缀
|
String makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix");
|
|
//生成体检号
|
// String tjNumber = (SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmss").format(new Date()));
|
// if(StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber=makeLisTmhPrefix+tjNumber;
|
|
|
// String tjNumber = (SecurityUtils.getUsername() + idUtils.getTjNumber());
|
// String tjNumber = idUtils.getTjNumber();
|
|
String tjNumber = null;
|
int a =0;
|
while (tjNumber ==null){
|
if(a>3){
|
throw new RuntimeException("前方拥挤,请稍等!!!");
|
}
|
try {
|
String newTjNumberRedisLockAndMysql = idUtils.getNewTjNumberRedisLockAndMysql();
|
if (StringUtil.isNotBlank(makeLisTmhPrefix)){
|
String tjh= makeLisTmhPrefix + newTjNumberRedisLockAndMysql;
|
int countByTjNum = tjOrderService.getOrderCountByTjNum(tjh);
|
if(countByTjNum==0){
|
tjNumber=tjh;
|
}
|
}else {
|
int countByTjNum = tjOrderService.getOrderCountByTjNum(newTjNumberRedisLockAndMysql);
|
if(countByTjNum==0){
|
tjNumber=newTjNumberRedisLockAndMysql;
|
}
|
}
|
} catch (Exception e) {
|
log.error(e.getMessage());
|
throw new IllegalStateException();
|
}finally {
|
a++;
|
}
|
}
|
|
tjOrder.setTjNumber(tjNumber);
|
|
BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount()));
|
tjOrder.setDiscount(discount.toString());
|
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);
|
|
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);
|
BigDecimal copeWith = tjOrder.getTjFlowingWater().getCopeWith();
|
BigDecimal paidIn = tjOrder.getTjFlowingWater().getPaidIn();
|
|
tjFlowingWater.setCopeWith(copeWith);
|
tjFlowingWater.setPaidIn(paidIn);
|
tjFlowingWater.setDiscount(discount.toString());
|
|
BigDecimal subtract = paidIn.subtract(copeWith.multiply(discount.divide(BigDecimal.valueOf(10))));
|
log.info("签到登记体检人: " + tjOrder.getTjNumber() + " 应付: " + copeWith);
|
log.info("签到登记体检人: " + tjOrder.getTjNumber() + " 折扣: " + discount);
|
log.info("签到登记体检人: " + tjOrder.getTjNumber() + " 实付: " + paidIn);
|
log.info("签到登记体检人: " + tjOrder.getTjNumber() + " 相差: " + subtract);
|
|
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);
|
}
|
}
|
|
//修改临时表体检号
|
transitionService.updateTbTransitionTjNumByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber());
|
|
if (tjFlowingWaterService.save(tjFlowingWater)) {
|
tjOrder.setTjSerialNumber(String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
tjOrderService.updateById(tjOrder);
|
}
|
|
/*调用his接口*/
|
String config = configService.selectConfigByKey("sfkqdyhis");
|
if (null != config && config.equals("Y")) {
|
AjaxResult result = null;
|
try {
|
result = hisApiMethod.HisApiMethods(tjCustomer, tjOrder);
|
if (!result.get("code").toString().equals("200")) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
Object jzh = result.get("jzh");
|
if (null != jzh && null != jzh.toString()) {
|
hisApiMethod.ZfHisApiMethod(jzh.toString());
|
}
|
log.info("该登记人挂号失败, 就诊号为: " + tjOrder.getCardId());
|
return AjaxResult.error("挂号失败!" + result.get("msg").toString());
|
}
|
} catch (NoTransactionException e) {
|
log.error(e.getMessage());
|
throw new RuntimeException(e);
|
}
|
|
log.info("该登记人的his就诊号是: " + tjOrder.getCardId());
|
//团体
|
/* if ("1".equals(tjOrder.getTjType())) {
|
// asyncService.ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater);
|
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);
|
}*/
|
// 查询 对接Lis、Pacs申请如果类型包含在配置内则使用对接lis、pacs
|
try {
|
if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
|
// 这是上面个人方法引入数据
|
tjFlowingWater.setPayStasus(1L);
|
newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
|
AjaxResult ajaxResult = hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder, sysUser, result);
|
if (!ajaxResult.get("code").toString().equals("200")) return ajaxResult;
|
tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
|
sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
|
List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
|
xdPictureService.saveBatch(xdPictureList);
|
} else {
|
newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
|
List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
|
addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
|
hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId());
|
}
|
return AjaxResult.success(tjNumber);
|
} catch (Exception e) {
|
log.error(e.getMessage());
|
throw new RuntimeException(e);
|
}
|
} else {
|
tjCustomer.setCardId(tjOrder.getTjNumber());
|
tjCustomerService.updateById(tjCustomer);
|
transitionService.updateCardIdByTjNumAndIdCard(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), tjOrder.getTjNumber());
|
tjOrder.setCardId(tjOrder.getTjNumber());
|
tjOrderService.updateById(tjOrder);
|
}
|
|
//团体
|
// if ("1".equals(tjOrder.getTjType())) {
|
// ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater);
|
//// asyncService.ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater);
|
// List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
|
// addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
|
// return AjaxResult.success(tjNumber);
|
// }
|
//个人
|
// if ("2".equals(tjOrder.getTjType())) {
|
// //asyncService.newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
|
// newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
|
// List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
|
// addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
|
//
|
// String s = configService.selectConfigByKey("is_request_common_his_api");
|
// if (null != s && s.equals("Y")) {
|
// String apiUrl = configService.selectConfigByKey("common_api_url");
|
// String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
|
// HashMap<String, Object> map = new HashMap<>();
|
// map.put("pationId", tjCustomer.getPationId());
|
// map.put("cardId", tjCustomer.getHisJzkh());
|
// map.put("tjNum", tjFlowingWater.getTjSerialNumber());
|
// map.put("kaiDanKs", "7805");
|
// // 收费标志 1待售费 2待退费
|
// map.put("shouTuiStatus", "1");
|
//
|
// JSONArray array = JSONUtil.createArray();
|
// LambdaQueryWrapper<TbTransition> wrapper = new LambdaQueryWrapper<>();
|
// wrapper.eq(TbTransition::getTjNum, tjOrder.getTjNumber());
|
// wrapper.eq(TbTransition::getCusId, tjCustomer.getCusIdcard());
|
// wrapper.eq(TbTransition::getCardId, tjCustomer.getCardId());
|
// wrapper.isNotNull(TbTransition::getOrdPrice);
|
// wrapper.gt(TbTransition::getOrdPrice, 0);
|
//
|
// List<TbTransition> list = tbTransitionService.list(wrapper);
|
// for (TbTransition transition : list) {
|
// LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
|
// wrapper1.eq(TjProject::getProId, transition.getProId());
|
// TjProject project = projectService.getOne(wrapper1);
|
//
|
// LambdaQueryWrapper<SysDept> wrapper2 = new LambdaQueryWrapper<>();
|
// wrapper2.eq(SysDept::getDeptId, project.getDeptId());
|
// SysDept dept = sysDeptService.getOne(wrapper2);
|
//
|
// JSONObject obj = JSONUtil.createObj();
|
// Integer sl = project.getSl();
|
// BigDecimal danjia = transition.getOrdPrice();
|
// BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
|
// obj.putOpt("danJia", danjia);
|
// obj.putOpt("jieSuanJe", allPrice);
|
// obj.putOpt("shuliang", sl);
|
// obj.putOpt("zhiXingKs", dept.getDeptId());
|
// obj.putOpt("zhiXingKsMc", dept.getDeptName());
|
// obj.putOpt("shouFeiXmId", project.getHisXmbm());
|
// obj.putOpt("shouFeiXmMc", project.getHisXmmc());
|
//
|
//// obj.putOpt("zhiXingKs","7805");
|
//// obj.putOpt("zhiXingKsMc","体检科");
|
//// obj.putOpt("shouFeiXmId","4735346");
|
//// obj.putOpt("shouFeiXmMc","体检费");
|
// array.add(obj);
|
// }
|
// map.put("feiYongInfoList", array);
|
//
|
// String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
|
// JSONObject object = JSONUtil.parseObj(post);
|
// if (object.getInt("code") == 200) {
|
// JSONObject data = object.getJSONObject("data");
|
// tjFlowingWater.setHisWaterId(data.getStr("feiYongId"));
|
// JSONArray mxList = data.getJSONArray("mxList");
|
// if (mxList != null && !mxList.isEmpty()) {
|
// List<TjFlowingWaterHis> his = mxList.toList(TjFlowingWaterHis.class);
|
// tjFlowingWaterHisService.saveBatch(his);
|
// }
|
// tjFlowingWaterService.updateById(tjFlowingWater);
|
// } else {
|
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
// return AjaxResult.error();
|
// }
|
// }
|
// return AjaxResult.success(tjNumber);
|
// }
|
|
// 查询 对接Lis、Pacs申请如果类型包含在配置内则使用对接lis、pacs
|
|
//导入人员是否收费
|
String drrysfsf = configService.selectConfigByKey("drrysfsf");
|
|
|
try {
|
if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
|
if(StringUtil.isNotBlank(drrysfsf) && drrysfsf.equalsIgnoreCase("Y")){
|
if(null != tjReservation){
|
return isUseLisAndPacsRegister(tjOrder, tjCustomer, tjReservation, tjFlowingWater, sysUser, discount, tjNumber);
|
}else {
|
newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
|
AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
|
if (error != null) return error;
|
|
return AjaxResult.success(tjNumber);
|
}
|
}
|
return isUseLisAndPacsRegister(tjOrder, tjCustomer, tjReservation, tjFlowingWater, sysUser, discount, tjNumber);
|
|
} else {
|
newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
|
AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
|
if (error != null) return error;
|
}
|
} catch (Exception e) {
|
log.error(e.getMessage());
|
throw new RuntimeException(e);
|
}
|
|
return AjaxResult.success(tjNumber);
|
}
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error();
|
}
|
|
private AjaxResult isUseLisAndPacsRegister(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, SysUser sysUser, BigDecimal discount, String tjNumber) {
|
try {
|
log.info("签到登记进入未收费方法");
|
// 这是上面个人方法引入数据
|
tjFlowingWater.setPayStasus(1L);
|
newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
|
tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
|
sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
|
List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
|
xdPictureService.saveBatch(xdPictureList);
|
List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
|
log.info("签到登记:采样数据查询个数"+detailList.size());
|
addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
|
return AjaxResult.success(tjNumber);
|
} catch (Exception e) {
|
log.error(e.getMessage());
|
throw new RuntimeException(e);
|
}
|
}
|
|
public void newSaveextracted(TjOrder tjOrder, TjCustomer tjCustomer, BigDecimal discount, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
|
try {
|
tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId()));
|
if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
|
tjOrderDetailService.saveJSYTjOrderDetailsByCusId(tjCustomer.getCusIdcard(),
|
String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId(), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
} else {
|
tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
|
}
|
|
tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
|
|
//添加remark表数据
|
if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
|
remarkService.saveJSYTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId()));
|
|
} else {
|
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()));
|
remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
|
List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
|
xdPictureService.saveBatch(xdPictureList);
|
}
|
}
|
if (tjFlowingWater.getPayStasus() == 1L) {
|
tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
|
sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
tjFlowingWater.setPaidIn(tjOrder.getTjFlowingWater().getPaidIn());
|
tjFlowingWater.setCopeWith(tjOrder.getTjFlowingWater().getCopeWith());
|
tjFlowingWater.setPayType(4L);
|
tjFlowingWaterService.updateById(tjFlowingWater);
|
remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
|
// asyncService.addTjChargingStandard(tjOrder, transitionService.getTbTransitionListByCusId(tjCustomer.getCusIdcard(), tjOrder.getCardId()), sysUser);
|
List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
|
xdPictureService.saveBatch(xdPictureList);
|
}
|
} catch (Exception e) {
|
log.error(e.getMessage());
|
throw new RuntimeException(e);
|
}
|
}
|
|
|
private AjaxResult isRequestCommonHisApi(TjOrder tjOrder, TjCustomer tjCustomer, TjFlowingWater tjFlowingWater) {
|
String s = configService.selectConfigByKey("is_request_common_his_api");
|
if (null != s && s.equals("Y")) {
|
String apiUrl = configService.selectConfigByKey("common_api_url");
|
String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
|
HashMap<String, Object> map = new HashMap<>();
|
map.put("pationId", tjCustomer.getPationId());
|
map.put("cardId", tjCustomer.getHisJzkh());
|
map.put("tjNum", tjFlowingWater.getTjSerialNumber());
|
map.put("kaiDanKs", "7805");
|
// 收费标志 1待售费 2待退费
|
map.put("shouTuiStatus", "1");
|
|
JSONArray array = JSONUtil.createArray();
|
LambdaQueryWrapper<TbTransition> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TbTransition::getTjNum, tjOrder.getTjNumber());
|
wrapper.eq(TbTransition::getCusId, tjCustomer.getCusIdcard());
|
wrapper.eq(TbTransition::getCardId, tjCustomer.getCardId());
|
wrapper.isNotNull(TbTransition::getNowPrice);
|
wrapper.gt(TbTransition::getNowPrice, 0);
|
|
List<TbTransition> list = tbTransitionService.list(wrapper);
|
BigDecimal zongjia = new BigDecimal("0.0");
|
for (TbTransition transition : list) {
|
LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
|
wrapper1.eq(TjProject::getProId, transition.getProId());
|
TjProject project = projectService.getOne(wrapper1);
|
|
LambdaQueryWrapper<SysDept> wrapper2 = new LambdaQueryWrapper<>();
|
wrapper2.eq(SysDept::getDeptId, project.getDeptId());
|
SysDept dept = sysDeptService.getOne(wrapper2);
|
|
JSONObject obj = JSONUtil.createObj();
|
// Integer sl = project.getSl();
|
int sl = 1;
|
BigDecimal danjia = transition.getNowPrice();
|
BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
|
obj.putOpt("danJia", danjia);
|
obj.putOpt("jieSuanJe", allPrice);
|
obj.putOpt("shuliang", sl);
|
obj.putOpt("zhiXingKs", dept.getDeptId());
|
obj.putOpt("zhiXingKsMc", dept.getDeptName());
|
obj.putOpt("shouFeiXmId", project.getHisXmbm());
|
obj.putOpt("shouFeiXmMc", project.getHisXmmc());
|
array.add(obj);
|
zongjia = zongjia.add(allPrice);
|
}
|
map.put("feiYongInfoList", array);
|
log.info("调用His接口前 收费总价:{}", zongjia.toString());
|
|
String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
|
JSONObject object = JSONUtil.parseObj(post);
|
if (object.getInt("code") == 200) {
|
JSONObject data = object.getJSONObject("data");
|
tjFlowingWater.setHisWaterId(data.getStr("feiYongId"));
|
JSONArray mxList = data.getJSONArray("mxList");
|
if (mxList != null && !mxList.isEmpty()) {
|
List<TjFlowingWaterHis> his = mxList.toList(TjFlowingWaterHis.class);
|
tjFlowingWaterHisService.saveBatch(his);
|
}
|
tjFlowingWaterService.updateById(tjFlowingWater);
|
} else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error();
|
}
|
}
|
return null;
|
}
|
|
public void addCaiYangDengJi(List<TjOrderDetail> detailList, boolean detailList1, TjOrder order, SysUser sysUser, String jxbz) {
|
String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix");
|
String config = configService.selectConfigByKey("sfkqdyhis");
|
Boolean lisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
|
if (null != detailList && detailList1) {
|
Date date = new Date();
|
String format = DateUtil.format(date, "yyMMddHHmmssSSS");
|
for (TjOrderDetail detail : detailList) {
|
int i = samplingService.isExistProId(order.getTjNumber(), String.valueOf(detail.getProId()));
|
if(i>0) continue;
|
TjSampling sampling = new TjSampling();
|
if (null == projectService.getById(detail.getProId())) continue;
|
TjProject project = projectService.getById(detail.getProId());
|
Long proParentId = project.getProParentId();
|
String dictLabel = sysDictDataService.selectDictLabel("sys_dict_specimen", project.getSpecimenType());
|
if (null != proParentId && proParentId == 0) {
|
sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
|
sampling.setSpecimenTypeCode(project.getSpecimenType());
|
sampling.setSpecimenType(dictLabel);
|
if (config.equals("Y") && lisAndPacsRegister)
|
sampling.setJyxmdm(project.getLisXmbm());
|
else sampling.setJyxmdm(project.getProId().toString());
|
} else {
|
TjProject project1 = projectService.getById(proParentId);
|
sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
|
|
sampling.setSpecimenTypeCode(project1.getSpecimenType());
|
sampling.setSpecimenType(dictLabel);
|
if (config.equals("Y") && lisAndPacsRegister)
|
sampling.setJyxmdm(project1.getLisXmbm());
|
else sampling.setJyxmdm(project1.getProId().toString());
|
|
}
|
sampling.setSamplingNumber(format);
|
sampling.setTjNum(order.getTjNumber());
|
sampling.setCusId(String.valueOf(order.getUserId()));
|
if (tjCustomerService.getById(String.valueOf(order.getUserId())) != null) {
|
sampling.setCusName(tjCustomerService.getById(String.valueOf(order.getUserId())).getCusName());
|
}
|
sampling.setApplicationTime(date);
|
sampling.setTjTime(order.getCreateTime());
|
sampling.setProId(String.valueOf(detail.getProId()));
|
sampling.setProName(projectService.getById(detail.getProId()).getProName());
|
sampling.setCreateBy(sysUser.getNickName());
|
sampling.setCreateTime(date);
|
sampling.setUpdateBy(sysUser.getNickName());
|
sampling.setUpdateTime(date);
|
sampling.setCreateId(String.valueOf(sysUser.getUserId()));
|
sampling.setUpdateId(String.valueOf(sysUser.getUserId()));
|
sampling.setJxbz(jxbz);
|
samplingService.save(sampling);
|
}
|
}
|
if (lisApiMethod.isUseLisAndPacsRegister(order) && (null != config && config.equals("Y"))) {
|
AjaxResult ajaxResult = lisApiMethod.getJyFlHb();
|
if (ajaxResult.get("code").toString().equals("200")) {
|
String str = ajaxResult.get("data").toString();
|
str = str.replace("=", ":");
|
JSONArray array = JSONUtil.parseArray(str);
|
for (Object o : array) {
|
JSONObject object = (JSONObject) o;
|
LisJyflhb lisJyflhb = new LisJyflhb();
|
lisJyflhb.setHbhxm(object.getStr("hbhxm"));
|
lisJyflhb.setFlmc(object.getStr("flmc"));
|
lisJyflhb.setMc(object.getStr("mc"));
|
lisJyflhb.setFlbm(object.getStr("flbm"));
|
LambdaQueryWrapper<LisJyflhb> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(LisJyflhb::getFlbm, lisJyflhb.getFlbm());
|
LisJyflhb jyflhb = lisJyflhbService.getOne(wrapper);
|
if (jyflhb == null) {
|
lisJyflhb.setId(IdUtil.getSnowflake().nextId());
|
lisJyflhbService.save(lisJyflhb);
|
} else {
|
lisJyflhb.setId(jyflhb.getId());
|
lisJyflhbService.updateById(lisJyflhb);
|
}
|
}
|
}
|
|
}
|
if (StrUtil.isNotBlank(jxbz)) {
|
tjSamplingMapper.updateUserIdByTjNumAndJxbz(order.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), jxbz);
|
} else {
|
tjSamplingMapper.updateUserIdByTjNum(order.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
|
}
|
}
|
|
|
|
@GetMapping("/addCaiYangDengJi")
|
@ApiOperation(value = "手动添加采样记录接口")
|
public AjaxResult addCaiYangDengJi(@RequestParam("tjNum") String tjNum){
|
|
try {
|
TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
|
if(null !=order){
|
Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
|
SysUser sysUser = userService.getById(userId);
|
List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(order.getOrderId());
|
log.info("签到登记:采样数据查询个数"+detailList.size());
|
addCaiYangDengJi(detailList, !detailList.isEmpty(), order, sysUser, null);
|
}
|
} catch (NumberFormatException e) {
|
log.error(String.valueOf(e));
|
}
|
|
return AjaxResult.success();
|
}
|
|
|
@PostMapping("/addPlOrderAndDetail")
|
@ApiOperation(value = "体检批量签到登记接口")
|
// @Transactional //(切换数据库出错,所以注释)
|
public AjaxResult addPlOrderAndDetail(@RequestBody QianDaoDto daoDto, HttpServletResponse response) {
|
SysUser sysUser = UserHoder.getLoginUser().getUser();
|
List<String> cusIds = daoDto.getCusIds();
|
ArrayList<String> tjNumbers = new ArrayList<>();
|
ArrayList<String> errTjh = new ArrayList<>();
|
if (null != cusIds && !cusIds.isEmpty()) {
|
ExecutorService threadPools = Executors.newFixedThreadPool(cusIds.size());
|
for (String cusId : cusIds) {
|
|
// threadPools.execute(new Runnable() {
|
// @Override
|
// public void run() {
|
try {
|
getAjaxResults(cusId);
|
} catch (Exception e) {
|
|
}
|
// }
|
// });
|
}
|
LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
|
wq.in(TjCustomer::getCusIdcard, cusIds);
|
List<Long> list = tjCustomerService.list(wq).stream().map(TjCustomer::getCusId).collect(Collectors.toList());
|
if (!list.isEmpty()) {
|
// ExecutorService threadPool = Executors.newFixedThreadPool(list.size());
|
ThreadPoolTaskExecutor executor = threadPoolConfig.threadPoolTaskExecutor();
|
for (Long aLong : list) {
|
// threadPool.execute(new Runnable() {
|
// @Override
|
// public void run() {
|
// try {
|
// AjaxResult result = getAjaxResult(aLong, sysUser, daoDto.getTjCategory());
|
// threadPool.shutdown();
|
// } catch (IOException e) {
|
// e.printStackTrace();
|
// }
|
// }
|
// });
|
|
Future<AjaxResult> future = executor.submit(new Callable<AjaxResult>() {
|
@Override
|
public AjaxResult call() throws Exception {
|
return getAjaxResult(aLong, sysUser, daoDto.getTjCategory());
|
}
|
});
|
try {
|
AjaxResult result = future.get();
|
String code = result.get("code").toString();
|
if (code.equals("200")) {
|
String tjNumber = result.get("tjNumber").toString();
|
tjNumbers.add(tjNumber);
|
}else {
|
String userId = result.get("userId").toString();
|
errTjh.add(userId);
|
}
|
} catch (InterruptedException | ExecutionException e) {
|
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
e.printStackTrace();
|
}
|
}
|
threadPools.shutdown();
|
}
|
// TODO 因为有体检号会查出空数据 先使用死数据 打印导诊单
|
if (!tjNumbers.isEmpty()) {
|
Map<String,Object> map=new HashMap<>();
|
map.put("tjh",tjNumbers);
|
return AjaxResult.success("操作成功",map);
|
}
|
|
if (!errTjh.isEmpty()){
|
Map<String,Object> map=new HashMap<>();
|
map.put("errtjh",errTjh);
|
return AjaxResult.success("以上人员签到失败",map);
|
}
|
return AjaxResult.error();
|
}
|
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error();
|
}
|
|
@GetMapping("/signOrderInfo")
|
public AjaxResult signOrderInfo(@RequestParam("tjNum") String tjNum){
|
List<Map<String, Object>> djdInfos = tjOrderService.selectDjdInfo(tjNum);
|
Map<String, Object> userInfo = tjOrderService.selectDjdUserInfo(tjNum);
|
HashMap<String, Object> hashMap = new HashMap<>();
|
hashMap.put("djd",djdInfos);
|
hashMap.put("user",userInfo);
|
return AjaxResult.success(hashMap);
|
}
|
|
@Transactional
|
public void getAjaxResults(String cusIdcard) {
|
if (!"".equals(cusIdcard) && cusIdcard != null) {
|
//根据配置调取存储过程 将临时表数据存入预约表2023.12.12
|
final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
|
if ("Y".equals(getInfoFromSqlData)) {
|
//根据身份证号从his查信息
|
LtkjTjPat tjPatByIdCard = testMapper.getTjPatByIdCard(cusIdcard);
|
if (null != tjPatByIdCard) {
|
String fcardNo = tjPatByIdCard.getFcardNo();
|
if (null != fcardNo && !fcardNo.equals("")) {
|
fcardNo = fcardNo.trim();
|
tjPatByIdCard.setFcardNo(fcardNo);
|
} else {
|
fcardNo = cusIdcard.trim();
|
tjPatByIdCard.setFcardNo(fcardNo);
|
}
|
//根据身份证号从数据库拿信息 没有的话保存
|
LtkjTjPat ltkjTjPat = tjvLtkjvtjpatService.getLtkjTjPatByCusIdCard(cusIdcard);
|
if (null == ltkjTjPat) {
|
tjvLtkjvtjpatService.save(tjPatByIdCard);
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
//再根据身份证号写customer表
|
TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(tjPatByIdCard.getFcardNo());
|
if (null == tjCustomer) {
|
//为空的话掉存储过程保存到客户表
|
testMapper.getTjPatByCusId(cusIdcard);
|
LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>();
|
qw.eq(TjCustomer::getCusIdcard, tjPatByIdCard.getFcardNo());
|
TjCustomer customer = tjCustomerService.getOne(qw);
|
customer.setReservationId(customer.getCardId());
|
extracteds(customer);
|
} else {
|
String cardId = tjPatByIdCard.getFcardId();
|
if (null != cardId && !cardId.equals("0")) {
|
int i = tjOrderService.selectTjOrderByCardId(cardId);
|
if (i > 0) {
|
// return AjaxResult.error("不可重复签到");
|
}
|
}
|
tjCustomer.setReservationId(tjCustomer.getCardId());
|
tjCustomer.setCardId(tjPatByIdCard.getFcardId());
|
tjCustomerService.updateById(tjCustomer);
|
extracteds(tjCustomer);
|
}
|
|
}
|
}
|
//end====2023.12.12
|
LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjReservation::getIdCard, cusIdcard);
|
wq.eq(TjReservation::getIsExpire, 2);
|
TjReservation tjReservation = tjReservationService.getOne(wq);
|
if (tjReservation != null) {
|
/* if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) {
|
// return AjaxResult.error("未到预约时间");
|
}
|
if (null != tjReservation.getReservationTime() && DateUtil.endOfDay(tjReservation.getReservationTime()).before(new Date())) {
|
tjReservation.setIsExpire(1);
|
tjReservationService.updateById(tjReservation);
|
// return AjaxResult.error("对不起您的预约已超时请重新预约");
|
}*/
|
try {
|
LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>();
|
qw.eq(TjCustomer::getCusIdcard, cusIdcard);
|
TjCustomer tjCustomer1 = tjCustomerService.getOne(qw);
|
if (tjCustomer1 != null) {
|
tjCustomer1.setTjType(tjReservation.getTjType());
|
tjCustomer1.setCusName(tjReservation.getName());
|
tjCustomer1.setCusSex(Long.valueOf(tjReservation.getSex()));
|
tjCustomer1.setCusBrithday(tjReservation.getBirthday());
|
tjCustomer1.setCusPhone(tjReservation.getPhoe());
|
tjCustomer1.setCusEmail(tjReservation.getEmail());
|
tjCustomer1.setCusAddr(tjReservation.getAddress());
|
tjCustomer1.setCusMarryStatus(String.valueOf(tjReservation.getMarriage()));
|
tjCustomer1.setCusNational(String.valueOf(tjReservation.getNation()));
|
tjCustomer1.setIdType(tjReservation.getIdType());
|
tjCustomer1.setAge(tjReservation.getAge());
|
tjCustomer1.setAgeUnit(tjReservation.getAgeUnit());
|
tjCustomer1.setCareer(tjReservation.getCareer());
|
tjCustomerService.updateById(tjCustomer1);
|
} else {
|
TjCustomer tjCustomer = new TjCustomer();
|
tjCustomer.setCusIdcard(tjReservation.getIdCard());
|
tjCustomer.setCusName(tjReservation.getName());
|
tjCustomer.setCusSex(Long.valueOf(tjReservation.getSex()));
|
tjCustomer.setCusBrithday(tjReservation.getBirthday());
|
tjCustomer.setCusPhone(tjReservation.getPhoe());
|
tjCustomer.setCusEmail(tjReservation.getEmail());
|
tjCustomer.setCusAddr(tjReservation.getAddress());
|
tjCustomer.setCusMarryStatus(String.valueOf(tjReservation.getMarriage()));
|
tjCustomer.setCusNational(String.valueOf(tjReservation.getNation()));
|
tjCustomer.setIdType(tjReservation.getIdType());
|
tjCustomer.setAge(tjReservation.getAge());
|
tjCustomer.setAgeUnit(tjReservation.getAgeUnit());
|
tjCustomer.setCareer(tjReservation.getCareer());
|
tjCustomer.setDwPhone(tjReservation.getDwPhone());
|
tjCustomer.setCardId(tjReservation.getCardId());
|
tjCustomer.setIndexCard(tjReservation.getIndexCard());
|
//截取密码自动生成set进去
|
String substring = cusIdcard.substring(cusIdcard.length() - 6);
|
substring = DigestUtils.md5DigestAsHex(substring.getBytes());
|
tjCustomer.setCusPassword(substring);
|
tjCustomer.setTjType(tjReservation.getTjType());
|
tjCustomerService.save(tjCustomer);
|
}
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
}else {
|
throw new RuntimeException();
|
}
|
|
}else {
|
throw new RuntimeException();
|
}
|
}
|
|
private void extracteds(TjCustomer customer) {
|
//从his表抓数据
|
LtkjMiddleHead pat = testMapper.getMiddleHeadByPartId(customer.getCardId());
|
if (null != pat) {
|
LambdaQueryWrapper<LtkjMiddleHead> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(LtkjMiddleHead::getFeadId, customer.getCardId());
|
headService.remove(wq1);
|
LambdaQueryWrapper<LtkjMiddleDetail> wq0 = new LambdaQueryWrapper<>();
|
wq0.eq(LtkjMiddleDetail::getFheadId, pat.getFeadId());
|
middleDetailService.remove(wq0);
|
List<LtkjMiddleDetail> list = testMapper.getMiddleDetailByFeadId(pat.getFeadId());
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
LtkjMiddleHead o = headService.getMiddleHeadByPartId(customer.getCardId());
|
if (o == null) {
|
headService.save(pat);
|
for (LtkjMiddleDetail ltkjMiddleDetail : list) {
|
middleDetailService.save(ltkjMiddleDetail);
|
}
|
}
|
testMapper.saveTjProByCusId(customer.getCardId(), customer.getCusIdcard());
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
}
|
|
@Transactional
|
public AjaxResult getAjaxResult(Long userId, SysUser sysUser, String tjCategory) throws IOException {
|
|
LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjCustomer::getCusId, userId);
|
TjCustomer tjCustomer = tjCustomerService.getOne(wq);
|
if (tjCustomer == null) return AjaxResult.error("该客户未登记或不存在");
|
TjOrder tjOrder = new TjOrder();
|
Date date = new Date();
|
tjOrder.setCreateTime(date);
|
tjOrder.setUpdateTime(date);
|
tjOrder.setCreateBy(sysUser.getNickName());
|
tjOrder.setUpdateBy(sysUser.getNickName());
|
tjOrder.setUserId(userId);
|
tjOrder.setTjCategory(tjCategory);
|
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) {
|
tjOrder.setReservationId(tjReservation.getId());
|
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.getCompany()) tjOrder.setFirmName(tjReservation.getCompany());
|
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());
|
}
|
tjReservation.setIsExpire(1);
|
tjReservationService.updateById(tjReservation);
|
if (null != tjReservation.getTeamNo()) {
|
tjOrder.setTjType("1");
|
} else{
|
tjOrder.setTjType("2");
|
}
|
|
if (StringUtil.isBlank(tjOrder.getFirmId())) {
|
tjOrder.setFirmId("0");
|
}
|
//
|
// tjReservation.setIsExpire(1);
|
// tjReservationService.updateById(tjReservation);
|
|
//生成体检号
|
// String tjNumber = (sysUser.getUserName() + new SimpleDateFormat("yyMMddHHmmss").format(new Date()));
|
// tjNumber = tjNumber.replaceAll(".{6}$", userId.toString().substring(userId.toString().length() - 6));
|
|
|
//获取拼接前缀
|
String makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix");
|
// String tjNumber = (sysUser.getUserName() + idUtils.getTjNumber());
|
String tjNumber = idUtils.getNewTjNumberRedisLockAndMysql();
|
if (StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber = makeLisTmhPrefix + tjNumber;
|
|
|
// if (redisCache.hasKey(TJH)) {
|
// while (true){
|
// List<String> tjh = redisCache.getCacheList(TJH);
|
// if(tjh.contains(tjNumber)){
|
// tjNumber =(sysUser.getUserName() + IdUtils.getTjNumber());
|
// if (StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber = makeLisTmhPrefix + tjNumber;
|
// }else {
|
// tjh.add(tjNumber);
|
// }
|
// }
|
// }else {
|
// List<String> stringList = tjOrderService.
|
// list(new LambdaQueryWrapper<TjOrder>().select(TjOrder::getTjNumber)).stream().map(TjOrder::getTjNumber).collect(Collectors.toList());
|
// stringList.add(tjNumber);
|
// redisCache.setCacheList(TJH,stringList);
|
// }
|
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());
|
tjOrder.setTjType("1");
|
|
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.setCreateTime(date);
|
tjFlowingWater.setCreateTime(date);
|
tjFlowingWater.setUpdateTime(date);
|
tjFlowingWater.setCreateBy(sysUser.getNickName());
|
tjFlowingWater.setUpdateBy(sysUser.getNickName());
|
// BigDecimal bigDecimal = tbTransitionMapper.sumTbTransitionOrdPriceByTjNum(tjOrder.getTjNumber());
|
BigDecimal bigDecimal = tbTransitionMapper.sumTbTransitionOrdPriceByTjNumIsNull(tjCustomer.getCusIdcard());
|
tjFlowingWater.setCopeWith(bigDecimal);
|
// BigDecimal bigDecimal1 = tbTransitionMapper.sumTbTransitionNowPriceByTjNum(tjOrder.getTjNumber());
|
BigDecimal bigDecimal1 = tbTransitionMapper.sumTbTransitionNowPriceByTjNumIsNull(tjCustomer.getCusIdcard());
|
tjFlowingWater.setPaidIn(bigDecimal1);
|
tjFlowingWater.setDiscount(String.valueOf(10));
|
tjFlowingWater.setPayStasus(1L);
|
tjFlowingWater.setPayType(3L);
|
|
tjFlowingWater.setPayStasus(0L);
|
if ("1".equals(tjOrder.getTjType())) {
|
if (tjReservation.getPayType() == 1) {
|
tjFlowingWater.setPayStasus(3L);
|
}
|
}
|
|
//调用SQL server拿取收费情况
|
//根据配置调取存储过程 将临时表数据存入预约表2023.12.12
|
String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
|
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 = sysUser.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);
|
}
|
}
|
}
|
if (tjFlowingWaterService.save(tjFlowingWater)) {
|
tjOrder.setTjSerialNumber(String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
tjOrderService.updateById(tjOrder);
|
}
|
transitionService.updateTbTransitionTjNumByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber());
|
tjCustomer.setCardId(tjOrder.getTjNumber());
|
tjCustomerService.updateById(tjCustomer);
|
transitionService.updateCardIdByTjNumAndIdCard(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), tjOrder.getTjNumber());
|
tjOrder.setCardId(tjOrder.getTjNumber());
|
tjOrderService.updateById(tjOrder);
|
|
// asyncService.ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater);
|
|
if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
|
// 这是上面个人方法引入数据
|
tjFlowingWater.setPayStasus(1L);
|
tjOrder.setTjFlowingWater(tjFlowingWater);
|
newSaveextracted(tjOrder, tjCustomer, BigDecimal.valueOf(10), sysUser, tjReservation, tjFlowingWater);
|
tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
|
sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
|
List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
|
xdPictureService.saveBatch(xdPictureList);
|
List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
|
addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
|
// return AjaxResult.success(tjNumber);
|
}
|
|
tjCustomer.setCardId("0");
|
tjCustomerService.updateById(tjCustomer);
|
return AjaxResult.success().put("tjNumber", tjNumber);
|
}
|
}
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error().put("userId",userId);
|
}
|
|
|
/**
|
* 修改体检记录
|
*/
|
// @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);
|
}
|
TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(cusId);
|
String cardId = "0";
|
if (null != tjCustomer) {
|
cardId = tjCustomer.getCardId();
|
}
|
if ((null == proIds || proIds.isEmpty()) && (null == packId || packId.equals(""))) {
|
transitionService.deletedTbTransitionByCusId(cusId);
|
if (redisCache.hasKey(cardId + cusId)) {
|
redisCache.deleteObject(cardId + cusId);
|
}
|
if (redisCache.hasKey(cardId + cusId + "cusId")) {
|
redisCache.deleteCacheMapValue(cardId + cusId + "cusId", cardId + 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.isEmpty()) {
|
transitionService.deletedTbTransitionListByCusIdAndPac(cusId, cardId);
|
List<TjPackageProject> ppList = tjPackageProjectService.getTjPackageProjectListByPacId(String.valueOf(pacId));
|
if (null != ppList && !ppList.isEmpty()) {
|
String string = transitionService.panduantaocanshifouchongfu(cusId, pacId);
|
if (!StringUtils.isBlank(string)) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error("操作失败! 以下项目已存在: " + string);
|
}
|
transitionService.saveRedisTransitionByPacId(cusId, cardId, pacId);
|
|
//补差价
|
List<Map<String, Object>> cjMaps = groupingProService.huoquxiangmuchajia(pacId.toString(), cusId);
|
if (null != cjMaps && !cjMaps.isEmpty()) {
|
for (Map<String, Object> cjMap : cjMaps) {
|
transitionService.buxiangmuchajia(cusId, pacId.toString(), cjMap.get("xmid").toString(), new BigDecimal(cjMap.get("cj").toString()));
|
}
|
}
|
|
}
|
}
|
}
|
|
//单项
|
if (null != proIds && !proIds.isEmpty()) {
|
//异步保存数据库表
|
for (Long proId : proIds) {
|
TjProject project = projectService.selectTjProjectByProId(proId);
|
if (null != project) {
|
List<TbTransition> transitionList = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId));
|
if (null == transitionList || transitionList.isEmpty()) {
|
transitionService.saveRedisTransitionByProId(cusId, cardId, proId);
|
}
|
}
|
}
|
}
|
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);
|
}
|
TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(cusId);
|
String cardId = "0";
|
if (null != tjCustomer) {
|
cardId = tjCustomer.getCardId();
|
}
|
List<Map<String, Object>> 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<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(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(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) {
|
// 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 = "体检签离")
|
@Transactional
|
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();
|
TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber);
|
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 {
|
if (null != tjOrder) {
|
tjOrder.setFinishTime(new Date());
|
tjOrder.setStatus(TjConstants.TJ_CONFIRM);
|
tjOrderService.updateById(tjOrder);
|
}
|
}
|
}
|
}
|
remarkService.updateRemark(tjNumber);
|
asyncService.tjGoutAsync(domainVos, sysUser, list);
|
|
TjCustomer customer = tjCustomerService.selectTjCustomerByCusId(tjOrder.getUserId());
|
customer.setCardId("0");
|
tjCustomerService.updateById(customer);
|
/* String config = configService.selectConfigByKey("sfkqdyhis");
|
if(null !=config && config.equals("Y")){
|
final String date = DateUtil.format(tjOrder.getCreateTime(), "yyyy-MM-dd HH:mm:ss");
|
OutpinimpapplyDto dto=new OutpinimpapplyDto();
|
dto.setHisRegistrationId(tjOrder.getCardId());
|
dto.setMzzdid(1);
|
dto.setSqysbm("00029");
|
dto.setMzksbm("0101");
|
dto.setFbrq(date);
|
dto.setZdrq(date);
|
dto.setCzybm("00029");
|
dto.setCzyksbm("0101");
|
dto.setZs("健康查体");
|
dto.setBs("不详");
|
dto.setClyz("");
|
dto.setJws("");
|
dto.setTgjc("");
|
dto.setGms("");
|
dto.setJbbm("Z00.001");
|
dto.setJbbm1("");
|
dto.setJbbm2("");
|
dto.setFzbz("1");
|
dto.setHzqx("6");
|
dto.setSfqc("0");
|
dto.setQchs("");
|
dto.setSfqj("0");
|
dto.setJzqk(9);
|
controller.Outpinimpapply(dto);
|
}*/
|
return AjaxResult.success("签离成功!");
|
} else {
|
remarkService.updateRemark(tjNumber);
|
return getAjaxResult(tjNumber);
|
}
|
}
|
|
|
/**
|
* 签离
|
*/
|
@GetMapping("/goOut")
|
@ApiOperation(value = "签离")
|
@Transactional
|
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("订单不能核销");
|
}
|
Date date = new Date();
|
order.setOrderStatus(OrderUtil.STATUS_SHIP.longValue());
|
order.setShipTime(date);
|
order.setConfirmTime(date);
|
|
MallCheckLog checkLog = new MallCheckLog();
|
String s1 = SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmssSSS").format(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(date);
|
checkLog.setShipSn("HX" + s1);
|
mallCheckLogService.save(checkLog);
|
mallOrderService.updateById(order);
|
return AjaxResult.success();
|
}
|
|
|
private List<Map<String, Object>> getMaps(String cusId, String cardId) {
|
|
List<TbTransition> transitionList = null;
|
transitionList = transitionService.getTbTransitionListByCusId(cusId, cardId);
|
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();
|
map.put("proPrantId", entry.getKey().toString());
|
if (null != pacId) {
|
TjPackage aPackage = tjPackageService.getById(entry.getValue().get(0).getPacId());
|
if (null != aPackage) {
|
map.put("tjCategory", aPackage.getTjCategory());
|
map.put("pacName", aPackage.getPacName());
|
TjProject tjProject = projectService.getById(entry.getKey());
|
map.put("ordPrice", tjProject.getProPrice());
|
map.put("nowPrice", transitionService.getTbTransitionDxPriceByPac(cusId, entry.getKey(), cardId, pacId));
|
} else {
|
TjDwGrouping grouping = dwGroupingService.getById(pacId);
|
map.put("tjCategory", null);
|
map.put("pacName", grouping.getGroupingName());
|
TjProject tjProject = projectService.getById(entry.getKey());
|
map.put("ordPrice", tjProject.getProPrice());
|
map.put("nowPrice", transitionService.getTbTransitionDxPriceByPac(cusId, entry.getKey(), cardId, pacId));
|
}
|
|
} else {
|
map.put("tjCategory", null);
|
map.put("pacName", "单项");
|
List<TbTransition> tbTransitionList = entry.getValue();
|
if (null != tbTransitionList && !tbTransitionList.isEmpty()) {
|
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());
|
}
|
map.put("ordPrice", money1);
|
map.put("nowPrice", money2);
|
}
|
}
|
map.put("parentName", projectService.getById(entry.getKey()).getProName());
|
map.put("list", entry.getValue());
|
list.add(map);
|
}
|
return list;
|
}
|
|
|
private List<Map<String, Object>> getMap(String cusId, String cardId, List<TbTransition> transitionList) {
|
|
// List<TbTransition> transitionList = null;
|
// if (redisCache.hasKey(cardId + cusId)) {
|
// transitionList = redisCache.getCacheList(cardId + cusId);
|
// } else {
|
// transitionList = transitionService.getTbTransitionListByCusId(cusId, cardId);
|
// }
|
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();
|
map.put("proPrantId", entry.getKey().toString());
|
if (null != pacId) {
|
TjPackage aPackage = tjPackageService.getById(entry.getValue().get(0).getPacId());
|
map.put("tjCategory", aPackage.getTjCategory());
|
map.put("pacName", aPackage.getPacName());
|
TjProject tjProject = projectService.getById(entry.getKey());
|
// TjPackageProject project = tjPackageProjectService.getOne(new LambdaQueryWrapper<TjPackageProject>().eq(TjPackageProject::getPacId, pacId)
|
// .eq(TjPackageProject::getProId, entry.getKey()));
|
map.put("ordPrice", tjProject.getProPrice());
|
// if (null != project) {
|
// map.put("nowPrice", project.getPriceNow());
|
// } else {
|
// map.put("nowPrice", tjProject.getProPrice());
|
// }
|
map.put("nowPrice", tjProject.getProPrice());
|
} else {
|
map.put("tjCategory", null);
|
map.put("pacName", "单项");
|
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());
|
}
|
map.put("ordPrice", money1);
|
map.put("nowPrice", money2);
|
}
|
}
|
map.put("parentName", projectService.getById(entry.getKey()).getProName());
|
map.put("list", entry.getValue());
|
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) {
|
TjCustomer customer = tjCustomerService.selectTjCustomerByCusId(tjOrder.getUserId());
|
customer.setCardId("0");
|
tjCustomerService.updateById(customer);
|
|
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));
|
}
|
|
@GetMapping("/getTransitionInfo")
|
@ApiOperation(value = "根据体检号获取汇总和明细的数据")
|
public AjaxResult getTransitionInfo(@RequestParam("tjNumber") String tjNumber) {
|
QueryWrapper<TbTransition> wrapper = new QueryWrapper<>();
|
wrapper.select("parent_pro_id", "parent_pro_name", "sum(now_price) as ord_price")
|
.eq("tj_num", tjNumber)
|
.groupBy("parent_pro_id");
|
List<TbTransition> list = transitionService.list(wrapper);
|
List<Long> parentProIds = list.stream().map(item -> item.getParentProId()).collect(Collectors.toList());
|
LambdaQueryWrapper<TjProject> projectQueryWrapper = new LambdaQueryWrapper<>();
|
projectQueryWrapper.in(TjProject::getProId, parentProIds);
|
List<TjProject> projects = projectService.list(projectQueryWrapper);
|
JSONArray huiZong = JSONUtil.createArray();
|
int index = 1;
|
for (TjProject project : projects) {
|
LambdaQueryWrapper<SysDept> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(SysDept::getDeptId, project.getDeptId());
|
SysDept dept = sysDeptService.getOne(queryWrapper);
|
for (TbTransition tbTransition : list) {
|
if (tbTransition.getParentProId().toString().equals(project.getProId().toString())) {
|
JSONObject obj = JSONUtil.createObj();
|
obj.putOpt("index", index++);
|
obj.putOpt("parent_pro_name", tbTransition.getParentProName());
|
obj.putOpt("price", tbTransition.getOrdPrice());
|
obj.putOpt("ks", dept.getDeptName());
|
huiZong.add(obj);
|
}
|
}
|
}
|
wrapper = new QueryWrapper<>();
|
wrapper.eq("tj_num", tjNumber);
|
list = transitionService.list(wrapper);
|
JSONArray info = JSONUtil.createArray();
|
index = 1;
|
for (TbTransition tbTransition : list) {
|
JSONObject obj = JSONUtil.createObj();
|
obj.putOpt("index", index++);
|
obj.putOpt("parent_pro_name", tbTransition.getParentProName());
|
obj.putOpt("pro_name", tbTransition.getProName());
|
BigDecimal ordPrice = tbTransition.getOrdPrice();
|
obj.putOpt("zongjia", ordPrice);
|
QueryWrapper<TjProject> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("pro_id", tbTransition.getProId());
|
TjProject tjProject = projectService.getOne(queryWrapper);
|
Integer num = tjProject.getSl();
|
obj.putOpt("num", num);
|
BigDecimal price = ordPrice.divide(new BigDecimal(num));
|
obj.putOpt("danjia", price);
|
Date createTime = tbTransition.getCreateTime();
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
obj.putOpt("time", dateFormat.format(createTime));
|
info.put(obj);
|
}
|
HashMap<String, Object> map = new HashMap<>();
|
map.put("huizong", huiZong);
|
map.put("info", info);
|
return AjaxResult.success().put("data", map);
|
}
|
|
|
public void ttextracted(TjOrder tjOrder, TjCustomer tjCustomer, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
|
|
tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId()));
|
boolean b = tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(),
|
String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
|
// if (!b) {
|
// List<TjGroupingPro> proList = groupingProService.list(new LambdaQueryWrapper<TjGroupingPro>().eq(TjGroupingPro::getGroupingId, tjOrder.getGroupId()));
|
// if (null != proList && !proList.isEmpty()) {
|
// for (TjGroupingPro groupingPro : proList) {
|
// TjOrderDetail detail = new TjOrderDetail();
|
// TjProject tjProject = projectService.selectTjProjectByProId(Long.valueOf(groupingPro.getProId()));
|
// detail.setIsSampling(String.valueOf(tjProject.getIsSampling()));
|
// detail.setOrderId(tjOrder.getOrderId());
|
// detail.setProId(Long.valueOf(groupingPro.getProId()));
|
// detail.setTjStatus(0L);
|
// detail.setCreateBy(sysUser.getNickName());
|
// detail.setCreateTime(new Date());
|
// detail.setUpdateBy(sysUser.getNickName());
|
// detail.setUpdateTime(new Date());
|
// detail.setCreateId(String.valueOf(sysUser.getUserId()));
|
// detail.setUpdateId(String.valueOf(sysUser.getUserId()));
|
// tjOrderDetailService.save(detail);
|
// }
|
// List<String> list = proList.stream().map(TjGroupingPro::getProId).collect(Collectors.toList());
|
// List<TjProject> projectList = projectService.list(new LambdaQueryWrapper<TjProject>().in(TjProject::getProParentId, list));
|
// for (TjProject project : projectList) {
|
// TjOrderDetail detail = new TjOrderDetail();
|
// detail.setOrderId(tjOrder.getOrderId());
|
// detail.setProId(project.getProId());
|
// detail.setTjStatus(0L);
|
// detail.setCreateBy(sysUser.getNickName());
|
// detail.setCreateTime(new Date());
|
// detail.setUpdateBy(sysUser.getNickName());
|
// detail.setUpdateTime(new Date());
|
// detail.setCreateId(String.valueOf(sysUser.getUserId()));
|
// detail.setUpdateId(String.valueOf(sysUser.getUserId()));
|
// //获取该项目的默认值赋值给结果
|
// if (null != project.getProDefault()) {
|
// detail.setProResult(project.getProDefault());
|
// } else {
|
// detail.setProResult(null);
|
// }
|
// detail.setIsSampling(String.valueOf(project.getIsSampling()));
|
//
|
// tjOrderDetailService.save(detail);
|
// }
|
// }
|
// }
|
|
//添加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()));
|
remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
|
}
|
}
|
if (tjFlowingWater.getPayStasus() == 1) {
|
tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
|
sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
|
}
|
if (tjFlowingWater.getDiscount() == null) {
|
transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(), new BigDecimal(10), tjOrder.getTjNumber());
|
} else {
|
transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(), BigDecimal.valueOf(Long.parseLong(tjFlowingWater.getDiscount())), tjOrder.getTjNumber());
|
}
|
|
tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
|
// List<TjOrderDetail> list = tjOrderDetailService.getTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()));
|
// if (list != null) {
|
// for (TjOrderDetail tjOrderDetail : list) {
|
// TjProject tjProject = projectService.getById(tjOrderDetail.getProId());
|
// if(tjProject==null){
|
// continue;
|
// }
|
// tjOrderDetail.setProject(tjProject);
|
// if (tjProject.getProParentId() == 0) {
|
// TjOrderRemark tjOrderRemark = new TjOrderRemark();
|
// tjOrderRemark.setProId(tjProject.getProId());
|
// tjOrderRemark.setProName(tjProject.getProName());
|
// tjOrderRemark.setDeptId(tjProject.getDeptId());
|
// tjOrderRemark.setTjNumber(tjOrder.getTjNumber());
|
// tjOrderRemark.setCreateBy(sysUser.getNickName());
|
// tjOrderRemark.setCreateTime(new Date());
|
// tjOrderRemark.setUpdateBy(sysUser.getNickName());
|
// tjOrderRemark.setUpdateTime(new Date());
|
// tjOrderRemark.setCreateId(String.valueOf(sysUser.getUserId()));
|
// tjOrderRemark.setUpdateId(String.valueOf(sysUser.getUserId()));
|
// orderRemarkService.save(tjOrderRemark);
|
// }
|
// if ("1".equals(tjOrder.getTjType())) {
|
// if (null != tjReservation && tjReservation.getPayType() == 1) {
|
// tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
// }
|
// }
|
// if(tjFlowingWater.getPayStasus()==1){
|
// tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
// }
|
// tjOrderDetailService.updateById(tjOrderDetail);
|
// }
|
// }
|
}
|
|
@PostMapping("/heXiaoByIds")
|
@ApiOperation(value = "核收报告——————总检审核通过后可以核销,核收后才能打印")
|
@Transactional
|
@RepeatSubmit
|
public AjaxResult heXiaoByIds(@RequestBody List<String> orderIds) {
|
if (null != orderIds && !orderIds.isEmpty()) {
|
Date date = new Date();
|
for (String orderId : orderIds) {
|
TjOrder byId = tjOrderService.getById(orderId);
|
if (null != byId) {
|
|
/*if (byId.getReportTime() == null) {
|
LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1);
|
tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0);
|
TjReportTemplate reportTemplate = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper);
|
if ("报表".equals(reportTemplate.getPrint())) {
|
TjReport tjReport = new TjReport();
|
tjReport.setTjNumber(String.valueOf(byId.getTjNumber()));
|
tjReport.setPath(reportTemplate.getUrl() + "?tjNum=" + byId.getTjNumber());
|
tjReport.setType("体检报告");
|
tjReport.setPrint("报表");
|
tjReportService.save(tjReport);
|
//修改order表中的打印报告时间为当前时间
|
LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>();
|
updateWrapper.eq(TjOrder::getTjNumber, byId.getTjNumber());
|
updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END);
|
tjOrderService.update(updateWrapper);
|
}
|
|
LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjCustomer::getCusId, byId.getUserId());
|
TjCustomer tjCustomer = tjCustomerService.getOne(wq1);
|
LambdaQueryWrapper<TjReportTemplate> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjReportTemplate::getFlag, "4");
|
wrapper.eq(TjReportTemplate::getOpen, "1");
|
TjReportTemplate zongJianYiShiQianMing = reportTemplateService.getOne(wrapper);
|
try {
|
shengchengbgmoban(byId.getTjNumber(), byId, tjCustomer, reportTemplate, zongJianYiShiQianMing);
|
byId.setStatus(TjConstants.TJ_END);
|
} catch (Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
e.printStackTrace();
|
// 调用撤销
|
logger.error("生成报告异常");
|
return AjaxResult.error("生成报告异常,核收失败");
|
}
|
}*/
|
byId.setHeshouStatus(1);
|
byId.setHeshouDoctor(UserHoder.getLoginUser().getUserId());
|
byId.setHeshouTime(date);
|
final boolean b = tjOrderService.updateById(byId);
|
if (!b) {
|
return AjaxResult.error("核收失败");
|
}
|
}
|
}
|
}
|
return AjaxResult.success("核收成功");
|
}
|
|
|
public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate, TjReportTemplate zongJianYiShiQianMing) throws Exception {
|
|
AjaxResult ajaxResult = hisPDFUtil.hisPDFNew2(tjOrder, tjCustomer, reportTemplate, zongJianYiShiQianMing);
|
if (!ajaxResult.get("code").toString().equals("200")) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
} else {
|
Long userId = tjCustomer.getCusId();
|
String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_报告.pdf";
|
TjReport tjReport = new TjReport();
|
tjReport.setTjNumber(String.valueOf(tjNumber));
|
tjReport.setPath(urlValue + outputFileName1);
|
String outputPath1 = value + File.separator;
|
// String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
|
// tjReport.setReport(pdfBinary);
|
tjReport.setType("体检报告");
|
tjReport.setPrint("pdf");
|
tjReportService.save(tjReport);
|
}
|
return ajaxResult;
|
}
|
|
@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());
|
if (null != order) {
|
List<Map<String, Object>> list = new ArrayList<>();
|
if (order.getPacId().equals("o")) {
|
List<Long> longList = remarkService.getTjProIdsByTjNum(order.getTjNumber());
|
for (Long aLong : longList) {
|
Map<String, Object> 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<Long> longList = remarkService.getTjProIdsByTjNumAndPacIc(order.getTjNumber(), order.getPacId());
|
TjPackage aPackage = tjPackageService.getById(order.getPacId());
|
for (Long aLong : longList) {
|
Map<String, Object> 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<Long> longList1 = remarkService.getTjProIdsByTjNumAndPacIc(order.getTjNumber(), order.getPacId());
|
for (Long aLong : longList1) {
|
Map<String, Object> 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("暂无历史记录");
|
}
|
|
|
@GetMapping("/getHistryTjOrderByCusId")
|
@ApiOperation(value = "根据客户id查看历史体检记录")
|
@Transactional
|
public AjaxResult getHistryTjOrderByCusId(@RequestParam String cusId) {
|
TjCustomer tjCustomer = tjCustomerService.getById(cusId);
|
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()));
|
|
//查流水
|
BigDecimal res = new BigDecimal(0);
|
LambdaQueryWrapper<TjFlowingWater> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TjFlowingWater::getOrderId, order.getOrderId());
|
final List<TjFlowingWater> list1 = tjFlowingWaterService.list(wqq);
|
if (list1 != null) {
|
for (TjFlowingWater tjFlowingWater : list1) {
|
if (tjFlowingWater != null && tjFlowingWater.getPaidIn() != null) {
|
res.add(tjFlowingWater.getPaidIn());
|
}
|
}
|
}
|
historyTjOrder.setPaidIn(res);
|
list.add(historyTjOrder);
|
}
|
}
|
return AjaxResult.success(list);
|
}
|
|
|
@GetMapping("/revokeTjOrderByTjNum")
|
@ApiOperation(value = "根据客户体检号撤销体检记录")
|
@Transactional
|
public AjaxResult revokeTjOrderByTjNum(@RequestParam @ApiParam(value = "体检号") String tjNum) {
|
|
TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
|
if (null != order) {
|
// String payByTjNum = tjOrderService.isPayByTjNum(String.valueOf(order.getOrderId()));
|
// if (null != payByTjNum) {
|
// return AjaxResult.error("该用户已收费不可撤销签到!");
|
// }
|
if (null != order.getFinishTime()) return AjaxResult.error("该人员已签离,不可撤销!!!");
|
|
Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
|
|
String s = configService.selectConfigByKey("is_request_common_his_api");
|
// if (null != s && s.equals("Y") && "2".equals(order.getTjType())) {
|
if (null != s && s.equals("Y") && !useLisAndPacsRegister) {
|
String apiUrl = configService.selectConfigByKey("common_api_url");
|
String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
|
|
ArrayList<TjFlowingWater> weizhifu = new ArrayList<>();
|
ArrayList<TjFlowingWater> yizhifu = new ArrayList<>();
|
LambdaQueryWrapper<TjFlowingWater> wrapper1 = new LambdaQueryWrapper<>();
|
wrapper1.eq(TjFlowingWater::getOrderId, order.getOrderId());
|
wrapper1.orderByDesc(TjFlowingWater::getJxbz);
|
List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper1);
|
LambdaQueryWrapper<TjCustomer> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjCustomer::getCusId, order.getUserId());
|
TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
|
|
for (TjFlowingWater water : list) {
|
if (water.getPayStasus() == 0L) {
|
weizhifu.add(water);
|
} else {
|
yizhifu.add(water);
|
}
|
}
|
|
AjaxResult error = zuofeiWeiZhifu(weizhifu, tjCustomer, apiUrl, hospbm, order, true, tjNum);
|
if (error != null && !error.get("code").toString().equals("200")) return error;
|
|
AjaxResult error1 = zuofeiYiZhifu(yizhifu, tjCustomer, order, apiUrl, hospbm, false, tjNum);
|
if (error1 != null && !error.get("code").toString().equals("200")) return error1;
|
} else {
|
tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
|
tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
|
remarkService.deletedOrderRemarkByTjNum(tjNum);
|
tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
|
transitionService.deletedTbTransitionByTjNum(tjNum);
|
ycxmService.delOrderYcXmJyByTjh(tjNum);
|
|
TjCustomer customer = tjCustomerService.getById(order.getUserId());
|
customer.setCardId("0");
|
tjCustomerService.updateById(customer);
|
xdPictureService.deleteTjXdPictureBytjNum(tjNum);
|
tjSamplingMapper.deleteByTjNumAndCusId(tjNum, order.getUserId());
|
}
|
|
String configByKey = configService.selectConfigByKey("sfkqdyhis");
|
if (configByKey.equals("Y")) {
|
|
HashMap<String, Object> hisRequestParams = new HashMap<>();
|
hisRequestParams.put("patientId", order.getCardId());
|
AjaxResult queryPay = hisApiGetMethodService.getHISDataNew("QueryPay", hisRequestParams);
|
if (Integer.parseInt(queryPay.get("code").toString()) == 200) {
|
List<Map<String, String>> data = (List<Map<String, String>>) queryPay.get("data");
|
|
BigDecimal cateFeeAll = BigDecimal.ZERO;
|
for (Map<String, String> datum : data) {
|
BigDecimal cateFee = new BigDecimal(datum.get("CateFee"));
|
cateFeeAll = cateFeeAll.add(cateFee);
|
}
|
if (cateFeeAll.compareTo(BigDecimal.ZERO) != 0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error("撤销失败,该人员已缴费,请先退费!");
|
}
|
}
|
boolean zfHisApiMethods = hisApiMethod.ZfHisApiMethods(null, order, lisApiMethod.isUseLisAndPacsRegister(order));
|
if (zfHisApiMethods) {
|
return AjaxResult.success("撤销成功");
|
} else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error("撤销失败,调用作废出现失败");
|
}
|
|
}
|
}
|
return AjaxResult.success("签到记录不存在!");
|
}
|
|
|
@GetMapping("/getCusTomterListByCompId")
|
@ApiOperation(value = "获取单位id体检人信息接口")
|
public AjaxResult getCusTomterListByCompId(@RequestParam(required = false) @ApiParam(value = "单位id") String compId,
|
@RequestParam(required = false) @ApiParam(value = "名字") String name,
|
@RequestParam(required = false) @ApiParam(value = "部门id") String deptId,
|
@RequestParam(required = false) @ApiParam(value = "预约时间") Date reservationTime,
|
@RequestParam(defaultValue = "1") Integer page,
|
@RequestParam(defaultValue = "10") Integer pageSize) {
|
Page<TjReservation> pages = new Page<>(page, pageSize);
|
LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
|
if (null != compId) wq.eq(TjReservation::getCompanyId, compId);
|
if (null != name) wq.eq(TjReservation::getName, name);
|
if (null != deptId) wq.eq(TjReservation::getDepartment, deptId);
|
if (null != reservationTime)
|
wq.between(TjReservation::getReservationTime, DateUtil.beginOfDay(reservationTime), DateUtil.endOfDay(reservationTime));
|
List<TjReservation> reservationList = tjReservationService.list(wq);
|
if (null != reservationList && !reservationList.isEmpty()) {
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.in(TjOrder::getReservationId, reservationList.stream().map(TjReservation::getId).collect(Collectors.toList()));
|
List<TjOrder> orderList = tjOrderService.list(wq1);
|
if (null != orderList && !orderList.isEmpty()) {
|
LambdaQueryWrapper<TjReservation> wq3 = new LambdaQueryWrapper<>();
|
wq3.in(TjReservation::getId, orderList.stream().map(TjOrder::getReservationId).collect(Collectors.toList()));
|
// wq3.eq(TjReservation::getTeamNo,reservationList.get(0).getTeamNo());
|
Page<TjReservation> page1 = tjReservationService.page(pages, wq3);
|
return AjaxResult.success(page1);
|
|
}
|
}
|
return AjaxResult.success("暂无信息");
|
}
|
|
|
@PostMapping("/plRevokeTjOrderByTjNum")
|
@ApiOperation(value = "根据客户体检号批量撤销体检记录")
|
@Transactional
|
public AjaxResult plRevokeTjOrderByTjNum(@RequestBody @ApiParam(value = "预约主键id集合") List<String> reservationIds) {
|
if (null != reservationIds && !reservationIds.isEmpty()) {
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.in(TjOrder::getReservationId, reservationIds);
|
List<TjOrder> orderList = tjOrderService.list(wq1);
|
if (null != orderList && !orderList.isEmpty()) {
|
for (TjOrder order : orderList) {
|
// TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
|
if (null != order) {
|
// String payByTjNum = tjOrderService.isPayByTjNum(String.valueOf(order.getOrderId()));
|
// if (null != payByTjNum) {
|
// return AjaxResult.success("该用户已收费不可撤销签到!");
|
// }
|
tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
|
tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
|
remarkService.deletedOrderRemarkByTjNum(order.getTjNumber());
|
tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
|
transitionService.deletedTbTransitionByTjNum(order.getTjNumber());
|
// transitionService.updateTbTransitionByTjNum(order.getTjNumber());
|
}
|
}
|
for (String id : reservationIds) {
|
TjReservation reservation = tjReservationService.getById(id);
|
if (null != reservation) {
|
reservation.setIsExpire(2);
|
tjReservationService.updateById(reservation);
|
}
|
}
|
}
|
return AjaxResult.success("撤销成功!!!");
|
}
|
return AjaxResult.error("请选择要撤销的人员!");
|
}
|
|
@PostMapping("makeTjPDF")
|
@ApiOperation(value = "批量生成PDF")
|
public AjaxResult makeTjPDF(@RequestBody List<String> reservations) {
|
QueryWrapper<TjOrder> queryWrapper = new QueryWrapper<>();
|
queryWrapper.in("reservation_id", reservations);
|
List<TjOrder> tjNumbers = tjOrderService.list(queryWrapper);
|
Map<String, Object> map = null;
|
try {
|
map = PDFDocumentUtil.getDocument();
|
Document document = (Document) map.get("document");
|
for (int i = 0; i < tjNumbers.size(); i++) {
|
String tjNumber = tjNumbers.get(i).getTjNumber();
|
try {
|
List<Map<String, Object>> djdInfos = tjOrderService.selectDjdInfo(tjNumber);
|
Map<String, Object> userInfo = tjOrderService.selectDjdUserInfo(tjNumber);
|
LocalDateTime tjsj = (LocalDateTime) userInfo.get("tjsj");
|
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
|
String time = null;
|
if (tjsj != null) {
|
time = dateFormat.format(tjsj);
|
}
|
PDFDocumentUtil.makeUserInfoTable(document, (String) userInfo.get("tjname"), (String) userInfo.get("sex")
|
, (String) userInfo.get("tjh"), (String) userInfo.get("lxdh"), (String) userInfo.get("tjname"), time);
|
PDFDocumentUtil.makeTjInfo(document, djdInfos);
|
// 多条则换页
|
if (i + 1 < tjNumbers.size()) {
|
document.newPage();
|
}
|
} catch (DocumentException | IOException e) {
|
e.printStackTrace();
|
}
|
}
|
document.close();
|
ByteArrayOutputStream outputStream = (ByteArrayOutputStream) map.get("stream");
|
String encodeToString = java.util.Base64.getEncoder().encodeToString(outputStream.toByteArray());
|
return AjaxResult.success().put("file", encodeToString);
|
} catch (IOException | DocumentException e) {
|
e.printStackTrace();
|
return AjaxResult.error(e.getMessage());
|
}
|
}
|
|
|
@GetMapping("/delTbBycusCardIdAndProId")
|
@ApiOperation(value = "根据客户身份证号和项目父项id删除临时表数据")
|
@Transactional
|
public AjaxResult delTbBycusCardIdAndProId(@RequestParam @ApiParam(value = "身份证号") String cusCardId,
|
@RequestParam @ApiParam(value = "父项id") String proId) {
|
|
if (transitionService.delTbBycusCardIdAndProId(cusCardId, proId)) {
|
return AjaxResult.success();
|
}
|
return AjaxResult.error("记录不存在!");
|
}
|
|
|
@GetMapping("/revokeTjOrderByTjCardId")
|
@ApiOperation(value = "根据就诊号撤销申请记录")
|
@Transactional
|
public AjaxResult revokeTjOrderByTjCardId(@RequestParam @ApiParam(value = "就诊号") String cardId) {
|
|
LambdaQueryWrapper<TjOrder> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(TjOrder::getCardId, cardId);
|
TjOrder order = tjOrderService.getOne(queryWrapper);
|
order.setCardId(cardId);
|
String configByKey = configService.selectConfigByKey("sfkqdyhis");
|
if (configByKey.equals("Y")) {
|
HashMap<String, Object> map = new HashMap<>();
|
map.put("cardtype", "4");
|
map.put("input", order.getCardId());
|
LocalDate currentDate = LocalDate.now();
|
LocalDateTime startOfDay = currentDate.atStartOfDay();
|
LocalDateTime nineteenOClock = currentDate.atTime(LocalTime.of(19, 0));
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
String ksrq = startOfDay.format(formatter);
|
String jsrq = nineteenOClock.format(formatter);
|
map.put("ksrq", ksrq);
|
map.put("jsrq", jsrq);
|
AjaxResult result = hisApiGetMethodService.getHISDataNew("Getoutpatientcostinfo", map);
|
if (Integer.parseInt(String.valueOf(result.get("code"))) == 200) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error("撤销失败,门诊患者费用清单信息不为空");
|
} else {
|
boolean zfHisApiMethods = hisApiMethod.ZfHisApiMethods(null, order, lisApiMethod.isUseLisAndPacsRegister(order));
|
if (zfHisApiMethods) {
|
return AjaxResult.success("撤销成功", map);
|
} else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error("撤销失败,调用作废出现失败");
|
}
|
}
|
}
|
return AjaxResult.success();
|
}
|
|
|
@GetMapping("/revokeTjOrderByTjh")
|
@ApiOperation(value = "强制撤销接口根据就体检号删除记录")
|
@Transactional
|
public AjaxResult revokeTjOrderByTjh(@RequestParam @ApiParam(value = "体检号") String tjNum) {
|
|
TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
|
if (null != order) {
|
// String payByTjNum = tjOrderService.isPayByTjNum(String.valueOf(order.getOrderId()));
|
// if (null != payByTjNum) {
|
// return AjaxResult.error("该用户已收费不可撤销签到!");
|
// }
|
//这里删除的是这个人所有项目包括补录项目
|
tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
|
tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
|
remarkService.deletedOrderRemarkByTjNum(tjNum);
|
tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
|
transitionService.deletedTbTransitionByTjNum(tjNum);
|
tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId());
|
}
|
return AjaxResult.success();
|
}
|
|
|
@GetMapping("/getBlproByTjh")
|
@ApiOperation(value = "根据体检号获取补录项目记录")
|
@Transactional
|
public AjaxResult getBlproByTjh(@RequestParam @ApiParam(value = "体检号") String tjNum) {
|
|
TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
|
if (null != order) {
|
LambdaQueryWrapper<TjProBl> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjProBl::getTjh, tjNum);
|
List<TjProBl> blList = blService.list(wq);
|
if (null != blList && !blList.isEmpty()) {
|
for (TjProBl bl : blList) {
|
LambdaQueryWrapper<TjOrderRemark> wqr = new LambdaQueryWrapper<>();
|
wqr.eq(TjOrderRemark::getJxbz, bl.getBldh());
|
List<TjOrderRemark> remarkList = remarkService.list(wqr);
|
if (null != remarkList && !remarkList.isEmpty()) {
|
List<Long> collect = remarkList.stream().map(TjOrderRemark::getProId).collect(Collectors.toList());
|
LambdaQueryWrapper<TjProject> wqp = new LambdaQueryWrapper<>();
|
wqp.in(TjProject::getProId, collect);
|
List<TjProject> projectList = projectService.list(wqp);
|
for (TjProject project : projectList) {
|
project.setChildren(projectService.getTjProjectListBySoneId(String.valueOf(project.getProId())));
|
}
|
bl.setProjectList(projectList);
|
}
|
}
|
return AjaxResult.success(blList);
|
}
|
return AjaxResult.success(null);
|
}
|
return AjaxResult.error("暂无体检记录");
|
}
|
|
|
@PostMapping("/revokeBlProByBldhAndTjh")
|
@ApiOperation(value = "根据补录单号和体检号删除记录")
|
// @Transactional
|
public AjaxResult revokeBlProByBldhAndTjh(@RequestBody TjProBlDto dto) {
|
|
if (null == dto.getBldhs() || dto.getBldhs().isEmpty()) {
|
log.info("请选择要撤销的补录项目");
|
return AjaxResult.error("请选择要撤销的补录项目");
|
}
|
|
TjOrder order = tjOrderService.getOrderByTjNum(dto.getTjh());
|
if (null != order) {
|
String configByKey = configService.selectConfigByKey("sfkqdyhis");
|
if (null != configByKey && configByKey.equals("Y")) {
|
log.info("dto的数据是" + JSONUtil.toJsonStr(dto));
|
HashMap<String, Object> hisRequestParams = new HashMap<>();
|
hisRequestParams.put("patientId", order.getCardId());
|
AjaxResult queryPay = hisApiGetMethodService.getHISDataNew("QueryPay", hisRequestParams);
|
log.info("queryPay ->{}", JSONUtil.toJsonStr(queryPay));
|
if (Integer.parseInt(queryPay.get("code").toString()) == 200) {
|
List<Map<String, String>> data = (List<Map<String, String>>) queryPay.get("data");
|
log.info("data的数据是" + JSONUtil.toJsonStr(data));
|
// BigDecimal cateFeeAll = BigDecimal.ZERO;
|
// List<String> advIds = new ArrayList<>();
|
List<LtkjJianchajianyanTree> buLuXmXinXi = tjOrderService.getBuLuXmXinXi(dto.getBldhs(), order.getCardId());
|
log.info("buLuXmXinXi的值为:==========" + buLuXmXinXi);
|
if (null != buLuXmXinXi && !buLuXmXinXi.isEmpty()) {
|
for (Map<String, String> datum : data) {
|
for (LtkjJianchajianyanTree tree : buLuXmXinXi) {
|
String advId = datum.get("Adv_Id").split("_")[1];
|
log.info("advid的值为:==========" + advId);
|
log.info("tree的值为:==========" + advId);
|
BigDecimal cateFee = new BigDecimal(datum.get("CateFee"));
|
log.info("cateFee的值为:==========" + cateFee);
|
log.info("tree.getFyhj()的值为:==========" + tree.getFyhj());
|
if (tree.getSqdh().equals(advId) && cateFee.compareTo(new BigDecimal(tree.getFyhj())) == 0) {
|
log.info("该项目已缴费不可撤销");
|
return AjaxResult.error("该项目已缴费不可撤销!!!");
|
}
|
}
|
}
|
}
|
}
|
|
boolean b = hisApiMethod.ZfBlXm(dto.getBldhs(), order);
|
if (!b) {
|
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
log.info("撤销失败,调用作废出现失败");
|
return AjaxResult.error("撤销失败,调用作废出现失败");
|
}
|
}
|
String s = configService.selectConfigByKey("is_request_common_his_api");
|
Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
|
// if (null != s && s.equals("Y") && "2".equals(order.getTjType())) {
|
if (null != s && s.equals("Y") && !useLisAndPacsRegister) {
|
ArrayList<TjFlowingWater> weizhifu = new ArrayList<>();
|
ArrayList<TjFlowingWater> yizhifu = new ArrayList<>();
|
for (String bldh : dto.getBldhs()) {
|
LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjFlowingWater::getJxbz, bldh);
|
TjFlowingWater water = tjFlowingWaterService.getOne(wrapper);
|
if (water.getPayStasus() == 0L) {
|
weizhifu.add(water);
|
} else {
|
yizhifu.add(water);
|
}
|
}
|
String apiUrl = configService.selectConfigByKey("common_api_url");
|
String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
|
LambdaQueryWrapper<TjCustomer> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjCustomer::getCusId, order.getUserId());
|
TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
|
AjaxResult error = zuofeiWeiZhifu(weizhifu, tjCustomer, apiUrl, hospbm, order, true, dto.getTjh());
|
if (error != null && !error.get("code").toString().equals("200")) return error;
|
|
AjaxResult error1 = zuofeiYiZhifu(yizhifu, tjCustomer, order, apiUrl, hospbm, false, dto.getTjh());
|
if (error1 != null && !error.get("code").toString().equals("200")) return error1;
|
return AjaxResult.success();
|
} else {
|
try {
|
extracted(dto, order);
|
} catch (Exception e) {
|
log.info("撤销失败,删除表失败");
|
return AjaxResult.error("撤销失败,删除表失败!");
|
}
|
return AjaxResult.success();
|
}
|
}
|
return AjaxResult.error();
|
}
|
|
private AjaxResult zuofeiYiZhifu(ArrayList<TjFlowingWater> yizhifu, TjCustomer tjCustomer, TjOrder order, String apiUrl, String hospbm, Boolean isDelete, String tjNum) {
|
if (!yizhifu.isEmpty()) {
|
for (TjFlowingWater water : yizhifu) {
|
HashMap<String, Object> map = new HashMap<>();
|
map.put("pationId", tjCustomer.getPationId());
|
map.put("cardId", tjCustomer.getHisJzkh());
|
map.put("tjNum", water.getTjSerialNumber());
|
map.put("kaiDanKs", "7805");
|
// 收费标志 1待收费 2待退费
|
map.put("shouTuiStatus", "2");
|
JSONArray array = JSONUtil.createArray();
|
String bldh = water.getJxbz();
|
List<TbTransition> list;
|
if (bldh != null) {
|
LambdaQueryWrapper<TbTransition> wrapper1 = new LambdaQueryWrapper<>();
|
wrapper1.eq(TbTransition::getJxbz, bldh);
|
wrapper1.gt(TbTransition::getOrdPrice, 0);
|
list = tbTransitionService.list(wrapper1);
|
} else {
|
LambdaQueryWrapper<TbTransition> wrapper1 = new LambdaQueryWrapper<>();
|
wrapper1.isNull(TbTransition::getJxbz);
|
wrapper1.eq(TbTransition::getTjNum, tjNum);
|
wrapper1.gt(TbTransition::getOrdPrice, 0);
|
list = tbTransitionService.list(wrapper1);
|
}
|
for (TbTransition transition : list) {
|
LambdaQueryWrapper<TjProject> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(TjProject::getProId, transition.getProId());
|
TjProject project = projectService.getOne(queryWrapper);
|
LambdaQueryWrapper<TjFlowingWaterHis> wrapper2 = new LambdaQueryWrapper<>();
|
wrapper2.eq(TjFlowingWaterHis::getParentId, water.getHisWaterId());
|
wrapper2.eq(TjFlowingWaterHis::getXmId, project.getHisXmbm());
|
List<TjFlowingWaterHis> list1 = tjFlowingWaterHisService.list(wrapper2);
|
for (TjFlowingWaterHis waterHis : list1) {
|
LambdaQueryWrapper<SysDept> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(SysDept::getDeptId, project.getDeptId());
|
SysDept dept = sysDeptService.getOne(wrapper);
|
JSONObject obj = JSONUtil.createObj();
|
BigDecimal danjia = transition.getOrdPrice();
|
Integer sl = project.getSl();
|
BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
|
obj.putOpt("danJia", danjia);
|
obj.putOpt("jieSuanJe", allPrice.negate());
|
obj.putOpt("shuliang", Math.negateExact(sl));
|
obj.putOpt("feiYongMxId", waterHis.getCurrentId());
|
obj.putOpt("feiYongId", water.getHisWaterId());
|
obj.putOpt("zhiXingKs", dept.getDeptId());
|
obj.putOpt("zhiXingKsMc", dept.getDeptName());
|
obj.putOpt("shouFeiXmId", project.getHisXmbm());
|
obj.putOpt("shouFeiXmMc", project.getHisXmmc());
|
|
// obj.putOpt("zhiXingKs","7805");
|
// obj.putOpt("zhiXingKsMc","体检科");
|
// obj.putOpt("shouFeiXmId","4735346");
|
// obj.putOpt("shouFeiXmMc","体检费");
|
array.add(obj);
|
}
|
|
}
|
map.put("feiYongInfoList", array);
|
log.info("退费申请 入参 -> {}", JSONUtil.toJsonStr(map));
|
String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
|
log.info("退费申请 返回 -> {}", JSONUtil.toJsonStr(post));
|
if (null != post) {
|
JSONObject jsonObject = JSONUtil.parseObj(post);
|
if (jsonObject.getStr("code").equals("200")) {
|
// hisTfWaterId
|
String tfid = jsonObject.getJSONObject("data").getStr("feiYongId");
|
water.setHisTfWaterId(tfid);
|
tjFlowingWaterService.updateById(water);
|
if (isDelete) {
|
for (TjFlowingWater water1 : yizhifu) {
|
String bldh1 = water1.getJxbz();
|
remarkService.deleteTjOrderDetailByjxbz(bldh1);
|
tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh1);
|
tjFlowingWaterService.deleteTjOrderDetailByjxbz(bldh1);
|
transitionService.deleteTjOrderDetailByjxbz(bldh1);
|
blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, tjNum).eq(TjProBl::getBldh, bldh1));
|
tjSamplingMapper.deleteByTjNumAndCusIdAndJxbzo(tjNum, order.getUserId(), bldh1);
|
}
|
}
|
} else return AjaxResult.error();
|
}
|
}
|
}
|
return null;
|
}
|
|
private AjaxResult zuofeiWeiZhifu(ArrayList<TjFlowingWater> weizhifu, TjCustomer tjCustomer, String apiUrl, String hospbm, TjOrder order, Boolean isDelete, String tjNum) {
|
if (!weizhifu.isEmpty()) {
|
HashMap<String, Object> chexiaoMap = new HashMap<>();
|
chexiaoMap.put("pationId", tjCustomer.getPationId());
|
chexiaoMap.put("cardId", tjCustomer.getHisJzkh());
|
String feiyongList = weizhifu.stream().map(TjFlowingWater::getHisWaterId).collect(Collectors.joining(","));
|
chexiaoMap.put("feiYongIdList", feiyongList.trim().replaceAll(" ", ""));
|
|
String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/revokeCost", chexiaoMap);
|
if (JSONUtil.parseObj(post).getStr("code").equals("200")) {
|
if (isDelete) {
|
for (TjFlowingWater water : weizhifu) {
|
String bldh = water.getJxbz();
|
if (StrUtil.isNotBlank(bldh)) {
|
remarkService.deleteTjOrderDetailByjxbz(bldh);
|
tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh);
|
tjFlowingWaterService.deleteTjOrderDetailByjxbz(bldh);
|
transitionService.deleteTjOrderDetailByjxbz(bldh);
|
blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, tjNum).eq(TjProBl::getBldh, bldh));
|
tjSamplingMapper.deleteByTjNumAndCusIdAndJxbzo(tjNum, order.getUserId(), bldh);
|
} else {
|
//这里删除的是这个人所有项目包括补录项目
|
tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
|
tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
|
remarkService.deletedOrderRemarkByTjNum(tjNum);
|
tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
|
transitionService.deletedTbTransitionByTjNum(tjNum);
|
tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId());
|
}
|
|
}
|
}
|
} else return AjaxResult.error();
|
}
|
return null;
|
}
|
|
// @Transactional(propagation =Propagation.REQUIRES_NEW)
|
public void extracted(TjProBlDto dto, TjOrder order) {
|
for (String bldh : dto.getBldhs()) {
|
remarkService.deleteTjOrderDetailByjxbz(bldh);
|
tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh);
|
tjFlowingWaterService.deleteTjOrderDetailByjxbz(bldh);
|
transitionService.deleteTjOrderDetailByjxbz(bldh);
|
blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, dto.getTjh()).eq(TjProBl::getBldh, bldh));
|
}
|
tjSamplingMapper.deleteByTjNumAndCusIdAndJxbz(dto.getTjh(), order.getUserId(), dto.getBldhs());
|
}
|
|
|
@PostMapping("/addYaoPinShenQing")
|
@ApiOperation(value = "药品信息申请")
|
@Transactional
|
public AjaxResult addYaoPinShenQing(@RequestBody OutpinmedicapplyDto dto) {
|
AjaxResult result = controller.Outpinmedicapply(dto);
|
String result1 = getAjaxResult(result);
|
JSONObject object = getJSONObject(result1);
|
String code = object.getStr("ResultCode");
|
if (null != code && code.equals("0")) {
|
|
}
|
return AjaxResult.success();
|
}
|
|
|
@GetMapping("/chushenyemianqijianjiekou")
|
@ApiOperation(value = "初审页面弃检接口")
|
@Transactional
|
public AjaxResult chushenyemianqijianjiekou(@RequestParam String tjNUm, @RequestParam String proId) {
|
LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjOrderRemark::getTjNumber, tjNUm);
|
wq.eq(TjOrderRemark::getProId, proId);
|
TjOrderRemark remark = remarkService.getOne(wq);
|
remark.setType(2);
|
remarkService.updateById(remark);
|
return AjaxResult.success("操作成功!");
|
}
|
|
|
@PostMapping("/zongjanyemianshjianzhou")
|
@ApiOperation(value = "总检获取时间轴接口")
|
@Transactional
|
public AjaxResult zongjanyemianshjianzhou(@RequestBody List<String> tjNUms) {
|
|
if (null != tjNUms && !tjNUms.isEmpty()) {
|
List<Map<String, Object>> list = new ArrayList<>();
|
for (String tjNUm : tjNUms) {
|
Map<String, Object> map = new HashMap<>();
|
TjOrder order = tjOrderService.getOrderByTjNum(tjNUm);
|
if (null != order) {
|
int czwj = remarkService.panduaniscunzaiweijian(tjNUm);
|
int sfwc = remarkService.panduaniswancheng(tjNUm);
|
Date checkTime = order.getCheckTime();
|
Date reportTime = order.getReportTime();
|
Integer heshouStatus = order.getHeshouStatus();
|
Date lastTime = order.getPrintLastTime();
|
int a = 0;
|
if (czwj == 0) {
|
//未检
|
a = 0;
|
}
|
if (czwj > 0) {
|
//在检
|
a = 1;
|
}
|
if (sfwc == 0) {
|
//已完成
|
a = 2;
|
}
|
if (null != checkTime) {
|
//已审核
|
a = 3;
|
}
|
if (null != reportTime) {
|
//生成报告
|
a = 4;
|
}
|
if (heshouStatus == 1) {
|
//报告核收
|
a = 5;
|
}
|
if (null != lastTime) {
|
//已出报告
|
a = 6;
|
}
|
map.put("tjNUm", tjNUm);
|
map.put("sjz", a);
|
list.add(map);
|
}
|
}
|
return AjaxResult.success(list);
|
}
|
return AjaxResult.error();
|
}
|
|
|
@PostMapping("/heshouchexiao")
|
@ApiOperation(value = "撤销报告接口")
|
@Transactional
|
public AjaxResult heshouchexiao(@RequestBody List<String> tjNUms) {
|
|
if (null != tjNUms && !tjNUms.isEmpty()) {
|
|
// 不在使用逻辑删除 逻辑删除导致打印报告生成 查询sql缓慢
|
//逻辑删除数据库里的报告
|
LambdaQueryWrapper<TjReport> wq1 = new LambdaQueryWrapper<>();
|
wq1.select(TjReport::getReId);
|
wq1.in(TjReport::getTjNumber, tjNUms);
|
wq1.eq(TjReport::getPrint, "pdf");
|
List<Long> list = tjReportService.list(wq1).stream().map(TjReport::getReId).collect(Collectors.toList());
|
for (String tjNUm : tjNUms) {
|
TjOrder order = tjOrderService.getOrderByTjNum(tjNUm);
|
if (null != order) {
|
order.setHeshouStatus(0);
|
order.setHeshouTime(null);
|
order.setHeshouDoctor(null);
|
order.setPrintLastTime(null);
|
order.setReportTime(null);
|
order.setStatus(TjConstants.TJ_WAIT);
|
if (!tjOrderService.updateById(order)) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error("操作失败");
|
}
|
}
|
}
|
if (!list.isEmpty()) {
|
int i = tjReportService.deleteTjReportByReIds(list.toArray(new Long[]{}));
|
if (i == 0) {
|
return AjaxResult.error("撤回失败!");
|
}
|
}
|
return AjaxResult.success("操作成功");
|
}
|
return AjaxResult.error();
|
}
|
|
|
@GetMapping("/qiandaodengjitianjiaxiangmubydanweifenzu")
|
@ApiOperation(value = "签到登记根据单位分组获取体检项目")
|
@Transactional
|
public AjaxResult qiandaodengjitianjiaxiangmubydanweifenzu(@RequestParam String cusIdcard, @RequestParam String groupingId) {
|
try {
|
transitionService.saveTemoTransitionByGroupingId(cusIdcard, groupingId);
|
return AjaxResult.success("操作成功!");
|
} catch (Exception e) {
|
e.printStackTrace();
|
return AjaxResult.error();
|
}
|
}
|
|
@PostMapping("/ttaddtTransition")
|
@ApiOperation(value = "团体添加过渡表数据")
|
@Transactional
|
public AjaxResult ttaddtTransition(@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);
|
}
|
TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(cusId);
|
String cardId = "0";
|
if (null != tjCustomer) {
|
cardId = tjCustomer.getCardId();
|
}
|
if ((null == proIds || proIds.isEmpty()) && (null == packId || packId.equals(""))) {
|
transitionService.deletedTbTransitionByCusId(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.isEmpty()) {
|
transitionService.deletedTbTransitionListByCusIdAndPac(cusId, cardId);
|
String string = transitionService.ttpanduantaocanshifouchongfu(cusId, pacId);
|
if (!StringUtils.isBlank(string)) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error("操作失败! 以下项目已存在: " + string);
|
}
|
transitionService.ttsaveTemoTransitionByGroupingId(cusId, cardId, pacId.toString());
|
//补差价
|
List<Map<String, Object>> cjMaps = groupingProService.huoquxiangmuchajia(pacId.toString(), cusId);
|
if (null != cjMaps && !cjMaps.isEmpty()) {
|
for (Map<String, Object> cjMap : cjMaps) {
|
transitionService.buxiangmuchajia(cusId, pacId.toString(), cjMap.get("xmid").toString(), new BigDecimal(cjMap.get("cj").toString()));
|
}
|
}
|
|
}
|
}
|
|
//单项
|
if (null != proIds && !proIds.isEmpty()) {
|
//异步保存数据库表
|
for (Long proId : proIds) {
|
TjProject project = projectService.selectTjProjectByProId(proId);
|
if (null != project) {
|
List<TbTransition> transitionList = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId));
|
if (null == transitionList || transitionList.isEmpty()) {
|
transitionService.saveRedisTransitionByProId(cusId, cardId, proId);
|
}
|
}
|
}
|
}
|
return AjaxResult.success();
|
}
|
|
|
@GetMapping(value = "newgetTransitionList")
|
@ApiOperation(value = "最新查询过渡表数据")
|
public AjaxResult newgetTransitionList(@RequestParam @ApiParam(value = "客户id") String cusId) {
|
// String pacId = transitionService.getTbTransitionPacId(cusId);
|
// if(StringUtil.isNotBlank(pacId)){
|
// //补差价
|
// List<Map<String,Object>> cjMaps = groupingProService.huoquxiangmuchajia(pacId, cusId);
|
// if(null !=cjMaps && !cjMaps.isEmpty()){
|
// for (Map<String, Object> cjMap : cjMaps) {
|
// transitionService.buxiangmuchajia(cusId,pacId,cjMap.get("xmid").toString(),new BigDecimal(cjMap.get("cj").toString()));
|
// }
|
// }
|
// }
|
List<TbTransition> list = transitionService.newgetTransitionList(cusId);
|
return AjaxResult.success(list);
|
}
|
|
@PostMapping(value = "updateTransitionnewPrice")
|
@ApiOperation(value = "签到登记页面根据折扣修改项目现价")
|
@Transactional
|
public AjaxResult updateTransitionnewPrice(@RequestBody List<UpdateTransitionnewPriceDto> dtos) {
|
|
if (null != dtos && !dtos.isEmpty()) {
|
boolean flag = false;
|
for (UpdateTransitionnewPriceDto dto : dtos) {
|
LambdaQueryWrapper<TbTransition> wq = new LambdaQueryWrapper<>();
|
wq.eq(TbTransition::getCusId, dto.getCusIdCard());
|
wq.eq(TbTransition::getParentProId, dto.getParentProId());
|
wq.isNull(TbTransition::getTjNum);
|
List<TbTransition> list = transitionService.list(wq);
|
log.info("修改的客户身份证号为: " + dto.getCusIdCard());
|
log.info("父项目id为: " + dto.getParentProId());
|
log.info("折扣为: " + new BigDecimal(dto.getDiscount()));
|
if (null != list && !list.isEmpty()) {
|
|
for (TbTransition transition : list) {
|
BigDecimal ordPrice = transition.getOrdPrice();
|
BigDecimal multiply = ordPrice.multiply((new BigDecimal(dto.getDiscount()).divide(BigDecimal.valueOf(10))));
|
log.info("后端计算的金额: " + multiply.toString());
|
transition.setNowPrice(multiply);
|
transition.setDiscount(new BigDecimal(dto.getDiscount()));
|
transitionService.updateById(transition);
|
}
|
|
BigDecimal dxzj = transitionService.getTbTransitionPriceAndOrdPrice(dto.getCusIdCard(), dto.getParentProId());
|
|
BigDecimal yhj = dto.getYhj();
|
log.info("前端传递的价格:{}",yhj.toString());
|
BigDecimal cj = yhj.subtract(dxzj);
|
log.info("计算的差价:{}",cj.toString());
|
for (TbTransition transition : list) {
|
BigDecimal result = transition.getNowPrice().add(cj);
|
log.info("补上差价前的价格为:{}",transition.getNowPrice().toString());
|
if (result.compareTo(BigDecimal.ZERO)>0 && !flag && cj.compareTo(BigDecimal.ZERO) != 0){
|
transition.setNowPrice(result);
|
transitionService.updateById(transition);
|
log.info("修改 补上差价后的价格为:{}",result.toString());
|
flag = true;
|
break;
|
}
|
}
|
}
|
}
|
}
|
return AjaxResult.success();
|
}
|
|
|
|
@PostMapping("/huifuyuyuejilu")
|
@ApiOperation(value = "体检记录页面恢复预约记录接口")
|
@Transactional
|
public AjaxResult huifuyuyuejilu(@RequestBody List<String> tjNUms) {
|
|
if (null != tjNUms && !tjNUms.isEmpty()) {
|
for (String tjNUm : tjNUms) {
|
TjOrder order = tjOrderService.getOrderByTjNum(tjNUm);
|
if(null !=order && StringUtil.isNotBlank(order.getReservationId())){
|
//这里删除的是这个人所有项目包括补录项目
|
tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
|
tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
|
remarkService.deletedOrderRemarkByTjNum(tjNUm);
|
tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
|
// transitionService.deletedTbTransitionByTjNum(tjNum);
|
tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId());
|
|
TjReservation reservation = tjReservationService.getById(order.getReservationId());
|
if(null !=reservation){
|
reservation.setIsExpire(2);
|
tjReservationService.updateById(reservation);
|
transitionService.updateTbTransitionByTjNum(tjNUm);
|
}
|
|
}
|
}
|
|
return AjaxResult.success();
|
}
|
return AjaxResult.error();
|
}
|
}
|