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.
udi-wms-java/src/main/java/com/glxp/api/controller/basic/BasicSkPrescribeController....

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("后台已开始下载,请稍后刷新查看!");
}
}