package com.ltkj.web.controller.system; import java.util.List; 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; /** * 查询问诊列表 */ @GetMapping("/list") public TableDataInfo list(TjAskMedicalHistory tjAskMedicalHistory) { startPage(); List list = tjAskMedicalHistoryService.selectTjAskMedicalHistoryList(tjAskMedicalHistory); return getDataTable(list); } /** * 导出问诊列表 */ @Log(title = "问诊", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, TjAskMedicalHistory tjAskMedicalHistory) { List list = tjAskMedicalHistoryService.selectTjAskMedicalHistoryList(tjAskMedicalHistory); ExcelUtil util = new ExcelUtil(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 userId) { if (null != userId && !"".equals(userId)) { LambdaQueryWrapper wq = new LambdaQueryWrapper<>(); wq.eq(TjAskMedicalHistory::getCusId, Long.valueOf(userId)); TjAskMedicalHistory one = tjAskMedicalHistoryService.getOne(wq); if (one != null) { return success(tjAskMedicalHistoryService.selectTjAskMedicalHistoryByAskId(one.getAskId())); } TjAskMedicalHistory a = new TjAskMedicalHistory(); a.setCusId(Long.valueOf(userId)); TjCustomer byId = customerService.getById(a.getCusId()); if (byId != null) { a.setCusName(MatchUtils.hideCusName(byId.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 workLogs = tjAskMedicalHistory.getWorkLogs(); for (TjAskWorkLog workLog : workLogs) { final boolean save = tjAskWorkLogService.save(workLog); if (!save){ return AjaxResult.error(); } List harmTypeLogs = workLog.getHarmTypeLogs(); for (TjHarmTypeLog harmTypeLog : harmTypeLogs) { final boolean save1 = tjHarmTypeLogService.save(harmTypeLog); if (!save1){ return AjaxResult.error(); } } } return AjaxResult.success(); } /** * pc端修改问诊 */ @ApiOperation(value = "pc端修改问诊") @Log(title = "问诊", businessType = BusinessType.UPDATE) @PutMapping @Transactional public AjaxResult edit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) { 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 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 askWorkLogs = tjAskMedicalHistory.getWorkLogs(); if (askWorkLogs!=null&&askWorkLogs.size()>0){ for (TjAskWorkLog askWorkLog : askWorkLogs) { askWorkLog.setAskId(tjAskMedicalHistory.getAskId()); boolean b1 = tjAskWorkLogService.saveOrUpdate(askWorkLog); List harmTypeLogs = askWorkLog.getHarmTypeLogs(); for (TjHarmTypeLog harmTypeLog : harmTypeLogs) { tjHarmTypeLogService.saveOrUpdate(harmTypeLog); } 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 wqqq=new LambdaQueryWrapper<>(); wqqq.eq(TjCustomer::getCusIdcard,cusIdCard); TjCustomer one1 = tjCustomerService.getOne(wqqq); if (one1!=null){ LambdaQueryWrapper 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 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)); } }