package com.ltkj.web.controller.system;
|
|
import java.util.List;
|
import java.util.stream.Collectors;
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletResponse;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.ltkj.framework.config.MatchUtils;
|
import com.ltkj.hosp.domain.*;
|
import com.ltkj.hosp.service.*;
|
import com.ltkj.web.controller.dto.PutAskMedicalHistoryDto;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.val;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.*;
|
import com.ltkj.common.annotation.Log;
|
import com.ltkj.common.core.controller.BaseController;
|
import com.ltkj.common.core.domain.AjaxResult;
|
import com.ltkj.common.enums.BusinessType;
|
import com.ltkj.common.utils.poi.ExcelUtil;
|
import com.ltkj.common.core.page.TableDataInfo;
|
|
/**
|
* 问诊Controller
|
*
|
* @author ltkj_赵佳豪&李格
|
* @date 2023-04-11
|
*/
|
@RestController
|
@RequestMapping("/hosp/history")
|
@Api(tags = "问诊接口")
|
public class TjAskMedicalHistoryController extends BaseController {
|
@Autowired
|
private ITjAskMedicalHistoryService tjAskMedicalHistoryService;
|
@Autowired
|
private ITjAskHistorysService historysService;
|
@Autowired
|
private ITjCustomerService customerService;
|
@Resource
|
private ITjCustomerService tjCustomerService;
|
@Autowired
|
private ITjAskWorkLogService tjAskWorkLogService;
|
@Autowired
|
private ITjHarmTypeLogService tjHarmTypeLogService;
|
@Autowired
|
private ITjHarmTypeService tjHarmTypeService;
|
@Resource
|
private ITjOrderService tjOrderService;
|
|
|
/**
|
* 查询问诊列表
|
*/
|
@GetMapping("/getZhengZhuang")
|
@ApiOperation(value = "获取症状接口集")
|
public AjaxResult getZhengZhuang() {
|
List<DictZhengzhuang> zhengZhuang = tjAskMedicalHistoryService.getZhengZhuang();
|
return AjaxResult.success(zhengZhuang);
|
}
|
|
|
|
|
/**
|
* 查询问诊列表
|
*/
|
@GetMapping("/list")
|
public TableDataInfo list(TjAskMedicalHistory tjAskMedicalHistory) {
|
startPage();
|
List<TjAskMedicalHistory> list = tjAskMedicalHistoryService.selectTjAskMedicalHistoryList(tjAskMedicalHistory);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出问诊列表
|
*/
|
@Log(title = "问诊", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, TjAskMedicalHistory tjAskMedicalHistory) {
|
List<TjAskMedicalHistory> list = tjAskMedicalHistoryService.selectTjAskMedicalHistoryList(tjAskMedicalHistory);
|
ExcelUtil<TjAskMedicalHistory> util = new ExcelUtil<TjAskMedicalHistory>(TjAskMedicalHistory.class);
|
util.exportExcel(response, list, "问诊数据");
|
}
|
|
/**
|
* 获取问诊详细信息
|
*/
|
@GetMapping(value = "/{askId}")
|
public AjaxResult getInfo(@PathVariable("askId") Long askId) {
|
return success(tjAskMedicalHistoryService.selectTjAskMedicalHistoryByAskId(askId));
|
}
|
|
/**
|
* 根据客户id获取问诊详细信息
|
*/
|
@GetMapping(value = "/getInfoById")
|
@ApiOperation(value = "根据客户id获取问诊详细信息")
|
public AjaxResult getInfoById(@RequestParam String tjNumber) {
|
if (null != tjNumber && !tjNumber.isEmpty()) {
|
// LambdaQueryWrapper<TjAskMedicalHistory> wq = new LambdaQueryWrapper<>();
|
// wq.eq(TjAskMedicalHistory::getTjNum, tjNumber);
|
// TjAskMedicalHistory one = tjAskMedicalHistoryService.getOne(wq);
|
TjAskMedicalHistory one = tjAskMedicalHistoryService.selectTjAskMedicalHistoryByTjNum(tjNumber);
|
if (one != null) {
|
LambdaQueryWrapper<TjAskWorkLog> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TjAskWorkLog::getTjNumber, tjNumber);
|
final List<TjAskWorkLog> list = tjAskWorkLogService.list(wqq);
|
one.setWorkLogs(list);
|
|
for (TjAskWorkLog askWorkLog : list) {
|
LambdaQueryWrapper<TjHarmTypeLog> wqq1 = new LambdaQueryWrapper<>();
|
wqq1.eq(TjHarmTypeLog::getWorkId, askWorkLog.getId());
|
final List<TjHarmTypeLog> list1 = tjHarmTypeLogService.list(wqq1);
|
|
List<String> skuNos = list1.stream()
|
.map(TjHarmTypeLog::getAid)
|
.collect(Collectors.toList());
|
|
askWorkLog.setHarmTypeLogs(skuNos);
|
}
|
TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
|
one.setTjLx(order.getTjCategory());
|
|
|
LambdaQueryWrapper<TjAskHistorys> wqq111 = new LambdaQueryWrapper<>();
|
wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
|
wqq111.eq(TjAskHistorys::getDataType,1);
|
List<TjAskHistorys> list11 = historysService.list(wqq111);
|
one.setTjAskHistorysList(list11);
|
|
wqq111 = new LambdaQueryWrapper<>();
|
wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
|
wqq111.eq(TjAskHistorys::getDataType,2);
|
list11 = historysService.list(wqq111);
|
one.setZhiyezzList(list11);
|
|
|
return AjaxResult.success(one);
|
}else {
|
TjAskMedicalHistory a = new TjAskMedicalHistory();
|
LambdaQueryWrapper<TjOrder> wqqq = new LambdaQueryWrapper<>();
|
wqqq.eq(TjOrder::getTjNumber, tjNumber);
|
final TjOrder order = tjOrderService.getOne(wqqq);
|
a.setCusId(order.getUserId());
|
a.setTjNum(order.getTjNumber());
|
a.setTjLx(order.getTjCategory());
|
TjCustomer customer = customerService.getById(a.getCusId());
|
if (customer != null) {
|
a.setCusName(customer.getCusName());
|
a.setCusIdCard(customer.getCusIdcard());
|
a.setCusSex(String.valueOf(customer.getCusSex()));
|
}
|
return AjaxResult.success(a);
|
}
|
}
|
return AjaxResult.error("查无此人");
|
}
|
|
/**
|
* 新增问诊
|
*/
|
@Transactional
|
@Log(title = "问诊", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
|
tjAskMedicalHistoryService.insertTjAskMedicalHistory(tjAskMedicalHistory);
|
final List<TjAskWorkLog> workLogs = tjAskMedicalHistory.getWorkLogs();
|
if (workLogs != null) {
|
for (TjAskWorkLog workLog : workLogs) {
|
workLog.setCusId(tjAskMedicalHistory.getCusId());
|
workLog.setCusName(tjAskMedicalHistory.getCusName());
|
workLog.setTjNumber(tjAskMedicalHistory.getTjNum());
|
final boolean save = tjAskWorkLogService.save(workLog);
|
if (!save) {
|
return AjaxResult.error();
|
}
|
List<String> harmTypeLogs = workLog.getHarmTypeLogs();
|
if (harmTypeLogs != null) {
|
for (String harmTypeLog : harmTypeLogs) {
|
final TjHarmType byId = tjHarmTypeService.getById(harmTypeLog);
|
if (byId != null) {
|
TjHarmTypeLog log = new TjHarmTypeLog();
|
log.setAid(byId.getAid());
|
log.setCusId(tjAskMedicalHistory.getCusId());
|
log.setCusName(tjAskMedicalHistory.getCusName());
|
log.setTjNumber(tjAskMedicalHistory.getTjNum());
|
log.setWorkId(workLog.getId());
|
tjHarmTypeLogService.saveOrUpdate(log);
|
}
|
}
|
}
|
}
|
}
|
return AjaxResult.success();
|
}
|
|
|
/**
|
* pc端修改问诊
|
*/
|
// @ApiOperation(value = "pc端修改问诊")
|
// @Log(title = "问诊", businessType = BusinessType.UPDATE)
|
// @PutMapping
|
// @Transactional
|
// public AjaxResult edit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
|
// LambdaQueryWrapper<TjAskWorkLog> wq = new LambdaQueryWrapper<>();
|
// wq.eq(TjAskWorkLog::getTjNumber, tjAskMedicalHistory.getTjNum());
|
// tjAskWorkLogService.remove(wq);
|
// LambdaQueryWrapper<TjHarmTypeLog> wq1 = new LambdaQueryWrapper<>();
|
// wq1.eq(TjHarmTypeLog::getTjNumber, tjAskMedicalHistory.getTjNum());
|
// tjHarmTypeLogService.remove(wq1);
|
//
|
//
|
// boolean b = false;
|
// tjAskMedicalHistory.setFromBy("PC端");
|
// if (tjAskMedicalHistory.getAskId() != null) {
|
// b = tjAskMedicalHistoryService.updateById(tjAskMedicalHistory);
|
// } else {
|
// b = tjAskMedicalHistoryService.save(tjAskMedicalHistory);
|
// }
|
// if (b) {
|
// List<TjAskHistorys> tjAskHistorysList = tjAskMedicalHistory.getTjAskHistorysList();
|
// if (tjAskHistorysList != null && tjAskHistorysList.size() > 0) {
|
// for (TjAskHistorys tjAskHistorys : tjAskMedicalHistory.getTjAskHistorysList()) {
|
// tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
|
// boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
|
// if (!b1) {
|
// return AjaxResult.error();
|
// }
|
// }
|
// }
|
//
|
// List<TjAskWorkLog> askWorkLogs = tjAskMedicalHistory.getWorkLogs();
|
// if (askWorkLogs != null && askWorkLogs.size() > 0) {
|
// for (TjAskWorkLog askWorkLog : askWorkLogs) {
|
// askWorkLog.setCusId(tjAskMedicalHistory.getCusId());
|
// askWorkLog.setCusName(tjAskMedicalHistory.getCusName());
|
// askWorkLog.setTjNumber(tjAskMedicalHistory.getTjNum());
|
// askWorkLog.setAskId(tjAskMedicalHistory.getAskId());
|
// boolean b1 = tjAskWorkLogService.saveOrUpdate(askWorkLog);
|
// List<String> harmTypeLogs = askWorkLog.getHarmTypeLogs();
|
// if (harmTypeLogs != null) {
|
// for (String harmTypeLog : harmTypeLogs) {
|
// final TjHarmType byId = tjHarmTypeService.getById(harmTypeLog);
|
// if (byId != null) {
|
// TjHarmTypeLog log = new TjHarmTypeLog();
|
// log.setAid(byId.getAid());
|
// log.setCusId(tjAskMedicalHistory.getCusId());
|
// log.setCusName(tjAskMedicalHistory.getCusName());
|
// log.setTjNumber(tjAskMedicalHistory.getTjNum());
|
// log.setWorkId(askWorkLog.getId());
|
// tjHarmTypeLogService.save(log);
|
// }
|
// }
|
// }
|
// if (!b1) {
|
// return AjaxResult.error();
|
// }
|
// }
|
// }
|
// return AjaxResult.success(tjAskMedicalHistory);
|
// }
|
// return AjaxResult.error();
|
// //return toAjax(tjAskMedicalHistoryService.updateTjAskMedicalHistory(tjAskMedicalHistory));
|
// }
|
|
/**
|
* pc端修改问诊
|
*/
|
@ApiOperation(value = "pc端修改问诊")
|
@Log(title = "问诊", businessType = BusinessType.UPDATE)
|
@PutMapping
|
@Transactional
|
public AjaxResult edit(@RequestBody PutAskMedicalHistoryDto askMedicalHistoryDto) {
|
TjAskMedicalHistory tjAskMedicalHistory = new TjAskMedicalHistory();
|
BeanUtil.copyProperties(askMedicalHistoryDto,tjAskMedicalHistory,true);
|
LambdaQueryWrapper<TjAskWorkLog> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjAskWorkLog::getTjNumber, tjAskMedicalHistory.getTjNum());
|
tjAskWorkLogService.remove(wq);
|
LambdaQueryWrapper<TjHarmTypeLog> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjHarmTypeLog::getTjNumber, tjAskMedicalHistory.getTjNum());
|
tjHarmTypeLogService.remove(wq1);
|
|
|
boolean b = false;
|
tjAskMedicalHistory.setFromBy("PC端");
|
|
JSONArray medicalHistory = askMedicalHistoryDto.getMedicalHistory();
|
String medicalHistoryTxt = medicalHistory.stream().map(item -> {
|
JSONObject entries = (JSONObject) item;
|
return entries.getStr("icdname");
|
}).collect(Collectors.joining(","));
|
String medicalHistoryIds = medicalHistory.stream().map(item -> {
|
JSONObject entries = (JSONObject) item;
|
return entries.getStr("id");
|
}).collect(Collectors.joining(","));
|
tjAskMedicalHistory.setMedicalHistoryIds(medicalHistoryIds);
|
tjAskMedicalHistory.setMedicalHistory(medicalHistoryTxt);
|
|
if (tjAskMedicalHistory.getAskId() != null) {
|
b = tjAskMedicalHistoryService.updateById(tjAskMedicalHistory);
|
} else {
|
b = tjAskMedicalHistoryService.save(tjAskMedicalHistory);
|
}
|
if (b) {
|
List<TjAskHistorys> tjAskHistorysList = tjAskMedicalHistory.getTjAskHistorysList();
|
if (tjAskHistorysList != null && !tjAskHistorysList.isEmpty()) {
|
for (TjAskHistorys tjAskHistorys : tjAskMedicalHistory.getTjAskHistorysList()) {
|
tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
|
tjAskHistorys.setDataType(1);
|
boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
|
if (!b1) {
|
return AjaxResult.error();
|
}
|
}
|
}
|
|
List<TjAskHistorys> zhiyezzList = askMedicalHistoryDto.getZhiyezzList();
|
if (zhiyezzList != null && !zhiyezzList.isEmpty()) {
|
for (TjAskHistorys tjAskHistorys : zhiyezzList) {
|
tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
|
tjAskHistorys.setDataType(2);
|
boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
|
if (!b1) {
|
return AjaxResult.error();
|
}
|
}
|
}
|
|
List<TjAskWorkLog> askWorkLogs = tjAskMedicalHistory.getWorkLogs();
|
if (askWorkLogs != null && !askWorkLogs.isEmpty()) {
|
for (TjAskWorkLog askWorkLog : askWorkLogs) {
|
askWorkLog.setCusId(tjAskMedicalHistory.getCusId());
|
askWorkLog.setCusName(tjAskMedicalHistory.getCusName());
|
askWorkLog.setTjNumber(tjAskMedicalHistory.getTjNum());
|
askWorkLog.setAskId(tjAskMedicalHistory.getAskId());
|
boolean b1 = tjAskWorkLogService.saveOrUpdate(askWorkLog);
|
List<String> harmTypeLogs = askWorkLog.getHarmTypeLogs();
|
if (harmTypeLogs != null) {
|
for (String harmTypeLog : harmTypeLogs) {
|
final TjHarmType byId = tjHarmTypeService.getById(harmTypeLog);
|
if (byId != null) {
|
TjHarmTypeLog log = new TjHarmTypeLog();
|
log.setAid(byId.getAid());
|
log.setCusId(tjAskMedicalHistory.getCusId());
|
log.setCusName(tjAskMedicalHistory.getCusName());
|
log.setTjNumber(tjAskMedicalHistory.getTjNum());
|
log.setWorkId(askWorkLog.getId());
|
tjHarmTypeLogService.save(log);
|
}
|
}
|
}
|
if (!b1) {
|
return AjaxResult.error();
|
}
|
}
|
}
|
return AjaxResult.success(tjAskMedicalHistory);
|
}
|
return AjaxResult.error();
|
}
|
|
/**
|
* 删除病史或症状
|
* @param historyId
|
* @return
|
*/
|
@PostMapping("/removeAskHistorys")
|
public AjaxResult removeAskHistorys(@RequestBody List<String > historyId){
|
return toAjax(historysService.removeByIds(historyId));
|
}
|
|
|
/**
|
* 小程序根据客户身份证号获取问诊详细信息
|
*/
|
@GetMapping(value = "/appGetInfoById")
|
@ApiOperation(value = "小程序根据体检号获取问诊详细信息")
|
public AjaxResult appGetInfoById(@RequestParam("tjNumber") String tjNumber) {
|
if (null != tjNumber && !"".equals(tjNumber)) {
|
LambdaQueryWrapper<TjAskMedicalHistory> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjAskMedicalHistory::getTjNum, tjNumber);
|
TjAskMedicalHistory one = tjAskMedicalHistoryService.getOne(wq);
|
if (one != null) {
|
LambdaQueryWrapper<TjAskWorkLog> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TjAskWorkLog::getTjNumber, tjNumber);
|
final List<TjAskWorkLog> list = tjAskWorkLogService.list(wqq);
|
one.setWorkLogs(list);
|
|
for (TjAskWorkLog askWorkLog : list) {
|
LambdaQueryWrapper<TjHarmTypeLog> wqq1 = new LambdaQueryWrapper<>();
|
wqq1.eq(TjHarmTypeLog::getWorkId, askWorkLog.getId());
|
final List<TjHarmTypeLog> list1 = tjHarmTypeLogService.list(wqq1);
|
|
List<String> skuNos = list1.stream()
|
.map(TjHarmTypeLog::getAid)
|
.collect(Collectors.toList());
|
|
askWorkLog.setHarmTypeLogs(skuNos);
|
}
|
|
LambdaQueryWrapper<TjAskHistorys> wqq111 = new LambdaQueryWrapper<>();
|
wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
|
wqq111.eq(TjAskHistorys::getDataType,1);
|
List<TjAskHistorys> list11 = historysService.list(wqq111);
|
one.setTjAskHistorysList(list11);
|
|
wqq111 = new LambdaQueryWrapper<>();
|
wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
|
wqq111.eq(TjAskHistorys::getDataType,2);
|
list11 = historysService.list(wqq111);
|
one.setZhiyezzList(list11);
|
|
TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
|
one.setTjLx(order.getTjCategory());
|
|
|
return AjaxResult.success(one);
|
}else {
|
TjAskMedicalHistory a = new TjAskMedicalHistory();
|
LambdaQueryWrapper<TjOrder> wqqq = new LambdaQueryWrapper<>();
|
wqqq.eq(TjOrder::getTjNumber, tjNumber);
|
final TjOrder one1 = tjOrderService.getOne(wqqq);
|
a.setCusId(one1.getUserId());
|
TjCustomer byId11 = customerService.getById(a.getCusId());
|
if (byId11 != null) {
|
a.setCusName(MatchUtils.hideCusName(byId11.getCusName()));
|
}
|
return AjaxResult.success(a);
|
}
|
}
|
return AjaxResult.error("查无此人");
|
|
}
|
|
/**
|
* 小程序修改问诊
|
*/
|
@ApiOperation(value = "小程序修改问诊")
|
@PostMapping("/appEdit")
|
public AjaxResult appEdit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
|
LambdaQueryWrapper<TjAskWorkLog> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjAskWorkLog::getTjNumber, tjAskMedicalHistory.getTjNum());
|
tjAskWorkLogService.remove(wq);
|
LambdaQueryWrapper<TjHarmTypeLog> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjHarmTypeLog::getTjNumber, tjAskMedicalHistory.getTjNum());
|
tjHarmTypeLogService.remove(wq1);
|
|
|
boolean b = false;
|
tjAskMedicalHistory.setFromBy("PC端");
|
if (tjAskMedicalHistory.getAskId() != null) {
|
b = tjAskMedicalHistoryService.updateById(tjAskMedicalHistory);
|
} else {
|
b = tjAskMedicalHistoryService.save(tjAskMedicalHistory);
|
}
|
//boolean b = tjAskMedicalHistoryService.saveOrUpdate(tjAskMedicalHistory);
|
if (b) {
|
List<TjAskHistorys> tjAskHistorysList = tjAskMedicalHistory.getTjAskHistorysList();
|
if (tjAskHistorysList != null && tjAskHistorysList.size() > 0) {
|
for (TjAskHistorys tjAskHistorys : tjAskMedicalHistory.getTjAskHistorysList()) {
|
tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
|
boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
|
if (!b1) {
|
return AjaxResult.error();
|
}
|
}
|
}
|
|
List<TjAskWorkLog> askWorkLogs = tjAskMedicalHistory.getWorkLogs();
|
if (askWorkLogs != null && askWorkLogs.size() > 0) {
|
for (TjAskWorkLog askWorkLog : askWorkLogs) {
|
askWorkLog.setCusId(tjAskMedicalHistory.getCusId());
|
askWorkLog.setCusName(tjAskMedicalHistory.getCusName());
|
askWorkLog.setTjNumber(tjAskMedicalHistory.getTjNum());
|
askWorkLog.setAskId(tjAskMedicalHistory.getAskId());
|
boolean b1 = tjAskWorkLogService.saveOrUpdate(askWorkLog);
|
List<String> harmTypeLogs = askWorkLog.getHarmTypeLogs();
|
if (harmTypeLogs != null) {
|
for (String harmTypeLog : harmTypeLogs) {
|
final TjHarmType byId = tjHarmTypeService.getById(harmTypeLog);
|
if (byId != null) {
|
TjHarmTypeLog log = new TjHarmTypeLog();
|
log.setAid(byId.getAid());
|
log.setCusId(tjAskMedicalHistory.getCusId());
|
log.setCusName(tjAskMedicalHistory.getCusName());
|
log.setTjNumber(tjAskMedicalHistory.getTjNum());
|
log.setWorkId(askWorkLog.getId());
|
tjHarmTypeLogService.saveOrUpdate(log);
|
}
|
}
|
}
|
if (!b1) {
|
return AjaxResult.error();
|
}
|
}
|
}
|
return AjaxResult.success("修改成功");
|
}
|
return AjaxResult.error("修改失败");
|
}
|
|
/**
|
* 删除问诊
|
*/
|
@Log(title = "问诊", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{askIds}")
|
public AjaxResult remove(@PathVariable Long[] askIds) {
|
return toAjax(tjAskMedicalHistoryService.deleteTjAskMedicalHistoryByAskIds(askIds));
|
}
|
}
|