长泰上传问题

dev_unify
yewj 7 months ago
parent ae7bcaf284
commit fb20732839

@ -42,6 +42,8 @@ import com.glxp.api.service.inout.IoCheckInoutService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.*;
import lombok.extern.slf4j.Slf4j;
import org.jfree.util.Log;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
@ -52,6 +54,7 @@ import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBackupMapper, IoCollectOrderBackup> {
@ -247,71 +250,9 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
}
updateReview(authAdmin, orderEntity);
}
} else if (IntUtil.value(sysWorkplaceDocumentEntity.getIsMatching()) == 0) {
//todo 根据单据类型上传医保或者第三方系统
PostCollectOrderRequest orderRequest = new PostCollectOrderRequest();
orderRequest.setThirdSys("thirdId");
orderRequest.setWebTitle(WEB_TITLE);
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
collectOrderBizRequest.setOrderIdFk(collectOrder.getBillNo());
List<CollectOrderBizResponse> collectOrderBizResponses = combieOrderDetail(collectOrderBizRequest);
collectOrder.setCollectOrderBizResponseList(collectOrderBizResponses);
List<IoCollectCodeBackup> list = ioCollectCodeBackService.list(new LambdaQueryWrapper<IoCollectCodeBackup>().eq(IoCollectCodeBackup::getBillNo, collectOrder.getBillNo()));
collectOrder.setCodeList(list);
List<IoCollectOrderBackup> collectOrderList = new ArrayList<>();
collectOrderList.add(collectOrder);
orderRequest.setCollectOrderList(collectOrderList);
// 判断此单据 有没有码已经上传过了一个有上传就进行错误返回
String paramValue = systemParamConfigService.selectValueByParamKey("checkCodeUploading");
if (StrUtil.isNotEmpty(paramValue) && paramValue.equals("0")) {
List<String> codeList = new ArrayList<>();
for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) {
String[] codes = collectOrderBizResponse.getFinishUdiCode().split(",");
// 遍历fruits数组
for (String code : codes) {
if (StrUtil.isNotBlank(code)) {
List<RelCodeDetail> relCodeDetailList = relCodeDetailService.getAllNext(code);
if (relCodeDetailList != null && relCodeDetailList.size() > 0) {
for (RelCodeDetail relCodeDetail : relCodeDetailList) {
codeList.add(relCodeDetail.getCurCode());
}
}
}
}
}
BaseResponse<List> baseResponseCheckCode = erpBasicClient.collectOrderCheckCodeUploading(codeList);
if (baseResponseCheckCode.getCode() == 20000) {
List listCheckCode = baseResponseCheckCode.getData();
if (listCheckCode == null || listCheckCode.size() > 0) {
log.error("单据的所有码有已经传输过医保的,请核实");
throw new JsonException("此单据的所有码有已经传输过医保的,请核实" + baseResponseCheckCode.getMessage());
}
} else {
throw new JsonException("查询码关联关系服务出错," + baseResponseCheckCode.getMessage());
}
}
// 医保上传
BaseResponse<BasicSkPrescribeResponse> baseResponse = erpBasicClient.postOrder(orderRequest);
log.debug("单据返回=========" + baseResponse);
if (baseResponse.getCode() == 20000) {
// 触发上传 转发至中继服务 到外网 再到国家同步库
ThreadUtil.execAsync(() -> {
BaseResponse<String> stringBaseResponse = new BaseResponse<>();
try {
stringBaseResponse = erpBasicClient.collectOrderUpload(orderRequest);
} catch (Exception e) {
throw new JsonException("触发上传 转发至中继服务 到外网 再到国家同步库 接口服务出错:" + stringBaseResponse.getMessage());
}
});
} else {
throw new JsonException("连接第三方系统接口服务出错," + baseResponse.getMessage());
}
}
uploadThrid(collectOrder);
// //插入处方备份表
// IoCollectOrderBackup ioCollectOrderBackup = new IoCollectOrderBackup();
// BeanUtils.copyProperties(collectOrder, ioCollectOrderBackup);
@ -330,6 +271,72 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
// }
}
public void uploadThrid(IoCollectOrderBackup collectOrder) {
//todo 根据单据类型上传医保或者第三方系统
PostCollectOrderRequest orderRequest = new PostCollectOrderRequest();
orderRequest.setThirdSys("thirdId");
orderRequest.setWebTitle(WEB_TITLE);
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
collectOrderBizRequest.setOrderIdFk(collectOrder.getBillNo());
List<CollectOrderBizResponse> collectOrderBizResponses = combieOrderDetail(collectOrderBizRequest);
collectOrder.setCollectOrderBizResponseList(collectOrderBizResponses);
List<IoCollectCodeBackup> list = ioCollectCodeBackService.list(new LambdaQueryWrapper<IoCollectCodeBackup>().eq(IoCollectCodeBackup::getBillNo, collectOrder.getBillNo()));
collectOrder.setCodeList(list);
List<IoCollectOrderBackup> collectOrderList = new ArrayList<>();
collectOrderList.add(collectOrder);
orderRequest.setCollectOrderList(collectOrderList);
// 判断此单据 有没有码已经上传过了一个有上传就进行错误返回
String paramValue = systemParamConfigService.selectValueByParamKey("checkCodeUploading");
if (StrUtil.isNotEmpty(paramValue) && paramValue.equals("0")) {
List<String> codeList = new ArrayList<>();
for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) {
String[] codes = collectOrderBizResponse.getFinishUdiCode().split(",");
// 遍历fruits数组
for (String code : codes) {
if (StrUtil.isNotBlank(code)) {
List<RelCodeDetail> relCodeDetailList = relCodeDetailService.getAllNext(code);
if (relCodeDetailList != null && relCodeDetailList.size() > 0) {
for (RelCodeDetail relCodeDetail : relCodeDetailList) {
codeList.add(relCodeDetail.getCurCode());
}
}
}
}
}
BaseResponse<List> baseResponseCheckCode = erpBasicClient.collectOrderCheckCodeUploading(codeList);
if (baseResponseCheckCode.getCode() == 20000) {
List listCheckCode = baseResponseCheckCode.getData();
if (listCheckCode == null || listCheckCode.size() > 0) {
log.error("单据的所有码有已经传输过医保的,请核实");
throw new JsonException("此单据的所有码有已经传输过医保的,请核实" + baseResponseCheckCode.getMessage());
}
} else {
throw new JsonException("查询码关联关系服务出错," + baseResponseCheckCode.getMessage());
}
}
// 医保上传
BaseResponse<BasicSkPrescribeResponse> baseResponse = erpBasicClient.postOrder(orderRequest);
log.debug("单据返回=========" + baseResponse);
if (baseResponse.getCode() == 20000) {
// 触发上传 转发至中继服务 到外网 再到国家同步库
ThreadUtil.execAsync(() -> {
BaseResponse<String> stringBaseResponse = new BaseResponse<>();
try {
stringBaseResponse = erpBasicClient.collectOrderUpload(orderRequest);
} catch (Exception e) {
throw new JsonException("触发上传 转发至中继服务 到外网 再到国家同步库 接口服务出错:" + stringBaseResponse.getMessage());
}
});
}
if (baseResponse.getCode() == 520) {
Log.error("上传失败," + baseResponse.getMessage());
} else {
throw new JsonException("连接第三方系统接口服务出错," + baseResponse.getMessage());
}
}
@Resource
UdiRlSupService udiRlSupService;

Loading…
Cancel
Save