package com.ltkj.web.controller.system; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ltkj.hosp.domain.TjOrder; import com.ltkj.hosp.service.ITjOrderService; import com.ltkj.hosp.service.ITjProjectService; import com.ltkj.hosp.vodomain.TjProContrastPostVo; import com.ltkj.hosp.vodomain.TjProContrastVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; 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.hosp.domain.TjProContrast; import com.ltkj.hosp.service.ITjProContrastService; import com.ltkj.common.utils.poi.ExcelUtil; import com.ltkj.common.core.page.TableDataInfo; /** * 体检项目对比Controller * * @author ltkj_赵佳豪&李格 * @date 2023-07-26 */ @RestController @RequestMapping("/hosp/contrast") @Api(tags = "PC端体检项目对比接口") public class TjProContrastController extends BaseController { @Autowired private ITjProContrastService tjProContrastService; @Resource private ITjProjectService projectService; @Resource private ITjOrderService orderService; /** * 查询体检项目对比列表 */ //@PreAuthorize("@ss.hasPermi('hosp:contrast:list')") @GetMapping("/list") @ApiOperation(value = "查询体检项目对比列表(页面展示用)") public TableDataInfo list(TjProContrast tjProContrast) { startPage(); List list = tjProContrastService.selectTjProContrastList(tjProContrast); return getDataTable(list); } /** * 查询体检项目对比列表 */ //@PreAuthorize("@ss.hasPermi('hosp:contrast:list')") @GetMapping("/getList") @ApiOperation(value = "查询体检项目对比列表(数据对比展示处用)") public AjaxResult getList() { LambdaQueryWrapper wq = new LambdaQueryWrapper<>(); wq.eq(TjProContrast::getIsContrast, 1); List list = tjProContrastService.list(wq); return AjaxResult.success(list); } /** * 导出体检项目对比列表 */ //@PreAuthorize("@ss.hasPermi('hosp:contrast:export')") @Log(title = "体检项目对比", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, TjProContrast tjProContrast) { List list = tjProContrastService.selectTjProContrastList(tjProContrast); ExcelUtil util = new ExcelUtil(TjProContrast.class); util.exportExcel(response, list, "体检项目对比数据"); } /** * 获取体检项目对比详细信息 */ //@PreAuthorize("@ss.hasPermi('hosp:contrast:query')") @GetMapping(value = "/{id}") @ApiOperation(value = "获取体检项目对比详细信息") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(tjProContrastService.selectTjProContrastById(id)); } /** * 新增体检项目对比 */ //@PreAuthorize("@ss.hasPermi('hosp:contrast:add')") @Log(title = "体检项目对比", businessType = BusinessType.INSERT) @PostMapping @ApiOperation(value = "新增体检项目对比") public AjaxResult add(@RequestBody List tjProContrast) { return toAjax(tjProContrastService.saveBatch(tjProContrast)); } /** * 修改体检项目对比 */ //@PreAuthorize("@ss.hasPermi('hosp:contrast:edit')") @Log(title = "体检项目对比", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation(value = "修改体检项目对比") public AjaxResult edit(@RequestBody TjProContrast tjProContrast) { return toAjax(tjProContrastService.updateById(tjProContrast)); } /** * 删除体检项目对比 */ //@PreAuthorize("@ss.hasPermi('hosp:contrast:remove')") @Log(title = "体检项目对比", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") @ApiOperation(value = "删除体检项目对比") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(tjProContrastService.deleteTjProContrastByIds(ids)); } @GetMapping(value = "/getTjProContrast") @ApiOperation(value = "获取体检项目具体参与比对项目接口") public AjaxResult getTjProContrast() { return AjaxResult.success(tjProContrastService.getTjProContrast()); } @PostMapping(value = "/getHistoryContrast") @ApiOperation(value = "获取体检项目具体参与比对项目接口") public AjaxResult getHistoryContrast(@RequestBody TjProContrastPostVo postVo) { if (null != postVo.getTjNumber() && null != postVo.getProIds() && postVo.getProIds().size() > 0) { TjOrder tjOrder = orderService.getOrderByTjNum(postVo.getTjNumber()); if (null != tjOrder) { List> list = new ArrayList<>(); for (Long proId : postVo.getProIds()) { List contrastVo = tjProContrastService.ProContrastVo(String.valueOf(tjOrder.getUserId()), proId); Map map = new HashMap<>(); map.put("proName", projectService.getTjProjectById(String.valueOf(proId)).getProName()); map.put("contrastVo", contrastVo); list.add(map); } return AjaxResult.success(list); } return AjaxResult.error("暂无信息,请检查体检号是否有误!"); } return AjaxResult.error("请输入体检号或选择要比对的项目"); } }