diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java index d68b69125..59e7b74dc 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java @@ -206,7 +206,18 @@ public class IoCollectOrderCodeManController extends BaseController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - List collectOrderCodeMEN = addTagCodeReqeust.getCollectOrderCodeManList(); + List collectOrderCodeMEN = new ArrayList<>(); + if (CollUtil.isNotEmpty(addTagCodeReqeust.getCodeList())) { + for (String code : addTagCodeReqeust.getCodeList()) { + IoCollectOrderCodeMan collectOrderCodeMan = collectOrderCodeManService.findByCode(addTagCodeReqeust.getBillNo(), code); + if (collectOrderCodeMan == null) { + return ResultVOUtils.error("非此单追溯码!"); + } else { + collectOrderCodeMEN.add(collectOrderCodeMan); + } + } + + } else collectOrderCodeMEN = addTagCodeReqeust.getCollectOrderCodeManList(); if (CollUtil.isNotEmpty(collectOrderCodeMEN)) { for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) { collectOrderCodeManService.updateById(collectOrderCodeMan); @@ -218,33 +229,36 @@ public class IoCollectOrderCodeManController extends BaseController { return ResultVOUtils.success("更新成功!"); } - if (CollUtil.isNotEmpty(addTagCodeReqeust.getCodeList())) { - List codeList = addTagCodeReqeust.getCodeList(); - String billNo = addTagCodeReqeust.getBillNo(); - List ioCollectOrderCodeMEN = collectOrderCodeManService.listByBillNo(billNo); - Map codeManMap = ioCollectOrderCodeMEN.stream().collect(Collectors.toMap(IoCollectOrderCodeMan::getUdiCode, x -> x)); - List bizIdFks = new ArrayList<>(); - //codeList 拆零确认码 对 单据的biz进行匹配 匹配上标记是拆零码 - for (int i = 0; i < codeList.size(); i++) { - String code = codeList.get(i); - IoCollectOrderCodeMan ioCollectOrderCodeMan = codeManMap.get(code); - if (ioCollectOrderCodeMan != null) { - //更新业务表为无需确认拆零码、码明细确认拆零字段为true - ioCollectOrderCodeMan.setIsSplitCode(true); - collectOrderCodeManService.updateById(ioCollectOrderCodeMan); - bizIdFks.add(ioCollectOrderCodeMan.getBizIdFk()); - } - } - if (bizIdFks.size() > 0) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.set("splitUnCheck", false); - updateWrapper.in("id", bizIdFks); - collectOrderBizService.update(updateWrapper); - } - return ResultVOUtils.success("更新成功"); - } else { - return ResultVOUtils.error("数据不能为空"); - } + + return ResultVOUtils.error("扫码不能为空!"); + +// if (CollUtil.isNotEmpty(addTagCodeReqeust.getCodeList())) { +// List codeList = addTagCodeReqeust.getCodeList(); +// String billNo = addTagCodeReqeust.getBillNo(); +// List ioCollectOrderCodeMEN = collectOrderCodeManService.listByBillNo(billNo); +// Map codeManMap = ioCollectOrderCodeMEN.stream().collect(Collectors.toMap(IoCollectOrderCodeMan::getUdiCode, x -> x)); +// List bizIdFks = new ArrayList<>(); +// //codeList 拆零确认码 对 单据的biz进行匹配 匹配上标记是拆零码 +// for (int i = 0; i < codeList.size(); i++) { +// String code = codeList.get(i); +// IoCollectOrderCodeMan ioCollectOrderCodeMan = codeManMap.get(code); +// if (ioCollectOrderCodeMan != null) { +// //更新业务表为无需确认拆零码、码明细确认拆零字段为true +// ioCollectOrderCodeMan.setIsSplitCode(true); +// collectOrderCodeManService.updateById(ioCollectOrderCodeMan); +// bizIdFks.add(ioCollectOrderCodeMan.getBizIdFk()); +// } +// } +// if (bizIdFks.size() > 0) { +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.set("splitUnCheck", false); +// updateWrapper.in("id", bizIdFks); +// collectOrderBizService.update(updateWrapper); +// } +// return ResultVOUtils.success("更新成功"); +// } else { +// return ResultVOUtils.error("数据不能为空"); +// } } public String countSameErrMsg(List vailCodeResultResponses) { diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java index 02ec959a1..89869d7d2 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java @@ -38,6 +38,7 @@ import com.glxp.api.util.StringUtils; import com.glxp.api.util.udi.FilterUdiUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.dao.collect.RelCodeBatchMapper; @@ -101,7 +102,6 @@ public class RelCodeBatchService extends ServiceImpl ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper().eq(IoCodeTempEntity::getCode, parentCode)); - if (CollUtil.isNotEmpty(ioCodeTempEntities)) { - IoCodeTempEntity codeTempEntity = ioCodeTempEntities.get(0); - //1、排除掉层级是1的 - UdiEntity udi = FilterUdiUtils.getUdi(parentCode); - if (udi == null) - return; - String udi1 = udi.getUdi(); - UdiProductEntity udiProductEntity = udiProductService.findByNameCode(udi1); - if (udiProductEntity == null) - return; - List navList = this.list(new LambdaQueryWrapper() - .eq(RelCodeBatch::getParentCode, parentCode)); - - // - if(navList == null || navList.size() == 0 ){ - CompanyEntity companyEntity = companyService.findCompany(); - BasicCorpEntity basicCorpEntity = basicCorpService.selectByErpId(codeTempEntity.getSupId()); - AlihealthRelCodeInsertReqeust alihealthRelCodeInsertReqeust = new AlihealthRelCodeInsertReqeust(); - alihealthRelCodeInsertReqeust.setName(basicCorpEntity.getName()); - alihealthRelCodeInsertReqeust.setAppKey(companyEntity.getAppId()); - alihealthRelCodeInsertReqeust.setAppSecret(companyEntity.getAppSecret()); - alihealthRelCodeInsertReqeust.setCustomerId(codeTempEntity.getSupId()); - alihealthRelCodeInsertReqeust.setCode(parentCode); - alihealthRelCodeInsertReqeust.setRefEntId(companyEntity.getRefEntId()); - - BaseResponse baseResponse = spGetHttpClient.relCodeInsert(alihealthRelCodeInsertReqeust); - if(baseResponse.getCode() == 20000){ - System.out.println("sda"+baseResponse.getData().toString()); - AlihealthKytSinglerelationResponse alihealthKytSinglerelationResponse = JSONUtil.toBean(baseResponse.getData().toString(),AlihealthKytSinglerelationResponse.class); - // 返回的码关联关系进行插入 - RelCodeBatch relCodeBatch = alihealthKytSinglerelationResponse.disposeRelCodeBatch( alihealthRelCodeInsertReqeust.getCustomerId()); - RelCodeBatch relCodeBatchOne = relCodeBatchService.getOne(new QueryWrapper().eq("productCode",relCodeBatch.getProductCode()) - .last("limit 1") - ); - if(Objects.isNull(relCodeBatchOne)){ - relCodeBatch.setCreateUser(alihealthRelCodeInsertReqeust.getCustomerId()); - relCodeBatch.setCreateTime(new Date()); - relCodeBatchService.save(relCodeBatch); - - }else { - relCodeBatchService.update(relCodeBatch,new QueryWrapper().eq("productCode",relCodeBatch.getProductCode())); - } - Integer id = Objects.isNull(relCodeBatch.getId()) ? relCodeBatchOne.getId() :relCodeBatch.getId(); - // 进行查询 - List list = alihealthKytSinglerelationResponse.disposeRelRodeDetailList(id); - if(list!=null && list.size()>0){ - List curCodeList = new ArrayList(); - for (RelCodeDetail relCodeDetail : list) { - curCodeList.add(relCodeDetail.getCurCode()); + + ThreadUtil.execAsync(() -> { + List ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper().eq(IoCodeTempEntity::getCode, parentCode)); + if (CollUtil.isNotEmpty(ioCodeTempEntities)) { + IoCodeTempEntity codeTempEntity = ioCodeTempEntities.get(0); + //1、排除掉层级是1的 + UdiEntity udi = FilterUdiUtils.getUdi(parentCode); + + if (udi == null) + return; + String udi1 = udi.getUdi(); + UdiProductEntity udiProductEntity = udiProductService.findByNameCode(udi1); + if (udiProductEntity == null) + return; + List navList = this.list(new LambdaQueryWrapper() + .eq(RelCodeBatch::getParentCode, parentCode)); + + // + if (navList == null || navList.size() == 0) { + CompanyEntity companyEntity = companyService.findCompany(); + BasicCorpEntity basicCorpEntity = basicCorpService.selectByErpId(codeTempEntity.getSupId()); + AlihealthRelCodeInsertReqeust alihealthRelCodeInsertReqeust = new AlihealthRelCodeInsertReqeust(); + alihealthRelCodeInsertReqeust.setName(basicCorpEntity.getName()); + alihealthRelCodeInsertReqeust.setAppKey(companyEntity.getAppId()); + alihealthRelCodeInsertReqeust.setAppSecret(companyEntity.getAppSecret()); + alihealthRelCodeInsertReqeust.setCustomerId(codeTempEntity.getSupId()); + alihealthRelCodeInsertReqeust.setCode(parentCode); + alihealthRelCodeInsertReqeust.setRefEntId(companyEntity.getRefEntId()); + + BaseResponse baseResponse = spGetHttpClient.relCodeInsert(alihealthRelCodeInsertReqeust); + if (baseResponse.getCode() == 20000) { + System.out.println("sda" + baseResponse.getData().toString()); + AlihealthKytSinglerelationResponse alihealthKytSinglerelationResponse = JSONUtil.toBean(baseResponse.getData().toString(), AlihealthKytSinglerelationResponse.class); + // 返回的码关联关系进行插入 + RelCodeBatch relCodeBatch = alihealthKytSinglerelationResponse.disposeRelCodeBatch(alihealthRelCodeInsertReqeust.getCustomerId()); + RelCodeBatch relCodeBatchOne = relCodeBatchService.getOne(new QueryWrapper().eq("productCode", relCodeBatch.getProductCode()) + .last("limit 1") + ); + if (Objects.isNull(relCodeBatchOne)) { + relCodeBatch.setCreateUser(alihealthRelCodeInsertReqeust.getCustomerId()); + relCodeBatch.setCreateTime(new Date()); + relCodeBatchService.save(relCodeBatch); + + } else { + relCodeBatchService.update(relCodeBatch, new QueryWrapper().eq("productCode", relCodeBatch.getProductCode())); } - relCodeDetailService.remove(new QueryWrapper().in("curCode",curCodeList)); + Integer id = Objects.isNull(relCodeBatch.getId()) ? relCodeBatchOne.getId() : relCodeBatch.getId(); + // 进行查询 + List list = alihealthKytSinglerelationResponse.disposeRelRodeDetailList(id); + if (list != null && list.size() > 0) { + List curCodeList = new ArrayList(); + for (RelCodeDetail relCodeDetail : list) { + curCodeList.add(relCodeDetail.getCurCode()); + } + relCodeDetailService.remove(new QueryWrapper().in("curCode", curCodeList)); - relCodeDetailService.saveBatch(list); - } + relCodeDetailService.saveBatch(list); + } - // 插入成功就重新查询一下 - navList = this.list(new LambdaQueryWrapper() - .eq(RelCodeBatch::getCurCode, parentCode)); + // 插入成功就重新查询一下 + navList = this.list(new LambdaQueryWrapper() + .eq(RelCodeBatch::getCurCode, parentCode)); - if(StringUtils.isEmpty(companyEntity.getRefEntId())){ - companyEntity.setRefEntId(alihealthKytSinglerelationResponse.getRefEntId()); - companyService.modifyCompany(companyEntity); - } - }else { - if(StringUtils.isNotEmpty(companyEntity.getRefEntId())){ - companyEntity.setRefEntId(null); - companyService.modifyCompany(companyEntity); + if (StringUtils.isEmpty(companyEntity.getRefEntId())) { + companyEntity.setRefEntId(alihealthKytSinglerelationResponse.getRefEntId()); + companyService.modifyCompany(companyEntity); + } + } else { + if (StringUtils.isNotEmpty(companyEntity.getRefEntId())) { + companyEntity.setRefEntId(null); + companyService.modifyCompany(companyEntity); + } + log.error(baseResponse.getMessage()); } - log.error(baseResponse.getMessage()); } - } - if ((udiProductEntity != null && "1".equals(udiProductEntity.getPackLevel())) - || (CollUtil.isNotEmpty(navList)) - ) { - //打上匹配到了药品关联关系的标记 - for (int i = 0; i < ioCodeTempEntities.size(); i++) { - IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); - ioCodeTempEntity.setDrugLink(1); - ioCodeTempDao.updateById(ioCodeTempEntity); - } - } else { - ThreadUtil.execAsync(() -> { + if ((udiProductEntity != null && "1".equals(udiProductEntity.getPackLevel())) + || (CollUtil.isNotEmpty(navList)) + ) { + //打上匹配到了药品关联关系的标记 + for (int i = 0; i < ioCodeTempEntities.size(); i++) { + IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); + ioCodeTempEntity.setDrugLink(1); + ioCodeTempDao.updateById(ioCodeTempEntity); + } + } else { asynThreadUpdateIoCodeTempEntity(parentCode, ioCodeTempEntities); - }); + } } - } + }); + } @@ -411,7 +415,7 @@ public class RelCodeBatchService extends ServiceImpl relCodeDetails = codeMap.get(StrUtil.isNotBlank(parentCode) ? parentCode : "0"); - if (relCodeDetails == null){ + if (relCodeDetails == null) { List newRelCodeDetails = new ArrayList<>(); newRelCodeDetails.add(relCodeDetail); - codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0",newRelCodeDetails); - }else { + codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0", newRelCodeDetails); + } else { relCodeDetails.add(relCodeDetail); - codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0",relCodeDetails); + codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0", relCodeDetails); } } } //开始处理codeMap - if (!codeMap.isEmpty()){ + if (!codeMap.isEmpty()) { Map batchIdFkMap = new HashMap<>(); List addRelCodeDetail = new ArrayList<>(); RelCodeBatch updateDrugLevelRelCodeBatch = null; @@ -506,9 +510,9 @@ public class RelCodeBatchService extends ServiceImpl list = entry.getValue(); RelCodeBatch addRelCodeBatch = new RelCodeBatch(); - BeanUtils.copyProperties(relCodeBatch,addRelCodeBatch); + BeanUtils.copyProperties(relCodeBatch, addRelCodeBatch); addRelCodeBatch.setParentCode(key); - if ("0".equals(key)){ + if ("0".equals(key)) { RelCodeDetail relCodeDetail = list.get(0); String curCode = relCodeDetail.getCurCode(); String diStr = FilterUdiUtils.getUdi(curCode).getUdi(); @@ -517,14 +521,14 @@ public class RelCodeBatchService extends ServiceImpl list = relCodeDetailService.list(new LambdaQueryWrapper().eq(RelCodeDetail::getParentCode, curCode)); - if (CollUtil.isNotEmpty(list)){ + if (CollUtil.isNotEmpty(list)) { RelCodeDetail relCodeDetail = list.get(0); Integer packLayer = relCodeDetail.getPackLayer(); - if (packLayer == 2){ + if (packLayer == 2) { item.setThreeLevelCount(1); item.setTwoLevelCount(list.size()); @@ -580,12 +585,12 @@ public class RelCodeBatchService extends ServiceImpl twoRelCodeBatchs = this.list(new LambdaQueryWrapper().in(RelCodeBatch::getCurCode, twoCurCodes)); - if (CollUtil.isNotEmpty(twoRelCodeBatchs)){ - twoRelCodeBatchs.forEach( t -> { + if (CollUtil.isNotEmpty(twoRelCodeBatchs)) { + twoRelCodeBatchs.forEach(t -> { this.updateDrugLevelCount(t); }); } - }else if (packLayer == 1){ + } else if (packLayer == 1) { item.setThreeLevelCount(0); item.setTwoLevelCount(1); item.setOneLevelCount(list.size());