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<TjProContrast> list = tjProContrastService.selectTjProContrastList(tjProContrast);
|
return getDataTable(list);
|
}
|
|
|
/**
|
* 查询体检项目对比列表
|
*/
|
//@PreAuthorize("@ss.hasPermi('hosp:contrast:list')")
|
@GetMapping("/getList")
|
@ApiOperation(value = "查询体检项目对比列表(数据对比展示处用)")
|
public AjaxResult getList() {
|
LambdaQueryWrapper<TjProContrast> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjProContrast::getIsContrast, 1);
|
List<TjProContrast> 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<TjProContrast> list = tjProContrastService.selectTjProContrastList(tjProContrast);
|
ExcelUtil<TjProContrast> util = new ExcelUtil<TjProContrast>(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> 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<Map<String, Object>> list = new ArrayList<>();
|
for (Long proId : postVo.getProIds()) {
|
List<TjProContrastVo> contrastVo = tjProContrastService.ProContrastVo(String.valueOf(tjOrder.getUserId()), proId);
|
Map<String, Object> 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("请输入体检号或选择要比对的项目");
|
}
|
|
}
|