package com.glxp.api.controller.thrsys; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageInfo; 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.thrsys.ThirdAliDrug; import com.glxp.api.req.alihealth.AlihealthKytDrugrescodeReqeust; import com.glxp.api.req.alihealth.local.AlihealthThirdAliDrugInsertReqeust; import com.glxp.api.req.thrsys.FilterThrCorpRequest; import com.glxp.api.req.thrsys.ThirdAliDrugRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.collect.RelCodeDetailResponse; import com.glxp.api.res.thrsys.ThrCorpsResponse; import com.glxp.api.service.auth.AuthAliUserService; 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.List; @RestController @Slf4j public class ThirdAliDrugController extends BaseController { @Resource private ThirdAliDrugService thirdAliDrugService; @Resource private AlihealthBusController alihealthBusController; @Resource private AuthAliUserService authAliUserService; /** * 上传文件保存 * * @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()) ) { return ResultVOUtils.success("查询参数不能为空"); } List list = thirdAliDrugService.filterList(thirdAliDrug); if(list == null || list.size() == 0){ AuthAliUser authAliUser = authAliUserService.getOne(); AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust = new AlihealthThirdAliDrugInsertReqeust(); alihealthThirdAliDrugInsertReqeust.setErpId(authAliUser.getErpid()); alihealthThirdAliDrugInsertReqeust.setAppSecret(authAliUser.getAppsecret()); AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = new AlihealthKytDrugrescodeReqeust(); alihealthKytDrugrescodeReqeust.setPhysic_name(thirdAliDrug.getCpmctymc()); alihealthKytDrugrescodeReqeust.setApproval_licence_no(thirdAliDrug.getApprovalNum()); alihealthKytDrugrescodeReqeust.setPage_size(100); alihealthKytDrugrescodeReqeust.setPage(1); alihealthKytDrugrescodeReqeust.setApp_key(authAliUser.getAppkey()); alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid()); alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust); try { BaseResponse baseResponse = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); if (baseResponse.getCode() == 20000) { if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) { list = thirdAliDrugService.filterList(thirdAliDrug); } else { log.info("供应商平台获取阿里和国家库码段信息===未查到产品信息"); } } else { log.info("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); // udiProductEntity.setBasicPrductRemak8("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); // error = "供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage(); } } catch (Exception e) { log.info("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage()); } } PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); 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); } }