From be9014f5d134e0cd613e7a91355a801f23f5ceb3 Mon Sep 17 00:00:00 2001 From: qiuyt Date: Mon, 11 Nov 2024 17:16:58 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=20=E5=BC=80=E5=90=AF=E5=B0=B1=E8=BF=9B=E8=A1=8C=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E6=89=80=E6=9C=89=E7=A0=81=E5=8C=85=E6=8B=AC=E4=B8=8B?= =?UTF-8?q?=E7=BA=A7=E7=9A=84=E7=A0=81=E8=BF=9B=E8=A1=8C=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E6=9C=89=E6=B2=A1=E6=9C=89=E4=BC=A0=E8=BF=87=20=E4=BC=A0?= =?UTF-8?q?=E8=BF=87=E4=BA=86=E5=B0=B1=E4=B8=8D=E8=83=BD=E5=86=8D=E4=BC=A0?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 1 + .../api/entity/collect/RelCodeDetail.java | 2 + .../com/glxp/api/http/ErpBasicClient.java | 14 +--- .../collect/IoCollectOrderBackupService.java | 67 ++++++++++++++----- .../service/collect/RelCodeDetailService.java | 14 ++-- 5 files changed, 65 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index d71c925e6..613cea9d6 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -21,6 +21,7 @@ import com.glxp.api.res.collect.RelCodeDetailResponse; import com.glxp.api.res.inout.IoOrderDetailCodeResponse; import com.glxp.api.res.inout.VailCodeResultResponse; import com.glxp.api.service.collect.*; +import com.glxp.api.service.collect.RelCodeDetailService; import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inv.impl.InvProductServiceNew; import com.glxp.api.vo.basic.InvProductNewVo; diff --git a/src/main/java/com/glxp/api/entity/collect/RelCodeDetail.java b/src/main/java/com/glxp/api/entity/collect/RelCodeDetail.java index e88ea5409..c1a10d0e0 100644 --- a/src/main/java/com/glxp/api/entity/collect/RelCodeDetail.java +++ b/src/main/java/com/glxp/api/entity/collect/RelCodeDetail.java @@ -52,4 +52,6 @@ public class RelCodeDetail implements Serializable { @ApiModelProperty(value="产品批次ID外键") private Integer batchIdFk; + private static final long serialVersionUID = 1L; + } diff --git a/src/main/java/com/glxp/api/http/ErpBasicClient.java b/src/main/java/com/glxp/api/http/ErpBasicClient.java index 06c830e00..a773bb7c0 100644 --- a/src/main/java/com/glxp/api/http/ErpBasicClient.java +++ b/src/main/java/com/glxp/api/http/ErpBasicClient.java @@ -1,33 +1,23 @@ package com.glxp.api.http; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; -import com.glxp.api.entity.basic.BasicSkProjectDetailEntity; -import com.glxp.api.entity.basic.BasicSkProjectEntity; -import com.glxp.api.entity.basic.BasicSkSickerEntity; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.thrsys.*; -import com.glxp.api.exception.JsonException; import com.glxp.api.http.req.UdiwmsBusTypeRequest; import com.glxp.api.http.req.UdiwmsUnitRequest; import com.glxp.api.req.basic.*; import com.glxp.api.req.collect.PostCollectOrderRequest; -import com.glxp.api.req.inout.PostOrderRequest; import com.glxp.api.req.thrsys.*; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkPrescribeResponse; -import com.glxp.api.res.basic.BasicSkProjectDetailResponse; import com.glxp.api.res.basic.BasicSkProjectResponse; import com.glxp.api.res.basic.BasicSkSickerResponse; import com.glxp.api.res.chs.YbHcflEntityResponse; -import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.thrsys.ThrCorpsResponse; -import com.glxp.api.res.thrsys.ThrOrderResponse; import com.glxp.api.res.thrsys.ThrProductsResponse; import com.glxp.api.res.thrsys.UdiwmsWarehouseDetail; import com.glxp.api.service.thrsys.ThrSystemService; @@ -489,9 +479,9 @@ public class ErpBasicClient { } //TODO 阿超改==校验码是和下级所有码否传过了逻辑还没写 /** - * 校验码是和下级所有码否传过了 + * 校验码是和下级所有码否上传医保过了(返回的list就是码已经重复上传到医保的了) */ - public BaseResponse collectOrderCheckCode(List codeList) { + public BaseResponse collectOrderCheckCodeUploading(List codeList) { return ResultVOUtils.success(new ArrayList<>()); } } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java index 321c84045..baabbb483 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java @@ -8,18 +8,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; -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.Constant; import com.glxp.api.constant.ConstantStatus; -import com.glxp.api.controller.collect.IoCollectCodeBackupController; import com.glxp.api.dao.collect.IoCollectOrderBackupMapper; import com.glxp.api.dao.inout.IoCodeTempDao; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.CompanyProductRelevanceEntity; -import com.glxp.api.entity.basic.EntrustReceEntity; import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity; import com.glxp.api.entity.collect.*; import com.glxp.api.entity.inout.IoCodeTempEntity; @@ -35,7 +32,6 @@ import com.glxp.api.req.inout.ReviewFinishRequest; import com.glxp.api.res.basic.BasicSkPrescribeResponse; import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.IoCollectOrderResponse; -import com.glxp.api.service.auth.impl.AuthAdminServiceImpl; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.SysWorkplaceDocumentService; import com.glxp.api.service.basic.UdiRlSupService; @@ -104,7 +100,10 @@ public class IoCollectOrderBackupService extends ServiceImpl filterList(CollectOrderRequest collectOrderRequest) { if (collectOrderRequest == null) { return Collections.emptyList(); @@ -163,7 +162,7 @@ public class IoCollectOrderBackupService extends ServiceImpl stringBaseResponse = spGetHttp.reviewOrder(reviewFinishRequest, authAdmin.getId() + ""); }); } - updateReview(authAdmin,orderEntity); + updateReview(authAdmin, orderEntity); } } else if (IntUtil.value(sysWorkplaceDocumentEntity.getIsMatching()) == 0) { //todo 根据单据类型上传医保或者第三方系统 @@ -244,6 +243,40 @@ public class IoCollectOrderBackupService extends ServiceImpl baseResponse = erpBasicClient.postOrder(orderRequest); + // 判断此单据 有没有码已经上传过了一个有上传就进行错误返回 + String paramValue = systemParamConfigService.selectValueByParamKey("checkCodeUploading"); + if (StrUtil.isNotEmpty(paramValue) && paramValue.equals("0")) { + List codeList = new ArrayList<>(); + for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) { + String[] codes = collectOrderBizResponse.getFinishUdiCode().split(","); + // 遍历fruits数组 + for (String code : codes) { + if (StrUtil.isNotBlank(code)) { + List relCodeDetailList = relCodeDetailService.getAllNext(code); + if (relCodeDetailList != null && relCodeDetailList.size() > 0) { + for (RelCodeDetail relCodeDetail : relCodeDetailList) { + codeList.add(relCodeDetail.getCurCode()); + } + + } + + } + + } + } + BaseResponse baseResponseCheckCode = erpBasicClient.collectOrderCheckCodeUploading(codeList); + if (baseResponseCheckCode.getCode() == 20000) { + List listCheckCode = baseResponseCheckCode.getData(); + if (listCheckCode == null || listCheckCode.size() > 0) { + log.error("单据的所有码有已经传输过医保的,请核实"); + throw new JsonException("此单据的所有码有已经传输过医保的,请核实" + baseResponse.getMessage()); + } + } else { + throw new JsonException("查询码关联关系服务出差," + baseResponse.getMessage()); + } + } + + log.debug("单据返回=========" + baseResponse); if (baseResponse.getCode() == 20000) { // 触发上传 转发至中继服务 到外网 再到国家同步库 @@ -251,7 +284,7 @@ public class IoCollectOrderBackupService extends ServiceImpl stringBaseResponse = new BaseResponse<>(); try { stringBaseResponse = erpBasicClient.collectOrderUpload(orderRequest); - }catch (Exception e){ + } catch (Exception e) { throw new JsonException("触发上传 转发至中继服务 到外网 再到国家同步库 接口服务出错:" + stringBaseResponse.getMessage()); } }); @@ -307,11 +340,11 @@ public class IoCollectOrderBackupService extends ServiceImpl codeDetail(Integer bizIdFk) { List reList = new ArrayList<>(); - List splitCodes = collectOrderCodeAutoService.list(new LambdaQueryWrapper().eq(IoCollectOrderCodeAuto::getBizIdFk,bizIdFk)); - List manList = collectOrderCodeManService.list(new LambdaQueryWrapper().eq(IoCollectOrderCodeMan::getBizIdFk,bizIdFk)); + List splitCodes = collectOrderCodeAutoService.list(new LambdaQueryWrapper().eq(IoCollectOrderCodeAuto::getBizIdFk, bizIdFk)); + List manList = collectOrderCodeManService.list(new LambdaQueryWrapper().eq(IoCollectOrderCodeMan::getBizIdFk, bizIdFk)); - if (CollUtil.isNotEmpty(splitCodes)){ - splitCodes.forEach( item -> { + if (CollUtil.isNotEmpty(splitCodes)) { + splitCodes.forEach(item -> { IoCollectOrderCodeMan ioCollectOrderCodeMan = new IoCollectOrderCodeMan(); - BeanUtils.copyProperties(item,ioCollectOrderCodeMan); + BeanUtils.copyProperties(item, ioCollectOrderCodeMan); reList.add(ioCollectOrderCodeMan); }); } - if (CollUtil.isNotEmpty(manList)){ - manList.forEach( item -> { + if (CollUtil.isNotEmpty(manList)) { + manList.forEach(item -> { reList.add(item); }); } diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java index 797df1e56..5e7a2066e 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java @@ -15,10 +15,7 @@ import com.glxp.api.util.udi.FilterUdiUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Currency; -import java.util.List; +import java.util.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.dao.collect.RelCodeDetailMapper; @@ -137,8 +134,17 @@ public class RelCodeDetailService extends ServiceImpl getAllNext(String code) { + RelCodeDetail relCodeDetail = this.baseMapper.selectOne( + new LambdaQueryWrapper().eq(RelCodeDetail::getCurCode, code) + ); + if(Objects.isNull(relCodeDetail)){ + relCodeDetail = new RelCodeDetail(); + relCodeDetail.setCurCode(code); + } List list = new ArrayList<>(); + list.add(relCodeDetail); fetchAllChildren(code, list); + return list; }