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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.ltkj.framework.config.MatchUtils;
|
import com.ltkj.hosp.domain.*;
|
import com.ltkj.hosp.service.*;
|
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("/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 && !"".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());
|
final List<TjAskHistorys> list11 = historysService.list(wqq111);
|
one.setTjAskHistorysList(list11);
|
|
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.success();
|
}
|
|
/**
|
* 新增问诊
|
*/
|
@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);
|
}
|
//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();
|
//return toAjax(tjAskMedicalHistoryService.updateTjAskMedicalHistory(tjAskMedicalHistory));
|
}
|
|
|
/**
|
* 小程序根据客户身份证号获取问诊详细信息
|
*/
|
@GetMapping(value = "/appGetInfoById")
|
@ApiOperation(value = "小程序根据客户身份证号获取问诊详细信息")
|
public AjaxResult appGetInfoById(@RequestParam("cusIdCard") String cusIdCard) {
|
LambdaQueryWrapper<TjCustomer> wqqq = new LambdaQueryWrapper<>();
|
wqqq.eq(TjCustomer::getCusIdcard, cusIdCard);
|
TjCustomer one1 = tjCustomerService.getOne(wqqq);
|
|
if (one1 != null) {
|
LambdaQueryWrapper<TjAskMedicalHistory> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjAskMedicalHistory::getCusId, one1.getCusId());
|
TjAskMedicalHistory one = tjAskMedicalHistoryService.getOne(wq);
|
if (one != null) {
|
return success(tjAskMedicalHistoryService.selectTjAskMedicalHistoryByAskId(one.getAskId()));
|
} else {
|
TjAskMedicalHistory a = new TjAskMedicalHistory();
|
a.setCusId(Long.valueOf(one1.getCusId()));
|
TjCustomer byId = customerService.getById(a.getCusId());
|
if (byId != null) {
|
a.setCusName(byId.getCusName());
|
}
|
|
return AjaxResult.success(a);
|
}
|
}
|
return AjaxResult.error("查无此人");
|
|
}
|
|
/**
|
* 小程序修改问诊
|
*/
|
@ApiOperation(value = "小程序修改问诊")
|
@PostMapping("/appEdit")
|
public AjaxResult appEdit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
|
boolean b = false;
|
tjAskMedicalHistory.setFromBy("小程序端");
|
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();
|
}
|
}
|
}
|
return AjaxResult.success("修改成功");
|
}
|
return AjaxResult.error("修改失败");
|
}
|
|
/**
|
* 删除问诊
|
*/
|
@Log(title = "问诊", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{askIds}")
|
public AjaxResult remove(@PathVariable Long[] askIds) {
|
return toAjax(tjAskMedicalHistoryService.deleteTjAskMedicalHistoryByAskIds(askIds));
|
}
|
}
|