You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
4.3 KiB
Java
98 lines
4.3 KiB
Java
package com.glxp.api.controller.basic;
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.thread.ThreadUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.glxp.api.annotation.CusRedissonAnnotation;
|
|
import com.glxp.api.common.enums.ResultEnum;
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
import com.glxp.api.constant.RedissonCacheKey;
|
|
import com.glxp.api.controller.BaseController;
|
|
import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
|
|
import com.glxp.api.entity.basic.BasicSkPrescribeItemEntity;
|
|
import com.glxp.api.entity.basic.BasicSkSickerEntity;
|
|
import com.glxp.api.req.basic.BasicProductTypeRequest;
|
|
import com.glxp.api.req.basic.BasicSkPrescribeRequest;
|
|
import com.glxp.api.req.basic.GetSickPrescribeRequest;
|
|
import com.glxp.api.req.basic.GetSickRequest;
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
import com.glxp.api.res.basic.BasicSkPrescribeResponse;
|
|
import com.glxp.api.res.basic.BasicSkSickerResponse;
|
|
import com.glxp.api.service.BasicSkPrescribeItemService;
|
|
import com.glxp.api.service.basic.BasicSkPrescribeService;
|
|
import com.glxp.api.service.basic.BasicSkSickerService;
|
|
import com.glxp.api.vo.basic.BasicSkPrescribeDetailVo;
|
|
import org.springframework.validation.BindingResult;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* 病人处方
|
|
*/
|
|
@RestController
|
|
public class BasicSkPrescribeController extends BaseController {
|
|
|
|
@Resource
|
|
BasicSkSickerService basicSkSickerService;
|
|
|
|
@Resource
|
|
BasicSkPrescribeService basicSkPrescribeService;
|
|
|
|
@Resource
|
|
BasicSkPrescribeItemService basicSkPrescribeItemService;
|
|
|
|
|
|
@GetMapping("/udiwms/basic/sk/prescribe/filter")
|
|
public BaseResponse filterSicker(BasicSkPrescribeRequest basicSkPrescribeRequest) {
|
|
List<BasicSkPrescribeResponse> basicSkPrescribeResponses = basicSkPrescribeService.filterList(basicSkPrescribeRequest);
|
|
PageInfo<BasicSkPrescribeResponse> pageInfo = new PageInfo<>(basicSkPrescribeResponses);
|
|
PageSimpleResponse<BasicSkPrescribeResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
pageSimpleResponse.setList(basicSkPrescribeResponses);
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
}
|
|
|
|
@GetMapping("/udiwms/basic/sk/prescribe/detail")
|
|
public BaseResponse detail(String prescribeCode) {
|
|
if (StrUtil.isBlank(prescribeCode)) {
|
|
return ResultVOUtils.error(500, "缺少请求标识");
|
|
}
|
|
BasicSkPrescribeEntity prescribe = basicSkPrescribeService.getById(prescribeCode);
|
|
if (prescribe == null) {
|
|
return ResultVOUtils.error(500, "未找到处方");
|
|
}
|
|
BasicSkSickerEntity sicker = basicSkSickerService.getById(prescribe.getSickerCode());
|
|
if (sicker == null) {
|
|
return ResultVOUtils.error(500, "未找到患者");
|
|
}
|
|
List<BasicSkPrescribeItemEntity> list = basicSkPrescribeItemService.listByPrescribeCode(prescribeCode);
|
|
BasicSkPrescribeDetailVo basicSkPrescribeDetailVo = BeanUtil.copyProperties(prescribe, BasicSkPrescribeDetailVo.class);
|
|
basicSkPrescribeDetailVo.setItems(list);
|
|
basicSkPrescribeDetailVo.setSicker(BeanUtil.copyProperties(sicker, BasicSkSickerResponse.class));
|
|
return ResultVOUtils.success(basicSkPrescribeDetailVo);
|
|
}
|
|
|
|
|
|
@CusRedissonAnnotation(cacheName = RedissonCacheKey.DL_SICKER_PRECRIBE, key = {"#getSickPrescribeRequest.sickCode"}, waitTime = 3, timeOutMsg = "后台正在下载,请勿重复提交")
|
|
@PostMapping("/udiwms/basic/sk/prescribe/download")
|
|
public BaseResponse sickerPrescribeDl(@RequestBody GetSickPrescribeRequest getSickPrescribeRequest, BindingResult bindingResult) {
|
|
|
|
if (bindingResult.hasErrors()) {
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
}
|
|
ThreadUtil.execAsync(() -> {
|
|
basicSkPrescribeService.downloadSickerPrescribe(getSickPrescribeRequest);
|
|
});
|
|
return ResultVOUtils.success("后台已开始下载,请稍后刷新查看!");
|
|
}
|
|
|
|
|
|
}
|