package com.glxp.api.controller.thrsys; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.glxp.api.annotation.CusRedissonAnnotation; import com.glxp.api.annotation.RepeatSubmit; 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.controller.alihealth.AlihealthBusController; import com.glxp.api.entity.auth.AuthAliUser; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.thrsys.ThirdAliDrug; import com.glxp.api.req.alihealth.AlihealthKytDrugrescodeReqeust; import com.glxp.api.req.alihealth.local.AlihealthThirdAliDrugInsertReqeust; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.thrsys.ThirdAliDrugRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.service.auth.AuthAliUserService; import com.glxp.api.service.basic.UdiProductService; import com.glxp.api.service.thrsys.ThirdAliDrugService; import com.glxp.api.util.StringUtils; import lombok.extern.slf4j.Slf4j; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @RestController @Slf4j public class ThirdAliDrugController extends BaseController { @Resource private ThirdAliDrugService thirdAliDrugService; @Resource private AlihealthBusController alihealthBusController; @Resource private AuthAliUserService authAliUserService; @Resource private UdiProductService udiProductService; /** * 上传文件保存 * * @param uuid * @param file * @return */ @RepeatSubmit() @CusRedissonAnnotation(cacheName = RedissonCacheKey.XML_UPLOAD_ALI, key = {"#uuid"}, timeOutMsg = "系统正在处理,请勿重复上传") @PostMapping("/udiwms/aliDrug/txtUpload") public BaseResponse txtUpload(@RequestParam("uuid") String uuid, @RequestParam("file") MultipartFile file) { thirdAliDrugService.txtUpload(file); return ResultVOUtils.successMsg("上传成功!"); } @GetMapping("/udiwms/aliDrug/getDrugLevelList") public BaseResponse getDrugLevelList(ThirdAliDrugRequest thirdAliDrug, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } if (StrUtil.isEmpty(thirdAliDrug.getApprovalNum()) && StrUtil.isEmpty(thirdAliDrug.getNameCode()) && StrUtil.isEmpty(thirdAliDrug.getCpmctymc()) && StrUtil.isEmpty(thirdAliDrug.getManufacturer()) ) { return ResultVOUtils.success("查询参数不能为空"); } FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); filterUdiRelRequest.setUuid(thirdAliDrug.getUuid()); List udiInfoEntities = udiProductService.filterAllUdiInfo(filterUdiRelRequest); List nameCodeIn = new ArrayList<>(); if (udiInfoEntities != null && udiInfoEntities.size() > 0) { for (UdiProductEntity udiInfoEntity : udiInfoEntities) { if (StringUtils.isNotEmpty(udiInfoEntity.getNameCode())) { nameCodeIn.add(udiInfoEntity.getNameCode()); } } } thirdAliDrug.setNameCodeIn(nameCodeIn); List list = new ArrayList<>(); // 不查本地库全查阿里的库 // 查询国家库的阿里数据信息 AuthAliUser authAliUser = authAliUserService.getOne(); AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust = new AlihealthThirdAliDrugInsertReqeust(); BeanUtil.copyProperties(thirdAliDrug,alihealthThirdAliDrugInsertReqeust); alihealthThirdAliDrugInsertReqeust.setErpId(authAliUser.getErpid()); alihealthThirdAliDrugInsertReqeust.setAppSecret(authAliUser.getAppsecret()); alihealthThirdAliDrugInsertReqeust.setNameCodeIn(nameCodeIn); alihealthThirdAliDrugInsertReqeust.setSelectCodeRelMark(false); AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = new AlihealthKytDrugrescodeReqeust(); alihealthKytDrugrescodeReqeust.setPhysic_name(thirdAliDrug.getCpmctymc()); alihealthKytDrugrescodeReqeust.setApproval_licence_no(thirdAliDrug.getApprovalNum()); alihealthKytDrugrescodeReqeust.setPage_size(200); alihealthKytDrugrescodeReqeust.setPage(1); alihealthKytDrugrescodeReqeust.setApp_key(authAliUser.getAppkey()); alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid()); alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust); Integer total = 0; try { BaseResponse> baseResponse = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); if (baseResponse.getCode() == 20000) { if (!CollUtil.isEmpty(baseResponse.getData().getList())){ list = baseResponse.getData().getList(); total = baseResponse.getData().getTotal(); } } else { log.error("获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); } } catch (Exception e) { log.error("获取阿里和国家库码段信息出现错误===" + e.getMessage()); } PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(Long.valueOf(total)); pageSimpleResponse.setList(list); return ResultVOUtils.success(pageSimpleResponse); } @GetMapping("/udiwms/aliDrug/getDrugLevelListBycode") public BaseResponse getDrugLevelListBycode(ThirdAliDrugRequest thirdAliDrug, BindingResult bindingResult) { String nameCode = thirdAliDrug.getNameCode(); if (StrUtil.isEmpty(nameCode)) { return ResultVOUtils.error("标识参数不能为空"); } ThirdAliDrug one = thirdAliDrugService.getOne(new LambdaQueryWrapper().eq(ThirdAliDrug::getNameCode, nameCode)); if (one == null) { return ResultVOUtils.error("标识参数错误"); } List list = thirdAliDrugService.list(new LambdaQueryWrapper() .eq(ThirdAliDrug::getApprovalNum, one.getApprovalNum()) .eq(ThirdAliDrug::getCpmctymc, one.getCpmctymc()) .eq(ThirdAliDrug::getForm, one.getForm()) .eq(ThirdAliDrug::getBzgg, one.getBzgg()) .eq(ThirdAliDrug::getPackRatio, one.getPackRatio())); return ResultVOUtils.success(list); } }