From a963ad8fdcea057bac02042871513994f4216670 Mon Sep 17 00:00:00 2001 From: chenqi Date: Wed, 10 Jun 2026 16:05:30 +0800 Subject: [PATCH 1/3] =?UTF-8?q?refactor(core):=20=E6=9B=BF=E6=8D=A2FastJSO?= =?UTF-8?q?N=E4=B8=BAJackson=E5=B9=B6=E4=BF=AE=E5=A4=8D=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2=E7=BC=96=E7=A0=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将TenantOptionUtil中的JSONObject.getString()替换为path().asText() - 从LoginUser类移除FastJSON依赖并添加Jackson注解支持 - 将LoginUser中的optionJson字段类型从JSONObject改为ObjectNode - 修复PropertyPreExcludeFilter以使用Jackson实现属性过滤功能 - 更新AddressUtils中地理位置解析逻辑以兼容Jackson - 清理因字符编码导致的文档注释乱码问题 --- .gitignore | 18 + .../shelved.patch | 566 +++++++ .../shelved.patch | 566 +++++++ .../shelved.patch | 566 +++++++ .../shelved.patch | 566 +++++++ .../shelved.patch | 566 +++++++ .../shelved.patch | 566 +++++++ .../com/core/web/util/TenantOptionUtil.java | 2 +- healthlink-his-server/core-common/pom.xml | 46 +- .../common/core/domain/model/LoginUser.java | 60 +- .../filter/PropertyPreExcludeFilter.java | 45 +- .../java/com/core/common/utils/DictUtils.java | 7 +- .../java/com/core/common/utils/JsonUtils.java | 58 + .../core/common/utils/ip/AddressUtils.java | 11 +- healthlink-his-server/core-flowable/pom.xml | 5 - .../service/impl/FlowTaskServiceImpl.java | 37 +- .../com/core/framework/aspectj/LogAspect.java | 9 +- .../config/FastJson2JsonRedisSerializer.java | 61 +- .../core/framework/config/RedisConfig.java | 43 +- .../interceptor/RepeatSubmitInterceptor.java | 5 +- .../impl/SameUrlDataInterceptor.java | 5 +- .../handle/AuthenticationEntryPointImpl.java | 5 +- .../handle/LogoutSuccessHandlerImpl.java | 5 +- .../web/service/SysLoginService.java | 126 +- .../service/GenTableServiceImpl.java | 29 +- .../core/generator/util/VelocityUtils.java | 47 +- healthlink-his-server/core-system/pom.xml | 10 - .../HealthcareServiceController.java | 4 +- .../impl/OutpatientRefundAppServiceImpl.java | 2 +- .../OutpatientRegistrationAppServiceImpl.java | 4 +- .../impl/SurgeryAppServiceImpl.java | 12 +- .../impl/ConsultationAppServiceImpl.java | 12 +- .../impl/DeviceManageAppServiceImpl.java | 4 +- .../impl/DiagTreatMAppServiceImpl.java | 4 +- .../impl/MedicationManageAppServiceImpl.java | 4 +- .../DepartmentReceiptApprovalServiceImpl.java | 18 +- .../DoctorStationAdviceAppServiceImpl.java | 2 +- .../impl/DoctorStationEmrAppServiceImpl.java | 8 +- .../web/doctorstation/dto/EmrTemplateDto.java | 4 +- .../web/doctorstation/dto/PatientEmrDto.java | 4 +- .../impl/DocRecordAppServiceImpl.java | 6 +- .../document/util/ConvertToDocStatistics.java | 83 +- .../impl/BankPosCloudAppServiceImpl.java | 7 +- .../FoodborneAcquisitionAppServiceImpl.java | 9 +- .../dto/BpcDataElementDto.java | 48 +- .../dto/BpcPaymentScanNotifyDto.java | 32 +- .../dto/BpcTransactionRequestDto.java | 60 +- .../dto/BpcTransactionResponseDto.java | 42 +- .../impl/NursingRecordAppServiceImpl.java | 6 +- .../impl/ReceiptApprovalAppServiceImpl.java | 20 +- .../dto/PurchaseReturnPageDto.java | 6 +- .../MaterialReceiptApprovalServiceImpl.java | 16 +- .../impl/GfStudentListAppServiceImpl.java | 5 +- .../impl/EleInvoiceServiceImpl.java | 1309 +++++++++-------- .../impl/IChargeBillServiceImpl.java | 984 ++++++------- .../impl/PaymentRecServiceImpl.java | 30 +- .../impl/ThreePartPayServiceImpl.java | 81 +- .../dto/Clinic2206OrderResultDto.java | 44 +- .../dto/Clinic2207OrderResultInfoDto.java | 36 +- .../paymentmanage/dto/EleInvioceBillDto.java | 4 +- .../dto/InpatientPreSettleDto.java | 4 +- .../paymentmanage/dto/InvoiceBaseInfoDto.java | 4 +- ...yDispensaryReceiptApprovalServiceImpl.java | 16 +- ...cyWarehouseReceiptApprovalServiceImpl.java | 16 +- ...nHospitalReturnMedicineAppServiceImpl.java | 14 +- .../MedicalDeviceDispenseAppServiceImpl.java | 6 +- .../impl/ReturnMedicineAppServiceImpl.java | 14 +- ...SummaryDispenseMedicineAppServiceImpl.java | 2 +- ...WesternMedicineDispenseAppServiceImpl.java | 12 +- .../impl/InfectiousCardAppServiceImpl.java | 8 +- ...ecordHomePageCollectionAppServiceImpl.java | 272 ++-- .../appservice/impl/ReportAppServiceImpl.java | 264 ++-- .../utils/httpUtil/HttpRequesPost.java | 5 +- .../web/ybmanage/controller/YbController.java | 42 +- .../web/ybmanage/dto/ClinicReg2201Output.java | 10 +- .../ybmanage/dto/Financial13203WebParam.java | 18 +- .../ybmanage/dto/Financial3203WebParam.java | 12 +- .../his/web/ybmanage/dto/ResultBody.java | 20 +- .../ybmanage/dto/Settlement3209AWebParam.java | 10 +- .../service/impl/YbEleHttpServiceImpl.java | 28 +- .../ybmanage/service/impl/YbServiceImpl.java | 24 +- .../ybmanage/util/YbEleParamBuilderUtil.java | 322 ++-- .../META-INF/spring-devtools.properties | 2 +- .../his/billing/BillingApiTest.java | 43 +- .../his/doctor/DoctorWorkstationTest.java | 5 +- .../his/inpatient/InpatientApiTest.java | 105 +- .../his/inspection/InspectionApiTest.java | 61 +- .../his/nurse/NurseStationTest.java | 5 +- .../his/pharmacy/PharmacyApiTest.java | 91 +- .../his/registration/RegistrationApiTest.java | 137 +- .../healthlink/his/report/ReportApiTest.java | 71 +- .../his/common/aspectj/OperLogAspect.java | 8 +- .../service/impl/ChargeItemServiceImpl.java | 5 +- .../utils/CrossSystemSendApplyUtil.java | 13 +- .../his/financial/model/PrePaymentResult.java | 44 +- .../impl/PaymentRecStaticServiceImpl.java | 5 +- .../PaymentReconciliationServiceImpl.java | 6 +- .../his/nenu/domain/TransactionResponse.java | 42 +- .../his/yb/domain/ClinicPreSettle.java | 12 +- .../healthlink/his/yb/domain/ClinicReg.java | 50 +- .../his/yb/domain/ClinicSettle.java | 4 +- .../healthlink/his/yb/domain/ClinicUnReg.java | 10 +- .../his/yb/domain/ClinicUnSettle.java | 4 +- .../healthlink/his/yb/domain/InfoPerson.java | 26 +- .../his/yb/domain/InpatientDischarge.java | 51 +- .../his/yb/domain/InpatientFeeDetail.java | 4 +- .../his/yb/domain/InpatientPreSettle.java | 4 +- .../his/yb/domain/InpatientReg.java | 79 +- .../domain/InpatientRegInfoUpdateRecorde.java | 71 +- .../his/yb/domain/InpatientSettle.java | 4 +- .../his/yb/domain/InpatientUnDischarge.java | 8 +- .../his/yb/domain/InpatientUnReg.java | 8 +- .../his/yb/domain/InpatientUnSettle.java | 4 +- .../yb/domain/InpatientcancelFeeDetail.java | 4 +- .../his/yb/domain/InventoryChangeRecord.java | 28 +- .../his/yb/domain/InventoryCheckRecord.java | 22 +- .../his/yb/domain/InventoryDelRecord.java | 6 +- .../yb/domain/InventoryPurchaseRecord.java | 42 +- .../domain/InventoryPurchaseReturnRecord.java | 36 +- .../his/yb/domain/InventorySaleRecord.java | 76 +- .../yb/domain/InventorySaleReturnRecord.java | 46 +- .../com/healthlink/his/yb/domain/Sign.java | 18 +- .../his/yb/dto/Catalogue1312QueryParam.java | 14 +- .../his/yb/dto/Clearing3204AParam.java | 6 +- .../his/yb/dto/Clearing3205AParma.java | 8 +- .../his/yb/dto/Clearing3205AResult.java | 36 +- .../his/yb/dto/Clearing3206AParam.java | 8 +- .../his/yb/dto/Clearing3206AResult.java | 10 +- .../his/yb/dto/Clinic2203DiseInfoParam.java | 50 +- .../his/yb/dto/Clinic2203Medical.java | 34 +- .../his/yb/dto/Clinic2203MedicalParam.java | 34 +- .../his/yb/dto/Clinic2204FeeDetailParam.java | 112 +- .../his/yb/dto/Clinic2204OrderParam.java | 10 +- .../his/yb/dto/Clinic2204OrderResult.java | 4 +- .../his/yb/dto/Clinic2205OrderParam.java | 12 +- .../his/yb/dto/Clinic2206OrderParam.java | 48 +- .../his/yb/dto/Clinic2206OrderResult.java | 94 +- .../his/yb/dto/Clinic2206OrderResultDto.java | 44 +- .../his/yb/dto/Clinic2206SetldetaiResult.java | 22 +- .../his/yb/dto/Clinic2207OrderResult.java | 92 +- .../yb/dto/Clinic2207OrderResultInfoDto.java | 36 +- .../his/yb/dto/Clinic2208UnSetlInfoParam.java | 10 +- .../yb/dto/Clinic2208UnSetlInfoResult.java | 58 +- .../com/healthlink/his/yb/dto/ClinicReg.java | 50 +- .../his/yb/dto/ClinicReg2201Output.java | 10 +- .../healthlink/his/yb/dto/FileDownload.java | 12 +- .../com/healthlink/his/yb/dto/FileResult.java | 6 +- .../his/yb/dto/Financial13203Param.java | 18 +- .../his/yb/dto/Financial13203Result.java | 20 +- .../his/yb/dto/Financial13203WebParam.java | 18 +- .../his/yb/dto/Financial3201Param.java | 28 +- .../his/yb/dto/Financial3202FileParam.java | 16 +- .../his/yb/dto/Financial3202FileResult.java | 22 +- .../his/yb/dto/Financial3203AParam.java | 22 +- .../his/yb/dto/Financial3203Param.java | 24 +- .../his/yb/dto/Financial3203WebParam.java | 12 +- .../his/yb/dto/Financial3204Param.java | 6 +- .../yb/dto/FinancialSettlement3202Param.java | 22 +- .../yb/dto/FinancialSettlement3202Result.java | 8 +- .../yb/dto/FinancialSettlement3209AParam.java | 10 +- .../dto/FinancialSettlement3209AResult.java | 6 +- .../his/yb/dto/FsiConsultation3101Param.java | 12 +- .../his/yb/dto/FsiDiagnose3101Param.java | 16 +- .../his/yb/dto/FsiEncounter3101Param.java | 70 +- .../his/yb/dto/FsiFeedback3103DataParam.java | 6 +- .../his/yb/dto/FsiFeedback3103WarnsParam.java | 8 +- .../his/yb/dto/FsiOperation3101Param.java | 22 +- .../his/yb/dto/FsiOrder3101Param.java | 70 +- .../his/yb/dto/FsiPatient3101Param.java | 18 +- .../his/yb/dto/FsiViolation3101Result.java | 28 +- .../yb/dto/FsiViolationDetail3101Result.java | 14 +- .../his/yb/dto/HospAdm2401DiseInfoParam.java | 24 +- .../his/yb/dto/HospAdm2401MdtInfoParam.java | 82 +- .../his/yb/dto/HospAdm2402DiseInfoParam.java | 24 +- .../his/yb/dto/HospAdm2402DscgInfoParam.java | 50 +- .../his/yb/dto/HospAdm2403AdmInfoParam.java | 76 +- .../his/yb/dto/HospAdm2403DiseInfoParam.java | 26 +- .../his/yb/dto/HospAdm2404AdmCnlParam.java | 8 +- .../his/yb/dto/HospAdm2406SmAttrUpParam.java | 24 +- .../yb/dto/HospAdm2407SmAttrSelectParam.java | 30 +- .../yb/dto/HospAdm2407SmAttrSelectResult.java | 26 +- .../his/yb/dto/HospDept3401Param.java | 39 +- .../his/yb/dto/HospDept3402Param.java | 39 +- .../his/yb/dto/HospDept3403Param.java | 9 +- .../his/yb/dto/HospTrf2501ARefmedinParam.java | 42 +- .../his/yb/dto/HospTrf2501RefmedinParam.java | 42 +- .../his/yb/dto/HospTrfCxl2502Param.java | 8 +- .../his/yb/dto/Info1101PerinfoResult.java | 24 +- .../his/yb/dto/Info1101ReadcardParam.java | 16 +- .../healthlink/his/yb/dto/Info5301Param.java | 4 +- .../his/yb/dto/InvoiceBaseInfoDto.java | 4 +- .../his/yb/dto/MatAllowReg25007Param.java | 18 +- .../his/yb/dto/MatAllowReg25007Result.java | 30 +- .../his/yb/dto/MatAllowRegSel25008Param.java | 30 +- .../his/yb/dto/Medical3503Param.java | 44 +- .../his/yb/dto/Medical3505Param.java | 80 +- .../his/yb/dto/Medical3505Result.java | 6 +- .../his/yb/dto/Medical3506Param.java | 50 +- .../his/yb/dto/Medical3507Param.java | 6 +- .../his/yb/dto/MedicalDirectory3301Param.java | 14 +- .../his/yb/dto/MedicalInventory3501Param.java | 24 +- .../his/yb/dto/MedicalInventory3502Param.java | 32 +- .../yb/dto/MedicalInventory3511Output.java | 89 +- .../his/yb/dto/MedicalInventory3511Param.java | 83 +- .../yb/dto/MedicalInventory3512Output.java | 24 +- .../his/yb/dto/MedicalInventory3512Param.java | 16 +- .../yb/dto/MedicalInventory3513Output.java | 50 +- .../his/yb/dto/MedicalInventory3513Param.java | 26 +- .../his/yb/dto/MedicalPurchase3504Param.java | 36 +- .../his/yb/dto/MedicalTraceNoDto.java | 4 +- .../dto/PersBirthApprovalCnl25004Param.java | 6 +- .../dto/PersBirthApprovalSel25005Param.java | 20 +- .../his/yb/dto/PersBirthRecord25003Param.java | 46 +- .../his/yb/dto/PersChrDis2503Param.java | 32 +- .../his/yb/dto/PersChrDisCxl2504Param.java | 8 +- .../his/yb/dto/PersDesigPt2505Param.java | 42 +- .../his/yb/dto/PersDesigPtCxl2506Param.java | 8 +- .../yb/dto/PersMedApprovalCnl25006Param.java | 6 +- .../his/yb/dto/PersMedRecord25001Param.java | 30 +- .../his/yb/dto/PersMedSelect25002Param.java | 8 +- .../his/yb/dto/PersMedSelect25002Result.java | 32 +- .../his/yb/dto/PersUnintInj2507Param.java | 70 +- .../com/healthlink/his/yb/dto/ResultBody.java | 20 +- .../java/com/healthlink/his/yb/dto/Sign.java | 18 +- .../healthlink/his/yb/dto/Sign1101Param.java | 8 +- .../healthlink/his/yb/dto/Sign9001Result.java | 10 +- .../his/yb/dto/Yb2303OutputSetInfo.java | 4 +- .../yb/dto/Yb2401InputInpatientDiseInfo.java | 25 +- .../yb/dto/Yb2401InputInpatientMdtrtInfo.java | 75 +- .../dto/Yb2401InputInpatientTrumContent.java | 8 +- .../yb/dto/Yb2402InputInpatientDiseInfo.java | 25 +- .../yb/dto/Yb2402InputInpatientDscgInfo.java | 51 +- .../his/yb/dto/Yb2403InputAdmInfo.java | 71 +- .../his/yb/dto/Yb2403InputDiseInfo.java | 27 +- .../yb/dto/Yb2403InputMdtrtGrpContent.java | 4 +- .../his/yb/dto/Yb2403InputTrumContent.java | 6 +- .../his/yb/dto/Yb2404InputInpatient.java | 10 +- .../his/yb/dto/Yb2405InputInpatient.java | 8 +- .../his/yb/dto/Yb2601InputParam.java | 10 +- .../his/yb/dto/Yb3101InputData.java | 12 +- .../his/yb/dto/Yb3101InputFsiDiagnoseDto.java | 16 +- .../yb/dto/Yb3101InputFsiEncounterDto.java | 70 +- .../yb/dto/Yb3101InputFsiOperationDto.java | 22 +- .../his/yb/dto/Yb3101InputFsiOrderDto.java | 70 +- .../his/yb/dto/Yb3101InputPatientDto.java | 18 +- .../dto/Yb3101OutputJudgeResultDetailDto.java | 14 +- .../his/yb/dto/Yb3101OutputResult.java | 28 +- .../his/yb/dto/Yb3103InputData.java | 6 +- .../his/yb/dto/Yb3103InputWarn.java | 8 +- .../his/yb/dto/Yb4101AInputBldinfo.java | 8 +- .../his/yb/dto/Yb4101AInputDiseinfo.java | 12 +- .../his/yb/dto/Yb4101AInputIcuinfo.java | 10 +- .../his/yb/dto/Yb4101AInputIteminfo.java | 14 +- .../his/yb/dto/Yb4101AInputOprninfo.java | 24 +- .../his/yb/dto/Yb4101AInputOpspdiseinfo.java | 10 +- .../his/yb/dto/Yb4101AInputSetlinfo.java | 120 +- .../his/yb/dto/Yb4101AOutputData.java | 4 +- .../his/yb/dto/Yb4102InputStastInfo.java | 8 +- .../healthlink/his/yb/dto/Yb4104InputDto.java | 19 +- .../yb/dto/Yb5205OutputSpecialDisease.java | 69 +- .../com/healthlink/his/yb/dto/extData.java | 38 +- .../com/healthlink/his/yb/service/YbDao.java | 95 +- .../his/yb/service/YbHttpUtils.java | 254 ++-- .../healthlink/his/yb/service/YbManager.java | 16 +- .../his/yb/util/YbParamBuilderUtil.java | 861 +++++------ .../ybcatalog/domain/CatalogZySettleUp.java | 4 +- .../his/ybelep/domain/ElepRevokeInput.java | 4 +- .../his/ybelep/domain/ElepSignatureInput.java | 6 +- .../ybelep/domain/ElepSignatureOutput.java | 6 +- .../his/ybelep/domain/ElepUploadInput.java | 4 +- .../ybelep/domain/ElepVeriDiagnosisInfo.java | 8 +- .../domain/ElepVeriPrescriptionDetail.java | 8 +- .../domain/ElepVeriPrescriptionInfo.java | 6 +- .../his/ybelep/domain/ElepVeriVisitInfo.java | 8 +- .../ybelep/domain/PreCheckPrescription.java | 4 +- .../META-INF/spring-devtools.properties | 2 +- healthlink-his-server/pom.xml | 7 - 277 files changed, 9045 insertions(+), 5434 deletions(-) create mode 100644 .idea/shelf/在进行更新之前于_2026_6_5_16_37_取消提交了更改_[更改]/shelved.patch create mode 100644 .idea/shelf/在进行更新之前于_2026_6_6_07_53_取消提交了更改_[更改]/shelved.patch create mode 100644 .idea/shelf/在进行更新之前于_2026_6_6_07_58_取消提交了更改_[更改]/shelved.patch create mode 100644 .idea/shelf/在进行更新之前于_2026_6_6_09_03_取消提交了更改_[更改]/shelved.patch create mode 100644 .idea/shelf/在进行更新之前于_2026_6_6_09_07_取消提交了更改_[更改]/shelved.patch create mode 100644 .idea/shelf/在进行更新之前于_2026_6_6_09_17_取消提交了更改_[更改]/shelved.patch create mode 100644 healthlink-his-server/core-common/src/main/java/com/core/common/utils/JsonUtils.java diff --git a/.gitignore b/.gitignore index 027d8283f..5b91571ad 100644 --- a/.gitignore +++ b/.gitignore @@ -416,3 +416,21 @@ /node_modules/proxy-from-env/package.json /node_modules/proxy-from-env/README.md /node_modules/.package-lock.json +/.idea/shelf/在进行更新之前于_2026_6_5_16_37_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/在进行更新之前于_2026_6_6_07_53_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/在进行更新之前于_2026_6_6_07_58_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/在进行更新之前于_2026_6_6_09_03_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/在进行更新之前于_2026_6_6_09_07_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/在进行更新之前于_2026_6_6_09_17_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/_2026_6_5_16_37____.xml +/.idea/shelf/_2026_6_6_07_53____.xml +/.idea/shelf/_2026_6_6_07_58____.xml +/.idea/shelf/_2026_6_6_09_03____.xml +/.idea/shelf/_2026_6_6_09_07____.xml +/.idea/shelf/_2026_6_6_09_17____.xml +/.idea/shelf/在进行更新之前于_2026_6_5_16_37_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/在进行更新之前于_2026_6_6_07_53_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/在进行更新之前于_2026_6_6_07_58_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/在进行更新之前于_2026_6_6_09_03_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/在进行更新之前于_2026_6_6_09_07_取消提交了更改_[更改]/shelved.patch +/.idea/shelf/在进行更新之前于_2026_6_6_09_17_取消提交了更改_[更改]/shelved.patch diff --git a/.idea/shelf/在进行更新之前于_2026_6_5_16_37_取消提交了更改_[更改]/shelved.patch b/.idea/shelf/在进行更新之前于_2026_6_5_16_37_取消提交了更改_[更改]/shelved.patch new file mode 100644 index 000000000..3a56d9359 --- /dev/null +++ b/.idea/shelf/在进行更新之前于_2026_6_5_16_37_取消提交了更改_[更改]/shelved.patch @@ -0,0 +1,566 @@ +Index: healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (revision f836d816ad421ec82b2169ca37bfa105e48a06f5) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (date 1780645312497) +@@ -434,7 +434,7 @@ + import OrderGroupDrawer from '@/views/doctorstation/components/prescription/orderGroupDrawer.vue'; + import PrescriptionHistory from '@/views/doctorstation/components/prescription/prescriptionHistory.vue'; + import Decimal from 'decimal.js'; +-import {ElLoading, ElMessage, ElMessageBox} from 'element-plus'; ++import {ElMessage, ElMessageBox} from 'element-plus'; + import useUserStore from '@/store/modules/user'; + import ApplicationFormBottomBtn from './applicationForm/applicationFormBottomBtn.vue'; + import LeaveHospitalDialog from './applicationForm/leaveHospitalDialog.vue'; +@@ -617,7 +617,7 @@ + }, + ]; + +-let loadingInstance = undefined; ++// loadingInstance removed - using loading ref instead + onMounted(() => { + document.addEventListener('keydown', escKeyListener); + }); +@@ -672,10 +672,7 @@ + } + // 获取列表信息 + function getListInfo(addNewRow) { +- loadingInstance = ElLoading.service({ fullscreen: true }); +- setTimeout(() => { +- loadingInstance.close(); +- }, 180); ++ loading.value = true; + isAdding.value = false; + expandOrder.value = []; + // 🔧 修复:先加载科室树,再处理处方数据 +@@ -687,7 +684,7 @@ + getPrescriptionList(patientInfo.value.encounterId).then((res) => { + // 等待科室树加载完成后再处理处方数据,确保 resolveOrgId 能正确匹配 + orgTreePromise.then(() => { +- loadingInstance.close(); ++ loading.value = false; + prescriptionList.value = res.data + .map((item) => { + const parsedContent = JSON.parse(item.contentJson); +@@ -747,7 +744,7 @@ + handleAddPrescription(); + } + }); +- }); ++ }).catch(() => { loading.value = false; }); + getContract({ encounterId: patientInfo.value.encounterId }).then((res) => { + contractList.value = res.data; + }); +Index: healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (revision f836d816ad421ec82b2169ca37bfa105e48a06f5) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (date 1780648085241) +@@ -252,31 +252,37 @@ + // 处理节点点击,根据后台返回的路径加载组件 + const handleNodeClick = (data, node) => { + if (node.isLeaf) { ++ const newRouter = data.document?.vueRouter; ++ const oldRouter = currentSelectTemplate.value?.vueRouter; ++ const isSameTemplate = newRouter && oldRouter && newRouter === oldRouter; ++ + // 存储当前节点数据 + currentSelectTemplate.value = data.document; + +- // 在切换组件前先重置表单数据,避免显示之前的数据 +- editForm.value = { +- id: '', +- definitionId: '', +- definitionBusNo: '', +- contentJson: '', +- statusEnum: 1, +- organizationId: 0, +- encounterId: '', +- patientId: '', +- recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), +- createBy: '', +- source: '', +- }; +- +- // 先清空当前组件,再设置新组件,确保组件完全重新渲染 +- currentComponent.value = undefined; +- +- // 使用 nextTick 确保 DOM 更新后再设置新组件 +- nextTick(() => { +- currentComponent.value = currentSelectTemplate.value.vueRouter; +- }); ++ if (isSameTemplate) { ++ // 同一模板(仅患者切换):不卸载组件、不清空表单,避免闪烁 ++ // loading 遮罩覆盖过渡,loadLatestMedicalRecord 会原子替换表单数据 ++ loading.value = true; ++ } else { ++ // 不同模板:先清空再设置,确保组件完全重新渲染 ++ editForm.value = { ++ id: '', ++ definitionId: '', ++ definitionBusNo: '', ++ contentJson: '', ++ statusEnum: 1, ++ organizationId: 0, ++ encounterId: '', ++ patientId: '', ++ recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), ++ createBy: '', ++ source: '', ++ }; ++ currentComponent.value = undefined; ++ nextTick(() => { ++ currentComponent.value = newRouter; ++ }); ++ } + } else { + currentSelectTemplate.value = { + id: '', +@@ -624,8 +630,8 @@ + // 加载最新的病历数据并回显 + const loadLatestMedicalRecord = async () => { + if (!patientInfo.value?.encounterId || !currentSelectTemplate.value.id) return; +- editForm.value.id = ''; + loading.value = true; ++ editForm.value.id = ''; + try { + // 获取患者的历史病历记录 + const res = await getRecordByEncounterIdList({ +Index: .gitignore +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/.gitignore b/.gitignore +new file mode 100644 +--- /dev/null (date 1780642717495) ++++ b/.gitignore (date 1780642717495) +@@ -0,0 +1,418 @@ ++/.vscode/mcp.json ++/.vscode/settings.json ++/.qwen/settings.json.orig ++/.playwright-mcp/console-2026-03-31T08-27-30-883Z.log ++/.playwright-mcp/console-2026-05-19T03-10-43-600Z.log ++/.playwright-mcp/console-2026-05-19T03-18-23-396Z.log ++/.playwright-mcp/console-2026-05-19T03-18-51-946Z.log ++/.playwright-mcp/page-2026-05-11T02-56-22-027Z.yml ++/.playwright-mcp/page-2026-05-11T02-56-30-095Z.yml ++/.playwright-mcp/page-2026-05-19T03-10-44-171Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-20-520Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-40-168Z.yml ++/.playwright-mcp/page-2026-05-19T03-12-10-968Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-23-610Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-52-634Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-19-472Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-36-669Z.yml ++/.playwright-mcp/page-2026-05-19T03-20-04-342Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-08-820Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-43-735Z.yml ++/.idea/compiler.xml ++/.idea/encodings.xml ++/.idea/jarRepositories.xml ++/.idea/misc.xml ++/.idea/vcs.xml ++/.idea/workspace.xml ++/node_modules/.bin/husky ++/node_modules/.bin/husky.cmd ++/node_modules/.bin/husky.ps1 ++/node_modules/asynckit/lib/abort.js ++/node_modules/asynckit/lib/async.js ++/node_modules/asynckit/lib/defer.js ++/node_modules/asynckit/lib/iterate.js ++/node_modules/asynckit/lib/readable_asynckit.js ++/node_modules/asynckit/lib/readable_parallel.js ++/node_modules/asynckit/lib/readable_serial.js ++/node_modules/asynckit/lib/readable_serial_ordered.js ++/node_modules/asynckit/lib/state.js ++/node_modules/asynckit/lib/streamify.js ++/node_modules/asynckit/lib/terminator.js ++/node_modules/asynckit/bench.js ++/node_modules/asynckit/index.js ++/node_modules/asynckit/LICENSE ++/node_modules/asynckit/package.json ++/node_modules/asynckit/parallel.js ++/node_modules/asynckit/README.md ++/node_modules/asynckit/serial.js ++/node_modules/asynckit/serialOrdered.js ++/node_modules/asynckit/stream.js ++/node_modules/axios/dist/browser/axios.cjs ++/node_modules/axios/dist/esm/axios.js ++/node_modules/axios/dist/esm/axios.min.js ++/node_modules/axios/dist/esm/axios.min.js.map ++/node_modules/axios/dist/node/axios.cjs ++/node_modules/axios/dist/axios.js ++/node_modules/axios/dist/axios.min.js ++/node_modules/axios/dist/axios.min.js.map ++/node_modules/axios/lib/adapters/adapters.js ++/node_modules/axios/lib/adapters/fetch.js ++/node_modules/axios/lib/adapters/http.js ++/node_modules/axios/lib/adapters/README.md ++/node_modules/axios/lib/adapters/xhr.js ++/node_modules/axios/lib/cancel/CanceledError.js ++/node_modules/axios/lib/cancel/CancelToken.js ++/node_modules/axios/lib/cancel/isCancel.js ++/node_modules/axios/lib/core/Axios.js ++/node_modules/axios/lib/core/AxiosError.js ++/node_modules/axios/lib/core/AxiosHeaders.js ++/node_modules/axios/lib/core/buildFullPath.js ++/node_modules/axios/lib/core/dispatchRequest.js ++/node_modules/axios/lib/core/InterceptorManager.js ++/node_modules/axios/lib/core/mergeConfig.js ++/node_modules/axios/lib/core/README.md ++/node_modules/axios/lib/core/settle.js ++/node_modules/axios/lib/core/transformData.js ++/node_modules/axios/lib/defaults/index.js ++/node_modules/axios/lib/defaults/transitional.js ++/node_modules/axios/lib/env/classes/FormData.js ++/node_modules/axios/lib/env/data.js ++/node_modules/axios/lib/env/README.md ++/node_modules/axios/lib/helpers/AxiosTransformStream.js ++/node_modules/axios/lib/helpers/AxiosURLSearchParams.js ++/node_modules/axios/lib/helpers/bind.js ++/node_modules/axios/lib/helpers/buildURL.js ++/node_modules/axios/lib/helpers/callbackify.js ++/node_modules/axios/lib/helpers/combineURLs.js ++/node_modules/axios/lib/helpers/composeSignals.js ++/node_modules/axios/lib/helpers/cookies.js ++/node_modules/axios/lib/helpers/deprecatedMethod.js ++/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js ++/node_modules/axios/lib/helpers/formDataToJSON.js ++/node_modules/axios/lib/helpers/formDataToStream.js ++/node_modules/axios/lib/helpers/fromDataURI.js ++/node_modules/axios/lib/helpers/HttpStatusCode.js ++/node_modules/axios/lib/helpers/isAbsoluteURL.js ++/node_modules/axios/lib/helpers/isAxiosError.js ++/node_modules/axios/lib/helpers/isURLSameOrigin.js ++/node_modules/axios/lib/helpers/null.js ++/node_modules/axios/lib/helpers/parseHeaders.js ++/node_modules/axios/lib/helpers/parseProtocol.js ++/node_modules/axios/lib/helpers/progressEventReducer.js ++/node_modules/axios/lib/helpers/readBlob.js ++/node_modules/axios/lib/helpers/README.md ++/node_modules/axios/lib/helpers/resolveConfig.js ++/node_modules/axios/lib/helpers/speedometer.js ++/node_modules/axios/lib/helpers/spread.js ++/node_modules/axios/lib/helpers/throttle.js ++/node_modules/axios/lib/helpers/toFormData.js ++/node_modules/axios/lib/helpers/toURLEncodedForm.js ++/node_modules/axios/lib/helpers/trackStream.js ++/node_modules/axios/lib/helpers/validator.js ++/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js ++/node_modules/axios/lib/platform/browser/classes/Blob.js ++/node_modules/axios/lib/platform/browser/classes/FormData.js ++/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/browser/index.js ++/node_modules/axios/lib/platform/common/utils.js ++/node_modules/axios/lib/platform/node/classes/FormData.js ++/node_modules/axios/lib/platform/node/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/node/index.js ++/node_modules/axios/lib/platform/index.js ++/node_modules/axios/lib/axios.js ++/node_modules/axios/lib/utils.js ++/node_modules/axios/CHANGELOG.md ++/node_modules/axios/index.d.cts ++/node_modules/axios/index.d.ts ++/node_modules/axios/index.js ++/node_modules/axios/LICENSE ++/node_modules/axios/MIGRATION_GUIDE.md ++/node_modules/axios/package.json ++/node_modules/axios/README.md ++/node_modules/bignumber.js/doc/API.html ++/node_modules/bignumber.js/bignumber.d.mts ++/node_modules/bignumber.js/bignumber.d.ts ++/node_modules/bignumber.js/bignumber.js ++/node_modules/bignumber.js/bignumber.mjs ++/node_modules/bignumber.js/CHANGELOG.md ++/node_modules/bignumber.js/LICENCE.md ++/node_modules/bignumber.js/package.json ++/node_modules/bignumber.js/README.md ++/node_modules/bignumber.js/types.d.ts ++/node_modules/call-bind-apply-helpers/.github/FUNDING.yml ++/node_modules/call-bind-apply-helpers/test/index.js ++/node_modules/call-bind-apply-helpers/.eslintrc ++/node_modules/call-bind-apply-helpers/.nycrc ++/node_modules/call-bind-apply-helpers/actualApply.d.ts ++/node_modules/call-bind-apply-helpers/actualApply.js ++/node_modules/call-bind-apply-helpers/applyBind.d.ts ++/node_modules/call-bind-apply-helpers/applyBind.js ++/node_modules/call-bind-apply-helpers/CHANGELOG.md ++/node_modules/call-bind-apply-helpers/functionApply.d.ts ++/node_modules/call-bind-apply-helpers/functionApply.js ++/node_modules/call-bind-apply-helpers/functionCall.d.ts ++/node_modules/call-bind-apply-helpers/functionCall.js ++/node_modules/call-bind-apply-helpers/index.d.ts ++/node_modules/call-bind-apply-helpers/index.js ++/node_modules/call-bind-apply-helpers/LICENSE ++/node_modules/call-bind-apply-helpers/package.json ++/node_modules/call-bind-apply-helpers/README.md ++/node_modules/call-bind-apply-helpers/reflectApply.d.ts ++/node_modules/call-bind-apply-helpers/reflectApply.js ++/node_modules/call-bind-apply-helpers/tsconfig.json ++/node_modules/combined-stream/lib/combined_stream.js ++/node_modules/combined-stream/License ++/node_modules/combined-stream/package.json ++/node_modules/combined-stream/Readme.md ++/node_modules/combined-stream/yarn.lock ++/node_modules/delayed-stream/lib/delayed_stream.js ++/node_modules/delayed-stream/.npmignore ++/node_modules/delayed-stream/License ++/node_modules/delayed-stream/Makefile ++/node_modules/delayed-stream/package.json ++/node_modules/delayed-stream/Readme.md ++/node_modules/dunder-proto/.github/FUNDING.yml ++/node_modules/dunder-proto/test/get.js ++/node_modules/dunder-proto/test/index.js ++/node_modules/dunder-proto/test/set.js ++/node_modules/dunder-proto/.eslintrc ++/node_modules/dunder-proto/.nycrc ++/node_modules/dunder-proto/CHANGELOG.md ++/node_modules/dunder-proto/get.d.ts ++/node_modules/dunder-proto/get.js ++/node_modules/dunder-proto/LICENSE ++/node_modules/dunder-proto/package.json ++/node_modules/dunder-proto/README.md ++/node_modules/dunder-proto/set.d.ts ++/node_modules/dunder-proto/set.js ++/node_modules/dunder-proto/tsconfig.json ++/node_modules/es-define-property/.github/FUNDING.yml ++/node_modules/es-define-property/test/index.js ++/node_modules/es-define-property/.eslintrc ++/node_modules/es-define-property/.nycrc ++/node_modules/es-define-property/CHANGELOG.md ++/node_modules/es-define-property/index.d.ts ++/node_modules/es-define-property/index.js ++/node_modules/es-define-property/LICENSE ++/node_modules/es-define-property/package.json ++/node_modules/es-define-property/README.md ++/node_modules/es-define-property/tsconfig.json ++/node_modules/es-errors/.github/FUNDING.yml ++/node_modules/es-errors/test/index.js ++/node_modules/es-errors/.eslintrc ++/node_modules/es-errors/CHANGELOG.md ++/node_modules/es-errors/eval.d.ts ++/node_modules/es-errors/eval.js ++/node_modules/es-errors/index.d.ts ++/node_modules/es-errors/index.js ++/node_modules/es-errors/LICENSE ++/node_modules/es-errors/package.json ++/node_modules/es-errors/range.d.ts ++/node_modules/es-errors/range.js ++/node_modules/es-errors/README.md ++/node_modules/es-errors/ref.d.ts ++/node_modules/es-errors/ref.js ++/node_modules/es-errors/syntax.d.ts ++/node_modules/es-errors/syntax.js ++/node_modules/es-errors/tsconfig.json ++/node_modules/es-errors/type.d.ts ++/node_modules/es-errors/type.js ++/node_modules/es-errors/uri.d.ts ++/node_modules/es-errors/uri.js ++/node_modules/es-object-atoms/.github/FUNDING.yml ++/node_modules/es-object-atoms/test/index.js ++/node_modules/es-object-atoms/.eslintrc ++/node_modules/es-object-atoms/CHANGELOG.md ++/node_modules/es-object-atoms/index.d.ts ++/node_modules/es-object-atoms/index.js ++/node_modules/es-object-atoms/isObject.d.ts ++/node_modules/es-object-atoms/isObject.js ++/node_modules/es-object-atoms/LICENSE ++/node_modules/es-object-atoms/package.json ++/node_modules/es-object-atoms/README.md ++/node_modules/es-object-atoms/RequireObjectCoercible.d.ts ++/node_modules/es-object-atoms/RequireObjectCoercible.js ++/node_modules/es-object-atoms/ToObject.d.ts ++/node_modules/es-object-atoms/ToObject.js ++/node_modules/es-object-atoms/tsconfig.json ++/node_modules/es-set-tostringtag/test/index.js ++/node_modules/es-set-tostringtag/.eslintrc ++/node_modules/es-set-tostringtag/.nycrc ++/node_modules/es-set-tostringtag/CHANGELOG.md ++/node_modules/es-set-tostringtag/index.d.ts ++/node_modules/es-set-tostringtag/index.js ++/node_modules/es-set-tostringtag/LICENSE ++/node_modules/es-set-tostringtag/package.json ++/node_modules/es-set-tostringtag/README.md ++/node_modules/es-set-tostringtag/tsconfig.json ++/node_modules/follow-redirects/debug.js ++/node_modules/follow-redirects/http.js ++/node_modules/follow-redirects/https.js ++/node_modules/follow-redirects/index.js ++/node_modules/follow-redirects/LICENSE ++/node_modules/follow-redirects/package.json ++/node_modules/follow-redirects/README.md ++/node_modules/form-data/lib/browser.js ++/node_modules/form-data/lib/form_data.js ++/node_modules/form-data/lib/populate.js ++/node_modules/form-data/CHANGELOG.md ++/node_modules/form-data/index.d.ts ++/node_modules/form-data/License ++/node_modules/form-data/package.json ++/node_modules/form-data/README.md ++/node_modules/function-bind/.github/FUNDING.yml ++/node_modules/function-bind/.github/SECURITY.md ++/node_modules/function-bind/test/.eslintrc ++/node_modules/function-bind/test/index.js ++/node_modules/function-bind/.eslintrc ++/node_modules/function-bind/.nycrc ++/node_modules/function-bind/CHANGELOG.md ++/node_modules/function-bind/implementation.js ++/node_modules/function-bind/index.js ++/node_modules/function-bind/LICENSE ++/node_modules/function-bind/package.json ++/node_modules/function-bind/README.md ++/node_modules/get-intrinsic/.github/FUNDING.yml ++/node_modules/get-intrinsic/test/GetIntrinsic.js ++/node_modules/get-intrinsic/.eslintrc ++/node_modules/get-intrinsic/.nycrc ++/node_modules/get-intrinsic/CHANGELOG.md ++/node_modules/get-intrinsic/index.js ++/node_modules/get-intrinsic/LICENSE ++/node_modules/get-intrinsic/package.json ++/node_modules/get-intrinsic/README.md ++/node_modules/get-proto/.github/FUNDING.yml ++/node_modules/get-proto/test/index.js ++/node_modules/get-proto/.eslintrc ++/node_modules/get-proto/.nycrc ++/node_modules/get-proto/CHANGELOG.md ++/node_modules/get-proto/index.d.ts ++/node_modules/get-proto/index.js ++/node_modules/get-proto/LICENSE ++/node_modules/get-proto/Object.getPrototypeOf.d.ts ++/node_modules/get-proto/Object.getPrototypeOf.js ++/node_modules/get-proto/package.json ++/node_modules/get-proto/README.md ++/node_modules/get-proto/Reflect.getPrototypeOf.d.ts ++/node_modules/get-proto/Reflect.getPrototypeOf.js ++/node_modules/get-proto/tsconfig.json ++/node_modules/gopd/.github/FUNDING.yml ++/node_modules/gopd/test/index.js ++/node_modules/gopd/.eslintrc ++/node_modules/gopd/CHANGELOG.md ++/node_modules/gopd/gOPD.d.ts ++/node_modules/gopd/gOPD.js ++/node_modules/gopd/index.d.ts ++/node_modules/gopd/index.js ++/node_modules/gopd/LICENSE ++/node_modules/gopd/package.json ++/node_modules/gopd/README.md ++/node_modules/gopd/tsconfig.json ++/node_modules/has-symbols/.github/FUNDING.yml ++/node_modules/has-symbols/test/shams/core-js.js ++/node_modules/has-symbols/test/shams/get-own-property-symbols.js ++/node_modules/has-symbols/test/index.js ++/node_modules/has-symbols/test/tests.js ++/node_modules/has-symbols/.eslintrc ++/node_modules/has-symbols/.nycrc ++/node_modules/has-symbols/CHANGELOG.md ++/node_modules/has-symbols/index.d.ts ++/node_modules/has-symbols/index.js ++/node_modules/has-symbols/LICENSE ++/node_modules/has-symbols/package.json ++/node_modules/has-symbols/README.md ++/node_modules/has-symbols/shams.d.ts ++/node_modules/has-symbols/shams.js ++/node_modules/has-symbols/tsconfig.json ++/node_modules/has-tostringtag/.github/FUNDING.yml ++/node_modules/has-tostringtag/test/shams/core-js.js ++/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js ++/node_modules/has-tostringtag/test/index.js ++/node_modules/has-tostringtag/test/tests.js ++/node_modules/has-tostringtag/.eslintrc ++/node_modules/has-tostringtag/.nycrc ++/node_modules/has-tostringtag/CHANGELOG.md ++/node_modules/has-tostringtag/index.d.ts ++/node_modules/has-tostringtag/index.js ++/node_modules/has-tostringtag/LICENSE ++/node_modules/has-tostringtag/package.json ++/node_modules/has-tostringtag/README.md ++/node_modules/has-tostringtag/shams.d.ts ++/node_modules/has-tostringtag/shams.js ++/node_modules/has-tostringtag/tsconfig.json ++/node_modules/hasown/.github/FUNDING.yml ++/node_modules/hasown/.nycrc ++/node_modules/hasown/CHANGELOG.md ++/node_modules/hasown/index.d.ts ++/node_modules/hasown/index.js ++/node_modules/hasown/LICENSE ++/node_modules/hasown/package.json ++/node_modules/hasown/README.md ++/node_modules/hasown/tsconfig.json ++/node_modules/husky/bin.js ++/node_modules/husky/husky ++/node_modules/husky/index.d.ts ++/node_modules/husky/index.js ++/node_modules/husky/LICENSE ++/node_modules/husky/package.json ++/node_modules/husky/README.md ++/node_modules/json-bigint/lib/parse.js ++/node_modules/json-bigint/lib/stringify.js ++/node_modules/json-bigint/index.js ++/node_modules/json-bigint/LICENSE ++/node_modules/json-bigint/package.json ++/node_modules/json-bigint/README.md ++/node_modules/math-intrinsics/.github/FUNDING.yml ++/node_modules/math-intrinsics/constants/maxArrayLength.d.ts ++/node_modules/math-intrinsics/constants/maxArrayLength.js ++/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts ++/node_modules/math-intrinsics/constants/maxSafeInteger.js ++/node_modules/math-intrinsics/constants/maxValue.d.ts ++/node_modules/math-intrinsics/constants/maxValue.js ++/node_modules/math-intrinsics/test/index.js ++/node_modules/math-intrinsics/.eslintrc ++/node_modules/math-intrinsics/abs.d.ts ++/node_modules/math-intrinsics/abs.js ++/node_modules/math-intrinsics/CHANGELOG.md ++/node_modules/math-intrinsics/floor.d.ts ++/node_modules/math-intrinsics/floor.js ++/node_modules/math-intrinsics/isFinite.d.ts ++/node_modules/math-intrinsics/isFinite.js ++/node_modules/math-intrinsics/isInteger.d.ts ++/node_modules/math-intrinsics/isInteger.js ++/node_modules/math-intrinsics/isNaN.d.ts ++/node_modules/math-intrinsics/isNaN.js ++/node_modules/math-intrinsics/isNegativeZero.d.ts ++/node_modules/math-intrinsics/isNegativeZero.js ++/node_modules/math-intrinsics/LICENSE ++/node_modules/math-intrinsics/max.d.ts ++/node_modules/math-intrinsics/max.js ++/node_modules/math-intrinsics/min.d.ts ++/node_modules/math-intrinsics/min.js ++/node_modules/math-intrinsics/mod.d.ts ++/node_modules/math-intrinsics/mod.js ++/node_modules/math-intrinsics/package.json ++/node_modules/math-intrinsics/pow.d.ts ++/node_modules/math-intrinsics/pow.js ++/node_modules/math-intrinsics/README.md ++/node_modules/math-intrinsics/round.d.ts ++/node_modules/math-intrinsics/round.js ++/node_modules/math-intrinsics/sign.d.ts ++/node_modules/math-intrinsics/sign.js ++/node_modules/math-intrinsics/tsconfig.json ++/node_modules/mime-db/db.json ++/node_modules/mime-db/HISTORY.md ++/node_modules/mime-db/index.js ++/node_modules/mime-db/LICENSE ++/node_modules/mime-db/package.json ++/node_modules/mime-db/README.md ++/node_modules/mime-types/HISTORY.md ++/node_modules/mime-types/index.js ++/node_modules/mime-types/LICENSE ++/node_modules/mime-types/package.json ++/node_modules/mime-types/README.md ++/node_modules/proxy-from-env/index.js ++/node_modules/proxy-from-env/LICENSE ++/node_modules/proxy-from-env/package.json ++/node_modules/proxy-from-env/README.md ++/node_modules/.package-lock.json diff --git a/.idea/shelf/在进行更新之前于_2026_6_6_07_53_取消提交了更改_[更改]/shelved.patch b/.idea/shelf/在进行更新之前于_2026_6_6_07_53_取消提交了更改_[更改]/shelved.patch new file mode 100644 index 000000000..0c0abf9c8 --- /dev/null +++ b/.idea/shelf/在进行更新之前于_2026_6_6_07_53_取消提交了更改_[更改]/shelved.patch @@ -0,0 +1,566 @@ +Index: healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (revision 69518074f272ff73e8e93e281d8fc7c4dff90486) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (date 1780648645386) +@@ -434,7 +434,7 @@ + import OrderGroupDrawer from '@/views/doctorstation/components/prescription/orderGroupDrawer.vue'; + import PrescriptionHistory from '@/views/doctorstation/components/prescription/prescriptionHistory.vue'; + import Decimal from 'decimal.js'; +-import {ElLoading, ElMessage, ElMessageBox} from 'element-plus'; ++import {ElMessage, ElMessageBox} from 'element-plus'; + import useUserStore from '@/store/modules/user'; + import ApplicationFormBottomBtn from './applicationForm/applicationFormBottomBtn.vue'; + import LeaveHospitalDialog from './applicationForm/leaveHospitalDialog.vue'; +@@ -617,7 +617,7 @@ + }, + ]; + +-let loadingInstance = undefined; ++// loadingInstance removed - using loading ref instead + onMounted(() => { + document.addEventListener('keydown', escKeyListener); + }); +@@ -672,10 +672,7 @@ + } + // 获取列表信息 + function getListInfo(addNewRow) { +- loadingInstance = ElLoading.service({ fullscreen: true }); +- setTimeout(() => { +- loadingInstance.close(); +- }, 180); ++ loading.value = true; + isAdding.value = false; + expandOrder.value = []; + // 🔧 修复:先加载科室树,再处理处方数据 +@@ -687,7 +684,7 @@ + getPrescriptionList(patientInfo.value.encounterId).then((res) => { + // 等待科室树加载完成后再处理处方数据,确保 resolveOrgId 能正确匹配 + orgTreePromise.then(() => { +- loadingInstance.close(); ++ loading.value = false; + prescriptionList.value = res.data + .map((item) => { + const parsedContent = JSON.parse(item.contentJson); +@@ -747,7 +744,7 @@ + handleAddPrescription(); + } + }); +- }); ++ }).catch(() => { loading.value = false; }); + getContract({ encounterId: patientInfo.value.encounterId }).then((res) => { + contractList.value = res.data; + }); +Index: .gitignore +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/.gitignore b/.gitignore +new file mode 100644 +--- /dev/null (date 1780648645414) ++++ b/.gitignore (date 1780648645414) +@@ -0,0 +1,418 @@ ++/.vscode/mcp.json ++/.vscode/settings.json ++/.qwen/settings.json.orig ++/.playwright-mcp/console-2026-03-31T08-27-30-883Z.log ++/.playwright-mcp/console-2026-05-19T03-10-43-600Z.log ++/.playwright-mcp/console-2026-05-19T03-18-23-396Z.log ++/.playwright-mcp/console-2026-05-19T03-18-51-946Z.log ++/.playwright-mcp/page-2026-05-11T02-56-22-027Z.yml ++/.playwright-mcp/page-2026-05-11T02-56-30-095Z.yml ++/.playwright-mcp/page-2026-05-19T03-10-44-171Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-20-520Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-40-168Z.yml ++/.playwright-mcp/page-2026-05-19T03-12-10-968Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-23-610Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-52-634Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-19-472Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-36-669Z.yml ++/.playwright-mcp/page-2026-05-19T03-20-04-342Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-08-820Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-43-735Z.yml ++/.idea/compiler.xml ++/.idea/encodings.xml ++/.idea/jarRepositories.xml ++/.idea/misc.xml ++/.idea/vcs.xml ++/.idea/workspace.xml ++/node_modules/.bin/husky ++/node_modules/.bin/husky.cmd ++/node_modules/.bin/husky.ps1 ++/node_modules/asynckit/lib/abort.js ++/node_modules/asynckit/lib/async.js ++/node_modules/asynckit/lib/defer.js ++/node_modules/asynckit/lib/iterate.js ++/node_modules/asynckit/lib/readable_asynckit.js ++/node_modules/asynckit/lib/readable_parallel.js ++/node_modules/asynckit/lib/readable_serial.js ++/node_modules/asynckit/lib/readable_serial_ordered.js ++/node_modules/asynckit/lib/state.js ++/node_modules/asynckit/lib/streamify.js ++/node_modules/asynckit/lib/terminator.js ++/node_modules/asynckit/bench.js ++/node_modules/asynckit/index.js ++/node_modules/asynckit/LICENSE ++/node_modules/asynckit/package.json ++/node_modules/asynckit/parallel.js ++/node_modules/asynckit/README.md ++/node_modules/asynckit/serial.js ++/node_modules/asynckit/serialOrdered.js ++/node_modules/asynckit/stream.js ++/node_modules/axios/dist/browser/axios.cjs ++/node_modules/axios/dist/esm/axios.js ++/node_modules/axios/dist/esm/axios.min.js ++/node_modules/axios/dist/esm/axios.min.js.map ++/node_modules/axios/dist/node/axios.cjs ++/node_modules/axios/dist/axios.js ++/node_modules/axios/dist/axios.min.js ++/node_modules/axios/dist/axios.min.js.map ++/node_modules/axios/lib/adapters/adapters.js ++/node_modules/axios/lib/adapters/fetch.js ++/node_modules/axios/lib/adapters/http.js ++/node_modules/axios/lib/adapters/README.md ++/node_modules/axios/lib/adapters/xhr.js ++/node_modules/axios/lib/cancel/CanceledError.js ++/node_modules/axios/lib/cancel/CancelToken.js ++/node_modules/axios/lib/cancel/isCancel.js ++/node_modules/axios/lib/core/Axios.js ++/node_modules/axios/lib/core/AxiosError.js ++/node_modules/axios/lib/core/AxiosHeaders.js ++/node_modules/axios/lib/core/buildFullPath.js ++/node_modules/axios/lib/core/dispatchRequest.js ++/node_modules/axios/lib/core/InterceptorManager.js ++/node_modules/axios/lib/core/mergeConfig.js ++/node_modules/axios/lib/core/README.md ++/node_modules/axios/lib/core/settle.js ++/node_modules/axios/lib/core/transformData.js ++/node_modules/axios/lib/defaults/index.js ++/node_modules/axios/lib/defaults/transitional.js ++/node_modules/axios/lib/env/classes/FormData.js ++/node_modules/axios/lib/env/data.js ++/node_modules/axios/lib/env/README.md ++/node_modules/axios/lib/helpers/AxiosTransformStream.js ++/node_modules/axios/lib/helpers/AxiosURLSearchParams.js ++/node_modules/axios/lib/helpers/bind.js ++/node_modules/axios/lib/helpers/buildURL.js ++/node_modules/axios/lib/helpers/callbackify.js ++/node_modules/axios/lib/helpers/combineURLs.js ++/node_modules/axios/lib/helpers/composeSignals.js ++/node_modules/axios/lib/helpers/cookies.js ++/node_modules/axios/lib/helpers/deprecatedMethod.js ++/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js ++/node_modules/axios/lib/helpers/formDataToJSON.js ++/node_modules/axios/lib/helpers/formDataToStream.js ++/node_modules/axios/lib/helpers/fromDataURI.js ++/node_modules/axios/lib/helpers/HttpStatusCode.js ++/node_modules/axios/lib/helpers/isAbsoluteURL.js ++/node_modules/axios/lib/helpers/isAxiosError.js ++/node_modules/axios/lib/helpers/isURLSameOrigin.js ++/node_modules/axios/lib/helpers/null.js ++/node_modules/axios/lib/helpers/parseHeaders.js ++/node_modules/axios/lib/helpers/parseProtocol.js ++/node_modules/axios/lib/helpers/progressEventReducer.js ++/node_modules/axios/lib/helpers/readBlob.js ++/node_modules/axios/lib/helpers/README.md ++/node_modules/axios/lib/helpers/resolveConfig.js ++/node_modules/axios/lib/helpers/speedometer.js ++/node_modules/axios/lib/helpers/spread.js ++/node_modules/axios/lib/helpers/throttle.js ++/node_modules/axios/lib/helpers/toFormData.js ++/node_modules/axios/lib/helpers/toURLEncodedForm.js ++/node_modules/axios/lib/helpers/trackStream.js ++/node_modules/axios/lib/helpers/validator.js ++/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js ++/node_modules/axios/lib/platform/browser/classes/Blob.js ++/node_modules/axios/lib/platform/browser/classes/FormData.js ++/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/browser/index.js ++/node_modules/axios/lib/platform/common/utils.js ++/node_modules/axios/lib/platform/node/classes/FormData.js ++/node_modules/axios/lib/platform/node/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/node/index.js ++/node_modules/axios/lib/platform/index.js ++/node_modules/axios/lib/axios.js ++/node_modules/axios/lib/utils.js ++/node_modules/axios/CHANGELOG.md ++/node_modules/axios/index.d.cts ++/node_modules/axios/index.d.ts ++/node_modules/axios/index.js ++/node_modules/axios/LICENSE ++/node_modules/axios/MIGRATION_GUIDE.md ++/node_modules/axios/package.json ++/node_modules/axios/README.md ++/node_modules/bignumber.js/doc/API.html ++/node_modules/bignumber.js/bignumber.d.mts ++/node_modules/bignumber.js/bignumber.d.ts ++/node_modules/bignumber.js/bignumber.js ++/node_modules/bignumber.js/bignumber.mjs ++/node_modules/bignumber.js/CHANGELOG.md ++/node_modules/bignumber.js/LICENCE.md ++/node_modules/bignumber.js/package.json ++/node_modules/bignumber.js/README.md ++/node_modules/bignumber.js/types.d.ts ++/node_modules/call-bind-apply-helpers/.github/FUNDING.yml ++/node_modules/call-bind-apply-helpers/test/index.js ++/node_modules/call-bind-apply-helpers/.eslintrc ++/node_modules/call-bind-apply-helpers/.nycrc ++/node_modules/call-bind-apply-helpers/actualApply.d.ts ++/node_modules/call-bind-apply-helpers/actualApply.js ++/node_modules/call-bind-apply-helpers/applyBind.d.ts ++/node_modules/call-bind-apply-helpers/applyBind.js ++/node_modules/call-bind-apply-helpers/CHANGELOG.md ++/node_modules/call-bind-apply-helpers/functionApply.d.ts ++/node_modules/call-bind-apply-helpers/functionApply.js ++/node_modules/call-bind-apply-helpers/functionCall.d.ts ++/node_modules/call-bind-apply-helpers/functionCall.js ++/node_modules/call-bind-apply-helpers/index.d.ts ++/node_modules/call-bind-apply-helpers/index.js ++/node_modules/call-bind-apply-helpers/LICENSE ++/node_modules/call-bind-apply-helpers/package.json ++/node_modules/call-bind-apply-helpers/README.md ++/node_modules/call-bind-apply-helpers/reflectApply.d.ts ++/node_modules/call-bind-apply-helpers/reflectApply.js ++/node_modules/call-bind-apply-helpers/tsconfig.json ++/node_modules/combined-stream/lib/combined_stream.js ++/node_modules/combined-stream/License ++/node_modules/combined-stream/package.json ++/node_modules/combined-stream/Readme.md ++/node_modules/combined-stream/yarn.lock ++/node_modules/delayed-stream/lib/delayed_stream.js ++/node_modules/delayed-stream/.npmignore ++/node_modules/delayed-stream/License ++/node_modules/delayed-stream/Makefile ++/node_modules/delayed-stream/package.json ++/node_modules/delayed-stream/Readme.md ++/node_modules/dunder-proto/.github/FUNDING.yml ++/node_modules/dunder-proto/test/get.js ++/node_modules/dunder-proto/test/index.js ++/node_modules/dunder-proto/test/set.js ++/node_modules/dunder-proto/.eslintrc ++/node_modules/dunder-proto/.nycrc ++/node_modules/dunder-proto/CHANGELOG.md ++/node_modules/dunder-proto/get.d.ts ++/node_modules/dunder-proto/get.js ++/node_modules/dunder-proto/LICENSE ++/node_modules/dunder-proto/package.json ++/node_modules/dunder-proto/README.md ++/node_modules/dunder-proto/set.d.ts ++/node_modules/dunder-proto/set.js ++/node_modules/dunder-proto/tsconfig.json ++/node_modules/es-define-property/.github/FUNDING.yml ++/node_modules/es-define-property/test/index.js ++/node_modules/es-define-property/.eslintrc ++/node_modules/es-define-property/.nycrc ++/node_modules/es-define-property/CHANGELOG.md ++/node_modules/es-define-property/index.d.ts ++/node_modules/es-define-property/index.js ++/node_modules/es-define-property/LICENSE ++/node_modules/es-define-property/package.json ++/node_modules/es-define-property/README.md ++/node_modules/es-define-property/tsconfig.json ++/node_modules/es-errors/.github/FUNDING.yml ++/node_modules/es-errors/test/index.js ++/node_modules/es-errors/.eslintrc ++/node_modules/es-errors/CHANGELOG.md ++/node_modules/es-errors/eval.d.ts ++/node_modules/es-errors/eval.js ++/node_modules/es-errors/index.d.ts ++/node_modules/es-errors/index.js ++/node_modules/es-errors/LICENSE ++/node_modules/es-errors/package.json ++/node_modules/es-errors/range.d.ts ++/node_modules/es-errors/range.js ++/node_modules/es-errors/README.md ++/node_modules/es-errors/ref.d.ts ++/node_modules/es-errors/ref.js ++/node_modules/es-errors/syntax.d.ts ++/node_modules/es-errors/syntax.js ++/node_modules/es-errors/tsconfig.json ++/node_modules/es-errors/type.d.ts ++/node_modules/es-errors/type.js ++/node_modules/es-errors/uri.d.ts ++/node_modules/es-errors/uri.js ++/node_modules/es-object-atoms/.github/FUNDING.yml ++/node_modules/es-object-atoms/test/index.js ++/node_modules/es-object-atoms/.eslintrc ++/node_modules/es-object-atoms/CHANGELOG.md ++/node_modules/es-object-atoms/index.d.ts ++/node_modules/es-object-atoms/index.js ++/node_modules/es-object-atoms/isObject.d.ts ++/node_modules/es-object-atoms/isObject.js ++/node_modules/es-object-atoms/LICENSE ++/node_modules/es-object-atoms/package.json ++/node_modules/es-object-atoms/README.md ++/node_modules/es-object-atoms/RequireObjectCoercible.d.ts ++/node_modules/es-object-atoms/RequireObjectCoercible.js ++/node_modules/es-object-atoms/ToObject.d.ts ++/node_modules/es-object-atoms/ToObject.js ++/node_modules/es-object-atoms/tsconfig.json ++/node_modules/es-set-tostringtag/test/index.js ++/node_modules/es-set-tostringtag/.eslintrc ++/node_modules/es-set-tostringtag/.nycrc ++/node_modules/es-set-tostringtag/CHANGELOG.md ++/node_modules/es-set-tostringtag/index.d.ts ++/node_modules/es-set-tostringtag/index.js ++/node_modules/es-set-tostringtag/LICENSE ++/node_modules/es-set-tostringtag/package.json ++/node_modules/es-set-tostringtag/README.md ++/node_modules/es-set-tostringtag/tsconfig.json ++/node_modules/follow-redirects/debug.js ++/node_modules/follow-redirects/http.js ++/node_modules/follow-redirects/https.js ++/node_modules/follow-redirects/index.js ++/node_modules/follow-redirects/LICENSE ++/node_modules/follow-redirects/package.json ++/node_modules/follow-redirects/README.md ++/node_modules/form-data/lib/browser.js ++/node_modules/form-data/lib/form_data.js ++/node_modules/form-data/lib/populate.js ++/node_modules/form-data/CHANGELOG.md ++/node_modules/form-data/index.d.ts ++/node_modules/form-data/License ++/node_modules/form-data/package.json ++/node_modules/form-data/README.md ++/node_modules/function-bind/.github/FUNDING.yml ++/node_modules/function-bind/.github/SECURITY.md ++/node_modules/function-bind/test/.eslintrc ++/node_modules/function-bind/test/index.js ++/node_modules/function-bind/.eslintrc ++/node_modules/function-bind/.nycrc ++/node_modules/function-bind/CHANGELOG.md ++/node_modules/function-bind/implementation.js ++/node_modules/function-bind/index.js ++/node_modules/function-bind/LICENSE ++/node_modules/function-bind/package.json ++/node_modules/function-bind/README.md ++/node_modules/get-intrinsic/.github/FUNDING.yml ++/node_modules/get-intrinsic/test/GetIntrinsic.js ++/node_modules/get-intrinsic/.eslintrc ++/node_modules/get-intrinsic/.nycrc ++/node_modules/get-intrinsic/CHANGELOG.md ++/node_modules/get-intrinsic/index.js ++/node_modules/get-intrinsic/LICENSE ++/node_modules/get-intrinsic/package.json ++/node_modules/get-intrinsic/README.md ++/node_modules/get-proto/.github/FUNDING.yml ++/node_modules/get-proto/test/index.js ++/node_modules/get-proto/.eslintrc ++/node_modules/get-proto/.nycrc ++/node_modules/get-proto/CHANGELOG.md ++/node_modules/get-proto/index.d.ts ++/node_modules/get-proto/index.js ++/node_modules/get-proto/LICENSE ++/node_modules/get-proto/Object.getPrototypeOf.d.ts ++/node_modules/get-proto/Object.getPrototypeOf.js ++/node_modules/get-proto/package.json ++/node_modules/get-proto/README.md ++/node_modules/get-proto/Reflect.getPrototypeOf.d.ts ++/node_modules/get-proto/Reflect.getPrototypeOf.js ++/node_modules/get-proto/tsconfig.json ++/node_modules/gopd/.github/FUNDING.yml ++/node_modules/gopd/test/index.js ++/node_modules/gopd/.eslintrc ++/node_modules/gopd/CHANGELOG.md ++/node_modules/gopd/gOPD.d.ts ++/node_modules/gopd/gOPD.js ++/node_modules/gopd/index.d.ts ++/node_modules/gopd/index.js ++/node_modules/gopd/LICENSE ++/node_modules/gopd/package.json ++/node_modules/gopd/README.md ++/node_modules/gopd/tsconfig.json ++/node_modules/has-symbols/.github/FUNDING.yml ++/node_modules/has-symbols/test/shams/core-js.js ++/node_modules/has-symbols/test/shams/get-own-property-symbols.js ++/node_modules/has-symbols/test/index.js ++/node_modules/has-symbols/test/tests.js ++/node_modules/has-symbols/.eslintrc ++/node_modules/has-symbols/.nycrc ++/node_modules/has-symbols/CHANGELOG.md ++/node_modules/has-symbols/index.d.ts ++/node_modules/has-symbols/index.js ++/node_modules/has-symbols/LICENSE ++/node_modules/has-symbols/package.json ++/node_modules/has-symbols/README.md ++/node_modules/has-symbols/shams.d.ts ++/node_modules/has-symbols/shams.js ++/node_modules/has-symbols/tsconfig.json ++/node_modules/has-tostringtag/.github/FUNDING.yml ++/node_modules/has-tostringtag/test/shams/core-js.js ++/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js ++/node_modules/has-tostringtag/test/index.js ++/node_modules/has-tostringtag/test/tests.js ++/node_modules/has-tostringtag/.eslintrc ++/node_modules/has-tostringtag/.nycrc ++/node_modules/has-tostringtag/CHANGELOG.md ++/node_modules/has-tostringtag/index.d.ts ++/node_modules/has-tostringtag/index.js ++/node_modules/has-tostringtag/LICENSE ++/node_modules/has-tostringtag/package.json ++/node_modules/has-tostringtag/README.md ++/node_modules/has-tostringtag/shams.d.ts ++/node_modules/has-tostringtag/shams.js ++/node_modules/has-tostringtag/tsconfig.json ++/node_modules/hasown/.github/FUNDING.yml ++/node_modules/hasown/.nycrc ++/node_modules/hasown/CHANGELOG.md ++/node_modules/hasown/index.d.ts ++/node_modules/hasown/index.js ++/node_modules/hasown/LICENSE ++/node_modules/hasown/package.json ++/node_modules/hasown/README.md ++/node_modules/hasown/tsconfig.json ++/node_modules/husky/bin.js ++/node_modules/husky/husky ++/node_modules/husky/index.d.ts ++/node_modules/husky/index.js ++/node_modules/husky/LICENSE ++/node_modules/husky/package.json ++/node_modules/husky/README.md ++/node_modules/json-bigint/lib/parse.js ++/node_modules/json-bigint/lib/stringify.js ++/node_modules/json-bigint/index.js ++/node_modules/json-bigint/LICENSE ++/node_modules/json-bigint/package.json ++/node_modules/json-bigint/README.md ++/node_modules/math-intrinsics/.github/FUNDING.yml ++/node_modules/math-intrinsics/constants/maxArrayLength.d.ts ++/node_modules/math-intrinsics/constants/maxArrayLength.js ++/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts ++/node_modules/math-intrinsics/constants/maxSafeInteger.js ++/node_modules/math-intrinsics/constants/maxValue.d.ts ++/node_modules/math-intrinsics/constants/maxValue.js ++/node_modules/math-intrinsics/test/index.js ++/node_modules/math-intrinsics/.eslintrc ++/node_modules/math-intrinsics/abs.d.ts ++/node_modules/math-intrinsics/abs.js ++/node_modules/math-intrinsics/CHANGELOG.md ++/node_modules/math-intrinsics/floor.d.ts ++/node_modules/math-intrinsics/floor.js ++/node_modules/math-intrinsics/isFinite.d.ts ++/node_modules/math-intrinsics/isFinite.js ++/node_modules/math-intrinsics/isInteger.d.ts ++/node_modules/math-intrinsics/isInteger.js ++/node_modules/math-intrinsics/isNaN.d.ts ++/node_modules/math-intrinsics/isNaN.js ++/node_modules/math-intrinsics/isNegativeZero.d.ts ++/node_modules/math-intrinsics/isNegativeZero.js ++/node_modules/math-intrinsics/LICENSE ++/node_modules/math-intrinsics/max.d.ts ++/node_modules/math-intrinsics/max.js ++/node_modules/math-intrinsics/min.d.ts ++/node_modules/math-intrinsics/min.js ++/node_modules/math-intrinsics/mod.d.ts ++/node_modules/math-intrinsics/mod.js ++/node_modules/math-intrinsics/package.json ++/node_modules/math-intrinsics/pow.d.ts ++/node_modules/math-intrinsics/pow.js ++/node_modules/math-intrinsics/README.md ++/node_modules/math-intrinsics/round.d.ts ++/node_modules/math-intrinsics/round.js ++/node_modules/math-intrinsics/sign.d.ts ++/node_modules/math-intrinsics/sign.js ++/node_modules/math-intrinsics/tsconfig.json ++/node_modules/mime-db/db.json ++/node_modules/mime-db/HISTORY.md ++/node_modules/mime-db/index.js ++/node_modules/mime-db/LICENSE ++/node_modules/mime-db/package.json ++/node_modules/mime-db/README.md ++/node_modules/mime-types/HISTORY.md ++/node_modules/mime-types/index.js ++/node_modules/mime-types/LICENSE ++/node_modules/mime-types/package.json ++/node_modules/mime-types/README.md ++/node_modules/proxy-from-env/index.js ++/node_modules/proxy-from-env/LICENSE ++/node_modules/proxy-from-env/package.json ++/node_modules/proxy-from-env/README.md ++/node_modules/.package-lock.json +Index: healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (revision 69518074f272ff73e8e93e281d8fc7c4dff90486) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (date 1780648645399) +@@ -252,31 +252,37 @@ + // 处理节点点击,根据后台返回的路径加载组件 + const handleNodeClick = (data, node) => { + if (node.isLeaf) { ++ const newRouter = data.document?.vueRouter; ++ const oldRouter = currentSelectTemplate.value?.vueRouter; ++ const isSameTemplate = newRouter && oldRouter && newRouter === oldRouter; ++ + // 存储当前节点数据 + currentSelectTemplate.value = data.document; + +- // 在切换组件前先重置表单数据,避免显示之前的数据 +- editForm.value = { +- id: '', +- definitionId: '', +- definitionBusNo: '', +- contentJson: '', +- statusEnum: 1, +- organizationId: 0, +- encounterId: '', +- patientId: '', +- recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), +- createBy: '', +- source: '', +- }; +- +- // 先清空当前组件,再设置新组件,确保组件完全重新渲染 +- currentComponent.value = undefined; +- +- // 使用 nextTick 确保 DOM 更新后再设置新组件 +- nextTick(() => { +- currentComponent.value = currentSelectTemplate.value.vueRouter; +- }); ++ if (isSameTemplate) { ++ // 同一模板(仅患者切换):不卸载组件、不清空表单,避免闪烁 ++ // loading 遮罩覆盖过渡,loadLatestMedicalRecord 会原子替换表单数据 ++ loading.value = true; ++ } else { ++ // 不同模板:先清空再设置,确保组件完全重新渲染 ++ editForm.value = { ++ id: '', ++ definitionId: '', ++ definitionBusNo: '', ++ contentJson: '', ++ statusEnum: 1, ++ organizationId: 0, ++ encounterId: '', ++ patientId: '', ++ recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), ++ createBy: '', ++ source: '', ++ }; ++ currentComponent.value = undefined; ++ nextTick(() => { ++ currentComponent.value = newRouter; ++ }); ++ } + } else { + currentSelectTemplate.value = { + id: '', +@@ -624,8 +630,8 @@ + // 加载最新的病历数据并回显 + const loadLatestMedicalRecord = async () => { + if (!patientInfo.value?.encounterId || !currentSelectTemplate.value.id) return; +- editForm.value.id = ''; + loading.value = true; ++ editForm.value.id = ''; + try { + // 获取患者的历史病历记录 + const res = await getRecordByEncounterIdList({ diff --git a/.idea/shelf/在进行更新之前于_2026_6_6_07_58_取消提交了更改_[更改]/shelved.patch b/.idea/shelf/在进行更新之前于_2026_6_6_07_58_取消提交了更改_[更改]/shelved.patch new file mode 100644 index 000000000..17f0e9bea --- /dev/null +++ b/.idea/shelf/在进行更新之前于_2026_6_6_07_58_取消提交了更改_[更改]/shelved.patch @@ -0,0 +1,566 @@ +Index: healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (revision a582a97ef121357e262bea193dc1b28a13d82f16) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (date 1780703608798) +@@ -449,7 +449,7 @@ + import OrderGroupDrawer from '@/views/doctorstation/components/prescription/orderGroupDrawer.vue'; + import PrescriptionHistory from '@/views/doctorstation/components/prescription/prescriptionHistory.vue'; + import Decimal from 'decimal.js'; +-import {ElLoading, ElMessage, ElMessageBox} from 'element-plus'; ++import {ElMessage, ElMessageBox} from 'element-plus'; + import useUserStore from '@/store/modules/user'; + import ApplicationFormBottomBtn from './applicationForm/applicationFormBottomBtn.vue'; + import LeaveHospitalDialog from './applicationForm/leaveHospitalDialog.vue'; +@@ -643,7 +643,7 @@ + }, + ]; + +-let loadingInstance = undefined; ++// loadingInstance removed - using loading ref instead + onMounted(() => { + document.addEventListener('keydown', escKeyListener); + }); +@@ -697,10 +697,7 @@ + } + // 获取列表信息 + function getListInfo(addNewRow) { +- loadingInstance = ElLoading.service({ fullscreen: true }); +- setTimeout(() => { +- loadingInstance.close(); +- }, 180); ++ loading.value = true; + isAdding.value = false; + collapseAllExpanded(); + // 🔧 修复:先加载科室树,再处理处方数据 +@@ -712,7 +709,7 @@ + getPrescriptionList(patientInfo.value.encounterId).then((res) => { + // 等待科室树加载完成后再处理处方数据,确保 resolveOrgId 能正确匹配 + orgTreePromise.then(() => { +- loadingInstance.close(); ++ loading.value = false; + prescriptionList.value = res.data + .map((item) => { + const parsedContent = JSON.parse(item.contentJson); +@@ -772,7 +769,7 @@ + handleAddPrescription(); + } + }); +- }); ++ }).catch(() => { loading.value = false; }); + getContract({ encounterId: patientInfo.value.encounterId }).then((res) => { + contractList.value = res.data; + }); +Index: .gitignore +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/.gitignore b/.gitignore +new file mode 100644 +--- /dev/null (date 1780703608832) ++++ b/.gitignore (date 1780703608832) +@@ -0,0 +1,418 @@ ++/.vscode/mcp.json ++/.vscode/settings.json ++/.qwen/settings.json.orig ++/.playwright-mcp/console-2026-03-31T08-27-30-883Z.log ++/.playwright-mcp/console-2026-05-19T03-10-43-600Z.log ++/.playwright-mcp/console-2026-05-19T03-18-23-396Z.log ++/.playwright-mcp/console-2026-05-19T03-18-51-946Z.log ++/.playwright-mcp/page-2026-05-11T02-56-22-027Z.yml ++/.playwright-mcp/page-2026-05-11T02-56-30-095Z.yml ++/.playwright-mcp/page-2026-05-19T03-10-44-171Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-20-520Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-40-168Z.yml ++/.playwright-mcp/page-2026-05-19T03-12-10-968Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-23-610Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-52-634Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-19-472Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-36-669Z.yml ++/.playwright-mcp/page-2026-05-19T03-20-04-342Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-08-820Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-43-735Z.yml ++/.idea/compiler.xml ++/.idea/encodings.xml ++/.idea/jarRepositories.xml ++/.idea/misc.xml ++/.idea/vcs.xml ++/.idea/workspace.xml ++/node_modules/.bin/husky ++/node_modules/.bin/husky.cmd ++/node_modules/.bin/husky.ps1 ++/node_modules/asynckit/lib/abort.js ++/node_modules/asynckit/lib/async.js ++/node_modules/asynckit/lib/defer.js ++/node_modules/asynckit/lib/iterate.js ++/node_modules/asynckit/lib/readable_asynckit.js ++/node_modules/asynckit/lib/readable_parallel.js ++/node_modules/asynckit/lib/readable_serial.js ++/node_modules/asynckit/lib/readable_serial_ordered.js ++/node_modules/asynckit/lib/state.js ++/node_modules/asynckit/lib/streamify.js ++/node_modules/asynckit/lib/terminator.js ++/node_modules/asynckit/bench.js ++/node_modules/asynckit/index.js ++/node_modules/asynckit/LICENSE ++/node_modules/asynckit/package.json ++/node_modules/asynckit/parallel.js ++/node_modules/asynckit/README.md ++/node_modules/asynckit/serial.js ++/node_modules/asynckit/serialOrdered.js ++/node_modules/asynckit/stream.js ++/node_modules/axios/dist/browser/axios.cjs ++/node_modules/axios/dist/esm/axios.js ++/node_modules/axios/dist/esm/axios.min.js ++/node_modules/axios/dist/esm/axios.min.js.map ++/node_modules/axios/dist/node/axios.cjs ++/node_modules/axios/dist/axios.js ++/node_modules/axios/dist/axios.min.js ++/node_modules/axios/dist/axios.min.js.map ++/node_modules/axios/lib/adapters/adapters.js ++/node_modules/axios/lib/adapters/fetch.js ++/node_modules/axios/lib/adapters/http.js ++/node_modules/axios/lib/adapters/README.md ++/node_modules/axios/lib/adapters/xhr.js ++/node_modules/axios/lib/cancel/CanceledError.js ++/node_modules/axios/lib/cancel/CancelToken.js ++/node_modules/axios/lib/cancel/isCancel.js ++/node_modules/axios/lib/core/Axios.js ++/node_modules/axios/lib/core/AxiosError.js ++/node_modules/axios/lib/core/AxiosHeaders.js ++/node_modules/axios/lib/core/buildFullPath.js ++/node_modules/axios/lib/core/dispatchRequest.js ++/node_modules/axios/lib/core/InterceptorManager.js ++/node_modules/axios/lib/core/mergeConfig.js ++/node_modules/axios/lib/core/README.md ++/node_modules/axios/lib/core/settle.js ++/node_modules/axios/lib/core/transformData.js ++/node_modules/axios/lib/defaults/index.js ++/node_modules/axios/lib/defaults/transitional.js ++/node_modules/axios/lib/env/classes/FormData.js ++/node_modules/axios/lib/env/data.js ++/node_modules/axios/lib/env/README.md ++/node_modules/axios/lib/helpers/AxiosTransformStream.js ++/node_modules/axios/lib/helpers/AxiosURLSearchParams.js ++/node_modules/axios/lib/helpers/bind.js ++/node_modules/axios/lib/helpers/buildURL.js ++/node_modules/axios/lib/helpers/callbackify.js ++/node_modules/axios/lib/helpers/combineURLs.js ++/node_modules/axios/lib/helpers/composeSignals.js ++/node_modules/axios/lib/helpers/cookies.js ++/node_modules/axios/lib/helpers/deprecatedMethod.js ++/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js ++/node_modules/axios/lib/helpers/formDataToJSON.js ++/node_modules/axios/lib/helpers/formDataToStream.js ++/node_modules/axios/lib/helpers/fromDataURI.js ++/node_modules/axios/lib/helpers/HttpStatusCode.js ++/node_modules/axios/lib/helpers/isAbsoluteURL.js ++/node_modules/axios/lib/helpers/isAxiosError.js ++/node_modules/axios/lib/helpers/isURLSameOrigin.js ++/node_modules/axios/lib/helpers/null.js ++/node_modules/axios/lib/helpers/parseHeaders.js ++/node_modules/axios/lib/helpers/parseProtocol.js ++/node_modules/axios/lib/helpers/progressEventReducer.js ++/node_modules/axios/lib/helpers/readBlob.js ++/node_modules/axios/lib/helpers/README.md ++/node_modules/axios/lib/helpers/resolveConfig.js ++/node_modules/axios/lib/helpers/speedometer.js ++/node_modules/axios/lib/helpers/spread.js ++/node_modules/axios/lib/helpers/throttle.js ++/node_modules/axios/lib/helpers/toFormData.js ++/node_modules/axios/lib/helpers/toURLEncodedForm.js ++/node_modules/axios/lib/helpers/trackStream.js ++/node_modules/axios/lib/helpers/validator.js ++/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js ++/node_modules/axios/lib/platform/browser/classes/Blob.js ++/node_modules/axios/lib/platform/browser/classes/FormData.js ++/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/browser/index.js ++/node_modules/axios/lib/platform/common/utils.js ++/node_modules/axios/lib/platform/node/classes/FormData.js ++/node_modules/axios/lib/platform/node/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/node/index.js ++/node_modules/axios/lib/platform/index.js ++/node_modules/axios/lib/axios.js ++/node_modules/axios/lib/utils.js ++/node_modules/axios/CHANGELOG.md ++/node_modules/axios/index.d.cts ++/node_modules/axios/index.d.ts ++/node_modules/axios/index.js ++/node_modules/axios/LICENSE ++/node_modules/axios/MIGRATION_GUIDE.md ++/node_modules/axios/package.json ++/node_modules/axios/README.md ++/node_modules/bignumber.js/doc/API.html ++/node_modules/bignumber.js/bignumber.d.mts ++/node_modules/bignumber.js/bignumber.d.ts ++/node_modules/bignumber.js/bignumber.js ++/node_modules/bignumber.js/bignumber.mjs ++/node_modules/bignumber.js/CHANGELOG.md ++/node_modules/bignumber.js/LICENCE.md ++/node_modules/bignumber.js/package.json ++/node_modules/bignumber.js/README.md ++/node_modules/bignumber.js/types.d.ts ++/node_modules/call-bind-apply-helpers/.github/FUNDING.yml ++/node_modules/call-bind-apply-helpers/test/index.js ++/node_modules/call-bind-apply-helpers/.eslintrc ++/node_modules/call-bind-apply-helpers/.nycrc ++/node_modules/call-bind-apply-helpers/actualApply.d.ts ++/node_modules/call-bind-apply-helpers/actualApply.js ++/node_modules/call-bind-apply-helpers/applyBind.d.ts ++/node_modules/call-bind-apply-helpers/applyBind.js ++/node_modules/call-bind-apply-helpers/CHANGELOG.md ++/node_modules/call-bind-apply-helpers/functionApply.d.ts ++/node_modules/call-bind-apply-helpers/functionApply.js ++/node_modules/call-bind-apply-helpers/functionCall.d.ts ++/node_modules/call-bind-apply-helpers/functionCall.js ++/node_modules/call-bind-apply-helpers/index.d.ts ++/node_modules/call-bind-apply-helpers/index.js ++/node_modules/call-bind-apply-helpers/LICENSE ++/node_modules/call-bind-apply-helpers/package.json ++/node_modules/call-bind-apply-helpers/README.md ++/node_modules/call-bind-apply-helpers/reflectApply.d.ts ++/node_modules/call-bind-apply-helpers/reflectApply.js ++/node_modules/call-bind-apply-helpers/tsconfig.json ++/node_modules/combined-stream/lib/combined_stream.js ++/node_modules/combined-stream/License ++/node_modules/combined-stream/package.json ++/node_modules/combined-stream/Readme.md ++/node_modules/combined-stream/yarn.lock ++/node_modules/delayed-stream/lib/delayed_stream.js ++/node_modules/delayed-stream/.npmignore ++/node_modules/delayed-stream/License ++/node_modules/delayed-stream/Makefile ++/node_modules/delayed-stream/package.json ++/node_modules/delayed-stream/Readme.md ++/node_modules/dunder-proto/.github/FUNDING.yml ++/node_modules/dunder-proto/test/get.js ++/node_modules/dunder-proto/test/index.js ++/node_modules/dunder-proto/test/set.js ++/node_modules/dunder-proto/.eslintrc ++/node_modules/dunder-proto/.nycrc ++/node_modules/dunder-proto/CHANGELOG.md ++/node_modules/dunder-proto/get.d.ts ++/node_modules/dunder-proto/get.js ++/node_modules/dunder-proto/LICENSE ++/node_modules/dunder-proto/package.json ++/node_modules/dunder-proto/README.md ++/node_modules/dunder-proto/set.d.ts ++/node_modules/dunder-proto/set.js ++/node_modules/dunder-proto/tsconfig.json ++/node_modules/es-define-property/.github/FUNDING.yml ++/node_modules/es-define-property/test/index.js ++/node_modules/es-define-property/.eslintrc ++/node_modules/es-define-property/.nycrc ++/node_modules/es-define-property/CHANGELOG.md ++/node_modules/es-define-property/index.d.ts ++/node_modules/es-define-property/index.js ++/node_modules/es-define-property/LICENSE ++/node_modules/es-define-property/package.json ++/node_modules/es-define-property/README.md ++/node_modules/es-define-property/tsconfig.json ++/node_modules/es-errors/.github/FUNDING.yml ++/node_modules/es-errors/test/index.js ++/node_modules/es-errors/.eslintrc ++/node_modules/es-errors/CHANGELOG.md ++/node_modules/es-errors/eval.d.ts ++/node_modules/es-errors/eval.js ++/node_modules/es-errors/index.d.ts ++/node_modules/es-errors/index.js ++/node_modules/es-errors/LICENSE ++/node_modules/es-errors/package.json ++/node_modules/es-errors/range.d.ts ++/node_modules/es-errors/range.js ++/node_modules/es-errors/README.md ++/node_modules/es-errors/ref.d.ts ++/node_modules/es-errors/ref.js ++/node_modules/es-errors/syntax.d.ts ++/node_modules/es-errors/syntax.js ++/node_modules/es-errors/tsconfig.json ++/node_modules/es-errors/type.d.ts ++/node_modules/es-errors/type.js ++/node_modules/es-errors/uri.d.ts ++/node_modules/es-errors/uri.js ++/node_modules/es-object-atoms/.github/FUNDING.yml ++/node_modules/es-object-atoms/test/index.js ++/node_modules/es-object-atoms/.eslintrc ++/node_modules/es-object-atoms/CHANGELOG.md ++/node_modules/es-object-atoms/index.d.ts ++/node_modules/es-object-atoms/index.js ++/node_modules/es-object-atoms/isObject.d.ts ++/node_modules/es-object-atoms/isObject.js ++/node_modules/es-object-atoms/LICENSE ++/node_modules/es-object-atoms/package.json ++/node_modules/es-object-atoms/README.md ++/node_modules/es-object-atoms/RequireObjectCoercible.d.ts ++/node_modules/es-object-atoms/RequireObjectCoercible.js ++/node_modules/es-object-atoms/ToObject.d.ts ++/node_modules/es-object-atoms/ToObject.js ++/node_modules/es-object-atoms/tsconfig.json ++/node_modules/es-set-tostringtag/test/index.js ++/node_modules/es-set-tostringtag/.eslintrc ++/node_modules/es-set-tostringtag/.nycrc ++/node_modules/es-set-tostringtag/CHANGELOG.md ++/node_modules/es-set-tostringtag/index.d.ts ++/node_modules/es-set-tostringtag/index.js ++/node_modules/es-set-tostringtag/LICENSE ++/node_modules/es-set-tostringtag/package.json ++/node_modules/es-set-tostringtag/README.md ++/node_modules/es-set-tostringtag/tsconfig.json ++/node_modules/follow-redirects/debug.js ++/node_modules/follow-redirects/http.js ++/node_modules/follow-redirects/https.js ++/node_modules/follow-redirects/index.js ++/node_modules/follow-redirects/LICENSE ++/node_modules/follow-redirects/package.json ++/node_modules/follow-redirects/README.md ++/node_modules/form-data/lib/browser.js ++/node_modules/form-data/lib/form_data.js ++/node_modules/form-data/lib/populate.js ++/node_modules/form-data/CHANGELOG.md ++/node_modules/form-data/index.d.ts ++/node_modules/form-data/License ++/node_modules/form-data/package.json ++/node_modules/form-data/README.md ++/node_modules/function-bind/.github/FUNDING.yml ++/node_modules/function-bind/.github/SECURITY.md ++/node_modules/function-bind/test/.eslintrc ++/node_modules/function-bind/test/index.js ++/node_modules/function-bind/.eslintrc ++/node_modules/function-bind/.nycrc ++/node_modules/function-bind/CHANGELOG.md ++/node_modules/function-bind/implementation.js ++/node_modules/function-bind/index.js ++/node_modules/function-bind/LICENSE ++/node_modules/function-bind/package.json ++/node_modules/function-bind/README.md ++/node_modules/get-intrinsic/.github/FUNDING.yml ++/node_modules/get-intrinsic/test/GetIntrinsic.js ++/node_modules/get-intrinsic/.eslintrc ++/node_modules/get-intrinsic/.nycrc ++/node_modules/get-intrinsic/CHANGELOG.md ++/node_modules/get-intrinsic/index.js ++/node_modules/get-intrinsic/LICENSE ++/node_modules/get-intrinsic/package.json ++/node_modules/get-intrinsic/README.md ++/node_modules/get-proto/.github/FUNDING.yml ++/node_modules/get-proto/test/index.js ++/node_modules/get-proto/.eslintrc ++/node_modules/get-proto/.nycrc ++/node_modules/get-proto/CHANGELOG.md ++/node_modules/get-proto/index.d.ts ++/node_modules/get-proto/index.js ++/node_modules/get-proto/LICENSE ++/node_modules/get-proto/Object.getPrototypeOf.d.ts ++/node_modules/get-proto/Object.getPrototypeOf.js ++/node_modules/get-proto/package.json ++/node_modules/get-proto/README.md ++/node_modules/get-proto/Reflect.getPrototypeOf.d.ts ++/node_modules/get-proto/Reflect.getPrototypeOf.js ++/node_modules/get-proto/tsconfig.json ++/node_modules/gopd/.github/FUNDING.yml ++/node_modules/gopd/test/index.js ++/node_modules/gopd/.eslintrc ++/node_modules/gopd/CHANGELOG.md ++/node_modules/gopd/gOPD.d.ts ++/node_modules/gopd/gOPD.js ++/node_modules/gopd/index.d.ts ++/node_modules/gopd/index.js ++/node_modules/gopd/LICENSE ++/node_modules/gopd/package.json ++/node_modules/gopd/README.md ++/node_modules/gopd/tsconfig.json ++/node_modules/has-symbols/.github/FUNDING.yml ++/node_modules/has-symbols/test/shams/core-js.js ++/node_modules/has-symbols/test/shams/get-own-property-symbols.js ++/node_modules/has-symbols/test/index.js ++/node_modules/has-symbols/test/tests.js ++/node_modules/has-symbols/.eslintrc ++/node_modules/has-symbols/.nycrc ++/node_modules/has-symbols/CHANGELOG.md ++/node_modules/has-symbols/index.d.ts ++/node_modules/has-symbols/index.js ++/node_modules/has-symbols/LICENSE ++/node_modules/has-symbols/package.json ++/node_modules/has-symbols/README.md ++/node_modules/has-symbols/shams.d.ts ++/node_modules/has-symbols/shams.js ++/node_modules/has-symbols/tsconfig.json ++/node_modules/has-tostringtag/.github/FUNDING.yml ++/node_modules/has-tostringtag/test/shams/core-js.js ++/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js ++/node_modules/has-tostringtag/test/index.js ++/node_modules/has-tostringtag/test/tests.js ++/node_modules/has-tostringtag/.eslintrc ++/node_modules/has-tostringtag/.nycrc ++/node_modules/has-tostringtag/CHANGELOG.md ++/node_modules/has-tostringtag/index.d.ts ++/node_modules/has-tostringtag/index.js ++/node_modules/has-tostringtag/LICENSE ++/node_modules/has-tostringtag/package.json ++/node_modules/has-tostringtag/README.md ++/node_modules/has-tostringtag/shams.d.ts ++/node_modules/has-tostringtag/shams.js ++/node_modules/has-tostringtag/tsconfig.json ++/node_modules/hasown/.github/FUNDING.yml ++/node_modules/hasown/.nycrc ++/node_modules/hasown/CHANGELOG.md ++/node_modules/hasown/index.d.ts ++/node_modules/hasown/index.js ++/node_modules/hasown/LICENSE ++/node_modules/hasown/package.json ++/node_modules/hasown/README.md ++/node_modules/hasown/tsconfig.json ++/node_modules/husky/bin.js ++/node_modules/husky/husky ++/node_modules/husky/index.d.ts ++/node_modules/husky/index.js ++/node_modules/husky/LICENSE ++/node_modules/husky/package.json ++/node_modules/husky/README.md ++/node_modules/json-bigint/lib/parse.js ++/node_modules/json-bigint/lib/stringify.js ++/node_modules/json-bigint/index.js ++/node_modules/json-bigint/LICENSE ++/node_modules/json-bigint/package.json ++/node_modules/json-bigint/README.md ++/node_modules/math-intrinsics/.github/FUNDING.yml ++/node_modules/math-intrinsics/constants/maxArrayLength.d.ts ++/node_modules/math-intrinsics/constants/maxArrayLength.js ++/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts ++/node_modules/math-intrinsics/constants/maxSafeInteger.js ++/node_modules/math-intrinsics/constants/maxValue.d.ts ++/node_modules/math-intrinsics/constants/maxValue.js ++/node_modules/math-intrinsics/test/index.js ++/node_modules/math-intrinsics/.eslintrc ++/node_modules/math-intrinsics/abs.d.ts ++/node_modules/math-intrinsics/abs.js ++/node_modules/math-intrinsics/CHANGELOG.md ++/node_modules/math-intrinsics/floor.d.ts ++/node_modules/math-intrinsics/floor.js ++/node_modules/math-intrinsics/isFinite.d.ts ++/node_modules/math-intrinsics/isFinite.js ++/node_modules/math-intrinsics/isInteger.d.ts ++/node_modules/math-intrinsics/isInteger.js ++/node_modules/math-intrinsics/isNaN.d.ts ++/node_modules/math-intrinsics/isNaN.js ++/node_modules/math-intrinsics/isNegativeZero.d.ts ++/node_modules/math-intrinsics/isNegativeZero.js ++/node_modules/math-intrinsics/LICENSE ++/node_modules/math-intrinsics/max.d.ts ++/node_modules/math-intrinsics/max.js ++/node_modules/math-intrinsics/min.d.ts ++/node_modules/math-intrinsics/min.js ++/node_modules/math-intrinsics/mod.d.ts ++/node_modules/math-intrinsics/mod.js ++/node_modules/math-intrinsics/package.json ++/node_modules/math-intrinsics/pow.d.ts ++/node_modules/math-intrinsics/pow.js ++/node_modules/math-intrinsics/README.md ++/node_modules/math-intrinsics/round.d.ts ++/node_modules/math-intrinsics/round.js ++/node_modules/math-intrinsics/sign.d.ts ++/node_modules/math-intrinsics/sign.js ++/node_modules/math-intrinsics/tsconfig.json ++/node_modules/mime-db/db.json ++/node_modules/mime-db/HISTORY.md ++/node_modules/mime-db/index.js ++/node_modules/mime-db/LICENSE ++/node_modules/mime-db/package.json ++/node_modules/mime-db/README.md ++/node_modules/mime-types/HISTORY.md ++/node_modules/mime-types/index.js ++/node_modules/mime-types/LICENSE ++/node_modules/mime-types/package.json ++/node_modules/mime-types/README.md ++/node_modules/proxy-from-env/index.js ++/node_modules/proxy-from-env/LICENSE ++/node_modules/proxy-from-env/package.json ++/node_modules/proxy-from-env/README.md ++/node_modules/.package-lock.json +Index: healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (revision a582a97ef121357e262bea193dc1b28a13d82f16) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (date 1780703608877) +@@ -252,31 +252,37 @@ + // 处理节点点击,根据后台返回的路径加载组件 + const handleNodeClick = (data, node) => { + if (node.isLeaf) { ++ const newRouter = data.document?.vueRouter; ++ const oldRouter = currentSelectTemplate.value?.vueRouter; ++ const isSameTemplate = newRouter && oldRouter && newRouter === oldRouter; ++ + // 存储当前节点数据 + currentSelectTemplate.value = data.document; + +- // 在切换组件前先重置表单数据,避免显示之前的数据 +- editForm.value = { +- id: '', +- definitionId: '', +- definitionBusNo: '', +- contentJson: '', +- statusEnum: 1, +- organizationId: 0, +- encounterId: '', +- patientId: '', +- recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), +- createBy: '', +- source: '', +- }; +- +- // 先清空当前组件,再设置新组件,确保组件完全重新渲染 +- currentComponent.value = undefined; +- +- // 使用 nextTick 确保 DOM 更新后再设置新组件 +- nextTick(() => { +- currentComponent.value = currentSelectTemplate.value.vueRouter; +- }); ++ if (isSameTemplate) { ++ // 同一模板(仅患者切换):不卸载组件、不清空表单,避免闪烁 ++ // loading 遮罩覆盖过渡,loadLatestMedicalRecord 会原子替换表单数据 ++ loading.value = true; ++ } else { ++ // 不同模板:先清空再设置,确保组件完全重新渲染 ++ editForm.value = { ++ id: '', ++ definitionId: '', ++ definitionBusNo: '', ++ contentJson: '', ++ statusEnum: 1, ++ organizationId: 0, ++ encounterId: '', ++ patientId: '', ++ recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), ++ createBy: '', ++ source: '', ++ }; ++ currentComponent.value = undefined; ++ nextTick(() => { ++ currentComponent.value = newRouter; ++ }); ++ } + } else { + currentSelectTemplate.value = { + id: '', +@@ -624,8 +630,8 @@ + // 加载最新的病历数据并回显 + const loadLatestMedicalRecord = async () => { + if (!patientInfo.value?.encounterId || !currentSelectTemplate.value.id) return; +- editForm.value.id = ''; + loading.value = true; ++ editForm.value.id = ''; + try { + // 获取患者的历史病历记录 + const res = await getRecordByEncounterIdList({ diff --git a/.idea/shelf/在进行更新之前于_2026_6_6_09_03_取消提交了更改_[更改]/shelved.patch b/.idea/shelf/在进行更新之前于_2026_6_6_09_03_取消提交了更改_[更改]/shelved.patch new file mode 100644 index 000000000..fc82e8ac9 --- /dev/null +++ b/.idea/shelf/在进行更新之前于_2026_6_6_09_03_取消提交了更改_[更改]/shelved.patch @@ -0,0 +1,566 @@ +Index: healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (revision 9f7eb0eac6d4e50c27399b1158968aebace5d08a) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (date 1780703928151) +@@ -449,7 +449,7 @@ + import OrderGroupDrawer from '@/views/doctorstation/components/prescription/orderGroupDrawer.vue'; + import PrescriptionHistory from '@/views/doctorstation/components/prescription/prescriptionHistory.vue'; + import Decimal from 'decimal.js'; +-import {ElLoading, ElMessage, ElMessageBox} from 'element-plus'; ++import {ElMessage, ElMessageBox} from 'element-plus'; + import useUserStore from '@/store/modules/user'; + import ApplicationFormBottomBtn from './applicationForm/applicationFormBottomBtn.vue'; + import LeaveHospitalDialog from './applicationForm/leaveHospitalDialog.vue'; +@@ -643,7 +643,7 @@ + }, + ]; + +-let loadingInstance = undefined; ++// loadingInstance removed - using loading ref instead + onMounted(() => { + document.addEventListener('keydown', escKeyListener); + }); +@@ -697,10 +697,7 @@ + } + // 获取列表信息 + function getListInfo(addNewRow) { +- loadingInstance = ElLoading.service({ fullscreen: true }); +- setTimeout(() => { +- loadingInstance.close(); +- }, 180); ++ loading.value = true; + isAdding.value = false; + collapseAllExpanded(); + // 🔧 修复:先加载科室树,再处理处方数据 +@@ -712,7 +709,7 @@ + getPrescriptionList(patientInfo.value.encounterId).then((res) => { + // 等待科室树加载完成后再处理处方数据,确保 resolveOrgId 能正确匹配 + orgTreePromise.then(() => { +- loadingInstance.close(); ++ loading.value = false; + prescriptionList.value = res.data + .map((item) => { + const parsedContent = JSON.parse(item.contentJson); +@@ -772,7 +769,7 @@ + handleAddPrescription(); + } + }); +- }); ++ }).catch(() => { loading.value = false; }); + getContract({ encounterId: patientInfo.value.encounterId }).then((res) => { + contractList.value = res.data; + }); +Index: healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (revision 9f7eb0eac6d4e50c27399b1158968aebace5d08a) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (date 1780703928196) +@@ -252,31 +252,37 @@ + // 处理节点点击,根据后台返回的路径加载组件 + const handleNodeClick = (data, node) => { + if (node.isLeaf) { ++ const newRouter = data.document?.vueRouter; ++ const oldRouter = currentSelectTemplate.value?.vueRouter; ++ const isSameTemplate = newRouter && oldRouter && newRouter === oldRouter; ++ + // 存储当前节点数据 + currentSelectTemplate.value = data.document; + +- // 在切换组件前先重置表单数据,避免显示之前的数据 +- editForm.value = { +- id: '', +- definitionId: '', +- definitionBusNo: '', +- contentJson: '', +- statusEnum: 1, +- organizationId: 0, +- encounterId: '', +- patientId: '', +- recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), +- createBy: '', +- source: '', +- }; +- +- // 先清空当前组件,再设置新组件,确保组件完全重新渲染 +- currentComponent.value = undefined; +- +- // 使用 nextTick 确保 DOM 更新后再设置新组件 +- nextTick(() => { +- currentComponent.value = currentSelectTemplate.value.vueRouter; +- }); ++ if (isSameTemplate) { ++ // 同一模板(仅患者切换):不卸载组件、不清空表单,避免闪烁 ++ // loading 遮罩覆盖过渡,loadLatestMedicalRecord 会原子替换表单数据 ++ loading.value = true; ++ } else { ++ // 不同模板:先清空再设置,确保组件完全重新渲染 ++ editForm.value = { ++ id: '', ++ definitionId: '', ++ definitionBusNo: '', ++ contentJson: '', ++ statusEnum: 1, ++ organizationId: 0, ++ encounterId: '', ++ patientId: '', ++ recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), ++ createBy: '', ++ source: '', ++ }; ++ currentComponent.value = undefined; ++ nextTick(() => { ++ currentComponent.value = newRouter; ++ }); ++ } + } else { + currentSelectTemplate.value = { + id: '', +@@ -624,8 +630,8 @@ + // 加载最新的病历数据并回显 + const loadLatestMedicalRecord = async () => { + if (!patientInfo.value?.encounterId || !currentSelectTemplate.value.id) return; +- editForm.value.id = ''; + loading.value = true; ++ editForm.value.id = ''; + try { + // 获取患者的历史病历记录 + const res = await getRecordByEncounterIdList({ +Index: .gitignore +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/.gitignore b/.gitignore +new file mode 100644 +--- /dev/null (date 1780703928164) ++++ b/.gitignore (date 1780703928164) +@@ -0,0 +1,418 @@ ++/.vscode/mcp.json ++/.vscode/settings.json ++/.qwen/settings.json.orig ++/.playwright-mcp/console-2026-03-31T08-27-30-883Z.log ++/.playwright-mcp/console-2026-05-19T03-10-43-600Z.log ++/.playwright-mcp/console-2026-05-19T03-18-23-396Z.log ++/.playwright-mcp/console-2026-05-19T03-18-51-946Z.log ++/.playwright-mcp/page-2026-05-11T02-56-22-027Z.yml ++/.playwright-mcp/page-2026-05-11T02-56-30-095Z.yml ++/.playwright-mcp/page-2026-05-19T03-10-44-171Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-20-520Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-40-168Z.yml ++/.playwright-mcp/page-2026-05-19T03-12-10-968Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-23-610Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-52-634Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-19-472Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-36-669Z.yml ++/.playwright-mcp/page-2026-05-19T03-20-04-342Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-08-820Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-43-735Z.yml ++/.idea/compiler.xml ++/.idea/encodings.xml ++/.idea/jarRepositories.xml ++/.idea/misc.xml ++/.idea/vcs.xml ++/.idea/workspace.xml ++/node_modules/.bin/husky ++/node_modules/.bin/husky.cmd ++/node_modules/.bin/husky.ps1 ++/node_modules/asynckit/lib/abort.js ++/node_modules/asynckit/lib/async.js ++/node_modules/asynckit/lib/defer.js ++/node_modules/asynckit/lib/iterate.js ++/node_modules/asynckit/lib/readable_asynckit.js ++/node_modules/asynckit/lib/readable_parallel.js ++/node_modules/asynckit/lib/readable_serial.js ++/node_modules/asynckit/lib/readable_serial_ordered.js ++/node_modules/asynckit/lib/state.js ++/node_modules/asynckit/lib/streamify.js ++/node_modules/asynckit/lib/terminator.js ++/node_modules/asynckit/bench.js ++/node_modules/asynckit/index.js ++/node_modules/asynckit/LICENSE ++/node_modules/asynckit/package.json ++/node_modules/asynckit/parallel.js ++/node_modules/asynckit/README.md ++/node_modules/asynckit/serial.js ++/node_modules/asynckit/serialOrdered.js ++/node_modules/asynckit/stream.js ++/node_modules/axios/dist/browser/axios.cjs ++/node_modules/axios/dist/esm/axios.js ++/node_modules/axios/dist/esm/axios.min.js ++/node_modules/axios/dist/esm/axios.min.js.map ++/node_modules/axios/dist/node/axios.cjs ++/node_modules/axios/dist/axios.js ++/node_modules/axios/dist/axios.min.js ++/node_modules/axios/dist/axios.min.js.map ++/node_modules/axios/lib/adapters/adapters.js ++/node_modules/axios/lib/adapters/fetch.js ++/node_modules/axios/lib/adapters/http.js ++/node_modules/axios/lib/adapters/README.md ++/node_modules/axios/lib/adapters/xhr.js ++/node_modules/axios/lib/cancel/CanceledError.js ++/node_modules/axios/lib/cancel/CancelToken.js ++/node_modules/axios/lib/cancel/isCancel.js ++/node_modules/axios/lib/core/Axios.js ++/node_modules/axios/lib/core/AxiosError.js ++/node_modules/axios/lib/core/AxiosHeaders.js ++/node_modules/axios/lib/core/buildFullPath.js ++/node_modules/axios/lib/core/dispatchRequest.js ++/node_modules/axios/lib/core/InterceptorManager.js ++/node_modules/axios/lib/core/mergeConfig.js ++/node_modules/axios/lib/core/README.md ++/node_modules/axios/lib/core/settle.js ++/node_modules/axios/lib/core/transformData.js ++/node_modules/axios/lib/defaults/index.js ++/node_modules/axios/lib/defaults/transitional.js ++/node_modules/axios/lib/env/classes/FormData.js ++/node_modules/axios/lib/env/data.js ++/node_modules/axios/lib/env/README.md ++/node_modules/axios/lib/helpers/AxiosTransformStream.js ++/node_modules/axios/lib/helpers/AxiosURLSearchParams.js ++/node_modules/axios/lib/helpers/bind.js ++/node_modules/axios/lib/helpers/buildURL.js ++/node_modules/axios/lib/helpers/callbackify.js ++/node_modules/axios/lib/helpers/combineURLs.js ++/node_modules/axios/lib/helpers/composeSignals.js ++/node_modules/axios/lib/helpers/cookies.js ++/node_modules/axios/lib/helpers/deprecatedMethod.js ++/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js ++/node_modules/axios/lib/helpers/formDataToJSON.js ++/node_modules/axios/lib/helpers/formDataToStream.js ++/node_modules/axios/lib/helpers/fromDataURI.js ++/node_modules/axios/lib/helpers/HttpStatusCode.js ++/node_modules/axios/lib/helpers/isAbsoluteURL.js ++/node_modules/axios/lib/helpers/isAxiosError.js ++/node_modules/axios/lib/helpers/isURLSameOrigin.js ++/node_modules/axios/lib/helpers/null.js ++/node_modules/axios/lib/helpers/parseHeaders.js ++/node_modules/axios/lib/helpers/parseProtocol.js ++/node_modules/axios/lib/helpers/progressEventReducer.js ++/node_modules/axios/lib/helpers/readBlob.js ++/node_modules/axios/lib/helpers/README.md ++/node_modules/axios/lib/helpers/resolveConfig.js ++/node_modules/axios/lib/helpers/speedometer.js ++/node_modules/axios/lib/helpers/spread.js ++/node_modules/axios/lib/helpers/throttle.js ++/node_modules/axios/lib/helpers/toFormData.js ++/node_modules/axios/lib/helpers/toURLEncodedForm.js ++/node_modules/axios/lib/helpers/trackStream.js ++/node_modules/axios/lib/helpers/validator.js ++/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js ++/node_modules/axios/lib/platform/browser/classes/Blob.js ++/node_modules/axios/lib/platform/browser/classes/FormData.js ++/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/browser/index.js ++/node_modules/axios/lib/platform/common/utils.js ++/node_modules/axios/lib/platform/node/classes/FormData.js ++/node_modules/axios/lib/platform/node/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/node/index.js ++/node_modules/axios/lib/platform/index.js ++/node_modules/axios/lib/axios.js ++/node_modules/axios/lib/utils.js ++/node_modules/axios/CHANGELOG.md ++/node_modules/axios/index.d.cts ++/node_modules/axios/index.d.ts ++/node_modules/axios/index.js ++/node_modules/axios/LICENSE ++/node_modules/axios/MIGRATION_GUIDE.md ++/node_modules/axios/package.json ++/node_modules/axios/README.md ++/node_modules/bignumber.js/doc/API.html ++/node_modules/bignumber.js/bignumber.d.mts ++/node_modules/bignumber.js/bignumber.d.ts ++/node_modules/bignumber.js/bignumber.js ++/node_modules/bignumber.js/bignumber.mjs ++/node_modules/bignumber.js/CHANGELOG.md ++/node_modules/bignumber.js/LICENCE.md ++/node_modules/bignumber.js/package.json ++/node_modules/bignumber.js/README.md ++/node_modules/bignumber.js/types.d.ts ++/node_modules/call-bind-apply-helpers/.github/FUNDING.yml ++/node_modules/call-bind-apply-helpers/test/index.js ++/node_modules/call-bind-apply-helpers/.eslintrc ++/node_modules/call-bind-apply-helpers/.nycrc ++/node_modules/call-bind-apply-helpers/actualApply.d.ts ++/node_modules/call-bind-apply-helpers/actualApply.js ++/node_modules/call-bind-apply-helpers/applyBind.d.ts ++/node_modules/call-bind-apply-helpers/applyBind.js ++/node_modules/call-bind-apply-helpers/CHANGELOG.md ++/node_modules/call-bind-apply-helpers/functionApply.d.ts ++/node_modules/call-bind-apply-helpers/functionApply.js ++/node_modules/call-bind-apply-helpers/functionCall.d.ts ++/node_modules/call-bind-apply-helpers/functionCall.js ++/node_modules/call-bind-apply-helpers/index.d.ts ++/node_modules/call-bind-apply-helpers/index.js ++/node_modules/call-bind-apply-helpers/LICENSE ++/node_modules/call-bind-apply-helpers/package.json ++/node_modules/call-bind-apply-helpers/README.md ++/node_modules/call-bind-apply-helpers/reflectApply.d.ts ++/node_modules/call-bind-apply-helpers/reflectApply.js ++/node_modules/call-bind-apply-helpers/tsconfig.json ++/node_modules/combined-stream/lib/combined_stream.js ++/node_modules/combined-stream/License ++/node_modules/combined-stream/package.json ++/node_modules/combined-stream/Readme.md ++/node_modules/combined-stream/yarn.lock ++/node_modules/delayed-stream/lib/delayed_stream.js ++/node_modules/delayed-stream/.npmignore ++/node_modules/delayed-stream/License ++/node_modules/delayed-stream/Makefile ++/node_modules/delayed-stream/package.json ++/node_modules/delayed-stream/Readme.md ++/node_modules/dunder-proto/.github/FUNDING.yml ++/node_modules/dunder-proto/test/get.js ++/node_modules/dunder-proto/test/index.js ++/node_modules/dunder-proto/test/set.js ++/node_modules/dunder-proto/.eslintrc ++/node_modules/dunder-proto/.nycrc ++/node_modules/dunder-proto/CHANGELOG.md ++/node_modules/dunder-proto/get.d.ts ++/node_modules/dunder-proto/get.js ++/node_modules/dunder-proto/LICENSE ++/node_modules/dunder-proto/package.json ++/node_modules/dunder-proto/README.md ++/node_modules/dunder-proto/set.d.ts ++/node_modules/dunder-proto/set.js ++/node_modules/dunder-proto/tsconfig.json ++/node_modules/es-define-property/.github/FUNDING.yml ++/node_modules/es-define-property/test/index.js ++/node_modules/es-define-property/.eslintrc ++/node_modules/es-define-property/.nycrc ++/node_modules/es-define-property/CHANGELOG.md ++/node_modules/es-define-property/index.d.ts ++/node_modules/es-define-property/index.js ++/node_modules/es-define-property/LICENSE ++/node_modules/es-define-property/package.json ++/node_modules/es-define-property/README.md ++/node_modules/es-define-property/tsconfig.json ++/node_modules/es-errors/.github/FUNDING.yml ++/node_modules/es-errors/test/index.js ++/node_modules/es-errors/.eslintrc ++/node_modules/es-errors/CHANGELOG.md ++/node_modules/es-errors/eval.d.ts ++/node_modules/es-errors/eval.js ++/node_modules/es-errors/index.d.ts ++/node_modules/es-errors/index.js ++/node_modules/es-errors/LICENSE ++/node_modules/es-errors/package.json ++/node_modules/es-errors/range.d.ts ++/node_modules/es-errors/range.js ++/node_modules/es-errors/README.md ++/node_modules/es-errors/ref.d.ts ++/node_modules/es-errors/ref.js ++/node_modules/es-errors/syntax.d.ts ++/node_modules/es-errors/syntax.js ++/node_modules/es-errors/tsconfig.json ++/node_modules/es-errors/type.d.ts ++/node_modules/es-errors/type.js ++/node_modules/es-errors/uri.d.ts ++/node_modules/es-errors/uri.js ++/node_modules/es-object-atoms/.github/FUNDING.yml ++/node_modules/es-object-atoms/test/index.js ++/node_modules/es-object-atoms/.eslintrc ++/node_modules/es-object-atoms/CHANGELOG.md ++/node_modules/es-object-atoms/index.d.ts ++/node_modules/es-object-atoms/index.js ++/node_modules/es-object-atoms/isObject.d.ts ++/node_modules/es-object-atoms/isObject.js ++/node_modules/es-object-atoms/LICENSE ++/node_modules/es-object-atoms/package.json ++/node_modules/es-object-atoms/README.md ++/node_modules/es-object-atoms/RequireObjectCoercible.d.ts ++/node_modules/es-object-atoms/RequireObjectCoercible.js ++/node_modules/es-object-atoms/ToObject.d.ts ++/node_modules/es-object-atoms/ToObject.js ++/node_modules/es-object-atoms/tsconfig.json ++/node_modules/es-set-tostringtag/test/index.js ++/node_modules/es-set-tostringtag/.eslintrc ++/node_modules/es-set-tostringtag/.nycrc ++/node_modules/es-set-tostringtag/CHANGELOG.md ++/node_modules/es-set-tostringtag/index.d.ts ++/node_modules/es-set-tostringtag/index.js ++/node_modules/es-set-tostringtag/LICENSE ++/node_modules/es-set-tostringtag/package.json ++/node_modules/es-set-tostringtag/README.md ++/node_modules/es-set-tostringtag/tsconfig.json ++/node_modules/follow-redirects/debug.js ++/node_modules/follow-redirects/http.js ++/node_modules/follow-redirects/https.js ++/node_modules/follow-redirects/index.js ++/node_modules/follow-redirects/LICENSE ++/node_modules/follow-redirects/package.json ++/node_modules/follow-redirects/README.md ++/node_modules/form-data/lib/browser.js ++/node_modules/form-data/lib/form_data.js ++/node_modules/form-data/lib/populate.js ++/node_modules/form-data/CHANGELOG.md ++/node_modules/form-data/index.d.ts ++/node_modules/form-data/License ++/node_modules/form-data/package.json ++/node_modules/form-data/README.md ++/node_modules/function-bind/.github/FUNDING.yml ++/node_modules/function-bind/.github/SECURITY.md ++/node_modules/function-bind/test/.eslintrc ++/node_modules/function-bind/test/index.js ++/node_modules/function-bind/.eslintrc ++/node_modules/function-bind/.nycrc ++/node_modules/function-bind/CHANGELOG.md ++/node_modules/function-bind/implementation.js ++/node_modules/function-bind/index.js ++/node_modules/function-bind/LICENSE ++/node_modules/function-bind/package.json ++/node_modules/function-bind/README.md ++/node_modules/get-intrinsic/.github/FUNDING.yml ++/node_modules/get-intrinsic/test/GetIntrinsic.js ++/node_modules/get-intrinsic/.eslintrc ++/node_modules/get-intrinsic/.nycrc ++/node_modules/get-intrinsic/CHANGELOG.md ++/node_modules/get-intrinsic/index.js ++/node_modules/get-intrinsic/LICENSE ++/node_modules/get-intrinsic/package.json ++/node_modules/get-intrinsic/README.md ++/node_modules/get-proto/.github/FUNDING.yml ++/node_modules/get-proto/test/index.js ++/node_modules/get-proto/.eslintrc ++/node_modules/get-proto/.nycrc ++/node_modules/get-proto/CHANGELOG.md ++/node_modules/get-proto/index.d.ts ++/node_modules/get-proto/index.js ++/node_modules/get-proto/LICENSE ++/node_modules/get-proto/Object.getPrototypeOf.d.ts ++/node_modules/get-proto/Object.getPrototypeOf.js ++/node_modules/get-proto/package.json ++/node_modules/get-proto/README.md ++/node_modules/get-proto/Reflect.getPrototypeOf.d.ts ++/node_modules/get-proto/Reflect.getPrototypeOf.js ++/node_modules/get-proto/tsconfig.json ++/node_modules/gopd/.github/FUNDING.yml ++/node_modules/gopd/test/index.js ++/node_modules/gopd/.eslintrc ++/node_modules/gopd/CHANGELOG.md ++/node_modules/gopd/gOPD.d.ts ++/node_modules/gopd/gOPD.js ++/node_modules/gopd/index.d.ts ++/node_modules/gopd/index.js ++/node_modules/gopd/LICENSE ++/node_modules/gopd/package.json ++/node_modules/gopd/README.md ++/node_modules/gopd/tsconfig.json ++/node_modules/has-symbols/.github/FUNDING.yml ++/node_modules/has-symbols/test/shams/core-js.js ++/node_modules/has-symbols/test/shams/get-own-property-symbols.js ++/node_modules/has-symbols/test/index.js ++/node_modules/has-symbols/test/tests.js ++/node_modules/has-symbols/.eslintrc ++/node_modules/has-symbols/.nycrc ++/node_modules/has-symbols/CHANGELOG.md ++/node_modules/has-symbols/index.d.ts ++/node_modules/has-symbols/index.js ++/node_modules/has-symbols/LICENSE ++/node_modules/has-symbols/package.json ++/node_modules/has-symbols/README.md ++/node_modules/has-symbols/shams.d.ts ++/node_modules/has-symbols/shams.js ++/node_modules/has-symbols/tsconfig.json ++/node_modules/has-tostringtag/.github/FUNDING.yml ++/node_modules/has-tostringtag/test/shams/core-js.js ++/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js ++/node_modules/has-tostringtag/test/index.js ++/node_modules/has-tostringtag/test/tests.js ++/node_modules/has-tostringtag/.eslintrc ++/node_modules/has-tostringtag/.nycrc ++/node_modules/has-tostringtag/CHANGELOG.md ++/node_modules/has-tostringtag/index.d.ts ++/node_modules/has-tostringtag/index.js ++/node_modules/has-tostringtag/LICENSE ++/node_modules/has-tostringtag/package.json ++/node_modules/has-tostringtag/README.md ++/node_modules/has-tostringtag/shams.d.ts ++/node_modules/has-tostringtag/shams.js ++/node_modules/has-tostringtag/tsconfig.json ++/node_modules/hasown/.github/FUNDING.yml ++/node_modules/hasown/.nycrc ++/node_modules/hasown/CHANGELOG.md ++/node_modules/hasown/index.d.ts ++/node_modules/hasown/index.js ++/node_modules/hasown/LICENSE ++/node_modules/hasown/package.json ++/node_modules/hasown/README.md ++/node_modules/hasown/tsconfig.json ++/node_modules/husky/bin.js ++/node_modules/husky/husky ++/node_modules/husky/index.d.ts ++/node_modules/husky/index.js ++/node_modules/husky/LICENSE ++/node_modules/husky/package.json ++/node_modules/husky/README.md ++/node_modules/json-bigint/lib/parse.js ++/node_modules/json-bigint/lib/stringify.js ++/node_modules/json-bigint/index.js ++/node_modules/json-bigint/LICENSE ++/node_modules/json-bigint/package.json ++/node_modules/json-bigint/README.md ++/node_modules/math-intrinsics/.github/FUNDING.yml ++/node_modules/math-intrinsics/constants/maxArrayLength.d.ts ++/node_modules/math-intrinsics/constants/maxArrayLength.js ++/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts ++/node_modules/math-intrinsics/constants/maxSafeInteger.js ++/node_modules/math-intrinsics/constants/maxValue.d.ts ++/node_modules/math-intrinsics/constants/maxValue.js ++/node_modules/math-intrinsics/test/index.js ++/node_modules/math-intrinsics/.eslintrc ++/node_modules/math-intrinsics/abs.d.ts ++/node_modules/math-intrinsics/abs.js ++/node_modules/math-intrinsics/CHANGELOG.md ++/node_modules/math-intrinsics/floor.d.ts ++/node_modules/math-intrinsics/floor.js ++/node_modules/math-intrinsics/isFinite.d.ts ++/node_modules/math-intrinsics/isFinite.js ++/node_modules/math-intrinsics/isInteger.d.ts ++/node_modules/math-intrinsics/isInteger.js ++/node_modules/math-intrinsics/isNaN.d.ts ++/node_modules/math-intrinsics/isNaN.js ++/node_modules/math-intrinsics/isNegativeZero.d.ts ++/node_modules/math-intrinsics/isNegativeZero.js ++/node_modules/math-intrinsics/LICENSE ++/node_modules/math-intrinsics/max.d.ts ++/node_modules/math-intrinsics/max.js ++/node_modules/math-intrinsics/min.d.ts ++/node_modules/math-intrinsics/min.js ++/node_modules/math-intrinsics/mod.d.ts ++/node_modules/math-intrinsics/mod.js ++/node_modules/math-intrinsics/package.json ++/node_modules/math-intrinsics/pow.d.ts ++/node_modules/math-intrinsics/pow.js ++/node_modules/math-intrinsics/README.md ++/node_modules/math-intrinsics/round.d.ts ++/node_modules/math-intrinsics/round.js ++/node_modules/math-intrinsics/sign.d.ts ++/node_modules/math-intrinsics/sign.js ++/node_modules/math-intrinsics/tsconfig.json ++/node_modules/mime-db/db.json ++/node_modules/mime-db/HISTORY.md ++/node_modules/mime-db/index.js ++/node_modules/mime-db/LICENSE ++/node_modules/mime-db/package.json ++/node_modules/mime-db/README.md ++/node_modules/mime-types/HISTORY.md ++/node_modules/mime-types/index.js ++/node_modules/mime-types/LICENSE ++/node_modules/mime-types/package.json ++/node_modules/mime-types/README.md ++/node_modules/proxy-from-env/index.js ++/node_modules/proxy-from-env/LICENSE ++/node_modules/proxy-from-env/package.json ++/node_modules/proxy-from-env/README.md ++/node_modules/.package-lock.json diff --git a/.idea/shelf/在进行更新之前于_2026_6_6_09_07_取消提交了更改_[更改]/shelved.patch b/.idea/shelf/在进行更新之前于_2026_6_6_09_07_取消提交了更改_[更改]/shelved.patch new file mode 100644 index 000000000..68a4e11b0 --- /dev/null +++ b/.idea/shelf/在进行更新之前于_2026_6_6_09_07_取消提交了更改_[更改]/shelved.patch @@ -0,0 +1,566 @@ +Index: healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (revision 86c82286c62d11a45c9b8aa63b7a57cfd705ad39) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (date 1780707822743) +@@ -449,7 +449,7 @@ + import OrderGroupDrawer from '@/views/doctorstation/components/prescription/orderGroupDrawer.vue'; + import PrescriptionHistory from '@/views/doctorstation/components/prescription/prescriptionHistory.vue'; + import Decimal from 'decimal.js'; +-import {ElLoading, ElMessage, ElMessageBox} from 'element-plus'; ++import {ElMessage, ElMessageBox} from 'element-plus'; + import useUserStore from '@/store/modules/user'; + import ApplicationFormBottomBtn from './applicationForm/applicationFormBottomBtn.vue'; + import LeaveHospitalDialog from './applicationForm/leaveHospitalDialog.vue'; +@@ -643,7 +643,7 @@ + }, + ]; + +-let loadingInstance = undefined; ++// loadingInstance removed - using loading ref instead + onMounted(() => { + document.addEventListener('keydown', escKeyListener); + }); +@@ -697,10 +697,7 @@ + } + // 获取列表信息 + function getListInfo(addNewRow) { +- loadingInstance = ElLoading.service({ fullscreen: true }); +- setTimeout(() => { +- loadingInstance.close(); +- }, 180); ++ loading.value = true; + isAdding.value = false; + collapseAllExpanded(); + // 🔧 修复:先加载科室树,再处理处方数据 +@@ -712,7 +709,7 @@ + getPrescriptionList(patientInfo.value.encounterId).then((res) => { + // 等待科室树加载完成后再处理处方数据,确保 resolveOrgId 能正确匹配 + orgTreePromise.then(() => { +- loadingInstance.close(); ++ loading.value = false; + prescriptionList.value = res.data + .map((item) => { + const parsedContent = JSON.parse(item.contentJson); +@@ -772,7 +769,7 @@ + handleAddPrescription(); + } + }); +- }); ++ }).catch(() => { loading.value = false; }); + getContract({ encounterId: patientInfo.value.encounterId }).then((res) => { + contractList.value = res.data; + }); +Index: healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (revision 86c82286c62d11a45c9b8aa63b7a57cfd705ad39) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (date 1780707822760) +@@ -252,31 +252,37 @@ + // 处理节点点击,根据后台返回的路径加载组件 + const handleNodeClick = (data, node) => { + if (node.isLeaf) { ++ const newRouter = data.document?.vueRouter; ++ const oldRouter = currentSelectTemplate.value?.vueRouter; ++ const isSameTemplate = newRouter && oldRouter && newRouter === oldRouter; ++ + // 存储当前节点数据 + currentSelectTemplate.value = data.document; + +- // 在切换组件前先重置表单数据,避免显示之前的数据 +- editForm.value = { +- id: '', +- definitionId: '', +- definitionBusNo: '', +- contentJson: '', +- statusEnum: 1, +- organizationId: 0, +- encounterId: '', +- patientId: '', +- recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), +- createBy: '', +- source: '', +- }; +- +- // 先清空当前组件,再设置新组件,确保组件完全重新渲染 +- currentComponent.value = undefined; +- +- // 使用 nextTick 确保 DOM 更新后再设置新组件 +- nextTick(() => { +- currentComponent.value = currentSelectTemplate.value.vueRouter; +- }); ++ if (isSameTemplate) { ++ // 同一模板(仅患者切换):不卸载组件、不清空表单,避免闪烁 ++ // loading 遮罩覆盖过渡,loadLatestMedicalRecord 会原子替换表单数据 ++ loading.value = true; ++ } else { ++ // 不同模板:先清空再设置,确保组件完全重新渲染 ++ editForm.value = { ++ id: '', ++ definitionId: '', ++ definitionBusNo: '', ++ contentJson: '', ++ statusEnum: 1, ++ organizationId: 0, ++ encounterId: '', ++ patientId: '', ++ recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), ++ createBy: '', ++ source: '', ++ }; ++ currentComponent.value = undefined; ++ nextTick(() => { ++ currentComponent.value = newRouter; ++ }); ++ } + } else { + currentSelectTemplate.value = { + id: '', +@@ -624,8 +630,8 @@ + // 加载最新的病历数据并回显 + const loadLatestMedicalRecord = async () => { + if (!patientInfo.value?.encounterId || !currentSelectTemplate.value.id) return; +- editForm.value.id = ''; + loading.value = true; ++ editForm.value.id = ''; + try { + // 获取患者的历史病历记录 + const res = await getRecordByEncounterIdList({ +Index: .gitignore +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/.gitignore b/.gitignore +new file mode 100644 +--- /dev/null (date 1780707822777) ++++ b/.gitignore (date 1780707822777) +@@ -0,0 +1,418 @@ ++/.vscode/mcp.json ++/.vscode/settings.json ++/.qwen/settings.json.orig ++/.playwright-mcp/console-2026-03-31T08-27-30-883Z.log ++/.playwright-mcp/console-2026-05-19T03-10-43-600Z.log ++/.playwright-mcp/console-2026-05-19T03-18-23-396Z.log ++/.playwright-mcp/console-2026-05-19T03-18-51-946Z.log ++/.playwright-mcp/page-2026-05-11T02-56-22-027Z.yml ++/.playwright-mcp/page-2026-05-11T02-56-30-095Z.yml ++/.playwright-mcp/page-2026-05-19T03-10-44-171Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-20-520Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-40-168Z.yml ++/.playwright-mcp/page-2026-05-19T03-12-10-968Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-23-610Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-52-634Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-19-472Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-36-669Z.yml ++/.playwright-mcp/page-2026-05-19T03-20-04-342Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-08-820Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-43-735Z.yml ++/.idea/compiler.xml ++/.idea/encodings.xml ++/.idea/jarRepositories.xml ++/.idea/misc.xml ++/.idea/vcs.xml ++/.idea/workspace.xml ++/node_modules/.bin/husky ++/node_modules/.bin/husky.cmd ++/node_modules/.bin/husky.ps1 ++/node_modules/asynckit/lib/abort.js ++/node_modules/asynckit/lib/async.js ++/node_modules/asynckit/lib/defer.js ++/node_modules/asynckit/lib/iterate.js ++/node_modules/asynckit/lib/readable_asynckit.js ++/node_modules/asynckit/lib/readable_parallel.js ++/node_modules/asynckit/lib/readable_serial.js ++/node_modules/asynckit/lib/readable_serial_ordered.js ++/node_modules/asynckit/lib/state.js ++/node_modules/asynckit/lib/streamify.js ++/node_modules/asynckit/lib/terminator.js ++/node_modules/asynckit/bench.js ++/node_modules/asynckit/index.js ++/node_modules/asynckit/LICENSE ++/node_modules/asynckit/package.json ++/node_modules/asynckit/parallel.js ++/node_modules/asynckit/README.md ++/node_modules/asynckit/serial.js ++/node_modules/asynckit/serialOrdered.js ++/node_modules/asynckit/stream.js ++/node_modules/axios/dist/browser/axios.cjs ++/node_modules/axios/dist/esm/axios.js ++/node_modules/axios/dist/esm/axios.min.js ++/node_modules/axios/dist/esm/axios.min.js.map ++/node_modules/axios/dist/node/axios.cjs ++/node_modules/axios/dist/axios.js ++/node_modules/axios/dist/axios.min.js ++/node_modules/axios/dist/axios.min.js.map ++/node_modules/axios/lib/adapters/adapters.js ++/node_modules/axios/lib/adapters/fetch.js ++/node_modules/axios/lib/adapters/http.js ++/node_modules/axios/lib/adapters/README.md ++/node_modules/axios/lib/adapters/xhr.js ++/node_modules/axios/lib/cancel/CanceledError.js ++/node_modules/axios/lib/cancel/CancelToken.js ++/node_modules/axios/lib/cancel/isCancel.js ++/node_modules/axios/lib/core/Axios.js ++/node_modules/axios/lib/core/AxiosError.js ++/node_modules/axios/lib/core/AxiosHeaders.js ++/node_modules/axios/lib/core/buildFullPath.js ++/node_modules/axios/lib/core/dispatchRequest.js ++/node_modules/axios/lib/core/InterceptorManager.js ++/node_modules/axios/lib/core/mergeConfig.js ++/node_modules/axios/lib/core/README.md ++/node_modules/axios/lib/core/settle.js ++/node_modules/axios/lib/core/transformData.js ++/node_modules/axios/lib/defaults/index.js ++/node_modules/axios/lib/defaults/transitional.js ++/node_modules/axios/lib/env/classes/FormData.js ++/node_modules/axios/lib/env/data.js ++/node_modules/axios/lib/env/README.md ++/node_modules/axios/lib/helpers/AxiosTransformStream.js ++/node_modules/axios/lib/helpers/AxiosURLSearchParams.js ++/node_modules/axios/lib/helpers/bind.js ++/node_modules/axios/lib/helpers/buildURL.js ++/node_modules/axios/lib/helpers/callbackify.js ++/node_modules/axios/lib/helpers/combineURLs.js ++/node_modules/axios/lib/helpers/composeSignals.js ++/node_modules/axios/lib/helpers/cookies.js ++/node_modules/axios/lib/helpers/deprecatedMethod.js ++/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js ++/node_modules/axios/lib/helpers/formDataToJSON.js ++/node_modules/axios/lib/helpers/formDataToStream.js ++/node_modules/axios/lib/helpers/fromDataURI.js ++/node_modules/axios/lib/helpers/HttpStatusCode.js ++/node_modules/axios/lib/helpers/isAbsoluteURL.js ++/node_modules/axios/lib/helpers/isAxiosError.js ++/node_modules/axios/lib/helpers/isURLSameOrigin.js ++/node_modules/axios/lib/helpers/null.js ++/node_modules/axios/lib/helpers/parseHeaders.js ++/node_modules/axios/lib/helpers/parseProtocol.js ++/node_modules/axios/lib/helpers/progressEventReducer.js ++/node_modules/axios/lib/helpers/readBlob.js ++/node_modules/axios/lib/helpers/README.md ++/node_modules/axios/lib/helpers/resolveConfig.js ++/node_modules/axios/lib/helpers/speedometer.js ++/node_modules/axios/lib/helpers/spread.js ++/node_modules/axios/lib/helpers/throttle.js ++/node_modules/axios/lib/helpers/toFormData.js ++/node_modules/axios/lib/helpers/toURLEncodedForm.js ++/node_modules/axios/lib/helpers/trackStream.js ++/node_modules/axios/lib/helpers/validator.js ++/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js ++/node_modules/axios/lib/platform/browser/classes/Blob.js ++/node_modules/axios/lib/platform/browser/classes/FormData.js ++/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/browser/index.js ++/node_modules/axios/lib/platform/common/utils.js ++/node_modules/axios/lib/platform/node/classes/FormData.js ++/node_modules/axios/lib/platform/node/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/node/index.js ++/node_modules/axios/lib/platform/index.js ++/node_modules/axios/lib/axios.js ++/node_modules/axios/lib/utils.js ++/node_modules/axios/CHANGELOG.md ++/node_modules/axios/index.d.cts ++/node_modules/axios/index.d.ts ++/node_modules/axios/index.js ++/node_modules/axios/LICENSE ++/node_modules/axios/MIGRATION_GUIDE.md ++/node_modules/axios/package.json ++/node_modules/axios/README.md ++/node_modules/bignumber.js/doc/API.html ++/node_modules/bignumber.js/bignumber.d.mts ++/node_modules/bignumber.js/bignumber.d.ts ++/node_modules/bignumber.js/bignumber.js ++/node_modules/bignumber.js/bignumber.mjs ++/node_modules/bignumber.js/CHANGELOG.md ++/node_modules/bignumber.js/LICENCE.md ++/node_modules/bignumber.js/package.json ++/node_modules/bignumber.js/README.md ++/node_modules/bignumber.js/types.d.ts ++/node_modules/call-bind-apply-helpers/.github/FUNDING.yml ++/node_modules/call-bind-apply-helpers/test/index.js ++/node_modules/call-bind-apply-helpers/.eslintrc ++/node_modules/call-bind-apply-helpers/.nycrc ++/node_modules/call-bind-apply-helpers/actualApply.d.ts ++/node_modules/call-bind-apply-helpers/actualApply.js ++/node_modules/call-bind-apply-helpers/applyBind.d.ts ++/node_modules/call-bind-apply-helpers/applyBind.js ++/node_modules/call-bind-apply-helpers/CHANGELOG.md ++/node_modules/call-bind-apply-helpers/functionApply.d.ts ++/node_modules/call-bind-apply-helpers/functionApply.js ++/node_modules/call-bind-apply-helpers/functionCall.d.ts ++/node_modules/call-bind-apply-helpers/functionCall.js ++/node_modules/call-bind-apply-helpers/index.d.ts ++/node_modules/call-bind-apply-helpers/index.js ++/node_modules/call-bind-apply-helpers/LICENSE ++/node_modules/call-bind-apply-helpers/package.json ++/node_modules/call-bind-apply-helpers/README.md ++/node_modules/call-bind-apply-helpers/reflectApply.d.ts ++/node_modules/call-bind-apply-helpers/reflectApply.js ++/node_modules/call-bind-apply-helpers/tsconfig.json ++/node_modules/combined-stream/lib/combined_stream.js ++/node_modules/combined-stream/License ++/node_modules/combined-stream/package.json ++/node_modules/combined-stream/Readme.md ++/node_modules/combined-stream/yarn.lock ++/node_modules/delayed-stream/lib/delayed_stream.js ++/node_modules/delayed-stream/.npmignore ++/node_modules/delayed-stream/License ++/node_modules/delayed-stream/Makefile ++/node_modules/delayed-stream/package.json ++/node_modules/delayed-stream/Readme.md ++/node_modules/dunder-proto/.github/FUNDING.yml ++/node_modules/dunder-proto/test/get.js ++/node_modules/dunder-proto/test/index.js ++/node_modules/dunder-proto/test/set.js ++/node_modules/dunder-proto/.eslintrc ++/node_modules/dunder-proto/.nycrc ++/node_modules/dunder-proto/CHANGELOG.md ++/node_modules/dunder-proto/get.d.ts ++/node_modules/dunder-proto/get.js ++/node_modules/dunder-proto/LICENSE ++/node_modules/dunder-proto/package.json ++/node_modules/dunder-proto/README.md ++/node_modules/dunder-proto/set.d.ts ++/node_modules/dunder-proto/set.js ++/node_modules/dunder-proto/tsconfig.json ++/node_modules/es-define-property/.github/FUNDING.yml ++/node_modules/es-define-property/test/index.js ++/node_modules/es-define-property/.eslintrc ++/node_modules/es-define-property/.nycrc ++/node_modules/es-define-property/CHANGELOG.md ++/node_modules/es-define-property/index.d.ts ++/node_modules/es-define-property/index.js ++/node_modules/es-define-property/LICENSE ++/node_modules/es-define-property/package.json ++/node_modules/es-define-property/README.md ++/node_modules/es-define-property/tsconfig.json ++/node_modules/es-errors/.github/FUNDING.yml ++/node_modules/es-errors/test/index.js ++/node_modules/es-errors/.eslintrc ++/node_modules/es-errors/CHANGELOG.md ++/node_modules/es-errors/eval.d.ts ++/node_modules/es-errors/eval.js ++/node_modules/es-errors/index.d.ts ++/node_modules/es-errors/index.js ++/node_modules/es-errors/LICENSE ++/node_modules/es-errors/package.json ++/node_modules/es-errors/range.d.ts ++/node_modules/es-errors/range.js ++/node_modules/es-errors/README.md ++/node_modules/es-errors/ref.d.ts ++/node_modules/es-errors/ref.js ++/node_modules/es-errors/syntax.d.ts ++/node_modules/es-errors/syntax.js ++/node_modules/es-errors/tsconfig.json ++/node_modules/es-errors/type.d.ts ++/node_modules/es-errors/type.js ++/node_modules/es-errors/uri.d.ts ++/node_modules/es-errors/uri.js ++/node_modules/es-object-atoms/.github/FUNDING.yml ++/node_modules/es-object-atoms/test/index.js ++/node_modules/es-object-atoms/.eslintrc ++/node_modules/es-object-atoms/CHANGELOG.md ++/node_modules/es-object-atoms/index.d.ts ++/node_modules/es-object-atoms/index.js ++/node_modules/es-object-atoms/isObject.d.ts ++/node_modules/es-object-atoms/isObject.js ++/node_modules/es-object-atoms/LICENSE ++/node_modules/es-object-atoms/package.json ++/node_modules/es-object-atoms/README.md ++/node_modules/es-object-atoms/RequireObjectCoercible.d.ts ++/node_modules/es-object-atoms/RequireObjectCoercible.js ++/node_modules/es-object-atoms/ToObject.d.ts ++/node_modules/es-object-atoms/ToObject.js ++/node_modules/es-object-atoms/tsconfig.json ++/node_modules/es-set-tostringtag/test/index.js ++/node_modules/es-set-tostringtag/.eslintrc ++/node_modules/es-set-tostringtag/.nycrc ++/node_modules/es-set-tostringtag/CHANGELOG.md ++/node_modules/es-set-tostringtag/index.d.ts ++/node_modules/es-set-tostringtag/index.js ++/node_modules/es-set-tostringtag/LICENSE ++/node_modules/es-set-tostringtag/package.json ++/node_modules/es-set-tostringtag/README.md ++/node_modules/es-set-tostringtag/tsconfig.json ++/node_modules/follow-redirects/debug.js ++/node_modules/follow-redirects/http.js ++/node_modules/follow-redirects/https.js ++/node_modules/follow-redirects/index.js ++/node_modules/follow-redirects/LICENSE ++/node_modules/follow-redirects/package.json ++/node_modules/follow-redirects/README.md ++/node_modules/form-data/lib/browser.js ++/node_modules/form-data/lib/form_data.js ++/node_modules/form-data/lib/populate.js ++/node_modules/form-data/CHANGELOG.md ++/node_modules/form-data/index.d.ts ++/node_modules/form-data/License ++/node_modules/form-data/package.json ++/node_modules/form-data/README.md ++/node_modules/function-bind/.github/FUNDING.yml ++/node_modules/function-bind/.github/SECURITY.md ++/node_modules/function-bind/test/.eslintrc ++/node_modules/function-bind/test/index.js ++/node_modules/function-bind/.eslintrc ++/node_modules/function-bind/.nycrc ++/node_modules/function-bind/CHANGELOG.md ++/node_modules/function-bind/implementation.js ++/node_modules/function-bind/index.js ++/node_modules/function-bind/LICENSE ++/node_modules/function-bind/package.json ++/node_modules/function-bind/README.md ++/node_modules/get-intrinsic/.github/FUNDING.yml ++/node_modules/get-intrinsic/test/GetIntrinsic.js ++/node_modules/get-intrinsic/.eslintrc ++/node_modules/get-intrinsic/.nycrc ++/node_modules/get-intrinsic/CHANGELOG.md ++/node_modules/get-intrinsic/index.js ++/node_modules/get-intrinsic/LICENSE ++/node_modules/get-intrinsic/package.json ++/node_modules/get-intrinsic/README.md ++/node_modules/get-proto/.github/FUNDING.yml ++/node_modules/get-proto/test/index.js ++/node_modules/get-proto/.eslintrc ++/node_modules/get-proto/.nycrc ++/node_modules/get-proto/CHANGELOG.md ++/node_modules/get-proto/index.d.ts ++/node_modules/get-proto/index.js ++/node_modules/get-proto/LICENSE ++/node_modules/get-proto/Object.getPrototypeOf.d.ts ++/node_modules/get-proto/Object.getPrototypeOf.js ++/node_modules/get-proto/package.json ++/node_modules/get-proto/README.md ++/node_modules/get-proto/Reflect.getPrototypeOf.d.ts ++/node_modules/get-proto/Reflect.getPrototypeOf.js ++/node_modules/get-proto/tsconfig.json ++/node_modules/gopd/.github/FUNDING.yml ++/node_modules/gopd/test/index.js ++/node_modules/gopd/.eslintrc ++/node_modules/gopd/CHANGELOG.md ++/node_modules/gopd/gOPD.d.ts ++/node_modules/gopd/gOPD.js ++/node_modules/gopd/index.d.ts ++/node_modules/gopd/index.js ++/node_modules/gopd/LICENSE ++/node_modules/gopd/package.json ++/node_modules/gopd/README.md ++/node_modules/gopd/tsconfig.json ++/node_modules/has-symbols/.github/FUNDING.yml ++/node_modules/has-symbols/test/shams/core-js.js ++/node_modules/has-symbols/test/shams/get-own-property-symbols.js ++/node_modules/has-symbols/test/index.js ++/node_modules/has-symbols/test/tests.js ++/node_modules/has-symbols/.eslintrc ++/node_modules/has-symbols/.nycrc ++/node_modules/has-symbols/CHANGELOG.md ++/node_modules/has-symbols/index.d.ts ++/node_modules/has-symbols/index.js ++/node_modules/has-symbols/LICENSE ++/node_modules/has-symbols/package.json ++/node_modules/has-symbols/README.md ++/node_modules/has-symbols/shams.d.ts ++/node_modules/has-symbols/shams.js ++/node_modules/has-symbols/tsconfig.json ++/node_modules/has-tostringtag/.github/FUNDING.yml ++/node_modules/has-tostringtag/test/shams/core-js.js ++/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js ++/node_modules/has-tostringtag/test/index.js ++/node_modules/has-tostringtag/test/tests.js ++/node_modules/has-tostringtag/.eslintrc ++/node_modules/has-tostringtag/.nycrc ++/node_modules/has-tostringtag/CHANGELOG.md ++/node_modules/has-tostringtag/index.d.ts ++/node_modules/has-tostringtag/index.js ++/node_modules/has-tostringtag/LICENSE ++/node_modules/has-tostringtag/package.json ++/node_modules/has-tostringtag/README.md ++/node_modules/has-tostringtag/shams.d.ts ++/node_modules/has-tostringtag/shams.js ++/node_modules/has-tostringtag/tsconfig.json ++/node_modules/hasown/.github/FUNDING.yml ++/node_modules/hasown/.nycrc ++/node_modules/hasown/CHANGELOG.md ++/node_modules/hasown/index.d.ts ++/node_modules/hasown/index.js ++/node_modules/hasown/LICENSE ++/node_modules/hasown/package.json ++/node_modules/hasown/README.md ++/node_modules/hasown/tsconfig.json ++/node_modules/husky/bin.js ++/node_modules/husky/husky ++/node_modules/husky/index.d.ts ++/node_modules/husky/index.js ++/node_modules/husky/LICENSE ++/node_modules/husky/package.json ++/node_modules/husky/README.md ++/node_modules/json-bigint/lib/parse.js ++/node_modules/json-bigint/lib/stringify.js ++/node_modules/json-bigint/index.js ++/node_modules/json-bigint/LICENSE ++/node_modules/json-bigint/package.json ++/node_modules/json-bigint/README.md ++/node_modules/math-intrinsics/.github/FUNDING.yml ++/node_modules/math-intrinsics/constants/maxArrayLength.d.ts ++/node_modules/math-intrinsics/constants/maxArrayLength.js ++/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts ++/node_modules/math-intrinsics/constants/maxSafeInteger.js ++/node_modules/math-intrinsics/constants/maxValue.d.ts ++/node_modules/math-intrinsics/constants/maxValue.js ++/node_modules/math-intrinsics/test/index.js ++/node_modules/math-intrinsics/.eslintrc ++/node_modules/math-intrinsics/abs.d.ts ++/node_modules/math-intrinsics/abs.js ++/node_modules/math-intrinsics/CHANGELOG.md ++/node_modules/math-intrinsics/floor.d.ts ++/node_modules/math-intrinsics/floor.js ++/node_modules/math-intrinsics/isFinite.d.ts ++/node_modules/math-intrinsics/isFinite.js ++/node_modules/math-intrinsics/isInteger.d.ts ++/node_modules/math-intrinsics/isInteger.js ++/node_modules/math-intrinsics/isNaN.d.ts ++/node_modules/math-intrinsics/isNaN.js ++/node_modules/math-intrinsics/isNegativeZero.d.ts ++/node_modules/math-intrinsics/isNegativeZero.js ++/node_modules/math-intrinsics/LICENSE ++/node_modules/math-intrinsics/max.d.ts ++/node_modules/math-intrinsics/max.js ++/node_modules/math-intrinsics/min.d.ts ++/node_modules/math-intrinsics/min.js ++/node_modules/math-intrinsics/mod.d.ts ++/node_modules/math-intrinsics/mod.js ++/node_modules/math-intrinsics/package.json ++/node_modules/math-intrinsics/pow.d.ts ++/node_modules/math-intrinsics/pow.js ++/node_modules/math-intrinsics/README.md ++/node_modules/math-intrinsics/round.d.ts ++/node_modules/math-intrinsics/round.js ++/node_modules/math-intrinsics/sign.d.ts ++/node_modules/math-intrinsics/sign.js ++/node_modules/math-intrinsics/tsconfig.json ++/node_modules/mime-db/db.json ++/node_modules/mime-db/HISTORY.md ++/node_modules/mime-db/index.js ++/node_modules/mime-db/LICENSE ++/node_modules/mime-db/package.json ++/node_modules/mime-db/README.md ++/node_modules/mime-types/HISTORY.md ++/node_modules/mime-types/index.js ++/node_modules/mime-types/LICENSE ++/node_modules/mime-types/package.json ++/node_modules/mime-types/README.md ++/node_modules/proxy-from-env/index.js ++/node_modules/proxy-from-env/LICENSE ++/node_modules/proxy-from-env/package.json ++/node_modules/proxy-from-env/README.md ++/node_modules/.package-lock.json diff --git a/.idea/shelf/在进行更新之前于_2026_6_6_09_17_取消提交了更改_[更改]/shelved.patch b/.idea/shelf/在进行更新之前于_2026_6_6_09_17_取消提交了更改_[更改]/shelved.patch new file mode 100644 index 000000000..e82a07df1 --- /dev/null +++ b/.idea/shelf/在进行更新之前于_2026_6_6_09_17_取消提交了更改_[更改]/shelved.patch @@ -0,0 +1,566 @@ +Index: healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (revision d8427f788eee7eb4a45c5aaa5bdc7c679e8f27a5) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue (date 1780708030812) +@@ -449,7 +449,7 @@ + import OrderGroupDrawer from '@/views/doctorstation/components/prescription/orderGroupDrawer.vue'; + import PrescriptionHistory from '@/views/doctorstation/components/prescription/prescriptionHistory.vue'; + import Decimal from 'decimal.js'; +-import {ElLoading, ElMessage, ElMessageBox} from 'element-plus'; ++import {ElMessage, ElMessageBox} from 'element-plus'; + import useUserStore from '@/store/modules/user'; + import ApplicationFormBottomBtn from './applicationForm/applicationFormBottomBtn.vue'; + import LeaveHospitalDialog from './applicationForm/leaveHospitalDialog.vue'; +@@ -643,7 +643,7 @@ + }, + ]; + +-let loadingInstance = undefined; ++// loadingInstance removed - using loading ref instead + onMounted(() => { + document.addEventListener('keydown', escKeyListener); + }); +@@ -697,10 +697,7 @@ + } + // 获取列表信息 + function getListInfo(addNewRow) { +- loadingInstance = ElLoading.service({ fullscreen: true }); +- setTimeout(() => { +- loadingInstance.close(); +- }, 180); ++ loading.value = true; + isAdding.value = false; + collapseAllExpanded(); + // 🔧 修复:先加载科室树,再处理处方数据 +@@ -712,7 +709,7 @@ + getPrescriptionList(patientInfo.value.encounterId).then((res) => { + // 等待科室树加载完成后再处理处方数据,确保 resolveOrgId 能正确匹配 + orgTreePromise.then(() => { +- loadingInstance.close(); ++ loading.value = false; + prescriptionList.value = res.data + .map((item) => { + const parsedContent = JSON.parse(item.contentJson); +@@ -772,7 +769,7 @@ + handleAddPrescription(); + } + }); +- }); ++ }).catch(() => { loading.value = false; }); + getContract({ encounterId: patientInfo.value.encounterId }).then((res) => { + contractList.value = res.data; + }); +Index: .gitignore +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/.gitignore b/.gitignore +new file mode 100644 +--- /dev/null (date 1780708030842) ++++ b/.gitignore (date 1780708030842) +@@ -0,0 +1,418 @@ ++/.vscode/mcp.json ++/.vscode/settings.json ++/.qwen/settings.json.orig ++/.playwright-mcp/console-2026-03-31T08-27-30-883Z.log ++/.playwright-mcp/console-2026-05-19T03-10-43-600Z.log ++/.playwright-mcp/console-2026-05-19T03-18-23-396Z.log ++/.playwright-mcp/console-2026-05-19T03-18-51-946Z.log ++/.playwright-mcp/page-2026-05-11T02-56-22-027Z.yml ++/.playwright-mcp/page-2026-05-11T02-56-30-095Z.yml ++/.playwright-mcp/page-2026-05-19T03-10-44-171Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-20-520Z.yml ++/.playwright-mcp/page-2026-05-19T03-11-40-168Z.yml ++/.playwright-mcp/page-2026-05-19T03-12-10-968Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-23-610Z.yml ++/.playwright-mcp/page-2026-05-19T03-18-52-634Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-19-472Z.yml ++/.playwright-mcp/page-2026-05-19T03-19-36-669Z.yml ++/.playwright-mcp/page-2026-05-19T03-20-04-342Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-08-820Z.yml ++/.playwright-mcp/page-2026-05-19T03-21-43-735Z.yml ++/.idea/compiler.xml ++/.idea/encodings.xml ++/.idea/jarRepositories.xml ++/.idea/misc.xml ++/.idea/vcs.xml ++/.idea/workspace.xml ++/node_modules/.bin/husky ++/node_modules/.bin/husky.cmd ++/node_modules/.bin/husky.ps1 ++/node_modules/asynckit/lib/abort.js ++/node_modules/asynckit/lib/async.js ++/node_modules/asynckit/lib/defer.js ++/node_modules/asynckit/lib/iterate.js ++/node_modules/asynckit/lib/readable_asynckit.js ++/node_modules/asynckit/lib/readable_parallel.js ++/node_modules/asynckit/lib/readable_serial.js ++/node_modules/asynckit/lib/readable_serial_ordered.js ++/node_modules/asynckit/lib/state.js ++/node_modules/asynckit/lib/streamify.js ++/node_modules/asynckit/lib/terminator.js ++/node_modules/asynckit/bench.js ++/node_modules/asynckit/index.js ++/node_modules/asynckit/LICENSE ++/node_modules/asynckit/package.json ++/node_modules/asynckit/parallel.js ++/node_modules/asynckit/README.md ++/node_modules/asynckit/serial.js ++/node_modules/asynckit/serialOrdered.js ++/node_modules/asynckit/stream.js ++/node_modules/axios/dist/browser/axios.cjs ++/node_modules/axios/dist/esm/axios.js ++/node_modules/axios/dist/esm/axios.min.js ++/node_modules/axios/dist/esm/axios.min.js.map ++/node_modules/axios/dist/node/axios.cjs ++/node_modules/axios/dist/axios.js ++/node_modules/axios/dist/axios.min.js ++/node_modules/axios/dist/axios.min.js.map ++/node_modules/axios/lib/adapters/adapters.js ++/node_modules/axios/lib/adapters/fetch.js ++/node_modules/axios/lib/adapters/http.js ++/node_modules/axios/lib/adapters/README.md ++/node_modules/axios/lib/adapters/xhr.js ++/node_modules/axios/lib/cancel/CanceledError.js ++/node_modules/axios/lib/cancel/CancelToken.js ++/node_modules/axios/lib/cancel/isCancel.js ++/node_modules/axios/lib/core/Axios.js ++/node_modules/axios/lib/core/AxiosError.js ++/node_modules/axios/lib/core/AxiosHeaders.js ++/node_modules/axios/lib/core/buildFullPath.js ++/node_modules/axios/lib/core/dispatchRequest.js ++/node_modules/axios/lib/core/InterceptorManager.js ++/node_modules/axios/lib/core/mergeConfig.js ++/node_modules/axios/lib/core/README.md ++/node_modules/axios/lib/core/settle.js ++/node_modules/axios/lib/core/transformData.js ++/node_modules/axios/lib/defaults/index.js ++/node_modules/axios/lib/defaults/transitional.js ++/node_modules/axios/lib/env/classes/FormData.js ++/node_modules/axios/lib/env/data.js ++/node_modules/axios/lib/env/README.md ++/node_modules/axios/lib/helpers/AxiosTransformStream.js ++/node_modules/axios/lib/helpers/AxiosURLSearchParams.js ++/node_modules/axios/lib/helpers/bind.js ++/node_modules/axios/lib/helpers/buildURL.js ++/node_modules/axios/lib/helpers/callbackify.js ++/node_modules/axios/lib/helpers/combineURLs.js ++/node_modules/axios/lib/helpers/composeSignals.js ++/node_modules/axios/lib/helpers/cookies.js ++/node_modules/axios/lib/helpers/deprecatedMethod.js ++/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js ++/node_modules/axios/lib/helpers/formDataToJSON.js ++/node_modules/axios/lib/helpers/formDataToStream.js ++/node_modules/axios/lib/helpers/fromDataURI.js ++/node_modules/axios/lib/helpers/HttpStatusCode.js ++/node_modules/axios/lib/helpers/isAbsoluteURL.js ++/node_modules/axios/lib/helpers/isAxiosError.js ++/node_modules/axios/lib/helpers/isURLSameOrigin.js ++/node_modules/axios/lib/helpers/null.js ++/node_modules/axios/lib/helpers/parseHeaders.js ++/node_modules/axios/lib/helpers/parseProtocol.js ++/node_modules/axios/lib/helpers/progressEventReducer.js ++/node_modules/axios/lib/helpers/readBlob.js ++/node_modules/axios/lib/helpers/README.md ++/node_modules/axios/lib/helpers/resolveConfig.js ++/node_modules/axios/lib/helpers/speedometer.js ++/node_modules/axios/lib/helpers/spread.js ++/node_modules/axios/lib/helpers/throttle.js ++/node_modules/axios/lib/helpers/toFormData.js ++/node_modules/axios/lib/helpers/toURLEncodedForm.js ++/node_modules/axios/lib/helpers/trackStream.js ++/node_modules/axios/lib/helpers/validator.js ++/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js ++/node_modules/axios/lib/platform/browser/classes/Blob.js ++/node_modules/axios/lib/platform/browser/classes/FormData.js ++/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/browser/index.js ++/node_modules/axios/lib/platform/common/utils.js ++/node_modules/axios/lib/platform/node/classes/FormData.js ++/node_modules/axios/lib/platform/node/classes/URLSearchParams.js ++/node_modules/axios/lib/platform/node/index.js ++/node_modules/axios/lib/platform/index.js ++/node_modules/axios/lib/axios.js ++/node_modules/axios/lib/utils.js ++/node_modules/axios/CHANGELOG.md ++/node_modules/axios/index.d.cts ++/node_modules/axios/index.d.ts ++/node_modules/axios/index.js ++/node_modules/axios/LICENSE ++/node_modules/axios/MIGRATION_GUIDE.md ++/node_modules/axios/package.json ++/node_modules/axios/README.md ++/node_modules/bignumber.js/doc/API.html ++/node_modules/bignumber.js/bignumber.d.mts ++/node_modules/bignumber.js/bignumber.d.ts ++/node_modules/bignumber.js/bignumber.js ++/node_modules/bignumber.js/bignumber.mjs ++/node_modules/bignumber.js/CHANGELOG.md ++/node_modules/bignumber.js/LICENCE.md ++/node_modules/bignumber.js/package.json ++/node_modules/bignumber.js/README.md ++/node_modules/bignumber.js/types.d.ts ++/node_modules/call-bind-apply-helpers/.github/FUNDING.yml ++/node_modules/call-bind-apply-helpers/test/index.js ++/node_modules/call-bind-apply-helpers/.eslintrc ++/node_modules/call-bind-apply-helpers/.nycrc ++/node_modules/call-bind-apply-helpers/actualApply.d.ts ++/node_modules/call-bind-apply-helpers/actualApply.js ++/node_modules/call-bind-apply-helpers/applyBind.d.ts ++/node_modules/call-bind-apply-helpers/applyBind.js ++/node_modules/call-bind-apply-helpers/CHANGELOG.md ++/node_modules/call-bind-apply-helpers/functionApply.d.ts ++/node_modules/call-bind-apply-helpers/functionApply.js ++/node_modules/call-bind-apply-helpers/functionCall.d.ts ++/node_modules/call-bind-apply-helpers/functionCall.js ++/node_modules/call-bind-apply-helpers/index.d.ts ++/node_modules/call-bind-apply-helpers/index.js ++/node_modules/call-bind-apply-helpers/LICENSE ++/node_modules/call-bind-apply-helpers/package.json ++/node_modules/call-bind-apply-helpers/README.md ++/node_modules/call-bind-apply-helpers/reflectApply.d.ts ++/node_modules/call-bind-apply-helpers/reflectApply.js ++/node_modules/call-bind-apply-helpers/tsconfig.json ++/node_modules/combined-stream/lib/combined_stream.js ++/node_modules/combined-stream/License ++/node_modules/combined-stream/package.json ++/node_modules/combined-stream/Readme.md ++/node_modules/combined-stream/yarn.lock ++/node_modules/delayed-stream/lib/delayed_stream.js ++/node_modules/delayed-stream/.npmignore ++/node_modules/delayed-stream/License ++/node_modules/delayed-stream/Makefile ++/node_modules/delayed-stream/package.json ++/node_modules/delayed-stream/Readme.md ++/node_modules/dunder-proto/.github/FUNDING.yml ++/node_modules/dunder-proto/test/get.js ++/node_modules/dunder-proto/test/index.js ++/node_modules/dunder-proto/test/set.js ++/node_modules/dunder-proto/.eslintrc ++/node_modules/dunder-proto/.nycrc ++/node_modules/dunder-proto/CHANGELOG.md ++/node_modules/dunder-proto/get.d.ts ++/node_modules/dunder-proto/get.js ++/node_modules/dunder-proto/LICENSE ++/node_modules/dunder-proto/package.json ++/node_modules/dunder-proto/README.md ++/node_modules/dunder-proto/set.d.ts ++/node_modules/dunder-proto/set.js ++/node_modules/dunder-proto/tsconfig.json ++/node_modules/es-define-property/.github/FUNDING.yml ++/node_modules/es-define-property/test/index.js ++/node_modules/es-define-property/.eslintrc ++/node_modules/es-define-property/.nycrc ++/node_modules/es-define-property/CHANGELOG.md ++/node_modules/es-define-property/index.d.ts ++/node_modules/es-define-property/index.js ++/node_modules/es-define-property/LICENSE ++/node_modules/es-define-property/package.json ++/node_modules/es-define-property/README.md ++/node_modules/es-define-property/tsconfig.json ++/node_modules/es-errors/.github/FUNDING.yml ++/node_modules/es-errors/test/index.js ++/node_modules/es-errors/.eslintrc ++/node_modules/es-errors/CHANGELOG.md ++/node_modules/es-errors/eval.d.ts ++/node_modules/es-errors/eval.js ++/node_modules/es-errors/index.d.ts ++/node_modules/es-errors/index.js ++/node_modules/es-errors/LICENSE ++/node_modules/es-errors/package.json ++/node_modules/es-errors/range.d.ts ++/node_modules/es-errors/range.js ++/node_modules/es-errors/README.md ++/node_modules/es-errors/ref.d.ts ++/node_modules/es-errors/ref.js ++/node_modules/es-errors/syntax.d.ts ++/node_modules/es-errors/syntax.js ++/node_modules/es-errors/tsconfig.json ++/node_modules/es-errors/type.d.ts ++/node_modules/es-errors/type.js ++/node_modules/es-errors/uri.d.ts ++/node_modules/es-errors/uri.js ++/node_modules/es-object-atoms/.github/FUNDING.yml ++/node_modules/es-object-atoms/test/index.js ++/node_modules/es-object-atoms/.eslintrc ++/node_modules/es-object-atoms/CHANGELOG.md ++/node_modules/es-object-atoms/index.d.ts ++/node_modules/es-object-atoms/index.js ++/node_modules/es-object-atoms/isObject.d.ts ++/node_modules/es-object-atoms/isObject.js ++/node_modules/es-object-atoms/LICENSE ++/node_modules/es-object-atoms/package.json ++/node_modules/es-object-atoms/README.md ++/node_modules/es-object-atoms/RequireObjectCoercible.d.ts ++/node_modules/es-object-atoms/RequireObjectCoercible.js ++/node_modules/es-object-atoms/ToObject.d.ts ++/node_modules/es-object-atoms/ToObject.js ++/node_modules/es-object-atoms/tsconfig.json ++/node_modules/es-set-tostringtag/test/index.js ++/node_modules/es-set-tostringtag/.eslintrc ++/node_modules/es-set-tostringtag/.nycrc ++/node_modules/es-set-tostringtag/CHANGELOG.md ++/node_modules/es-set-tostringtag/index.d.ts ++/node_modules/es-set-tostringtag/index.js ++/node_modules/es-set-tostringtag/LICENSE ++/node_modules/es-set-tostringtag/package.json ++/node_modules/es-set-tostringtag/README.md ++/node_modules/es-set-tostringtag/tsconfig.json ++/node_modules/follow-redirects/debug.js ++/node_modules/follow-redirects/http.js ++/node_modules/follow-redirects/https.js ++/node_modules/follow-redirects/index.js ++/node_modules/follow-redirects/LICENSE ++/node_modules/follow-redirects/package.json ++/node_modules/follow-redirects/README.md ++/node_modules/form-data/lib/browser.js ++/node_modules/form-data/lib/form_data.js ++/node_modules/form-data/lib/populate.js ++/node_modules/form-data/CHANGELOG.md ++/node_modules/form-data/index.d.ts ++/node_modules/form-data/License ++/node_modules/form-data/package.json ++/node_modules/form-data/README.md ++/node_modules/function-bind/.github/FUNDING.yml ++/node_modules/function-bind/.github/SECURITY.md ++/node_modules/function-bind/test/.eslintrc ++/node_modules/function-bind/test/index.js ++/node_modules/function-bind/.eslintrc ++/node_modules/function-bind/.nycrc ++/node_modules/function-bind/CHANGELOG.md ++/node_modules/function-bind/implementation.js ++/node_modules/function-bind/index.js ++/node_modules/function-bind/LICENSE ++/node_modules/function-bind/package.json ++/node_modules/function-bind/README.md ++/node_modules/get-intrinsic/.github/FUNDING.yml ++/node_modules/get-intrinsic/test/GetIntrinsic.js ++/node_modules/get-intrinsic/.eslintrc ++/node_modules/get-intrinsic/.nycrc ++/node_modules/get-intrinsic/CHANGELOG.md ++/node_modules/get-intrinsic/index.js ++/node_modules/get-intrinsic/LICENSE ++/node_modules/get-intrinsic/package.json ++/node_modules/get-intrinsic/README.md ++/node_modules/get-proto/.github/FUNDING.yml ++/node_modules/get-proto/test/index.js ++/node_modules/get-proto/.eslintrc ++/node_modules/get-proto/.nycrc ++/node_modules/get-proto/CHANGELOG.md ++/node_modules/get-proto/index.d.ts ++/node_modules/get-proto/index.js ++/node_modules/get-proto/LICENSE ++/node_modules/get-proto/Object.getPrototypeOf.d.ts ++/node_modules/get-proto/Object.getPrototypeOf.js ++/node_modules/get-proto/package.json ++/node_modules/get-proto/README.md ++/node_modules/get-proto/Reflect.getPrototypeOf.d.ts ++/node_modules/get-proto/Reflect.getPrototypeOf.js ++/node_modules/get-proto/tsconfig.json ++/node_modules/gopd/.github/FUNDING.yml ++/node_modules/gopd/test/index.js ++/node_modules/gopd/.eslintrc ++/node_modules/gopd/CHANGELOG.md ++/node_modules/gopd/gOPD.d.ts ++/node_modules/gopd/gOPD.js ++/node_modules/gopd/index.d.ts ++/node_modules/gopd/index.js ++/node_modules/gopd/LICENSE ++/node_modules/gopd/package.json ++/node_modules/gopd/README.md ++/node_modules/gopd/tsconfig.json ++/node_modules/has-symbols/.github/FUNDING.yml ++/node_modules/has-symbols/test/shams/core-js.js ++/node_modules/has-symbols/test/shams/get-own-property-symbols.js ++/node_modules/has-symbols/test/index.js ++/node_modules/has-symbols/test/tests.js ++/node_modules/has-symbols/.eslintrc ++/node_modules/has-symbols/.nycrc ++/node_modules/has-symbols/CHANGELOG.md ++/node_modules/has-symbols/index.d.ts ++/node_modules/has-symbols/index.js ++/node_modules/has-symbols/LICENSE ++/node_modules/has-symbols/package.json ++/node_modules/has-symbols/README.md ++/node_modules/has-symbols/shams.d.ts ++/node_modules/has-symbols/shams.js ++/node_modules/has-symbols/tsconfig.json ++/node_modules/has-tostringtag/.github/FUNDING.yml ++/node_modules/has-tostringtag/test/shams/core-js.js ++/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js ++/node_modules/has-tostringtag/test/index.js ++/node_modules/has-tostringtag/test/tests.js ++/node_modules/has-tostringtag/.eslintrc ++/node_modules/has-tostringtag/.nycrc ++/node_modules/has-tostringtag/CHANGELOG.md ++/node_modules/has-tostringtag/index.d.ts ++/node_modules/has-tostringtag/index.js ++/node_modules/has-tostringtag/LICENSE ++/node_modules/has-tostringtag/package.json ++/node_modules/has-tostringtag/README.md ++/node_modules/has-tostringtag/shams.d.ts ++/node_modules/has-tostringtag/shams.js ++/node_modules/has-tostringtag/tsconfig.json ++/node_modules/hasown/.github/FUNDING.yml ++/node_modules/hasown/.nycrc ++/node_modules/hasown/CHANGELOG.md ++/node_modules/hasown/index.d.ts ++/node_modules/hasown/index.js ++/node_modules/hasown/LICENSE ++/node_modules/hasown/package.json ++/node_modules/hasown/README.md ++/node_modules/hasown/tsconfig.json ++/node_modules/husky/bin.js ++/node_modules/husky/husky ++/node_modules/husky/index.d.ts ++/node_modules/husky/index.js ++/node_modules/husky/LICENSE ++/node_modules/husky/package.json ++/node_modules/husky/README.md ++/node_modules/json-bigint/lib/parse.js ++/node_modules/json-bigint/lib/stringify.js ++/node_modules/json-bigint/index.js ++/node_modules/json-bigint/LICENSE ++/node_modules/json-bigint/package.json ++/node_modules/json-bigint/README.md ++/node_modules/math-intrinsics/.github/FUNDING.yml ++/node_modules/math-intrinsics/constants/maxArrayLength.d.ts ++/node_modules/math-intrinsics/constants/maxArrayLength.js ++/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts ++/node_modules/math-intrinsics/constants/maxSafeInteger.js ++/node_modules/math-intrinsics/constants/maxValue.d.ts ++/node_modules/math-intrinsics/constants/maxValue.js ++/node_modules/math-intrinsics/test/index.js ++/node_modules/math-intrinsics/.eslintrc ++/node_modules/math-intrinsics/abs.d.ts ++/node_modules/math-intrinsics/abs.js ++/node_modules/math-intrinsics/CHANGELOG.md ++/node_modules/math-intrinsics/floor.d.ts ++/node_modules/math-intrinsics/floor.js ++/node_modules/math-intrinsics/isFinite.d.ts ++/node_modules/math-intrinsics/isFinite.js ++/node_modules/math-intrinsics/isInteger.d.ts ++/node_modules/math-intrinsics/isInteger.js ++/node_modules/math-intrinsics/isNaN.d.ts ++/node_modules/math-intrinsics/isNaN.js ++/node_modules/math-intrinsics/isNegativeZero.d.ts ++/node_modules/math-intrinsics/isNegativeZero.js ++/node_modules/math-intrinsics/LICENSE ++/node_modules/math-intrinsics/max.d.ts ++/node_modules/math-intrinsics/max.js ++/node_modules/math-intrinsics/min.d.ts ++/node_modules/math-intrinsics/min.js ++/node_modules/math-intrinsics/mod.d.ts ++/node_modules/math-intrinsics/mod.js ++/node_modules/math-intrinsics/package.json ++/node_modules/math-intrinsics/pow.d.ts ++/node_modules/math-intrinsics/pow.js ++/node_modules/math-intrinsics/README.md ++/node_modules/math-intrinsics/round.d.ts ++/node_modules/math-intrinsics/round.js ++/node_modules/math-intrinsics/sign.d.ts ++/node_modules/math-intrinsics/sign.js ++/node_modules/math-intrinsics/tsconfig.json ++/node_modules/mime-db/db.json ++/node_modules/mime-db/HISTORY.md ++/node_modules/mime-db/index.js ++/node_modules/mime-db/LICENSE ++/node_modules/mime-db/package.json ++/node_modules/mime-db/README.md ++/node_modules/mime-types/HISTORY.md ++/node_modules/mime-types/index.js ++/node_modules/mime-types/LICENSE ++/node_modules/mime-types/package.json ++/node_modules/mime-types/README.md ++/node_modules/proxy-from-env/index.js ++/node_modules/proxy-from-env/LICENSE ++/node_modules/proxy-from-env/package.json ++/node_modules/proxy-from-env/README.md ++/node_modules/.package-lock.json +Index: healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n\n\n +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue +--- a/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (revision d8427f788eee7eb4a45c5aaa5bdc7c679e8f27a5) ++++ b/healthlink-his-ui/src/views/inpatientDoctor/home/emr/index.vue (date 1780708030827) +@@ -252,31 +252,37 @@ + // 处理节点点击,根据后台返回的路径加载组件 + const handleNodeClick = (data, node) => { + if (node.isLeaf) { ++ const newRouter = data.document?.vueRouter; ++ const oldRouter = currentSelectTemplate.value?.vueRouter; ++ const isSameTemplate = newRouter && oldRouter && newRouter === oldRouter; ++ + // 存储当前节点数据 + currentSelectTemplate.value = data.document; + +- // 在切换组件前先重置表单数据,避免显示之前的数据 +- editForm.value = { +- id: '', +- definitionId: '', +- definitionBusNo: '', +- contentJson: '', +- statusEnum: 1, +- organizationId: 0, +- encounterId: '', +- patientId: '', +- recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), +- createBy: '', +- source: '', +- }; +- +- // 先清空当前组件,再设置新组件,确保组件完全重新渲染 +- currentComponent.value = undefined; +- +- // 使用 nextTick 确保 DOM 更新后再设置新组件 +- nextTick(() => { +- currentComponent.value = currentSelectTemplate.value.vueRouter; +- }); ++ if (isSameTemplate) { ++ // 同一模板(仅患者切换):不卸载组件、不清空表单,避免闪烁 ++ // loading 遮罩覆盖过渡,loadLatestMedicalRecord 会原子替换表单数据 ++ loading.value = true; ++ } else { ++ // 不同模板:先清空再设置,确保组件完全重新渲染 ++ editForm.value = { ++ id: '', ++ definitionId: '', ++ definitionBusNo: '', ++ contentJson: '', ++ statusEnum: 1, ++ organizationId: 0, ++ encounterId: '', ++ patientId: '', ++ recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), ++ createBy: '', ++ source: '', ++ }; ++ currentComponent.value = undefined; ++ nextTick(() => { ++ currentComponent.value = newRouter; ++ }); ++ } + } else { + currentSelectTemplate.value = { + id: '', +@@ -624,8 +630,8 @@ + // 加载最新的病历数据并回显 + const loadLatestMedicalRecord = async () => { + if (!patientInfo.value?.encounterId || !currentSelectTemplate.value.id) return; +- editForm.value.id = ''; + loading.value = true; ++ editForm.value.id = ''; + try { + // 获取患者的历史病历记录 + const res = await getRecordByEncounterIdList({ diff --git a/healthlink-his-server/core-admin/src/main/java/com/core/web/util/TenantOptionUtil.java b/healthlink-his-server/core-admin/src/main/java/com/core/web/util/TenantOptionUtil.java index 5c7b277bc..e0c152210 100755 --- a/healthlink-his-server/core-admin/src/main/java/com/core/web/util/TenantOptionUtil.java +++ b/healthlink-his-server/core-admin/src/main/java/com/core/web/util/TenantOptionUtil.java @@ -35,7 +35,7 @@ public class TenantOptionUtil { // TODO:2025/10/17 李永兴提出的sys_option切换TenantOption临时防止报错方案,最晚2025年11月底删除 String newValue = loginUser.getOptionMap().get(optionDict.getCode()); - String oldValue = loginUser.getOptionJson().getString(optionDict.getCode()); + String oldValue = loginUser.getOptionJson().path(optionDict.getCode()).asText(); return StringUtils.isEmpty(newValue) ? oldValue : newValue; } diff --git a/healthlink-his-server/core-common/pom.xml b/healthlink-his-server/core-common/pom.xml index 8146e67e3..792e8c3bb 100755 --- a/healthlink-his-server/core-common/pom.xml +++ b/healthlink-his-server/core-common/pom.xml @@ -1,4 +1,4 @@ - + @@ -13,7 +13,7 @@ core-common - common通用工具 + common通用工具 @@ -45,7 +45,7 @@ - + com.baomidou mybatis-plus-spring-boot3-starter @@ -67,25 +67,25 @@ lombok - + org.springframework spring-context-support - + org.springframework spring-web - + org.springframework.boot spring-boot-starter-security - + com.github.pagehelper pagehelper-spring-boot-starter @@ -97,49 +97,49 @@ jakarta.annotation-api - + org.springframework.boot spring-boot-starter-validation - + org.apache.commons commons-lang3 - + + com.fasterxml.jackson.core jackson-databind - - - com.alibaba.fastjson2 - fastjson2 + tools.jackson.core + jackson-databind - + + commons-io commons-io - + org.apache.poi poi-ooxml - + org.yaml snakeyaml - + io.jsonwebtoken jjwt-api @@ -161,31 +161,31 @@ jakarta.xml.bind-api - + org.springframework.boot spring-boot-starter-data-redis - + org.apache.commons commons-pool2 - + eu.bitwalker UserAgentUtils - + jakarta.servlet jakarta.servlet-api - + com.belerweb pinyin4j diff --git a/healthlink-his-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUser.java b/healthlink-his-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUser.java index d309d60e1..de920ee9b 100755 --- a/healthlink-his-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUser.java +++ b/healthlink-his-server/core-common/src/main/java/com/core/common/core/domain/model/LoginUser.java @@ -1,7 +1,7 @@ package com.core.common.core.domain.model; -import com.alibaba.fastjson2.JSONObject; -import com.alibaba.fastjson2.annotation.JSONField; + +import com.fasterxml.jackson.annotation.JsonProperty; import com.core.common.core.domain.entity.SysRole; import com.core.common.core.domain.entity.SysUser; import lombok.Data; @@ -14,7 +14,7 @@ import java.util.Map; import java.util.Set; /** - * 登录用户身份权限 + * 登录用户身份权限 * * @author system */ @@ -23,77 +23,77 @@ public class LoginUser implements UserDetails { private static final long serialVersionUID = 1L; /** - * 用户ID + * 用户ID */ private Long userId; /** - * 部门ID + * 部门ID */ private Long deptId; /** - * 用户唯一标识 + * 用户唯一标识 */ private String token; /** - * 登录时间 + * 登录时间 */ private Long loginTime; /** - * 过期时间 + * 过期时间 */ private Long expireTime; /** - * 登录IP地址 + * 登录IP地址 */ private String ipaddr; /** - * 登录地点 + * 登录地点 */ private String loginLocation; /** - * 浏览器类型 + * 浏览器类型 */ private String browser; /** - * 操作系统 + * 操作系统 */ private String os; /** - * 权限列表 + * 权限列表 */ private Set permissions; - /** 租户ID */ + /** 租户ID */ private Integer tenantId; /** - * 机构/科室id + * 机构/科室id */ private Long orgId; /** - * 所属医院id + * 所属医院id */ private Long hospitalId; /** - * 参与者id + * 参与者id */ private Long practitionerId; /** - * option JSON串 + * option JSON串 */ - private JSONObject optionJson; + private tools.jackson.databind.node.ObjectNode optionJson; /** * option Map @@ -101,12 +101,12 @@ public class LoginUser implements UserDetails { private Map optionMap; /** - * 当前登录账号角色集合 + * 当前登录账号角色集合 */ private List roleList; /** - * 用户信息 + * 用户信息 */ private SysUser user; @@ -148,7 +148,7 @@ public class LoginUser implements UserDetails { this.token = token; } - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @Override public String getPassword() { return user.getPassword(); @@ -160,42 +160,42 @@ public class LoginUser implements UserDetails { } /** - * 账户是否未过期,过期无法验证 + * 账户是否未过期,过期无法验证 */ - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @Override public boolean isAccountNonExpired() { return true; } /** - * 指定用户是否解锁,锁定的用户无法进行身份验证 + * 指定用户是否解锁,锁定的用户无法进行身份验证 * * @return */ - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @Override public boolean isAccountNonLocked() { return true; } /** - * 指示是否已过期的用户的凭据(密码),过期的凭据防止认证 + * 指示是否已过期的用户的凭据(密码),过期的凭据防止认证 * * @return */ - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @Override public boolean isCredentialsNonExpired() { return true; } /** - * 是否可用 ,禁用的用户不能身份验证 + * 是否可用 ,禁用的用户不能身份验证 * * @return */ - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @Override public boolean isEnabled() { return true; diff --git a/healthlink-his-server/core-common/src/main/java/com/core/common/filter/PropertyPreExcludeFilter.java b/healthlink-his-server/core-common/src/main/java/com/core/common/filter/PropertyPreExcludeFilter.java index 193290e83..78892a9a6 100755 --- a/healthlink-his-server/core-common/src/main/java/com/core/common/filter/PropertyPreExcludeFilter.java +++ b/healthlink-his-server/core-common/src/main/java/com/core/common/filter/PropertyPreExcludeFilter.java @@ -1,19 +1,50 @@ package com.core.common.filter; -import com.alibaba.fastjson2.filter.SimplePropertyPreFilter; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.ser.FilterProvider; +import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; +import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; +import org.apache.commons.lang3.ArrayUtils; + +import java.util.HashSet; +import java.util.Set; /** - * 排除JSON敏感属性 - * + * 排除JSON敏感属性(Jackson版本) + * * @author system */ -public class PropertyPreExcludeFilter extends SimplePropertyPreFilter { +@JsonFilter("propertyFilter") +public class PropertyPreExcludeFilter { + + private final Set excludes = new HashSet<>(); + public PropertyPreExcludeFilter() {} public PropertyPreExcludeFilter addExcludes(String... filters) { - for (int i = 0; i < filters.length; i++) { - this.getExcludes().add(filters[i]); + for (String filter : filters) { + this.excludes.add(filter); } return this; } -} + + public Set getExcludes() { + return excludes; + } + + /** + * 构建Jackson FilterProvider,用于ObjectMapper的序列化过滤 + */ + public FilterProvider toFilterProvider() { + SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.serializeAllExcept(excludes.toArray(new String[0])); + return new SimpleFilterProvider().addFilter("propertyFilter", filter); + } + + /** + * 创建默认的日志过滤器 + */ + public static PropertyPreExcludeFilter createLogFilter(String[] excludeParamNames) { + String[] defaultExcludes = {"password", "oldPassword", "newPassword", "confirmPassword"}; + return new PropertyPreExcludeFilter().addExcludes(ArrayUtils.addAll(defaultExcludes, excludeParamNames)); + } +} \ No newline at end of file diff --git a/healthlink-his-server/core-common/src/main/java/com/core/common/utils/DictUtils.java b/healthlink-his-server/core-common/src/main/java/com/core/common/utils/DictUtils.java index 02b0ce8c5..9718f6da6 100755 --- a/healthlink-his-server/core-common/src/main/java/com/core/common/utils/DictUtils.java +++ b/healthlink-his-server/core-common/src/main/java/com/core/common/utils/DictUtils.java @@ -1,6 +1,7 @@ package com.core.common.utils; -import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import com.core.common.constant.CacheConstants; import com.core.common.core.domain.entity.SysDictData; import com.core.common.core.redis.RedisCache; @@ -37,9 +38,9 @@ public class DictUtils { * @return dictDatas 字典数据列表 */ public static List getDictCache(String key) { - JSONArray arrayCache = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); + JsonNode arrayCache = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); if (StringUtils.isNotNull(arrayCache)) { - return arrayCache.toList(SysDictData.class); + return new ObjectMapper().convertValue(arrayCache, new com.fasterxml.jackson.core.type.TypeReference>() {}); } return null; } diff --git a/healthlink-his-server/core-common/src/main/java/com/core/common/utils/JsonUtils.java b/healthlink-his-server/core-common/src/main/java/com/core/common/utils/JsonUtils.java new file mode 100644 index 000000000..98b743f4d --- /dev/null +++ b/healthlink-his-server/core-common/src/main/java/com/core/common/utils/JsonUtils.java @@ -0,0 +1,58 @@ +package com.core.common.utils; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; + +/** + * Jackson JSON 工具类 + * + * @author system + */ +public class JsonUtils { + private static final ObjectMapper MAPPER = new ObjectMapper(); + + static { + MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + MAPPER.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + } + + public static ObjectMapper getMapper() { + return MAPPER; + } + + public static String toJson(Object obj) { + try { + return MAPPER.writeValueAsString(obj); + } catch (JsonProcessingException e) { + return "{}"; + } + } + + public static JsonNode parse(String json) { + try { + return MAPPER.readTree(json); + } catch (Exception e) { + return MAPPER.createObjectNode(); + } + } + + public static T parseObject(String json, Class clazz) { + try { + return MAPPER.readValue(json, clazz); + } catch (Exception e) { + return null; + } + } + + public static T parseObject(String json, TypeReference typeRef) { + try { + return MAPPER.readValue(json, typeRef); + } catch (Exception e) { + return null; + } + } +} \ No newline at end of file diff --git a/healthlink-his-server/core-common/src/main/java/com/core/common/utils/ip/AddressUtils.java b/healthlink-his-server/core-common/src/main/java/com/core/common/utils/ip/AddressUtils.java index da4103a25..629251b72 100755 --- a/healthlink-his-server/core-common/src/main/java/com/core/common/utils/ip/AddressUtils.java +++ b/healthlink-his-server/core-common/src/main/java/com/core/common/utils/ip/AddressUtils.java @@ -1,7 +1,8 @@ package com.core.common.utils.ip; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import com.core.common.config.CoreConfig; import com.core.common.constant.Constants; import com.core.common.utils.StringUtils; @@ -33,9 +34,9 @@ public class AddressUtils { log.error("获取地理位置异常 {}", ip); return UNKNOWN; } - JSONObject obj = JSON.parseObject(rspStr); - String region = obj.getString("pro"); - String city = obj.getString("city"); + JsonNode obj; try { obj = JsonUtils.parse(rspStr); } catch (Exception e) { obj = null; } + String region = obj.path("pro").asText(); + String city = obj.path("city").asText(); return String.format("%s %s", region, city); } catch (Exception e) { log.error("获取地理位置异常 {}", ip); diff --git a/healthlink-his-server/core-flowable/pom.xml b/healthlink-his-server/core-flowable/pom.xml index c5077f9f7..72b8fc34b 100755 --- a/healthlink-his-server/core-flowable/pom.xml +++ b/healthlink-his-server/core-flowable/pom.xml @@ -39,11 +39,6 @@ - - com.alibaba.fastjson2 - fastjson2 - - org.projectlombok lombok diff --git a/healthlink-his-server/core-flowable/src/main/java/com/core/flowable/service/impl/FlowTaskServiceImpl.java b/healthlink-his-server/core-flowable/src/main/java/com/core/flowable/service/impl/FlowTaskServiceImpl.java index 4aee48286..732fa90e1 100755 --- a/healthlink-his-server/core-flowable/src/main/java/com/core/flowable/service/impl/FlowTaskServiceImpl.java +++ b/healthlink-his-server/core-flowable/src/main/java/com/core/flowable/service/impl/FlowTaskServiceImpl.java @@ -1,8 +1,11 @@ package com.core.flowable.service.impl; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -import com.alibaba.fastjson2.TypeReference; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.core.type.TypeReference; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.entity.SysRole; @@ -811,7 +814,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask if (Objects.isNull(sysForm)) { return AjaxResult.error("请先配置流程表单"); } - map.put("formData", JSONObject.parseObject(sysForm.getFormContent())); + map.put("formData", JsonUtils.parse(sysForm.getFormContent())); } return AjaxResult.success(map); } @@ -1028,7 +1031,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask if (Objects.isNull(sysForm)) { return AjaxResult.error("请先配置流程表单!"); } - return AjaxResult.success(JSONObject.parseObject(sysForm.getFormContent())); + return AjaxResult.success(JsonUtils.parse(sysForm.getFormContent())); } else { return AjaxResult.error("参数错误!"); } @@ -1105,25 +1108,25 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask } else { parameters = taskService.getVariables(taskId); } - JSONObject oldVariables = JSONObject.parseObject(JSON.toJSONString(parameters.get("formJson"))); - List oldFields = JSON.parseObject(JSON.toJSONString(oldVariables.get("widgetList")), - new TypeReference>() {}); + ObjectNode oldVariables = (ObjectNode) JsonUtils.parse(JsonUtils.toJson(parameters.get("formJson"))); + List oldFields = JsonUtils.parseObject(JsonUtils.toJson(oldVariables.get("widgetList")), + new TypeReference>() {}); // 设置已填写的表单为禁用状态 - for (JSONObject oldField : oldFields) { - JSONObject options = oldField.getJSONObject("options"); + for (JsonNode oldField : oldFields) { + ObjectNode options = (ObjectNode) oldField.path("options"); options.put("disabled", true); } // TODO 暂时只处理用户任务上的表单 if (StringUtils.isNotBlank(task.getFormKey())) { SysForm sysForm = sysFormService.selectSysFormById(Long.parseLong(task.getFormKey())); - JSONObject data = JSONObject.parseObject(sysForm.getFormContent()); - List newFields = - JSON.parseObject(JSON.toJSONString(data.get("widgetList")), new TypeReference>() {}); + JsonNode data = JsonUtils.parse(sysForm.getFormContent()); + List newFields = + JsonUtils.parseObject(JsonUtils.toJson(data.get("widgetList")), new TypeReference>() {}); // 表单回显时 加入子表单信息到流程变量中 - for (JSONObject newField : newFields) { - String key = newField.getString("id"); + for (JsonNode newField : newFields) { + String key = newField.path("id").asText(); // 处理图片上传组件回显问题 - if ("picture-upload".equals(newField.getString("type"))) { + if ("picture-upload".equals(newField.path("type").asText())) { parameters.put(key, new ArrayList<>()); } else { parameters.put(key, null); @@ -1131,7 +1134,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask } oldFields.addAll(newFields); } - oldVariables.put("widgetList", oldFields); + ArrayNode fieldsArray = new ObjectMapper().createArrayNode(); fieldsArray.addAll(oldFields); oldVariables.set("widgetList", fieldsArray); parameters.put("formJson", oldVariables); return AjaxResult.success(parameters); } diff --git a/healthlink-his-server/core-framework/src/main/java/com/core/framework/aspectj/LogAspect.java b/healthlink-his-server/core-framework/src/main/java/com/core/framework/aspectj/LogAspect.java index 15461a05e..fbd7212c8 100755 --- a/healthlink-his-server/core-framework/src/main/java/com/core/framework/aspectj/LogAspect.java +++ b/healthlink-his-server/core-framework/src/main/java/com/core/framework/aspectj/LogAspect.java @@ -1,6 +1,7 @@ package com.core.framework.aspectj; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import com.core.common.annotation.Log; import com.core.common.core.domain.entity.SysUser; import com.core.common.core.domain.model.LoginUser; @@ -142,7 +143,7 @@ public class LogAspect { } // 是否需要保存response,参数和值 if (log.isSaveResponseData() && StringUtils.isNotNull(jsonResult)) { - operLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000)); + operLog.setJsonResult(StringUtils.substring(JsonUtils.toJson(jsonResult), 0, 2000)); } } @@ -161,7 +162,7 @@ public class LogAspect { operLog.setOperParam(StringUtils.substring(params, 0, 2000)); } else { operLog.setOperParam(StringUtils - .substring(JSON.toJSONString(paramsMap, excludePropertyPreFilter(excludeParamNames)), 0, 2000)); + .substring(new ObjectMapper().writer(excludePropertyPreFilter(excludeParamNames).toFilterProvider()).writeValueAsString(paramsMap), 0, 2000)); } } @@ -174,7 +175,7 @@ public class LogAspect { for (Object o : paramsArray) { if (StringUtils.isNotNull(o) && !isFilterObject(o)) { try { - String jsonObj = JSON.toJSONString(o, excludePropertyPreFilter(excludeParamNames)); + String jsonObj = new ObjectMapper().writer(excludePropertyPreFilter(excludeParamNames).toFilterProvider()).writeValueAsString(o); params += jsonObj.toString() + " "; } catch (Exception e) { log.debug("Caught expected exception: {}", e.getMessage()); diff --git a/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/FastJson2JsonRedisSerializer.java b/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/FastJson2JsonRedisSerializer.java index 02b4b8f76..6bc8e182a 100755 --- a/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/FastJson2JsonRedisSerializer.java +++ b/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/FastJson2JsonRedisSerializer.java @@ -1,30 +1,46 @@ package com.core.framework.config; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONReader; -import com.alibaba.fastjson2.JSONWriter; -import com.alibaba.fastjson2.filter.Filter; -import com.core.common.constant.Constants; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.SerializationException; import java.nio.charset.Charset; +import java.util.LinkedHashMap; /** - * Redis使用FastJson序列化 - * + * Redis序列化器 - 兼容fastjson2旧格式 + * * @author system */ public class FastJson2JsonRedisSerializer implements RedisSerializer { + private static final Logger log = LoggerFactory.getLogger(FastJson2JsonRedisSerializer.class); public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); - static final Filter AUTO_TYPE_FILTER = JSONReader.autoTypeFilter(Constants.JSON_WHITELIST_STR); - - private Class clazz; + /** 新格式: 带类型信息 (activateDefaultTyping) */ + private final ObjectMapper typedMapper; + /** 旧格式fallback: 不带类型信息,读为Map再转换 */ + private final ObjectMapper plainMapper; + private final Class clazz; public FastJson2JsonRedisSerializer(Class clazz) { super(); this.clazz = clazz; + + // 新格式 ObjectMapper (带类型信息) + this.typedMapper = new ObjectMapper(); + this.typedMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + this.typedMapper.activateDefaultTyping( + LaissezFaireSubTypeValidator.instance, + ObjectMapper.DefaultTyping.NON_FINAL); + + // 旧格式 ObjectMapper (不带类型信息) + this.plainMapper = new ObjectMapper(); + this.plainMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); } @Override @@ -32,16 +48,31 @@ public class FastJson2JsonRedisSerializer implements RedisSerializer { if (t == null) { return new byte[0]; } - return JSON.toJSONString(t, JSONWriter.Feature.WriteClassName).getBytes(DEFAULT_CHARSET); + try { + return typedMapper.writeValueAsBytes(t); + } catch (Exception e) { + throw new SerializationException("Could not serialize: " + e.getMessage(), e); + } } @Override + @SuppressWarnings("unchecked") public T deserialize(byte[] bytes) throws SerializationException { if (bytes == null || bytes.length <= 0) { return null; } - String str = new String(bytes, DEFAULT_CHARSET); - - return JSON.parseObject(str, clazz, AUTO_TYPE_FILTER); + // 1. 新格式: 带类型信息的Jackson + try { + return typedMapper.readValue(bytes, clazz); + } catch (Exception ignored) { + } + // 2. 旧格式fallback: 不带类型信息,读为Map再转换 + try { + LinkedHashMap map = plainMapper.readValue(bytes, LinkedHashMap.class); + return plainMapper.convertValue(map, clazz); + } catch (Exception e) { + log.warn("Redis数据反序列化失败(已忽略,用户需重新登录): {}", e.getMessage()); + return null; + } } -} +} \ No newline at end of file diff --git a/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/RedisConfig.java b/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/RedisConfig.java index 99dec13b5..bfd62a6c0 100755 --- a/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/RedisConfig.java +++ b/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/RedisConfig.java @@ -8,29 +8,51 @@ import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.data.redis.core.script.DefaultRedisScript; +import org.springframework.data.redis.serializer.GenericJacksonJsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; +import tools.jackson.databind.DeserializationFeature; +import tools.jackson.databind.DatabindContext; +import tools.jackson.databind.JavaType; +import tools.jackson.databind.json.JsonMapper; +import tools.jackson.databind.jsontype.PolymorphicTypeValidator; -/** - * redis配置 - * - * @author system - */ @Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { + + private static final PolymorphicTypeValidator ALLOW_ALL = new PolymorphicTypeValidator() { + @Override + public Validity validateBaseType(DatabindContext ctxt, JavaType baseType) { + return Validity.ALLOWED; + } + + @Override + public Validity validateSubClassName(DatabindContext ctxt, JavaType baseType, String subClassName) { + return Validity.ALLOWED; + } + + @Override + public Validity validateSubType(DatabindContext ctxt, JavaType baseType, JavaType subType) { + return Validity.ALLOWED; + } + }; + @Bean @SuppressWarnings(value = {"unchecked", "rawtypes"}) public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate template = new RedisTemplate<>(); template.setConnectionFactory(connectionFactory); - FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class); + tools.jackson.databind.ObjectMapper objectMapper = JsonMapper.builder() + .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) + .activateDefaultTyping(ALLOW_ALL, tools.jackson.databind.DefaultTyping.NON_FINAL) + .build(); + + GenericJacksonJsonRedisSerializer serializer = new GenericJacksonJsonRedisSerializer(objectMapper); - // 使用StringRedisSerializer来序列化和反序列化redis的key值 template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(serializer); - // Hash的key也采用StringRedisSerializer的序列化方式 template.setHashKeySerializer(new StringRedisSerializer()); template.setHashValueSerializer(serializer); @@ -51,9 +73,6 @@ public class RedisConfig extends CachingConfigurerSupport { return redisTemplate.opsForValue(); } - /** - * 限流脚本 - */ private String limitScriptText() { return "local key = KEYS[1]\n" + "local count = tonumber(ARGV[1])\n" + "local time = tonumber(ARGV[2])\n" + "local current = redis.call('get', key);\n" + "if current and tonumber(current) > count then\n" @@ -61,4 +80,4 @@ public class RedisConfig extends CachingConfigurerSupport { + "if tonumber(current) == 1 then\n" + " redis.call('expire', key, time)\n" + "end\n" + "return tonumber(current);"; } -} +} \ No newline at end of file diff --git a/healthlink-his-server/core-framework/src/main/java/com/core/framework/interceptor/RepeatSubmitInterceptor.java b/healthlink-his-server/core-framework/src/main/java/com/core/framework/interceptor/RepeatSubmitInterceptor.java index f7296c295..98efce56a 100755 --- a/healthlink-his-server/core-framework/src/main/java/com/core/framework/interceptor/RepeatSubmitInterceptor.java +++ b/healthlink-his-server/core-framework/src/main/java/com/core/framework/interceptor/RepeatSubmitInterceptor.java @@ -1,6 +1,7 @@ package com.core.framework.interceptor; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import com.core.common.annotation.RepeatSubmit; import com.core.common.core.domain.AjaxResult; import com.core.common.utils.ServletUtils; @@ -28,7 +29,7 @@ public abstract class RepeatSubmitInterceptor implements HandlerInterceptor { if (annotation != null) { if (this.isRepeatSubmit(request, annotation)) { AjaxResult ajaxResult = AjaxResult.error(annotation.message()); - ServletUtils.renderString(response, JSON.toJSONString(ajaxResult)); + try { ServletUtils.renderString(response, JsonUtils.toJson(ajaxResult)); } catch (Exception e) { /* ignore */ } return false; } } diff --git a/healthlink-his-server/core-framework/src/main/java/com/core/framework/interceptor/impl/SameUrlDataInterceptor.java b/healthlink-his-server/core-framework/src/main/java/com/core/framework/interceptor/impl/SameUrlDataInterceptor.java index 7e906a188..754a8b387 100755 --- a/healthlink-his-server/core-framework/src/main/java/com/core/framework/interceptor/impl/SameUrlDataInterceptor.java +++ b/healthlink-his-server/core-framework/src/main/java/com/core/framework/interceptor/impl/SameUrlDataInterceptor.java @@ -1,6 +1,7 @@ package com.core.framework.interceptor.impl; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import com.core.common.annotation.RepeatSubmit; import com.core.common.constant.CacheConstants; import com.core.common.core.redis.RedisCache; @@ -45,7 +46,7 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor { // body参数为空,获取Parameter的数据 if (StringUtils.isEmpty(nowParams)) { - nowParams = JSON.toJSONString(request.getParameterMap()); + try { nowParams = JsonUtils.toJson(request.getParameterMap()); } catch (Exception e) { nowParams = "{}"; } } Map nowDataMap = new HashMap(); nowDataMap.put(REPEAT_PARAMS, nowParams); diff --git a/healthlink-his-server/core-framework/src/main/java/com/core/framework/security/handle/AuthenticationEntryPointImpl.java b/healthlink-his-server/core-framework/src/main/java/com/core/framework/security/handle/AuthenticationEntryPointImpl.java index 47a49827a..abce2f383 100755 --- a/healthlink-his-server/core-framework/src/main/java/com/core/framework/security/handle/AuthenticationEntryPointImpl.java +++ b/healthlink-his-server/core-framework/src/main/java/com/core/framework/security/handle/AuthenticationEntryPointImpl.java @@ -1,6 +1,7 @@ package com.core.framework.security.handle; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import com.core.common.constant.HttpStatus; import com.core.common.core.domain.AjaxResult; import com.core.common.utils.ServletUtils; @@ -28,6 +29,6 @@ public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, S throws IOException { int code = HttpStatus.UNAUTHORIZED; String msg = StringUtils.format("请求访问:{},认证失败,无法访问系统资源", request.getRequestURI()); - ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(code, msg))); + try { String json = JsonUtils.toJson(AjaxResult.error(code, msg)); ServletUtils.renderString(response, json); } catch (Exception ignored) { } } } diff --git a/healthlink-his-server/core-framework/src/main/java/com/core/framework/security/handle/LogoutSuccessHandlerImpl.java b/healthlink-his-server/core-framework/src/main/java/com/core/framework/security/handle/LogoutSuccessHandlerImpl.java index a09d71a6f..53617f390 100755 --- a/healthlink-his-server/core-framework/src/main/java/com/core/framework/security/handle/LogoutSuccessHandlerImpl.java +++ b/healthlink-his-server/core-framework/src/main/java/com/core/framework/security/handle/LogoutSuccessHandlerImpl.java @@ -1,6 +1,7 @@ package com.core.framework.security.handle; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import com.core.common.constant.Constants; import com.core.common.core.domain.AjaxResult; import com.core.common.core.domain.model.LoginUser; @@ -48,6 +49,6 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler { AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, MessageUtils.message("user.logout.success"))); } ServletUtils.renderString(response, - JSON.toJSONString(AjaxResult.success(MessageUtils.message("user.logout.success")))); + JsonUtils.toJson(AjaxResult.success(MessageUtils.message("user.logout.success")))); } } diff --git a/healthlink-his-server/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java b/healthlink-his-server/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java index 71864617f..1ebafbda3 100755 --- a/healthlink-his-server/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java +++ b/healthlink-his-server/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java @@ -1,6 +1,8 @@ package com.core.framework.web.service; -import com.alibaba.fastjson2.JSONObject; +import tools.jackson.databind.node.ObjectNode; +import tools.jackson.databind.json.JsonMapper; + import com.core.common.constant.CacheConstants; import com.core.common.constant.Constants; import com.core.common.constant.UserConstants; @@ -39,7 +41,7 @@ import java.util.Map; import java.util.Optional; /** - * 登录校验方法 + * 登录校验方法 * * @author system */ @@ -67,33 +69,33 @@ public class SysLoginService { private ISysTenantOptionService sysTenantOptionService; /** - * 登录验证 + * 登录验证 * - * @param username 用户名 - * @param password 密码 - * @param code 验证码 - * @param uuid 唯一标识 - * @param tenantId 租户ID - * @return 结果 + * @param username 用户名 + * @param password 密码 + * @param code 验证码 + * @param uuid 唯一标识 + * @param tenantId 租户ID + * @return 结果 */ public String login(String username, String password, String code, String uuid, Integer tenantId) { - // 验证码校验 + // 验证码校验 // validateCaptcha(username, code, uuid); - // 租户校验 + // 租户校验 validateTenant(username, tenantId); - // 保存本次勾选租户 + // 保存本次勾选租户 redisCache.setCacheObject(CacheConstants.LOGIN_SELECTED_TENANT + username, tenantId); - // 登录前置校验 + // 登录前置校验 loginPreCheck(username, password); - // 用户验证 + // 用户验证 Authentication authentication = null; try { UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password); AuthenticationContextHolder.setContext(authenticationToken); - // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername + // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername authentication = authenticationManager.authenticate(authenticationToken); } catch (Exception e) { if (e instanceof BadCredentialsException ex) { @@ -111,59 +113,59 @@ public class SysLoginService { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser)authentication.getPrincipal(); - // 设置登录用户信息 + // 设置登录用户信息 this.setLoginUserInfo(loginUser, tenantId); - // 生成token + // 生成token return tokenService.createToken(loginUser); } /** - * 设置登录用户信息 + * 设置登录用户信息 * - * @param loginUser 登录用户 - * @param tenantId 租户ID + * @param loginUser 登录用户 + * @param tenantId 租户ID */ public void setLoginUserInfo(LoginUser loginUser, Integer tenantId) { - // // 登录时set租户id + // // 登录时set租户id // Integer tenantId = 0; // ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes(); // if (attributes != null) { // HttpServletRequest request = attributes.getRequest(); - // // 从请求头获取租户ID,假设header名称为"X-Tenant-ID" ; 登录接口前端把租户id放到请求头里 + // // 从请求头获取租户ID,假设header名称为"X-Tenant-ID" ; 登录接口前端把租户id放到请求头里 // String tenantIdHeader = request.getHeader("X-Tenant-ID"); // if (tenantIdHeader != null && !tenantIdHeader.isEmpty()) { // tenantId = Integer.parseInt(tenantIdHeader); // } // } - // // 设置租户id + // // 设置租户id // loginUser.setTenantId(tenantId); - // 记录登录信息 + // 记录登录信息 recordLoginInfo(loginUser.getUserId()); - // 设置登录用户的信息 + // 设置登录用户的信息 LoginUserExtend loginUserExtend = userService.getLoginUserExtend(loginUser.getUserId()); if (loginUserExtend != null) { - loginUser.setOrgId(loginUserExtend.getOrgId()); // 科室id - loginUser.setPractitionerId(loginUserExtend.getPractitionerId()); // 参与者id - loginUser.setHospitalId(userService.getHospitalIdByOrgId(loginUserExtend.getOrgId())); // 所属医院id + loginUser.setOrgId(loginUserExtend.getOrgId()); // 科室id + loginUser.setPractitionerId(loginUserExtend.getPractitionerId()); // 参与者id + loginUser.setHospitalId(userService.getHospitalIdByOrgId(loginUserExtend.getOrgId())); // 所属医院id // user - loginUser.getUser().setOrgId(loginUserExtend.getOrgId()); // 科室id - loginUser.getUser().setOrgName(loginUserExtend.getOrgName()); // 科室名称 + loginUser.getUser().setOrgId(loginUserExtend.getOrgId()); // 科室id + loginUser.getUser().setOrgName(loginUserExtend.getOrgName()); // 科室名称 } List roleList = userService.getRoleList(loginUser.getUserId()); if (!roleList.isEmpty()) { loginUser.setRoleList(roleList); } - // 设置租户ID + // 设置租户ID loginUser.getUser().setTenantId(tenantId); loginUser.setTenantId(tenantId); - // option集合 + // option集合 List> optionList = userService.getOptionList(tenantId); if (optionList.isEmpty()) { - throw new IllegalArgumentException("未匹配到option信息"); + throw new IllegalArgumentException("未匹配到option信息"); } - JSONObject optionJson = new JSONObject(); + ObjectNode optionJson = JsonMapper.builder().build().createObjectNode(); for (Map map : optionList) { String key = map.get("optionkey"); String value = map.get("optionvalue"); @@ -171,20 +173,20 @@ public class SysLoginService { } loginUser.setOptionJson(optionJson); - // TODO:下面的配置项启用后,上面option集合处理注释掉 + // TODO:下面的配置项启用后,上面option集合处理注释掉 - // 全部租户配置项 + // 全部租户配置项 Map optionMap = sysTenantOptionService.getAllTenantOption(tenantId); loginUser.setOptionMap(optionMap); } /** - * 校验验证码 + * 校验验证码 * - * @param username 用户名 - * @param code 验证码 - * @param uuid 唯一标识 - * @return 结果 + * @param username 用户名 + * @param code 验证码 + * @param uuid 唯一标识 + * @return 结果 */ public void validateCaptcha(String username, String code, String uuid) { boolean captchaEnabled = configService.selectCaptchaEnabled(); @@ -206,33 +208,33 @@ public class SysLoginService { } /** - * 登录前置校验 + * 登录前置校验 * - * @param username 用户名 - * @param password 用户密码 + * @param username 用户名 + * @param password 用户密码 */ public void loginPreCheck(String username, String password) { - // 用户名或密码为空 错误 + // 用户名或密码为空 错误 if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) { AsyncManager.me().execute( AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("not.null"))); throw new UserNotExistsException(); } - // 密码如果不在指定范围内 错误 + // 密码如果不在指定范围内 错误 if (password.length() < UserConstants.PASSWORD_MIN_LENGTH || password.length() > UserConstants.PASSWORD_MAX_LENGTH) { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); throw new UserPasswordNotMatchException(); } - // 用户名不在指定范围内 错误 + // 用户名不在指定范围内 错误 if (username.length() < UserConstants.USERNAME_MIN_LENGTH || username.length() > UserConstants.USERNAME_MAX_LENGTH) { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); throw new UserPasswordNotMatchException(); } - // IP黑名单校验 + // IP黑名单校验 String blackStr = configService.selectConfigByKey("sys.login.blackIPList"); if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) { AsyncManager.me().execute( @@ -242,9 +244,9 @@ public class SysLoginService { } /** - * 记录登录信息 + * 记录登录信息 * - * @param userId 用户ID + * @param userId 用户ID */ public void recordLoginInfo(Long userId) { SysUser sysUser = new SysUser(); @@ -255,32 +257,32 @@ public class SysLoginService { } /** - * 校验租户 + * 校验租户 * - * @param username 用户名 - * @param tenantId 租户ID + * @param username 用户名 + * @param tenantId 租户ID */ private void validateTenant(String username, Integer tenantId) { - // 租户非空校验 + // 租户非空校验 if (tenantId == null) { - throw new ServiceException("请指定所属医院"); + throw new ServiceException("请指定所属医院"); } - // 查询用户绑定的租户列表 + // 查询用户绑定的租户列表 R> bindTenantList = sysTenantService.getUserBindTenantList(username); - // 租户合法性校验 + // 租户合法性校验 Optional currentTenantOptional = bindTenantList.getData().stream().filter(e -> tenantId.equals(e.getId())).findFirst(); if (currentTenantOptional.isEmpty()) { - throw new ServiceException("所属医院无权限"); + throw new ServiceException("所属医院无权限"); } - // 租户状态校验 + // 租户状态校验 SysTenant currentTenant = currentTenantOptional.get(); if (TenantStatus.DISABLE.getCode().equals(currentTenant.getStatus())) { - throw new ServiceException("所属医院停用"); + throw new ServiceException("所属医院停用"); } - // 租户删除状态校验 + // 租户删除状态校验 if (DelFlag.YES.getCode().equals(currentTenant.getDeleteFlag())) { - throw new ServiceException("所属医院不存在"); + throw new ServiceException("所属医院不存在"); } } diff --git a/healthlink-his-server/core-generator/src/main/java/com/core/generator/service/GenTableServiceImpl.java b/healthlink-his-server/core-generator/src/main/java/com/core/generator/service/GenTableServiceImpl.java index 2a16fffd8..b2ef0d5ae 100755 --- a/healthlink-his-server/core-generator/src/main/java/com/core/generator/service/GenTableServiceImpl.java +++ b/healthlink-his-server/core-generator/src/main/java/com/core/generator/service/GenTableServiceImpl.java @@ -1,7 +1,8 @@ package com.core.generator.service; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import com.core.common.constant.Constants; import com.core.common.constant.GenConstants; import com.core.common.core.text.CharsetKit; @@ -133,7 +134,7 @@ public class GenTableServiceImpl implements IGenTableService { @Override @Transactional public void updateGenTable(GenTable genTable) { - String options = JSON.toJSONString(genTable.getParams()); + String options; try { options = JsonUtils.toJson(genTable.getParams()); } catch (Exception e) { options = "{}"; } genTable.setOptions(options); int row = genTableMapper.updateGenTable(genTable); if (row > 0) { @@ -386,13 +387,13 @@ public class GenTableServiceImpl implements IGenTableService { @Override public void validateEdit(GenTable genTable) { if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) { - String options = JSON.toJSONString(genTable.getParams()); - JSONObject paramsObj = JSON.parseObject(options); - if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) { + String options; try { options = JsonUtils.toJson(genTable.getParams()); } catch (Exception e) { options = "{}"; } + JsonNode paramsObj; try { paramsObj = JsonUtils.parse(options); } catch (Exception e) { paramsObj = new ObjectMapper().createObjectNode(); } + if (StringUtils.isEmpty(paramsObj.path(GenConstants.TREE_CODE).asText())) { throw new ServiceException("树编码字段不能为空"); - } else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE))) { + } else if (StringUtils.isEmpty(paramsObj.path(GenConstants.TREE_PARENT_CODE).asText())) { throw new ServiceException("树父编码字段不能为空"); - } else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME))) { + } else if (StringUtils.isEmpty(paramsObj.path(GenConstants.TREE_NAME).asText())) { throw new ServiceException("树名称字段不能为空"); } else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) { if (StringUtils.isEmpty(genTable.getSubTableName())) { @@ -450,13 +451,13 @@ public class GenTableServiceImpl implements IGenTableService { * @param genTable 设置后的生成对象 */ public void setTableFromOptions(GenTable genTable) { - JSONObject paramsObj = JSON.parseObject(genTable.getOptions()); + JsonNode paramsObj; try { paramsObj = JsonUtils.parse(genTable.getOptions()); } catch (Exception e) { paramsObj = new ObjectMapper().createObjectNode(); } if (StringUtils.isNotNull(paramsObj)) { - String treeCode = paramsObj.getString(GenConstants.TREE_CODE); - String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE); - String treeName = paramsObj.getString(GenConstants.TREE_NAME); - Long parentMenuId = paramsObj.getLongValue(GenConstants.PARENT_MENU_ID); - String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME); + String treeCode = paramsObj.path(GenConstants.TREE_CODE).asText(); + String treeParentCode = paramsObj.path(GenConstants.TREE_PARENT_CODE).asText(); + String treeName = paramsObj.path(GenConstants.TREE_NAME).asText(); + Long parentMenuId = paramsObj.path(GenConstants.PARENT_MENU_ID).asLong(); + String parentMenuName = paramsObj.path(GenConstants.PARENT_MENU_NAME).asText(); genTable.setTreeCode(treeCode); genTable.setTreeParentCode(treeParentCode); diff --git a/healthlink-his-server/core-generator/src/main/java/com/core/generator/util/VelocityUtils.java b/healthlink-his-server/core-generator/src/main/java/com/core/generator/util/VelocityUtils.java index 66c85a28a..f8599a9bf 100755 --- a/healthlink-his-server/core-generator/src/main/java/com/core/generator/util/VelocityUtils.java +++ b/healthlink-his-server/core-generator/src/main/java/com/core/generator/util/VelocityUtils.java @@ -1,7 +1,8 @@ package com.core.generator.util; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import com.core.common.constant.GenConstants; import com.core.common.utils.DateUtils; import com.core.common.utils.StringUtils; @@ -72,14 +73,14 @@ public class VelocityUtils { public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) { String options = genTable.getOptions(); - JSONObject paramsObj = JSON.parseObject(options); + JsonNode paramsObj; try { paramsObj = JsonUtils.parse(options); } catch (Exception e) { paramsObj = null; } String parentMenuId = getParentMenuId(paramsObj); context.put("parentMenuId", parentMenuId); } public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) { String options = genTable.getOptions(); - JSONObject paramsObj = JSON.parseObject(options); + JsonNode paramsObj; try { paramsObj = JsonUtils.parse(options); } catch (Exception e) { paramsObj = null; } String treeCode = getTreecode(paramsObj); String treeParentCode = getTreeParentCode(paramsObj); String treeName = getTreeName(paramsObj); @@ -88,11 +89,11 @@ public class VelocityUtils { context.put("treeParentCode", treeParentCode); context.put("treeName", treeName); context.put("expandColumn", getExpandColumn(genTable)); - if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { - context.put("tree_parent_code", paramsObj.getString(GenConstants.TREE_PARENT_CODE)); + if (paramsObj.has(GenConstants.TREE_PARENT_CODE)) { + context.put("tree_parent_code", paramsObj.path(GenConstants.TREE_PARENT_CODE).asText()); } - if (paramsObj.containsKey(GenConstants.TREE_NAME)) { - context.put("tree_name", paramsObj.getString(GenConstants.TREE_NAME)); + if (paramsObj.has(GenConstants.TREE_NAME)) { + context.put("tree_name", paramsObj.path(GenConstants.TREE_NAME).asText()); } } @@ -247,10 +248,10 @@ public class VelocityUtils { * @param paramsObj 生成其他选项 * @return 上级菜单ID字段 */ - public static String getParentMenuId(JSONObject paramsObj) { - if (StringUtils.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID) - && StringUtils.isNotEmpty(paramsObj.getString(GenConstants.PARENT_MENU_ID))) { - return paramsObj.getString(GenConstants.PARENT_MENU_ID); + public static String getParentMenuId(JsonNode paramsObj) { + if (paramsObj != null && !paramsObj.isMissingNode() && paramsObj.has(GenConstants.PARENT_MENU_ID) + && StringUtils.isNotEmpty(paramsObj.path(GenConstants.PARENT_MENU_ID).asText())) { + return paramsObj.path(GenConstants.PARENT_MENU_ID).asText(); } return DEFAULT_PARENT_MENU_ID; } @@ -261,9 +262,9 @@ public class VelocityUtils { * @param paramsObj 生成其他选项 * @return 树编码 */ - public static String getTreecode(JSONObject paramsObj) { - if (paramsObj.containsKey(GenConstants.TREE_CODE)) { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE)); + public static String getTreecode(JsonNode paramsObj) { + if (paramsObj.has(GenConstants.TREE_CODE)) { + return StringUtils.toCamelCase(paramsObj.path(GenConstants.TREE_CODE).asText()); } return StringUtils.EMPTY; } @@ -274,9 +275,9 @@ public class VelocityUtils { * @param paramsObj 生成其他选项 * @return 树父编码 */ - public static String getTreeParentCode(JSONObject paramsObj) { - if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE)); + public static String getTreeParentCode(JsonNode paramsObj) { + if (paramsObj.has(GenConstants.TREE_PARENT_CODE)) { + return StringUtils.toCamelCase(paramsObj.path(GenConstants.TREE_PARENT_CODE).asText()); } return StringUtils.EMPTY; } @@ -287,9 +288,9 @@ public class VelocityUtils { * @param paramsObj 生成其他选项 * @return 树名称 */ - public static String getTreeName(JSONObject paramsObj) { - if (paramsObj.containsKey(GenConstants.TREE_NAME)) { - return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME)); + public static String getTreeName(JsonNode paramsObj) { + if (paramsObj.has(GenConstants.TREE_NAME)) { + return StringUtils.toCamelCase(paramsObj.path(GenConstants.TREE_NAME).asText()); } return StringUtils.EMPTY; } @@ -302,8 +303,8 @@ public class VelocityUtils { */ public static int getExpandColumn(GenTable genTable) { String options = genTable.getOptions(); - JSONObject paramsObj = JSON.parseObject(options); - String treeName = paramsObj.getString(GenConstants.TREE_NAME); + JsonNode paramsObj; try { paramsObj = JsonUtils.parse(options); } catch (Exception e) { paramsObj = null; } + String treeName = paramsObj.path(GenConstants.TREE_NAME).asText(); int num = 0; for (GenTableColumn column : genTable.getColumns()) { if (column.isList()) { diff --git a/healthlink-his-server/core-system/pom.xml b/healthlink-his-server/core-system/pom.xml index da99f15fb..a25e5ece2 100755 --- a/healthlink-his-server/core-system/pom.xml +++ b/healthlink-his-server/core-system/pom.xml @@ -17,7 +17,6 @@ - 2.0.43 2.5.1 @@ -49,15 +48,6 @@ org.projectlombok lombok - - - - com.alibaba.fastjson2 - fastjson2 - ${fastjson2.version} - - - com.belerweb diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/basicservice/controller/HealthcareServiceController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/basicservice/controller/HealthcareServiceController.java index 5084d07d2..14377098f 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/basicservice/controller/HealthcareServiceController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/basicservice/controller/HealthcareServiceController.java @@ -101,7 +101,7 @@ public class HealthcareServiceController { boolean res = iChargeItemDefinitionService.addChargeItemDefinitionByHealthcareService(healthcareServiceAfterAdd, chargeItemDefinition); // 调用医保目录对照接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 // 医保开关打开并且,页面传了医保编码 String ybNo = healthcareServiceFormData.getYbNo(); if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(ybNo)) { @@ -186,7 +186,7 @@ public class HealthcareServiceController { HealthcareService healthcareService = new HealthcareService(); BeanUtils.copyProperties(healthcareServiceFormData, healthcareService); // 调用医保目录对照接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 // 医保开关打开并且,页面传了医保编码 String ybNo = healthcareServiceFormData.getYbNo(); if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(ybNo)) { diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/chargemanage/appservice/impl/OutpatientRefundAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/chargemanage/appservice/impl/OutpatientRefundAppServiceImpl.java index 3badd5015..1550c093d 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/chargemanage/appservice/impl/OutpatientRefundAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/chargemanage/appservice/impl/OutpatientRefundAppServiceImpl.java @@ -581,7 +581,7 @@ public class OutpatientRefundAppServiceImpl implements IOutpatientRefundAppServi } } String fixmedinsCode = - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE); + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText(); if (!HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) { if (!devReqIdList.isEmpty()) { List deviceRequestList = deviceRequestService diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/chargemanage/appservice/impl/OutpatientRegistrationAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/chargemanage/appservice/impl/OutpatientRegistrationAppServiceImpl.java index 35ef52010..3b859ff39 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/chargemanage/appservice/impl/OutpatientRegistrationAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/chargemanage/appservice/impl/OutpatientRegistrationAppServiceImpl.java @@ -317,9 +317,9 @@ public class OutpatientRegistrationAppServiceImpl implements IOutpatientRegistra CancelPaymentDto cancelPaymentDto = new CancelPaymentDto(); BeanUtils.copyProperties(cancelRegPaymentDto, cancelPaymentDto); //LoginUser loginUser = SecurityUtils.getLoginUser(); - //String string1 = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); + //String string1 = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 开通医保的处理 - if ("1".equals(SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH)) + if ("1".equals(SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText()) && account != null && !CommonConstants.BusinessName.DEFAULT_CONTRACT_NO.equals(account.getContractNo())) { CancelRegPaymentModel model = new CancelRegPaymentModel(); BeanUtils.copyProperties(cancelRegPaymentDto, model); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/clinicalmanage/appservice/impl/SurgeryAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/clinicalmanage/appservice/impl/SurgeryAppServiceImpl.java index 849ba7f1f..3ca028d3c 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/clinicalmanage/appservice/impl/SurgeryAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/clinicalmanage/appservice/impl/SurgeryAppServiceImpl.java @@ -9,8 +9,8 @@ import com.core.common.core.domain.entity.SysUser; import com.core.common.utils.MessageUtils; import com.core.common.utils.SecurityUtils; import com.core.system.service.ISysUserService; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import com.healthlink.his.administration.domain.ChargeItem; import com.healthlink.his.administration.domain.Encounter; import com.healthlink.his.administration.domain.OperatingRoom; @@ -219,7 +219,7 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService { RequestForm requestForm = requestFormService.getOne(queryWrapper); if (requestForm != null && requestForm.getDescJson() != null) { try { - Map map = new ObjectMapper().readValue(requestForm.getDescJson(), Map.class); + Map map = JsonUtils.parseObject(requestForm.getDescJson(), Map.class); if (map.containsKey("secondarySurgeries")) { surgeryDto.setSecondarySurgeries((List>) map.get("secondarySurgeries")); } @@ -397,10 +397,10 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService { serviceContentMap.put("surgeryName", surgeryNameFromDto != null ? surgeryNameFromDto : ""); serviceContentMap.put("surgeryCode", surgeryCodeFromDto != null ? surgeryCodeFromDto : ""); try { - String contentJson = new ObjectMapper().writeValueAsString(serviceContentMap); + String contentJson; try { contentJson = JsonUtils.toJson(serviceContentMap); } catch (Exception e) { contentJson = "{}"; } log.info("【DEBUG】Setting contentJson: {}", contentJson); serviceRequest.setContentJson(contentJson); - } catch (JsonProcessingException e) { + } catch (Exception e) { log.error("【DEBUG】设置手术医嘱 contentJson 失败", e); } serviceRequestService.save(serviceRequest); @@ -456,8 +456,8 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService { } try { - return new ObjectMapper().writeValueAsString(map); - } catch (JsonProcessingException e) { + try { return JsonUtils.toJson(map); } catch (Exception e) { return null; } + } catch (Exception e) { log.error("构建手术申请单JSON失败", e); return "{}"; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/consultation/appservice/impl/ConsultationAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/consultation/appservice/impl/ConsultationAppServiceImpl.java index 735742447..5084b98ab 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/consultation/appservice/impl/ConsultationAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/consultation/appservice/impl/ConsultationAppServiceImpl.java @@ -1,6 +1,6 @@ package com.healthlink.his.web.consultation.appservice.impl; -import com.alibaba.fastjson2.JSON; +import com.core.common.utils.JsonUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.utils.SecurityUtils; @@ -1059,7 +1059,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService { contentMap.put("department", consultationRequest.getDepartment()); contentMap.put("adviceName", consultationRequest.getConsultationActivityName()); // 添加项目名称 - serviceRequest.setContentJson(JSON.toJSONString(contentMap)); + serviceRequest.setContentJson(JsonUtils.toJson(contentMap)); // 时间信息 serviceRequest.setAuthoredTime(new Date()); @@ -1166,7 +1166,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService { } // 更新医嘱内容 - serviceRequest.setContentJson(JSON.toJSONString(consultationRequest)); + serviceRequest.setContentJson(JsonUtils.toJson(consultationRequest)); serviceRequest.setUpdateBy(SecurityUtils.getUsername()); serviceRequest.setUpdateTime(new Date()); @@ -1518,7 +1518,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService { existingConfirmation.setConfirmingDate(currentInvited.getConfirmTime()); existingConfirmation.setConsultationStatus(ConsultationStatusEnum.CONFIRMED.getCode()); // 使用枚举 existingConfirmation.setConsultationOpinion(allOpinions); - existingConfirmation.setConfirmingPhysicians(JSON.toJSONString(physicians)); + existingConfirmation.setConfirmingPhysicians(JsonUtils.toJson(physicians)); consultationConfirmationMapper.updateById(existingConfirmation); log.info("更新会诊确认记录成功,确认医生:{},参与医生数:{}", currentPhysicianName, physicians.size()); @@ -1540,7 +1540,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService { confirmation.setConsultationStatus(ConsultationStatusEnum.CONFIRMED.getCode()); confirmation.setConsultationOpinion(allOpinions); - confirmation.setConfirmingPhysicians(JSON.toJSONString(physicians)); + confirmation.setConfirmingPhysicians(JsonUtils.toJson(physicians)); confirmation.setTenantId(SecurityUtils.getLoginUser().getTenantId().longValue()); consultationConfirmationMapper.insert(confirmation); @@ -1786,7 +1786,7 @@ public class ConsultationAppServiceImpl implements IConsultationAppService { }) .collect(Collectors.toList()); - confirmation.setConfirmingPhysicians(JSON.toJSONString(physicians)); + confirmation.setConfirmingPhysicians(JsonUtils.toJson(physicians)); consultationConfirmationMapper.updateById(confirmation); log.info("更新会诊确认记录成功,所有医生都已签名"); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java index 7b20a5c34..27997b0a6 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java @@ -211,7 +211,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { if (deviceDefinitionService.updateById(deviceDefinition)) { // 调用医保目录对照接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(deviceDefinition.getYbNo())) { R r = ybService.directoryCheck(CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition.getId()); @@ -336,7 +336,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { deviceDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue()); if (deviceDefinitionService.addDevice(deviceDefinition)) { // 调用医保目录对照接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(deviceDefinition.getYbNo())) { R r = ybService.directoryCheck(CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition.getId()); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/DiagTreatMAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/DiagTreatMAppServiceImpl.java index 045faac98..31a989440 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/DiagTreatMAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/DiagTreatMAppServiceImpl.java @@ -378,7 +378,7 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService { // 更新诊疗信息 if (activityDefinitionService.updateById(activityDefinition)) { // 调用医保目录对照接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(activityDefinition.getYbNo())) { R r = ybService.directoryCheck(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, activityDefinition.getId()); @@ -547,7 +547,7 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService { if (activityDefinitionService.addDiagnosisTreatment(activityDefinition)) { // 调用医保目录对照接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(activityDefinition.getYbNo())) { R r = ybService.directoryCheck(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, activityDefinition.getId()); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java index 642a11ac2..710e54eec 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java @@ -278,7 +278,7 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi if (updateMedicationDefinition) { // 调用医保目录对照接口 String ybSwitch - = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(medicationDefinition.getYbNo())) { R r = ybService.directoryCheck(CommonConstants.TableName.MED_MEDICATION_DEFINITION, medicationDefinition.getId()); @@ -410,7 +410,7 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi // 新增主表外来药品目录 if (medicationDefinitionService.addMedication(medicationDetail)) { // 调用医保目录对照接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(medicationDetail.getYbNo())) { R r = ybService.directoryCheck(CommonConstants.TableName.MED_MEDICATION_DEFINITION, medicationDetail.getId()); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/departmentmanage/appservice/impl/DepartmentReceiptApprovalServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/departmentmanage/appservice/impl/DepartmentReceiptApprovalServiceImpl.java index a8e362e28..7e55a1afa 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/departmentmanage/appservice/impl/DepartmentReceiptApprovalServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/departmentmanage/appservice/impl/DepartmentReceiptApprovalServiceImpl.java @@ -1,6 +1,6 @@ -package com.healthlink.his.web.departmentmanage.appservice.impl; - -import com.alibaba.fastjson2.JSONArray; +package com.healthlink.his.web.departmentmanage.appservice.impl;import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.core.common.core.domain.R; import com.core.common.utils.DateUtils; @@ -187,7 +187,7 @@ public class DepartmentReceiptApprovalServiceImpl implements IDepartmentReceiptA SupplyType.PURCHASE_STOCKIN.getValue()); // 调用医保商品采购接口 todo 科室材料相关医保接口未对应 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, false, true, false, now); @@ -274,7 +274,7 @@ public class DepartmentReceiptApprovalServiceImpl implements IDepartmentReceiptA SupplyType.PURCHASE_RETURN.getValue()); // 调用医保采购退货接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, false, false, true, now); @@ -425,7 +425,7 @@ public class DepartmentReceiptApprovalServiceImpl implements IDepartmentReceiptA } // 调用医保库存变更接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.DESTRUCTION, false, false, false, now); @@ -522,7 +522,7 @@ public class DepartmentReceiptApprovalServiceImpl implements IDepartmentReceiptA } String ybSwitch = - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { // 如果首次盘点信息不为空 if (!firstSupplyItemDetailList.isEmpty()) { @@ -864,14 +864,14 @@ public class DepartmentReceiptApprovalServiceImpl implements IDepartmentReceiptA } } // 转换为JSON - JSONArray medicalTraceNo = new JSONArray(); + ArrayNode medicalTraceNo = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); // 获取追溯码信息 if (supplyItemDetailDto.getTraceNo() != null) { List traceNoList = Arrays.stream(supplyItemDetailDto.getTraceNo().split(CommonConstants.Common.COMMA)) .map(String::trim).filter(s -> !s.isEmpty()).collect(Collectors.toList()); for (String traceNo : traceNoList) { - Map traceNoMap = new HashMap<>(); + ObjectNode traceNoMap = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); traceNoMap.put("drug_trac_codg", traceNo); medicalTraceNo.add(traceNoMap); } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java index ea944803c..502575caa 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java @@ -213,7 +213,7 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp // 先清除可能存在的无效缓存(JSONObject类型) if (redisCache.hasKey(cacheKey)) { Object cachedObj = redisCache.getCacheObject(cacheKey); - if (cachedObj instanceof com.alibaba.fastjson2.JSONObject) { + if (cachedObj instanceof com.fasterxml.jackson.databind.JsonNode) { redisCache.deleteObject(cacheKey); log.info("清除无效缓存, key: {}", cacheKey); } else if (cachedObj instanceof com.baomidou.mybatisplus.extension.plugins.pagination.Page) { diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/appservice/impl/DoctorStationEmrAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/appservice/impl/DoctorStationEmrAppServiceImpl.java index d802bd31c..8dc5a35bd 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/appservice/impl/DoctorStationEmrAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/appservice/impl/DoctorStationEmrAppServiceImpl.java @@ -1,7 +1,9 @@ package com.healthlink.his.web.doctorstation.appservice.impl; -import com.alibaba.fastjson2.JSONObject; -import com.alibaba.fastjson2.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.core.type.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -92,7 +94,7 @@ public class DoctorStationEmrAppServiceImpl implements IDoctorStationEmrAppServi List emrDictList = emrDictService.list(new LambdaQueryWrapper().select(EmrDict::getEmrKey)) .stream().map(EmrDict::getEmrKey).collect(Collectors.toList()); Map emrContextMap = - JSONObject.parseObject(contextStr, new TypeReference>() {}); + JsonUtils.parseObject(contextStr, new TypeReference>() {}); List emrDetailList = new ArrayList<>(); // 遍历病历内容map for (Map.Entry entry : emrContextMap.entrySet()) { diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/EmrTemplateDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/EmrTemplateDto.java index 06c242b76..1503e2049 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/EmrTemplateDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/EmrTemplateDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.doctorstation.dto; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; import lombok.Data; import lombok.experimental.Accessors; @@ -36,6 +36,6 @@ public class EmrTemplateDto implements Serializable { private Long userId; /** 病历内容 */ - private JSONObject contextJson; + private JsonNode contextJson; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/PatientEmrDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/PatientEmrDto.java index 76a90c618..397a18b2a 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/PatientEmrDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/PatientEmrDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.doctorstation.dto; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; import lombok.Data; import lombok.experimental.Accessors; @@ -29,7 +29,7 @@ public class PatientEmrDto implements Serializable { private Long encounterId; /** 病历信息 */ - private JSONObject contextJson; + private JsonNode contextJson; /** 病历状态 */ private String emrStatus; diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/document/appservice/impl/DocRecordAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/document/appservice/impl/DocRecordAppServiceImpl.java index df7881565..96997dc02 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/document/appservice/impl/DocRecordAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/document/appservice/impl/DocRecordAppServiceImpl.java @@ -1,6 +1,8 @@ package com.healthlink.his.web.document.appservice.impl; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -757,7 +759,7 @@ public class DocRecordAppServiceImpl implements IDocRecordAppService { HashMap map = new HashMap<>(); map.put(TemperatureChartEnum.OUTPUT.getTypeCode(), totalOutput.toString()); map.put(TemperatureChartEnum.INPUT.getTypeCode(), totalInput.toString()); - dto.setContentJson(JSONObject.toJSONString(map)); + dto.setContentJson(JsonUtils.toJson(map)); docRecordList.add(dto); } } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/document/util/ConvertToDocStatistics.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/document/util/ConvertToDocStatistics.java index dc162575e..48939f682 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/document/util/ConvertToDocStatistics.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/document/util/ConvertToDocStatistics.java @@ -1,8 +1,10 @@ package com.healthlink.his.web.document.util; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.databind.node.ArrayNode; import com.core.common.utils.StringUtils; import com.healthlink.his.common.enums.TemperatureChartEnum; import com.healthlink.his.web.document.appservice.IDocStatisticsDefinitionAppService; @@ -32,39 +34,44 @@ public class ConvertToDocStatistics { * @param jsonObject jsonObject * @return JSONObject列表 */ - public List convertToJSONObjList(JSONObject jsonObject) { - List jsonObjectList = new ArrayList<>(); + public List convertToJSONObjList(JsonNode jsonObject) { + List jsonObjectList = new ArrayList<>(); List keys = new ArrayList<>(); // 取出所有key - Set keySet = jsonObject.keySet(); - for (String key : keySet) { + java.util.Iterator keySetIter = ((ObjectNode) jsonObject).fieldNames(); + java.util.List keySetList = new ArrayList<>(); + while (keySetIter.hasNext()) { keySetList.add(keySetIter.next()); } + for (String key : keySetList) { // 取出key对应的数据 - Object obj = jsonObject.get(key); - // 如果obj是数组并且是JSONObject数组,数组遍历添加到List - if (obj instanceof JSONArray) { - if ((!((JSONArray)obj).isEmpty()) && (((JSONArray)obj).get(0) instanceof JSONObject)) { - List javaList = ((JSONArray)obj).toJavaList(JSONObject.class); - jsonObjectList.addAll(javaList); + JsonNode obj = jsonObject.get(key); + // 如果obj是数组并且是对象数组,数组遍历添加到List + if (obj != null && obj.isArray()) { + ArrayNode arrayNode = (ArrayNode) obj; + if (!arrayNode.isEmpty() && arrayNode.get(0).isObject()) { + for (JsonNode item : arrayNode) { + jsonObjectList.add(item); + } keys.add(key); } } // 如果是对象,添加到jsonObjectList - if (obj instanceof JSONObject) { - jsonObjectList.add((JSONObject)obj); + if (obj != null && obj.isObject()) { + jsonObjectList.add(obj); keys.add(key); } } // 移除 对象和数组 - keys.forEach(jsonObject::remove); + ObjectNode objectNode = (ObjectNode) jsonObject; + keys.forEach(objectNode::remove); // 将原本JSONObject添加到集合 jsonObjectList.add(jsonObject); // 格式化时间点 - for (JSONObject object : jsonObjectList) { - if (object.containsKey(TemperatureChartEnum.TIME_POINT.getTypeCode())) { + for (JsonNode object : jsonObjectList) { + if (object.has(TemperatureChartEnum.TIME_POINT.getTypeCode())) { // 前端传来的时间点格式 0200,转换为02:00:00 - String timePointValue = (String)object.get(TemperatureChartEnum.TIME_POINT.getTypeCode()); + String timePointValue = object.get(TemperatureChartEnum.TIME_POINT.getTypeCode()).asText(); if (timePointValue != null && timePointValue.matches("\\d{4}")) { - object.put(TemperatureChartEnum.TIME_POINT.getTypeCode(), + ((ObjectNode) object).put(TemperatureChartEnum.TIME_POINT.getTypeCode(), timePointValue.substring(0, 2) + ":00:00"); } } @@ -100,8 +107,8 @@ public class ConvertToDocStatistics { } // 解析JSON字符串为JSONObject(方便操作嵌套结构) - JSONObject contentJsonObj = parseJson(contentJson); - for (JSONObject jsonObject : convertToJSONObjList(contentJsonObj)) { + JsonNode contentJsonObj = parseJson(contentJson); + for (JsonNode jsonObject : convertToJSONObjList(contentJsonObj)) { contentJsonObj = jsonObject; // 如果JSON解析失败(返回null),直接返回空列表 if (contentJsonObj == null) { @@ -113,16 +120,16 @@ public class ConvertToDocStatistics { String targetCode = definition.getCode(); // 场景1:先尝试解析顶级键值对结构(如{"BQ": 123}) - if (contentJsonObj.containsKey(targetCode)) { + if (contentJsonObj.has(targetCode)) { // 提取值并转换为字符串 - String value = String.valueOf(contentJsonObj.get(targetCode)); + String value = contentJsonObj.get(targetCode).asText(); Date recordTime = docRecordDto.getRecordTime(); // 判断jsonObject中是否有timePoint、recordTime字段以及值,有则取出与拼接 try { - boolean timePoint = contentJsonObj.containsKey("timePoint"); - boolean date = contentJsonObj.containsKey("recordTime"); - String dateValue = (String)contentJsonObj.get("recordTime"); - String timePointValue = (String)contentJsonObj.get("timePoint"); + boolean timePoint = contentJsonObj.has("timePoint"); + boolean date = contentJsonObj.has("recordTime"); + String dateValue = contentJsonObj.get("recordTime").asText(); + String timePointValue = contentJsonObj.get("timePoint").asText(); if (timePoint && date && !dateValue.isEmpty() && !timePointValue.isEmpty()) { // 格式化 例:2025-11-20 13:34:56 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -141,22 +148,22 @@ public class ConvertToDocStatistics { // 列表字段名规则:目标code + "Item"(如code=BQ → 列表字段名=BQItem) String itemListKey = targetCode + "Item"; // 从JSON中获取对应的列表 - JSONArray itemArray = contentJsonObj.getJSONArray(itemListKey); + JsonNode itemArray = contentJsonObj.path(itemListKey); // 判断列表是否存在且不为空 if (itemArray != null && !itemArray.isEmpty()) { // 遍历列表中的每个元素(每个元素是一个JSONObject) for (int i = 0; i < itemArray.size(); i++) { - JSONObject itemObj = itemArray.getJSONObject(i); + JsonNode itemObj = itemArray.path(i); // 检查元素是否包含目标code - if (itemObj != null && itemObj.containsKey(targetCode)) { + if (itemObj != null && itemObj.has(targetCode)) { // 提取当前元素的目标值 - String value = String.valueOf(itemObj.get(targetCode)); + String value = itemObj.get(targetCode).asText(); Date recordTime = new Date(); - if (itemObj.containsKey("recordTime")) { - recordTime = itemObj.getDate("recordTime"); - } else if (contentJsonObj.containsKey("recordTime")) { - recordTime = contentJsonObj.getDate("recordTime"); + if (itemObj.has("recordTime")) { + try { recordTime = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(itemObj.get("recordTime").asText()); } catch (Exception ignored) {} + } else if (contentJsonObj.has("recordTime")) { + try { recordTime = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(contentJsonObj.get("recordTime").asText()); } catch (Exception ignored) {} } else { recordTime = docRecordDto.getRecordTime(); } @@ -183,14 +190,14 @@ public class ConvertToDocStatistics { * @param jsonStr 原始JSON字符串 * @return 解析后的JSONObject,失败则返回null */ - private JSONObject parseJson(String jsonStr) { + private JsonNode parseJson(String jsonStr) { // 如果JSON字符串为空,直接返回null if (jsonStr == null) { return null; } try { // 解析JSON字符串 - return JSON.parseObject(jsonStr); + try { return JsonUtils.parse(jsonStr); } catch (Exception e) { return null; } } catch (Exception e) { // 记录解析异常日志 log.error("JSON解析失败,原始字符串: {}", jsonStr, e); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/appservice/impl/BankPosCloudAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/appservice/impl/BankPosCloudAppServiceImpl.java index 3746f8dc6..b45a27cb2 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/appservice/impl/BankPosCloudAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/appservice/impl/BankPosCloudAppServiceImpl.java @@ -1,6 +1,7 @@ package com.healthlink.his.web.externalintegration.appservice.impl; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import com.core.common.core.domain.R; import com.core.common.enums.TenantOptionDict; import com.core.web.util.TenantOptionUtil; @@ -399,7 +400,7 @@ public class BankPosCloudAppServiceImpl implements IBankPosCloudAppService { // 设置其他固定参数 requestDto.setMid(mid).setTid(tid); // 将参数转化为json字符串 - String jsonStr = JSON.toJSONString(requestDto); + String jsonStr; try { jsonStr = JsonUtils.toJson(requestDto); } catch (Exception e) { jsonStr = "{}"; } log.info("【BPC请求报文】:{}", jsonStr); // 发起post请求 String postResponse; @@ -412,7 +413,7 @@ public class BankPosCloudAppServiceImpl implements IBankPosCloudAppService { // 解析响应报文 BpcTransactionResponseDto responseDto; try { - responseDto = JSON.parseObject(postResponse, BpcTransactionResponseDto.class); + responseDto = JsonUtils.parseObject(postResponse, BpcTransactionResponseDto.class); if (StringUtils.isNotEmpty(responseDto.getTraceNo()) && !traceNo.equals(responseDto.getTraceNo())) { return R.fail("终端流水号不一致,交易失败"); } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/appservice/impl/FoodborneAcquisitionAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/appservice/impl/FoodborneAcquisitionAppServiceImpl.java index 92b701319..35b957347 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/appservice/impl/FoodborneAcquisitionAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/appservice/impl/FoodborneAcquisitionAppServiceImpl.java @@ -1,7 +1,8 @@ package com.healthlink.his.web.externalintegration.appservice.impl; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import com.core.common.core.domain.R; import com.core.common.enums.TenantOptionDict; import com.core.common.utils.StringUtils; @@ -118,8 +119,8 @@ public class FoodborneAcquisitionAppServiceImpl implements IFoodborneAcquisition // 执行请求 response = httpClient.execute(httpGet); // 获取响应 - JSONObject object = - JSON.parseObject(EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8.toString())); + JsonNode object = + JsonUtils.parse(EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8.toString())); log.info("【食源性判断接口】入参encounterId:{}返回值:{}", encounterId, object.toString()); // 判断返回的result字段 String result = String.valueOf(object.get("result")); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcDataElementDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcDataElementDto.java index 3d90c5e4c..affd0f569 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcDataElementDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcDataElementDto.java @@ -1,6 +1,6 @@ package com.healthlink.his.web.externalintegration.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -17,161 +17,161 @@ public class BpcDataElementDto { * 设备终端编号:设备的唯一编号 */ @Length(max = 10) - @JSONField(name = "posNo") + @JsonProperty("posNo") private String posNo; /** * 终端实时经纬度信息:格式为为纬度/经度,+表示北纬、东经,-表示南纬、西 经。例:+37.12/-121.213。例:+37.12/-121.213 */ @Length(max = 30) - @JSONField(name = "posGa") + @JsonProperty("posGa") private String posGa; /** * 交易类型:(枚举TranType) */ @Length(max = 1) - @JSONField(name = "tranType") + @JsonProperty("tranType") private String tranType; /** * 交易金额:以分为单位的交易金额 */ @Length(max = 12) - @JSONField(name = "txnAmt") + @JsonProperty("txnAmt") private String txnAmt; /** * 支付方式:(枚举PayType) */ @Length(max = 4) - @JSONField(name = "payType") + @JsonProperty("payType") private String payType; /** * 交易流水号 */ @Length(max = 32) - @JSONField(name = "sysTrace") + @JsonProperty("sysTrace") private String sysTrace; /** * 原交易流水号:支付结果查询、退货、退货结果查询交易需要传入 */ @Length(max = 32) - @JSONField(name = "orgSysTrace") + @JsonProperty("orgSysTrace") private String orgSysTrace; /** * 原交易时间:(yyyyMMddHHmmss)该字段为消费成功后返回的日期时间,在做退货、退货结果查询时,需要传入原消费交易的日期时间 */ @Length(max = 14) - @JSONField(name = "orgTxnTime") + @JsonProperty("orgTxnTime") private String orgTxnTime; /** * 二维码信息:支付二维码,扫码消费订单查询时传入 */ @Length(max = 64) - @JSONField(name = "scanCode") + @JsonProperty("scanCode") private String scanCode; /** * 支付订单号:扫码支付交易订单号,扫码支付退货时传入 */ @Length(max = 64) - @JSONField(name = "tradeNo") + @JsonProperty("tradeNo") private String tradeNo; /** * 通知URL:交易延时响应时的交易结果通知URL */ @Length(max = 256) - @JSONField(name = "retUrl") + @JsonProperty("retUrl") private String retUrl; /** * 清算商户号 */ @Length(max = 15) - @JSONField(name = "mid") + @JsonProperty("mid") private String mid; /** * 商户名称 */ @Length(max = 64) - @JSONField(name = "merName") + @JsonProperty("merName") private String merName; /** * 终端号 */ @Length(max = 8) - @JSONField(name = "tid") + @JsonProperty("tid") private String tid; /** * 商户系统订单号:由商户系统产生 */ @Length(max = 64) - @JSONField(name = "merTradeNo") + @JsonProperty("merTradeNo") private String merTradeNo; /** * 银行优惠金额 */ @Length(max = 12) - @JSONField(name = "discountAmt") + @JsonProperty("discountAmt") private String discountAmt; /** * 收款方备注 */ @Length(max = 64) - @JSONField(name = "txtRemarks") + @JsonProperty("txtRemarks") private String txtRemarks; /** * 实名认证标志:(枚举RealNameAuthFlag) */ @Length(max = 1) - @JSONField(name = "realNameAuth") + @JsonProperty("realNameAuth") private String realNameAuth; /** * 付款人姓名:当realNameAuth为1时必填 */ @Length(max = 64) - @JSONField(name = "payerName") + @JsonProperty("payerName") private String payerName; /** * 付款人身份证件类型:(枚举PayerIdType)当realNameAuth为1时必填 */ @Length(max = 2) - @JSONField(name = "payerIDType") + @JsonProperty("payerIDType") private String payerIdType; /** * 付款人身份证件号码:当realNameAuth为1时必填 */ @Length(max = 20) - @JSONField(name = "payerID") + @JsonProperty("payerID") private String payerId; /** * 发起方IP地址:支持IPv6格式 */ @Length(max = 40) - @JSONField(name = "IP") + @JsonProperty("IP") private String ip; /** * 终端设备类型:(枚举DeviceType) */ @Length(max = 2) - @JSONField(name = "deviceType") + @JsonProperty("deviceType") private String deviceType; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcPaymentScanNotifyDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcPaymentScanNotifyDto.java index fb0301fd3..13459147d 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcPaymentScanNotifyDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcPaymentScanNotifyDto.java @@ -1,6 +1,6 @@ package com.healthlink.his.web.externalintegration.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -17,95 +17,95 @@ public class BpcPaymentScanNotifyDto { * 商户系统订单号:申码交易商户系统订单号 */ @Length(max = 64) - @JSONField(name = "merTradeNo") + @JsonProperty("merTradeNo") private String merTradeNo; /** * 原交易订单号:银行订单号 */ @Length(max = 64) - @JSONField(name = "orgSysTrace") + @JsonProperty("orgSysTrace") private String orgSysTrace; /** * 银行交易日期 */ - @JSONField(name = "bankDate") + @JsonProperty("bankDate") private String bankDate; /** * 银行交易时间 */ - @JSONField(name = "bankTime") + @JsonProperty("bankTime") private String bankTime; /** * 原申码订单号 */ @Length(max = 64) - @JSONField(name = "oldQrOrderNo") + @JsonProperty("oldQrOrderNo") private String oldQrOrderNo; /** * 原商户号 */ - @JSONField(name = "oldTermId") + @JsonProperty("oldTermId") private String oldTermId; /** * 原支付方式 */ - @JSONField(name = "oldPayType") + @JsonProperty("oldPayType") private String oldPayType; /** * 原银行交易日期 */ - @JSONField(name = "oldBankDate") + @JsonProperty("oldBankDate") private String oldBankDate; /** * 原银行交易时间 */ - @JSONField(name = "oldBankTime") + @JsonProperty("oldBankTime") private String oldBankTime; /** * 原交易返回码 */ - @JSONField(name = "oldRespCode") + @JsonProperty("oldRespCode") private String oldRespCode; /** * 原交易返回信息 */ - @JSONField(name = "oldRespMsg") + @JsonProperty("oldRespMsg") private String oldRespMsg; /** * 微信交易单号:仅OldPayType=WEIX 时此域有值 */ @Length(max = 64) - @JSONField(name = "oldTradeId") + @JsonProperty("oldTradeId") private String oldTradeId; /** * 支付宝交易单号:仅OldPayType=ZFBA 时此域有值 */ @Length(max = 64) - @JSONField(name = "oldTradeNo") + @JsonProperty("oldTradeNo") private String oldTradeNo; /** * 响应码:00 表示成功,其它表示失败 */ - @JSONField(name = "respCode") + @JsonProperty("respCode") private String respCode; /** * 响应码解释信息 */ - @JSONField(name = "respMsg") + @JsonProperty("respMsg") private String respMsg; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcTransactionRequestDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcTransactionRequestDto.java index 7464abaa5..9b54f1c3b 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcTransactionRequestDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcTransactionRequestDto.java @@ -1,6 +1,6 @@ package com.healthlink.his.web.externalintegration.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -19,91 +19,91 @@ public class BpcTransactionRequestDto { * 设备终端编号:设备的唯一编号(必填) */ @Length(max = 10) - @JSONField(name = "posNo") + @JsonProperty("posNo") private String posNo; /** * 终端实时经纬度信息:(最新,甲方确认可以不传)tranType为C时必填,格式为为纬度/经度,+表示北纬、东经,-表示南纬、西 经。例:+37.12/-121.213。例:+37.12/-121.213 */ @Length(max = 30) - @JSONField(name = "posGa") + @JsonProperty("posGa") private String posGa; /** * 交易类型:(枚举TranType) */ @Length(max = 1) - @JSONField(name = "tranType") + @JsonProperty("tranType") private String tranType; /** * 交易金额:以分为单位的交易金额 */ @Length(max = 12) - @JSONField(name = "txnAmt") + @JsonProperty("txnAmt") private String txnAmt; /** * 银行优惠金额:撤销、退货交易时填写原消费交易的优惠金额,可以不填 */ @Length(max = 12) - @JSONField(name = "discountAmt") + @JsonProperty("discountAmt") private String discountAmt; /** * 支付方式:(枚举PayType)当tranType为F时,payType不填写返回聚合码scanCode填写则返回订单数据payData(部分收单行支持) */ @Length(max = 4) - @JSONField(name = "payType") + @JsonProperty("payType") private String payType; /** * 二维码信息:被扫交易,采集到的手机支付二维码信息,主扫交易该字段为空 */ @Length(max = 64) - @JSONField(name = "scanCode") + @JsonProperty("scanCode") private String scanCode; /** * 商户编号 */ @Length(max = 15) - @JSONField(name = "mid") + @JsonProperty("mid") private String mid; /** * 终端编号(可以不填) */ @Length(max = 8) - @JSONField(name = "tid") + @JsonProperty("tid") private String tid; /** * 终端流水号:终端号系统跟踪号,从 000001 开始到 999999 循环,应答报文原值返回,客户端收到应答报文需要验证traceNo字段值,如果不一致则丢包交易失败 */ @Length(max = 6) - @JSONField(name = "traceNo") + @JsonProperty("traceNo") private String traceNo; /** * 商品名称:自定义商品名称(可以不填,默认为“商品”) */ @Length(max = 200) - @JSONField(name = "goodsName") + @JsonProperty("goodsName") private String goodsName; /** * 原交易订单号:银行订单号(可以不填) */ @Length(max = 64) - @JSONField(name = "tradeNo") + @JsonProperty("tradeNo") private String tradeNo; /** * 原交易日期时间:(yyyyMMddHHmmss)撤销、退货时填写原消费交易返回的时间日期 */ @Length(max = 14) - @JSONField(name = "orgTxnTime") + @JsonProperty("orgTxnTime") private String orgTxnTime; /** @@ -111,28 +111,28 @@ public class BpcTransactionRequestDto { * 消费撤销结果查询、退货交易需要传入原消费或定金交易商户系统订单号;退订、定金确认,填写原定金交易订单号;定金确认撤销、定金确认撤销结果查询,填写定金确认订单号 */ @Length(max = 64) - @JSONField(name = "merTradeNo") + @JsonProperty("merTradeNo") private String merTradeNo; /** * 退款退订定金单号:商户系统退货、退订、定金确认订单号(如果不能生成,可以向扫码平台申请商户系统订单号);退货结果查询、退订结果查询、定金确认查询,需要传入原商户系统退货单号 */ @Length(max = 64) - @JSONField(name = "vfTradeNo") + @JsonProperty("vfTradeNo") private String vfTradeNo; /** * 有效时间:主扫二维码有效时间(可以不填,部分收单行不支持) */ @Length(max = 6) - @JSONField(name = "qrValidTime") + @JsonProperty("qrValidTime") private String qrValidTime; /** * 通知URL:主扫交易延时响应时的交易结果通知URL(可以不填) */ @Length(max = 256) - @JSONField(name = "retUrl") + @JsonProperty("retUrl") private String retUrl; /** @@ -140,83 +140,83 @@ public class BpcTransactionRequestDto { * 回调地址不支持换行符等不可见字符以及特殊字符(可以不填,部分收单行不支持)微信需要对接微信点金计划,详情请参考微信相关文档 */ @Length(max = 128) - @JSONField(name = "callBackUrl") + @JsonProperty("callBackUrl") private String callBackUrl; /** * 商户应用ID:当tranType为F时,payType 值为ZFBA或WEIX时需填写 */ @Length(max = 32) - @JSONField(name = "subAppId") + @JsonProperty("subAppId") private String subAppId; /** * 商户用户openId:当tranType为F时,payType 值为ZFBA或WEIX时需填写。当上送wxApiType字段时,可以不用填写。 */ @Length(max = 64) - @JSONField(name = "subOpenId") + @JsonProperty("subOpenId") private String subOpenId; /** * 微信API类型:当业务场景为微信APP支付时,填写固定值APP,其余交易不送该字段 */ @Length(max = 10) - @JSONField(name = "wxApiType") + @JsonProperty("wxApiType") private String wxApiType; /** * 收款方备注 */ @Length(max = 64) - @JSONField(name = "txtRemarks") + @JsonProperty("txtRemarks") private String txtRemarks; /** * 实名标志:(枚举RealNameAuthFlag) */ @Length(max = 1) - @JSONField(name = "realNameAuth") + @JsonProperty("realNameAuth") private String realNameAuth; /** * 付款人姓名:当realNameAuth为1时必填 */ @Length(max = 64) - @JSONField(name = "payerName") + @JsonProperty("payerName") private String payerName; /** * 付款人身份证件类型:当realNameAuth为1时必填 */ @Length(max = 2) - @JSONField(name = "payerIDType") + @JsonProperty("payerIDType") private String payerIdType; /** * 付款人身份证件号码:当realNameAuth为1时必填 */ @Length(max = 20) - @JSONField(name = "payerID") + @JsonProperty("payerID") private String payerId; /** * 发起方IP地址:支持IPv6格式 */ @Length(max = 40) - @JSONField(name = "IP") + @JsonProperty("IP") private String ip; /** * 终端类型:(枚举DeviceType) */ @Length(max = 2) - @JSONField(name = "deviceType") + @JsonProperty("deviceType") private String deviceType; /** * 银行卡号 */ - @JSONField(name = "pan") + @JsonProperty("pan") private String pan; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcTransactionResponseDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcTransactionResponseDto.java index f60e958a5..771ca9971 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcTransactionResponseDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/externalintegration/dto/BpcTransactionResponseDto.java @@ -1,6 +1,6 @@ package com.healthlink.his.web.externalintegration.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -17,140 +17,140 @@ public class BpcTransactionResponseDto { * 响应码:(枚举RespCode)00 表示成功,其它表示失败 */ @Length(max = 2) - @JSONField(name = "respCode") + @JsonProperty("respCode") private String respCode; /** * 响应码解释信息(需要Base64解密) */ @Length(max = 64) - @JSONField(name = "respMsg") + @JsonProperty("respMsg") private String respMsg; /** * 交易类型:(枚举TranType) */ @Length(max = 1) - @JSONField(name = "tranType") + @JsonProperty("tranType") private String tranType; /** * 交易金额:以分为单位的交易金额(订单总金额,同请求金额一致) */ @Length(max = 12) - @JSONField(name = "txnAmt") + @JsonProperty("txnAmt") private String txnAmt; /** * 支付方式:(枚举PayType) */ @Length(max = 4) - @JSONField(name = "payType") + @JsonProperty("payType") private String payType; /** * 终端流水号:终端号系统跟踪号,同请求报文原值返回,客户端收到应答报文需要验证traceNo字段值,需与请求报文值一致,如果不一致则丢包交易失败 */ @Length(max = 6) - @JSONField(name = "traceNo") + @JsonProperty("traceNo") private String traceNo; /** * 交易时间:(yyyyMMddHHmmss) */ @Length(max = 14) - @JSONField(name = "txnTime") + @JsonProperty("txnTime") private String txnTime; /** * 支付订单号:银行返回系统订单号,需要保存该支付交易订单号 */ @Length(max = 64) - @JSONField(name = "tradeNo") + @JsonProperty("tradeNo") private String tradeNo; /** * 第三方支付订单号 */ @Length(max = 64) - @JSONField(name = "transNo") + @JsonProperty("transNo") private String transNo; /** * 商户号 */ @Length(max = 15) - @JSONField(name = "mid") + @JsonProperty("mid") private String mid; /** * 商户名称 */ @Length(max = 64) - @JSONField(name = "merName") + @JsonProperty("merName") private String merName; /** * 终端号 */ @Length(max = 8) - @JSONField(name = "tid") + @JsonProperty("tid") private String tid; /** * 商户系统订单号:同请求一致 */ @Length(max = 64) - @JSONField(name = "merTradeNo") + @JsonProperty("merTradeNo") private String merTradeNo; /** * 商户系统退款授权单号:同请求一致 */ @Length(max = 64) - @JSONField(name = "vfTradeNo") + @JsonProperty("vfTradeNo") private String vfTradeNo; /** * 优惠金额 */ @Length(max = 12) - @JSONField(name = "discountAmt") + @JsonProperty("discountAmt") private String discountAmt; /** * 有效时间:二维码本身的有效时间,是相对时间,单位为秒,以接收方收到报文时间为起始点计时。不同类型的订单以及不同的订单状况会对应不同的默认有效时间和最大有效时间(可以为空) */ @Length(max = 8) - @JSONField(name = "qrValidTime") + @JsonProperty("qrValidTime") private String qrValidTime; /** * 二维码信息:主扫支付二维码,以二维码形式显示,手机APP扫二维码码消费 */ @Length(max = 128) - @JSONField(name = "scanCode") + @JsonProperty("scanCode") private String scanCode; /** * 原交易类型:1、订单查询类交易填写原交易类型(被扫交易必填)2、非订单查询填写交易类型与tranType一致(可以为空) */ @Length(max = 1) - @JSONField(name = "orgTranType") + @JsonProperty("orgTranType") private String orgTranType; /** * 原交易名称:订单查询类交易填写原交易名称,非订单查询填写交易名称(被扫交易必填) */ @Length(max = 30) - @JSONField(name = "orgTxnName") + @JsonProperty("orgTxnName") private String orgTxnName; /** * 订单数据:当tranType为F时,payType 值为ZFBA或WEIX时支付宝返回的tradeNo 或者微信返回的prepayId */ @Length(max = 64) - @JSONField(name = "payData") + @JsonProperty("payData") private String payData; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inpatientmanage/appservice/impl/NursingRecordAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inpatientmanage/appservice/impl/NursingRecordAppServiceImpl.java index a6f80a1f1..0b6ad0c76 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inpatientmanage/appservice/impl/NursingRecordAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inpatientmanage/appservice/impl/NursingRecordAppServiceImpl.java @@ -1,6 +1,8 @@ package com.healthlink.his.web.inpatientmanage.appservice.impl; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -240,7 +242,7 @@ public class NursingRecordAppServiceImpl implements INursingRecordAppService { Practitioner practitioner = practitionerService.getById(recorderId); // 体征转换 NursingVitalSignsDto nursingVitalSigns = - JSONObject.parseObject(nursingRecordDto.getContextJson(), NursingVitalSignsDto.class); + JsonUtils.parseObject(nursingRecordDto.getContextJson(), NursingVitalSignsDto.class); // 体温 String tw = nursingVitalSigns.getTw(); // 脉搏 diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inventorymanage/appservice/impl/ReceiptApprovalAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inventorymanage/appservice/impl/ReceiptApprovalAppServiceImpl.java index f04c8d6e2..c8a6a4739 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inventorymanage/appservice/impl/ReceiptApprovalAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inventorymanage/appservice/impl/ReceiptApprovalAppServiceImpl.java @@ -3,7 +3,9 @@ */ package com.healthlink.his.web.inventorymanage.appservice.impl; -import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -364,7 +366,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService } // 调用医保商品采购接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, now, false); @@ -452,7 +454,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService // 处理盘点追溯码 traceNoAppService.updateTraceNoList(supplyItemDetailList, SupplyType.PRODUCT_STOCKTAKING.getValue()); // 医保开关 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedGainList = null; List uploadFailedLossList = null; @@ -675,7 +677,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService traceNoAppService.addTraceNoManage(supplyItemDetailList, TraceNoStatus.OUT.getValue(), SupplyType.PRODUCT_RETURN.getValue()); // 调用医保采购退货接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, now, false); @@ -767,7 +769,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService SupplyType.LOSS_REPORT_FORM.getValue()); // 调用医保库存变更接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.DESTRUCTION, now, false); @@ -864,7 +866,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService // 返回信息 String returnMsg = null; // 调用医保库存变更接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.OTHER_OUT, now, false); @@ -960,7 +962,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService // 返回信息 String returnMsg = null; // 调用医保库存变更接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.OTHER_IN, now, false); @@ -1171,7 +1173,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService } } - JSONArray medicalTraceNo = new JSONArray(); + ArrayNode medicalTraceNo = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); List inventoryTraceNoList = null; if (!YbInvChgType.DESTRUCTION.getValue().equals(ybInvChgType) || !YbInvChgType.INVENTORY_LOSS.getValue().equals(ybInvChgType)) { @@ -1182,7 +1184,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService // 转换成上传医保的格式 if (inventoryTraceNoList != null) { for (String traceNo : inventoryTraceNoList) { - Map traceNoMap = new HashMap<>(); + ObjectNode traceNoMap = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); traceNoMap.put("drug_trac_codg", traceNo); medicalTraceNo.add(traceNoMap); } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inventorymanage/dto/PurchaseReturnPageDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inventorymanage/dto/PurchaseReturnPageDto.java index ecbe6baf3..188232643 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inventorymanage/dto/PurchaseReturnPageDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inventorymanage/dto/PurchaseReturnPageDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.inventorymanage.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -61,12 +61,12 @@ public class PurchaseReturnPageDto { /** 期望日期(制单日期) */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name="occurrence_time") + @JsonProperty("occurrence_time") private Date occurrenceTime; /** 审批时间 */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name="approval_time") + @JsonProperty("approval_time") private Date approvalTime; /** 供应商 */ diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/materialmanage/appservice/impl/MaterialReceiptApprovalServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/materialmanage/appservice/impl/MaterialReceiptApprovalServiceImpl.java index fdf279207..dfeb3b238 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/materialmanage/appservice/impl/MaterialReceiptApprovalServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/materialmanage/appservice/impl/MaterialReceiptApprovalServiceImpl.java @@ -1,6 +1,8 @@ package com.healthlink.his.web.materialmanage.appservice.impl; -import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.core.common.core.domain.R; import com.core.common.exception.ServiceException; @@ -199,7 +201,7 @@ public class MaterialReceiptApprovalServiceImpl implements IMaterialReceiptAppro SupplyType.MATERIAL_STOCKIN.getValue()); // 调用医保商品采购接口 todo 相关医保接口未对应 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, false, true, false, now); @@ -302,7 +304,7 @@ public class MaterialReceiptApprovalServiceImpl implements IMaterialReceiptAppro SupplyType.MATERIAL_RETURN.getValue()); // 调用医保采购退货接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, false, false, true, now); @@ -530,7 +532,7 @@ public class MaterialReceiptApprovalServiceImpl implements IMaterialReceiptAppro } // 调用医保库存变更接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.DESTRUCTION, false, false, false, now); @@ -625,7 +627,7 @@ public class MaterialReceiptApprovalServiceImpl implements IMaterialReceiptAppro } String ybSwitch = - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { // 如果首次盘点信息不为空 if (!firstSupplyItemDetailList.isEmpty()) { @@ -1060,14 +1062,14 @@ public class MaterialReceiptApprovalServiceImpl implements IMaterialReceiptAppro } } // 转换为JSON - JSONArray medicalTraceNo = new JSONArray(); + ArrayNode medicalTraceNo = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); // 获取追溯码信息 if (supplyItemDetailDto.getTraceNo() != null) { List traceNoList = Arrays.stream(supplyItemDetailDto.getTraceNo().split(CommonConstants.Common.COMMA)) .map(String::trim).filter(s -> !s.isEmpty()).collect(Collectors.toList()); for (String traceNo : traceNoList) { - Map traceNoMap = new HashMap<>(); + ObjectNode traceNoMap = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); traceNoMap.put("drug_trac_codg", traceNo); medicalTraceNo.add(traceNoMap); } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nenu/appservice/impl/GfStudentListAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nenu/appservice/impl/GfStudentListAppServiceImpl.java index d9d254678..589eadc14 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nenu/appservice/impl/GfStudentListAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nenu/appservice/impl/GfStudentListAppServiceImpl.java @@ -3,7 +3,8 @@ package com.healthlink.his.web.nenu.appservice.impl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -582,7 +583,7 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService { // 发送请求 try { HttpPost httpPost = new HttpPost(TenantOptionUtil.getOptionContent(TenantOptionDict.PEIS_SERVER_URL) + "/wx/auth/syncHisInfo"); - StringEntity stringEntity = new StringEntity(JSON.toJSONString(peisStudentPatientDto), ContentType.APPLICATION_JSON); + StringEntity stringEntity = new StringEntity(JsonUtils.toJson(peisStudentPatientDto), ContentType.APPLICATION_JSON); httpPost.setEntity(stringEntity); // 执行http请求 response = httpClient.execute(httpPost); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/EleInvoiceServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/EleInvoiceServiceImpl.java index a96c3cba8..5e7c2c713 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/EleInvoiceServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/EleInvoiceServiceImpl.java @@ -1,11 +1,12 @@ /* - * Copyright ©2023 CJB-CNIT Team. All rights reserved + * Copyright ©2023 CJB-CNIT Team. All rights reserved */ package com.healthlink.his.web.paymentmanage.appservice.impl; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.databind.node.ArrayNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.core.common.core.domain.R; import com.core.common.core.domain.model.LoginUser; @@ -75,7 +76,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; /** - * 电子发票接口Service + * 电子发票接口Service * * @author yuxj * @date 2025-04-22 @@ -119,45 +120,45 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { Velocity.init(p); } - private static final Map invoiceDataMap = new ConcurrentHashMap<>(); + private static final Map invoiceDataMap = new ConcurrentHashMap<>(); - private JSONObject internalRegistration(JSONObject bill) { + private JsonNode internalRegistration(JsonNode bill) { return createInternalSuccessResponse(bill, "REG"); } - private JSONObject internalOutpatient(JSONObject bill) { + private JsonNode internalOutpatient(JsonNode bill) { return createInternalSuccessResponse(bill, "OUT"); } - private JSONObject internalHospitalized(JSONObject bill) { + private JsonNode internalHospitalized(JsonNode bill) { return createInternalSuccessResponse(bill, "HOS"); } - private JSONObject internalWriteOff(JSONObject bill) { - JSONObject message = new JSONObject(); + private JsonNode internalWriteOff(JsonNode bill) { + ObjectNode message = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); message.put("eScarletBillBatchCode", "SC" + System.currentTimeMillis()); message.put("eScarletBillNo", UUID.randomUUID().toString().substring(0, 8)); message.put("eScarletRandom", "666888"); message.put("createTime", "20251101143028"); message.put("billQRCode", "QR_DATA_SCARLET"); - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); - String baseUrl = optionJson.getString(CommonConstants.Option.URL); + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); + String baseUrl = optionJson.path(CommonConstants.Option.URL).asText(); message.put("pictureUrl", baseUrl + "/invoice/view?busNo=scarlet"); message.put("pictureNetUrl", baseUrl + "/invoice/view?busNo=scarlet"); - JSONObject result = new JSONObject(); + ObjectNode result = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); result.put("result", "S0000"); - result.put("message", Base64.getEncoder().encodeToString(message.toJSONString().getBytes(StandardCharsets.UTF_8))); + result.put("message", Base64.getEncoder().encodeToString(message.toString().getBytes(StandardCharsets.UTF_8))); return result; } - private JSONObject createInternalSuccessResponse(JSONObject bill, String prefix) { - String busNo = bill.getString("busNo"); - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); - String baseUrl = optionJson.getString(CommonConstants.Option.URL); + private JsonNode createInternalSuccessResponse(JsonNode bill, String prefix) { + String busNo = bill.path("busNo").asText(); + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); + String baseUrl = optionJson.path(CommonConstants.Option.URL).asText(); - JSONObject message = new JSONObject(); + ObjectNode message = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); message.put("billBatchCode", prefix + "BC" + System.currentTimeMillis()); message.put("billNo", UUID.randomUUID().toString().substring(0, 8)); message.put("random", "123456"); @@ -166,14 +167,14 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { message.put("pictureUrl", baseUrl + "/invoice/view?busNo=" + busNo); message.put("pictureNetUrl", baseUrl + "/invoice/view?busNo=" + busNo); - JSONObject result = new JSONObject(); + ObjectNode result = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); result.put("result", "S0000"); - result.put("message", Base64.getEncoder().encodeToString(message.toJSONString().getBytes(StandardCharsets.UTF_8))); + result.put("message", Base64.getEncoder().encodeToString(message.toString().getBytes(StandardCharsets.UTF_8))); return result; } - private JSONObject createInternalErrorResponse(String msg) { - JSONObject result = new JSONObject(); + private JsonNode createInternalErrorResponse(String msg) { + ObjectNode result = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); result.put("result", "E0001"); result.put("message", Base64.getEncoder().encodeToString(msg.getBytes(StandardCharsets.UTF_8))); return result; @@ -181,42 +182,42 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { @Override public String getInvoiceHtml(String busNo) { - JSONObject bill = invoiceDataMap.get(busNo); + JsonNode bill = invoiceDataMap.get(busNo); if (bill == null) { - return "

未找到流水号为 " + busNo + " 的发票数据

"; + return "

未找到流水号为 " + busNo + " 的发票数据

"; } - JSONObject receiptData = bill.getJSONObject("receiptData"); + JsonNode receiptData = bill.path("receiptData"); VelocityContext context = new VelocityContext(); - context.put("hospitalName", receiptData != null ? receiptData.getString("fixmedinsName") : "HIS 医疗机构"); - context.put("patientName", bill.getString("payer")); - context.put("outpatientNo", receiptData != null ? receiptData.getString("regNo") : bill.getString("busNo")); - context.put("idCard", bill.getString("cardNo")); - context.put("tel", bill.getString("tel")); - context.put("deptName", bill.getString("patientCategory")); - context.put("doctorName", receiptData != null ? receiptData.getString("doctor") : "-"); - context.put("appointmentTime", bill.getString("consultationDate")); - context.put("totalAmt", bill.getString("totalAmt")); + context.put("hospitalName", receiptData != null ? receiptData.path("fixmedinsName").asText() : "HIS 医疗机构"); + context.put("patientName", bill.path("payer").asText()); + context.put("outpatientNo", receiptData != null ? receiptData.path("regNo").asText() : bill.path("busNo").asText()); + context.put("idCard", bill.path("cardNo").asText()); + context.put("tel", bill.path("tel").asText()); + context.put("deptName", bill.path("patientCategory").asText()); + context.put("doctorName", receiptData != null ? receiptData.path("doctor").asText() : "-"); + context.put("appointmentTime", bill.path("consultationDate").asText()); + context.put("totalAmt", bill.path("totalAmt").asText()); context.put("busNo", busNo); context.put("printTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); List> items = new ArrayList<>(); - if (receiptData != null && receiptData.containsKey("chargeItem")) { - com.alibaba.fastjson2.JSONArray chargeItems = receiptData.getJSONArray("chargeItem"); + if (receiptData != null && receiptData.has("chargeItem")) { + JsonNode chargeItems = receiptData.path("chargeItem"); for (int i = 0; i < chargeItems.size(); i++) { - JSONObject item = chargeItems.getJSONObject(i); + JsonNode item = chargeItems.path(i); Map itemMap = new HashMap<>(); - itemMap.put("chargeItemName", item.getString("chargeItemName")); - itemMap.put("quantityValue", item.getString("quantityValue")); - itemMap.put("totalPrice", item.getString("totalPrice")); + itemMap.put("chargeItemName", item.path("chargeItemName").asText()); + itemMap.put("quantityValue", item.path("quantityValue").asText()); + itemMap.put("totalPrice", item.path("totalPrice").asText()); items.add(itemMap); } } else { Map itemMap = new HashMap<>(); - itemMap.put("chargeItemName", "挂号费"); + itemMap.put("chargeItemName", "挂号费"); itemMap.put("quantityValue", "1"); - itemMap.put("totalPrice", bill.getString("totalAmt")); + itemMap.put("totalPrice", bill.path("totalAmt").asText()); items.add(itemMap); } context.put("items", items); @@ -227,31 +228,31 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { template.merge(context, writer); return writer.toString(); } catch (Exception e) { - logger.error("渲染发票模板失败", e); - return "

渲染发票凭条失败:" + e.getMessage() + "

"; + logger.error("渲染发票模板失败", e); + return "

渲染发票凭条失败:" + e.getMessage() + "

"; } } - public JSONObject PreInvoicePostForward(JSONObject bill, String endpoint) { - // 参考补打小票逻辑,动态获取小票详细信息 - Long paymentId = bill.getLong("paymentId"); + public JsonNode PreInvoicePostForward(ObjectNode bill, String endpoint) { + // 参考补打小票逻辑,动态获取小票详细信息 + Long paymentId = bill.path("paymentId").asLong(); if (paymentId != null) { try { Map receiptDetail = chargeBillService.getDetail(paymentId); - bill.put("receiptData", receiptDetail); - logger.info("已成功获取并注入小票动态数据,paymentId: {}", paymentId); + bill.set("receiptData", new com.fasterxml.jackson.databind.ObjectMapper().valueToTree(receiptDetail)); + logger.info("已成功获取并注入小票动态数据,paymentId: {}", paymentId); } catch (Exception e) { - logger.error("获取小票数据失败,paymentId: {}", paymentId, e); + logger.error("获取小票数据失败,paymentId: {}", paymentId, e); } } - // 内部调用逻辑:不再使用 Http 客户端,直接分发到本地逻辑 - String busNo = bill.getString("busNo"); + // 内部调用逻辑:不再使用 Http 客户端,直接分发到本地逻辑 + String busNo = bill.path("busNo").asText(); if (busNo != null) { invoiceDataMap.put(busNo, bill); } - JSONObject internalResult; + JsonNode internalResult; if (endpoint.contains("invEBillRegistration")) { internalResult = internalRegistration(bill); } else if (endpoint.contains("invoiceEBillOutpatient")) { @@ -261,56 +262,56 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } else if (endpoint.contains("writeOffEBill")) { internalResult = internalWriteOff(bill); } else { - internalResult = createInternalErrorResponse("未知接口: " + endpoint); + internalResult = createInternalErrorResponse("未知接口: " + endpoint); } - JSONObject finalResponse = new JSONObject(); + ObjectNode finalResponse = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); finalResponse.put("success", true); - finalResponse.put("result", internalResult); + finalResponse.set("result", internalResult); return finalResponse; } /** - * 发送请求 (内部调用版本) + * 发送请求 (内部调用版本) * - * @param bill 请求参数 - * @param endpoint 请求后缀url - * @return 返回值 + * @param bill 请求参数 + * @param endpoint 请求后缀url + * @return 返回值 */ - public JSONObject PreInvoicePost(JSONObject bill, String endpoint) { + public JsonNode PreInvoicePost(ObjectNode bill, String endpoint) { return PreInvoicePostForward(bill, endpoint); } /** - * 电子票据补开接口 + * 电子票据补开接口 * - * @param paymentId 支付ID - * @param encounterId 就诊ID + * @param paymentId 支付ID + * @param encounterId 就诊ID * @return */ public R invoiceReissue(Long paymentId, Long encounterId) { - // 获取付款信息 + // 获取付款信息 PaymentReconciliation paymentReconciliation = paymentReconciliationService.getById(paymentId); - List idList = Arrays.stream(paymentReconciliation.getChargeItemIds().split(",")).map(String::trim) // 去除可能的空格 - .map(Long::parseLong) // 转换为 Long + List idList = Arrays.stream(paymentReconciliation.getChargeItemIds().split(",")).map(String::trim) // 去除可能的空格 + .map(Long::parseLong) // 转换为 Long .collect(Collectors.toList()); - // 获取费用项信息 + // 获取费用项信息 List chargeItem = chargeItemService.getChargeItemInfo(idList); for (ChargeItem item : chargeItem) { - // 号源表 + // 号源表 if (Objects.equals(item.getServiceTable(), CommonConstants.TableName.ADM_HEALTHCARE_SERVICE)) { - // 挂号发票 + // 挂号发票 return R.ok(YbEncounterClass.REG.getValue()); } } - // 获取就诊信息 + // 获取就诊信息 Encounter encounter = encounterService.getById(encounterId); if (Objects.equals(encounter.getClassEnum(), EncounterClass.AMB.getValue())) { - // 门诊发票 + // 门诊发票 return R.ok(YbEncounterClass.AMB.getValue()); } else if (Objects.equals(encounter.getClassEnum(), EncounterClass.IMP.getValue())) { - // 住院发票 + // 住院发票 return R.ok(YbEncounterClass.IMP.getValue()); } @@ -318,48 +319,48 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } /** - * 医疗挂号电子票据开具接口 + * 医疗挂号电子票据开具接口 * - * @param paymentId 支付ID - * @param encounterId 就诊ID - * @return 返回值 + * @param paymentId 支付ID + * @param encounterId 就诊ID + * @return 返回值 */ public R invoiceRegMake(Long paymentId, Long encounterId) { - // 获取当前登陆用户信息 + // 获取当前登陆用户信息 LoginUser loginUser = SecurityUtils.getLoginUser(); Practitioner user = practitionerService.getPractitionerByUserId(loginUser.getUserId()); - // 定义输入格式(带时区) + // 定义输入格式(带时区) SimpleDateFormat inputFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); DecimalFormat df = new DecimalFormat(); df.setMaximumIntegerDigits(16); - df.setMinimumIntegerDigits(1); // 至少显示1位整数 - df.setMaximumFractionDigits(6); // 最多显示6位小数 - df.setGroupingUsed(false); // 不使用千位分隔符 + df.setMinimumIntegerDigits(1); // 至少显示1位整数 + df.setMaximumFractionDigits(6); // 最多显示6位小数 + df.setGroupingUsed(false); // 不使用千位分隔符 try { - // 关键校验:检查必填参数encounterId是否存在,缺失则直接返回错误 + // 关键校验:检查必填参数encounterId是否存在,缺失则直接返回错误 if (encounterId == null || encounterId == 0) { return R.fail(PromptMsgConstant.Common.M00013); } - // 获取患者信息 + // 获取患者信息 EleInvoicePatientInfoDto patientInfo = eleInvoiceMapper.getPatientInfo(encounterId, EncounterClass.AMB.getValue(), OrganizationClass.CLINIC.getValue()); - //12.4 红旗医院现场字典没赋值 + //12.4 红旗医院现场字典没赋值 if (patientInfo.getGenderEnum_enumText() == null) { patientInfo.setGenderEnum_enumText(patientInfo.getGenderEnumEnumText()); } - // 获取付款信息 + // 获取付款信息 EleInvoicePaymentInfoDto paymentInfo = eleInvoiceMapper.getPaymentInfo(paymentId, encounterId, YbPayment.SELF_YB_ZH_PAY.getValue(), YbPayment.SELF_CASH_VALUE.getValue(), YbPayment.SELF_CASH_VX_VALUE.getValue(), YbPayment.SELF_CASH_ALI_VALUE.getValue(), YbPayment.SELF_CASH_UNION_VALUE.getValue(), YbPayment.YB_FUND_PAY.getValue(), YbPayment.OTHER_PAY.getValue(), YbPayment.SELF_YB_ZH_GJ_VALUE.getValue()); - // 医保结算记录 + // 医保结算记录 InvoiceBaseInfoDto clinicSettle = this.getClinicSettleByPaymentId(paymentInfo.getPaymentId()); - // 业务状态校验 + // 业务状态校验 if (paymentInfo.getPaymentStatus() == null || paymentInfo.getPaymentStatus().equals(PaymentStatus.DRAFT.getValue())) { return R.fail(PromptMsgConstant.invoice.M00002); @@ -372,165 +373,165 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { return R.fail(PromptMsgConstant.invoice.M00003); } - // --------------------请求业务参数 data--------------------START - JSONObject bill = commomSet(patientInfo, paymentInfo, clinicSettle); + // --------------------请求业务参数 data--------------------START + ObjectNode bill = (ObjectNode) commomSet(patientInfo, paymentInfo, clinicSettle); bill.put("paymentId", paymentId); - // ------票据信息------ - // busType 业务标识 String 20 是 06,标识挂号 + // ------票据信息------ + // busType 业务标识 String 20 是 06,标识挂号 bill.put("busType", "06"); - // checker 票据复核人 String 100 是 + // checker 票据复核人 String 100 是 bill.put("checker", user.getName()); - // ------就诊信息------ - // patientCategory 就诊科室名称 String 50 是 + // ------就诊信息------ + // patientCategory 就诊科室名称 String 50 是 bill.put("patientCategory", patientInfo.getPatientCategory()); - // patientCategoryCode 就诊科室编码 String 50 是 + // patientCategoryCode 就诊科室编码 String 50 是 bill.put("patientCategoryCode", patientInfo.getPatientCategoryCode()); - // ------费用------ - // 个人现金支付 + // ------费用------ + // 个人现金支付 clinicSettle.setPsnCashPay(clinicSettle.getPsnCashPay() == null ? ZERO : clinicSettle.getPsnCashPay()); - // otherInfo 其它扩展信息列表 JSONArray 不限 是 - JSONArray otherInfos = new JSONArray(); - // 公务员医疗补助资金支出:1.00;企业补充医疗保险基金支出:1.00;居民大病保险资金支出:1.00;职工大额医疗费用补助基金支出:1.00;医疗救助基金支出:1.00;医院负担金额:1.00;其他支出:1.00 - JSONObject otherInfo = new JSONObject(); + // otherInfo 其它扩展信息列表 JsonNode 不限 是 + ArrayNode otherInfos = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); + // 公务员医疗补助资金支出:1.00;企业补充医疗保险基金支出:1.00;居民大病保险资金支出:1.00;职工大额医疗费用补助基金支出:1.00;医疗救助基金支出:1.00;医院负担金额:1.00;其他支出:1.00 + ObjectNode otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "1"); - otherInfo.put("infoName", "公务员医疗补助资金支出"); + otherInfo.put("infoName", "公务员医疗补助资金支出"); otherInfo.put("infoValue", clinicSettle.getHifesPay() == null ? ZERO : clinicSettle.getHifesPay()); otherInfos.add(otherInfo); - bill.put("otherInfo", otherInfos); + bill.set("otherInfo", otherInfos); - // ------项目------ - // chargeDetail 收费项目明细 JSONArray 不限 是 - // 获取收费项目明细 - // 医疗收费项目类别 13:挂号费 + // ------项目------ + // chargeDetail 收费项目明细 JsonNode 不限 是 + // 获取收费项目明细 + // 医疗收费项目类别 13:挂号费 List ybTypeList = new ArrayList<>(Arrays.asList("13", "02")); - // 付款账单集合 + // 付款账单集合 List chargeItemIds = new ArrayList<>(); String[] parts = paymentInfo.getChargeItemIds().split(","); for (String part : parts) { - chargeItemIds.add(Long.parseLong(part.trim())); // trim() 去除空格 - } // todo 若挂号绑诊察的话,方法需要改 + chargeItemIds.add(Long.parseLong(part.trim())); // trim() 去除空格 + } // todo 若挂号绑诊察的话,方法需要改 List chargeItems = eleInvoiceMapper.getChargeDetail(encounterId, ybTypeList, "med_chrgitm_type", ContrastTypeEnum.INVOICE_CLINIC.getValue(), chargeItemIds); - JSONArray chargeDetails = new JSONArray(); + ArrayNode chargeDetails = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); Integer sortNo = 1; for (EleInvoiceChargeDetailDto detail : chargeItems) { - JSONObject chargeDetail = new JSONObject(); - // sortNo 序号 Integer 不限 是 + ObjectNode chargeDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + // sortNo 序号 Integer 不限 是 chargeDetail.put("sortNo", sortNo); - // chargeCode 收费项目代码 String 50 是 + // chargeCode 收费项目代码 String 50 是 chargeDetail.put("chargeCode", detail.getChargeCode()); - // chargeName 收费项目名称 String 100 是 + // chargeName 收费项目名称 String 100 是 chargeDetail.put("chargeName", detail.getChargeName()); - // unit 计量单位 - chargeDetail.put("unit", "项"); - // std 收费标准 Number 14,2 是 + // unit 计量单位 + chargeDetail.put("unit", "项"); + // std 收费标准 Number 14,2 是 BigDecimal std = detail.getAmt().divide(new BigDecimal(detail.getNumber().toString()), 6, RoundingMode.HALF_UP); - // 精确表示,避免科学计数法 + // 精确表示,避免科学计数法 chargeDetail.put("std", df.format(std)); - // number 数量 Number 14,2 是 + // number 数量 Number 14,2 是 chargeDetail.put("number", detail.getNumber()); - // amt 金额 Number 14,2 是 + // amt 金额 Number 14,2 是 chargeDetail.put("amt", df.format(detail.getAmt())); - // selfAmt 自费金额 Number 14,2 是 + // selfAmt 自费金额 Number 14,2 是 chargeDetail.put("selfAmt", ZERO); sortNo++; chargeDetails.add(chargeDetail); } - bill.put("chargeDetail", chargeDetails); + bill.set("chargeDetail", chargeDetails); - // listDetail 清单项目明细 JSONArray 不限 是 - JSONArray listDetails = new JSONArray(); - // 获取清单项目明细 + // listDetail 清单项目明细 JsonNode 不限 是 + ArrayNode listDetails = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); + // 获取清单项目明细 List details = eleInvoiceMapper.getRegListDetail(encounterId, ybTypeList, "med_chrgitm_type", ContrastTypeEnum.INVOICE_CLINIC.getValue(), chargeItemIds); for (EleInvoiceListDetailDto detail : details) { - JSONObject listDetail = new JSONObject(); - // listDetailNo 明细流水号 String 60 否 + ObjectNode listDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + // listDetailNo 明细流水号 String 60 否 listDetail.put("listDetailNo", String.valueOf(detail.getListDetailNo())); - // chargeCode 收费项目代码 String 50 是 + // chargeCode 收费项目代码 String 50 是 if (detail.getChargeCode() == null) { - listDetail.put("chargeCode", "YLMZ11");// 挂号费 + listDetail.put("chargeCode", "YLMZ11");// 挂号费 } else { listDetail.put("chargeCode", detail.getChargeCode()); } - // chargeName 收费项目名称 String 100 是 + // chargeName 收费项目名称 String 100 是 listDetail.put("chargeName", detail.getChargeName()); - // code 药品编码 String 30 是 + // code 药品编码 String 30 是 listDetail.put("code", detail.getCode() == null ? detail.getYbCode() : detail.getCode()); - // name 药品名称 String 100 是 + // name 药品名称 String 100 是 listDetail.put("name", detail.getName()); - // unit 计量单位 String 20 是 - listDetail.put("unit", "次"); - // std 单价 Number 14,4 是 + // unit 计量单位 String 20 是 + listDetail.put("unit", "次"); + // std 单价 Number 14,4 是 listDetail.put("std", df.format(detail.getStd())); - // number 数量 Number 14,2 是 + // number 数量 Number 14,2 是 listDetail.put("number", detail.getNumber()); - // amt 金额 Number 14,4 是 + // amt 金额 Number 14,4 是 listDetail.put("amt", df.format(detail.getAmt())); - // selfAmt 自费金额 Number 14,4 是 + // selfAmt 自费金额 Number 14,4 是 listDetail.put("selfAmt", ZERO); - // remark 备注 1 甲类 2 乙类 3 自费 todo 暂时取不到 + // remark 备注 1 甲类 2 乙类 3 自费 todo 暂时取不到 // listDetail.put("remark", detail.getMedicalCareType()); listDetails.add(listDetail); } - bill.put("listDetail", listDetails); - // --------------------请求业务参数 data--------------------END + bill.set("listDetail", listDetails); + // --------------------请求业务参数 data--------------------END - // 初始化返回结果 - JSONObject redata = new JSONObject(); + // 初始化返回结果 + ObjectNode redata = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); String redata64; String srcdata; String srcmsg; - logger.info(JSON.toJSONString(bill)); - logger.info("************************************** 分 割 线 ***************************************"); - logger.info("挂号请求参数:" + JSON.toJSONString(bill)); - logger.info("———————————————————————————————————————————————————————————————————————————————————————"); - JSONObject resobj; - if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().getString("forwardSwitch"))) { + logger.info(JsonUtils.toJson(bill)); + logger.info("************************************** 分 割 线 ***************************************"); + logger.info("挂号请求参数:" + JsonUtils.toJson(bill)); + logger.info("———————————————————————————————————————————————————————————————————————————————————————"); + JsonNode resobj; + if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().path("forwardSwitch").asText())) { resobj = PreInvoicePostForward(bill, "api/medical/invEBillRegistration"); } else { resobj = PreInvoicePost(bill, "api/medical/invEBillRegistration"); } - if (resobj.getBooleanValue("success")) { - JSONObject rejson = resobj.getJSONObject("result"); + if (resobj.path("success").asBoolean()) { + JsonNode rejson = resobj.path("result"); - if (rejson.getString("result").equals("S0000")) { - // 返回结果内容 - redata64 = rejson.getString("message").toString(); + if (rejson.path("result").asText().equals("S0000")) { + // 返回结果内容 + redata64 = rejson.path("message").asText().toString(); srcdata = new String(Base64.getDecoder().decode(redata64), StandardCharsets.UTF_8); - redata = JSONObject.parseObject(srcdata); - logger.info("挂号信息:" + JSON.toJSONString(redata)); - // 获取发票管理表信息 + redata = (ObjectNode) JsonUtils.parse(srcdata); + logger.info("挂号信息:" + JsonUtils.toJson(redata)); + // 获取发票管理表信息 Invoice invoice = invoiceService.getById(paymentInfo.getInvoiceId()); - // 状态 + // 状态 invoice.setStatusEnum(InvoiceStatus.ISSUED); - // 开票员 + // 开票员 invoice.setInvoicingStaffId(user.getUserId()); - // 电子票据代码 - invoice.setBillBatchCode(redata.getString("billBatchCode")); - // 电子票据号码 - invoice.setBillNo(redata.getString("billNo")); - // 电子校验码 - invoice.setRandom(redata.getString("random")); - // 电子票据生成时间 - invoice.setBillCreateTime(redata.getString("createTime")); - // 电子票据二维码图片数据 - invoice.setBillQrCode(redata.getString("billQRCode")); - // 电子票据H5页面URL - invoice.setPictureUrl(redata.getString("pictureUrl")); - // 电子票据外网H5页面URL - invoice.setPictureNetUrl(redata.getString("pictureNetUrl")); - // 票据营业日期 - // 12.4红旗返回值没这个字段 - //invoice.setBillBusDate(inputFormat.parse(redata.getString("billBusDate"))); + // 电子票据代码 + invoice.setBillBatchCode(redata.path("billBatchCode").asText()); + // 电子票据号码 + invoice.setBillNo(redata.path("billNo").asText()); + // 电子校验码 + invoice.setRandom(redata.path("random").asText()); + // 电子票据生成时间 + invoice.setBillCreateTime(redata.path("createTime").asText()); + // 电子票据二维码图片数据 + invoice.setBillQrCode(redata.path("billQRCode").asText()); + // 电子票据H5页面URL + invoice.setPictureUrl(redata.path("pictureUrl").asText()); + // 电子票据外网H5页面URL + invoice.setPictureNetUrl(redata.path("pictureNetUrl").asText()); + // 票据营业日期 + // 12.4红旗返回值没这个字段 + //invoice.setBillBusDate(inputFormat.parse(redata.path("billBusDate").asText())); boolean flg = invoiceService.updateById(invoice); if (!flg) { @@ -538,15 +539,15 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } return R.ok(invoice, - MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"电子发票做成"})); + MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"电子发票做成"})); } else { - redata.put("result", rejson.getString("result")); - redata64 = rejson.getString("message").toString(); + redata.put("result", rejson.path("result").asText()); + redata64 = rejson.path("message").asText().toString(); srcmsg = new String(Base64.getDecoder().decode(redata64), StandardCharsets.UTF_8); return R.fail(srcmsg); } } else { - return R.fail(resobj.getString("msg")); + return R.fail(resobj.path("msg").asText()); } } catch (Exception ex) { try { @@ -558,50 +559,50 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } /** - * 医疗门诊电子票据开具接口 + * 医疗门诊电子票据开具接口 * - * @param paymentId 支付ID - * @param encounterId 就诊ID - * @return 返回值 + * @param paymentId 支付ID + * @param encounterId 就诊ID + * @return 返回值 */ public R invoiceMZMake(Long paymentId, Long encounterId) { - // 获取当前登陆用户信息 + // 获取当前登陆用户信息 LoginUser loginUser = SecurityUtils.getLoginUser(); Practitioner user = practitionerService.getPractitionerByUserId(loginUser.getUserId()); - // 定义输入格式(带时区) + // 定义输入格式(带时区) SimpleDateFormat inputFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); DecimalFormat df = new DecimalFormat(); df.setMaximumIntegerDigits(16); - df.setMinimumIntegerDigits(1); // 至少显示1位整数 - df.setMaximumFractionDigits(6); // 最多显示6位小数 - df.setGroupingUsed(false); // 不使用千位分隔符 + df.setMinimumIntegerDigits(1); // 至少显示1位整数 + df.setMaximumFractionDigits(6); // 最多显示6位小数 + df.setGroupingUsed(false); // 不使用千位分隔符 try { - // 关键校验:检查必填参数encounterId是否存在,缺失则直接返回错误 + // 关键校验:检查必填参数encounterId是否存在,缺失则直接返回错误 if (encounterId == null || encounterId == 0) { return R.fail(PromptMsgConstant.Common.M00013); } - // 获取患者信息 + // 获取患者信息 EleInvoicePatientInfoDto patientInfo = eleInvoiceMapper.getPatientInfo(encounterId, EncounterClass.AMB.getValue(), OrganizationClass.CLINIC.getValue()); - //12.4 红旗医院现场字典没赋值 + //12.4 红旗医院现场字典没赋值 if (patientInfo.getGenderEnum_enumText() == null) { patientInfo.setGenderEnum_enumText(patientInfo.getGenderEnumEnumText()); } - // 获取付款信息 + // 获取付款信息 EleInvoicePaymentInfoDto paymentInfo = eleInvoiceMapper.getPaymentInfo(paymentId, encounterId, YbPayment.SELF_YB_ZH_PAY.getValue(), YbPayment.SELF_CASH_VALUE.getValue(), YbPayment.SELF_CASH_VX_VALUE.getValue(), YbPayment.SELF_CASH_ALI_VALUE.getValue(), YbPayment.SELF_CASH_UNION_VALUE.getValue(), YbPayment.YB_FUND_PAY.getValue(), YbPayment.OTHER_PAY.getValue(), YbPayment.SELF_YB_ZH_GJ_VALUE.getValue()); - // 医保结算记录 + // 医保结算记录 InvoiceBaseInfoDto clinicSettle = this.getClinicSettleByPaymentId(paymentInfo.getPaymentId()); - // 业务状态校验 + // 业务状态校验 if (paymentInfo.getPaymentStatus() == null || paymentInfo.getPaymentStatus().equals(PaymentStatus.DRAFT.getValue())) { return R.fail(PromptMsgConstant.invoice.M00002); @@ -614,231 +615,231 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { return R.fail(PromptMsgConstant.invoice.M00003); } - // --------------------请求业务参数 data--------------------START - JSONObject bill = commomSet(patientInfo, paymentInfo, clinicSettle); + // --------------------请求业务参数 data--------------------START + ObjectNode bill = (ObjectNode) commomSet(patientInfo, paymentInfo, clinicSettle); bill.put("paymentId", paymentId); - // ------票据信息------ - // busType 业务标识 String 20 是 直接填写业务系统内部编码值,由医疗平台配置对照,例如:附录5 业务标识列表 - // 值:02,标识门诊 + // ------票据信息------ + // busType 业务标识 String 20 是 直接填写业务系统内部编码值,由医疗平台配置对照,例如:附录5 业务标识列表 + // 值:02,标识门诊 bill.put("busType", "02"); - // ------就诊信息------ - // patientCategory 就诊科室 String 60 是 + // ------就诊信息------ + // patientCategory 就诊科室 String 60 是 bill.put("patientCategory", patientInfo.getPatientCategory()); - // patientCategoryCode 就诊科室编码 String 60 是 + // patientCategoryCode 就诊科室编码 String 60 是 bill.put("patientCategoryCode", patientInfo.getPatientCategoryCode()); - // patientNo 患者就诊编号 String 30 是 患者每次就诊一次就生成的一个新的编号。(患者登记号) + // patientNo 患者就诊编号 String 30 是 患者每次就诊一次就生成的一个新的编号。(患者登记号) bill.put("patientNo", String.valueOf(encounterId)); - // caseNumber 病历号 String 50 是 + // caseNumber 病历号 String 50 是 bill.put("caseNumber", patientInfo.getCaseNumber()); - // ------费用------ - // 医保统筹基金支付 + // ------费用------ + // 医保统筹基金支付 clinicSettle.setHifpPay(clinicSettle.getHifpPay() == null ? ZERO : clinicSettle.getHifpPay()); - // 个人现金支付 + // 个人现金支付 clinicSettle.setPsnCashPay(clinicSettle.getPsnCashPay() == null ? ZERO : clinicSettle.getPsnCashPay()); - // 医保报销总金额 + // 医保报销总金额 clinicSettle .setFundPaySumamt(clinicSettle.getFundPaySumamt() == null ? ZERO : clinicSettle.getFundPaySumamt()); - // otherfundPay 其它医保支付 + // otherfundPay 其它医保支付 bill.put("otherfundPay", String.format("%.2f", clinicSettle.getFundPaySumamt().subtract(clinicSettle.getHifpPay()))); - // ownAcBalance 个人账户余额 Number 14,2 否 + // ownAcBalance 个人账户余额 Number 14,2 否 bill.put("ownAcBalance", clinicSettle.getBalc()); - // balancedNumber 医保结算号 String 100 否 HIS和医保实时结算时,医保生成的唯一业务流水号 + // balancedNumber 医保结算号 String 100 否 HIS和医保实时结算时,医保生成的唯一业务流水号 bill.put("balancedNumber", clinicSettle.getSetlId() == null ? "" : clinicSettle.getSetlId()); - // otherInfo 其它扩展信息列表 JSONArray 不限 是 填写信息需要在电子票据上单独显示的其它扩展信息(未知信息) - // 具体传值说明详见A-3,JSON格式列表 - JSONArray otherInfos = new JSONArray(); - // 公务员医疗补助资金支出:1.00;企业补充医疗保险基金支出:1.00;居民大病保险资金支出:1.00;职工大额医疗费用补助基金支出:1.00;医疗救助基金支出:1.00;医院负担金额:1.00;其他支出:1.00 - JSONObject otherInfo = new JSONObject(); + // otherInfo 其它扩展信息列表 JsonNode 不限 是 填写信息需要在电子票据上单独显示的其它扩展信息(未知信息) + // 具体传值说明详见A-3,JSON格式列表 + ArrayNode otherInfos = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); + // 公务员医疗补助资金支出:1.00;企业补充医疗保险基金支出:1.00;居民大病保险资金支出:1.00;职工大额医疗费用补助基金支出:1.00;医疗救助基金支出:1.00;医院负担金额:1.00;其他支出:1.00 + ObjectNode otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "1"); - otherInfo.put("infoName", "公务员医疗补助资金支出"); + otherInfo.put("infoName", "公务员医疗补助资金支出"); otherInfo.put("infoValue", clinicSettle.getCvlservPay() == null ? ZERO : clinicSettle.getCvlservPay()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "2"); - otherInfo.put("infoName", "企业补充医疗保险基金支出"); + otherInfo.put("infoName", "企业补充医疗保险基金支出"); otherInfo.put("infoValue", clinicSettle.getHifesPay() == null ? ZERO : clinicSettle.getHifesPay()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "3"); - otherInfo.put("infoName", "居民大病保险资金支出"); + otherInfo.put("infoName", "居民大病保险资金支出"); otherInfo.put("infoValue", clinicSettle.getHifmiPay() == null ? ZERO : clinicSettle.getHifmiPay()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "4"); - otherInfo.put("infoName", "职工大额医疗费用补助基金支出"); + otherInfo.put("infoName", "职工大额医疗费用补助基金支出"); otherInfo.put("infoValue", clinicSettle.getHifobPay() == null ? ZERO : clinicSettle.getHifobPay()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "5"); - otherInfo.put("infoName", "医疗救助基金支出"); + otherInfo.put("infoName", "医疗救助基金支出"); otherInfo.put("infoValue", clinicSettle.getMafPay() == null ? ZERO : clinicSettle.getMafPay()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "6"); - otherInfo.put("infoName", "医院负担金额"); + otherInfo.put("infoName", "医院负担金额"); otherInfo.put("infoValue", clinicSettle.getHospPartAmt() == null ? ZERO : clinicSettle.getHospPartAmt()); otherInfos.add(otherInfo); - // 师大公费医疗 + // 师大公费医疗 BigDecimal otherPay = clinicSettle.getOthPay() == null ? ZERO : clinicSettle.getOthPay(); BigDecimal gfRatio = clinicSettle.getGfRatio() == null ? ZERO : clinicSettle.getGfRatio(); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "1"); - otherInfo.put("infoName", "其他支出"); + otherInfo.put("infoName", "其他支出"); otherInfo.put("infoValue", otherPay.add(gfRatio)); otherInfos.add(otherInfo); - bill.put("otherInfo", otherInfos); + bill.set("otherInfo", otherInfos); - // 师大remark记录 + // 师大remark记录 if (gfRatio.compareTo(BigDecimal.ZERO) > 0) { - bill.put("remark", "学校垫支金额:" + gfRatio); + bill.put("remark", "学校垫支金额:" + gfRatio); } - // ------项目------ - // 医疗收费项目类别 - // 01 床位费,02 诊察费,03 检查费,04 化验费,05 治疗费,06 手术费,07 护理费,08 卫生材料费,09 西药费,10 中药饮片费,11 中成药费,12 一般诊疗费,13 挂号费,14 其他费 + // ------项目------ + // 医疗收费项目类别 + // 01 床位费,02 诊察费,03 检查费,04 化验费,05 治疗费,06 手术费,07 护理费,08 卫生材料费,09 西药费,10 中药饮片费,11 中成药费,12 一般诊疗费,13 挂号费,14 å…¶ä»–è´¹ List ybTypeList = new ArrayList<>( Arrays.asList("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "14")); - // 付款账单集合 + // 付款账单集合 List chargeItemIds = new ArrayList<>(); String[] parts = paymentInfo.getChargeItemIds().split(","); for (String part : parts) { - chargeItemIds.add(Long.parseLong(part.trim())); // trim() 去除空格 + chargeItemIds.add(Long.parseLong(part.trim())); // trim() 去除空格 } - // 获取收费项目明细 + // 获取收费项目明细 List chargeItems = eleInvoiceMapper.getChargeDetail(encounterId, ybTypeList, "med_chrgitm_type", ContrastTypeEnum.INVOICE_CLINIC.getValue(), chargeItemIds); - // chargeDetail 收费项目明细 JSONArray 不限 是 详见A-1,JSON格式列表 - JSONArray chargeDetails = new JSONArray(); + // chargeDetail 收费项目明细 JsonNode 不限 是 详见A-1,JSON格式列表 + ArrayNode chargeDetails = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); Integer sortNo = 1; for (EleInvoiceChargeDetailDto detail : chargeItems) { - JSONObject chargeDetail = new JSONObject(); - // sortNo 序号 Integer 不限 是 + ObjectNode chargeDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + // sortNo 序号 Integer 不限 是 chargeDetail.put("sortNo", sortNo); - // chargeCode 收费项目代码 String 50 是 + // chargeCode 收费项目代码 String 50 是 chargeDetail.put("chargeCode", detail.getChargeCode()); - // chargeName 收费项目名称 String 100 是 + // chargeName 收费项目名称 String 100 是 chargeDetail.put("chargeName", detail.getChargeName()); - // unit 计量单位 - chargeDetail.put("unit", "项"); - // std 收费标准 Number 14,2 是 + // unit 计量单位 + chargeDetail.put("unit", "项"); + // std 收费标准 Number 14,2 是 BigDecimal std = detail.getAmt().divide(new BigDecimal(detail.getNumber().toString()), 6, RoundingMode.HALF_UP); chargeDetail.put("std", df.format(std)); - // number 数量 Number 14,2 是 + // number 数量 Number 14,2 是 chargeDetail.put("number", detail.getNumber()); - // amt 金额 Number 14,2 是 + // amt 金额 Number 14,2 是 chargeDetail.put("amt", df.format(detail.getAmt())); - // // selfAmt 自费金额 Number 14,2 是 + // // selfAmt 自费金额 Number 14,2 是 chargeDetail.put("selfAmt", ZERO); sortNo++; chargeDetails.add(chargeDetail); } - bill.put("chargeDetail", chargeDetails); - // listDetail 清单项目明细 JSONArray 不限 是 详见A-2,JSON格式列表 - JSONArray listDetails = new JSONArray(); + bill.set("chargeDetail", chargeDetails); + // listDetail 清单项目明细 JsonNode 不限 是 详见A-2,JSON格式列表 + ArrayNode listDetails = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); - // 获取清单项目明细 + // 获取清单项目明细 List details = eleInvoiceMapper.getListDetail(encounterId, ybTypeList, "med_chrgitm_type", ContrastTypeEnum.INVOICE_CLINIC.getValue(), chargeItemIds); for (EleInvoiceListDetailDto detail : details) { - JSONObject listDetail = new JSONObject(); - // listDetailNo 明细流水号 String 60 否 + ObjectNode listDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + // listDetailNo 明细流水号 String 60 否 listDetail.put("listDetailNo", String.valueOf(detail.getListDetailNo())); - // chargeCode 收费项目代码 String 50 是 + // chargeCode 收费项目代码 String 50 是 listDetail.put("chargeCode", detail.getChargeCode()); - // chargeName 收费项目名称 String 100 是 + // chargeName 收费项目名称 String 100 是 listDetail.put("chargeName", detail.getChargeName()); - // code 药品编码 String 30 是 + // code 药品编码 String 30 是 listDetail.put("code", detail.getCode() == null ? detail.getYbCode() : detail.getCode()); - // name 药品名称 String 100 是 + // name 药品名称 String 100 是 listDetail.put("name", detail.getName()); - // unit 计量单位 String 20 是 + // unit 计量单位 String 20 是 String unit = ""; if (detail.getUnit() == null || StringUtils.isEmpty(detail.getUnit())) { - unit = "项"; + unit = "项"; } else { unit = detail.getUnit(); } listDetail.put("unit", unit); - // std 单价 Number 14,4 是 + // std 单价 Number 14,4 是 listDetail.put("std", df.format(detail.getStd())); - // number 数量 Number 14,2 是 + // number 数量 Number 14,2 是 listDetail.put("number", detail.getNumber()); - // amt 金额 Number 14,4 是 + // amt 金额 Number 14,4 是 listDetail.put("amt", df.format(detail.getAmt())); - // // selfAmt 自费金额 Number 14,4 是 + // // selfAmt 自费金额 Number 14,4 是 listDetail.put("selfAmt", ZERO); - // medicalCareType 医保药品分类 String 1 否 + // medicalCareType 医保药品分类 String 1 否 listDetail.put("medicalCareType", String.valueOf(detail.getMedicalCareType())); - // medCareItemCode 医保项目编码 String 100 否 + // medCareItemCode 医保项目编码 String 100 否 listDetail.put("medCareItemCode", detail.getYbCode() == null ? "" : detail.getYbCode()); - // medCareItemName 医保项目名称 String 100 否 + // medCareItemName 医保项目名称 String 100 否 listDetail.put("medCareItemName", detail.getName() == null ? "" : detail.getName()); listDetails.add(listDetail); } - bill.put("listDetail", listDetails); + bill.set("listDetail", listDetails); - // --------------------请求业务参数 data--------------------END - JSONObject redata = new JSONObject(); + // --------------------请求业务参数 data--------------------END + ObjectNode redata = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); String redata64; String srcdata; String srcmsg; - logger.info(JSON.toJSONString(bill)); - JSONObject resobj; - logger.info("************************************** 分 割 线 ***************************************"); - logger.info("门诊信息入参:" + JSON.toJSONString(bill)); - logger.info("———————————————————————————————————————————————————————————————————————————————————————"); - if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().getString("forwardSwitch"))) { + logger.info(JsonUtils.toJson(bill)); + JsonNode resobj; + logger.info("************************************** 分 割 线 ***************************************"); + logger.info("门诊信息入参:" + JsonUtils.toJson(bill)); + logger.info("———————————————————————————————————————————————————————————————————————————————————————"); + if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().path("forwardSwitch").asText())) { resobj = PreInvoicePostForward(bill, "api/medical/invoiceEBillOutpatient"); } else { resobj = PreInvoicePost(bill, "api/medical/invoiceEBillOutpatient"); } - if (resobj.getBooleanValue("success")) { - JSONObject rejson = resobj.getJSONObject("result"); - if (rejson.getString("result").equals("S0000")) { - // 保存发票信息 - redata64 = rejson.getString("message").toString(); + if (resobj.path("success").asBoolean()) { + JsonNode rejson = resobj.path("result"); + if (rejson.path("result").asText().equals("S0000")) { + // 保存发票信息 + redata64 = rejson.path("message").asText().toString(); srcdata = new String(Base64.getDecoder().decode(redata64), StandardCharsets.UTF_8); - redata = JSONObject.parseObject(srcdata); - logger.info("门诊信息:" + JSON.toJSONString(redata)); - // 获取发票管理表信息 + redata = (ObjectNode) JsonUtils.parse(srcdata); + logger.info("门诊信息:" + JsonUtils.toJson(redata)); + // 获取发票管理表信息 Invoice invoice = invoiceService.getById(paymentInfo.getInvoiceId()); - // 状态 + // 状态 invoice.setStatusEnum(InvoiceStatus.ISSUED); - // 开票员 + // 开票员 invoice.setInvoicingStaffId(user.getUserId()); - // 电子票据代码 - invoice.setBillBatchCode(redata.getString("billBatchCode")); - // 电子票据号码 - invoice.setBillNo(redata.getString("billNo")); - // 电子校验码 - invoice.setRandom(redata.getString("random")); - // 电子票据生成时间 - invoice.setBillCreateTime(redata.getString("createTime")); - // 电子票据二维码图片数据 - invoice.setBillQrCode(redata.getString("billQRCode")); - // 电子票据H5页面URL - invoice.setPictureUrl(redata.getString("pictureUrl")); - // 电子票据外网H5页面URL - invoice.setPictureNetUrl(redata.getString("pictureNetUrl")); - // 票据营业日期 - //invoice.setBillBusDate(inputFormat.parse(redata.getString("billBusDate"))); + // 电子票据代码 + invoice.setBillBatchCode(redata.path("billBatchCode").asText()); + // 电子票据号码 + invoice.setBillNo(redata.path("billNo").asText()); + // 电子校验码 + invoice.setRandom(redata.path("random").asText()); + // 电子票据生成时间 + invoice.setBillCreateTime(redata.path("createTime").asText()); + // 电子票据二维码图片数据 + invoice.setBillQrCode(redata.path("billQRCode").asText()); + // 电子票据H5页面URL + invoice.setPictureUrl(redata.path("pictureUrl").asText()); + // 电子票据外网H5页面URL + invoice.setPictureNetUrl(redata.path("pictureNetUrl").asText()); + // 票据营业日期 + //invoice.setBillBusDate(inputFormat.parse(redata.path("billBusDate").asText())); boolean flg = invoiceService.updateById(invoice); if (!flg) { @@ -846,16 +847,16 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } return R.ok(invoice, - MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"电子发票做成"})); + MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"电子发票做成"})); } else { - redata.put("result", rejson.getString("result")); - redata64 = rejson.getString("message").toString(); + redata.put("result", rejson.path("result").asText()); + redata64 = rejson.path("message").asText().toString(); srcmsg = new String(Base64.getDecoder().decode(redata64), StandardCharsets.UTF_8); return R.fail(srcmsg); } } else { - return R.fail(resobj.getString("msg")); + return R.fail(resobj.path("msg").asText()); } } catch (Exception ex) { try { @@ -867,52 +868,52 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } /** - * 医疗住院电子票据开具接口 + * 医疗住院电子票据开具接口 * - * @param paymentId 支付ID - * @param encounterId 就诊ID - * @return 返回值 + * @param paymentId 支付ID + * @param encounterId 就诊ID + * @return 返回值 */ public R invoiceZYMake(Long paymentId, Long encounterId) { - // 获取当前登陆用户信息 + // 获取当前登陆用户信息 LoginUser loginUser = SecurityUtils.getLoginUser(); Practitioner user = practitionerService.getPractitionerByUserId(loginUser.getUserId()); - // 日期格式化:定义多种时间格式,用于生成业务流水号、时间戳等。 + // 日期格式化:定义多种时间格式,用于生成业务流水号、时间戳等。 SimpleDateFormat sdfday = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - // 定义输入格式(带时区) + // 定义输入格式(带时区) SimpleDateFormat inputFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); DecimalFormat df = new DecimalFormat(); df.setMaximumIntegerDigits(16); - df.setMinimumIntegerDigits(1); // 至少显示1位整数 - df.setMaximumFractionDigits(6); // 最多显示6位小数 - df.setGroupingUsed(false); // 不使用千位分隔符 + df.setMinimumIntegerDigits(1); // 至少显示1位整数 + df.setMaximumFractionDigits(6); // 最多显示6位小数 + df.setGroupingUsed(false); // 不使用千位分隔符 try { - // 关键校验:检查必填参数encounterId是否存在,缺失则直接返回错误 + // 关键校验:检查必填参数encounterId是否存在,缺失则直接返回错误 if (encounterId == null || encounterId == 0) { return R.fail(PromptMsgConstant.Common.M00013); } - // 获取患者信息 + // 获取患者信息 EleInvoicePatientInfoDto patientInfo = eleInvoiceMapper.getPatientInfo(encounterId, EncounterClass.IMP.getValue(), OrganizationClass.INPATIENT.getValue()); - //12.4 红旗医院现场字典没赋值 + //12.4 红旗医院现场字典没赋值 if (patientInfo.getGenderEnum_enumText() == null) { patientInfo.setGenderEnum_enumText(patientInfo.getGenderEnumEnumText()); } - // 获取付款信息 + // 获取付款信息 EleInvoicePaymentInfoDto paymentInfo = eleInvoiceMapper.getPaymentInfo(paymentId, encounterId, YbPayment.SELF_YB_ZH_PAY.getValue(), YbPayment.SELF_CASH_VALUE.getValue(), YbPayment.SELF_CASH_VX_VALUE.getValue(), YbPayment.SELF_CASH_ALI_VALUE.getValue(), YbPayment.SELF_CASH_UNION_VALUE.getValue(), YbPayment.YB_FUND_PAY.getValue(), YbPayment.OTHER_PAY.getValue(), YbPayment.SELF_YB_ZH_GJ_VALUE.getValue()); - // 医保结算记录 + // 医保结算记录 InvoiceBaseInfoDto clinicSettle = this.getClinicSettleByPaymentId(paymentInfo.getPaymentId()); - // 业务状态校验 + // 业务状态校验 if (paymentInfo.getPaymentStatus() == null || paymentInfo.getPaymentStatus().equals(PaymentStatus.DRAFT.getValue())) { return R.fail(PromptMsgConstant.invoice.M00002); @@ -925,233 +926,233 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { return R.fail(PromptMsgConstant.invoice.M00003); } - // --------------------请求业务参数 data--------------------START - JSONObject bill = commomSet(patientInfo, paymentInfo, clinicSettle); + // --------------------请求业务参数 data--------------------START + ObjectNode bill = (ObjectNode) commomSet(patientInfo, paymentInfo, clinicSettle); bill.put("paymentId", paymentId); - // ------票据信息------ - // busType 业务标识 String 20 是 直接填写业务系统内部编码值,由医疗平台配置对照,例如:附录5 业务标识列表 - // 值:01,标识住院 + // ------票据信息------ + // busType 业务标识 String 20 是 直接填写业务系统内部编码值,由医疗平台配置对照,例如:附录5 业务标识列表 + // 值:01,标识住院 bill.put("busType", "01"); - // checker 票据复核人 String 100 是 + // checker 票据复核人 String 100 是 bill.put("checker", user.getName()); - // ------就诊信息------ - // medCareAreaCode 医保行政区划码 String 6 否 医保结算时必须填写 + // ------就诊信息------ + // medCareAreaCode 医保行政区划码 String 6 否 医保结算时必须填写 bill.put("medCareAreaCode", patientInfo.getMedCareAreaCode()); - // category 入院科室名称 String 50 是 如:入院科室不存在,填写出院科室 + // category 入院科室名称 String 50 是 如:入院科室不存在,填写出院科室 bill.put("category", patientInfo.getCategory()); - // categoryCode 入院科室编码 String 50 是 如:入院科室不存在,填写出院科室 + // categoryCode 入院科室编码 String 50 是 如:入院科室不存在,填写出院科室 bill.put("categoryCode", patientInfo.getCategoryCode()); - // leaveCategory 出院科室名称 String 50 是 + // leaveCategory 出院科室名称 String 50 是 bill.put("leaveCategory", patientInfo.getLeaveCategory()); - // leaveCategoryCode 出院科室编码 String 50 是 + // leaveCategoryCode 出院科室编码 String 50 是 bill.put("leaveCategoryCode", patientInfo.getLeaveCategoryCode()); - // patientId 患者唯一ID String 50 否 + // patientId 患者唯一ID String 50 否 bill.put("patientId", patientInfo.getPayerId()); - // patientNo 患者就诊编号 String 30 否 + // patientNo 患者就诊编号 String 30 否 bill.put("patientNo", String.valueOf(encounterId)); - // caseNumber 病历号 String 50 是 + // caseNumber 病历号 String 50 是 bill.put("caseNumber", patientInfo.getCaseNumber()); - // inHospitalDate 住院日期 String 10 是 格式:yyyy-MM-dd + // inHospitalDate 住院日期 String 10 是 格式:yyyy-MM-dd bill.put("inHospitalDate", sdfday.format(sdf2.parse(patientInfo.getInHospitalDate()))); - // outHospitalDate 出院日期 String 10 是 格式:yyyy-MM-dd + // outHospitalDate 出院日期 String 10 是 格式:yyyy-MM-dd bill.put("outHospitalDate", sdfday.format(sdf2.parse(patientInfo.getOutHospitalDate()))); - // ------费用------ - // 医保统筹基金支付 + // ------费用------ + // 医保统筹基金支付 clinicSettle.setHifpPay(clinicSettle.getHifpPay() == null ? ZERO : clinicSettle.getHifpPay()); - // 个人现金支付 + // 个人现金支付 clinicSettle.setPsnCashPay(clinicSettle.getPsnCashPay() == null ? ZERO : clinicSettle.getPsnCashPay()); - // 医保报销总金额 + // 医保报销总金额 clinicSettle .setFundPaySumamt(clinicSettle.getFundPaySumamt() == null ? ZERO : clinicSettle.getFundPaySumamt()); - // otherfundPay 其它医保支付 Number 14,2 是 + // otherfundPay 其它医保支付 Number 14,2 是 bill.put("otherfundPay", String.format("%.2f", clinicSettle.getFundPaySumamt().subtract(clinicSettle.getHifpPay()))); - // balancedNumber 医保结算号 String 100 否 + // balancedNumber 医保结算号 String 100 否 bill.put("balancedNumber", clinicSettle.getSetlId() == null ? "" : clinicSettle.getSetlId()); - // otherInfo 其它扩展信息列表 JSONArray 不限 是 - JSONArray otherInfos = new JSONArray(); - // 公务员医疗补助资金支出:1.00;企业补充医疗保险基金支出:1.00;居民大病保险资金支出:1.00;职工大额医疗费用补助基金支出:1.00;医疗救助基金支出:1.00;医院负担金额:1.00;其他支出:1.00 - JSONObject otherInfo = new JSONObject(); + // otherInfo 其它扩展信息列表 JsonNode 不限 是 + ArrayNode otherInfos = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); + // 公务员医疗补助资金支出:1.00;企业补充医疗保险基金支出:1.00;居民大病保险资金支出:1.00;职工大额医疗费用补助基金支出:1.00;医疗救助基金支出:1.00;医院负担金额:1.00;其他支出:1.00 + ObjectNode otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "1"); - otherInfo.put("infoName", "公务员医疗补助资金支出"); + otherInfo.put("infoName", "公务员医疗补助资金支出"); otherInfo.put("infoValue", clinicSettle.getCvlservPay() == null ? ZERO : clinicSettle.getCvlservPay()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "2"); - otherInfo.put("infoName", "企业补充医疗保险基金支出"); + otherInfo.put("infoName", "企业补充医疗保险基金支出"); otherInfo.put("infoValue", clinicSettle.getHifesPay() == null ? ZERO : clinicSettle.getHifesPay()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "3"); - otherInfo.put("infoName", "居民大病保险资金支出"); + otherInfo.put("infoName", "居民大病保险资金支出"); otherInfo.put("infoValue", clinicSettle.getHifmiPay() == null ? ZERO : clinicSettle.getHifmiPay()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "4"); - otherInfo.put("infoName", "职工大额医疗费用补助基金支出"); + otherInfo.put("infoName", "职工大额医疗费用补助基金支出"); otherInfo.put("infoValue", clinicSettle.getHifobPay() == null ? ZERO : clinicSettle.getHifobPay()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "5"); - otherInfo.put("infoName", "医疗救助基金支出"); + otherInfo.put("infoName", "医疗救助基金支出"); otherInfo.put("infoValue", clinicSettle.getMafPay() == null ? ZERO : clinicSettle.getMafPay()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "6"); - otherInfo.put("infoName", "医院负担金额"); + otherInfo.put("infoName", "医院负担金额"); otherInfo.put("infoValue", clinicSettle.getHospPartAmt() == null ? ZERO : clinicSettle.getHospPartAmt()); otherInfos.add(otherInfo); - otherInfo = new JSONObject(); + otherInfo = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); otherInfo.put("infoNo", "1"); - otherInfo.put("infoName", "其他支出"); + otherInfo.put("infoName", "其他支出"); otherInfo.put("infoValue", clinicSettle.getOthPay() == null ? ZERO : clinicSettle.getOthPay()); otherInfos.add(otherInfo); - bill.put("otherInfo", otherInfos); + bill.set("otherInfo", otherInfos); - // ------项目------ - // 医疗收费项目类别 - // 01 床位费,02 诊察费,03 检查费,04 化验费,05 治疗费,06 手术费,07 护理费,08 卫生材料费,09 西药费,10 中药饮片费,11 中成药费,12 一般诊疗费,13 挂号费,14 其他费 + // ------项目------ + // 医疗收费项目类别 + // 01 床位费,02 诊察费,03 检查费,04 化验费,05 治疗费,06 手术费,07 护理费,08 卫生材料费,09 西药费,10 中药饮片费,11 中成药费,12 一般诊疗费,13 挂号费,14 å…¶ä»–è´¹ List ybTypeList = new ArrayList<>( Arrays.asList("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14")); - // 付款账单集合 + // 付款账单集合 List chargeItemIds = new ArrayList<>(); String[] parts = paymentInfo.getChargeItemIds().split(","); for (String part : parts) { - chargeItemIds.add(Long.parseLong(part.trim())); // trim() 去除空格 + chargeItemIds.add(Long.parseLong(part.trim())); // trim() 去除空格 } - // 获取清单项目明细 + // 获取清单项目明细 List details = eleInvoiceMapper.getListDetail(encounterId, ybTypeList, "med_chrgitm_type", ContrastTypeEnum.INVOICE_CINPATIENT.getValue(), chargeItemIds); - JSONArray listDetails = new JSONArray(); + ArrayNode listDetails = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); for (EleInvoiceListDetailDto detail : details) { - JSONObject listDetail = new JSONObject(); - // listDetailNo 明细流水号 String 60 否 + ObjectNode listDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + // listDetailNo 明细流水号 String 60 否 listDetail.put("listDetailNo", String.valueOf(detail.getListDetailNo())); - // chargeCode 收费项目代码 String 50 是 + // chargeCode 收费项目代码 String 50 是 listDetail.put("chargeCode", detail.getChargeCode()); - // chargeName 收费项目名称 String 100 是 + // chargeName 收费项目名称 String 100 是 listDetail.put("chargeName", detail.getChargeName()); - // code 药品编码 String 30 是 + // code 药品编码 String 30 是 listDetail.put("code", detail.getCode() == null ? detail.getYbCode() : detail.getCode()); - // name 药品名称 String 100 是 + // name 药品名称 String 100 是 listDetail.put("name", detail.getName()); - // unit 计量单位 String 20 是 + // unit 计量单位 String 20 是 String unit = ""; if (detail.getUnit() == null || StringUtils.isEmpty(detail.getUnit())) { - unit = "项"; + unit = "项"; } else { unit = detail.getUnit(); } listDetail.put("unit", unit); - // std 单价 Number 14,4 是 + // std 单价 Number 14,4 是 listDetail.put("std", df.format(detail.getStd())); - // number 数量 Number 14,2 是 + // number 数量 Number 14,2 是 listDetail.put("number", detail.getNumber()); - // amt 金额 Number 14,4 是 + // amt 金额 Number 14,4 是 listDetail.put("amt", df.format(detail.getAmt())); - // // selfAmt 自费金额 Number 14,4 是 + // // selfAmt 自费金额 Number 14,4 是 listDetail.put("selfAmt", ZERO); - // medicalCareType 医保药品分类 String 1 否 + // medicalCareType 医保药品分类 String 1 否 listDetail.put("medicalCareType", String.valueOf(detail.getMedicalCareType())); - // medCareItemCode 医保项目编码 String 100 否 + // medCareItemCode 医保项目编码 String 100 否 listDetail.put("medCareItemCode", detail.getYbCode() == null ? "" : detail.getYbCode()); - // medCareItemName 医保项目名称 String 100 否 + // medCareItemName 医保项目名称 String 100 否 listDetail.put("medCareItemName", detail.getName() == null ? "" : detail.getName()); listDetails.add(listDetail); } - bill.put("listDetail", listDetails); + bill.set("listDetail", listDetails); - // 获取收费项目明细 + // 获取收费项目明细 List chargeItems = eleInvoiceMapper.getChargeDetail(encounterId, ybTypeList, "med_chrgitm_type", ContrastTypeEnum.INVOICE_CINPATIENT.getValue(), chargeItemIds); - // chargeDetail 收费项目明细 JSONArray 不限 是 - JSONArray chargeDetails = new JSONArray(); + // chargeDetail 收费项目明细 JsonNode 不限 是 + ArrayNode chargeDetails = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); Integer sortNo = 1; for (EleInvoiceChargeDetailDto detail : chargeItems) { - JSONObject chargeDetail = new JSONObject(); - // sortNo 序号 Integer 不限 是 + ObjectNode chargeDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + // sortNo 序号 Integer 不限 是 chargeDetail.put("sortNo", sortNo); - // chargeCode 收费项目代码 String 50 是 + // chargeCode 收费项目代码 String 50 是 chargeDetail.put("chargeCode", detail.getChargeCode()); - // chargeName 收费项目名称 String 100 是 + // chargeName 收费项目名称 String 100 是 chargeDetail.put("chargeName", detail.getChargeName()); - // unit 计量单位 - chargeDetail.put("unit", "项"); - // std 收费标准 Number 14,2 是 + // unit 计量单位 + chargeDetail.put("unit", "项"); + // std 收费标准 Number 14,2 是 BigDecimal std = detail.getAmt().divide(new BigDecimal(detail.getNumber().toString()), 6, RoundingMode.HALF_UP); - // 精确表示,避免科学计数法 + // 精确表示,避免科学计数法 chargeDetail.put("std", df.format(std)); - // number 数量 Number 14,2 是 + // number 数量 Number 14,2 是 chargeDetail.put("number", detail.getNumber()); - // amt 金额 Number 14,2 是 + // amt 金额 Number 14,2 是 chargeDetail.put("amt", df.format(detail.getAmt())); - // selfAmt 自费金额 Number 14,2 是 + // selfAmt 自费金额 Number 14,2 是 chargeDetail.put("selfAmt", ZERO); sortNo++; chargeDetails.add(chargeDetail); } - bill.put("chargeDetail", chargeDetails); + bill.set("chargeDetail", chargeDetails); - // --------------------请求业务参数 data--------------------END - JSONObject redata = new JSONObject(); + // --------------------请求业务参数 data--------------------END + ObjectNode redata = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); String redata64; String srcdata; String srcmsg; - // JSONObject resobj = PreInvoicePostForward(bill, "api/medical/invEBillHospitalized"); - JSONObject resobj; - logger.info("************************************** 分 割 线 ***************************************"); - logger.info("住院信息入参:" + JSON.toJSONString(bill)); - logger.info("———————————————————————————————————————————————————————————————————————————————————————"); - if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().getString("forwardSwitch"))) { + // JsonNode resobj = PreInvoicePostForward(bill, "api/medical/invEBillHospitalized"); + JsonNode resobj; + logger.info("************************************** 分 割 线 ***************************************"); + logger.info("住院信息入参:" + JsonUtils.toJson(bill)); + logger.info("———————————————————————————————————————————————————————————————————————————————————————"); + if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().path("forwardSwitch").asText())) { resobj = PreInvoicePostForward(bill, "api/medical/invEBillHospitalized"); } else { resobj = PreInvoicePost(bill, "api/medical/invEBillHospitalized"); } - if (resobj.getBooleanValue("success")) { - JSONObject rejson = resobj.getJSONObject("result"); - if (rejson.getString("result").equals("S0000")) { - // 保存发票信息 - redata64 = rejson.getString("message").toString(); + if (resobj.path("success").asBoolean()) { + JsonNode rejson = resobj.path("result"); + if (rejson.path("result").asText().equals("S0000")) { + // 保存发票信息 + redata64 = rejson.path("message").asText().toString(); srcdata = new String(Base64.getDecoder().decode(redata64), StandardCharsets.UTF_8); - redata = JSONObject.parseObject(srcdata); - logger.info("住院信息:" + JSON.toJSONString(redata)); - // 获取发票管理表信息 + redata = (ObjectNode) JsonUtils.parse(srcdata); + logger.info("住院信息:" + JsonUtils.toJson(redata)); + // 获取发票管理表信息 Invoice invoice = invoiceService.getById(paymentInfo.getInvoiceId()); - // 状态 + // 状态 invoice.setStatusEnum(InvoiceStatus.ISSUED); - // 开票员 + // 开票员 invoice.setInvoicingStaffId(user.getUserId()); - // 电子票据代码 - invoice.setBillBatchCode(redata.getString("billBatchCode")); - // 电子票据号码 - invoice.setBillNo(redata.getString("billNo")); - // 电子校验码 - invoice.setRandom(redata.getString("random")); - // 电子票据生成时间 - invoice.setBillCreateTime(redata.getString("createTime")); - // 电子票据二维码图片数据 - invoice.setBillQrCode(redata.getString("billQRCode")); - // 电子票据H5页面URL - invoice.setPictureUrl(redata.getString("pictureUrl")); - // 电子票据外网H5页面URL - invoice.setPictureNetUrl(redata.getString("pictureNetUrl")); - // 票据营业日期 - //invoice.setBillBusDate(inputFormat.parse(redata.getString("billBusDate"))); + // 电子票据代码 + invoice.setBillBatchCode(redata.path("billBatchCode").asText()); + // 电子票据号码 + invoice.setBillNo(redata.path("billNo").asText()); + // 电子校验码 + invoice.setRandom(redata.path("random").asText()); + // 电子票据生成时间 + invoice.setBillCreateTime(redata.path("createTime").asText()); + // 电子票据二维码图片数据 + invoice.setBillQrCode(redata.path("billQRCode").asText()); + // 电子票据H5页面URL + invoice.setPictureUrl(redata.path("pictureUrl").asText()); + // 电子票据外网H5页面URL + invoice.setPictureNetUrl(redata.path("pictureNetUrl").asText()); + // 票据营业日期 + //invoice.setBillBusDate(inputFormat.parse(redata.path("billBusDate").asText())); boolean flg = invoiceService.updateById(invoice); if (!flg) { @@ -1159,15 +1160,15 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } return R.ok(invoice, - MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"电子发票做成"})); + MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"电子发票做成"})); } else { - redata.put("result", rejson.getString("result")); - redata64 = rejson.getString("message").toString(); + redata.put("result", rejson.path("result").asText()); + redata64 = rejson.path("message").asText().toString(); srcmsg = new String(Base64.getDecoder().decode(redata64), StandardCharsets.UTF_8); return R.fail(srcmsg); } } else { - return R.fail(resobj.getString("msg")); + return R.fail(resobj.path("msg").asText()); } } catch (Exception ex) { @@ -1180,40 +1181,40 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } /** - * 医疗电子票据开具共通赋值 + * 医疗电子票据开具共通赋值 * - * @param patientInfo 患者信息 - * @param paymentInfo 付款信息 - * @param clinicSettle 医保结算记录 - * @return 返回值 + * @param patientInfo 患者信息 + * @param paymentInfo 付款信息 + * @param clinicSettle 医保结算记录 + * @return 返回值 */ - private JSONObject commomSet(EleInvoicePatientInfoDto patientInfo, EleInvoicePaymentInfoDto paymentInfo, + private ObjectNode commomSet(EleInvoicePatientInfoDto patientInfo, EleInvoicePaymentInfoDto paymentInfo, InvoiceBaseInfoDto clinicSettle) throws ParseException { - // 日期格式化:定义多种时间格式,用于生成业务流水号、时间戳等。 + // 日期格式化:定义多种时间格式,用于生成业务流水号、时间戳等。 SimpleDateFormat sdfday = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - // 定义输入格式(带时区) + // 定义输入格式(带时区) SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSX"); - inputFormat.setTimeZone(TimeZone.getTimeZone("GMT+8")); // 设置时区 + inputFormat.setTimeZone(TimeZone.getTimeZone("GMT+8")); // 设置时区 DecimalFormat df = new DecimalFormat("#.00"); df.setMaximumIntegerDigits(14); - df.setMinimumIntegerDigits(1); // 至少显示1位整数 + df.setMinimumIntegerDigits(1); // 至少显示1位整数 - // 获取当前登陆用户信息 + // 获取当前登陆用户信息 LoginUser loginUser = SecurityUtils.getLoginUser(); Practitioner user = practitionerService.getPractitionerByUserId(loginUser.getUserId()); - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); - JSONObject bill = new JSONObject(); + ObjectNode bill = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); - // ------票据信息------ - // busNo 业务流水号 String 50 是 + // ------票据信息------ + // busNo 业务流水号 String 50 是 bill.put("busNo", paymentInfo.getBusNo()); - // payer 患者姓名 String 100 是 + // payer 患者姓名 String 100 是 bill.put("payer", patientInfo.getPayer()); - // busDateTime 业务发生时间 String 17 是 格式:yyyyMMddHHmmssSSS + // busDateTime 业务发生时间 String 17 是 格式:yyyyMMddHHmmssSSS // Date parse = inputFormat.parse(paymentInfo.getBillDate()); // String format = sdf.format(parse); // ZonedDateTime parse1 = ZonedDateTime.parse(paymentInfo.getBillDate(), inputFormatter); @@ -1223,90 +1224,90 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { bill.put("busDateTime", DateUtils.parseDateToStr("yyyyMMddHHmmssSSS", date)); // bill.put("busDateTime", DateUtils.parseDate(paymentInfo.getBillDate(),"yyyyMMddHHmmssSSS")); - // placeCode 开票点编码 String 50 是 + // placeCode 开票点编码 String 50 是 bill.put("placeCode", user.getKpdCode()); - // payee 收费员 String 50 是 + // payee 收费员 String 50 是 bill.put("payee", paymentInfo.getPayee()); - // author 票据编制人 String 100 是 + // author 票据编制人 String 100 是 bill.put("author", user.getName()); - // totalAmt 开票总金额 Number 14,2 是 + // totalAmt 开票总金额 Number 14,2 是 paymentInfo.setTotalAmt(paymentInfo.getTotalAmt() == null ? ZERO : paymentInfo.getTotalAmt()); bill.put("totalAmt", String.format("%.2f", paymentInfo.getTotalAmt())); - // ------通知------ - // tel 患者手机号码 String 11 否 + // ------通知------ + // tel 患者手机号码 String 11 否 bill.put("tel", patientInfo.getTel()); - // payerType 交款人类型 String 1 是 交款人类型:1 个人 2 单位 + // payerType 交款人类型 String 1 是 交款人类型:1 个人 2 单位 bill.put("payerType", "2"); - // cardType 卡类型 String 10 是 直接填写业务系统内部编码值,由医疗平台配置对照 - // 例如:附录3:卡类型与证件类型列表 + // cardType 卡类型 String 10 是 直接填写业务系统内部编码值,由医疗平台配置对照 + // 例如:附录3:卡类型与证件类型列表 bill.put("cardType", "1101"); - // cardNo 卡号 String 50 是 根据卡类型填写 + // cardNo 卡号 String 50 是 根据卡类型填写 bill.put("cardNo", patientInfo.getCardNo()); - // ------就诊信息------ - // medicalInstitution 医疗机构类型 String 30 是 按照《医疗机构管理条例实施细则》和《卫生部关于修订<医疗机构管理条例实施细则>第三条有关内容的通知》确定的医疗卫生机构类别 + // ------就诊信息------ + // medicalInstitution 医疗机构类型 String 30 是 按照《医疗机构管理条例实施细则》和《卫生部关于修订<医疗机构管理条例实施细则>第三条有关内容的通知》确定的医疗卫生机构类别 String medicalInstitution; - switch (optionJson.getString("hospital_lv")) { + switch (optionJson.path("hospital_lv").asText()) { case "01": - medicalInstitution = "三级特等"; + medicalInstitution = "三级特等"; break; case "02": - medicalInstitution = "三级甲等"; + medicalInstitution = "三级甲等"; break; case "03": - medicalInstitution = "三级乙等"; + medicalInstitution = "三级乙等"; break; case "04": - medicalInstitution = "三级丙等"; + medicalInstitution = "三级丙等"; break; case "05": - medicalInstitution = "二级甲等"; + medicalInstitution = "二级甲等"; break; case "06": - medicalInstitution = "二级乙等"; + medicalInstitution = "二级乙等"; break; case "07": - medicalInstitution = "二级丙等"; + medicalInstitution = "二级丙等"; break; case "08": - medicalInstitution = "一级甲等"; + medicalInstitution = "一级甲等"; break; case "09": - medicalInstitution = "一级乙等"; + medicalInstitution = "一级乙等"; break; case "10": - medicalInstitution = "一级丙等"; + medicalInstitution = "一级丙等"; break; default: - medicalInstitution = "无等级"; + medicalInstitution = "无等级"; break; } bill.put("medicalInstitution", medicalInstitution); - // medCareInstitution 医保机构编码 String 60 否 医保机构的唯一编码 - bill.put("medCareInstitution", optionJson.getString(CommonConstants.Option.HOSPITAL_CODE)); + // medCareInstitution 医保机构编码 String 60 否 医保机构的唯一编码 + bill.put("medCareInstitution", optionJson.path(CommonConstants.Option.HOSPITAL_CODE).asText()); - // 410 长期照护保险 //310 职工基本医疗保险 - // 320 公务员医疗补助 //330 大额医疗费用补助 - // 340 离休人员医疗保障 //350 一至六级残废军人医疗补助 - // 360 老红军医疗保障 //370 企业补充医疗保险 - // 380 新型农村合作医疗 //390 城乡居民基本医疗保险 - // 391 城镇居民基本医疗保险 //392 城乡居民大病医疗保险 //399 其他特殊人员医疗保障 - // 01 职工基本医疗保险 06 全公费 - // 02 居民基本医疗保险 07 全自费 - // 03 新型农村合作医疗 90 城乡居民医疗保险 - // 04 贫困救助 99 其他 - // 05 商业医疗保险 + // 410 长期照护保险 //310 职工基本医疗保险 + // 320 公务员医疗补助 //330 大额医疗费用补助 + // 340 离休人员医疗保障 //350 一至六级残废军人医疗补助 + // 360 老红军医疗保障 //370 企业补充医疗保险 + // 380 新型农村合作医疗 //390 城乡居民基本医疗保险 + // 391 城镇居民基本医疗保险 //392 城乡居民大病医疗保险 //399 其他特殊人员医疗保障 + // 01 职工基本医疗保险 06 全公费 + // 02 居民基本医疗保险 07 全自费 + // 03 新型农村合作医疗 90 城乡居民医疗保险 + // 04 贫困救助 99 å…¶ä»– + // 05 商业医疗保险 String medCareTypeCode; String medicalCareType; - // 医保 挂号退号表 + // 医保 挂号退号表 ClinicReg clinicReg = regService.getByBusNo(patientInfo.getEncounterBusNo()); String xztype; if (clinicReg == null) { xztype = "07"; } else { xztype = clinicReg.getInsutype(); - // medicalInsuranceID 患者医保编号 String 30 否 参保人在医保系统中的唯一标识(医保号) + // medicalInsuranceID 患者医保编号 String 30 否 参保人在医保系统中的唯一标识(医保号) bill.put("medicalInsuranceID", clinicReg.getPsnNo() == null ? "" : clinicReg.getPsnNo()); } @@ -1315,219 +1316,219 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { case "320": case "330": case "370": - medicalCareType = "职工基本医疗保险"; + medicalCareType = "职工基本医疗保险"; medCareTypeCode = "01"; break; case "340": case "360": - medicalCareType = "全公费"; + medicalCareType = "全公费"; medCareTypeCode = "06"; break; case "390": case "392": case "391": case "380": - medicalCareType = "居民基本医疗保险"; + medicalCareType = "居民基本医疗保险"; medCareTypeCode = "02"; break; case "350": case "410": case "399": - medicalCareType = "其他"; + medicalCareType = "å…¶ä»–"; medCareTypeCode = "99"; break; default: - medicalCareType = "全自费"; + medicalCareType = "全自费"; medCareTypeCode = "07"; break; } - // medCareTypeCode 医保类型编码 String 30 否 + // medCareTypeCode 医保类型编码 String 30 否 bill.put("medCareTypeCode", medCareTypeCode); - // medicalCareType 医保类型名称 String 60 是 由城镇职工基本医疗保险、城镇居民基本医疗保险、新型农村合作医疗、其它医疗保险等构成 + // medicalCareType 医保类型名称 String 60 是 由城镇职工基本医疗保险、城镇居民基本医疗保险、新型农村合作医疗、其它医疗保险等构成 bill.put("medicalCareType", medicalCareType); - // consultationDate 就诊日期 String 10 是 患者就医时间 格式:yyyyMMdd + // consultationDate 就诊日期 String 10 是 患者就医时间 格式:yyyyMMdd bill.put("consultationDate", sdfday.format(inputFormat.parse(patientInfo.getConsultationDate()))); - // sex 性别 String 4 是 + // sex 性别 String 4 是 bill.put("sex", patientInfo.getGenderEnum_enumText()); - // age 年龄 String 10 是 + // age 年龄 String 10 是 bill.put("age", AgeCalculatorUtil.getAge(patientInfo.getBirthDate())); - // ------费用------ - // 个人账户支付 + // ------费用------ + // 个人账户支付 clinicSettle.setAcctPay(clinicSettle.getAcctPay() == null ? ZERO : clinicSettle.getAcctPay()); - // 医保统筹基金支付 + // 医保统筹基金支付 clinicSettle.setHifpPay(clinicSettle.getHifpPay() == null ? ZERO : clinicSettle.getHifpPay()); - // 自费金额(2025/12/25 朝阳红旗中医院:电子发票个人自费=医保丙类+超限价) + // 自费金额(2025/12/25 朝阳红旗中医院:电子发票个人自费=医保丙类+超限价) //BigDecimal fulamtOwnPayAmt = clinicSettle.getFulamtOwnpayAmt()==null?ZERO:clinicSettle.getFulamtOwnpayAmt(); //BigDecimal overLmtSelfpay = clinicSettle.getOverlmtSelfpay()==null?ZERO:clinicSettle.getOverlmtSelfpay(); - //全自费 + //全自费 clinicSettle .setFulamtOwnpayAmt(clinicSettle.getFulamtOwnpayAmt() == null ? ZERO : clinicSettle.getFulamtOwnpayAmt()); - // 个人自负 + // 个人自负 clinicSettle.setPsnPartAmt(clinicSettle.getPsnPartAmt() == null ? ZERO : clinicSettle.getPsnPartAmt()); - // 超限价 + // 超限价 clinicSettle .setOverlmtSelfpay(clinicSettle.getOverlmtSelfpay() == null ? ZERO : clinicSettle.getOverlmtSelfpay()); - //先行自付 + //先行自付 clinicSettle .setPreselfpayAmt(clinicSettle.getPreselfpayAmt() == null ? ZERO : clinicSettle.getPreselfpayAmt()); - // 个人现金支付 + // 个人现金支付 clinicSettle.setPsnCashPay(clinicSettle.getPsnCashPay() == null ? ZERO : clinicSettle.getPsnCashPay()); - // 医保报销总金额 + // 医保报销总金额 clinicSettle.setFundPaySumamt(clinicSettle.getFundPaySumamt() == null ? ZERO : clinicSettle.getFundPaySumamt()); - // accountPay 个人账户支付 Number 14,2 是 + // accountPay 个人账户支付 Number 14,2 是 bill.put("accountPay", df.format(clinicSettle.getAcctPay())); - // fundPay 医保统筹基金支付 Number 14,2 是 + // fundPay 医保统筹基金支付 Number 14,2 是 bill.put("fundPay", df.format(clinicSettle.getHifpPay())); - // ownPay 自费金额 Number 14,2 是 (2025/12/25 朝阳红旗中医院:电子发票个人自费=医保丙类+超限价) - // 2021-12-15 医保回复:个人自付 = (PAY_COST)医保账户+(psn_part_amt)个人现金+ (HIFMI_PAY)大病 -(fulamt_ownpay_amt)个人自费 + // ownPay 自费金额 Number 14,2 是 (2025/12/25 朝阳红旗中医院:电子发票个人自费=医保丙类+超限价) + // 2021-12-15 医保回复:个人自付 = (PAY_COST)医保账户+(psn_part_amt)个人现金+ (HIFMI_PAY)大病 -(fulamt_ownpay_amt)个人自费 BigDecimal acctPay = clinicSettle.getAcctPay() == null ? ZERO : clinicSettle.getAcctPay(); BigDecimal psnPartAmt = clinicSettle.getPsnPartAmt() == null ? ZERO : clinicSettle.getPsnPartAmt(); BigDecimal hifmiPay = clinicSettle.getHifmiPay() == null ? ZERO : clinicSettle.getHifmiPay(); BigDecimal fulamtOwnpayAmt = clinicSettle.getFulamtOwnpayAmt() == null ? ZERO : clinicSettle.getFulamtOwnpayAmt(); bill.put("ownPay", df.format(acctPay.add(psnPartAmt).add(hifmiPay).subtract(fulamtOwnpayAmt))); - // selfConceitedAmt 个人自负 Number 14,2 是 (2025/12/25 朝阳红旗中医院:电子发票个人自付=医保乙类后患者自付的部分) - // 2021-12-15 医保回复:个人自费:全自费金额 + // selfConceitedAmt 个人自负 Number 14,2 是 (2025/12/25 朝阳红旗中医院:电子发票个人自付=医保乙类后患者自付的部分) + // 2021-12-15 医保回复:个人自费:全自费金额 bill.put("selfConceitedAmt", df.format(clinicSettle.getFulamtOwnpayAmt())); - // selfPayAmt 个人自付 Number 14,2 是 + // selfPayAmt 个人自付 Number 14,2 是 bill.put("selfPayAmt", df.format(clinicSettle.getOverlmtSelfpay())); - // selfCashPay 个人现金支付 Number 14,2 是 + // selfCashPay 个人现金支付 Number 14,2 是 bill.put("selfCashPay", df.format(clinicSettle.getPsnCashPay())); - // reimbursementAmt 医保报销总金额 Number 14,2 是 + // reimbursementAmt 医保报销总金额 Number 14,2 是 bill.put("reimbursementAmt", df.format(clinicSettle.getFundPaySumamt())); - // payChannelDetail 交费渠道列表 JSONArray 不限 是 - JSONArray payChannelDetails = new JSONArray(); - JSONObject payChannelDetail; - // 个人现金支付金额(微信) + // payChannelDetail 交费渠道列表 JsonNode 不限 是 + ArrayNode payChannelDetails = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); + ObjectNode payChannelDetail; + // 个人现金支付金额(微信) paymentInfo.setWxPayAmount(paymentInfo.getWxPayAmount() == null ? ZERO : paymentInfo.getWxPayAmount()); - // 个人现金支付金额(支付宝) + // 个人现金支付金额(支付宝) paymentInfo.setAliPayAmount(paymentInfo.getAliPayAmount() == null ? ZERO : paymentInfo.getAliPayAmount()); - // 个人现金支付金额(银联) + // 个人现金支付金额(银联) paymentInfo.setDebitPayAmount(paymentInfo.getDebitPayAmount() == null ? ZERO : paymentInfo.getDebitPayAmount()); - // 个人现金支付金额 + // 个人现金支付金额 paymentInfo .setRmbCashPayAmount(paymentInfo.getRmbCashPayAmount() == null ? ZERO : paymentInfo.getRmbCashPayAmount()); - // 个人医保账户支付 + // 个人医保账户支付 paymentInfo.setZhPayAmount(paymentInfo.getZhPayAmount() == null ? ZERO : paymentInfo.getZhPayAmount()); - // 基金支付总额 + // 基金支付总额 paymentInfo .setYbFundPayAmount(paymentInfo.getYbFundPayAmount() == null ? ZERO : paymentInfo.getYbFundPayAmount()); - // 其他(如医院负担金额) + // 其他(如医院负担金额) paymentInfo.setOtherPayAmount(paymentInfo.getOtherPayAmount() == null ? ZERO : paymentInfo.getOtherPayAmount()); - // 账户共济支付金额 + // 账户共济支付金额 paymentInfo .setAelfYbZhGjValue(paymentInfo.getAelfYbZhGjValue() == null ? ZERO : paymentInfo.getAelfYbZhGjValue()); - if (medCareTypeCode.equals("07")) {// 全自费 + if (medCareTypeCode.equals("07")) {// 全自费 if (paymentInfo.getWxPayAmount().compareTo(ZERO) > 0) { - payChannelDetail = new JSONObject(); - payChannelDetail.put("payChannelCode", "05");// 05 微信 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + payChannelDetail.put("payChannelCode", "05");// 05 微信 payChannelDetail.put("payChannelValue", df.format(paymentInfo.getWxPayAmount())); payChannelDetails.add(payChannelDetail); } if (paymentInfo.getAliPayAmount().compareTo(ZERO) > 0) { - payChannelDetail = new JSONObject(); - payChannelDetail.put("payChannelCode", "04");// 04 支付宝 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + payChannelDetail.put("payChannelCode", "04");// 04 支付宝 payChannelDetail.put("payChannelValue", df.format(paymentInfo.getAliPayAmount())); payChannelDetails.add(payChannelDetail); } if (paymentInfo.getDebitPayAmount().compareTo(ZERO) > 0) { - payChannelDetail = new JSONObject(); - payChannelDetail.put("payChannelCode", "07");// 07 卡支付 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + payChannelDetail.put("payChannelCode", "07");// 07 卡支付 payChannelDetail.put("payChannelValue", df.format(paymentInfo.getDebitPayAmount())); payChannelDetails.add(payChannelDetail); } if (paymentInfo.getRmbCashPayAmount().compareTo(ZERO) > 0) { - payChannelDetail = new JSONObject(); - payChannelDetail.put("payChannelCode", "02");// 02 现金 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + payChannelDetail.put("payChannelCode", "02");// 02 现金 payChannelDetail.put("payChannelValue", df.format(paymentInfo.getRmbCashPayAmount())); payChannelDetails.add(payChannelDetail); } else { - payChannelDetail = new JSONObject(); - payChannelDetail.put("payChannelCode", "02");// 02 现金 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + payChannelDetail.put("payChannelCode", "02");// 02 现金 payChannelDetail.put("payChannelValue", df.format(paymentInfo.getTotalAmt().subtract(paymentInfo.getWxPayAmount()) .subtract(paymentInfo.getAliPayAmount()).subtract(paymentInfo.getDebitPayAmount()))); payChannelDetails.add(payChannelDetail); } } else { - // 医保 - // 2025/10/20 长大异常情况 24.24+29.05+4.15》53.29,猜测实际医保段otherpay是包含在fundpay或者zhpay的某一个 - payChannelDetail = new JSONObject(); + // 医保 + // 2025/10/20 长大异常情况 24.24+29.05+4.15》53.29,猜测实际医保段otherpay是包含在fundpay或者zhpay的某一个 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); payChannelDetail.put("payChannelCode", "11"); // payChannelDetail.put("payChannelValue", df.format(paymentInfo.getYbFundPayAmount().add(paymentInfo // .getOtherPayAmount().add(paymentInfo.getZhPayAmount()).add(paymentInfo.getAelfYbZhGjValue())))); //payChannelDetail.put("payChannelValue", df.format(paymentInfo.getYbFundPayAmount() // .add(paymentInfo.getZhPayAmount()).add(paymentInfo.getAelfYbZhGjValue()))); - // 根据这几个医院的实际情况,医保支付金额先后刨除掉其他支付共济支付金额两项 + // 根据这几个医院的实际情况,医保支付金额先后刨除掉其他支付共济支付金额两项 payChannelDetail.put("payChannelValue", df.format(paymentInfo.getYbFundPayAmount() .add(paymentInfo.getZhPayAmount()))); payChannelDetails.add(payChannelDetail); - // 现金 + // 现金 if (paymentInfo.getWxPayAmount().compareTo(ZERO) > 0) { - payChannelDetail = new JSONObject(); - payChannelDetail.put("payChannelCode", "05");// 05 微信 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + payChannelDetail.put("payChannelCode", "05");// 05 微信 payChannelDetail.put("payChannelValue", df.format(paymentInfo.getWxPayAmount())); payChannelDetails.add(payChannelDetail); } if (paymentInfo.getAliPayAmount().compareTo(ZERO) > 0) { - payChannelDetail = new JSONObject(); - payChannelDetail.put("payChannelCode", "04");// 04 支付宝 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + payChannelDetail.put("payChannelCode", "04");// 04 支付宝 payChannelDetail.put("payChannelValue", df.format(paymentInfo.getAliPayAmount())); payChannelDetails.add(payChannelDetail); } if (paymentInfo.getDebitPayAmount().compareTo(ZERO) > 0) { - payChannelDetail = new JSONObject(); - payChannelDetail.put("payChannelCode", "07");// 07 卡支付 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + payChannelDetail.put("payChannelCode", "07");// 07 卡支付 payChannelDetail.put("payChannelValue", df.format(paymentInfo.getDebitPayAmount())); payChannelDetails.add(payChannelDetail); } if (paymentInfo.getRmbCashPayAmount().compareTo(ZERO) > 0) { - payChannelDetail = new JSONObject(); - payChannelDetail.put("payChannelCode", "02");// 02 现金 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + payChannelDetail.put("payChannelCode", "02");// 02 现金 payChannelDetail.put("payChannelValue", df.format(paymentInfo.getRmbCashPayAmount())); payChannelDetails.add(payChannelDetail); } else { BigDecimal cashpay = clinicSettle.getPsnCashPay().subtract(paymentInfo.getWxPayAmount()) .subtract(paymentInfo.getAliPayAmount()).subtract(paymentInfo.getDebitPayAmount()); if (cashpay.compareTo(ZERO) > 0) { - payChannelDetail = new JSONObject(); - payChannelDetail.put("payChannelCode", "02");// 02 现金 + payChannelDetail = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + payChannelDetail.put("payChannelCode", "02");// 02 现金 payChannelDetail.put("payChannelValue", df.format(cashpay)); payChannelDetails.add(payChannelDetail); } } } - bill.put("payChannelDetail", payChannelDetails); + bill.set("payChannelDetail", payChannelDetails); - // ------其它------ - // isArrears 是否可流通 String 1 是 0-否、1-是(如欠费情况根据医院业务要求该票据是否可流通) + // ------其它------ + // isArrears 是否可流通 String 1 是 0-否、1-是(如欠费情况根据医院业务要求该票据是否可流通) bill.put("isArrears", "0"); return bill; } /** - * 医疗电子票据红冲接口 + * 医疗电子票据红冲接口 * - * @param paymentId 原付款id - * @param reason 取消理由 - * @return 返回值 + * @param paymentId 原付款id + * @param reason 取消理由 + * @return 返回值 */ @RequestMapping("/invoiceWriteoff") @ResponseBody public R invoiceWriteoff(Long paymentId, String reason) { - // 获取当前登陆用户信息 + // 获取当前登陆用户信息 LoginUser loginUser = SecurityUtils.getLoginUser(); Practitioner user = practitionerService.getPractitionerByUserId(loginUser.getUserId()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); try { - // 关键校验:检查必填参数invoiceId是否存在,缺失则直接返回错误 + // 关键校验:检查必填参数invoiceId是否存在,缺失则直接返回错误 if (paymentId == null || paymentId == 0) { return R.fail(PromptMsgConstant.invoice.M00004); } @@ -1545,54 +1546,54 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { return R.fail(PromptMsgConstant.invoice.M00007); } - // 请求业务参数 + // 请求业务参数 // data--------------------------------------------------------------------------------------------------------------------- - JSONObject bill = new JSONObject(); - // billBatchCode 电子票据代码 String 50 是 + ObjectNode bill = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); + // billBatchCode 电子票据代码 String 50 是 bill.put("billBatchCode", invoice.getBillBatchCode()); - // billNo 电子票据号码 String 20 是 + // billNo 电子票据号码 String 20 是 bill.put("billNo", invoice.getBillNo()); - // reason 冲红原因 String 200 是 + // reason 冲红原因 String 200 是 bill.put("reason", reason); - // operator 经办人 String 60 是 + // operator 经办人 String 60 是 bill.put("operator", user.getName()); - // busDateTime 业务发生时间 String 17 是 yyyyMMddHHmmssSSS + // busDateTime 业务发生时间 String 17 是 yyyyMMddHHmmssSSS bill.put("busDateTime", sdf.format(new Date())); - // placeCode 开票点编码 String 50 是 + // placeCode 开票点编码 String 50 是 bill.put("placeCode", user.getKpdCode()); - JSONObject redata = new JSONObject(); + ObjectNode redata = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); String redata64; String srcdata; String srcmsg; - // JSONObject resobj = PreInvoicePostForward(bill, "api/medical/writeOffEBill"); - JSONObject resobj; - logger.info("************************************** 分 割 线 ***************************************"); - logger.info("冲红信息入参:" + JSON.toJSONString(bill)); - logger.info("———————————————————————————————————————————————————————————————————————————————————————"); - if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().getString("forwardSwitch"))) { + // JsonNode resobj = PreInvoicePostForward(bill, "api/medical/writeOffEBill"); + JsonNode resobj; + logger.info("************************************** 分 割 线 ***************************************"); + logger.info("冲红信息入参:" + JsonUtils.toJson(bill)); + logger.info("———————————————————————————————————————————————————————————————————————————————————————"); + if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().path("forwardSwitch").asText())) { resobj = PreInvoicePostForward(bill, "api/medical/writeOffEBill"); } else { resobj = PreInvoicePost(bill, "api/medical/writeOffEBill"); } - if (resobj.getBooleanValue("success")) { - JSONObject rejson = resobj.getJSONObject("result"); - if (rejson.getString("result").equals("S0000")) { - // 保存发票信息 - redata64 = rejson.getString("message").toString(); + if (resobj.path("success").asBoolean()) { + JsonNode rejson = resobj.path("result"); + if (rejson.path("result").asText().equals("S0000")) { + // 保存发票信息 + redata64 = rejson.path("message").asText().toString(); srcdata = new String(Base64.getDecoder().decode(redata64), StandardCharsets.UTF_8); - redata = JSONObject.parseObject(srcdata); - logger.info("冲红信息:" + JSON.toJSONString(redata)); - // 修改发票管理表数据 - // 状态 + redata = (ObjectNode) JsonUtils.parse(srcdata); + logger.info("冲红信息:" + JsonUtils.toJson(redata)); + // 修改发票管理表数据 + // 状态 invoice.setStatusEnum(InvoiceStatus.CANCELLED); boolean flgUpdate = invoiceService.updateById(invoice); if (!flgUpdate) { return R.fail(PromptMsgConstant.Common.M00011); } - // 查询退款的支付id + // 查询退款的支付id List paymentReconciliation = paymentReconciliationService.list(new LambdaQueryWrapper() .eq(PaymentReconciliation::getRelationId, paymentId) @@ -1604,47 +1605,47 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { return R.fail(PromptMsgConstant.invoice.M00009); } - // 向发票管理表中插入数据 + // 向发票管理表中插入数据 Invoice invoiceAdd = new Invoice(); - // 发票号 + // 发票号 invoiceAdd.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.INVOICE_NUM.getPrefix(), 4)); - // 患者ID + // 患者ID invoiceAdd.setPatientId(invoice.getPatientId()); - // 状态 + // 状态 invoiceAdd.setStatusEnum(InvoiceStatus.CANCELLED); - // 类别 + // 类别 invoiceAdd.setTypeCode(invoice.getTypeCode()); - // 取消原因 + // 取消原因 invoiceAdd.setCancelledReason(reason); - // 收费项 + // 收费项 invoiceAdd.setChargeItemIds(invoice.getChargeItemIds()); - // 发票净额总记 + // 发票净额总记 invoiceAdd.setTotalNet(invoice.getTotalNet()); - // 发票总计金额 + // 发票总计金额 invoiceAdd.setTotalGross(invoice.getTotalGross()); - // 付款详情 + // 付款详情 invoiceAdd.setPaymentTerms(invoice.getPaymentTerms()); - // 开票员 + // 开票员 invoiceAdd.setInvoicingStaffId(invoice.getInvoicingStaffId()); - // 支付id + // 支付id invoiceAdd.setReconciliationId(paymentReconciliation.get(0).getId()); - // 电子票据代码 电子红票票据代码 - invoiceAdd.setBillBatchCode(redata.getString("eScarletBillBatchCode")); - // 电子票据号码 电子红票票据号码 - invoiceAdd.setBillNo(redata.getString("eScarletBillNo")); - // 电子校验码 电子红票校验码 - invoiceAdd.setRandom(redata.getString("eScarletRandom")); - // 电子票据生成时间 电子红票生成时间 - invoiceAdd.setBillCreateTime(redata.getString("createTime")); - // 电子票据二维码图片数据 - invoiceAdd.setBillQrCode(redata.getString("billQRCode")); - // 电子票据H5页面URL - invoiceAdd.setPictureUrl(redata.getString("pictureUrl")); - // 电子票据外网H5页面URL - invoiceAdd.setPictureNetUrl(redata.getString("pictureNetUrl")); - // 票据营业日期 + // 电子票据代码 电子红票票据代码 + invoiceAdd.setBillBatchCode(redata.path("eScarletBillBatchCode").asText()); + // 电子票据号码 电子红票票据号码 + invoiceAdd.setBillNo(redata.path("eScarletBillNo").asText()); + // 电子校验码 电子红票校验码 + invoiceAdd.setRandom(redata.path("eScarletRandom").asText()); + // 电子票据生成时间 电子红票生成时间 + invoiceAdd.setBillCreateTime(redata.path("createTime").asText()); + // 电子票据二维码图片数据 + invoiceAdd.setBillQrCode(redata.path("billQRCode").asText()); + // 电子票据H5页面URL + invoiceAdd.setPictureUrl(redata.path("pictureUrl").asText()); + // 电子票据外网H5页面URL + invoiceAdd.setPictureNetUrl(redata.path("pictureNetUrl").asText()); + // 票据营业日期 //invoiceAdd.setBillBusDate( - //redata.getString("billBusDate") == "" ? null : sdf.parse(redata.getString("billBusDate"))); + //redata.path("billBusDate").asText() == "" ? null : sdf.parse(redata.path("billBusDate").asText())); Long invoiceIdAdd = invoiceService.addInvoice(invoiceAdd); if (invoiceIdAdd == null) { @@ -1652,15 +1653,15 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } return R.ok(invoiceAdd, - MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"电子发票冲红"})); + MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"电子发票冲红"})); } else { - redata.put("result", rejson.getString("result").toString()); - redata64 = rejson.getString("message").toString(); + redata.put("result", rejson.path("result").asText().toString()); + redata64 = rejson.path("message").asText().toString(); srcmsg = new String(Base64.getDecoder().decode(redata64), StandardCharsets.UTF_8); return R.fail(srcmsg); } } else { - return R.fail(resobj.getString("msg")); + return R.fail(resobj.path("msg").asText()); } } catch (Exception ex) { try { @@ -1672,10 +1673,10 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } /** - * 通过paymentId获取医保结算实体 + * 通过paymentId获取医保结算实体 * - * @param paymentId 付款id - * @return 查询结果 + * @param paymentId 付款id + * @return 查询结果 */ private InvoiceBaseInfoDto getClinicSettleByPaymentId(Long paymentId) { @@ -1686,59 +1687,59 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { InvoiceBaseInfoDto invoiceBaseInfoDto = initInvoiceBaseInfoDto(); for (PaymentRecDetail detail : details) { - // 现金 + // 现金 if (YbPayment.SELF_CASH_PAY.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setPsnCashPay(detail.getAmount()); } - // 个人现金 + // 个人现金 if (YbPayment.SELF_PAY.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setPsnPartAmt(detail.getAmount()); } - // 居民大病保险资金支出 + // 居民大病保险资金支出 if (YbPayment.YB_BC_JM_DB_VALUE.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setHifmiPay(detail.getAmount()); } - // 公务员补助 + // 公务员补助 if (YbPayment.YB_BC_GWY_BZ_VALUE.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setCvlservPay(detail.getAmount()); } - // 个人账户 + // 个人账户 if (YbPayment.SELF_YB_ZH_PAY.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setAcctPay(detail.getAmount()); } - // 基本统筹 + // 基本统筹 if (YbPayment.YB_TC_FUND_AMOUNT.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setHifpPay(detail.getAmount()); } - // 全自费金额 + // 全自费金额 if (YbPayment.FULAMT_OWNPAY_AMT.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setFulamtOwnpayAmt(detail.getAmount()); } - // 个人负担总金额 + // 个人负担总金额 //if (YbPayment.SELF_PAY.getValue().equals(detail.getPayEnum())) { // invoiceBaseInfoDto.setFulamtOwnpayAmt(detail.getAmount()); //} - // 基金支付总额 + // 基金支付总额 if (YbPayment.YB_FUND_PAY.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setFundPaySumamt(detail.getAmount()); } - // 个人医保账户支付 + // 个人医保账户支付 if (YbPayment.SELF_YB_ZH_PAY.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setAcctPay(detail.getAmount()); } - // 基本医保统筹基金支出 + // 基本医保统筹基金支出 if (YbPayment.YB_TC_FUND_AMOUNT.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setHifpPay(detail.getAmount()); } - // 超限价自费费用 + // 超限价自费费用 if (YbPayment.OVERLMT_SELFPAY.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setOverlmtSelfpay(detail.getAmount()); } - // 先行自付费用 + // 先行自付费用 if (YbPayment.PRESELFPAY_AMT.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setPreselfpayAmt(detail.getAmount()); } - // 学校垫支 + // 学校垫支 if (YbPayment.SCHOOL_GF_PAY.getValue().equals(detail.getPayEnum())) { invoiceBaseInfoDto.setGfRatio(detail.getAmount()); } @@ -1747,9 +1748,9 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService { } /** - * 初始化发票参数 + * 初始化发票参数 * - * @return 发票参数 + * @return 发票参数 */ private InvoiceBaseInfoDto initInvoiceBaseInfoDto() { InvoiceBaseInfoDto clinicSettle = new InvoiceBaseInfoDto(); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/IChargeBillServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/IChargeBillServiceImpl.java index 1e086eaaf..8b433dc5f 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/IChargeBillServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/IChargeBillServiceImpl.java @@ -1,7 +1,7 @@ package com.healthlink.his.web.paymentmanage.appservice.impl; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.core.common.core.domain.R; @@ -137,111 +137,111 @@ public class IChargeBillServiceImpl implements IChargeBillService { public Map getDetail(Long paymentId) { Map map = new HashMap<>(); - // 查询 + // 查询 PaymentReconciliation paymentReconciliation = paymentReconciliationService.getById(paymentId); if (paymentReconciliation == null) { - throw new ServiceException("未查询到付款信息"); + throw new ServiceException("未查询到付款信息"); } - map.put("paymentId", paymentReconciliation.getPaymentNo());// 结算id - map.put("paymentAmount", paymentReconciliation.getTenderedAmount());// 应收金额 + map.put("paymentId", paymentReconciliation.getPaymentNo());// 结算id + map.put("paymentAmount", paymentReconciliation.getTenderedAmount());// 应收金额 Practitioner practitioner = iPractitionerService.getById(paymentReconciliation.getEntererId()); - map.put("paymentEmployee", practitioner == null ? "" : practitioner.getName());// 收费员 - map.put("chargeTime", paymentReconciliation.getBillDate());// 收费时间 + map.put("paymentEmployee", practitioner == null ? "" : practitioner.getName());// 收费员 + map.put("chargeTime", paymentReconciliation.getBillDate());// 收费时间 Patient patient = iPatientService.getById(paymentReconciliation.getPatientId()); if (patient == null) { - throw new ServiceException("未查询到患者信息"); + throw new ServiceException("未查询到患者信息"); } - map.put("patientName", patient.getName());// 患者姓名 + map.put("patientName", patient.getName());// 患者姓名 - map.put("sex", patient.getGenderEnum());// 性别 - map.put("idCardNo", patient.getIdCard());// 身份证号 - map.put("birthDay", patient.getBirthDate());// 出生日期 - map.put("age", AgeCalculatorUtil.calculateAge(patient.getBirthDate()));// 出生日期 + map.put("sex", patient.getGenderEnum());// 性别 + map.put("idCardNo", patient.getIdCard());// 身份证号 + map.put("birthDay", patient.getBirthDate());// 出生日期 + map.put("age", AgeCalculatorUtil.calculateAge(patient.getBirthDate()));// 出生日期 Encounter encounter = iEncounterService.getById(paymentReconciliation.getEncounterId()); if (patient == null) { - throw new ServiceException("未查询到就诊信息"); + throw new ServiceException("未查询到就诊信息"); } - map.put("classEnum", encounter.getYbClassEnum());// 门诊/住院 - map.put("regNo", encounter.getBusNo());// 门诊号 + map.put("classEnum", encounter.getYbClassEnum());// 门诊/住院 + map.put("regNo", encounter.getBusNo());// 门诊号 List encounterParticipantListByTypeCode = iEncounterParticipantService.getEncounterParticipantListByTypeCode(encounter.getId(), ParticipantType.ADMITTER); if (!encounterParticipantListByTypeCode.isEmpty()) { Practitioner doctor = iPractitionerService.getById(encounterParticipantListByTypeCode.get(0).getPractitionerId()); - map.put("doctor", doctor == null ? "" : doctor.getName());// 接诊医生 + map.put("doctor", doctor == null ? "" : doctor.getName());// 接诊医生 } List paymentRecDetails = paymentRecDetailService .list(new LambdaQueryWrapper().eq(PaymentRecDetail::getReconciliationId, paymentId)); if (paymentRecDetails.isEmpty()) { - throw new ServiceException("未查询到付款信息"); + throw new ServiceException("未查询到付款信息"); } - map.put("detail", paymentRecDetails);// 支付详细 + map.put("detail", paymentRecDetails);// 支付详细 BigDecimal amount = BigDecimal.ZERO; for (PaymentRecDetail paymentRecDetail : paymentRecDetails) { if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.SELF_YB_ZH_PAY.getValue())) { - map.put("ybAccountPay", paymentRecDetail.getAmount());// 医保账户支付 + map.put("ybAccountPay", paymentRecDetail.getAmount());// 医保账户支付 amount = amount.add(paymentRecDetail.getAmount()); } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.BALC.getValue())) { - map.put("ybAccountBalc", paymentRecDetail.getAmount());// 医保账户余额(现) + map.put("ybAccountBalc", paymentRecDetail.getAmount());// 医保账户余额(现) } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.YB_FUND_PAY.getValue())) { - map.put("ybFundPay", paymentRecDetail.getAmount());// 基金支付总额 + map.put("ybFundPay", paymentRecDetail.getAmount());// 基金支付总额 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.YB_TC_FUND_AMOUNT.getValue())) { - map.put("ybTcPay", paymentRecDetail.getAmount());// 统筹支付金额 + map.put("ybTcPay", paymentRecDetail.getAmount());// 统筹支付金额 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.YB_BC_GWY_BZ_VALUE.getValue())) { - map.put("ybGWYPay", paymentRecDetail.getAmount());// 公务员补助 + map.put("ybGWYPay", paymentRecDetail.getAmount());// 公务员补助 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.OTHER_PAY.getValue())) { - map.put("ybOtherPay", paymentRecDetail.getAmount());// 其他支付 + map.put("ybOtherPay", paymentRecDetail.getAmount());// 其他支付 } - // 下面两个大额理赔有哪个用哪个,无所谓的 + // 下面两个大额理赔有哪个用哪个,无所谓的 if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.YB_BC_DE_BZ_VALUE.getValue())) { - map.put("ybDELPPay", paymentRecDetail.getAmount());// 大额理赔(常规) + map.put("ybDELPPay", paymentRecDetail.getAmount());// 大额理赔(常规) } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.YB_BC_ZG_DE_BZ_VALUE.getValue())) { - map.put("ybDELPPay", paymentRecDetail.getAmount());// 大额理赔(企业) + map.put("ybDELPPay", paymentRecDetail.getAmount());// 大额理赔(企业) } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.E_WALLET.getValue())) { - map.put("ybWallet", paymentRecDetail.getAmount());// 电子钱包 + map.put("ybWallet", paymentRecDetail.getAmount());// 电子钱包 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.SUPPLEMENTARY_INSURANCE.getValue())) { - map.put("ybWallet", paymentRecDetail.getAmount());// 居民大病报销 + map.put("ybWallet", paymentRecDetail.getAmount());// 居民大病报销 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.SELF_CASH_VALUE.getValue())) { - map.put("cash", paymentRecDetail.getAmount());// 现金 + map.put("cash", paymentRecDetail.getAmount());// 现金 amount = amount.add(paymentRecDetail.getAmount()); } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.SELF_CASH_VX_VALUE.getValue())) { - map.put("wxCash", paymentRecDetail.getAmount());// 现金(微信) + map.put("wxCash", paymentRecDetail.getAmount());// 现金(微信) amount = amount.add(paymentRecDetail.getAmount()); } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.SELF_CASH_ALI_VALUE.getValue())) { - map.put("aliCash", paymentRecDetail.getAmount());// 现金(支付宝) + map.put("aliCash", paymentRecDetail.getAmount());// 现金(支付宝) amount = amount.add(paymentRecDetail.getAmount()); } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.INSCP_SCP_AMT.getValue())) { - map.put("FHZCAmount", paymentRecDetail.getAmount());// 符合政策金额 + map.put("FHZCAmount", paymentRecDetail.getAmount());// 符合政策金额 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.INSCP_SCP_AMT.getValue())) { - map.put("FHZCAmount", paymentRecDetail.getAmount());// 符合政策金额 + map.put("FHZCAmount", paymentRecDetail.getAmount());// 符合政策金额 } } - map.put("realAmount", amount);// 实收金额 + map.put("realAmount", amount);// 实收金额 Invoice invoice = iInvoiceService.getOne(new LambdaQueryWrapper() .eq(Invoice::getReconciliationId, paymentId).eq(Invoice::getStatusEnum, InvoiceStatus.ISSUED.getValue()) .orderByDesc(Invoice::getCreateTime).last(YbCommonConstants.sqlConst.LIMIT1)); if (invoice != null) { - map.put("invoiceNo", invoice.getBillNo());// 支付详细 - map.put("pictureUrl", invoice.getPictureUrl());// 图片 + map.put("invoiceNo", invoice.getBillNo());// 支付详细 + map.put("pictureUrl", invoice.getPictureUrl());// 图片 } List chargeItemIdList = Arrays.stream(paymentReconciliation.getChargeItemIds().split(",")) @@ -269,25 +269,25 @@ public class IChargeBillServiceImpl implements IChargeBillService { .setTotalPrice(chargeItem.getTotalPrice()).setQuantityUnit(chargeItem.getQuantityUnit()) .setTotalVolume(device.getSize()).setQuantityValue(chargeItem.getQuantityValue()); } else if (CommonConstants.TableName.WOR_ACTIVITY_DEFINITION.equals(chargeItem.getProductTable())) { - // 🔧 BugFix#385: 检查申请创建的收费项 productId=0,需从 ServiceRequest.contentJson 获取项目名称 + // 🔧 BugFix#385: 检查申请创建的收费项 productId=0,需从 ServiceRequest.contentJson 获取项目名称 if (chargeItem.getProductId() != null && chargeItem.getProductId() > 0) { ActivityDefinition activity = iActivityDefinitionService.getById(chargeItem.getProductId()); chargeItemDetailVO.setDirClass(activity.getChrgitmLv() + "").setChargeItemName(activity.getName()) .setTotalPrice(chargeItem.getTotalPrice()).setQuantityUnit(chargeItem.getQuantityUnit()) .setTotalVolume("").setQuantityValue(chargeItem.getQuantityValue()); } else { - // productId=0 时,从关联的 ServiceRequest 获取项目名称 + // productId=0 时,从关联的 ServiceRequest 获取项目名称 ServiceRequest serviceRequest = iServiceRequestService.getById(chargeItem.getServiceId()); - String itemName = "未知项目"; - String dirClass = "3"; // 默认诊疗类 + String itemName = "未知项目"; + String dirClass = "3"; // 默认诊疗类 if (serviceRequest != null && serviceRequest.getContentJson() != null) { try { - JSONObject json = JSON.parseObject(serviceRequest.getContentJson()); - if (json.containsKey("adviceName")) { - itemName = json.getString("adviceName"); + JsonNode json = JsonUtils.parse(serviceRequest.getContentJson()); + if (json.has("adviceName")) { + itemName = json.path("adviceName").asText(); } } catch (Exception e) { - log.warn("解析ServiceRequest.contentJson失败: {}", e.getMessage()); + log.warn("解析ServiceRequest.contentJson失败: {}", e.getMessage()); } } chargeItemDetailVO.setDirClass(dirClass).setChargeItemName(itemName) @@ -302,39 +302,39 @@ public class IChargeBillServiceImpl implements IChargeBillService { } chargeItemDetailList.add(chargeItemDetailVO); } - map.put("chargeItem", chargeItemDetailList);// 收费项 + map.put("chargeItem", chargeItemDetailList);// 收费项 if (chargeItemList.isEmpty()) { - throw new ServiceException("未查询到收费项"); + throw new ServiceException("未查询到收费项"); } // Encounter encounter = iEncounterService.getById(paymentReconciliation.getEncounterId()); if (encounter == null) { - throw new ServiceException("未查询到就诊信息"); + throw new ServiceException("未查询到就诊信息"); } - map.put("classEnum", encounter.getYbClassEnum());// 门诊/住院 - map.put("regNo", encounter.getBusNo());// 门诊号 + map.put("classEnum", encounter.getYbClassEnum());// 门诊/住院 + map.put("regNo", encounter.getBusNo());// 门诊号 Account account = iAccountService.getOne(new LambdaQueryWrapper() .eq(Account::getEncounterId, encounter.getId()).eq(Account::getEncounterFlag, Whether.YES.getValue())); if (account == null) { - throw new ServiceException("未查询到就诊信息"); + throw new ServiceException("未查询到就诊信息"); } InfoPerson perinfo = iPerinfoService.getOne(new LambdaQueryWrapper() .eq(InfoPerson::getCertno, patient.getIdCard()).eq(InfoPerson::getTenantId, patient.getTenantId()) .orderByDesc(InfoPerson::getCreateTime).last(YbCommonConstants.sqlConst.LIMIT1)); if (perinfo != null) { - map.put("personType", perinfo.getInsutype());// 人员类别:职工医保,居民医保等;如果为空显示自费或其他 - map.put("insuplcAdmdvs", perinfo.getInsuplcAdmdvs());// 患者参保地区划 + map.put("personType", perinfo.getInsutype());// 人员类别:职工医保,居民医保等;如果为空显示自费或其他 + map.put("insuplcAdmdvs", perinfo.getInsuplcAdmdvs());// 患者参保地区划 } Contract contract = contractService.getOne(new LambdaQueryWrapper().eq(Contract::getBusNo, account.getContractNo())); if (contract == null) { - throw new ServiceException("未查询到合同信息"); + throw new ServiceException("未查询到合同信息"); } map.put("contractName", contract.getContractName()); - // 查询主诊断信息 + // 查询主诊断信息 EncounterDiagnosis encounterDiagnosis = iEncounterDiagnosisService.getOne( new LambdaQueryWrapper().eq(EncounterDiagnosis::getEncounterId, encounter.getId()) .eq(EncounterDiagnosis::getMaindiseFlag, Whether.YES.getValue()) @@ -348,7 +348,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { = iConditionDefinitionService.getOne(new LambdaQueryWrapper() .eq(ConditionDefinition::getId, condition.getDefinitionId())); if (conditionDefinition != null) { - map.put("conditionDefinition", conditionDefinition.getName());// 诊断名 + map.put("conditionDefinition", conditionDefinition.getName());// 诊断名 } } } @@ -372,16 +372,16 @@ public class IChargeBillServiceImpl implements IChargeBillService { Long definitionId = chargeItem.getDefinitionId(); - // 🔧 BugFix#385: 检查申请创建的收费项 definition_id=0,chargeItemDefinition 会为 null + // 🔧 BugFix#385: 检查申请创建的收费项 definition_id=0,chargeItemDefinition 会为 null ChargeItemDefinition chargeItemDefinition = null; if (definitionId != null && definitionId > 0) { chargeItemDefinition = iChargeItemDefinitionService.getById(definitionId); } - // 当 definitionId=0 或 chargeItemDefinition 为 null 时,跳过医保分类统计 - // 检查类项目默认归类为"检查费" + // 当 definitionId=0 或 chargeItemDefinition 为 null 时,跳过医保分类统计 + // 检查类项目默认归类为"检查费" if (chargeItemDefinition == null) { - // 检查申请的收费项,归类为检查费(03) + // 检查申请的收费项,归类为检查费(03) sum03 = sum03.add(chargeItem.getTotalPrice()); continue; } @@ -434,34 +434,34 @@ public class IChargeBillServiceImpl implements IChargeBillService { break; } } - map.put("BED_FEE", sum01);// 床位费 - map.put("DIAGNOSTIC_FEE", sum02);// 诊察费 - map.put("CHECK_FEE", sum03);// 检查费 - map.put("DIAGNOSTIC_TEST_FEE", sum04);// 化验费 - map.put("MEDICAL_EXPENSE_FEE", sum05);// 治疗费 - map.put("OPERATION_FEE", sum06);// 手术费 - map.put("NURSING_FEE", sum07);// 护理费 - map.put("SANITARY_MATERIALS_FEE", sum08);// 卫生材料费 - map.put("WEST_MEDICINE", sum09);// 西药费 - map.put("CHINESE_MEDICINE_SLICES_FEE", sum10);// 中药饮片费 - map.put("CHINESE_MEDICINE_FEE", sum11);// 中成药费 - map.put("GENERAL_CONSULTATION_FEE", sum12);// 一般诊疗费 - map.put("REGISTRATION_FEE", sum13);// 挂号费 - map.put("OTHER_FEE", sum14);// 其他费用 + map.put("BED_FEE", sum01);// 床位费 + map.put("DIAGNOSTIC_FEE", sum02);// 诊察费 + map.put("CHECK_FEE", sum03);// 检查费 + map.put("DIAGNOSTIC_TEST_FEE", sum04);// 化验费 + map.put("MEDICAL_EXPENSE_FEE", sum05);// 治疗费 + map.put("OPERATION_FEE", sum06);// 手术费 + map.put("NURSING_FEE", sum07);// 护理费 + map.put("SANITARY_MATERIALS_FEE", sum08);// 卫生材料费 + map.put("WEST_MEDICINE", sum09);// 西药费 + map.put("CHINESE_MEDICINE_SLICES_FEE", sum10);// 中药饮片费 + map.put("CHINESE_MEDICINE_FEE", sum11);// 中成药费 + map.put("GENERAL_CONSULTATION_FEE", sum12);// 一般诊疗费 + map.put("REGISTRATION_FEE", sum13);// 挂号费 + map.put("OTHER_FEE", sum14);// 其他费用 - // String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); - String fixmedinsName = optionJson.getString(CommonConstants.Option.FIXMEDINS_NAME); - String fixmedinsCode = optionJson.getString(CommonConstants.Option.FIXMEDINS_CODE); + // String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); + String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText(); + String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText(); - map.put("fixmedinsName", fixmedinsName);// 医院名称 - map.put("fixmedinsCode", fixmedinsCode);// 医院编号 + map.put("fixmedinsName", fixmedinsName);// 医院名称 + map.put("fixmedinsCode", fixmedinsCode);// 医院编号 return map; } /** - * 农大版本 + * 农大版本 * * @param * @return @@ -475,7 +475,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { Date startDate = DateUtils.parseDate(startTime); Date endDate = DateUtils.parseDate(endTime); - // 查询所有的支付 + // 查询所有的支付 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .between(PaymentReconciliation::getBillDate, startDate, endDate) .eq(PaymentReconciliation::getDeleteFlag, DelFlag.NO.getCode()) @@ -489,7 +489,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { if (paymentReconciliationList.isEmpty()) { return getMap(map); } - // 调试使用 + // 调试使用 // for (PaymentReconciliation paymentReconciliation : paymentReconciliationList) { // String[] split = paymentReconciliation.getChargeItemIds().split(","); // List strings = Arrays.asList(split); @@ -497,12 +497,12 @@ public class IChargeBillServiceImpl implements IChargeBillService { // ChargeItem byId = chargeItemService.getById(Long.parseLong(string)); // if ("adm_healthcare_service".equals(byId.getServiceTable())) { // log.info("//****************************"); - // log.info(JSON.toJSONString(byId)); + // log.info(JsonUtils.toJson(byId)); // } // } // } - // 查询所有的支付详情 + // 查询所有的支付详情 List paymentIdList = paymentReconciliationList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList()); List paymentDetails = paymentRecDetailService @@ -525,29 +525,29 @@ public class IChargeBillServiceImpl implements IChargeBillService { } Map> paymentDetailsKV = paymentDetails.stream().collect(Collectors.groupingBy(PaymentRecDetail::getReconciliationId)); - // 声明变量,符合要求的付款记录 + // 声明变量,符合要求的付款记录 Collection PaymentReconciliationList; List accountList = new ArrayList<>(); if (!StringUtils.isEmpty(contractNo)) { - // 查询账户信息用来区分省市医保 + // 查询账户信息用来区分省市医保 List accountIds = paymentDetails.stream().map(PaymentRecDetail::getAccountId).collect(Collectors.toList()); if (accountIds.isEmpty()) { - throw new ServiceException("查询账户信息为空"); + throw new ServiceException("查询账户信息为空"); } accountList = iAccountService.list(new LambdaQueryWrapper().in(Account::getId, accountIds)); - // 留下符合条件的付款记录 + // 留下符合条件的付款记录 Map paymentMap = new HashMap<>(); for (PaymentRecDetail paymentDetail : paymentDetails) { Optional first = accountList.stream().filter(x -> x.getId().equals(paymentDetail.getAccountId())).findFirst(); - // 账户不符合要求的筛出掉 + // 账户不符合要求的筛出掉 if (first.isEmpty() || !first.get().getContractNo().equals(contractNo)) { continue; } - // 付款记录里匹配不上筛出掉 + // 付款记录里匹配不上筛出掉 Optional first1 = paymentReconciliationList.stream() .filter(x -> x.getId().equals(paymentDetail.getReconciliationId())).findFirst(); if (first1.isEmpty()) { @@ -556,16 +556,16 @@ public class IChargeBillServiceImpl implements IChargeBillService { paymentMap.put(paymentDetail.getReconciliationId(), first1.get()); } - // 符合省市医保或自费要求的付款实体集合 + // 符合省市医保或自费要求的付款实体集合 PaymentReconciliationList = paymentMap.values(); } else { - // 时间段内的全部付款记录 + // 时间段内的全部付款记录 PaymentReconciliationList = paymentReconciliationList; } if (PaymentReconciliationList.isEmpty()) { return getMap(map); } - // 查询所有的收费项 + // 查询所有的收费项 List chargeItemIdStrs = PaymentReconciliationList.stream().map(PaymentReconciliation::getChargeItemIds) .collect(Collectors.toList()); List chargeItemIds = new ArrayList<>(); @@ -584,30 +584,30 @@ public class IChargeBillServiceImpl implements IChargeBillService { List chargeItemList = chargeItemService.list(new LambdaQueryWrapper() .in(ChargeItem::getId, chargeItemIds).eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode())); if (paymentDetails.isEmpty()) { - throw new ServiceException("数据异常,该时间段内未查询到收费项"); + throw new ServiceException("数据异常,该时间段内未查询到收费项"); } // for (ChargeItem chargeItem : chargeItemList) { // if("adm_healthcare_service".equals(chargeItem.getServiceTable())){ // log.info("//****************************"); - // log.info(JSON.toJSONString(chargeItem)); + // log.info(JsonUtils.toJson(chargeItem)); // } // } - // 查询收费定义列表 + // 查询收费定义列表 List chargeItemDefinitionIdList = chargeItemList.stream().map(ChargeItem::getDefinitionId).collect(Collectors.toList()); if (chargeItemDefinitionIdList.isEmpty()) { - throw new ServiceException("未查询到收费记录,无收费项信息"); + throw new ServiceException("未查询到收费记录,无收费项信息"); } List chargeItemDefinitions = iChargeItemDefinitionService.listByIds(chargeItemDefinitionIdList); if (chargeItemDefinitions.isEmpty()) { - throw new ServiceException("未查询到收费记录,无收费项信息"); + throw new ServiceException("未查询到收费记录,无收费项信息"); } Map> chargeItemDefKV = chargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getId)); - // 查询医保结算id + // 查询医保结算id List settleIds = new ArrayList<>(); for (PaymentReconciliation paymentReconciliation : paymentReconciliationList) { if (!StringUtils.isEmpty(paymentReconciliation.getYbSettleIds())) { @@ -621,18 +621,18 @@ public class IChargeBillServiceImpl implements IChargeBillService { // List collect = clinicSettle.stream().map(ClinicSettle::getInsutype).collect(Collectors.toList()); } - BigDecimal cashSum = BigDecimal.ZERO;// 现金总数 = rmbCashSum + vxCashSum + aliCashSum + uniCashSum - BigDecimal rmbCashSum = BigDecimal.ZERO;// 现金总数 - BigDecimal vxCashSum = BigDecimal.ZERO;// 现金总数() - BigDecimal aliCashSum = BigDecimal.ZERO;// 现金总数() - BigDecimal uniCashSum = BigDecimal.ZERO;// 现金总数() - BigDecimal vxSum = BigDecimal.ZERO;// 微信总数 - BigDecimal aliSum = BigDecimal.ZERO;// 支付宝总数 - BigDecimal uniSum = BigDecimal.ZERO;// 银行卡总数 - BigDecimal tcSum = BigDecimal.ZERO;// 基本统筹 - BigDecimal zhSum = BigDecimal.ZERO;// 医保账户 - BigDecimal fundSum = BigDecimal.ZERO;// 基金支总额 - // 农大版本只查询收款员,日期,现金多少钱,挂号费多少钱 + BigDecimal cashSum = BigDecimal.ZERO;// 现金总数 = rmbCashSum + vxCashSum + aliCashSum + uniCashSum + BigDecimal rmbCashSum = BigDecimal.ZERO;// 现金总数 + BigDecimal vxCashSum = BigDecimal.ZERO;// 现金总数() + BigDecimal aliCashSum = BigDecimal.ZERO;// 现金总数() + BigDecimal uniCashSum = BigDecimal.ZERO;// 现金总数() + BigDecimal vxSum = BigDecimal.ZERO;// 微信总数 + BigDecimal aliSum = BigDecimal.ZERO;// 支付宝总数 + BigDecimal uniSum = BigDecimal.ZERO;// 银行卡总数 + BigDecimal tcSum = BigDecimal.ZERO;// 基本统筹 + BigDecimal zhSum = BigDecimal.ZERO;// 医保账户 + BigDecimal fundSum = BigDecimal.ZERO;// 基金支总额 + // 农大版本只查询收款员,日期,现金多少钱,挂号费多少钱 for (PaymentRecDetail paymentDetail : paymentDetails) { if (!StringUtils.isEmpty(contractNo)) { @@ -667,10 +667,10 @@ public class IChargeBillServiceImpl implements IChargeBillService { if (YbPayment.SELF_YB_ZH_PAY.getValue().equals(paymentDetail.getPayEnum())) { zhSum = zhSum.add(paymentDetail.getAmount()); } - // 其他的大病支付或者慢病特病支付往下接if + // 其他的大病支付或者慢病特病支付往下接if } - // 处理退费单 + // 处理退费单 List returnList = new ArrayList<>(); List returnPaymentList = new ArrayList<>(); ReturnBillVO returnBillVO; @@ -712,18 +712,18 @@ public class IChargeBillServiceImpl implements IChargeBillService { returnBillVO.setPaymentNo(paymentReconciliation.getPaymentNo()); returnList.add(returnBillVO); } - map.put("returnList", returnList);// 退费单 + map.put("returnList", returnList);// 退费单 } } - map.put("cashSum", cashSum);// 现金支付 - map.put("rmbCashSum", rmbCashSum);// 现金支付 - map.put("vxCashSum", vxCashSum);// 现金支付() - map.put("aliCashSum", aliCashSum);// 现金支付() - map.put("uniCashSum", uniCashSum);// 现金支付() - map.put("tcSum", tcSum);// 基本统筹 - map.put("zhSum", zhSum);// 账户支付 - map.put("fundSum", fundSum);// 基金支付总额 + map.put("cashSum", cashSum);// 现金支付 + map.put("rmbCashSum", rmbCashSum);// 现金支付 + map.put("vxCashSum", vxCashSum);// 现金支付() + map.put("aliCashSum", aliCashSum);// 现金支付() + map.put("uniCashSum", uniCashSum);// 现金支付() + map.put("tcSum", tcSum);// 基本统筹 + map.put("zhSum", zhSum);// 账户支付 + map.put("fundSum", fundSum);// 基金支付总额 BigDecimal sum01 = BigDecimal.ZERO; BigDecimal sum02 = BigDecimal.ZERO; @@ -741,7 +741,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { BigDecimal sum14 = BigDecimal.ZERO; BigDecimal sum15 = BigDecimal.ZERO; - // 不同医院收费项统计内容不定,下面统计分两个for循环部分统计,一部分按照医保分类统计,一个是按照财务类型的字典去分类 + // 不同医院收费项统计内容不定,下面统计分两个for循环部分统计,一部分按照医保分类统计,一个是按照财务类型的字典去分类 for (ChargeItem chargeItem : chargeItemList) { if (!chargeItem.getStatusEnum().equals(ChargeItemStatus.BILLED.getValue()) @@ -801,36 +801,36 @@ public class IChargeBillServiceImpl implements IChargeBillService { break; } } - map.put("BED_FEE", sum01);// 床位费 - map.put("DIAGNOSTIC_FEE", sum02);// 诊察费 - map.put("CHECK_FEE", sum03);// 检查费 - map.put("DIAGNOSTIC_TEST_FEE", sum04);// 化验费 - map.put("MEDICAL_EXPENSE_FEE", sum05);// 治疗费 - map.put("OPERATION_FEE", sum06);// 手术费 - map.put("NURSING_FEE", sum07);// 护理费 - map.put("SANITARY_MATERIALS_FEE", sum08);// 卫生材料费 - map.put("WEST_MEDICINE", sum09);// 西药费 - map.put("CHINESE_MEDICINE_SLICES_FEE", sum10);// 中药饮片费 - map.put("CHINESE_MEDICINE_FEE", sum11);// 中成药费 - map.put("GENERAL_CONSULTATION_FEE", sum12);// 一般诊疗费 - map.put("REGISTRATION_FEE", sum13);// 挂号费 - map.put("OTHER_FEE", sum14);// 其他费用 + map.put("BED_FEE", sum01);// 床位费 + map.put("DIAGNOSTIC_FEE", sum02);// 诊察费 + map.put("CHECK_FEE", sum03);// 检查费 + map.put("DIAGNOSTIC_TEST_FEE", sum04);// 化验费 + map.put("MEDICAL_EXPENSE_FEE", sum05);// 治疗费 + map.put("OPERATION_FEE", sum06);// 手术费 + map.put("NURSING_FEE", sum07);// 护理费 + map.put("SANITARY_MATERIALS_FEE", sum08);// 卫生材料费 + map.put("WEST_MEDICINE", sum09);// 西药费 + map.put("CHINESE_MEDICINE_SLICES_FEE", sum10);// 中药饮片费 + map.put("CHINESE_MEDICINE_FEE", sum11);// 中成药费 + map.put("GENERAL_CONSULTATION_FEE", sum12);// 一般诊疗费 + map.put("REGISTRATION_FEE", sum13);// 挂号费 + map.put("OTHER_FEE", sum14);// 其他费用 sum15 = sum01.add(sum02).add(sum03).add(sum04).add(sum05).add(sum06).add(sum07).add(sum08).add(sum09).add(sum10) .add(sum11).add(sum12).add(sum13).add(sum14); - map.put("SUM", sum15);// 合计费用 + map.put("SUM", sum15);// 合计费用 - // String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); - String fixmedinsName = optionJson.getString(CommonConstants.Option.FIXMEDINS_NAME); - String fixmedinsCode = optionJson.getString(CommonConstants.Option.FIXMEDINS_CODE); + // String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); + String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText(); + String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText(); map.put("fixmedinsName", fixmedinsName); map.put("fixmedinsCode", fixmedinsCode); - // 以chargeItem 的def为循环分类依据 + // 以chargeItem çš„def为循环分类依据 for (ChargeItemDefinition chargeItemDefinition : chargeItemDefinitions) { if (chargeItemDefinition.getTypeCode() == null) { - throw new ServiceException("收费定义未设置财务分类,提示信息chargeItemDefinitionId:" + chargeItemDefinition.getId()); + throw new ServiceException("收费定义未设置财务分类,提示信息chargeItemDefinitionId:" + chargeItemDefinition.getId()); } } Map> chargeItemDefMapByTypeCode @@ -857,7 +857,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { } /** - * 长大版本(门诊) 2025/08/06版 + * 长大版本(门诊) 2025/08/06版 * * @param * @return @@ -871,7 +871,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { Date startDate = DateUtils.parseDate(startTime); Date endDate = DateUtils.parseDate(endTime); - // 查询所有的门诊支付记录(包含4种类型单据:a:该时间内的正向交易记录;b:该时间内的反向交易记录,但关联的正向单在该时间内;c:该时间内的反向交易记录,但是关联正向单在该时间之前;d:该时间内的正向交易记录,但是关联反向单在该时间之后;) + // 查询所有的门诊支付记录(包含4种类型单据:a:该时间内的正向交易记录;b:该时间内的反向交易记录,但关联的正向单在该时间内;c:该时间内的反向交易记录,但是关联正向单在该时间之前;d:该时间内的正向交易记录,但是关联反向单在该时间之后;) LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .between(PaymentReconciliation::getBillDate, startDate, endDate) .eq(PaymentReconciliation::getDeleteFlag, DelFlag.NO.getCode()) @@ -893,11 +893,11 @@ public class IChargeBillServiceImpl implements IChargeBillService { // ChargeItem byId = chargeItemService.getById(Long.parseLong(string)); // if ("adm_healthcare_service".equals(byId.getServiceTable())) { // log.info("//****************************"); - // log.info(JSON.toJSONString(byId)); + // log.info(JsonUtils.toJson(byId)); // } // } // } - // 查询所有的支付详情 + // 查询所有的支付详情 List paymentIdList = paymentReconciliationList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList()); // List paymentDetails = paymentRecDetailService @@ -910,11 +910,11 @@ public class IChargeBillServiceImpl implements IChargeBillService { return getMap(map); } - // 根据主键分组 + // 根据主键分组 Map> paymentDetailsKV = PaymentRecDetailAccountResultList.stream() .collect(Collectors.groupingBy(PaymentRecDetailAccountResult::getReconciliationId)); - // 调试使用代码 + // 调试使用代码 // for (PaymentReconciliation paymentReconciliation : paymentReconciliationList) { // List paymentRecDetailAccountResults = // paymentDetailsKV.get(paymentReconciliation.getId()); @@ -934,7 +934,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { // log.info("//////**********************///////"); // log.info("payment:" + paymentReconciliation.getId()); // log.info("paymentAmount:" + paymentReconciliation.getTenderedAmount()); - // log.info("payment应收:" + paymentReconciliation.getDisplayAmount()); + // log.info("payment应收:" + paymentReconciliation.getDisplayAmount()); // log.info("//////**********************///////"); // } // if (paymentReconciliation.getStatusEnum() == 3) { @@ -946,14 +946,14 @@ public class IChargeBillServiceImpl implements IChargeBillService { // BigDecimal bigDecimal1 = BigDecimal.ZERO; // for (ChargeItemBaseInfoDto chargeItemBaseInfoById : chargeItemBaseInfoByIds) { // bigDecimal1 = bigDecimal1.add(chargeItemBaseInfoById.getTotalPrice()); - // log.info("收费项:" + chargeItemBaseInfoById.getTotalPrice()); + // log.info("收费项:" + chargeItemBaseInfoById.getTotalPrice()); // } - // log.info("付款:" + paymentReconciliation.getTenderedAmount()); + // log.info("付款:" + paymentReconciliation.getTenderedAmount()); // if (bigDecimal1.compareTo(paymentReconciliation.getTenderedAmount()) != 0) { // log.info("//////**********************///////"); // log.info("payment:" + paymentReconciliation.getId()); // log.info("paymentAmount:" + paymentReconciliation.getTenderedAmount()); - // log.info("payment应收:" + paymentReconciliation.getDisplayAmount()); + // log.info("payment应收:" + paymentReconciliation.getDisplayAmount()); // log.info("//////**********************///////"); // } // } @@ -965,14 +965,14 @@ public class IChargeBillServiceImpl implements IChargeBillService { // .like(PaymentReconciliation::getChargeItemIds, chargeItem.getId()) // .eq(PaymentReconciliation::getStatusEnum, 1)); // if (one == null) { - // throw new ServiceException("收费项:" + chargeItem.getId()); + // throw new ServiceException("收费项:" + chargeItem.getId()); // } // } - // 根据省市医保分组 + // 根据省市医保分组 Map> paymentDetailsMapByContract = PaymentRecDetailAccountResultList .stream().collect(Collectors.groupingBy(PaymentRecDetailAccountResult::getContractNo)); - // 查询所有的收费项 + // 查询所有的收费项 List chargeItemIdStrs = paymentReconciliationList.stream().map(PaymentReconciliation::getChargeItemIds) .collect(Collectors.toList()); List chargeItemIds = new ArrayList<>(); @@ -987,30 +987,30 @@ public class IChargeBillServiceImpl implements IChargeBillService { List chargeItemList = chargeItemService.list(new LambdaQueryWrapper() .in(ChargeItem::getId, chargeItemIds).eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode())); if (chargeItemList.isEmpty()) { - throw new ServiceException("数据异常,该时间段内未查询到收费项"); + throw new ServiceException("数据异常,该时间段内未查询到收费项"); } // for (ChargeItem chargeItem : chargeItemList) { // if("adm_healthcare_service".equals(chargeItem.getServiceTable())){ // log.info("//****************************"); - // log.info(JSON.toJSONString(chargeItem)); + // log.info(JsonUtils.toJson(chargeItem)); // } // } - // 查询收费定义列表 + // 查询收费定义列表 List chargeItemDefinitionIdList = chargeItemList.stream().map(ChargeItem::getDefinitionId).collect(Collectors.toList()); if (chargeItemDefinitionIdList.isEmpty()) { - throw new ServiceException("未查询到收费记录,无收费项信息"); + throw new ServiceException("未查询到收费记录,无收费项信息"); } List chargeItemDefinitions = iChargeItemDefinitionService.listByIds(chargeItemDefinitionIdList); if (chargeItemDefinitions.isEmpty()) { - throw new ServiceException("未查询到收费记录,无收费项信息"); + throw new ServiceException("未查询到收费记录,无收费项信息"); } Map> chargeItemDefKV = chargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getId)); - // 查询医保结算id + // 查询医保结算id List settleIds = new ArrayList<>(); for (PaymentReconciliation paymentReconciliation : paymentReconciliationList) { if (!StringUtils.isEmpty(paymentReconciliation.getYbSettleIds())) { @@ -1027,20 +1027,20 @@ public class IChargeBillServiceImpl implements IChargeBillService { // List collect = clinicSettle.stream().map(ClinicSettle::getInsutype).collect(Collectors.toList()); } - BigDecimal cashSum = BigDecimal.ZERO;// 现金总数 = rmbCashSum + vxCashSum + aliCashSum + uniCashSum - BigDecimal rmbCashSum = BigDecimal.ZERO;// 现金总数 - BigDecimal vxCashSum = BigDecimal.ZERO;// 现金总数() - BigDecimal aliCashSum = BigDecimal.ZERO;// 现金总数() - BigDecimal uniCashSum = BigDecimal.ZERO;// 现金总数() - BigDecimal vxSum = BigDecimal.ZERO;// 微信总数 - BigDecimal aliSum = BigDecimal.ZERO;// 支付宝总数 - BigDecimal uniSum = BigDecimal.ZERO;// 银行卡总数 - // BigDecimal tcSum = BigDecimal.ZERO;// 基本统筹 - // BigDecimal zhSum = BigDecimal.ZERO;// 医保账户 - // BigDecimal fundSum = BigDecimal.ZERO;// 基金支总额 - BigDecimal SelfCashSum = BigDecimal.ZERO;// 自费现金总额 - BigDecimal YbCashSum = BigDecimal.ZERO;// 医保现金总额 - // 长大版本要显示出来省市医保的区别 + BigDecimal cashSum = BigDecimal.ZERO;// 现金总数 = rmbCashSum + vxCashSum + aliCashSum + uniCashSum + BigDecimal rmbCashSum = BigDecimal.ZERO;// 现金总数 + BigDecimal vxCashSum = BigDecimal.ZERO;// 现金总数() + BigDecimal aliCashSum = BigDecimal.ZERO;// 现金总数() + BigDecimal uniCashSum = BigDecimal.ZERO;// 现金总数() + BigDecimal vxSum = BigDecimal.ZERO;// 微信总数 + BigDecimal aliSum = BigDecimal.ZERO;// 支付宝总数 + BigDecimal uniSum = BigDecimal.ZERO;// 银行卡总数 + // BigDecimal tcSum = BigDecimal.ZERO;// 基本统筹 + // BigDecimal zhSum = BigDecimal.ZERO;// 医保账户 + // BigDecimal fundSum = BigDecimal.ZERO;// 基金支总额 + BigDecimal SelfCashSum = BigDecimal.ZERO;// 自费现金总额 + BigDecimal YbCashSum = BigDecimal.ZERO;// 医保现金总额 + // 长大版本要显示出来省市医保的区别 List redisContractList = iContractService.getRedisContractList(); Map> contractMapByBusNo = redisContractList.stream().collect(Collectors.groupingBy(Contract::getBusNo)); @@ -1048,10 +1048,10 @@ public class IChargeBillServiceImpl implements IChargeBillService { .entrySet()) { String key = stringListEntry.getKey(); List value = stringListEntry.getValue(); - BigDecimal tcSum = BigDecimal.ZERO;// 基本统筹 - BigDecimal cash = BigDecimal.ZERO;// 现金 - BigDecimal zhSum = BigDecimal.ZERO;// 医保账户 - BigDecimal fundSum = BigDecimal.ZERO;// 基金支总额 + BigDecimal tcSum = BigDecimal.ZERO;// 基本统筹 + BigDecimal cash = BigDecimal.ZERO;// 现金 + BigDecimal zhSum = BigDecimal.ZERO;// 医保账户 + BigDecimal fundSum = BigDecimal.ZERO;// 基金支总额 for (PaymentRecDetailAccountResult paymentRecDetailAccountResult : value) { if (YbPayment.SELF_CASH_PAY.getValue().equals(paymentRecDetailAccountResult.getPayEnum())) { cash = cash.add(paymentRecDetailAccountResult.getAmount()); @@ -1077,7 +1077,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { if (YbPayment.SELF_YB_ZH_PAY.getValue().equals(paymentRecDetailAccountResult.getPayEnum())) { zhSum = zhSum.add(paymentRecDetailAccountResult.getAmount()); } - // 其他的大病支付或者慢病特病支付往下接if + // 其他的大病支付或者慢病特病支付往下接if map.put( contractMapByBusNo.get(key) == null ? key : contractMapByBusNo.get(key).get(0).getBusNo() + "cash", cash); @@ -1121,7 +1121,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { // if (YbPayment.SELF_YB_ZH_PAY.getValue().equals(paymentDetail.getPayEnum())) { // zhSum = zhSum.add(paymentDetail.getAmount()); // } - // // 其他的大病支付或者慢病特病支付往下接if + // // 其他的大病支付或者慢病特病支付往下接if // } BigDecimal sum01 = BigDecimal.ZERO; @@ -1140,7 +1140,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { BigDecimal sum14 = BigDecimal.ZERO; BigDecimal sum15 = BigDecimal.ZERO; - // 处理退费单 + // 处理退费单 List returnList = new ArrayList<>(); List returnPaymentList = new ArrayList<>(); ReturnBillVO returnBillVO; @@ -1149,19 +1149,19 @@ public class IChargeBillServiceImpl implements IChargeBillService { returnPaymentList.add(paymentReconciliation); } } - // 按照字典取值时使用的变量 + // 按照字典取值时使用的变量 List beforeChargeItemDefinitions = new ArrayList<>(); List beforeChargeItemList = new ArrayList<>(); if (!returnPaymentList.isEmpty()) { List returnIds = returnPaymentList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList()); - // 查原付款单子 + // 查原付款单子 List relationIdList = returnPaymentList.stream().map(PaymentReconciliation::getRelationId).collect(Collectors.toList()); if (relationIdList.isEmpty() || returnPaymentList.size() != relationIdList.size()) { - throw new ServiceException("数据异常,存在无法关联到原单的退款单,请联系工程师"); + throw new ServiceException("数据异常,存在无法关联到原单的退款单,请联系工程师"); } - // 原单是该时间段前付款的 + // 原单是该时间段前付款的 List beforeList = new ArrayList<>(); List paymentReconciliations = paymentReconciliationService .list(new LambdaQueryWrapper().in(PaymentReconciliation::getId, relationIdList) @@ -1172,7 +1172,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { } } if (!beforeList.isEmpty()) { - // 拆解所有的chargeItemId,拼装成一个集合 + // 拆解所有的chargeItemId,拼装成一个集合 List chargeItemIdList = beforeList.stream().map(PaymentReconciliation::getChargeItemIds).collect(Collectors.toList()); List beforeChargeItemIds = new ArrayList<>(); @@ -1187,12 +1187,12 @@ public class IChargeBillServiceImpl implements IChargeBillService { beforeChargeItemList = chargeItemService.list(new LambdaQueryWrapper() .in(ChargeItem::getId, beforeChargeItemIds).eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode())); if (beforeChargeItemList.isEmpty()) { - throw new ServiceException("数据异常,查找不到退费收费项信息"); + throw new ServiceException("数据异常,查找不到退费收费项信息"); } List beforeChargeItemDefinitionIdList = beforeChargeItemList.stream().map(ChargeItem::getDefinitionId).collect(Collectors.toList()); if (beforeChargeItemDefinitionIdList.isEmpty()) { - throw new ServiceException("数据异常,查找不到收费项的定义信息"); + throw new ServiceException("数据异常,查找不到收费项的定义信息"); } beforeChargeItemDefinitions = iChargeItemDefinitionService.listByIds(beforeChargeItemDefinitionIdList); for (ChargeItem chargeItem : beforeChargeItemList) { @@ -1206,7 +1206,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { Long definitionId = chargeItem.getDefinitionId(); // if(chargeItemDefKV.get(definitionId)==null){ // log.info(chargeItem.getId()); - // log.info(JSON.toJSONString(chargeItem)); + // log.info(JsonUtils.toJson(chargeItem)); // } ChargeItemDefinition chargeItemDefinition = chargeItemDefKV.get(definitionId).get(0); @@ -1291,17 +1291,17 @@ public class IChargeBillServiceImpl implements IChargeBillService { returnBillVO.setPaymentNo(paymentReconciliation.getPaymentNo()); returnList.add(returnBillVO); } - map.put("returnList", returnList);// 退费单 + map.put("returnList", returnList);// 退费单 } } - // map.put("tcSum", tcSum);// 基本统筹 - // map.put("zhSum", zhSum);// 账户支付 - // map.put("fundSum", fundSum);// 基金支付总额 - map.put("ybCashSum", YbCashSum);// 医保现金 - map.put("selfCashSum", SelfCashSum);// 自费现金 + // map.put("tcSum", tcSum);// 基本统筹 + // map.put("zhSum", zhSum);// 账户支付 + // map.put("fundSum", fundSum);// 基金支付总额 + map.put("ybCashSum", YbCashSum);// 医保现金 + map.put("selfCashSum", SelfCashSum);// 自费现金 - // 不同医院收费项统计内容不定,下面统计分两个for循环部分统计,一部分按照医保分类统计,一个是按照财务类型的字典去分类 + // 不同医院收费项统计内容不定,下面统计分两个for循环部分统计,一部分按照医保分类统计,一个是按照财务类型的字典去分类 for (ChargeItem chargeItem : chargeItemList) { if (!chargeItem.getStatusEnum().equals(ChargeItemStatus.BILLED.getValue()) @@ -1312,7 +1312,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { Long definitionId = chargeItem.getDefinitionId(); // if(chargeItemDefKV.get(definitionId)==null){ // log.info(chargeItem.getId()); - // log.info(JSON.toJSONString(chargeItem)); + // log.info(JsonUtils.toJson(chargeItem)); // } ChargeItemDefinition chargeItemDefinition = chargeItemDefKV.get(definitionId).get(0); @@ -1365,36 +1365,36 @@ public class IChargeBillServiceImpl implements IChargeBillService { break; } } - map.put("BED_FEE", sum01);// 床位费 - map.put("DIAGNOSTIC_FEE", sum02);// 诊察费 - map.put("CHECK_FEE", sum03);// 检查费 - map.put("DIAGNOSTIC_TEST_FEE", sum04);// 化验费 - map.put("MEDICAL_EXPENSE_FEE", sum05);// 治疗费 - map.put("OPERATION_FEE", sum06);// 手术费 - map.put("NURSING_FEE", sum07);// 护理费 - map.put("SANITARY_MATERIALS_FEE", sum08);// 卫生材料费 - map.put("WEST_MEDICINE", sum09);// 西药费 - map.put("CHINESE_MEDICINE_SLICES_FEE", sum10);// 中药饮片费 - map.put("CHINESE_MEDICINE_FEE", sum11);// 中成药费 - map.put("GENERAL_CONSULTATION_FEE", sum12);// 一般诊疗费 - map.put("REGISTRATION_FEE", sum13);// 挂号费 - map.put("OTHER_FEE", sum14);// 其他费用 + map.put("BED_FEE", sum01);// 床位费 + map.put("DIAGNOSTIC_FEE", sum02);// 诊察费 + map.put("CHECK_FEE", sum03);// 检查费 + map.put("DIAGNOSTIC_TEST_FEE", sum04);// 化验费 + map.put("MEDICAL_EXPENSE_FEE", sum05);// 治疗费 + map.put("OPERATION_FEE", sum06);// 手术费 + map.put("NURSING_FEE", sum07);// 护理费 + map.put("SANITARY_MATERIALS_FEE", sum08);// 卫生材料费 + map.put("WEST_MEDICINE", sum09);// 西药费 + map.put("CHINESE_MEDICINE_SLICES_FEE", sum10);// 中药饮片费 + map.put("CHINESE_MEDICINE_FEE", sum11);// 中成药费 + map.put("GENERAL_CONSULTATION_FEE", sum12);// 一般诊疗费 + map.put("REGISTRATION_FEE", sum13);// 挂号费 + map.put("OTHER_FEE", sum14);// 其他费用 sum15 = sum01.add(sum02).add(sum03).add(sum04).add(sum05).add(sum06).add(sum07).add(sum08).add(sum09).add(sum10) .add(sum11).add(sum12).add(sum13).add(sum14); - map.put("SUM", sum15);// 合计费用 + map.put("SUM", sum15);// 合计费用 - // String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); - String fixmedinsName = optionJson.getString(CommonConstants.Option.FIXMEDINS_NAME); - String fixmedinsCode = optionJson.getString(CommonConstants.Option.FIXMEDINS_CODE); + // String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); + String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText(); + String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText(); map.put("fixmedinsName", fixmedinsName); map.put("fixmedinsCode", fixmedinsCode); - // 以chargeItem 的def为循环分类依据 + // 以chargeItem çš„def为循环分类依据 for (ChargeItemDefinition chargeItemDefinition : chargeItemDefinitions) { if (chargeItemDefinition.getTypeCode() == null) { - throw new ServiceException("收费定义未设置财务分类,提示信息chargeItemDefinitionId:" + chargeItemDefinition.getId()); + throw new ServiceException("收费定义未设置财务分类,提示信息chargeItemDefinitionId:" + chargeItemDefinition.getId()); } } @@ -1418,7 +1418,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { map.put(key, bigDecimal); } - // 超本时间段的退费单统计 + // 超本时间段的退费单统计 if (!beforeChargeItemDefinitions.isEmpty() && !beforeChargeItemList.isEmpty()) { Map> beforeChargeItemDefMapByTypeCode = beforeChargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getTypeCode)); @@ -1442,7 +1442,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { } } - // 医保人次自费人次计算 + // 医保人次自费人次计算 List list = iEncounterService.getEncounterInfoByTime(startDate, endDate); Map> encounterAccountDtoMapByContract = list.stream().collect(Collectors.groupingBy(EncounterAccountDto::getContractNo)); @@ -1456,29 +1456,29 @@ public class IChargeBillServiceImpl implements IChargeBillService { } /** - * 长大门诊日结单(最终版) ps:小范围区间内通用版本,需要时间检验 + * 长大门诊日结单(最终版) ps:小范围区间内通用版本,需要时间检验 * - * @param startTime 开始时间 - * @param endTime 结束时间 - * @param entererId 参与人id - * @return 参数 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param entererId 参与人id + * @return 参数 */ public Map getTotalCommen(String startTime, String endTime, Long entererId, String contractNo) { - // 声明变量 处理时间 + // 声明变量 处理时间 Map map = new HashMap<>(); Date startDate = DateUtils.parseDate(startTime); Date endDate = DateUtils.parseDate(endTime); - // 查询所有的门诊支付记录 ,大概的情况如下 + // 查询所有的门诊支付记录 ,大概的情况如下 // startDate endDate - // | 正 负 | a.该情况下的chargeItem 状态为8 不用统计 - // | 正 | b.该情况的chargeItem 状态为5 计入统计 做加法 - // 正 | 负 | c.该情况的chargeItem 状态为8 计入统计 做减法 - // | 正 | 负 d.该情况的chargeItem 状态为8 计入统计 做加法 - // | 正 负 | 负 e.该情况的chargeItem 状态8或5 区间内正负的chargeItem差值状态为5 计入统计 做加法 - // | 正 | 负 负 f.该情况下的chargeItem 状态为8或5 全部计入统计 做加法 - // 正 负 | 负 | g.该情况的chargeItem 状态8或5 负的chargeItem状态为8 计入统计 做减法 + // | æ­£ è´Ÿ | a.该情况下的chargeItem 状态为8 不用统计 + // | æ­£ | b.该情况的chargeItem 状态为5 计入统计 做加法 + // æ­£ | è´Ÿ | c.该情况的chargeItem 状态为8 计入统计 做减法 + // | æ­£ | è´Ÿ d.该情况的chargeItem 状态为8 计入统计 做加法 + // | æ­£ è´Ÿ | è´Ÿ e.该情况的chargeItem 状态8或5 区间内正负的chargeItem差值状态为5 计入统计 做加法 + // | æ­£ | è´Ÿ è´Ÿ f.该情况下的chargeItem 状态为8或5 全部计入统计 做加法 + // æ­£ è´Ÿ | è´Ÿ | g.该情况的chargeItem 状态8或5 è´Ÿçš„chargeItem状态为8 计入统计 做减法 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .between(PaymentReconciliation::getBillDate, startDate, endDate) .eq(PaymentReconciliation::getDeleteFlag, DelFlag.NO.getCode()) @@ -1497,13 +1497,13 @@ public class IChargeBillServiceImpl implements IChargeBillService { return getMap(map); } - BigDecimal amount = BigDecimal.ZERO;// 应收金额 + BigDecimal amount = BigDecimal.ZERO;// 应收金额 for (PaymentReconciliationAccountDel paymentReconciliationAccountDel : paymentReconciliationList) { amount = amount.add(paymentReconciliationAccountDel.getTenderedAmount()); } - map.put("amount", amount);// 应收金额 + map.put("amount", amount);// 应收金额 - // 查询所有的支付详情(业务注释:收集并统计不同支付渠道支付的费用) + // 查询所有的支付详情(业务注释:收集并统计不同支付渠道支付的费用) List paymentIdList = paymentReconciliationList.stream().map(PaymentReconciliationAccountDel::getId).collect(Collectors.toList()); List PaymentRecDetailAccountResultList @@ -1513,26 +1513,26 @@ public class IChargeBillServiceImpl implements IChargeBillService { return getMap(map); } - // 支付详情根据主键分组 + // 支付详情根据主键分组 Map> paymentDetailsKV = PaymentRecDetailAccountResultList.stream() .collect(Collectors.groupingBy(PaymentRecDetailAccountResult::getReconciliationId)); - // 根据省市医保分组 + // 根据省市医保分组 Map> paymentDetailsMapByContract = PaymentRecDetailAccountResultList .stream().collect(Collectors.groupingBy(PaymentRecDetailAccountResult::getContractNo)); - BigDecimal cashSum = BigDecimal.ZERO;// 现金总数 = rmbCashSum + vxCashSum + aliCashSum + uniCashSum - BigDecimal rmbCashSum = BigDecimal.ZERO;// 现金总数 - BigDecimal vxCashSum = BigDecimal.ZERO;// 现金总数() - BigDecimal aliCashSum = BigDecimal.ZERO;// 现金总数() - BigDecimal uniCashSum = BigDecimal.ZERO;// 现金总数() - BigDecimal vxSum = BigDecimal.ZERO;// 微信总数 - BigDecimal aliSum = BigDecimal.ZERO;// 支付宝总数 - BigDecimal uniSum = BigDecimal.ZERO;// 银行卡总数 - BigDecimal SelfCashSum = BigDecimal.ZERO;// 自费现金总额 - BigDecimal YbCashSum = BigDecimal.ZERO;// 医保现金总额 - BigDecimal discountSum = BigDecimal.ZERO;// 优惠金额 - // 长大版本要显示出来省市医保的区别 + BigDecimal cashSum = BigDecimal.ZERO;// 现金总数 = rmbCashSum + vxCashSum + aliCashSum + uniCashSum + BigDecimal rmbCashSum = BigDecimal.ZERO;// 现金总数 + BigDecimal vxCashSum = BigDecimal.ZERO;// 现金总数() + BigDecimal aliCashSum = BigDecimal.ZERO;// 现金总数() + BigDecimal uniCashSum = BigDecimal.ZERO;// 现金总数() + BigDecimal vxSum = BigDecimal.ZERO;// 微信总数 + BigDecimal aliSum = BigDecimal.ZERO;// 支付宝总数 + BigDecimal uniSum = BigDecimal.ZERO;// 银行卡总数 + BigDecimal SelfCashSum = BigDecimal.ZERO;// 自费现金总额 + BigDecimal YbCashSum = BigDecimal.ZERO;// 医保现金总额 + BigDecimal discountSum = BigDecimal.ZERO;// 优惠金额 + // 长大版本要显示出来省市医保的区别 List redisContractList = iContractService.getRedisContractList(); Map> contractMapByBusNo = redisContractList.stream().collect(Collectors.groupingBy(Contract::getBusNo)); @@ -1542,10 +1542,10 @@ public class IChargeBillServiceImpl implements IChargeBillService { String key = stringListEntry.getKey(); List value = stringListEntry.getValue(); - BigDecimal tcSum = BigDecimal.ZERO;// 基本统筹 - BigDecimal cash = BigDecimal.ZERO;// 现金 - BigDecimal zhSum = BigDecimal.ZERO;// 医保账户 - BigDecimal fundSum = BigDecimal.ZERO;// 基金支总额 + BigDecimal tcSum = BigDecimal.ZERO;// 基本统筹 + BigDecimal cash = BigDecimal.ZERO;// 现金 + BigDecimal zhSum = BigDecimal.ZERO;// 医保账户 + BigDecimal fundSum = BigDecimal.ZERO;// 基金支总额 for (PaymentRecDetailAccountResult paymentRecDetailAccountResult : value) { if (YbPayment.SELF_CASH_PAY.getValue().equals(paymentRecDetailAccountResult.getPayEnum())) { @@ -1575,7 +1575,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { if (YbPayment.DISCOUNT_PAY.getValue().equals(paymentRecDetailAccountResult.getPayEnum())) { discountSum = discountSum.add(paymentRecDetailAccountResult.getAmount()); } - // 其他的大病支付或者慢病特病支付往下接if + // 其他的大病支付或者慢病特病支付往下接if map.put( contractMapByBusNo.get(key) == null ? key : contractMapByBusNo.get(key).get(0).getBusNo() + "cash", cash); @@ -1589,15 +1589,15 @@ public class IChargeBillServiceImpl implements IChargeBillService { : contractMapByBusNo.get(key).get(0).getBusNo() + "fundSum", fundSum); } } - map.put("ybCashSum", YbCashSum);// 医保现金 - // map.put("selfCashSum", SelfCashSum);// 自费现金 - map.put("rmbCashSum", rmbCashSum);// 自费现金纯现金 - map.put("vxCashSum", vxCashSum);// 自费现金vx - map.put("uniCashSum", uniCashSum);// 自费现金银联 - map.put("aliCashSum", aliCashSum);// 自费现金ali - map.put("discountSum", discountSum);// 优惠金额 + map.put("ybCashSum", YbCashSum);// 医保现金 + // map.put("selfCashSum", SelfCashSum);// 自费现金 + map.put("rmbCashSum", rmbCashSum);// 自费现金纯现金 + map.put("vxCashSum", vxCashSum);// 自费现金vx + map.put("uniCashSum", uniCashSum);// 自费现金银联 + map.put("aliCashSum", aliCashSum);// 自费现金ali + map.put("discountSum", discountSum);// 优惠金额 - // 将所有的payment分组进行单独处理(业务注释:处理不同财务分类的金额,如西药费中药费等) + // 将所有的payment分组进行单独处理(业务注释:处理不同财务分类的金额,如西药费中药费等) List paymentList = new ArrayList<>(); List returnList = new ArrayList<>(); // List partReturnList = new ArrayList<>(); @@ -1625,12 +1625,12 @@ public class IChargeBillServiceImpl implements IChargeBillService { List paymentReconciliations = returnPaymentMapByRelationId.get(paymentReconciliation.getId()); if (paymentReconciliations != null && !paymentReconciliations.isEmpty()) { - // 情况a + // 情况a if (PaymentStatus.SUCCESS.getValue().equals(paymentReconciliation.getStatusEnum())) { returnPaymentMapByRelationId.remove(paymentReconciliation.getId()); continue; } - // 情况 e + // 情况 e List strings = Arrays.asList(paymentReconciliation.getChargeItemIds().split(",")); List split = new ArrayList<>(); for (PaymentReconciliationAccountDel reconciliation : paymentReconciliations) { @@ -1640,15 +1640,15 @@ public class IChargeBillServiceImpl implements IChargeBillService { addChargeItemIds.addAll(strings); returnPaymentMapByRelationId.remove(paymentReconciliation.getId()); } else { - // 情况 b - // 情况 d - // 情况 f + // 情况 b + // 情况 d + // 情况 f addChargeItemIds.addAll(Arrays.asList(paymentReconciliation.getChargeItemIds().split(","))); } } - // 情况 c - // 情况 g + // 情况 c + // 情况 g for (Map.Entry> longListEntry : returnPaymentMapByRelationId .entrySet()) { for (PaymentReconciliationAccountDel paymentReconciliation : longListEntry.getValue()) { @@ -1656,7 +1656,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { } } - // 查询所有的收费项 + // 查询所有的收费项 List chargeItemIdStrs = new ArrayList<>(); chargeItemIdStrs.addAll(addChargeItemIds); chargeItemIdStrs.addAll(subChargeItemIds); @@ -1669,34 +1669,34 @@ public class IChargeBillServiceImpl implements IChargeBillService { } } - // 查不到收费项的情况下不统计了 + // 查不到收费项的情况下不统计了 if (chargeItemIds.isEmpty()) { return getMap(map); } List chargeItemDefInfoByIds = chargeItemService.getChargeItemDefInfoByIds(chargeItemIds); if (chargeItemDefInfoByIds.isEmpty()) { - throw new ServiceException("数据异常,该时间段内未查询到收费项"); + throw new ServiceException("数据异常,该时间段内未查询到收费项"); } Map> chargeItemDefInfoKVById = chargeItemDefInfoByIds.stream().collect(Collectors.groupingBy(ChargeItemDefInfo::getId)); - // 省名变量 - BigDecimal bedFee = BigDecimal.ZERO;// 床位费 - BigDecimal diagnosticFee = BigDecimal.ZERO;// 诊察费 - BigDecimal checkFee = BigDecimal.ZERO;// 检查费 - BigDecimal diagnosticTestFee = BigDecimal.ZERO;// 化验费 - BigDecimal outDiagnosticTestFee = BigDecimal.ZERO;// 外送化验费 同一新增 - BigDecimal medicalExpenseFee = BigDecimal.ZERO;// 治疗费 - BigDecimal operationFee = BigDecimal.ZERO;// 手术费 - BigDecimal nursingFee = BigDecimal.ZERO;// 护理费 - BigDecimal sanitaryMaterialsFee = BigDecimal.ZERO;// 卫生材料费 - BigDecimal westMedicine = BigDecimal.ZERO;// 西药费 - BigDecimal chineseMedicineSlicesFee = BigDecimal.ZERO;// 中药饮片费 - BigDecimal chineseMedicineFee = BigDecimal.ZERO;// 中成药费 - BigDecimal generalConsultationFee = BigDecimal.ZERO;// 一般诊疗费 - BigDecimal registrationFee = BigDecimal.ZERO;// 挂号费 - BigDecimal otherFee = BigDecimal.ZERO;// 其他费用 - BigDecimal sum = BigDecimal.ZERO;// 合计费用 + // 省名变量 + BigDecimal bedFee = BigDecimal.ZERO;// 床位费 + BigDecimal diagnosticFee = BigDecimal.ZERO;// 诊察费 + BigDecimal checkFee = BigDecimal.ZERO;// 检查费 + BigDecimal diagnosticTestFee = BigDecimal.ZERO;// 化验费 + BigDecimal outDiagnosticTestFee = BigDecimal.ZERO;// 外送化验费 同一新增 + BigDecimal medicalExpenseFee = BigDecimal.ZERO;// 治疗费 + BigDecimal operationFee = BigDecimal.ZERO;// 手术费 + BigDecimal nursingFee = BigDecimal.ZERO;// 护理费 + BigDecimal sanitaryMaterialsFee = BigDecimal.ZERO;// 卫生材料费 + BigDecimal westMedicine = BigDecimal.ZERO;// 西药费 + BigDecimal chineseMedicineSlicesFee = BigDecimal.ZERO;// 中药饮片费 + BigDecimal chineseMedicineFee = BigDecimal.ZERO;// 中成药费 + BigDecimal generalConsultationFee = BigDecimal.ZERO;// 一般诊疗费 + BigDecimal registrationFee = BigDecimal.ZERO;// 挂号费 + BigDecimal otherFee = BigDecimal.ZERO;// 其他费用 + BigDecimal sum = BigDecimal.ZERO;// 合计费用 ChargeItemDefInfo chargeItem; for (String addChargeItemId : addChargeItemIds) { @@ -1718,9 +1718,9 @@ public class IChargeBillServiceImpl implements IChargeBillService { checkFee = checkFee.add(chargeItem.getTotalPrice()); break; case DIAGNOSTIC_TEST_FEE: - if (DictUtils.getDictValue("fin_type_code", "化验").equals(chargeItem.getTypeCode())) { + if (DictUtils.getDictValue("fin_type_code", "化验").equals(chargeItem.getTypeCode())) { diagnosticTestFee = diagnosticTestFee.add(chargeItem.getTotalPrice()); - } else if (DictUtils.getDictValue("fin_type_code", "外送化验费").equals(chargeItem.getTypeCode())) { + } else if (DictUtils.getDictValue("fin_type_code", "外送化验费").equals(chargeItem.getTypeCode())) { outDiagnosticTestFee = outDiagnosticTestFee.add(chargeItem.getTotalPrice()); } else { diagnosticTestFee = diagnosticTestFee.add(chargeItem.getTotalPrice()); @@ -1779,12 +1779,12 @@ public class IChargeBillServiceImpl implements IChargeBillService { checkFee = checkFee.subtract(chargeItem.getTotalPrice()); break; case DIAGNOSTIC_TEST_FEE: - if (DictUtils.getDictValue("fin_type_code", "化验").equals(chargeItem.getTypeCode())) { + if (DictUtils.getDictValue("fin_type_code", "化验").equals(chargeItem.getTypeCode())) { diagnosticTestFee = diagnosticTestFee.add(chargeItem.getTotalPrice()); - } else if (DictUtils.getDictValue("fin_type_code", "外送化验费").equals(chargeItem.getTypeCode())) { + } else if (DictUtils.getDictValue("fin_type_code", "外送化验费").equals(chargeItem.getTypeCode())) { outDiagnosticTestFee = outDiagnosticTestFee.add(chargeItem.getTotalPrice()); } else { - // 其他typeCode默认归为普通化验费 + // å…¶ä»–typeCode默认归为普通化验费 diagnosticTestFee = diagnosticTestFee.add(chargeItem.getTotalPrice()); } break; @@ -1821,25 +1821,25 @@ public class IChargeBillServiceImpl implements IChargeBillService { } } - map.put("BED_FEE", bedFee);// 床位费 - map.put("DIAGNOSTIC_FEE", diagnosticFee);// 诊察费 - map.put("CHECK_FEE", checkFee);// 检查费 - map.put("DIAGNOSTIC_TEST_FEE", diagnosticTestFee);// 化验费 + map.put("BED_FEE", bedFee);// 床位费 + map.put("DIAGNOSTIC_FEE", diagnosticFee);// 诊察费 + map.put("CHECK_FEE", checkFee);// 检查费 + map.put("DIAGNOSTIC_TEST_FEE", diagnosticTestFee);// 化验费 map.put("OUT_DIAGNOSTIC_TEST_FEE", outDiagnosticTestFee); - map.put("MEDICAL_EXPENSE_FEE", medicalExpenseFee);// 治疗费 - map.put("OPERATION_FEE", operationFee);// 手术费 - map.put("NURSING_FEE", nursingFee);// 护理费 - map.put("SANITARY_MATERIALS_FEE", sanitaryMaterialsFee);// 卫生材料费 - map.put("WEST_MEDICINE", westMedicine);// 西药费 - map.put("CHINESE_MEDICINE_SLICES_FEE", chineseMedicineSlicesFee);// 中药饮片费 - map.put("CHINESE_MEDICINE_FEE", chineseMedicineFee);// 中成药费 - map.put("GENERAL_CONSULTATION_FEE", generalConsultationFee);// 一般诊疗费 - map.put("REGISTRATION_FEE", registrationFee);// 挂号费 - map.put("OTHER_FEE", otherFee);// 其他费用 + map.put("MEDICAL_EXPENSE_FEE", medicalExpenseFee);// 治疗费 + map.put("OPERATION_FEE", operationFee);// 手术费 + map.put("NURSING_FEE", nursingFee);// 护理费 + map.put("SANITARY_MATERIALS_FEE", sanitaryMaterialsFee);// 卫生材料费 + map.put("WEST_MEDICINE", westMedicine);// 西药费 + map.put("CHINESE_MEDICINE_SLICES_FEE", chineseMedicineSlicesFee);// 中药饮片费 + map.put("CHINESE_MEDICINE_FEE", chineseMedicineFee);// 中成药费 + map.put("GENERAL_CONSULTATION_FEE", generalConsultationFee);// 一般诊疗费 + map.put("REGISTRATION_FEE", registrationFee);// 挂号费 + map.put("OTHER_FEE", otherFee);// 其他费用 sum = bedFee.add(diagnosticFee).add(checkFee).add(diagnosticTestFee).add(outDiagnosticTestFee).add(medicalExpenseFee).add(operationFee) .add(nursingFee).add(sanitaryMaterialsFee).add(westMedicine).add(chineseMedicineFee).add( chineseMedicineSlicesFee).add(generalConsultationFee).add(registrationFee).add(otherFee); - map.put("SUM", sum);// 合计费用 + map.put("SUM", sum);// 合计费用 Map> chargeItemDefKVByTypeCode = chargeItemDefInfoByIds.stream() .collect(Collectors.groupingBy( @@ -1858,7 +1858,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { map.put(key, bigDecimal); } - // 体检人次(长大专用) + // 体检人次(长大专用) List chargeItemDefInfos = chargeItemDefKVByTypeCode.get("9999"); BigDecimal peisCnt = BigDecimal.ZERO; if (chargeItemDefInfos != null) { @@ -1866,20 +1866,20 @@ public class IChargeBillServiceImpl implements IChargeBillService { peisCnt = peisCnt.add(chargeItemDefInfo.getQuantityValue()); } } - map.put("peisCnt", peisCnt);// 体检人次 + map.put("peisCnt", peisCnt);// 体检人次 - // 处理退费单 + // 处理退费单 List returnBillVOList = new ArrayList<>(); ReturnBillVO returnBillVO; if (!returnList.isEmpty()) { List returnIds = returnList.stream().map(PaymentReconciliationAccountDel::getId).collect(Collectors.toList()); - // 查原付款单子 + // 查原付款单子 List relationIdList = returnList.stream().map(PaymentReconciliationAccountDel::getRelationId).collect(Collectors.toList()); if (relationIdList.isEmpty() || returnList.size() != relationIdList.size()) { - throw new ServiceException("数据异常,存在无法关联到原单的退款单,请联系工程师"); + throw new ServiceException("数据异常,存在无法关联到原单的退款单,请联系工程师"); } List invoiceList = iInvoiceService.list(new LambdaUpdateWrapper() @@ -1912,14 +1912,14 @@ public class IChargeBillServiceImpl implements IChargeBillService { returnBillVO.setPaymentNo(paymentReconciliation.getPaymentNo()); returnBillVOList.add(returnBillVO); } - map.put("returnList", returnBillVOList);// 退费单 + map.put("returnList", returnBillVOList);// 退费单 } } - // map.put("tcSum", tcSum);// 基本统筹 - // map.put("zhSum", zhSum);// 账户支付 - // map.put("fundSum", fundSum);// 基金支付总额 - // 医保人次自费人次计算 + // map.put("tcSum", tcSum);// 基本统筹 + // map.put("zhSum", zhSum);// 账户支付 + // map.put("fundSum", fundSum);// 基金支付总额 + // 医保人次自费人次计算 List list = iEncounterService.getEncounterInfoByTime(startDate, endDate); Map> encounterAccountDtoMapByContract = list.stream().collect(Collectors.groupingBy(EncounterAccountDto::getContractNo)); @@ -1929,12 +1929,12 @@ public class IChargeBillServiceImpl implements IChargeBillService { map.put(key + "reg", stringListEntry.getValue().size()); } // -// //2025.12.9 调试对账用代码 -// //测试代码 +// //2025.12.9 调试对账用代码 +// //测试代码 // for (PaymentReconciliationAccountDel paymentReconciliationAccountDel : paymentReconciliationList) { -// //查询到所有的paymentDetail +// //查询到所有的paymentDetail // List paymentRecDetailAccountResults = paymentDetailsKV.get(paymentReconciliationAccountDel.getId()); -// //求值 +// //求值 // BigDecimal paymentAmount = BigDecimal.ZERO; // BigDecimal discountAmount = BigDecimal.ZERO; // BigDecimal chargeAmount = BigDecimal.ZERO; @@ -1960,7 +1960,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { // // } // -// List collect = Arrays.stream(paymentReconciliationAccountDel.getChargeItemIds().split(",")).map(Long::parseLong) // 将String转为Long +// List collect = Arrays.stream(paymentReconciliationAccountDel.getChargeItemIds().split(",")).map(Long::parseLong) // å°†String转为Long // .collect(Collectors.toList()); // // List chargeItems = chargeItemService.list( @@ -1974,34 +1974,34 @@ public class IChargeBillServiceImpl implements IChargeBillService { // // } // -// //payment维度的值大于收费项的值 +// //payment维度的值大于收费项的值 // if(paymentAmount.add(discountAmount).compareTo(chargeAmount)>0||chargeAmount.compareTo(paymentAmount.add(discountAmount))>0){ -// log.info("总价不对等,提示信息:paymentId:"+paymentReconciliationAccountDel.getId()); +// log.info("总价不对等,提示信息:paymentId:"+paymentReconciliationAccountDel.getId()); // } // -// //chargeItem维度折后价格的值大于payment维度的实收 或者 chargeItem维度折后价格的值小于payment维度的实收 +// //chargeItem维度折后价格的值大于payment维度的实收 或者 chargeItem维度折后价格的值小于payment维度的实收 // if(chargeDiscountAmount.compareTo(paymentAmount)>0||paymentAmount.compareTo(chargeDiscountAmount)>0){ -// log.info("折后价格不对等,提示信息:paymentId:"+paymentReconciliationAccountDel.getId()); +// log.info("折后价格不对等,提示信息:paymentId:"+paymentReconciliationAccountDel.getId()); // } // } - // 同一打折专用处理 - BigDecimal tyBedFee = BigDecimal.ZERO;// 床位费 - BigDecimal tyDiagnosticFee = BigDecimal.ZERO;// 诊察费 - BigDecimal tyCheckFee = BigDecimal.ZERO;// 检查费 - BigDecimal tyDiagnosticTestFee = BigDecimal.ZERO;// 化验费 - BigDecimal tyOutDiagnosticTestFee = BigDecimal.ZERO; // 外送化验费 同一新增 - BigDecimal tyMedicalExpenseFee = BigDecimal.ZERO;// 治疗费 - BigDecimal tyOperationFee = BigDecimal.ZERO;// 手术费 - BigDecimal tyNursingFee = BigDecimal.ZERO;// 护理费 - BigDecimal tySanitaryMaterialsFee = BigDecimal.ZERO;// 卫生材料费 - BigDecimal tyWestMedicine = BigDecimal.ZERO;// 西药费 - BigDecimal tyChineseMedicineSlicesFee = BigDecimal.ZERO;// 中药饮片费 - BigDecimal tyChineseMedicineFee = BigDecimal.ZERO;// 中成药费 - BigDecimal tyGeneralConsultationFee = BigDecimal.ZERO;// 一般诊疗费 - BigDecimal tyRegistrationFee = BigDecimal.ZERO;// 挂号费 - BigDecimal tyOtherFee = BigDecimal.ZERO;// 其他费用 - BigDecimal tySum = BigDecimal.ZERO;// 合计费用 + // 同一打折专用处理 + BigDecimal tyBedFee = BigDecimal.ZERO;// 床位费 + BigDecimal tyDiagnosticFee = BigDecimal.ZERO;// 诊察费 + BigDecimal tyCheckFee = BigDecimal.ZERO;// 检查费 + BigDecimal tyDiagnosticTestFee = BigDecimal.ZERO;// 化验费 + BigDecimal tyOutDiagnosticTestFee = BigDecimal.ZERO; // 外送化验费 同一新增 + BigDecimal tyMedicalExpenseFee = BigDecimal.ZERO;// 治疗费 + BigDecimal tyOperationFee = BigDecimal.ZERO;// 手术费 + BigDecimal tyNursingFee = BigDecimal.ZERO;// 护理费 + BigDecimal tySanitaryMaterialsFee = BigDecimal.ZERO;// 卫生材料费 + BigDecimal tyWestMedicine = BigDecimal.ZERO;// 西药费 + BigDecimal tyChineseMedicineSlicesFee = BigDecimal.ZERO;// 中药饮片费 + BigDecimal tyChineseMedicineFee = BigDecimal.ZERO;// 中成药费 + BigDecimal tyGeneralConsultationFee = BigDecimal.ZERO;// 一般诊疗费 + BigDecimal tyRegistrationFee = BigDecimal.ZERO;// 挂号费 + BigDecimal tyOtherFee = BigDecimal.ZERO;// 其他费用 + BigDecimal tySum = BigDecimal.ZERO;// 合计费用 for (String addChargeItemId : addChargeItemIds) { List chargeItems = chargeItemDefInfoKVById.get(Long.parseLong(addChargeItemId)); @@ -2026,12 +2026,12 @@ public class IChargeBillServiceImpl implements IChargeBillService { break; case DIAGNOSTIC_TEST_FEE: BigDecimal discountPrice = chargeItem.getSystemDiscountPrice() == null ? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice(); - if (DictUtils.getDictValue("fin_type_code", "化验").equals(chargeItem.getTypeCode())) { + if (DictUtils.getDictValue("fin_type_code", "化验").equals(chargeItem.getTypeCode())) { tyDiagnosticTestFee = tyDiagnosticTestFee.add(discountPrice); - } else if (DictUtils.getDictValue("fin_type_code", "外送化验费").equals(chargeItem.getTypeCode())) { + } else if (DictUtils.getDictValue("fin_type_code", "外送化验费").equals(chargeItem.getTypeCode())) { tyOutDiagnosticTestFee = tyOutDiagnosticTestFee.add(discountPrice); } else { - // 其他typeCode默认归为普通化验费 + // å…¶ä»–typeCode默认归为普通化验费 tyDiagnosticTestFee = tyDiagnosticTestFee.add(discountPrice); } break; @@ -2103,12 +2103,12 @@ public class IChargeBillServiceImpl implements IChargeBillService { break; case DIAGNOSTIC_TEST_FEE: BigDecimal discountPriceSub = chargeItem.getSystemDiscountPrice() == null ? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice(); - if (DictUtils.getDictValue("fin_type_code", "化验").equals(chargeItem.getTypeCode())) { + if (DictUtils.getDictValue("fin_type_code", "化验").equals(chargeItem.getTypeCode())) { tyDiagnosticTestFee = tyDiagnosticTestFee.subtract(discountPriceSub); - } else if (DictUtils.getDictValue("fin_type_code", "外送化验费").equals(chargeItem.getTypeCode())) { + } else if (DictUtils.getDictValue("fin_type_code", "外送化验费").equals(chargeItem.getTypeCode())) { tyOutDiagnosticTestFee = tyOutDiagnosticTestFee.subtract(discountPriceSub); } else { - // 其他typeCode默认归为普通化验费 + // å…¶ä»–typeCode默认归为普通化验费 tyDiagnosticTestFee = tyDiagnosticTestFee.subtract(discountPriceSub); } break; @@ -2157,68 +2157,68 @@ public class IChargeBillServiceImpl implements IChargeBillService { } } - map.put("TY_BED_FEE", tyBedFee);// 床位费 - map.put("TY_DIAGNOSTIC_FEE", tyDiagnosticFee);// 诊察费 - map.put("TY_CHECK_FEE", tyCheckFee);// 检查费 - map.put("TY_DIAGNOSTIC_TEST_FEE", tyDiagnosticTestFee);// 化验费 + map.put("TY_BED_FEE", tyBedFee);// 床位费 + map.put("TY_DIAGNOSTIC_FEE", tyDiagnosticFee);// 诊察费 + map.put("TY_CHECK_FEE", tyCheckFee);// 检查费 + map.put("TY_DIAGNOSTIC_TEST_FEE", tyDiagnosticTestFee);// 化验费 map.put("TY_OUT_DIAGNOSTIC_TEST_FEE", tyOutDiagnosticTestFee); - map.put("TY_MEDICAL_EXPENSE_FEE", tyMedicalExpenseFee);// 治疗费 - map.put("TY_OPERATION_FEE", tyOperationFee);// 手术费 - map.put("TY_NURSING_FEE", tyNursingFee);// 护理费 - map.put("TY_SANITARY_MATERIALS_FEE", tySanitaryMaterialsFee);// 卫生材料费 - map.put("TY_WEST_MEDICINE", tyWestMedicine);// 西药费 - map.put("TY_CHINESE_MEDICINE_SLICES_FEE", tyChineseMedicineSlicesFee);// 中药饮片费 - map.put("TY_CHINESE_MEDICINE_FEE", tyChineseMedicineFee);// 中成药费 - map.put("TY_GENERAL_CONSULTATION_FEE", tyGeneralConsultationFee);// 一般诊疗费 - map.put("TY_REGISTRATION_FEE", tyRegistrationFee);// 挂号费 - map.put("TY_OTHER_FEE", tyOtherFee);// 其他费用 + map.put("TY_MEDICAL_EXPENSE_FEE", tyMedicalExpenseFee);// 治疗费 + map.put("TY_OPERATION_FEE", tyOperationFee);// 手术费 + map.put("TY_NURSING_FEE", tyNursingFee);// 护理费 + map.put("TY_SANITARY_MATERIALS_FEE", tySanitaryMaterialsFee);// 卫生材料费 + map.put("TY_WEST_MEDICINE", tyWestMedicine);// 西药费 + map.put("TY_CHINESE_MEDICINE_SLICES_FEE", tyChineseMedicineSlicesFee);// 中药饮片费 + map.put("TY_CHINESE_MEDICINE_FEE", tyChineseMedicineFee);// 中成药费 + map.put("TY_GENERAL_CONSULTATION_FEE", tyGeneralConsultationFee);// 一般诊疗费 + map.put("TY_REGISTRATION_FEE", tyRegistrationFee);// 挂号费 + map.put("TY_OTHER_FEE", tyOtherFee);// 其他费用 tySum = tyBedFee.add(tyDiagnosticFee).add(tyCheckFee).add(tyDiagnosticTestFee).add(tyOutDiagnosticTestFee).add(tyMedicalExpenseFee).add( tyOperationFee).add(tyNursingFee).add(tySanitaryMaterialsFee).add(tyWestMedicine).add( tyChineseMedicineSlicesFee).add(tyChineseMedicineFee).add(tyGeneralConsultationFee).add(tyRegistrationFee) .add(tyOtherFee); - map.put("TY_SUM", tySum);// 合计费用 + map.put("TY_SUM", tySum);// 合计费用 return map; } private Map getMap(Map map) { - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); - String fixmedinsName = optionJson.getString(CommonConstants.Option.FIXMEDINS_NAME); - String fixmedinsCode = optionJson.getString(CommonConstants.Option.FIXMEDINS_CODE); + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); + String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText(); + String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText(); map.put("fixmedinsName", fixmedinsName); map.put("fixmedinsCode", fixmedinsCode); - map.put("BED_FEE", BigDecimal.ZERO);// 床位费 - map.put("DIAGNOSTIC_FEE", BigDecimal.ZERO);// 诊察费 - map.put("CHECK_FEE", BigDecimal.ZERO);// 检查费 - map.put("DIAGNOSTIC_TEST_FEE", BigDecimal.ZERO);// 化验费 + map.put("BED_FEE", BigDecimal.ZERO);// 床位费 + map.put("DIAGNOSTIC_FEE", BigDecimal.ZERO);// 诊察费 + map.put("CHECK_FEE", BigDecimal.ZERO);// 检查费 + map.put("DIAGNOSTIC_TEST_FEE", BigDecimal.ZERO);// 化验费 map.put("OUT_DIAGNOSTIC_TEST_FEE", BigDecimal.ZERO); - map.put("MEDICAL_EXPENSE_FEE", BigDecimal.ZERO);// 治疗费 - map.put("OPERATION_FEE", BigDecimal.ZERO);// 手术费 - map.put("NURSING_FEE", BigDecimal.ZERO);// 护理费 - map.put("SANITARY_MATERIALS_FEE", BigDecimal.ZERO);// 卫生材料费 - map.put("WEST_MEDICINE", BigDecimal.ZERO);// 西药费 - map.put("CHINESE_MEDICINE_SLICES_FEE", BigDecimal.ZERO);// 中药饮片费 - map.put("CHINESE_MEDICINE_FEE", BigDecimal.ZERO);// 中成药费 - map.put("GENERAL_CONSULTATION_FEE", BigDecimal.ZERO);// 一般诊疗费 - map.put("REGISTRATION_FEE", BigDecimal.ZERO);// 挂号费 - map.put("OTHER_FEE", BigDecimal.ZERO);// 其他费用 - map.put("SUM", BigDecimal.ZERO);// 合计费用 - map.put("ybCashSum", BigDecimal.ZERO);// 医保现金 - map.put("selfCashSum", BigDecimal.ZERO);// 自费现金 + map.put("MEDICAL_EXPENSE_FEE", BigDecimal.ZERO);// 治疗费 + map.put("OPERATION_FEE", BigDecimal.ZERO);// 手术费 + map.put("NURSING_FEE", BigDecimal.ZERO);// 护理费 + map.put("SANITARY_MATERIALS_FEE", BigDecimal.ZERO);// 卫生材料费 + map.put("WEST_MEDICINE", BigDecimal.ZERO);// 西药费 + map.put("CHINESE_MEDICINE_SLICES_FEE", BigDecimal.ZERO);// 中药饮片费 + map.put("CHINESE_MEDICINE_FEE", BigDecimal.ZERO);// 中成药费 + map.put("GENERAL_CONSULTATION_FEE", BigDecimal.ZERO);// 一般诊疗费 + map.put("REGISTRATION_FEE", BigDecimal.ZERO);// 挂号费 + map.put("OTHER_FEE", BigDecimal.ZERO);// 其他费用 + map.put("SUM", BigDecimal.ZERO);// 合计费用 + map.put("ybCashSum", BigDecimal.ZERO);// 医保现金 + map.put("selfCashSum", BigDecimal.ZERO);// 自费现金 map.put("selfReg", 0); map.put("ybReg", 0); - map.put("cashSum", BigDecimal.ZERO);// 现金支付 - map.put("rmbCashSum", BigDecimal.ZERO);// 现金支付 - map.put("vxCashSum", BigDecimal.ZERO);// 现金支付() - map.put("aliCashSum", BigDecimal.ZERO);// 现金支付() - map.put("uniCashSum", BigDecimal.ZERO);// 现金支付() - map.put("tcSum", BigDecimal.ZERO);// 基本统筹 - map.put("zhSum", BigDecimal.ZERO);// 账户支付 - map.put("fundSum", BigDecimal.ZERO);// 基金支付总额 + map.put("cashSum", BigDecimal.ZERO);// 现金支付 + map.put("rmbCashSum", BigDecimal.ZERO);// 现金支付 + map.put("vxCashSum", BigDecimal.ZERO);// 现金支付() + map.put("aliCashSum", BigDecimal.ZERO);// 现金支付() + map.put("uniCashSum", BigDecimal.ZERO);// 现金支付() + map.put("tcSum", BigDecimal.ZERO);// 基本统筹 + map.put("zhSum", BigDecimal.ZERO);// 账户支付 + map.put("fundSum", BigDecimal.ZERO);// 基金支付总额 return map; } @@ -2240,7 +2240,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { Date startDate = DateUtils.parseDate(chargeSummaryDto.getStartTime()); Date endDate = DateUtils.parseDate(chargeSummaryDto.getEndTime()); - // 查询所有的支付 + // 查询所有的支付 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .between(PaymentReconciliation::getBillDate, startDate, endDate) .eq(PaymentReconciliation::getDeleteFlag, DelFlag.NO.getCode()) @@ -2253,11 +2253,11 @@ public class IChargeBillServiceImpl implements IChargeBillService { return null; } - List chargeItemIds = paymentReconciliationList.stream().map(PaymentReconciliation::getChargeItemIds) // 获取逗号分隔的字符串字段 - .flatMap(str -> Arrays.stream(str.split(","))) // 拆分字符串并扁平化 - .map(String::trim) // 去除前后空格 - .filter(s -> !s.isEmpty()) // 过滤空字符串 - .map(Long::valueOf) // 转换为Long + List chargeItemIds = paymentReconciliationList.stream().map(PaymentReconciliation::getChargeItemIds) // 获取逗号分隔的字符串字段 + .flatMap(str -> Arrays.stream(str.split(","))) // 拆分字符串并扁平化 + .map(String::trim) // 去除前后空格 + .filter(s -> !s.isEmpty()) // 过滤空字符串 + .map(Long::valueOf) // 转换为Long .collect(Collectors.toList()); List ChargeItemExtendInfoDtoList @@ -2273,7 +2273,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { } List organizationList = iOrganizationService.list(organizationLambdaQueryWrapper); if (organizationList.isEmpty()) { - throw new ServiceException("未查询到科室信息"); + throw new ServiceException("未查询到科室信息"); } List orgIncomeList = new ArrayList(); OrgIncomeDto orgIncomeDto; @@ -2287,7 +2287,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { continue; } for (ChargeItemExtendInfoDto chargeItemExtendInfoDto : chargeItemExtendInfoDtos) { - // 挂号费单独 未计入应收 + // 挂号费单独 未计入应收 switch (YbMedChrgItmType.getByValue(chargeItemExtendInfoDto.getYbType())) { case WEST_MEDICINE: case CHINESE_MEDICINE_SLICES_FEE: @@ -2315,7 +2315,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { orgIncomeList.add(orgIncomeDto); } - // 住院部分数据tbd + // 住院部分数据tbd map.put("clinic", orgIncomeList); @@ -2323,83 +2323,83 @@ public class IChargeBillServiceImpl implements IChargeBillService { } /** - * 小票信息(农大) + * 小票信息(农大) * - * @param paymentId 付款id - * @return 结果 + * @param paymentId 付款id + * @return 结果 */ @Override public Map getReceiptDetailsND(Long paymentId) { Map map = new HashMap<>(); - // 查询 + // 查询 PaymentReconciliation paymentReconciliation = paymentReconciliationService.getById(paymentId); if (paymentReconciliation == null) { - throw new ServiceException("未查询到付款信息"); + throw new ServiceException("未查询到付款信息"); } - map.put("paymentId", paymentReconciliation.getPaymentNo());// 结算id - map.put("paymentAmount", paymentReconciliation.getTenderedAmount());// 应收金额 + map.put("paymentId", paymentReconciliation.getPaymentNo());// 结算id + map.put("paymentAmount", paymentReconciliation.getTenderedAmount());// 应收金额 Practitioner practitioner = iPractitionerService.getById(paymentReconciliation.getEntererId()); - map.put("paymentEmployee", practitioner == null ? "" : practitioner.getName());// 收费员 - map.put("chargeTime", paymentReconciliation.getBillDate());// 收费时间 + map.put("paymentEmployee", practitioner == null ? "" : practitioner.getName());// 收费员 + map.put("chargeTime", paymentReconciliation.getBillDate());// 收费时间 Patient patient = iPatientService.getById(paymentReconciliation.getPatientId()); if (patient == null) { - throw new ServiceException("未查询到患者信息"); + throw new ServiceException("未查询到患者信息"); } - map.put("patientName", patient.getName());// 患者姓名 + map.put("patientName", patient.getName());// 患者姓名 - map.put("sex", patient.getGenderEnum());// 性别 - map.put("idCardNo", patient.getIdCard());// 身份证号 - map.put("birthDay", patient.getBirthDate());// 出生日期 + map.put("sex", patient.getGenderEnum());// 性别 + map.put("idCardNo", patient.getIdCard());// 身份证号 + map.put("birthDay", patient.getBirthDate());// 出生日期 List paymentRecDetails = paymentRecDetailService.list( new LambdaQueryWrapper().eq(PaymentRecDetail::getReconciliationId, paymentId)); if (paymentRecDetails.isEmpty()) { - throw new ServiceException("未查询到付款信息"); + throw new ServiceException("未查询到付款信息"); } - map.put("detail", paymentRecDetails);// 支付详细 + map.put("detail", paymentRecDetails);// 支付详细 for (PaymentRecDetail paymentRecDetail : paymentRecDetails) { if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.SELF_YB_ZH_PAY.getValue())) { - map.put("ybAccountPay", paymentRecDetail.getAmount());// 医保账户支付 + map.put("ybAccountPay", paymentRecDetail.getAmount());// 医保账户支付 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.BALC.getValue())) { - map.put("ybAccountBalc", paymentRecDetail.getAmount());// 医保账户余额(现) + map.put("ybAccountBalc", paymentRecDetail.getAmount());// 医保账户余额(现) } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.YB_FUND_PAY.getValue())) { - map.put("ybFundPay", paymentRecDetail.getAmount());// 基金支付总额 + map.put("ybFundPay", paymentRecDetail.getAmount());// 基金支付总额 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.YB_TC_FUND_AMOUNT.getValue())) { - map.put("ybTcPay", paymentRecDetail.getAmount());// 统筹支付金额 + map.put("ybTcPay", paymentRecDetail.getAmount());// 统筹支付金额 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.YB_BC_GWY_BZ_VALUE.getValue())) { - map.put("ybGWYPay", paymentRecDetail.getAmount());// 公务员补助 + map.put("ybGWYPay", paymentRecDetail.getAmount());// 公务员补助 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.OTHER_PAY.getValue())) { - map.put("ybOtherPay", paymentRecDetail.getAmount());// 其他支付 + map.put("ybOtherPay", paymentRecDetail.getAmount());// 其他支付 } - // 下面两个大额理赔有哪个用哪个,无所谓的 + // 下面两个大额理赔有哪个用哪个,无所谓的 if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.YB_BC_DE_BZ_VALUE.getValue())) { - map.put("ybDELPPay", paymentRecDetail.getAmount());// 大额理赔(常规) + map.put("ybDELPPay", paymentRecDetail.getAmount());// 大额理赔(常规) } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.YB_BC_ZG_DE_BZ_VALUE.getValue())) { - map.put("ybDELPPay", paymentRecDetail.getAmount());// 大额理赔(企业) + map.put("ybDELPPay", paymentRecDetail.getAmount());// 大额理赔(企业) } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.E_WALLET.getValue())) { - map.put("ybWallet", paymentRecDetail.getAmount());// 电子钱包 + map.put("ybWallet", paymentRecDetail.getAmount());// 电子钱包 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.SUPPLEMENTARY_INSURANCE.getValue())) { - map.put("ybWallet", paymentRecDetail.getAmount());// 居民大病报销 + map.put("ybWallet", paymentRecDetail.getAmount());// 居民大病报销 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.SELF_CASH_VALUE.getValue())) { - map.put("cash", paymentRecDetail.getAmount());// 现金 + map.put("cash", paymentRecDetail.getAmount());// 现金 } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.SELF_CASH_VX_VALUE.getValue())) { - map.put("wxCash", paymentRecDetail.getAmount());// 现金(微信) + map.put("wxCash", paymentRecDetail.getAmount());// 现金(微信) } if (Objects.equals(paymentRecDetail.getPayEnum(), YbPayment.SELF_CASH_ALI_VALUE.getValue())) { - map.put("aliCash", paymentRecDetail.getAmount());// 现金(支付宝) + map.put("aliCash", paymentRecDetail.getAmount());// 现金(支付宝) } } @@ -2407,22 +2407,22 @@ public class IChargeBillServiceImpl implements IChargeBillService { paymentId).eq(Invoice::getStatusEnum, InvoiceStatus.ISSUED.getValue()).orderByDesc(Invoice::getCreateTime) .last(YbCommonConstants.sqlConst.LIMIT1)); if (invoice != null) { - map.put("invoiceNo", invoice.getBillNo());// 支付详细 - map.put("pictureUrl", invoice.getPictureUrl());// 图片 + map.put("invoiceNo", invoice.getBillNo());// 支付详细 + map.put("pictureUrl", invoice.getPictureUrl());// 图片 } List chargeItemIds = Arrays.stream(paymentReconciliation.getChargeItemIds().split(",")).map( - Long::parseLong) // 将字符串转换为 Long + Long::parseLong) // 将字符串转换为 Long .collect(Collectors.toList()); List chargeItemBaseInfoByIds = chargeItemService.getChargeItemBaseInfoByIds( chargeItemIds); for (ChargeItemBaseInfoDto chargeItemBaseInfoById : chargeItemBaseInfoByIds) { if (chargeItemBaseInfoById.getDeptName() == null) { - throw new ServiceException("收费项" + chargeItemBaseInfoById.getName() + "无开单科室"); + throw new ServiceException("收费项" + chargeItemBaseInfoById.getName() + "无开单科室"); } if (chargeItemBaseInfoById.getTypeCode() == null) { - throw new ServiceException("收费项" + chargeItemBaseInfoById.getName() + "无财务分类"); + throw new ServiceException("收费项" + chargeItemBaseInfoById.getName() + "无财务分类"); } if (!CommonConstants.BusinessName.DEFAULT_CONTRACT_NO.equals(chargeItemBaseInfoById.getContractNo())) { Object o = map.get(chargeItemBaseInfoById.getContractNo() + "-" + chargeItemBaseInfoById.getTypeCode()); @@ -2436,7 +2436,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { bigDecimal); } } else { - // 根据科室的分类来 + // 根据科室的分类来 Object o = map.get(chargeItemBaseInfoById.getDeptName() + "-" + chargeItemBaseInfoById.getTypeCode()); if (o == null) { map.put(chargeItemBaseInfoById.getDeptName() + "-" + chargeItemBaseInfoById.getTypeCode(), @@ -2452,20 +2452,20 @@ public class IChargeBillServiceImpl implements IChargeBillService { Encounter encounter = iEncounterService.getById(paymentReconciliation.getEncounterId()); if (encounter == null) { - throw new ServiceException("未查询到就诊信息"); + throw new ServiceException("未查询到就诊信息"); } - map.put("classEnum", encounter.getYbClassEnum());// 门诊/住院 - map.put("regNo", encounter.getBusNo());// 门诊号 + map.put("classEnum", encounter.getYbClassEnum());// 门诊/住院 + map.put("regNo", encounter.getBusNo());// 门诊号 InfoPerson perinfo = iPerinfoService.getOne(new LambdaQueryWrapper().eq(InfoPerson::getCertno, patient.getIdCard()).eq(InfoPerson::getTenantId, patient.getTenantId()) .orderByDesc(InfoPerson::getCreateTime).last(YbCommonConstants.sqlConst.LIMIT1)); if (perinfo != null) { - map.put("personType", perinfo.getInsutype());// 人员类别:职工医保,居民医保等;如果为空显示自费或其他 - map.put("insuplcAdmdvs", perinfo.getInsuplcAdmdvs());// 患者参保地区划 + map.put("personType", perinfo.getInsutype());// 人员类别:职工医保,居民医保等;如果为空显示自费或其他 + map.put("insuplcAdmdvs", perinfo.getInsuplcAdmdvs());// 患者参保地区划 } - // 查询主诊断信息 + // 查询主诊断信息 EncounterDiagnosis encounterDiagnosis = iEncounterDiagnosisService.getOne( new LambdaQueryWrapper().eq(EncounterDiagnosis::getEncounterId, encounter.getId()).eq( EncounterDiagnosis::getMaindiseFlag, Whether.YES.getValue()).eq(EncounterDiagnosis::getDeleteFlag, @@ -2479,17 +2479,17 @@ public class IChargeBillServiceImpl implements IChargeBillService { new LambdaQueryWrapper().eq(ConditionDefinition::getId, condition.getDefinitionId())); if (conditionDefinition != null) { - map.put("conditionDefinition", conditionDefinition.getName());// 诊断名 + map.put("conditionDefinition", conditionDefinition.getName());// 诊断名 } } } - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); - String fixmedinsName = optionJson.getString(CommonConstants.Option.FIXMEDINS_NAME); - String fixmedinsCode = optionJson.getString(CommonConstants.Option.FIXMEDINS_CODE); + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); + String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText(); + String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText(); - map.put("fixmedinsName", fixmedinsName);// 医院名称 - map.put("fixmedinsCode", fixmedinsCode);// 医院编号 + map.put("fixmedinsName", fixmedinsName);// 医院名称 + map.put("fixmedinsCode", fixmedinsCode);// 医院编号 return map; } @@ -2499,23 +2499,23 @@ public class IChargeBillServiceImpl implements IChargeBillService { HashMap map = new HashMap<>(); Encounter encounter = iEncounterService.getById(encounterId); if (encounter == null) { - throw new ServiceException("未查询到就诊信息"); + throw new ServiceException("未查询到就诊信息"); } Patient patient = iPatientService.getById(encounter.getPatientId()); if (patient == null) { - throw new ServiceException("未查询到患者信息"); + throw new ServiceException("未查询到患者信息"); } Account ybAccount = iAccountService.getYbAccount(encounter.getId()); if (ybAccount == null) { - map.put("insutype", "自费"); + map.put("insutype", "自费"); return map; } Contract contract = contractService.getContract(ybAccount.getContractNo()); if (contract == null) { - throw new ServiceException("未查询到合同信息"); + throw new ServiceException("未查询到合同信息"); } InfoPerson perinfo = iPerinfoService.getOne(new LambdaQueryWrapper().eq(InfoPerson::getCertno, @@ -2526,7 +2526,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { map.put("insutype", contract.getBusNo() + "-" + byCode.getInfo()); return map; } - map.put("insutype", "自费"); + map.put("insutype", "自费"); return map; } @@ -2557,12 +2557,12 @@ public class IChargeBillServiceImpl implements IChargeBillService { for (PaymentReconciliation paymentReconciliation : list) { - BigDecimal a = BigDecimal.ZERO;// 药品固定价格 - BigDecimal b = BigDecimal.ZERO;// 实付金额与药品金额差值即待分配金额 - BigDecimal c = BigDecimal.ZERO;// 诊疗检查等项目的合计金额 - BigDecimal d = BigDecimal.ZERO;// 实际交款金额 - BigDecimal e = BigDecimal.ZERO;// 折扣金额 - BigDecimal f = BigDecimal.ZERO;// 应收金额与药品金额差值即应收待分配金额 + BigDecimal a = BigDecimal.ZERO;// 药品固定价格 + BigDecimal b = BigDecimal.ZERO;// 实付金额与药品金额差值即待分配金额 + BigDecimal c = BigDecimal.ZERO;// 诊疗检查等项目的合计金额 + BigDecimal d = BigDecimal.ZERO;// 实际交款金额 + BigDecimal e = BigDecimal.ZERO;// 折扣金额 + BigDecimal f = BigDecimal.ZERO;// 应收金额与药品金额差值即应收待分配金额 List paymentRecDetailList = paymentRecDetailService.list( new LambdaQueryWrapper().eq(PaymentRecDetail::getReconciliationId, @@ -2618,10 +2618,10 @@ public class IChargeBillServiceImpl implements IChargeBillService { List chargeItemDefInfoByIdList = chargeItemService.getChargeItemDefInfoByIdList( chargeItemIds); -// BigDecimal a = BigDecimal.ZERO;// 药品固定价格 -// BigDecimal b = BigDecimal.ZERO;// 实付金额与药品金额差值即待分配金额 -// BigDecimal c = BigDecimal.ZERO;// 诊疗检查等项目的合计金额 -// BigDecimal d = paymentReconciliation.getTenderedAmount().subtract(paymentRecDetail.getAmount());// 实际交款金额 +// BigDecimal a = BigDecimal.ZERO;// 药品固定价格 +// BigDecimal b = BigDecimal.ZERO;// 实付金额与药品金额差值即待分配金额 +// BigDecimal c = BigDecimal.ZERO;// 诊疗检查等项目的合计金额 +// BigDecimal d = paymentReconciliation.getTenderedAmount().subtract(paymentRecDetail.getAmount());// 实际交款金额 List newChargeItemList = new ArrayList<>(); for (ChargeItemDefInfo chargeItemDefInfo : chargeItemDefInfoByIdList) { @@ -2633,18 +2633,18 @@ public class IChargeBillServiceImpl implements IChargeBillService { || chargeItemDefInfo.getYbType().equals(YbMedChrgItmType.CHINESE_MEDICINE_FEE.getValue()) || chargeItemDefInfo.getYbType().equals(YbMedChrgItmType.SANITARY_MATERIALS_FEE.getValue())) { - // 药品耗材固定价格(中西药中成药耗材) + // 药品耗材固定价格(中西药中成药耗材) chargeItem.setId(chargeItemDefInfo.getId()); chargeItem.setSystemDiscountPrice(chargeItemDefInfo.getTotalPrice()); // newChargeItemList.add(chargeItem); - a = a.add(chargeItemDefInfo.getTotalPrice());//药品固定金额 + a = a.add(chargeItemDefInfo.getTotalPrice());//药品固定金额 chargeItemService.updateById(chargeItem); } else { - // 其他项目统计金额 + // 其他项目统计金额 c = c.add(chargeItemDefInfo.getTotalPrice()); chargeItem.setId(chargeItemDefInfo.getId()); @@ -2656,12 +2656,12 @@ public class IChargeBillServiceImpl implements IChargeBillService { } } - b = d.subtract(a);//实付的待分配金额 - f = paymentReconciliation.getTenderedAmount().subtract(a);//应收的待分配金额 + b = d.subtract(a);//实付的待分配金额 + f = paymentReconciliation.getTenderedAmount().subtract(a);//应收的待分配金额 for (ChargeItem item : newChargeItemList) { if (item.getTotalPrice() == null) { - log.info("这个收费项没有定义总价:" + item.getId()); + log.info("这个收费项没有定义总价:" + item.getId()); } } @@ -2669,12 +2669,12 @@ public class IChargeBillServiceImpl implements IChargeBillService { if (paymentReconciliationId == 1987152585230508034L || paymentReconciliationId == 1987153070121410561L || paymentReconciliationId == 1984438852329246721L || paymentReconciliationId == 1984902967625117698L || paymentReconciliationId == 1984778667126493186L || paymentReconciliationId == 1984780710054531074L) { - log.info("主键id如下:" + paymentReconciliationId); - log.info("待分配诊疗项目如下:" + JSON.toJSONString(newChargeItemList)); + log.info("主键id如下:" + paymentReconciliationId); + log.info("待分配诊疗项目如下:" + JsonUtils.toJson(newChargeItemList)); } if (b.compareTo(BigDecimal.ZERO) > 0) { - // 存在待分配金额的情况下,对诊疗检查检验项目进行分配 + // 存在待分配金额的情况下,对诊疗检查检验项目进行分配 for (ChargeItem item : newChargeItemList) { item.setSystemDiscountPrice(item.getTotalPrice().divide(f, 6, RoundingMode.HALF_UP).multiply(b)); chargeItemService.updateById(item); @@ -2700,7 +2700,7 @@ public class IChargeBillServiceImpl implements IChargeBillService { List voicList = new ArrayList<>(); if (list.isEmpty()) { - throw new ServiceException("没查到有医保码的诊疗定义"); + throw new ServiceException("没查到有医保码的诊疗定义"); } for (ActivityDefinition activityDefinition : list) { @@ -2710,27 +2710,27 @@ public class IChargeBillServiceImpl implements IChargeBillService { Catalogue1312QueryParam catalogue1312QueryParam = new Catalogue1312QueryParam(); catalogue1312QueryParam.setHilistCode(activityDefinition.getYbNo()); catalogue1312QueryParam.setInsuplcAdmdvs( - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.INSUPLC_ADMDVS)); - // 直接解析(默认 ISO 格式) + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.INSUPLC_ADMDVS).asText()); + // 直接解析(默认 ISO 格式) LocalDate localDate = LocalDate.parse("2025-01-01"); - // 转换为 Date + // 转换为 Date Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); catalogue1312QueryParam.setUpdtTime(date); catalogue1312QueryParam.setPageNum(1); catalogue1312QueryParam.setPageSize(10); - catalogue1312QueryParam.setDecryptFlag("0"); // 不需要解密 + catalogue1312QueryParam.setDecryptFlag("0"); // 不需要解密 List outputList = ybHttpUtils.queryYbCatalogue(catalogue1312QueryParam); if (outputList != null && !outputList.isEmpty() && outputList.get(0) != null) { Catalogue1312Output catalogue1312Output = outputList.get(0); if (catalogue1312Output.getValiFlag() != null && catalogue1312Output.getValiFlag().equals("1")) { - // 有效标志 + // 有效标志 Date enddate = catalogue1312Output.getEnddate(); if (enddate == null) { // OK } else { if (!DateUtils.isFuture(enddate)) { - // 已过期 + // 已过期 outList.add(activityDefinition); } } @@ -2743,8 +2743,8 @@ public class IChargeBillServiceImpl implements IChargeBillService { } HashMap hashMap = new HashMap<>(); - hashMap.put("失效列表", voicList); - hashMap.put("过期列表", outList); + hashMap.put("失效列表", voicList); + hashMap.put("过期列表", outList); return R.ok(hashMap); } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/PaymentRecServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/PaymentRecServiceImpl.java index b7ff2a493..84ccc7f88 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/PaymentRecServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/PaymentRecServiceImpl.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.paymentmanage.appservice.impl; -import com.alibaba.fastjson2.JSON; +import com.core.common.utils.JsonUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -208,7 +208,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService { */ @Override public R prePayment(PrePaymentDto prePaymentDto) { - logger.info("预结算:参数:" + JSON.toJSONString(prePaymentDto)); + logger.info("预结算:参数:" + JsonUtils.toJson(prePaymentDto)); // 查收费项 List chargeItemList = getChargeItems(prePaymentDto.getChargeItemIds()); if (chargeItemList.isEmpty()) { @@ -357,13 +357,13 @@ public class PaymentRecServiceImpl implements IPaymentRecService { if (StringUtils.isEmpty(chargeItem.getChildrenJson()) || CommonConstants.BusinessName.DEFAULT_CONTRACT_NO.equals(account.getContractNo()) || "0".equals( - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH))) { + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText())) { PaymentedItemModel piModel = ConverterToPaymenItemModel(diagList, chargeItem); prePaymentedItems.add(piModel); } else { try { List childrenList - = JSON.parseArray(chargeItem.getChildrenJson(), ChargeItem.class); + = JsonUtils.parseObject(chargeItem.getChildrenJson(), new com.fasterxml.jackson.core.type.TypeReference>() {}); for (ChargeItem child : childrenList) { PaymentedItemModel piModel = ConverterToPaymenItemModel(diagList, child); prePaymentedItems.add(piModel); @@ -651,7 +651,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService { .collect(Collectors.toList()); // 更改付款状态 - logger.info("更新付款状态:payment:" + JSON.toJSONString(paymentReconciliation)); + logger.info("更新付款状态:payment:" + JsonUtils.toJson(paymentReconciliation)); iPaymentReconciliationService.updatePaymentStatusAndSettleIdsById(paymentReconciliation.getId(), PaymentStatus.SUCCESS, PaymentOutcome.COMPLETED.getCode(), ybSettleIds); // iPaymentRecDetailService.updateResultByPaymentId(paymentReconciliation.getId(), PaymentResult.PAID); @@ -763,7 +763,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService { // 更新服务请求状态为已完成 serviceRequestService.updateCompleteRequestStatus(serviceRequestIdList, null, null); } - logger.info("收费成功:payment:" + JSON.toJSONString(paymentReconciliation)); + logger.info("收费成功:payment:" + JsonUtils.toJson(paymentReconciliation)); // throw new ServiceException(""); return R.ok(paymentReconciliation, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"收费"})); @@ -880,7 +880,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService { } PrePaymentResultModel prePaymentResultModel - = JSON.parseObject(JSON.toJSONString(preResult.getData()), PrePaymentResultModel.class); + = JsonUtils.parseObject(JsonUtils.toJson(preResult.getData()), PrePaymentResultModel.class); // 新的应收 BigDecimal cashPay = BigDecimal.ZERO; for (PaymentRecDetailDto paymentRecDetail : prePaymentResultModel.getDetails()) { @@ -914,7 +914,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService { // 获取新的付款参数表 PaymentReconciliation payment - = JSON.parseObject(JSON.toJSONString(settleResult.getData()), PaymentReconciliation.class); + = JsonUtils.parseObject(JsonUtils.toJson(settleResult.getData()), PaymentReconciliation.class); // 获取实付金额 List paymentRecDetail = paymentRecDetailService.list( new LambdaQueryWrapper().eq(PaymentRecDetail::getReconciliationId, payment.getId()) @@ -927,7 +927,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService { } } logger.info( - "部分退款:原payment:" + JSON.toJSONString(paymentReconciliation) + "新payment:" + JSON.toJSONString(payment)); + "部分退款:原payment:" + JsonUtils.toJson(paymentReconciliation) + "新payment:" + JsonUtils.toJson(payment)); if (chargedPay.compareTo(payAmount) >= 0) { return R.ok("请患者补交" + chargedPay.subtract(payAmount).setScale(6, RoundingMode.HALF_UP) + "元"); } else { @@ -1077,7 +1077,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService { list.add(item); } paymentRecDetailService.updateBatchById(list); - logger.info("退款payment:" + JSON.toJSONString(paymentReconciliation)); + logger.info("退款payment:" + JsonUtils.toJson(paymentReconciliation)); // 保存付款快照信息 2025/08/08 List chargeItemIds = new ArrayList<>(); @@ -1863,8 +1863,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService { } Clinic2206OrderOutput clinic2206OrderResult; - String string = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); - if ("1".equals(SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH)) + String string = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); + if ("1".equals(SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText()) && !(CommonConstants.BusinessName.DEFAULT_CONTRACT_NO .equals(outpatientRegistrationAddParam.getAccountFormData().getContractNo()) || CommonConstants.BusinessName.DEFAULT_STUDENT_CONTRACT_NO @@ -1959,7 +1959,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService { throw new ServiceException("请选择合适的费用性质"); } com.healthlink.his.financial.model.PaymentResult paymentResult; - if ("1".equals(SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH)) + if ("1".equals(SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText()) && !CommonConstants.BusinessName.DEFAULT_CONTRACT_NO .equals(outpatientRegistrationAddParam.getAccountFormData().getContractNo()) && contract.getYbFlag() == 1) { @@ -2666,7 +2666,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService { .filter(StringUtils::isNotEmpty).collect(Collectors.toList()); // <4>更改付款状态 - logger.info("更新付款状态:payment:" + JSON.toJSONString(paymentReconciliation)); + logger.info("更新付款状态:payment:" + JsonUtils.toJson(paymentReconciliation)); iPaymentReconciliationService.updatePaymentStatusAndSettleIdsById(paymentReconciliation.getId(), PaymentStatus.SUCCESS, PaymentOutcome.COMPLETED.getCode(), ybSettleIds); @@ -2743,7 +2743,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService { .setChargeItemIds(paymentReconciliation.getChargeItemIds()); iInvoiceService.save(invoice); - logger.info("收费成功:payment:" + JSON.toJSONString(paymentReconciliation)); + logger.info("收费成功:payment:" + JsonUtils.toJson(paymentReconciliation)); // throw new ServiceException(""); return R.ok(paymentReconciliation, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"收费"})); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/ThreePartPayServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/ThreePartPayServiceImpl.java index 593b7ef3e..fb6c4b1be 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/ThreePartPayServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/appservice/impl/ThreePartPayServiceImpl.java @@ -1,7 +1,8 @@ package com.healthlink.his.web.paymentmanage.appservice.impl; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -75,7 +76,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { String requestMethod = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_SIGN_MAPPING_METHOD); String activeParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_SIGN_ACTIVE_PARAM); String staticParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_SIGN_STATIC_PARAM); - JSONObject jsonObject = JSON.parseObject(activeParam); + JsonNode jsonObject = JsonUtils.parse(activeParam); //B.基础信息查询 //款员信息查询 @@ -104,7 +105,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { String requestMethod = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_SIGN_OUT_MAPPING_METHOD); String activeParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_SIGN_OUT_ACTIVE_PARAM); String staticParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_SIGN_OUT_STATIC_PARAM); - JSONObject jsonObject = JSON.parseObject(activeParam); + JsonNode jsonObject = JsonUtils.parse(activeParam); //B.基础信息查询 //款员信息查询 @@ -134,7 +135,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { String requestMethod = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_PAY_MAPPING_METHOD); String activeParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_PAY_ACTIVE_PARAM); String staticParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_PAY_STATIC_PARAM); - JSONObject jsonObject = JSON.parseObject(activeParam); + JsonNode jsonObject = JsonUtils.parse(activeParam); //B.基础信息查询 //订单号及订单信息 @@ -170,7 +171,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { //映射实体 String threePartMapping = threePartSimpleFieldMappingService.reverseMap("three-part-mapping", requestResult); //保存实体 - ThreePartPayCallBack threePartPayCallBack = JSON.parseObject(threePartMapping, ThreePartPayCallBack.class); + ThreePartPayCallBack threePartPayCallBack = JsonUtils.parseObject(threePartMapping, ThreePartPayCallBack.class); //红旗临时处理,这个if后续可删除 if (threePartPayDto.getId() == null) { @@ -197,7 +198,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { String requestMethod = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_PAY_QUERY_MAPPING_METHOD); String activeParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_PAY_QUERY_ACTIVE_PARAM); String staticParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_PAY_QUERY_STATIC_PARAM); - JSONObject jsonObject = JSON.parseObject(activeParam); + JsonNode jsonObject = JsonUtils.parse(activeParam); //B.基础信息查询 //订单号及订单信息 @@ -222,8 +223,8 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { //映射实体 String threePartMapping = threePartSimpleFieldMappingService.reverseMap("three-part-mapping", requestResult); //保存实体 - ThreePartPayCallBack threePartPayCallBack1 = JSON.parseObject(threePartMapping, ThreePartPayCallBack.class); - //ThreePartPayCallBack threePartPayCallBack1 = JSON.parseObject(threePartMapping, ThreePartPayCallBack.class); + ThreePartPayCallBack threePartPayCallBack1 = JsonUtils.parseObject(threePartMapping, ThreePartPayCallBack.class); + //ThreePartPayCallBack threePartPayCallBack1 = JsonUtils.parseObject(threePartMapping, ThreePartPayCallBack.class); //threePartPayCallBackService.save(threePartPayCallBack1); if (threePartPayCallBack1 != null && threePartPayCallBack1.getPayResult() != null && "00".equals(threePartPayCallBack1.getPayResult())) { @@ -243,7 +244,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { String requestMethod = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_RETURN_MAPPING_METHOD); String activeParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_RETURN_ACTIVE_PARAM); String staticParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_RETURN_STATIC_PARAM); - JSONObject jsonObject = JSON.parseObject(activeParam); + JsonNode jsonObject = JsonUtils.parse(activeParam); //B.基础信息查询 PaymentReconciliation paymentReconciliation = paymentReconciliationService.getById(paymentId); @@ -266,7 +267,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { //映射实体 String threePartMapping = threePartSimpleFieldMappingService.reverseMap("three-part-mapping", requestResult); //保存实体 - ThreePartPayCallBack threePartPayCallBack1 = JSON.parseObject(threePartMapping, ThreePartPayCallBack.class); + ThreePartPayCallBack threePartPayCallBack1 = JsonUtils.parseObject(threePartMapping, ThreePartPayCallBack.class); threePartPayCallBackService.save(threePartPayCallBack1); if (threePartPayCallBack1 != null && threePartPayCallBack1.getPayResult() != null && "00".equals(threePartPayCallBack1.getPayResult())) { @@ -286,7 +287,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { String requestMethod = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_NEXT_DAY_RETURN_MAPPING_METHOD); String activeParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_NEXT_DAY_RETURN_ACTIVE_PARAM); String staticParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_NEXT_DAY_RETURN_STATIC_PARAM); - JSONObject jsonObject = JSON.parseObject(activeParam); + JsonNode jsonObject = JsonUtils.parse(activeParam); //B.基础信息查询 PaymentReconciliation paymentReconciliation = paymentReconciliationService.getById(paymentId); @@ -309,9 +310,9 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { //映射实体 String threePartMapping = threePartSimpleFieldMappingService.reverseMap("three-part-mapping", requestResult); //保存实体 - //threePartPayCallBackService.save(JSON.parseObject(threePartMapping,ThreePartPayCallBack.class)); + //threePartPayCallBackService.save(JsonUtils.parseObject(threePartMapping, ThreePartPayCallBack.class)); - ThreePartPayCallBack threePartPayCallBack1 = JSON.parseObject(threePartMapping, ThreePartPayCallBack.class); + ThreePartPayCallBack threePartPayCallBack1 = JsonUtils.parseObject(threePartMapping, ThreePartPayCallBack.class); threePartPayCallBackService.save(threePartPayCallBack1); if ("00".equals(threePartPayCallBack1.getPayResult())) { @@ -331,7 +332,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { String requestMethod = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_RETURN_QUERY_MAPPING_METHOD); String activeParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_RETURN_QUERY_ACTIVE_PARAM); String staticParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_RETURN_QUERY_STATIC_PARAM); - JSONObject jsonObject = JSON.parseObject(activeParam); + JsonNode jsonObject = JsonUtils.parse(activeParam); //B.基础信息查询 //PaymentReconciliation paymentReconciliation = paymentReconciliationService.getById(paymentId); @@ -353,8 +354,8 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { //映射实体 String threePartMapping = threePartSimpleFieldMappingService.reverseMap("three-part-mapping", requestResult); //保存实体 - //threePartPayCallBackService.save(JSON.parseObject(threePartMapping,ThreePartPayCallBack.class)); - ThreePartPayCallBack threePartPayCallBack1 = JSON.parseObject(threePartMapping, ThreePartPayCallBack.class); + //threePartPayCallBackService.save(JsonUtils.parseObject(threePartMapping, ThreePartPayCallBack.class)); + ThreePartPayCallBack threePartPayCallBack1 = JsonUtils.parseObject(threePartMapping, ThreePartPayCallBack.class); if (threePartPayCallBack1 != null && threePartPayCallBack1.getPayResult() != null && "00".equals(threePartPayCallBack1.getPayResult())) { return R.ok("成功退费:" + new BigDecimal(threePartPayCallBack1.getTxnAmt()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP) + "元"); @@ -392,20 +393,20 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { * @param txtCode 支付码 * @return */ - private Map getParamMap(JSONObject jsonObject, Practitioner practitioner, ThreePartPayCallBack threePartPayCallBack, PaymentReconciliation paymentReconciliation, String amountResult, String txtCode) { + private Map getParamMap(JsonNode jsonObject, Practitioner practitioner, ThreePartPayCallBack threePartPayCallBack, PaymentReconciliation paymentReconciliation, String amountResult, String txtCode) { Map paramMap = new HashMap<>(); //款员信息 if (practitioner != null) { - String posNoKey = jsonObject.getString("posNo");//pos机编码 + String posNoKey = jsonObject.path("posNo").asText();//pos机编码 if (posNoKey != null) { paramMap.put(posNoKey, practitioner.getPosNo()); } - String userIdKey = jsonObject.getString("userId"); + String userIdKey = jsonObject.path("userId").asText(); if (userIdKey != null) { paramMap.put(userIdKey, practitioner.getId().toString()); } - String userNameKey = jsonObject.getString("userName"); + String userNameKey = jsonObject.path("userName").asText(); if (userNameKey != null) { paramMap.put(userNameKey, practitioner.getName()); } @@ -413,53 +414,53 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { //原账单信息 if (threePartPayCallBack != null) { - String bankOrderIdKey = jsonObject.getString("bankOrderId"); + String bankOrderIdKey = jsonObject.path("bankOrderId").asText(); if (bankOrderIdKey != null) { paramMap.put(bankOrderIdKey, threePartPayCallBack.getTradeNo());//银行订单号 } - String payWayOrderIdKey = jsonObject.getString("payWayOrderId"); + String payWayOrderIdKey = jsonObject.path("payWayOrderId").asText(); if (payWayOrderIdKey != null) { paramMap.put(payWayOrderIdKey, threePartPayCallBack.getTransNo());//支付渠道订单号 } - String tranTypeKey = jsonObject.getString("tranType"); + String tranTypeKey = jsonObject.path("tranType").asText(); if (tranTypeKey != null) { paramMap.put(tranTypeKey, threePartPayCallBack.getTranType());//交易类型 } - String payTypeKey = jsonObject.getString("payType"); + String payTypeKey = jsonObject.path("payType").asText(); if (payTypeKey != null) { paramMap.put(payTypeKey, threePartPayCallBack.getPayType());//支付方式 } - String traceNoKey = jsonObject.getString("traceNo"); + String traceNoKey = jsonObject.path("traceNo").asText(); if (payWayOrderIdKey != null) { paramMap.put(traceNoKey, threePartPayCallBack.getTraceNo());//终端流水号 } - String txnTimeKey = jsonObject.getString("txnTime"); + String txnTimeKey = jsonObject.path("txnTime").asText(); if (payWayOrderIdKey != null) { paramMap.put(txnTimeKey, threePartPayCallBack.getTxnTime());//交易时间 } - String merTradeNoKey = jsonObject.getString("merTradeNo"); + String merTradeNoKey = jsonObject.path("merTradeNo").asText(); if (payWayOrderIdKey != null) { paramMap.put(merTradeNoKey, threePartPayCallBack.getMerTradeNo());//商户系统订单号 } - String tradeNoKey = jsonObject.getString("tradeNo"); + String tradeNoKey = jsonObject.path("tradeNo").asText(); if (tradeNoKey != null) { paramMap.put(tradeNoKey, threePartPayCallBack.getTradeNo());//商户系统订单号 } - String txnAmtKey = jsonObject.getString("txnAmt"); + String txnAmtKey = jsonObject.path("txnAmt").asText(); if (txnAmtKey != null) { paramMap.put(txnAmtKey, threePartPayCallBack.getTxnAmt());//金额 } } if (paymentReconciliation != null) { - String paymentIdKey = jsonObject.getString("paymentId"); + String paymentIdKey = jsonObject.path("paymentId").asText(); if (paymentIdKey != null) { paramMap.put(paymentIdKey, paymentReconciliation.getId().toString());//his系统订单号 } } - String amountResultKey = jsonObject.getString("amountResult"); - String txtCodeKey = jsonObject.getString("txtCode"); + String amountResultKey = jsonObject.path("amountResult").asText(); + String txtCodeKey = jsonObject.path("txtCode").asText(); if (amountResult != null) { paramMap.put(amountResultKey, amountResult);//金额 @@ -516,20 +517,20 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { } else if (CommonConstants.Common.REQUEST_MAPPING_METHOD_POST.equals(method)) { - JSONObject data = new JSONObject(); + ObjectNode data = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); for (Map.Entry stringStringEntry : map.entrySet()) { data.put(stringStringEntry.getKey(), stringStringEntry.getValue()); } if (staticParam != null && !StringUtils.isEmpty(staticParam)) { - JSONObject staticDta = JSON.parseObject(staticParam); - data.putAll(staticDta); + JsonNode staticDta = JsonUtils.parse(staticParam); + if (staticDta.isObject()) { data.setAll((ObjectNode) staticDta); } } - logger.info("三方支付请求入参:" + data.toJSONString()); - logger.info("三方支付请求入参:" + data.toJSONString()); + logger.info("三方支付请求入参:" + data.toString()); + logger.info("三方支付请求入参:" + data.toString()); - requestResult = httpPost(threePartUrl, data.toJSONString()); + requestResult = httpPost(threePartUrl, data.toString()); } @@ -556,7 +557,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService { HttpGet httpGet = new HttpGet(url); // 执行http请求 response = httpClient.execute(httpGet); - logger.info("回复信息:" + JSON.toJSONString(response)); + logger.info("回复信息:" + JsonUtils.toJson(response)); resultString = EntityUtils.toString(response.getEntity(), "utf-8"); } catch (Exception e) { logger.error("Http请求异常, url: {}", url, e); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/Clinic2206OrderResultDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/Clinic2206OrderResultDto.java index 2c6b51b8a..de0f17ce1 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/Clinic2206OrderResultDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/Clinic2206OrderResultDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.paymentmanage.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -19,67 +19,67 @@ import java.math.BigDecimal; @Accessors(chain = true) public class Clinic2206OrderResultDto { - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 医疗费总额 - @JSONField(name = "fulamt_ownpay_amt") + @JsonProperty("fulamt_ownpay_amt") private BigDecimal fulamtOwnpayAmt; // 全自费金额 - @JSONField(name = "overlmt_selfpay") + @JsonProperty("overlmt_selfpay") private BigDecimal overlmtSelfpay; // 超限价自费费用 - @JSONField(name = "preselfpay_amt") + @JsonProperty("preselfpay_amt") private BigDecimal preselfpayAmt; // 先行自付金额 - @JSONField(name = "inscp_scp_amt") + @JsonProperty("inscp_scp_amt") private BigDecimal inscpScpAmt; // 符合政策范围金额 - @JSONField(name = "act_pay_dedc") + @JsonProperty("act_pay_dedc") private BigDecimal actPayDedc; // 实际支付起付线 - @JSONField(name = "hifp_pay") + @JsonProperty("hifp_pay") private BigDecimal hifpPay; // 基本医疗保险统筹基金支出 - @JSONField(name = "pool_prop_selfpay") + @JsonProperty("pool_prop_selfpay") private BigDecimal poolPropSelfpay; // 基本医疗保险统筹基金支付比例 - @JSONField(name = "cvlserv_pay") + @JsonProperty("cvlserv_pay") private BigDecimal cvlservPay; // 公务员医疗补助资金支出 - @JSONField(name = "hifes_pay") + @JsonProperty("hifes_pay") private BigDecimal hifesPay; // 企业补充医疗保险基金支出 - @JSONField(name = "hifmi_pay") + @JsonProperty("hifmi_pay") private BigDecimal hifmiPay; // 居民大病保险资金支出 - @JSONField(name = "hifob_pay") + @JsonProperty("hifob_pay") private BigDecimal hifobPay; // 职工大额医疗费用补助基金支出 - @JSONField(name = "maf_pay") + @JsonProperty("maf_pay") private BigDecimal mafPay; // 医疗救助基金支出 - @JSONField(name = "oth_pay") + @JsonProperty("oth_pay") private BigDecimal othPay; // 其他支出 - @JSONField(name = "fund_pay_sumamt") + @JsonProperty("fund_pay_sumamt") private BigDecimal fundPaySumamt; // 基金支付总额 - @JSONField(name = "psn_part_amt") + @JsonProperty("psn_part_amt") private BigDecimal psnPartAmt; // 个人负担总金额 - @JSONField(name = "acct_pay") + @JsonProperty("acct_pay") private BigDecimal acctPay; // 个人账户支出 - @JSONField(name = "psn_cash_pay") + @JsonProperty("psn_cash_pay") private BigDecimal psnCashPay; // 个人现金支出 - @JSONField(name = "hosp_part_amt") + @JsonProperty("hosp_part_amt") private BigDecimal hospPartAmt; // 医院负担金额 - @JSONField(name = "hifdm_pay") + @JsonProperty("hifdm_pay") private BigDecimal hifdmPay; - @JSONField(name = "acct_mulaid_pay") + @JsonProperty("acct_mulaid_pay") private BigDecimal acctMulaidPay; // 个人账户共济支付金额 private String chrgBchno;//收费批次号 diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/Clinic2207OrderResultInfoDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/Clinic2207OrderResultInfoDto.java index 312911426..f57b040f7 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/Clinic2207OrderResultInfoDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/Clinic2207OrderResultInfoDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.paymentmanage.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.healthlink.his.yb.dto.Clinic2206FundPaymentResult; import lombok.Data; import lombok.experimental.Accessors; @@ -22,54 +22,54 @@ import java.util.List; @Accessors(chain = true) public class Clinic2207OrderResultInfoDto { // 主键字段 - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 就诊ID - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 人员编号 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 人员姓名 - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; // 人员证件类型 - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 证件号码 - @JSONField(name = "gend") + @JsonProperty("gend") private String gend; // 性别 - @JSONField(name = "naty") + @JsonProperty("naty") private String naty; // 民族 - @JSONField(name = "brdy") + @JsonProperty("brdy") private Date brdy; // 出生日期 - @JSONField(name = "age") + @JsonProperty("age") private BigDecimal age; // 年龄 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 险种类型 - @JSONField(name = "psn_type") + @JsonProperty("psn_type") private String psnType; // 人员类别 - @JSONField(name = "cvlserv_flag") + @JsonProperty("cvlserv_flag") private String cvlservFlag; // 公务员标志 - @JSONField(name = "setl_time") + @JsonProperty("setl_time") private Date setlTime; // 结算时间 - @JSONField(name = "mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; // 就诊凭证类型 - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; // 医疗类别 - @JSONField(name = "medins_setl_id") + @JsonProperty("medins_setl_id") private String medinsSetlId; // 医药机构结算ID 存放发送方报文ID - @JSONField(name = "setldetail") + @JsonProperty("setldetail") private List setldetail;// 结算详细信息 } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/EleInvioceBillDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/EleInvioceBillDto.java index 982c3b22d..3fc185cef 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/EleInvioceBillDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/EleInvioceBillDto.java @@ -1,12 +1,12 @@ package com.healthlink.his.web.paymentmanage.dto; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; import lombok.Data; @Data public class EleInvioceBillDto { - JSONObject jsonObject; + JsonNode jsonObject; String endpoint; diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/InpatientPreSettleDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/InpatientPreSettleDto.java index 1bc71cb85..129c1a0ca 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/InpatientPreSettleDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/InpatientPreSettleDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.paymentmanage.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty; import com.healthlink.his.yb.dto.Clinic2206FundPaymentResult; import lombok.Data; @@ -269,7 +269,7 @@ public class InpatientPreSettleDto { @JsonProperty("hifdm_pay") private BigDecimal hifdmPay; - @JSONField(name = "setldetail") + @JsonProperty("setldetail") private List setldetail; /** diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/InvoiceBaseInfoDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/InvoiceBaseInfoDto.java index 4e790c90a..ae74e5469 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/InvoiceBaseInfoDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/paymentmanage/dto/InvoiceBaseInfoDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.paymentmanage.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; @@ -23,7 +23,7 @@ import java.util.Date; public class InvoiceBaseInfoDto { // 主键 @TableId(type = IdType.ASSIGN_ID) - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String id; private String setlId;// 结算id diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacyDispensarymanage/appservice/impl/PharmacyDispensaryReceiptApprovalServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacyDispensarymanage/appservice/impl/PharmacyDispensaryReceiptApprovalServiceImpl.java index 6c1213f85..b3ab4812c 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacyDispensarymanage/appservice/impl/PharmacyDispensaryReceiptApprovalServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacyDispensarymanage/appservice/impl/PharmacyDispensaryReceiptApprovalServiceImpl.java @@ -1,6 +1,8 @@ package com.healthlink.his.web.pharmacyDispensarymanage.appservice.impl; -import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.core.common.core.domain.R; import com.core.common.utils.DateUtils; @@ -187,7 +189,7 @@ public class PharmacyDispensaryReceiptApprovalServiceImpl implements IPharmacyDi SupplyType.PURCHASE_STOCKIN.getValue()); // 调用医保商品采购接口 todo 药房相关医保接口未对应 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, false, true, false, now); @@ -274,7 +276,7 @@ public class PharmacyDispensaryReceiptApprovalServiceImpl implements IPharmacyDi SupplyType.PURCHASE_RETURN.getValue()); // 调用医保采购退货接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, false, false, true, now); @@ -425,7 +427,7 @@ public class PharmacyDispensaryReceiptApprovalServiceImpl implements IPharmacyDi } // 调用医保库存变更接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.DESTRUCTION, false, false, false, now); @@ -522,7 +524,7 @@ public class PharmacyDispensaryReceiptApprovalServiceImpl implements IPharmacyDi } String ybSwitch = - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { // 如果首次盘点信息不为空 if (!firstSupplyItemDetailList.isEmpty()) { @@ -864,14 +866,14 @@ public class PharmacyDispensaryReceiptApprovalServiceImpl implements IPharmacyDi } } // 转换为JSON - JSONArray medicalTraceNo = new JSONArray(); + ArrayNode medicalTraceNo = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); // 获取追溯码信息 if (supplyItemDetailDto.getTraceNo() != null) { List traceNoList = Arrays.stream(supplyItemDetailDto.getTraceNo().split(CommonConstants.Common.COMMA)) .map(String::trim).filter(s -> !s.isEmpty()).collect(Collectors.toList()); for (String traceNo : traceNoList) { - Map traceNoMap = new HashMap<>(); + ObjectNode traceNoMap = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); traceNoMap.put("drug_trac_codg", traceNo); medicalTraceNo.add(traceNoMap); } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacyWarehousemanage/appservice/impl/PharmacyWarehouseReceiptApprovalServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacyWarehousemanage/appservice/impl/PharmacyWarehouseReceiptApprovalServiceImpl.java index b38f32b8b..b61eb9fee 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacyWarehousemanage/appservice/impl/PharmacyWarehouseReceiptApprovalServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacyWarehousemanage/appservice/impl/PharmacyWarehouseReceiptApprovalServiceImpl.java @@ -1,6 +1,8 @@ package com.healthlink.his.web.pharmacyWarehousemanage.appservice.impl; -import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.core.common.core.domain.R; import com.core.common.exception.ServiceException; @@ -211,7 +213,7 @@ public class PharmacyWarehouseReceiptApprovalServiceImpl implements IPharmacyWar SupplyType.CABINET_STOCKIN.getValue()); // 调用医保商品采购接口 todo 药库相关医保接口未对应 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, false, true, false, now); @@ -314,7 +316,7 @@ public class PharmacyWarehouseReceiptApprovalServiceImpl implements IPharmacyWar SupplyType.CABINET_RETURN.getValue()); // 调用医保采购退货接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, false, false, true, now); @@ -543,7 +545,7 @@ public class PharmacyWarehouseReceiptApprovalServiceImpl implements IPharmacyWar } // 调用医保库存变更接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List uploadFailedNoList = this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.DESTRUCTION, false, false, false, now); @@ -638,7 +640,7 @@ public class PharmacyWarehouseReceiptApprovalServiceImpl implements IPharmacyWar } String ybSwitch = - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { // 如果首次盘点信息不为空 if (!firstSupplyItemDetailList.isEmpty()) { @@ -914,14 +916,14 @@ public class PharmacyWarehouseReceiptApprovalServiceImpl implements IPharmacyWar } } // 转换为JSON - JSONArray medicalTraceNo = new JSONArray(); + ArrayNode medicalTraceNo = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); // 获取追溯码信息 if (supplyItemDetailDto.getTraceNo() != null) { List traceNoList = Arrays.stream(supplyItemDetailDto.getTraceNo().split(CommonConstants.Common.COMMA)) .map(String::trim).filter(s -> !s.isEmpty()).collect(Collectors.toList()); for (String traceNo : traceNoList) { - Map traceNoMap = new HashMap<>(); + ObjectNode traceNoMap = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); traceNoMap.put("drug_trac_codg", traceNo); medicalTraceNo.add(traceNoMap); } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/InHospitalReturnMedicineAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/InHospitalReturnMedicineAppServiceImpl.java index 61066d95b..60d770b56 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/InHospitalReturnMedicineAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/InHospitalReturnMedicineAppServiceImpl.java @@ -14,7 +14,9 @@ import jakarta.servlet.http.HttpServletRequest; import org.apache.commons.lang3.tuple.Pair; import org.springframework.stereotype.Service; -import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -448,7 +450,7 @@ public class InHospitalReturnMedicineAppServiceImpl implements IInHospitalReturn String returnMsg = null; List uploadFailedNoList; // 调用医保商品销售退货接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List deviceDefinitions = new ArrayList<>(); List medicationDefinitions = new ArrayList<>(); @@ -622,14 +624,14 @@ public class InHospitalReturnMedicineAppServiceImpl implements IInHospitalReturn // throw new ServiceException("未查询到发票信息"); // } // 转换为JSON - JSONArray medicalTraceNo = new JSONArray(); + ArrayNode medicalTraceNo = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); // 获取追溯码信息 if (dispenseInventoryDto.getTraceNo() != null) { List traceNoList = Arrays.stream(dispenseInventoryDto.getTraceNo().split(CommonConstants.Common.COMMA)).map(String::trim) .filter(s -> !s.isEmpty()).toList(); for (String traceNo : traceNoList) { - Map traceNoMap = new HashMap<>(); + ObjectNode traceNoMap = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); traceNoMap.put("drug_trac_codg", traceNo); medicalTraceNo.add(traceNoMap); } @@ -645,7 +647,7 @@ public class InHospitalReturnMedicineAppServiceImpl implements IInHospitalReturn .setDrugtracinfo(medicalTraceNo).setCertno(dispenseInventoryDto.getIdCard()); // 查看所属医院 String fixmedinsCode = - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE); + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText(); if (dispenseInventoryDto.getPreparerName() == null && HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) { medical3506Param.setSelRetnOpterName(CommonConstants.CCU.DisDeviceDoctorName); } else { @@ -675,7 +677,7 @@ public class InHospitalReturnMedicineAppServiceImpl implements IInHospitalReturn MedicalInventory3511Param medicalInventory3511Param = new MedicalInventory3511Param(); String fixmedinsCode = - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE); + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText(); // TODO medicalInventory3511Param.setFixmedinsCode(fixmedinsCode).setMedinsListCodg(dispenseInventoryDto.getYbNo()) .setFixmedinsBchno(dispenseInventoryDto.getLotNumber()).setBegndate(dispenseInventoryDto.getDispenseTime()) diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/MedicalDeviceDispenseAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/MedicalDeviceDispenseAppServiceImpl.java index 79b82206c..f6c330e88 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/MedicalDeviceDispenseAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/MedicalDeviceDispenseAppServiceImpl.java @@ -347,7 +347,7 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen // String returnMsg = null; // List uploadFailedNoList; // // 调用医保商品销售接口 - // String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); + // String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // // 医保开关 // if (Whether.YES.getCode().equals(ybSwitch)) { // // 设置进销存参数 @@ -388,7 +388,7 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen public R dispenseMedicalConsumables(List chargeItemIds) { // 查看所属医院 String fixmedinsCode - = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE); + = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText(); if (!HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) { return R.ok(); } @@ -498,7 +498,7 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen // // 返回信息 // String returnMsg = null; // // 调用医保商品销售接口 - // String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); + // String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // List uploadFailedNoList = new ArrayList<>(); // // 医保开关 // if (Whether.YES.getCode().equals(ybSwitch)) { diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/ReturnMedicineAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/ReturnMedicineAppServiceImpl.java index 228898886..82c79afad 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/ReturnMedicineAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/ReturnMedicineAppServiceImpl.java @@ -1,6 +1,8 @@ package com.healthlink.his.web.pharmacymanage.appservice.impl; -import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -441,7 +443,7 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService { String returnMsg = null; List uploadFailedNoList; // 调用医保商品销售退货接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { List deviceDefinitions = new ArrayList<>(); List medicationDefinitions = new ArrayList<>(); @@ -616,14 +618,14 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService { // throw new ServiceException("未查询到发票信息"); // } // 转换为JSON - JSONArray medicalTraceNo = new JSONArray(); + ArrayNode medicalTraceNo = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); // 获取追溯码信息 if (dispenseInventoryDto.getTraceNo() != null) { List traceNoList = Arrays.stream(dispenseInventoryDto.getTraceNo().split(CommonConstants.Common.COMMA)).map(String::trim) .filter(s -> !s.isEmpty()).toList(); for (String traceNo : traceNoList) { - Map traceNoMap = new HashMap<>(); + ObjectNode traceNoMap = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); traceNoMap.put("drug_trac_codg", traceNo); medicalTraceNo.add(traceNoMap); } @@ -639,7 +641,7 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService { .setDrugtracinfo(medicalTraceNo).setCertno(dispenseInventoryDto.getIdCard()); // 查看所属医院 String fixmedinsCode - = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE); + = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText(); if (dispenseInventoryDto.getPreparerName() == null && HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) { medical3506Param.setSelRetnOpterName(CommonConstants.CCU.DisDeviceDoctorName); } else { @@ -669,7 +671,7 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService { MedicalInventory3511Param medicalInventory3511Param = new MedicalInventory3511Param(); String fixmedinsCode - = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE); + = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText(); // TODO medicalInventory3511Param.setFixmedinsCode(fixmedinsCode).setMedinsListCodg(dispenseInventoryDto.getYbNo()) .setFixmedinsBchno(dispenseInventoryDto.getLotNumber()).setBegndate(dispenseInventoryDto.getDispenseTime()) diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/SummaryDispenseMedicineAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/SummaryDispenseMedicineAppServiceImpl.java index 992b4fa02..0f5d19778 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/SummaryDispenseMedicineAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/SummaryDispenseMedicineAppServiceImpl.java @@ -269,7 +269,7 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe String returnMsg = null; List uploadFailedNoList; // 调用医保商品销售接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { // 设置进销存参数 diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/WesternMedicineDispenseAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/WesternMedicineDispenseAppServiceImpl.java index b2be64c4b..8e167b942 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/WesternMedicineDispenseAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/pharmacymanage/appservice/impl/WesternMedicineDispenseAppServiceImpl.java @@ -1,6 +1,8 @@ package com.healthlink.his.web.pharmacymanage.appservice.impl; -import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -493,7 +495,7 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi String returnMsg = null; List uploadFailedNoList; // 调用医保商品销售接口 - String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关 + String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); // 医保开关 if (Whether.YES.getCode().equals(ybSwitch)) { // 设置进销存参数 List medicationDefinitions = medicationDefinitionService.listByIds( @@ -674,14 +676,14 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi // throw new ServiceException("未查找到就诊发票信息"); // } // 转换为JSON - JSONArray medicalTraceNo = new JSONArray(); + ArrayNode medicalTraceNo = new com.fasterxml.jackson.databind.ObjectMapper().createArrayNode(); // 获取追溯码信息 if (dispenseInventoryDto.getTraceNo() != null) { List traceNoList = Arrays.stream(dispenseInventoryDto.getTraceNo().split(CommonConstants.Common.COMMA)).map(String::trim) .filter(s -> !s.isEmpty()).toList(); for (String traceNo : traceNoList) { - Map traceNoMap = new HashMap<>(); + ObjectNode traceNoMap = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); traceNoMap.put("drug_trac_codg", traceNo); medicalTraceNo.add(traceNoMap); } @@ -705,7 +707,7 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi } // 查看所属医院 String fixmedinsCode - = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE); + = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText(); if (dispenseInventoryDto.getPreparerName() == null && HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) { medical3505Param.setSelRetnOpterName(CommonConstants.CCU.DisDeviceDoctorName); } else { diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportManagement/appservice/impl/InfectiousCardAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportManagement/appservice/impl/InfectiousCardAppServiceImpl.java index 4c5f1596f..004faef78 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportManagement/appservice/impl/InfectiousCardAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportManagement/appservice/impl/InfectiousCardAppServiceImpl.java @@ -1,6 +1,8 @@ package com.healthlink.his.web.reportManagement.appservice.impl; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; @@ -88,8 +90,8 @@ public class InfectiousCardAppServiceImpl implements IInfectiousCardAppService { Page page = new Page<>(pageNo, pageSize); IPage resultPage = reportManageCardMapper.selectCardPage(page, param); - JSONObject result = new JSONObject(); - result.put("rows", resultPage.getRecords()); + ObjectNode result = new ObjectMapper().createObjectNode(); + result.set("rows", new ObjectMapper().valueToTree(resultPage.getRecords())); result.put("total", resultPage.getTotal()); return R.ok(result); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportmanage/appservice/impl/InpatientMedicalRecordHomePageCollectionAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportmanage/appservice/impl/InpatientMedicalRecordHomePageCollectionAppServiceImpl.java index cd652b025..dc3d4b83f 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportmanage/appservice/impl/InpatientMedicalRecordHomePageCollectionAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportmanage/appservice/impl/InpatientMedicalRecordHomePageCollectionAppServiceImpl.java @@ -1,12 +1,12 @@ /* - * Copyright ©2023 CJB-CNIT Team. All rights reserved + * Copyright ©2023 CJB-CNIT Team. All rights reserved */ package com.healthlink.his.web.reportmanage.appservice.impl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; import com.core.common.core.domain.R; import com.core.common.utils.AgeCalculatorUtil; import com.core.common.utils.SecurityUtils; @@ -30,7 +30,7 @@ import java.util.ArrayList; import java.util.List; /** - * 住院病案首页采集 impl + * 住院病案首页采集 impl * * @author yuxj * @date 2025-08-25 @@ -47,308 +47,308 @@ public class InpatientMedicalRecordHomePageCollectionAppServiceImpl implements I IEncounterService encounterService; /** - * 住院病案csv做成 + * 住院病案csv做成 * - * @param encounterIdList 就诊idList - * @return 执行结果 + * @param encounterIdList 就诊idList + * @return 执行结果 */ @Override public R makeCsvFile(List encounterIdList, HttpServletResponse response) { - // // 格式 (7,2):最大整数位 7,固定小数位 2 + // // 格式 (7,2):最大整数位 7,固定小数位 2 // DecimalFormat df7_2 = new DecimalFormat(); - // df7_2.setMaximumIntegerDigits(7); // 最大整数位 7 - // df7_2.setMinimumFractionDigits(2); // 最小小数位 2(不足补 0) - // df7_2.setMaximumFractionDigits(2); // 最大小数位 2(超出四舍五入) - // 格式 (4,1):最大整数位 4,固定小数位 1 + // df7_2.setMaximumIntegerDigits(7); // 最大整数位 7 + // df7_2.setMinimumFractionDigits(2); // 最小小数位 2(不足补 0) + // df7_2.setMaximumFractionDigits(2); // 最大小数位 2(超出四舍五入) + // 格式 (4,1):最大整数位 4,固定小数位 1 DecimalFormat df4_1 = new DecimalFormat(); df4_1.setMaximumIntegerDigits(4); df4_1.setMinimumFractionDigits(1); df4_1.setMaximumFractionDigits(1); - // 格式 (8,2):最大整数位 8,固定小数位 2 + // 格式 (8,2):最大整数位 8,固定小数位 2 DecimalFormat df8_2 = new DecimalFormat(); df8_2.setMaximumIntegerDigits(8); df8_2.setMinimumFractionDigits(2); df8_2.setMaximumFractionDigits(2); - // 格式 (11,2):最大整数位 11,固定小数位 2 + // 格式 (11,2):最大整数位 11,固定小数位 2 DecimalFormat df11_2 = new DecimalFormat(); df11_2.setMaximumIntegerDigits(11); df11_2.setMinimumFractionDigits(2); df11_2.setMaximumFractionDigits(2); - // 格式 (10,2):最大整数位 10,固定小数位 2 + // 格式 (10,2):最大整数位 10,固定小数位 2 DecimalFormat df10_2 = new DecimalFormat(); df10_2.setMaximumIntegerDigits(10); df10_2.setMinimumFractionDigits(2); df10_2.setMaximumFractionDigits(2); - // // 获取当前登陆用户信息 + // // 获取当前登陆用户信息 // LoginUser loginUser = SecurityUtils.getLoginUser(); // Practitioner user = practitionerService.getPractitionerByUserId(loginUser.getUserId()); - // 获取系统信息 - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); + // 获取系统信息 + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); - // 住院病案csv参数 + // 住院病案csv参数 InpatientMedicalRecordHomePageCollectionDto medicalRecordHomePage = new InpatientMedicalRecordHomePageCollectionDto(); List medicalRecordHomePageList = new ArrayList<>(); - // 搜索csv所需数据 todo sql没写完 csv出力需要确认好不好使 + // 搜索csv所需数据 todo sql没写完 csv出力需要确认好不好使 List medicalRecordHomePageMakeList = inpatientMedicalRecordHomePageCollectionMapper.getInfo(encounterIdList); for (InpatientMedicalRecordHomePageMakeDto item : medicalRecordHomePageMakeList) { - // 组织机构代码 字符 30 必填 - medicalRecordHomePage.setA01(optionJson.getString(CommonConstants.Option.FIXMEDINS_CODE)); - // 医疗机构名称 A02 字符 80 必填 - medicalRecordHomePage.setA02(optionJson.getString(CommonConstants.Option.FIXMEDINS_NAME)); - // 病案号 A48 字符 50 必填 + // 组织机构代码 字符 30 å¿…å¡« + medicalRecordHomePage.setA01(optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText()); + // 医疗机构名称 A02 字符 80 å¿…å¡« + medicalRecordHomePage.setA02(optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText()); + // 病案号 A48 字符 50 å¿…å¡« medicalRecordHomePage.setA48(item.getA48()); - // 住院次数 A49 数字 4 必填 + // 住院次数 A49 æ•°å­— 4 å¿…å¡« medicalRecordHomePage.setA49(item.getA49() == null ? 0 : item.getA49()); - // 入院时间 B12 日期时间 必填 + // 入院时间 B12 日期时间 å¿…å¡« medicalRecordHomePage.setB12(item.getB12()); - // 出院时间 B15 日期时间 必填 + // 出院时间 B15 日期时间 å¿…å¡« medicalRecordHomePage.setB15(item.getB15()); - // 医疗付费方式 A46C 字符 3 必填 + // 医疗付费方式 A46C 字符 3 å¿…å¡« medicalRecordHomePage.setA46C(item.getA46C()); - // 姓名 A11 字符 40 必填 + // 姓名 A11 字符 40 å¿…å¡« medicalRecordHomePage.setA11(item.getA11()); - // 性别 A12C 数字 1 必填 未查询到时:9 - 未说明的性别 + // 性别 A12C æ•°å­— 1 å¿…å¡« 未查询到时:9 - 未说明的性别 medicalRecordHomePage.setA12C(item.getA12C() == null ? 9 : item.getA12C()); - // 出生日期 A13 日期 10 必填 + // 出生日期 A13 日期 10 å¿…å¡« medicalRecordHomePage.setA13(item.getA13()); - // 年龄(岁) A14 数字 3 必填 + // 年龄(岁) A14 æ•°å­— 3 å¿…å¡« medicalRecordHomePage.setA14(AgeCalculatorUtil.calculateAge(medicalRecordHomePage.getA13())); - // 国籍 A15C 字符 40 必填 + // 国籍 A15C 字符 40 å¿…å¡« medicalRecordHomePage.setA15C(item.getA15C()); - // 婚姻 A21C 字符 1 必填 + // 婚姻 A21C 字符 1 å¿…å¡« medicalRecordHomePage.setA21C(item.getA21C()); - // 职业 A38C 字符 2 必填 + // 职业 A38C 字符 2 å¿…å¡« medicalRecordHomePage.setA38C(item.getA38C()); - // 民族 A19C 字符 2 必填 + // 民族 A19C 字符 2 å¿…å¡« medicalRecordHomePage.setA19C(item.getA19C()); - // 证件类别 A20N 字符 1 必填 1:居民身份证 todo 是否 + // 证件类别 A20N 字符 1 å¿…å¡« 1:居民身份证 todo 是否 medicalRecordHomePage.setA20N("1"); - // 证件号码 A20 字符 18 必填 + // 证件号码 A20 字符 18 å¿…å¡« medicalRecordHomePage.setA20(item.getA20()); - // 出生地址 A22 字符 200 必填 + // 出生地址 A22 字符 200 å¿…å¡« medicalRecordHomePage.setA22(item.getA22()== null ? CommonConstants.Common.DASH:item.getA22()); - // 籍贯省(自治区、直辖市) A23C 字符 50 必填 + // 籍贯省(自治区、直辖市) A23C 字符 50 å¿…å¡« medicalRecordHomePage.setA23C(item.getA23C()); - // 户口地址 A24 字符 200 必填 + // 户口地址 A24 字符 200 å¿…å¡« medicalRecordHomePage.setA24(item.getA24()== null ? CommonConstants.Common.DASH:item.getA24()); - // 户口地址邮政编码 A25C 字符 6 必填 + // 户口地址邮政编码 A25C 字符 6 å¿…å¡« medicalRecordHomePage.setA25C(item.getA25C()); - // 现住址 A26 字符 200 必填 + // 现住址 A26 字符 200 å¿…å¡« medicalRecordHomePage.setA26(item.getA26()== null ? CommonConstants.Common.DASH:item.getA26()); - // 现住址电话 A27 字符 40 必填 + // 现住址电话 A27 字符 40 å¿…å¡« medicalRecordHomePage.setA27(item.getA27()== null ? CommonConstants.Common.DASH:item.getA27()); - // 现住址邮政编码 A28C 字符 6 必填 + // 现住址邮政编码 A28C 字符 6 å¿…å¡« medicalRecordHomePage.setA28C(item.getA28C()); - // 工作单位及地址 A29 字符 200 必填 + // 工作单位及地址 A29 字符 200 å¿…å¡« medicalRecordHomePage.setA29(item.getA29()== null ? CommonConstants.Common.DASH:item.getA29()); - // 工作单位电话 A30 字符 20 必填 + // 工作单位电话 A30 字符 20 å¿…å¡« medicalRecordHomePage.setA30(item.getA30()== null ? CommonConstants.Common.DASH:item.getA30()); - // 工作单位邮政编码 A31C 字符 6 必填 + // 工作单位邮政编码 A31C 字符 6 å¿…å¡« medicalRecordHomePage.setA31C(item.getA31C()); - // 联系人姓名 A32 字符 40 必填 + // 联系人姓名 A32 字符 40 å¿…å¡« medicalRecordHomePage.setA32(item.getA32()); - // 联系人关系 A33C 字符 1 必填 + // 联系人关系 A33C 字符 1 å¿…å¡« medicalRecordHomePage.setA33C(item.getA33C()); - // 联系人地址 A34 字符 200 必填 + // 联系人地址 A34 字符 200 å¿…å¡« medicalRecordHomePage.setA34(item.getA34()== null ? CommonConstants.Common.DASH:item.getA34()); - // 联系人电话 A35 字符 40 必填 + // 联系人电话 A35 字符 40 å¿…å¡« medicalRecordHomePage.setA35(item.getA35()); - // 是否为日间手术 B38 字符 1 必填 + // 是否为日间手术 B38 字符 1 å¿…å¡« medicalRecordHomePage.setB38(item.getB38()); - // 入院途径 B11C 字符 1 必填 + // 入院途径 B11C 字符 1 å¿…å¡« medicalRecordHomePage.setB11C(item.getB11C()); - // 入院科别 B13C 字符 6 必填 + // 入院科别 B13C 字符 6 å¿…å¡« medicalRecordHomePage.setB13C(item.getB13C()); - // 入院病房 B14 字符 30 必填 + // 入院病房 B14 字符 30 å¿…å¡« medicalRecordHomePage.setB14(item.getB14()); - // 转科科别 B21C 集合 可以多选 必填 + // 转科科别 B21C 集合 可以多选 å¿…å¡« medicalRecordHomePage.setB21C(String.join(CommonConstants.Common.COMMA, item.getB21C())); - // 出院科别 B16C 字符 6 必填 + // 出院科别 B16C 字符 6 å¿…å¡« medicalRecordHomePage.setB16C(item.getB16C()); - // 出院病房 B17 字符 30 必填 + // 出院病房 B17 字符 30 å¿…å¡« medicalRecordHomePage.setB17(item.getB17()); - // 实际住院(天) B20 数字 6 必填 + // 实际住院(天) B20 æ•°å­— 6 å¿…å¡« medicalRecordHomePage.setB20(item.getB20() == null ? 0 : item.getB20()); - // 门(急)诊诊断编码 C01C 字符 20 必填 + // 门(急)诊诊断编码 C01C 字符 20 å¿…å¡« medicalRecordHomePage.setC01C(item.getC01C()); - // 门(急)诊诊断名称 C02N 字符 100 必填 + // 门(急)诊诊断名称 C02N 字符 100 å¿…å¡« medicalRecordHomePage.setC02N(item.getC02N()); - // 出院主要诊断编码 C03C 字符 20 必填 + // 出院主要诊断编码 C03C 字符 20 å¿…å¡« medicalRecordHomePage.setC03C(item.getC03C()); - // 出院主要诊断名称 C04N 字符 100 必填 + // 出院主要诊断名称 C04N 字符 100 å¿…å¡« medicalRecordHomePage.setC04N(item.getC04N()); - // 出院主要诊断入院病情 C05C 字符 1 必填 + // 出院主要诊断入院病情 C05C 字符 1 å¿…å¡« medicalRecordHomePage.setC05C(item.getC05C()); String c03c = medicalRecordHomePage.getC03C(); if (c03c != null && !c03c.isEmpty()) { char firstChar = c03c.charAt(0); - // 主要诊断ICD编码首字母为C或D00-D48时必填。 + // 主要诊断ICD编码首字母为C或D00-D48时必填。 if (firstChar == 'C' || (c03c.length() >= 3 && c03c.matches("D(0[0-9]|[1-3][0-9]|4[0-8]).*"))) { - // 病理诊断编码 C09C 字符 20 条件必填 + // 病理诊断编码 C09C 字符 20 条件必填 medicalRecordHomePage.setC09C(item.getC09C()); - // 病理诊断名称 C10N 字符 100 条件必填 + // 病理诊断名称 C10N 字符 100 条件必填 medicalRecordHomePage.setC10N(item.getC10N()); - // 病理号 C11 字符 50 条件必填 + // 病理号 C11 字符 50 条件必填 medicalRecordHomePage.setC11(item.getC11()); } - // 主要诊断ICD编码首字母为S或T时必填 + // 主要诊断ICD编码首字母为S或Tæ—¶å¿…å¡« if (firstChar == 'S' || firstChar == 'T') { - // 损伤、中毒外部原因编码 C12C 字符 20 条件必填 + // 损伤、中毒外部原因编码 C12C 字符 20 条件必填 medicalRecordHomePage.setC12C(item.getC12C()); - // 损伤、中毒外部原因名称 C13N 字符 100 条件必填 + // 损伤、中毒外部原因名称 C13N 字符 100 条件必填 medicalRecordHomePage.setC13N(item.getC13N()); } } - // 有无药物过敏 C24C 字符 1 必填 + // 有无药物过敏 C24C 字符 1 å¿…å¡« medicalRecordHomePage.setC24C(item.getC24C()); - // “有无药物过敏”为“有”时必填;多种药物用英文逗号进行分隔 + // “有无药物过敏”为“有”时必填;多种药物用英文逗号进行分隔 if (medicalRecordHomePage.getC24C().equals("2")) { - // 过敏药物名称 C25 字符 200 条件必填 + // 过敏药物名称 C25 字符 200 条件必填 medicalRecordHomePage.setC25(item.getC25()); } - // 科主任编码 B22C 字符 30 必填 + // 科主任编码 B22C 字符 30 å¿…å¡« medicalRecordHomePage.setB22C(item.getB22C()); - // 科主任 B22 字符 40 必填 + // 科主任 B22 字符 40 å¿…å¡« medicalRecordHomePage.setB22(item.getB22()); - // 主(副主)任医师编码 B23C 字符 30 必填 + // 主(副主)任医师编码 B23C 字符 30 å¿…å¡« medicalRecordHomePage.setB23C(item.getB23C()); - // 主(副主)任医师 B23 字符 40 必填 + // 主(副主)任医师 B23 字符 40 å¿…å¡« medicalRecordHomePage.setB23(item.getB23()); - // 主治医师编码 B24C 字符 30 必填 + // 主治医师编码 B24C 字符 30 å¿…å¡« medicalRecordHomePage.setB24C(item.getB24C()); - // 主治医师 B24 字符 40 必填 + // 主治医师 B24 字符 40 å¿…å¡« medicalRecordHomePage.setB24(item.getB24()); - // 住院医师编码 B25C 字符 30 必填 + // 住院医师编码 B25C 字符 30 å¿…å¡« medicalRecordHomePage.setB25C(item.getB25C()); - // 住院医师 B25 字符 40 必填 + // 住院医师 B25 字符 40 å¿…å¡« medicalRecordHomePage.setB25(item.getB25()); - // 责任护士编码 B26C 字符 30 必填 + // 责任护士编码 B26C 字符 30 å¿…å¡« medicalRecordHomePage.setB26C(item.getB26C()); - // 责任护士 B26 字符 40 必填 + // 责任护士 B26 字符 40 å¿…å¡« medicalRecordHomePage.setB26(item.getB26()); - // 编码员 B29 字符 40 必填 + // 编码员 B29 字符 40 å¿…å¡« medicalRecordHomePage.setB29(item.getB29()); - // ABO血型 C26C 字符 1 必填 + // ABO血型 C26C 字符 1 å¿…å¡« medicalRecordHomePage.setC26C(item.getC26C()); - // Rh血型 C27C 字符 1 必填 + // Rh血型 C27C 字符 1 å¿…å¡« medicalRecordHomePage.setC27C(item.getC27C()); - // 主要手术操作编码 C14x01C 字符 20 必填 + // 主要手术操作编码 C14x01C 字符 20 å¿…å¡« medicalRecordHomePage.setC14x01C(item.getC14x01C()); - // 主要手术操作名称 C15x01N 字符 100 必填 + // 主要手术操作名称 C15x01N 字符 100 å¿…å¡« medicalRecordHomePage.setC15x01N(item.getC15x01N()); - // 主要手术操作日期 C16x01 日期时间 必填 + // 主要手术操作日期 C16x01 日期时间 å¿…å¡« medicalRecordHomePage.setC16x01(item.getC16x01()); - // 手术操作编码属性为手术或介入治疗代码时必填 todo 手术或介入治疗代码 + // 手术操作编码属性为手术或介入治疗代码时必填 todo 手术或介入治疗代码 if (medicalRecordHomePage.getC14x01C().equals("") || medicalRecordHomePage.getC14x01C().equals("")) { - // 主要手术操作级别 C17x01 字符 1 条件必填 + // 主要手术操作级别 C17x01 字符 1 条件必填 medicalRecordHomePage.setC17x01(item.getC17x01()); - // 主要手术操作术者 C18x01 字符 40 条件必填 + // 主要手术操作术者 C18x01 字符 40 条件必填 medicalRecordHomePage.setC18x01(item.getC18x01()); - // 主要手术操作Ⅰ助 C19x01 字符 40 条件必填 + // 主要手术操作Ⅰ助 C19x01 字符 40 条件必填 medicalRecordHomePage.setC19x01(item.getC19x01()); - // 主要手术操作Ⅱ助 C20x01 字符 40 条件必填 + // 主要手术操作Ⅱ助 C20x01 字符 40 条件必填 medicalRecordHomePage.setC20x01(item.getC20x01()); - // 手术编码属性为手术时必填 todo 手术代码 + // 手术编码属性为手术时必填 todo 手术代码 if (medicalRecordHomePage.getC14x01C().equals("")) { - // 主要手术操作切口愈合等级 C21x01C 字符 2 条件必填 + // 主要手术操作切口愈合等级 C21x01C 字符 2 条件必填 medicalRecordHomePage.setC21x01C(item.getC21x01C()); - // 主要手术操作麻醉方式 C22x01C 字符 6 条件必填 + // 主要手术操作麻醉方式 C22x01C 字符 6 条件必填 medicalRecordHomePage.setC22x01C(item.getC22x01C()); - // 主要手术操作麻醉医师 C23x01 字符 40 条件必填 + // 主要手术操作麻醉医师 C23x01 字符 40 条件必填 medicalRecordHomePage.setC23x01(item.getC23x01()); } } - // 16.血费 D26 数字 (10,2) + // 16.血费 D26 æ•°å­— (10,2) medicalRecordHomePage.setD26(item.getD26() == null ? BigDecimal.ZERO : item.getD26()); - // 血费>0,则必填,没有可以填0或英文横杠”-” + // 血费>0,则必填,没有可以填0或英文横杠”-” if (medicalRecordHomePage.getD26().compareTo(BigDecimal.ZERO) > 0) { - // 输血反应 F21 数字 1 条件必填 + // 输血反应 F21 æ•°å­— 1 条件必填 medicalRecordHomePage.setF21(item.getF21() == null ? 0 : item.getF21()); - // 红细胞 F22 数字 (4,1) 条件必填 + // 红细胞 F22 æ•°å­— (4,1) 条件必填 medicalRecordHomePage.setF22(item.getF22() == null ? BigDecimal.ZERO : item.getF22()); - // 血小板 F23 数字 (4,1) 条件必填 + // 血小板 F23 æ•°å­— (4,1) 条件必填 medicalRecordHomePage.setF23(item.getF23() == null ? BigDecimal.ZERO : item.getF23()); - // 血浆 F24 数字 (8,2) 条件必填 + // 血浆 F24 æ•°å­— (8,2) 条件必填 medicalRecordHomePage.setF24(item.getF24() == null ? BigDecimal.ZERO : item.getF24()); - // 全血 F25 数字 (8,2) 条件必填 + // 全血 F25 æ•°å­— (8,2) 条件必填 medicalRecordHomePage.setF25(item.getF25() == null ? BigDecimal.ZERO : item.getF25()); - // 自体血回输 F26 数字 (4,1) 条件必填 + // 自体血回输 F26 æ•°å­— (4,1) 条件必填 medicalRecordHomePage.setF26(item.getF26() == null ? BigDecimal.ZERO : item.getF26()); } else { - // 输血反应 F21 数字 1 条件必填 + // 输血反应 F21 æ•°å­— 1 条件必填 medicalRecordHomePage.setF21(0); - // 红细胞 F22 数字 (4,1) 条件必填 + // 红细胞 F22 æ•°å­— (4,1) 条件必填 medicalRecordHomePage.setF22(BigDecimal.ZERO); - // 血小板 F23 数字 (4,1) 条件必填 + // 血小板 F23 æ•°å­— (4,1) 条件必填 medicalRecordHomePage.setF23(BigDecimal.ZERO); - // 血浆 F24 数字 (8,2) 条件必填 + // 血浆 F24 æ•°å­— (8,2) 条件必填 medicalRecordHomePage.setF24(BigDecimal.ZERO); - // 全血 F25 数字 (8,2) 条件必填 + // 全血 F25 æ•°å­— (8,2) 条件必填 medicalRecordHomePage.setF25(BigDecimal.ZERO); - // 自体血回输 F26 数字 (4,1) 条件必填 + // 自体血回输 F26 æ•°å­— (4,1) 条件必填 medicalRecordHomePage.setF26(BigDecimal.ZERO); } if (medicalRecordHomePage.getA14().equals(0)) { - // 年龄不足1周岁的年龄(天) A16 数字 3 条件必填② + // 年龄不足1周岁的年龄(天) A16 æ•°å­— 3 条件必填② medicalRecordHomePage.setA16(item.getA16() == null ? 0 : item.getA16()); } - // 产妇和新生儿病案填写 todo 产妇怎么判断 + // 产妇和新生儿病案填写 todo 产妇怎么判断 // if(){ - // 新生儿出生体重(克) A18x01 数字 6 条件必填② + // 新生儿出生体重(克) A18x01 æ•°å­— 6 条件必填② medicalRecordHomePage.setA18x01(item.getA18x01() == null ? 0 : item.getA18x01()); // } - // “新生儿入院体重”与“年龄不足1周岁的年龄(天)”互为逻辑校验项,小于等于28天的新生儿必填。 + // “新生儿入院体重”与“年龄不足1周岁的年龄(天)”互为逻辑校验项,小于等于28天的新生儿必填。 if (medicalRecordHomePage.getA16() != null && medicalRecordHomePage.getA16() <= 28) { - // 新生儿入院体重(克) A17 数字 6 条件必填② + // 新生儿入院体重(克) A17 æ•°å­— 6 条件必填② medicalRecordHomePage.setA17(item.getA17() == null ? 0 : item.getA17()); } - // 颅脑损伤患者入院前昏迷时间(天) C28 数字 5 必填 + // 颅脑损伤患者入院前昏迷时间(天) C28 æ•°å­— 5 å¿…å¡« medicalRecordHomePage.setC28(item.getC28() == null ? 0 : item.getC28()); - // 颅脑损伤患者入院前昏迷时间(小时) C29 数字 2 必填 + // 颅脑损伤患者入院前昏迷时间(小时) C29 æ•°å­— 2 å¿…å¡« medicalRecordHomePage.setC29(item.getC29() == null ? 0 : item.getC29()); - // 颅脑损伤患者入院前昏迷时间(分钟) C30 数字 2 必填 + // 颅脑损伤患者入院前昏迷时间(分钟) C30 æ•°å­— 2 å¿…å¡« medicalRecordHomePage.setC30(item.getC30() == null ? 0 : item.getC30()); - // 颅脑损伤患者入院后昏迷时间(天) C31 数字 5 必填 + // 颅脑损伤患者入院后昏迷时间(天) C31 æ•°å­— 5 å¿…å¡« medicalRecordHomePage.setC31(item.getC31() == null ? 0 : item.getC31()); - // 颅脑损伤患者入院后昏迷时间(小时) C32 数字 2 必填 + // 颅脑损伤患者入院后昏迷时间(小时) C32 æ•°å­— 2 å¿…å¡« medicalRecordHomePage.setC32(item.getC32() == null ? 0 : item.getC32()); - // 颅脑损伤患者入院后昏迷时间(分钟) C33 数字 2 必填 + // 颅脑损伤患者入院后昏迷时间(分钟) C33 æ•°å­— 2 å¿…å¡« medicalRecordHomePage.setC33(item.getC33() == null ? 0 : item.getC33()); - // 是否有出院31日内再住院计划 B36C 数字 1 必填 + // 是否有出院31日内再住院计划 B36C æ•°å­— 1 å¿…å¡« medicalRecordHomePage.setB36C(item.getB36C() == null ? 0 : item.getB36C()); - // 是否有出院31日内再住院计划填“有”时必填。 + // 是否有出院31日内再住院计划填“有”时必填。 if (medicalRecordHomePage.getB36C().equals(2)) { - // 出院31天再住院计划目的 B37 字符 100 条件必填 + // 出院31天再住院计划目的 B37 字符 100 条件必填 medicalRecordHomePage.setB37(item.getB37()); } - // 离院方式 B34C 字符 1 必填 + // 离院方式 B34C 字符 1 å¿…å¡« medicalRecordHomePage.setB34C(item.getB34C()); - // 离院方式为医嘱转院或医嘱转社区患者必填 + // 离院方式为医嘱转院或医嘱转社区患者必填 if (medicalRecordHomePage.getB34C().equals("2") || medicalRecordHomePage.getB34C().equals("3")) { - // 医嘱转院、转社区卫生服务机构/乡镇卫生院名称 B35 字符 100 条件必填 + // 医嘱转院、转社区卫生服务机构/乡镇卫生院名称 B35 字符 100 条件必填 medicalRecordHomePage.setB35(item.getB35()); } - // 住院总费用 D01 数字 (11,2) 必填 + // 住院总费用 D01 æ•°å­— (11,2) å¿…å¡« medicalRecordHomePage.setD01(item.getD01() == null ? BigDecimal.ZERO : item.getD01()); - // 住院总费用其中自付金额 D09 数字 (10,2) 必填 + // 住院总费用其中自付金额 D09 æ•°å­— (10,2) å¿…å¡« medicalRecordHomePage.setD09(item.getD09() == null ? BigDecimal.ZERO : item.getD09()); medicalRecordHomePageList.add(medicalRecordHomePage); } try { - // 做成csv文件 + // 做成csv文件 CsvFillerUtil.makeCsvFile(response, medicalRecordHomePageList); } catch (IOException e) { log.error("Exception occurred", e); - log.error("写入csv时发生错误:" + e.getMessage()); - return R.fail("写入csv时发生错误:" + e.getMessage()); + log.error("写入csv时发生错误:" + e.getMessage()); + return R.fail("写入csv时发生错误:" + e.getMessage()); } return R.ok(); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportmanage/appservice/impl/ReportAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportmanage/appservice/impl/ReportAppServiceImpl.java index 5713cd60e..f2d07e16f 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportmanage/appservice/impl/ReportAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/reportmanage/appservice/impl/ReportAppServiceImpl.java @@ -1,9 +1,9 @@ /* - * Copyright ©2023 CJB-CNIT Team. All rights reserved + * Copyright ©2023 CJB-CNIT Team. All rights reserved */ package com.healthlink.his.web.reportmanage.appservice.impl; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -38,7 +38,7 @@ import java.util.List; import java.util.Objects; /** - * 报表 impl + * 报表 impl * * @author liuhr * @date 2025-11-06 @@ -52,13 +52,13 @@ public class ReportAppServiceImpl implements IReportAppService { private IPaymentRecStaticService paymentRecStaticService; /** - * 例子 药剂科报表_常规报表:出库明细表 + * 例子 药剂科报表_常规报表:出库明细表 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 出库明细表 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 出库明细表 */ @Override public R getStockOutDetailPage(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) { @@ -66,24 +66,24 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药剂科报表:患者明细主表 + * 药剂科报表:患者明细主表 * - * @param patientMasterDetailsSearchParam 患者明细主表查询条件 - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 患者明细主表 + * @param patientMasterDetailsSearchParam 患者明细主表查询条件 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 患者明细主表 */ @Override public Page getPatientMasterDetailPage( ReportPatientMasterDetailsSearchParam patientMasterDetailsSearchParam, Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) { - // 构建查询条件 + // 构建查询条件 QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(patientMasterDetailsSearchParam, searchKey, new HashSet<>(Arrays.asList("encounter_bus_no", "patient_name")), request); - // 查询挂号明细分页列表 + // 查询挂号明细分页列表 Page patientMasterDetailsPage = reportMapper .selectPatientMasterDetailPage(new Page<>(pageNo, pageSize), queryWrapper, EncounterClass.IMP.getValue()); @@ -91,13 +91,13 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药剂科报表:线下采购占比 + * 药剂科报表:线下采购占比 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 线下采购占比报表 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 线下采购占比报表 */ @Override public R getOfflinePurchaseRatioPage(Integer pageNo, Integer pageSize, String searchKey, @@ -106,13 +106,13 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药剂科报表:药品使用情况 + * 药剂科报表:药品使用情况 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 药品使用情况报表 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 药品使用情况报表 */ @Override public R getMedicationUsagePage(Integer pageNo, Integer pageSize, String searchKey, LocalDateTime startTime, @@ -130,25 +130,25 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药剂科报表:患者明细 + * 药剂科报表:患者明细 * - * @param patientDetailsSearchParam 患者明细查询条件 - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 患者明细报表 + * @param patientDetailsSearchParam 患者明细查询条件 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 患者明细报表 */ @Override public Page getPatientDetailsPage( ReportPatientDetailsSearchParam patientDetailsSearchParam, Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) { - // 构建查询条件 + // 构建查询条件 QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(patientDetailsSearchParam, searchKey, new HashSet<>(Arrays.asList("encounter_bus_no", "med_name", "manufacturer_text")), request); - // 查询挂号明细分页列表 + // 查询挂号明细分页列表 Page patientDetailsPage = reportMapper.selectPatientDetailsPage( new Page<>(pageNo, pageSize), queryWrapper, CommonConstants.TableName.MED_MEDICATION_REQUEST); @@ -156,13 +156,13 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药剂科报表_常规报表:药品费用增长率 + * 药剂科报表_常规报表:药品费用增长率 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 药品费用增长率 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 药品费用增长率 */ @Override public R getDrugExpensesGrowthRate(Integer pageNo, Integer pageSize, String searchKey, @@ -171,13 +171,13 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药剂科报表_结余留用:30天回款率 + * 药剂科报表_结余留用:30天回款率 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 30天回款率 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 30天回款率 */ @Override public R getThirtyDayCollectionRate(Integer pageNo, Integer pageSize, String searchKey, @@ -186,48 +186,48 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 获取医疗机构代码、组织机构名称 + * 获取医疗机构代码、组织机构名称 * - * @return 医疗机构代码[0]、组织机构名称[1] + * @return 医疗机构代码[0]、组织机构名称[1] */ private String[] getOrgInfo() { - // 获取系统信息 - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); - // 医疗机构代码 - String fixmedinsCode = optionJson.getString(CommonConstants.Option.FIXMEDINS_CODE); - // 组织机构名称 - String fixmedinsName = optionJson.getString(CommonConstants.Option.FIXMEDINS_NAME); + // 获取系统信息 + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); + // 医疗机构代码 + String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText(); + // 组织机构名称 + String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText(); return new String[]{fixmedinsCode, fixmedinsName}; } /** - * 药剂科报表:基本情况 + * 药剂科报表:基本情况 * - * @param param 查询参数 - * @return 基本情况报表 + * @param param 查询参数 + * @return 基本情况报表 */ @Override public R getBasicInformationDetails(ReportDetailsSearchParam param) { if (param.getItemTypeCode() != null && param.getOccurrenceTime() != null) { - // 获取时间 + // 获取时间 LocalDate date = LocalDate.of(Integer.parseInt(param.getOccurrenceTime()), 1, 1); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(PaymentRecStatic::getTypeCode, param.getItemTypeCode()); wrapper.ge(PaymentRecStatic::getCreateTime, date).lt(PaymentRecStatic::getCreateTime, date.plusYears(1)); - // 查询 + // 查询 List paymentRecStatics = paymentRecStaticService.list(wrapper); if (paymentRecStatics.isEmpty()) { return R.ok(); } - // 年度总收入 + // 年度总收入 BigDecimal totalAmount = paymentRecStatics.stream().map(PaymentRecStatic::getAmount) .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP); ReportBasicInformationDetailsDto dto = new ReportBasicInformationDetailsDto(); - // 设置医疗机构代码、组织机构名称 + // 设置医疗机构代码、组织机构名称 String[] orgInfo = getOrgInfo(); dto.setMedicalCode(orgInfo[0]); dto.setOrganizationName(orgInfo[1]); - // 设置年度总收入 + // 设置年度总收入 dto.setYearMedicineTotalRevenue(totalAmount); return R.ok(List.of(dto)); } @@ -235,26 +235,26 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药剂科报表:药品出库情况 + * 药剂科报表:药品出库情况 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @return 药品出库情况报表 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @return 药品出库情况报表 */ @Override public R> getMedicationStockOutDetails(ReportDetailsSearchParam param, Integer pageNo, Integer pageSize) { - // 源仓库ID + // 源仓库ID Long sourceLocationId = param.getSourceLocationId(); - // 目的仓库ID + // 目的仓库ID Long purposeLocationId = param.getPurposeLocationId(); - // 开始时间 + // 开始时间 String occurrenceTimeSTime = param.getOccurrenceTimeSTime(); - // 结束时间 + // 结束时间 String occurrenceTimeETime = param.getOccurrenceTimeETime(); if (sourceLocationId == null || purposeLocationId == null || occurrenceTimeSTime == null || occurrenceTimeETime == null) { - return R.fail("请构建完整的查询条件"); + return R.fail("请构建完整的查询条件"); } Page detailsPage = reportMapper.selectMedicationInboundDetailsPage( new Page<>(pageNo, pageSize), SupplyType.PRODUCT_TRANSFER.getValue(), @@ -262,7 +262,7 @@ public class ReportAppServiceImpl implements IReportAppService { LocalDate.parse(occurrenceTimeSTime), LocalDate.parse(occurrenceTimeETime).plusDays(1)); String[] orgInfo = getOrgInfo(); List records = detailsPage.getRecords(); - // 设置医疗机构代码、组织机构名称 + // 设置医疗机构代码、组织机构名称 if (!records.isEmpty()) { detailsPage.getRecords().forEach(record -> { record.setMedinsCode(orgInfo[0]); @@ -273,13 +273,13 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药剂科报表:产品使用情况 + * 药剂科报表:产品使用情况 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 产品使用情况报表 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 产品使用情况报表 */ @Override public R getProductUsageDetails(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) { @@ -287,13 +287,13 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药剂科报表:非中选产品采购量占比 + * 药剂科报表:非中选产品采购量占比 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 非中选产品采购量占比报表 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 非中选产品采购量占比报表 */ @Override public R getNonWinQtyRatio(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) { @@ -301,13 +301,13 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药剂科报表:药品入库情况 + * 药剂科报表:药品入库情况 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 药品入库情况报表 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 药品入库情况报表 */ @Override public R getMedicationInboundDetails(Integer pageNo, Integer pageSize, String searchKey, @@ -316,13 +316,13 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 红旗:红旗药品销售情况表 + * 红旗:红旗药品销售情况表 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 在售药品明细报表 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 在售药品明细报表 */ @Override public R getMedicationSaleDetails(Integer pageNo, Integer pageSize, String searchKey, @@ -331,13 +331,13 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 农大:疾病统计(健康保健) + * 农大:疾病统计(健康保健) * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 疾病统计(健康保健)报表 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 疾病统计(健康保健)报表 */ @Override public R getDiseaseDetails(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) { @@ -345,13 +345,13 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 同一报表:门诊医生工作量统计 + * 同一报表:门诊医生工作量统计 * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 门诊医生工作量统计 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 门诊医生工作量统计 */ @Override public R getOutpatientDepartmentMetrics(Integer pageNo, Integer pageSize, String searchKey, @@ -360,9 +360,9 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 同一报表:医生工作量报表:下拉框 + * 同一报表:医生工作量报表:下拉框 * - * @return 下拉框信息 + * @return 下拉框信息 */ @Override public R physicianWorkloadReportInit() { @@ -371,29 +371,29 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 同一报表:医生工作量报表 + * 同一报表:医生工作量报表 * - * @param physicianWorkloadReportSearchParam 医生工作量报表查询条件 - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @param searchKey 模糊查询关键字 - * @param request 请求数据 - * @return 医生工作量 + * @param physicianWorkloadReportSearchParam 医生工作量报表查询条件 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @param searchKey 模糊查询关键字 + * @param request 请求数据 + * @return 医生工作量 */ @Override public R getPhysicianWorkloadPage(ReportPhysicianWorkloadSearchParam physicianWorkloadReportSearchParam, Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) { - // 最终返回结果 + // 最终返回结果 Page physicianWorkloadReportList; return null; } /** - * 报表导出 + * 报表导出 * - * @param param 查询条件 - * @param response 响应数据 + * @param param 查询条件 + * @param response 响应数据 */ @Override public void makeExcelFile(ReportDetailsSearchParam param, HttpServletResponse response, String code) { @@ -406,10 +406,10 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 药品调拨-导出 + * 药品调拨-导出 * - * @param param 查询条件 - * @param response 响应数据 + * @param param 查询条件 + * @param response 响应数据 */ private void productTransferExcelOut(ReportDetailsSearchParam param, HttpServletResponse response) { R> details = this.getMedicationStockOutDetails(param, 1, 10000); @@ -426,10 +426,10 @@ public class ReportAppServiceImpl implements IReportAppService { } /** - * 年度药品总收入-导出 + * 年度药品总收入-导出 * - * @param param 查询参数 - * @param response 响应数据 + * @param param 查询参数 + * @param response 响应数据 */ private void reportBasicInformationDetailsExcelOut(ReportDetailsSearchParam param, HttpServletResponse response) { R details = this.getBasicInformationDetails(param); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tencentJH/utils/httpUtil/HttpRequesPost.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tencentJH/utils/httpUtil/HttpRequesPost.java index a665474d9..b3b087c23 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tencentJH/utils/httpUtil/HttpRequesPost.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/tencentJH/utils/httpUtil/HttpRequesPost.java @@ -6,7 +6,8 @@ package com.healthlink.his.web.tencentJH.utils.httpUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import org.apache.hc.client5.http.classic.methods.HttpPost; import org.apache.hc.client5.http.config.RequestConfig; import org.apache.hc.core5.http.ContentType; @@ -68,7 +69,7 @@ public class HttpRequesPost extends HttpReques { // 创建参数队列 if ("json".equals(requestType.toLowerCase())) { // 解决中文乱码问题 - StringEntity entity = new StringEntity(JSON.toJSONString(param), ContentType.APPLICATION_JSON); + StringEntity entity = new StringEntity(JsonUtils.toJson(param), ContentType.APPLICATION_JSON); httpPost.setEntity(entity); } else if("xml".equals(requestType.toLowerCase())){ StringBuffer xml=new StringBuffer(); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/controller/YbController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/controller/YbController.java index 8302537fd..d943424d0 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/controller/YbController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/controller/YbController.java @@ -6,7 +6,7 @@ package com.healthlink.his.web.ybmanage.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson2.JSON; +import com.core.common.utils.JsonUtils; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.core.common.annotation.Anonymous; import com.core.common.core.domain.R; @@ -172,7 +172,7 @@ public class YbController { if (perinfo == null) { throw new ServiceException("未连接医保获取患者信息"); } - Info1101Output info1101Output = JSON.parseObject(perinfo.getResult1101(), Info1101Output.class); + Info1101Output info1101Output = JsonUtils.parseObject(perinfo.getResult1101(), Info1101Output.class); List feedetail = info1101Output.getFeedetail(); Date currentDate = new Date(); @@ -251,9 +251,9 @@ public class YbController { Financial3201Param financial3201Param = ybDao.getFinancial3201Param(settlement3201WebParam); Result result = ybHttpUtils.reconcileGeneralLedger(financial3201Param); if (result.getCode().equals(CommonConstant.SC_OK_200)) { - // log.info(JSON.parseObject(JSON.toJSONString(result.getResult()))); + // log.info(JsonUtils.parseObject(JsonUtils.toJson(result.getResult()))); Financial3201Output financial3201Output - = JSON.parseObject(JSON.toJSONString(result.getResult()), Financial3201Output.class); + = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Financial3201Output.class); ybDao.saveReconcileGeneralLedger(financial3201Output, financial3201Param); if ("0".equals(financial3201Output.getStmtRslt())) { return R.ok("OK"); @@ -293,13 +293,13 @@ public class YbController { .setFundPaySumamt(financialHand3203WebParam.getFundAppySum().doubleValue()) .setAcctPay(financialHand3203WebParam.getAcctPay().doubleValue()) .setFixmedinsSetlCnt(Integer.parseInt(financialHand3203WebParam.getSetlCnt())) - .setInsuplcAdmdvs(SecurityUtils.getLoginUser().getOptionJson().getString("admvs")); + .setInsuplcAdmdvs(SecurityUtils.getLoginUser().getOptionJson().path("admvs").asText()); Result result = ybHttpUtils.reconcileGeneralLedger(financial3201Param); if (result.getCode().equals(CommonConstant.SC_OK_200)) { - // log.info(JSON.parseObject(JSON.toJSONString(result.getResult()))); + // log.info(JsonUtils.parseObject(JsonUtils.toJson(result.getResult()))); Financial3201Output financial3201Output - = JSON.parseObject(JSON.toJSONString(result.getResult()), Financial3201Output.class); + = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Financial3201Output.class); ybDao.saveReconcileGeneralLedger(financial3201Output, financial3201Param); if ("0".equals(financial3201Output.getStmtRslt())) { return R.ok("OK"); @@ -336,7 +336,7 @@ public class YbController { HttpServletResponse response) throws IOException { List financial3202FileParams = ybDao.paymentCompareYbSettle(financial3202WebParam.getSettlementIdList()); - // String filePath = SecurityUtils.getLoginUser().getOptionJson().getString("filePath")+new + // String filePath = SecurityUtils.getLoginUser().getOptionJson().path("filePath").asText()+new // Date().getTime()+".txt"; // String filePath = "C:\\Users\\bjbUser\\Desktop\\"+new Date().getTime()+".txt"; // try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) { @@ -407,7 +407,7 @@ public class YbController { public R reconcileGeneral(List settlementIdList, String filePath, String fileQuryNo, String setlOptins, String clrType) { // todo:这里需要考虑3302接口的参数是后台合计还是由前台传入,因为这个参数还要和txt文件对应(既需要txt中的数据还需要db表中的一些数据), - // String filePath = SecurityUtils.getLoginUser().getOptionJson().getString("filePath")+new + // String filePath = SecurityUtils.getLoginUser().getOptionJson().path("filePath").asText()+new // Date().getTime()+".txt"; List financial3202FileParamList = new ArrayList<>(); Resource resource = resourceLoader.getResource(filePath); // 或使用 "file:" 读取绝对路径 @@ -488,7 +488,7 @@ public class YbController { Financial3203AParam financial3203AParam = ybDao.getFinancial3203AParam(financial3203AWebParam); String s = ybHttpUtils.applyFinancialClearing(financial3203AParam); if (!StringUtils.isEmpty(s)) { - Result result = JSON.parseObject(s, Result.class); + Result result = JsonUtils.parseObject(s, Result.class); if (result != null) { if (result.getCode() == 200) { ybDao.save3203AFinancialClearingApplycation(financial3203AParam, @@ -522,7 +522,7 @@ public class YbController { financialClearing3203AWebParam.getClrType(), financialClearing3203AWebParam.getSetlOptins()); String s = ybHttpUtils.applyFinancialClearing(financial3203AParam); if (!StringUtils.isEmpty(s)) { - Result result = JSON.parseObject(s, Result.class); + Result result = JsonUtils.parseObject(s, Result.class); if (result != null) { if (result.getCode() == 200) { ybDao.save3203AFinancialClearingApplycation(financial3203AParam, @@ -558,7 +558,7 @@ public class YbController { String.valueOf(financialHand3203AWebParam.getEnddate())); String s = ybHttpUtils.applyFinancialClearing(financial3203AParam); if (!StringUtils.isEmpty(s)) { - Result result = JSON.parseObject(s, Result.class); + Result result = JsonUtils.parseObject(s, Result.class); if (result != null) { if (result.getCode() == 200) { ybDao.save3203AFinancialClearingApplycation(financial3203AParam, @@ -706,7 +706,7 @@ public class YbController { // ybDao.getMedical3505Param(id, ListType, SecurityUtils.getLoginUser().getTenantId()); // Result result = ybHttpUtils.merchandise(medical3505Param); // Medical3505Result medical3505Result = - // JSON.parseObject(JSON.toJSONString(result.getMessage()), Medical3505Result.class); + // JsonUtils.parseObject(JsonUtils.toJson(result.getMessage()), Medical3505Result.class); // if ("1".equals(medical3505Result.getRetRslt())) { // ybDao.saveInventorySaleRecord(medical3505Param, medical3505Result.getMsgRslt()); // return R.ok(); @@ -726,7 +726,7 @@ public class YbController { // ybDao.getMedical3506Param(id, ListType, SecurityUtils.getLoginUser().getTenantId()); // Result result = ybHttpUtils.cancelMerchandise(medical3506Param); // Medical3505Result medical3505Result = - // JSON.parseObject(JSON.toJSONString(result.getMessage()), Medical3505Result.class); + // JsonUtils.parseObject(JsonUtils.toJson(result.getMessage()), Medical3505Result.class); // if ("1".equals(medical3505Result.getRetRslt())) { // ybDao.saveInventorySaleReturnRecord(medical3506Param, medical3505Result.getMsgRslt()); // return R.ok(); @@ -783,7 +783,7 @@ public class YbController { Catalogue1312QueryParam catalogue1312QueryParam = new Catalogue1312QueryParam(); catalogue1312QueryParam.setHilistCode(hilistCode); catalogue1312QueryParam.setInsuplcAdmdvs( - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.INSUPLC_ADMDVS)); + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.INSUPLC_ADMDVS).asText()); // 直接解析(默认 ISO 格式) LocalDate localDate = LocalDate.parse(dateStr); // 转换为 Date @@ -966,8 +966,8 @@ public class YbController { String s2 = "{\"feedetl_sn\":\"530390\",\"mdtrt_id\":\"220000202511101029490122280385\",\"psn_no\":\"22000011000014958451\",\"chrg_bchno\":\"SF2511100007050575\",\"dise_codg\":\"M51.202\",\"rx_circ_flag\":\"0\",\"fee_ocur_time\":\"2025-11-10 10:28:20\",\"med_list_codg\":\"014400000050100\",\"medins_list_codg\":\"yp3201\",\"det_item_fee_sumamt\":\"210\",\"cnt\":\"6.0\",\"pric\":\"35.0\",\"sin_dos_dscr\":\"\",\"used_frqu_dscr\":\"\",\"prd_days\":\"1\",\"medc_way_dscr\":\"\",\"bilg_dept_codg\":\"A21\",\"bilg_dept_name\":\"康复医学科\",\"bilg_dr_codg\":\"D220104007959\",\"bilg_dr_name\":\"齐艳英\",\"acord_dept_codg\":\"A21\",\"acord_dept_name\":\"康复医学科\",\"orders_dr_code\":\"D220104007959\",\"orders_dr_name\":\"齐艳英\",\"hosp_appr_flag\":\"1\",\"tcmdrug_used_way\":\"1\",\"etip_flag\":\"0\",\"etip_hosp_code\":\"\",\"dscg_tkdrug_flag\":\"0\",\"matn_fee_flag\":\"0\"}"; - Clinic2204FeeDetailParam feeDetailResult1 = JSON.parseObject(s1, Clinic2204FeeDetailParam.class); - Clinic2204FeeDetailParam feeDetailResult2 = JSON.parseObject(s2, Clinic2204FeeDetailParam.class); + Clinic2204FeeDetailParam feeDetailResult1 = JsonUtils.parseObject(s1, Clinic2204FeeDetailParam.class); + Clinic2204FeeDetailParam feeDetailResult2 = JsonUtils.parseObject(s2, Clinic2204FeeDetailParam.class); clinic2204OrderResult.setFeedetail(Arrays.asList(feeDetailResult1, feeDetailResult2)); @@ -1008,7 +1008,7 @@ public class YbController { if (inpatientReg != null) { - inpatientReg.setInputParam(JSON.toJSONString(yb2401InputInpatientMdtrtInfo)); + inpatientReg.setInputParam(JsonUtils.toJson(yb2401InputInpatientMdtrtInfo)); ybDao.save2401InpatientReg(inpatientReg); return R.ok("医保入院办理成功!"); @@ -1034,11 +1034,11 @@ public class YbController { InpatientDischarge inpatientDischarge = new InpatientDischarge(); BeanUtils.copyProperties(yb2402InputParam, inpatientDischarge); - inpatientDischarge.setInputParam(JSON.toJSONString(yb2402InputInpatientDscgInfo)); - inpatientDischarge.setOutputResult(JSON.toJSONString(yb2402InputParam)); + inpatientDischarge.setInputParam(JsonUtils.toJson(yb2402InputInpatientDscgInfo)); + inpatientDischarge.setOutputResult(JsonUtils.toJson(yb2402InputParam)); ybDao.save2402InpatientDscg(inpatientDischarge); - // inpatientReg.setInputParam(JSON.toJSONString(yb2402InputInpatientDscgInfo)); + // inpatientReg.setInputParam(JsonUtils.toJson(yb2402InputInpatientDscgInfo)); // ybDao.save2402InpatientDscg(inpatientReg); return R.ok("医保出院办理成功!"); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/ClinicReg2201Output.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/ClinicReg2201Output.java index f06e30cb5..181c1c947 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/ClinicReg2201Output.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/ClinicReg2201Output.java @@ -1,6 +1,6 @@ package com.healthlink.his.web.ybmanage.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -17,19 +17,19 @@ public class ClinicReg2201Output { private static final long serialVersionUID = 1L; //主键 @TableId(type = IdType.ASSIGN_ID) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String id; //就诊ID private String mdtrtId; //参保地医保区划 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String insuplcAdmdvs; //人员编号 private String psnNo; //险种类型 private String insutype; //医疗类别 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String medType; //挂号时间 @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @@ -40,7 +40,7 @@ public class ClinicReg2201Output { //就诊凭证编号 private String mdtrtCertNo; //证件加密串 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @TableField(exist = false) private String mdtrtCertNoEncrypt; //住院/门诊号 diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Financial13203WebParam.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Financial13203WebParam.java index 590886824..1edfd3bbb 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Financial13203WebParam.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Financial13203WebParam.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.ybmanage.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** @@ -16,34 +16,34 @@ import lombok.Data; public class Financial13203WebParam { // 对账日期,格式:YYYY-MM-DD - @JSONField(name = "stmt_date") + @JsonProperty("stmt_date") private String stmtDate; // 明细对账结果,1:不平,0:平 - @JSONField(name = "stmt_rslt") + @JsonProperty("stmt_rslt") private String stmtRslt; // 查询页面数据量,最大100 - @JSONField(name = "page_size") + @JsonProperty("page_size") private String pageSize; // 页数,默认1 - @JSONField(name = "page_num") + @JsonProperty("page_num") private String pageNum; // 清算机构编码 - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; // 清算类别 - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 险种 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 就医类别,2:本地就医,3:省内异地就医,4:跨省就医 - @JSONField(name = "clr_pay_loc") + @JsonProperty("clr_pay_loc") private String clrPayLoc; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Financial3203WebParam.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Financial3203WebParam.java index c4a331895..de1610014 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Financial3203WebParam.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Financial3203WebParam.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.ybmanage.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -19,24 +19,24 @@ import java.util.Date; public class Financial3203WebParam { // 清算类别(字符型,30位,必填) - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 清算方式(字符型,30位,必填) - @JSONField(name = "clr_way") + @JsonProperty("clr_way") private String clrWay; // 开始日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "begndate") + @JsonProperty("begndate") @JsonFormat(pattern = "yyyy-MM-dd") private Date begndate; // 结束日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "enddate") + @JsonProperty("enddate") @JsonFormat(pattern = "yyyy-MM-dd") private Date enddate; // 清算年月 - @JSONField(name = "setlym") + @JsonProperty("setlym") private String setlym; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/ResultBody.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/ResultBody.java index a2240b1c2..0cbece8bc 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/ResultBody.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/ResultBody.java @@ -1,6 +1,6 @@ package com.healthlink.his.web.ybmanage.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** @@ -10,30 +10,30 @@ import lombok.Data; public class ResultBody { /** 交易状态码 */ - @JSONField(name="infcode") + @JsonProperty("infcode") private String infcode; /** 发送方报文ID */ - @JSONField(name="warnMsg") + @JsonProperty("warnMsg") private String warn_msg; /** 数字签名信息 */ - @JSONField(name="cainfo") + @JsonProperty("cainfo") private String cainfo; /** 错误信息 */ - @JSONField(name="err_msg") + @JsonProperty("err_msg") private String errMsg; /** 接收报文时间 */ - @JSONField(name="refmsg_time") + @JsonProperty("refmsg_time") private String refmsgTime; /** 签名类型 */ - @JSONField(name="signtype") + @JsonProperty("signtype") private String signtype; /** 响应报文时间 */ - @JSONField(name="respond_time") + @JsonProperty("respond_time") private String respondTime; /** 接收方报文ID */ - @JSONField(name="inf_refmsgid") + @JsonProperty("inf_refmsgid") private String infRefmsgid; /** 交易输出 */ - @JSONField(name="output") + @JsonProperty("output") private String output; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Settlement3209AWebParam.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Settlement3209AWebParam.java index b55e7916a..4c29c7795 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Settlement3209AWebParam.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/Settlement3209AWebParam.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.ybmanage.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.Date; @@ -18,18 +18,18 @@ import java.util.Date; public class Settlement3209AWebParam { // 清算类别 - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 开始日期 - @JSONField(name = "begndate") + @JsonProperty("begndate") private Date begndate; // 结束日期 - @JSONField(name = "enddate") + @JsonProperty("enddate") private Date enddate; // 清算机构 - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/service/impl/YbEleHttpServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/service/impl/YbEleHttpServiceImpl.java index 47ad19990..a8a292f89 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/service/impl/YbEleHttpServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/service/impl/YbEleHttpServiceImpl.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.web.ybmanage.service.impl; -import com.alibaba.fastjson2.JSON; +import com.core.common.utils.JsonUtils; import com.core.common.core.domain.R; import com.core.common.exception.ServiceException; import com.core.common.utils.SecurityUtils; @@ -54,7 +54,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { ElepVeriPrescriptionOutput pcpResult = new ElepVeriPrescriptionOutput(); BaseInfo baseInfo = ybParamBuilderUtil.getBaseInfo(medType, dutyDoctorName); // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("eleUrl") + "/preCheckPrescription", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/preCheckPrescription", pcp, baseInfo); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -65,7 +65,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { e.printStackTrace(); } if (result != null && result.isSuccess()) { - pcpResult = JSON.parseObject(JSON.toJSONString(result.getResult()), ElepVeriPrescriptionOutput.class);; + pcpResult = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), ElepVeriPrescriptionOutput.class);; pcpResult.setPrescriptionNo(pcp.getHospRxno()); return R.ok(pcpResult); } else { @@ -83,7 +83,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { ElepSignatureOutput esResult = new ElepSignatureOutput(); // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("eleUrl") + "/signature", eleSign, + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/signature", eleSign, ybParamBuilderUtil.getBaseInfo("", "")); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -94,7 +94,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { e.printStackTrace(); } if (result != null && result.isSuccess()) { - esResult = JSON.parseObject(JSON.toJSONString(result.getResult()), ElepSignatureOutput.class); + esResult = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), ElepSignatureOutput.class); return R.ok(esResult); } else { return R.fail(result.getMessage()); @@ -112,7 +112,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { ElepUploadOutput euResult = new ElepUploadOutput(); // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("eleUrl") + "/upload", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/upload", eleUploadInput, ybParamBuilderUtil.getBaseInfo("", "")); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -123,7 +123,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { e.printStackTrace(); } if (result != null && result.isSuccess()) { - euResult = JSON.parseObject(JSON.toJSONString(result.getResult()), ElepUploadOutput.class); + euResult = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), ElepUploadOutput.class); return R.ok(euResult); } else { return R.fail(result.getMessage()); @@ -141,7 +141,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { ElepRevokeOutput ereResult = new ElepRevokeOutput(); // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("eleUrl") + "/revoke", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/revoke", eleRevokeInput, ybParamBuilderUtil.getBaseInfo("", "")); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -152,7 +152,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { e.printStackTrace(); } if (result != null && result.isSuccess()) { - ereResult = JSON.parseObject(JSON.toJSONString(result.getResult()), ElepRevokeOutput.class); + ereResult = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), ElepRevokeOutput.class); return R.ok(ereResult); } else { return R.fail(result.getMessage()); @@ -173,7 +173,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { // baseParam.setBaseInfo(ybParamBuilderUtil.getBaseInfo()).setData(o); QueryPrescription emrResult = new QueryPrescription(); // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("eleUrl") + "/querPrescription", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/querPrescription", eleQueryPreInput, ybParamBuilderUtil.getBaseInfo("", "")); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -184,7 +184,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { e.printStackTrace(); } if (result != null && result.isSuccess()) { - emrResult = JSON.parseObject(JSON.toJSONString(result.getResult()), QueryPrescription.class); + emrResult = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), QueryPrescription.class); return R.ok(emrResult); } else { return R.fail(result.getMessage()); @@ -201,7 +201,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { MedicationResultInquiry medResult = new MedicationResultInquiry(); // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("eleUrl") + "/medresult", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("eleUrl").asText() + "/medresult", eleMedInput, ybParamBuilderUtil.getBaseInfo("", "")); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -212,7 +212,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { e.printStackTrace(); } if (result != null && result.isSuccess()) { - medResult = JSON.parseObject(JSON.toJSONString(result.getResult()), MedicationResultInquiry.class); + medResult = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), MedicationResultInquiry.class); return R.ok(medResult); } else { return R.fail(result.getMessage()); @@ -238,7 +238,7 @@ public class YbEleHttpServiceImpl implements IYbEleHttpService { // 发送请求 try { HttpPost httpPost = new HttpPost(url); - StringEntity stringEntity = new StringEntity(JSON.toJSONString(baseParam), ContentType.APPLICATION_JSON); + StringEntity stringEntity = new StringEntity(JsonUtils.toJson(baseParam), ContentType.APPLICATION_JSON); httpPost.setEntity(stringEntity); // 执行http请求 response = httpClient.execute(httpPost); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/service/impl/YbServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/service/impl/YbServiceImpl.java index 695090788..f5b987e24 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/service/impl/YbServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/service/impl/YbServiceImpl.java @@ -3,8 +3,10 @@ package com.healthlink.his.web.ybmanage.service.impl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -796,17 +798,17 @@ public class YbServiceImpl implements IYbService { Yb2401InputInpatientMdtrtInfo yb2401InputInpatientMdtrtInfo = new Yb2401InputInpatientMdtrtInfo(); BeanUtils.copyProperties(yb2401InputInpatientParamDto, yb2401InputInpatientMdtrtInfo); - JSONObject jsonObject = new JSONObject(); + ObjectNode jsonObject = new com.fasterxml.jackson.databind.ObjectMapper().createObjectNode(); - jsonObject.put("diseinfo", JSON.toJSONString(yb2401InputInpatientParamDto.getDiseinfo())); - jsonObject.put("mdtrtinfo", JSON.toJSONString(yb2401InputInpatientMdtrtInfo)); + jsonObject.put("diseinfo", JsonUtils.toJson(yb2401InputInpatientParamDto.getDiseinfo())); + jsonObject.put("mdtrtinfo", JsonUtils.toJson(yb2401InputInpatientMdtrtInfo)); InpatientReg inpatientReg = ybHttpUtils.inpatientReg(jsonObject, yb2401InputInpatientMdtrtInfo.getMdtrtareaAdmvs()); if (inpatientReg != null) { - inpatientReg.setInputParam(com.alibaba.fastjson2.JSON.toJSONString(yb2401InputInpatientMdtrtInfo)); + inpatientReg.setInputParam(JsonUtils.toJson(yb2401InputInpatientMdtrtInfo)); inpatientReg.setStatus(YbEncounterZyStatus.ADMITTED_TO_THE_HOSPITAL.getValue()); ybDao.save2401InpatientReg(inpatientReg); return R.ok("医保入院办理成功!"); @@ -864,8 +866,8 @@ public class YbServiceImpl implements IYbService { BeanUtils.copyProperties(inpatientRegByMdtrtId, admInfo); // 获取上传过的诊断信息 - String diseinfo = JSON.parseObject(inpatientRegByMdtrtId.getInputParam()).getString("diseinfo"); - List diseInfos = JSON.parseArray(diseinfo, Yb2403InputDiseInfo.class); + String diseinfo = JsonUtils.parse(inpatientRegByMdtrtId.getInputParam()).path("diseinfo").asText(); + List diseInfos = JsonUtils.parseObject(diseinfo, new TypeReference>() {}); // 赋值 yb2401InputInpatientParamDto.setDiseinfo(diseInfos); @@ -919,7 +921,7 @@ public class YbServiceImpl implements IYbService { ybHttpUtils.updateInpatientInfo(yb2403InputParam, inpatientReg.getMdtrtareaAdmvs()); BeanUtils.copyProperties(yb2403InputAdmInfo, inpatientReg); - inpatientReg.setInputParam(JSON.toJSONString(yb2403InputParam)); + inpatientReg.setInputParam(JsonUtils.toJson(yb2403InputParam)); return R.ok("医保入院信息更新成功!"); } @@ -940,9 +942,9 @@ public class YbServiceImpl implements IYbService { BeanUtils.copyProperties(inpatientRegByMdtrtId, yb2402InputInpatientDscgInfo); // 获取上传过的诊断信息 - String diseinfo = JSON.parseObject(inpatientRegByMdtrtId.getInputParam()).getString("diseinfo"); + String diseinfo = JsonUtils.parse(inpatientRegByMdtrtId.getInputParam()).path("diseinfo").asText(); List yb2401InputInpatientDiseInfos = - JSON.parseArray(diseinfo, Yb2402InputInpatientDiseInfo.class); + JsonUtils.parseObject(diseinfo, new TypeReference>() {}); // 赋值 yb2402InputParam.setDiseinfo(yb2401InputInpatientDiseInfos); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/util/YbEleParamBuilderUtil.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/util/YbEleParamBuilderUtil.java index 4f0cab3ce..0c35c7c7b 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/util/YbEleParamBuilderUtil.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/util/YbEleParamBuilderUtil.java @@ -1,12 +1,14 @@ /* - * Copyright ©2023 CJB-CNIT Team. All rights reserved + * Copyright ©2023 CJB-CNIT Team. All rights reserved */ package com.healthlink.his.web.ybmanage.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.core.common.exception.ServiceException; import com.core.common.utils.DateUtils; @@ -49,7 +51,7 @@ import java.time.format.DateTimeFormatter; import java.util.*; /** - * 医保接口调用工具 + * 医保接口调用工具 * * @author yuxj * @date 2025-04-17 @@ -58,14 +60,14 @@ import java.util.*; public class YbEleParamBuilderUtil { private static final Logger log = LoggerFactory.getLogger(YbEleParamBuilderUtil.class); - /********************* 业务实体服务 *******************/ + /********************* 业务实体服务 *******************/ - // 就诊管理服务 + // 就诊管理服务 @Autowired IEncounterService iEncounterService; @Autowired IElepMedicationRequestService elepMedicationRequestService; - // 就诊管理 + // 就诊管理 @Autowired IAccountService accountService; @Autowired @@ -89,7 +91,7 @@ public class YbEleParamBuilderUtil { @Autowired IConditionDefinitionService conditionDefinitionService; - /********************* 医保实体服务 *******************/ + /********************* 医保实体服务 *******************/ @Autowired IRegService iRegService; @Autowired @@ -98,33 +100,33 @@ public class YbEleParamBuilderUtil { IElepVeriVisitInfoService eleVerVisInfoService; /** - * 获取BigDecimal类型的年龄 + * 获取BigDecimal类型的年龄 * - * @param birthDate 出生日期 - * @param beginTime 计算起始日期 - * @return 年龄 + * @param birthDate 出生日期 + * @param beginTime 计算起始日期 + * @return 年龄 */ public static BigDecimal calculateAge(Date birthDate, Date beginTime) { - // 验证输入参数是否为空 + // 验证输入参数是否为空 if (Objects.isNull(birthDate)) { - log.info("出生年月日不能为空!"); + log.info("出生年月日不能为空!"); return null; } - // 验证输入参数是否为空 + // 验证输入参数是否为空 if (Objects.isNull(beginTime)) { beginTime = DateUtils.getNowDate(); } - // 将 Date 转换为 LocalDate + // å°† Date 转换为 LocalDate LocalDate localBirthDate = birthDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate localBeginTime = beginTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - // 计算出生日期到起始日期之间的年份差异 + // 计算出生日期到起始日期之间的年份差异 Period period = Period.between(localBirthDate, localBeginTime); int years = period.getYears(); - // 检查是否已经过了生日,如果没有过,则年份减一 + // 检查是否已经过了生日,如果没有过,则年份减一 boolean hasBirthdayPassed = !localBirthDate.plusYears(years).isAfter(localBeginTime); if (!hasBirthdayPassed) { years--; @@ -134,15 +136,15 @@ public class YbEleParamBuilderUtil { } /** - * 读取文件内容并获取其 Base64 字符值 + * 读取文件内容并获取其 Base64 字符值 * - * @param filePath 文件路径 - * @return 文件内容的 Base64 字符值 + * @param filePath 文件路径 + * @return 文件内容的 Base64 字符值 */ public static String fileToBase64(String filePath) { File file = new File(filePath); if (!file.exists()) { - log.info("文件不存在!"); + log.info("文件不存在!"); return null; } @@ -167,28 +169,28 @@ public class YbEleParamBuilderUtil { } /** - * 获取处方信息 + * 获取处方信息 * - * @param medicationRequest 处方信息 - * @param patient 患者信息 - * @param tenantId 租户Id - * @return 处方信息 + * @param medicationRequest 处方信息 + * @param patient 患者信息 + * @param tenantId 租户Id + * @return 处方信息 */ public PreCheckPrescription getEleVeriPrescriptionInfo(ElepMedicationRequest medicationRequest, Patient patient, Integer tenantId) { - // 声明处方信息对象 + // 声明处方信息对象 PreCheckPrescription elepVeriPrescriptionInfo = new PreCheckPrescription(); elepVeriPrescriptionInfo.setMdtrtCertType("02").setMdtrtCertNo(patient.getIdCard()) - // 01-定点医疗机构就诊 + // 01-定点医疗机构就诊 .setBizTypeCode("01").setHospRxno(medicationRequest.getPrescriptionNo()) .setRxTypeCode(medicationRequest.getRxTypeCode().toString()).setPrscTime(medicationRequest.getIssueTime()) - // 处方有效天数 + // 处方有效天数 .setValiDays(medicationRequest.getValidityDays().toString()) - // 计算截止时间 + // 计算截止时间 .setValiEndTime(DateUtils.addDays(medicationRequest.getIssueTime(), medicationRequest.getValidityDays())); - // 就诊凭证类型为03”时,填写社会保障卡卡号 + // 就诊凭证类型为03”时,填写社会保障卡卡号 if (elepVeriPrescriptionInfo.getMdtrtCertType() == YbMdtrtCertType.MDTRT_CERT_TYPE03.getValue()) { Account account = accountService.getOne( @@ -198,20 +200,20 @@ public class YbEleParamBuilderUtil { if (account == null) { return null; } - // 设置社会保障卡号 + // 设置社会保障卡号 elepVeriPrescriptionInfo.setCardSn(account.getNo()); } - // todo 药品类目数(剂数):西药、中成药时为药品的类目数量 - // 西药、中成药对应的处方类别list + // todo 药品类目数(剂数):西药、中成药时为药品的类目数量 + // 西药、中成药对应的处方类别list List westernOrChineseList = new ArrayList<>(); westernOrChineseList.add(Integer.parseInt(YbRxItemTypeCode.WESTERN_MEDICINE.getValue())); westernOrChineseList.add(Integer.parseInt(YbRxItemTypeCode.CHINESE_PATENT_MEDICINE.getValue())); - // 调用 count 方法 + // 调用 count 方法 Long countWesternOrChinese = elepMedicationRequestService .selectWesternOrChineseCount(medicationRequest.getPrescriptionNo(), westernOrChineseList, tenantId); - // 西药、中成药时为药品的类目数量 + // 西药、中成药时为药品的类目数量 elepVeriPrescriptionInfo.setRxDrugCnt(countWesternOrChinese.toString()) .setRxUsedWayCodg(medicationRequest.getMedRoute()) .setRxUsedWayName(YbDrugMedWay.getByValue(medicationRequest.getMedRoute()).getDescription()); @@ -220,31 +222,31 @@ public class YbEleParamBuilderUtil { } /** - * 获取处方明细信息 + * 获取处方明细信息 * - * @param prescriptionNo 处方号 - * @param tenantId 租户Id - * @return 处方明细信息 + * @param prescriptionNo 处方号 + * @param tenantId 租户Id + * @return 处方明细信息 */ public List getEleVeriPrescriptionDetail(String prescriptionNo, Integer tenantId) { - // 查询该处方所有中药饮片 + // 查询该处方所有中药饮片 List materialObjs = elepMedicationRequestService.list( new LambdaQueryWrapper().eq(ElepMedicationRequest::getPrescriptionNo, prescriptionNo) .eq(ElepMedicationRequest::getTenantId, tenantId)); - // 未查到返回空 + // 未查到返回空 if (materialObjs == null) { return null; } List eleDetList = new ArrayList<>(); - // 遍历 materialObjs 列表 + // 遍历 materialObjs 列表 for (ElepMedicationRequest materialObj : materialObjs) { CatalogDrugInfo mObj = catalogDrugInfoService.getOne(new LambdaQueryWrapper() .eq(CatalogDrugInfo::getMedicalCatalogCode, materialObj.getMedicationId()) .orderByDesc(CatalogDrugInfo::getCreatedAt).last("LIMIT 1")); - // 未查到返回空 + // 未查到返回空 if (mObj == null) { return null; } @@ -255,9 +257,9 @@ public class YbEleParamBuilderUtil { .setMedcBegntime(materialObj.getEffectiveDoseStart()).setMedcEndtime(materialObj.getEffectiveDoseEnd()) .setMedcDays(materialObj.getDispensePerDuration().toString()).setDrugDosunt(materialObj.getUnitCode()) .setDrugCnt(materialObj.getQuantity().toString()) - // todo 医院审批标志,配合目录的限制使用标志使用(目前吉林省不启用),暂时先写死 + // todo 医院审批标志,配合目录的限制使用标志使用(目前吉林省不启用),暂时先写死 .setHospApprFlag("0") - // 院内内部处方号 + // 院内内部处方号 .setPrescriptionNo(prescriptionNo).setRxItemTypeCode(materialObj.getRxItemTypeCode().toString()) .setRxItemTypeName( YbRxItemTypeCode.getByValue(materialObj.getRxItemTypeCode().toString()).getDescription()) @@ -274,19 +276,19 @@ public class YbEleParamBuilderUtil { } /** - * 获取就诊信息和诊断信息 + * 获取就诊信息和诊断信息 * - * @param medicationRequest 处方信息 - * @param clinicReg 医保挂号保存的信息 - * @param tenantId 租户Id - * @return 处方明细信息 + * @param medicationRequest 处方信息 + * @param clinicReg 医保挂号保存的信息 + * @param tenantId 租户Id + * @return 处方明细信息 */ public PreCheckPrescription getEleVeriVisitAndDiagnosisInfo(ElepMedicationRequest medicationRequest, ClinicReg clinicReg, Integer tenantId) { - // 电子处方上传预核验信息 + // 电子处方上传预核验信息 PreCheckPrescription preCheckPrescription = new PreCheckPrescription(); - // 获取就诊诊断信息 + // 获取就诊诊断信息 // EncounterDiagnosis encDiagObjs = encounterDiagnosisService.getOne(new // LambdaQueryWrapper() // .eq(EncounterDiagnosis::getEncounterId, medicationRequest.getEncounterId()) @@ -295,32 +297,32 @@ public class YbEleParamBuilderUtil { // .eq(EncounterDiagnosis::getDeleteFlag, DelFlag.NO.getCode())); EncounterDiagnosis encDiagObjs = encounterDiagnosisService.getEncounterDiagnosisByEncounterConDefId( medicationRequest.getEncounterId(), medicationRequest.getConditionDefId(), tenantId); - // 就诊管理 + // 就诊管理 Encounter encounter = encounterService .getOne(new LambdaQueryWrapper().eq(Encounter::getId, medicationRequest.getEncounterId())); - // 患者信息 + // 患者信息 Patient patient = patientService.getOne(new LambdaQueryWrapper() .eq(Patient::getId, encounter.getPatientId()).eq(Patient::getTenantId, tenantId)); - // 医生所属科室 + // 医生所属科室 Organization organization = organizationService.getOne(new LambdaQueryWrapper() .eq(Organization::getId, medicationRequest.getOrgId()).eq(Organization::getTenantId, tenantId)); - // 就诊诊断所属科室 + // 就诊诊断所属科室 Organization orgDis = organizationService.getOne(new LambdaQueryWrapper() .eq(Organization::getId, encounter.getOrganizationId()).eq(Organization::getTenantId, tenantId)); - // 医生信息 + // 医生信息 Practitioner practitioner = practitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getId, medicationRequest.getPrescribingDrId()).eq(Practitioner::getTenantId, tenantId)); - // 医生详细信息 + // 医生详细信息 Practitioner praRole = practitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getId, medicationRequest.getPrescribingDrId()).eq(Practitioner::getTenantId, tenantId)); - // 医生所属科室信息 + // 医生所属科室信息 Organization orgDor = organizationService.getOne(new LambdaQueryWrapper() .eq(Organization::getId, praRole.getOrgId()).eq(Organization::getTenantId, tenantId)); if (encDiagObjs == null || encounter == null || patient == null || organization == null || orgDis == null || practitioner == null || praRole == null || orgDor == null) { return null; } - // 门诊/住院判断 + // 门诊/住院判断 String otpIptFlag = ""; if (encounter.getClassEnum() == EncounterClass.AMB.getValue()) { otpIptFlag = YbEncounterClass.AMB.getValue(); @@ -329,35 +331,35 @@ public class YbEleParamBuilderUtil { } String fixmedinsCode = - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE); + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_CODE).asText(); String fixmedinsName = - SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_NAME); + SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.FIXMEDINS_NAME).asText(); - // 1-输入-就诊信息 + // 1-输入-就诊信息 ElepVeriVisitInfo eleInfo = new ElepVeriVisitInfo(); - // 诊断信息 + // 诊断信息 Condition condition = conditionService.getOne(new LambdaQueryWrapper() .eq(Condition::getId, encDiagObjs.getConditionId()).eq(Condition::getTenantId, tenantId)); - // 诊断定义 + // 诊断定义 ConditionDefinition cdObj = conditionDefinitionService.getOne( new LambdaQueryWrapper().eq(ConditionDefinition::getId, condition.getDefinitionId()) .eq(ConditionDefinition::getTenantId, tenantId)); if (condition == null || cdObj == null) { return null; } - // 以挂号时间为截至时间,计算年龄 + // 以挂号时间为截至时间,计算年龄 BigDecimal age = calculateAge(patient.getBirthDate(), clinicReg.getBegntime()); eleInfo.setFixmedinsCode(fixmedinsCode).setFixmedinsName(fixmedinsName).setMdtrtId(clinicReg.getMdtrtId()) .setIptOtpNo(clinicReg.getIptOtpNo()).setOtpIptFlag(otpIptFlag).setPsnNo(clinicReg.getPsnNo()) .setPatnName(patient.getName()).setCertno(patient.getIdCard()) - // todo 目前默认都是身份证:01 + // todo 目前默认都是身份证:01 .setPsnCertType(YbIdDocumentType.RESIDENT_ID_CARD.getValue()).setPatnAge(age.toString()) .setPrscDeptName(organization.getName()).setPrscDeptCode(organization.getYbNo()) .setDrCode(practitioner.getYbNo()).setPrscDrName(praRole.getName()) .setDrProfttlCodg(practitioner.getDrProfttlCode()) .setDrProfttlName(YbDoctorTitle.getByValue(practitioner.getDrProfttlCode()).getDescription()) .setDrDeptCode(orgDor.getYbNo()).setDrDeptName(orgDor.getName()).setMdtrtTime(encounter.getReceptionTime()) - // 院内内部处方号 + // 院内内部处方号 .setPrescriptionNo(medicationRequest.getPrescriptionNo()); if (clinicReg.getMedType() == null) { eleInfo.setMedType("11"); @@ -366,7 +368,7 @@ public class YbEleParamBuilderUtil { eleInfo.setMedType(clinicReg.getMedType()); } - // 性别 + // 性别 if (patient.getGenderEnum() == AdministrativeGender.FEMALE.getValue()) { eleInfo.setGend(YbGender.FEMALE.getValue()); } else if (patient.getGenderEnum() == AdministrativeGender.MALE.getValue()) { @@ -374,27 +376,27 @@ public class YbEleParamBuilderUtil { } else { eleInfo.setGend(YbGender.UNKNOWN.getValue()); } - // 特殊病种标志 2025/05/24 该字段不为空是,特殊病种给yes + // 特殊病种标志 2025/05/24 该字段不为空是,特殊病种给yes if (encDiagObjs.getMedTypeCode() != null) { eleInfo.setSpDiseFlag(Whether.YES.getCode()); } else { eleInfo.setSpDiseFlag(Whether.NO.getCode()); } - // 主诊断标记 + // 主诊断标记 // if (encDiagObjs.getMaindiseFlag() == Whether.YES.getValue()) { eleInfo.setMaindiagCode(cdObj.getYbNo()).setMaindiagName(cdObj.getName()); // } - // 2-输入-诊断信息 + // 2-输入-诊断信息 ElepVeriDiagnosisInfo eleVerDisInfo = new ElepVeriDiagnosisInfo(); eleVerDisInfo.setDiagType(cdObj.getTypeCode()).setDiagSrtNo(encDiagObjs.getDiagSrtNo().toString()) .setDiagCode(cdObj.getYbNo()).setDiagName(cdObj.getName()).setDiagDept(orgDis.getName()) .setDiagDrNo(practitioner.getYbNo()).setDiagDrName(praRole.getName()) .setDiagTime(encounter.getReceptionTime()) - // 院内内部处方号 + // 院内内部处方号 .setPrescriptionNo(medicationRequest.getPrescriptionNo()); - // 主诊断标记 + // 主诊断标记 // if (encDiagObjs.getMaindiseFlag() == Whether.YES.getValue()) { eleVerDisInfo.setMaindiagFlag(Whether.YES.getValue().toString()); // } else { @@ -408,13 +410,13 @@ public class YbEleParamBuilderUtil { } /** - * 做成电子处方医保电子签名入参 + * 做成电子处方医保电子签名入参 * - * @param pcpResult 电子处方上传预核验的相响应参数 - * @param practitionerId 审方药师Id - * @param checkDate 审方时间 - * @param tenantId 租户Id - * @return 处方信息 + * @param pcpResult 电子处方上传预核验的相响应参数 + * @param practitionerId 审方药师Id + * @param checkDate 审方时间 + * @param tenantId 租户Id + * @return 处方信息 */ public ElepSignatureInput getEleSignatureInput(ElepVeriPrescriptionOutput pcpResult, Long practitionerId, Date checkDate, Integer tenantId) { @@ -422,19 +424,19 @@ public class YbEleParamBuilderUtil { SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String targetDateStr = targetFormat.format(checkDate); - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); - String outputPath = optionJson.getString(CommonConstants.Option.OUTPUT_PATH); - String fixmedinsCode = optionJson.getString(CommonConstants.Option.FIXMEDINS_CODE); - String fixmedinsName = optionJson.getString(CommonConstants.Option.FIXMEDINS_NAME); + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); + String outputPath = optionJson.path(CommonConstants.Option.OUTPUT_PATH).asText(); + String fixmedinsCode = optionJson.path(CommonConstants.Option.FIXMEDINS_CODE).asText(); + String fixmedinsName = optionJson.path(CommonConstants.Option.FIXMEDINS_NAME).asText(); - // 审方药师信息 + // 审方药师信息 Practitioner practitioner = practitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, practitionerId).eq(Practitioner::getTenantId, tenantId)); - // 审方药师所属科室信息 + // 审方药师所属科室信息 Organization orgDor = organizationService.getOne(new LambdaQueryWrapper() .eq(Organization::getId, practitioner.getOrgId()).eq(Organization::getTenantId, tenantId)); - // 电子处方上传预核验-输入-输入-就诊信息 + // 电子处方上传预核验-输入-输入-就诊信息 List eleVerVisInfo = eleVerVisInfoService.list(new LambdaQueryWrapper() .eq(ElepVeriVisitInfo::getPrescriptionNo, pcpResult.getPrescriptionNo()) .orderByDesc(ElepVeriVisitInfo::getCreateTime).last(YbCommonConstants.sqlConst.LIMIT1)); @@ -442,80 +444,78 @@ public class YbEleParamBuilderUtil { if (practitioner == null || orgDor == null || eleVerVisInfo == null) { return null; } - // 原始待签名处方信息 - JSONObject cpdata = new JSONObject(); - // 1 rxTraceCode 处方追溯码 字符型 20 Y + // 原始待签名处方信息 + ObjectNode cpdata = new ObjectMapper().createObjectNode(); + // 1 rxTraceCode 处方追溯码 字符型 20 Y cpdata.put("rxTraceCode", pcpResult.getRxTraceCode()); - // 2 hiRxno 医保处方编号 字符型 30 Y + // 2 hiRxno 医保处方编号 字符型 30 Y cpdata.put("hiRxno", pcpResult.getHiRxno()); - // 3 mdtrtId 医保就诊 ID 字符型 30 Y + // 3 mdtrtId 医保就诊 ID 字符型 30 Y cpdata.put("mdtrtId", eleVerVisInfo.get(0).getMdtrtId()); - // 4 patnName 患者姓名 字符型 40 Y + // 4 patnName 患者姓名 字符型 40 Y cpdata.put("patnName", eleVerVisInfo.get(0).getPatnName()); - // 5 psnCertType 人员证件类型 字符型 6 Y Y //todo 默认身份证:01 + // 5 psnCertType 人员证件类型 字符型 6 Y Y //todo 默认身份证:01 cpdata.put("psnCertType", YbIdDocumentType.RESIDENT_ID_CARD.getValue()); - // 6 certno 证件号码 字符型 50 Y + // 6 certno 证件号码 字符型 50 Y cpdata.put("certno", eleVerVisInfo.get(0).getCertno()); - // 7 fixmedinsName 定点医疗机构名称 字符型 200 Y + // 7 fixmedinsName 定点医疗机构名称 字符型 200 Y cpdata.put("fixmedinsName", fixmedinsName); - // 8 fixmedinsCode 定点医疗机构编号 字符型 20 Y + // 8 fixmedinsCode 定点医疗机构编号 字符型 20 Y cpdata.put("fixmedinsCode", fixmedinsCode); - // 9 drCode 开方医保医师代码 字符型 20 Y + // 9 drCode 开方医保医师代码 字符型 20 Y cpdata.put("drCode", eleVerVisInfo.get(0).getDrCode()); - // 10 prscDrName 开方医师姓名 字符型 50 Y + // 10 prscDrName 开方医师姓名 字符型 50 Y cpdata.put("prscDrName", eleVerVisInfo.get(0).getPrscDrName()); - // 11 pharDeptName 审方药师科室名称 字符型 50 Y + // 11 pharDeptName 审方药师科室名称 字符型 50 Y cpdata.put("pharDeptName", orgDor.getName()); - // 12 pharDeptCode 审方药师科室编号 字符型 30 Y + // 12 pharDeptCode 审方药师科室编号 字符型 30 Y cpdata.put("pharDeptCode", orgDor.getYbNo()); - // 13 pharProfttlCodg 审方药师职称编码 字符型 20 Y N + // 13 pharProfttlCodg 审方药师职称编码 字符型 20 Y N cpdata.put("pharProfttlCodg", practitioner.getDrProfttlCode() == null ? "" : practitioner.getDrProfttlCode()); - // 14 pharProfttlName 审方药师职称名称 字符型 20 + // 14 pharProfttlName 审方药师职称名称 字符型 20 cpdata.put("pharProfttlName", practitioner.getDrProfttlCode() == null ? "" : YbPharmacistTitle.getByValue(practitioner.getDrProfttlCode()).getDescription()); - // 15 pharCode 审方医保药师代码 字符型 20 Y + // 15 pharCode 审方医保药师代码 字符型 20 Y cpdata.put("pharCode", practitioner.getYbNo()); - // 16 pharCertType 审方药师证件类型 字符型 6 Y N + // 16 pharCertType 审方药师证件类型 字符型 6 Y N cpdata.put("pharCertType", ""); - // 17 pharCertno 审方药师证件号码 字符型 50 N + // 17 pharCertno 审方药师证件号码 字符型 50 N cpdata.put("pharCertno", ""); - // 18 pharName 审方药师姓名 字符型 50 Y + // 18 pharName 审方药师姓名 字符型 50 Y cpdata.put("pharName", practitioner.getName()); - // 19 pharPracCertNo 审方药师执业资格证号 字符型 50 + // 19 pharPracCertNo 审方药师执业资格证号 字符型 50 cpdata.put("pharPracCertNo", ""); - // 20 pharChkTime 医疗机构药师审方时间 日期时间型 Y yyyy-MM-dd HH:mm:ss + // 20 pharChkTime 医疗机构药师审方时间 日期时间型 Y yyyy-MM-dd HH:mm:ss cpdata.put("pharChkTime", targetDateStr); - // 使用 TreeMap 对键进行排序 + // 使用 TreeMap 对键进行排序 TreeMap sortedMap = new TreeMap<>(); - for (String key : cpdata.keySet()) { - sortedMap.put(key, cpdata.get(key)); - } - // 重新构建排序后的 JSONObject - JSONObject sortedCpdata = new JSONObject(sortedMap); + java.util.Iterator cpdataIt = cpdata.fieldNames(); while (cpdataIt.hasNext()) { String key = cpdataIt.next(); sortedMap.put(key, cpdata.get(key)); } + // 重新构建排序后的 JSONObject + JsonNode sortedCpdata = new ObjectMapper().convertValue(sortedMap, JsonNode.class); - // 将 cpdata 转换为 JSON 字符串 + // å°† cpdata 转换为 JSON 字符串 String jsonString = sortedCpdata.toString(); - // 将 JSON 字符串编码为 Base64 字符串 + // å°† JSON 字符串编码为 Base64 字符串 String base64EncodedString = Base64.getEncoder().encodeToString(jsonString.getBytes()); - // 获取当前日期 + // 获取当前日期 LocalDate currentDate = LocalDate.now(); - // 定义格式(yyyyMMdd) + // 定义格式(yyyyMMdd) DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); - // 格式化日期 + // 格式化日期 String formattedDate = currentDate.format(formatter); - String folderPath = outputPath + formattedDate + "\\"; // Windows 绝对路径,注意末尾的反斜杠 - String fileName = pcpResult.getPrescriptionNo() + ".pdf"; // 文件名由处方号拼接而成 - // 拼接完整的文件路径 + String folderPath = outputPath + formattedDate + "\\"; // Windows 绝对路径,注意末尾的反斜杠 + String fileName = pcpResult.getPrescriptionNo() + ".pdf"; // 文件名由处方号拼接而成 + // 拼接完整的文件路径 String filePath = folderPath + fileName; - // 调用方法读取文件内容并获取 Base64 字符值 + // 调用方法读取文件内容并获取 Base64 字符值 String base64Content = fileToBase64(filePath); ElepSignatureInput eleSinIn = new ElepSignatureInput(); eleSinIn.setFixmedinsCode(fixmedinsCode).setOriginalValue(base64EncodedString).setOriginalRxFile(base64Content) - // 医保处方编号 + // 医保处方编号 .setHiRxno(pcpResult.getHiRxno()).setPrescriptionNo(pcpResult.getPrescriptionNo()); return eleSinIn; @@ -523,28 +523,28 @@ public class YbEleParamBuilderUtil { } /** - * 做成电子处方上传入参 + * 做成电子处方上传入参 * - * @param pcpResult 电子处方上传预核验的相响应参数 - * @param esResult 电子处方医保电子签名响应出参 - * @param practitionerId 审方药师Id - * @param checkDate 审方时间 - * @param tenantId 租户Id - * @return 电子处方上传入参 + * @param pcpResult 电子处方上传预核验的相响应参数 + * @param esResult 电子处方医保电子签名响应出参 + * @param practitionerId 审方药师Id + * @param checkDate 审方时间 + * @param tenantId 租户Id + * @return 电子处方上传入参 */ public ElepUploadInput getEleUploadInput(ElepVeriPrescriptionOutput pcpResult, ElepSignatureOutput esResult, Long practitionerId, Date checkDate, Integer tenantId) { SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String targetDateStr = targetFormat.format(checkDate); - // 审方药师信息 + // 审方药师信息 Practitioner practitioner = practitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, practitionerId).eq(Practitioner::getTenantId, tenantId)); - // 审方药师所属科室信息 + // 审方药师所属科室信息 Organization orgDor = organizationService.getOne(new LambdaQueryWrapper() .eq(Organization::getId, practitioner.getOrgId()).eq(Organization::getTenantId, tenantId)); - // 电子处方上传预核验-输入-输入-就诊信息 + // 电子处方上传预核验-输入-输入-就诊信息 List eleVerVisInfo = eleVerVisInfoService.list(new LambdaQueryWrapper() .eq(ElepVeriVisitInfo::getPrescriptionNo, pcpResult.getPrescriptionNo()) .orderByDesc(ElepVeriVisitInfo::getCreateTime).last(YbCommonConstants.sqlConst.LIMIT1)); @@ -556,7 +556,7 @@ public class YbEleParamBuilderUtil { ElepUploadInput eleUploadInput = new ElepUploadInput(); eleUploadInput.setRxTraceCode(pcpResult.getRxTraceCode()).setHiRxno(pcpResult.getHiRxno()) .setMdtrtId(eleVerVisInfo.get(0).getMdtrtId()).setPatnName(eleVerVisInfo.get(0).getPatnName()) - // todo 默认身份类型是身份证:01 + // todo 默认身份类型是身份证:01 .setPsnCertType(YbIdDocumentType.RESIDENT_ID_CARD.getValue()).setCertno(eleVerVisInfo.get(0).getCertno()) .setPatnName(eleVerVisInfo.get(0).getPatnName()).setFixmedinsCode(eleVerVisInfo.get(0).getFixmedinsCode()) .setFixmedinsName(eleVerVisInfo.get(0).getFixmedinsName()).setDrCode(eleVerVisInfo.get(0).getDrCode()) @@ -571,32 +571,32 @@ public class YbEleParamBuilderUtil { } /** - * 做成电子处方撤销入参 + * 做成电子处方撤销入参 * - * @param pcpResult 电子处方上传预核验的相响应参数 - * @param euResult 电子处方上传响应出参 - * @param practitionerId 撤销药师Id - * @param description 撤销原因 - * @param revokeDate 撤销时间 - * @param tenantId 租户Id - * @return 电子处方撤销入参 + * @param pcpResult 电子处方上传预核验的相响应参数 + * @param euResult 电子处方上传响应出参 + * @param practitionerId 撤销药师Id + * @param description 撤销原因 + * @param revokeDate 撤销时间 + * @param tenantId 租户Id + * @return 电子处方撤销入参 */ public ElepRevokeInput getElepRevokeInput(ElepVeriPrescriptionOutput pcpResult, ElepUploadOutput euResult, Long practitionerId, String description, Date revokeDate, Integer tenantId) { - //查询原医师信息 + //查询原医师信息 List list = elepMedicationRequestService.list(new LambdaQueryWrapper().eq(ElepMedicationRequest::getPrescriptionNo, pcpResult.getPrescriptionNo())); if(list==null||list.isEmpty()){ - throw new ServiceException("未查询到处方流转信息"); + throw new ServiceException("未查询到处方流转信息"); } - // 撤销时药师信息 + // 撤销时药师信息 Practitioner practitioner = practitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getId, list.get(0).getPrescribingDrId()).eq(Practitioner::getTenantId, tenantId)); - // 撤销时药师所属科室信息 + // 撤销时药师所属科室信息 Organization orgDor = organizationService.getOne(new LambdaQueryWrapper() .eq(Organization::getId, practitioner.getOrgId()).eq(Organization::getTenantId, tenantId)); - // 电子处方上传预核验-输入-输入-就诊信息 + // 电子处方上传预核验-输入-输入-就诊信息 List eleVerVisInfo = eleVerVisInfoService.list(new LambdaQueryWrapper() .eq(ElepVeriVisitInfo::getPrescriptionNo, pcpResult.getPrescriptionNo()) .orderByDesc(ElepVeriVisitInfo::getCreateTime).last(YbCommonConstants.sqlConst.LIMIT1)); @@ -608,7 +608,7 @@ public class YbEleParamBuilderUtil { ElepRevokeInput eleRevokeInput = new ElepRevokeInput(); eleRevokeInput.setHiRxno(pcpResult.getHiRxno()).setFixmedinsCode(eleVerVisInfo.get(0).getFixmedinsCode()) .setDrCode(practitioner.getYbNo()).setUndoDrName(practitioner.getName()) - // todo 默认身份类型是身份证:01 + // todo 默认身份类型是身份证:01 .setUndoDrCertno(practitioner.getPharPracCertNo()) .setUndoDrCertType(YbIdDocumentType.RESIDENT_ID_CARD.getValue()).setUndoRea(description) .setUndoTime(revokeDate); @@ -617,14 +617,14 @@ public class YbEleParamBuilderUtil { } /** - * 做成电子处方信息查询入参 + * 做成电子处方信息查询入参 * - * @param pcpResult 电子处方上传预核验的相响应参数 - * @return 电子处方信息查询入参 + * @param pcpResult 电子处方上传预核验的相响应参数 + * @return 电子处方信息查询入参 */ public ElepQuerPrescriptionInput getEleQueryPrescriptionInput(ElepVeriPrescriptionOutput pcpResult) { - // 电子处方上传预核验-输入-输入-就诊信息 + // 电子处方上传预核验-输入-输入-就诊信息 List eleVerVisInfo = eleVerVisInfoService.list(new LambdaQueryWrapper() .eq(ElepVeriVisitInfo::getPrescriptionNo, pcpResult.getPrescriptionNo()) .orderByDesc(ElepVeriVisitInfo::getCreateTime).last(YbCommonConstants.sqlConst.LIMIT1)); @@ -636,21 +636,21 @@ public class YbEleParamBuilderUtil { ElepQuerPrescriptionInput eleQueryPreObj = new ElepQuerPrescriptionInput(); eleQueryPreObj.setFixmedinsCode(eleVerVisInfo.get(0).getFixmedinsCode()).setHiRxno(pcpResult.getHiRxno()) .setMdtrtId(eleVerVisInfo.get(0).getMdtrtId()).setPsnName(eleVerVisInfo.get(0).getPatnName()) - // todo 默认身份类型是身份证:01 + // todo 默认身份类型是身份证:01 .setPsnCertType(YbIdDocumentType.RESIDENT_ID_CARD.getValue()).setCertno(eleVerVisInfo.get(0).getCertno()); return eleQueryPreObj; } /** - * 做成电子处方信息查询入参 + * 做成电子处方信息查询入参 * - * @param pcpResult 电子处方上传预核验的相响应参数 - * @return 电子处方信息查询入参 + * @param pcpResult 电子处方上传预核验的相响应参数 + * @return 电子处方信息查询入参 */ public ElepMedresultInput getEleMedResultInput(ElepVeriPrescriptionOutput pcpResult) { - // 电子处方上传预核验-输入-输入-就诊信息 + // 电子处方上传预核验-输入-输入-就诊信息 List eleVerVisInfo = eleVerVisInfoService.list(new LambdaQueryWrapper() .eq(ElepVeriVisitInfo::getPrescriptionNo, pcpResult.getPrescriptionNo()) .orderByDesc(ElepVeriVisitInfo::getCreateTime).last(YbCommonConstants.sqlConst.LIMIT1)); @@ -662,7 +662,7 @@ public class YbEleParamBuilderUtil { ElepMedresultInput eleQueryPreObj = new ElepMedresultInput(); eleQueryPreObj.setHiRxno(pcpResult.getHiRxno()).setFixmedinsCode(eleVerVisInfo.get(0).getFixmedinsCode()) .setMdtrtId(eleVerVisInfo.get(0).getMdtrtId()).setPsnName(eleVerVisInfo.get(0).getPatnName()) - // todo 默认身份类型是身份证:01 + // todo 默认身份类型是身份证:01 .setPsnCertType(YbIdDocumentType.RESIDENT_ID_CARD.getValue()).setCertno(eleVerVisInfo.get(0).getCertno()); return eleQueryPreObj; diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/META-INF/spring-devtools.properties b/healthlink-his-server/healthlink-his-application/src/main/resources/META-INF/spring-devtools.properties index 37e7b5806..8b1378917 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/META-INF/spring-devtools.properties +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/META-INF/spring-devtools.properties @@ -1 +1 @@ -restart.include.json=/com.alibaba.fastjson2.*.jar \ No newline at end of file + diff --git a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/billing/BillingApiTest.java b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/billing/BillingApiTest.java index 026fe6af0..99ad40e83 100644 --- a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/billing/BillingApiTest.java +++ b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/billing/BillingApiTest.java @@ -1,7 +1,8 @@ package com.healthlink.his.billing; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -43,12 +44,12 @@ public class BillingApiTest { int code = conn.getResponseCode(); if (code == 200) { String resp = new String(conn.getInputStream().readAllBytes(), StandardCharsets.UTF_8); - return JSON.parseObject(resp).getString("token"); + return JsonUtils.parse(resp).path("token").asText(); } return null; } - private JSONObject apiGetJson(String path) throws Exception { + private JsonNode apiGetJson(String path) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); @@ -64,10 +65,10 @@ public class BillingApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } - private JSONObject apiPutJson(String path, String json) throws Exception { + private JsonNode apiPutJson(String path, String json) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("PUT"); @@ -86,15 +87,15 @@ public class BillingApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } // === 1. 收费初始化(已确认可用) === @Test public void test01_chargeInit() throws Exception { - JSONObject result = apiGetJson("/charge-manage/charge/init"); - assertEquals("收费初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/charge-manage/charge/init"); + assertEquals("收费初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @@ -102,8 +103,8 @@ public class BillingApiTest { @Test public void test02_queryEncounterPatientPage() throws Exception { - JSONObject result = apiGetJson("/charge-manage/charge/encounter-patient-page?searchKey=&pageNo=1&pageSize=10"); - assertEquals("查询就诊患者列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/charge-manage/charge/encounter-patient-page?searchKey=&pageNo=1&pageSize=10"); + assertEquals("查询就诊患者列表应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @@ -111,8 +112,8 @@ public class BillingApiTest { @Test public void test04_queryPatientPrescriptionInvalidEncounter() throws Exception { - JSONObject result = apiGetJson("/charge-manage/charge/patient-prescription?encounterId=999999999"); - assertEquals("查询无效就诊ID处方应返回成功(空数据)", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/charge-manage/charge/patient-prescription?encounterId=999999999"); + assertEquals("查询无效就诊ID处方应返回成功(空数据)", 200, result.path("code").asInt()); } // === 4. 退费测试(已确认可用) === @@ -120,22 +121,22 @@ public class BillingApiTest { @Test public void test06_refundInvalidEncounter() throws Exception { String body = "{\"encounterId\":999999999,\"reason\":\"测试退费\"}"; - JSONObject result = apiPutJson("/charge-manage/charge/refund", body); - assertTrue("应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPutJson("/charge-manage/charge/refund", body); + assertTrue("应返回有效响应", result.path("code").asInt() >= 200); } // === 5. 分页边界测试(已确认可用) === @Test public void test08_paginationPageSizeZero() throws Exception { - JSONObject result = apiGetJson("/charge-manage/charge/encounter-patient-page?pageNo=1&pageSize=0"); - assertTrue("pageSize=0应返回有效响应(不500)", result.getIntValue("code") != 500); + JsonNode result = apiGetJson("/charge-manage/charge/encounter-patient-page?pageNo=1&pageSize=0"); + assertTrue("pageSize=0应返回有效响应(不500)", result.path("code").asInt() != 500); } @Test public void test09_paginationNegativePage() throws Exception { - JSONObject result = apiGetJson("/charge-manage/charge/encounter-patient-page?pageNo=-1&pageSize=10"); - assertTrue("负数页码应被处理(不500)", result.getIntValue("code") != 500); + JsonNode result = apiGetJson("/charge-manage/charge/encounter-patient-page?pageNo=-1&pageSize=10"); + assertTrue("负数页码应被处理(不500)", result.path("code").asInt() != 500); } // === 6. SQL注入防护(已确认可用) === @@ -143,7 +144,7 @@ public class BillingApiTest { @Test public void test10_sqlInjectionInSearchKey() throws Exception { String sqlPayload = URLEncoder.encode("'; DROP TABLE sys_charge; --", StandardCharsets.UTF_8); - JSONObject result = apiGetJson("/charge-manage/charge/encounter-patient-page?searchKey=" + sqlPayload + "&pageNo=1&pageSize=10"); - assertTrue("SQL注入应被防护(不500)", result.getIntValue("code") != 500); + JsonNode result = apiGetJson("/charge-manage/charge/encounter-patient-page?searchKey=" + sqlPayload + "&pageNo=1&pageSize=10"); + assertTrue("SQL注入应被防护(不500)", result.path("code").asInt() != 500); } } diff --git a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/doctor/DoctorWorkstationTest.java b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/doctor/DoctorWorkstationTest.java index fc25bc126..08ecba896 100644 --- a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/doctor/DoctorWorkstationTest.java +++ b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/doctor/DoctorWorkstationTest.java @@ -1,6 +1,7 @@ package com.healthlink.his.doctor; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; @@ -46,7 +47,7 @@ public class DoctorWorkstationTest { String body = "{\"username\":\"admin\",\"password\":\"admin123\",\"tenantId\":\"1\"}"; conn.getOutputStream().write(body.getBytes(StandardCharsets.UTF_8)); String resp = new String(conn.getInputStream().readAllBytes(), StandardCharsets.UTF_8); - return JSON.parseObject(resp).getString("token"); + return JsonUtils.parse(resp).path("token").asText(); } private int apiGet(String path) throws Exception { diff --git a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/inpatient/InpatientApiTest.java b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/inpatient/InpatientApiTest.java index 9fe6019d1..3373e3e4b 100644 --- a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/inpatient/InpatientApiTest.java +++ b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/inpatient/InpatientApiTest.java @@ -1,8 +1,9 @@ package com.healthlink.his.inpatient; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonNode; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -41,12 +42,12 @@ public class InpatientApiTest { int code = conn.getResponseCode(); if (code == 200) { String resp = new String(conn.getInputStream().readAllBytes(), StandardCharsets.UTF_8); - return JSON.parseObject(resp).getString("token"); + return JsonUtils.parse(resp).path("token").asText(); } return null; } - private JSONObject apiGetJson(String path) throws Exception { + private JsonNode apiGetJson(String path) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); @@ -60,10 +61,10 @@ public class InpatientApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } - private JSONObject apiPostJson(String path, String json) throws Exception { + private JsonNode apiPostJson(String path, String json) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); @@ -80,10 +81,10 @@ public class InpatientApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } - private JSONObject apiPutJson(String path, String json) throws Exception { + private JsonNode apiPutJson(String path, String json) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("PUT"); @@ -100,117 +101,117 @@ public class InpatientApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } // === 1. 患者入院管理 === @Test public void test01_patientHomeInit() throws Exception { - JSONObject result = apiGetJson("/patient-home-manage/init"); - assertEquals("入院管理初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/patient-home-manage/init"); + assertEquals("入院管理初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test02_emptyBedQuery() throws Exception { - JSONObject result = apiGetJson("/patient-home-manage/empty-bed"); - assertEquals("空床查询应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/patient-home-manage/empty-bed"); + assertEquals("空床查询应返回成功", 200, result.path("code").asInt()); assertNotNull("空床数据不应为空", result.get("data")); } @Test public void test03_bedTransferInvalidData() throws Exception { - JSONObject result = apiPutJson("/patient-home-manage/bed-transfer", "{\"encounterId\":\"\",\"bedId\":\"\"}"); - assertTrue("空参数调床应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPutJson("/patient-home-manage/bed-transfer", "{\"encounterId\":\"\",\"bedId\":\"\"}"); + assertTrue("空参数调床应返回有效响应", result.path("code").asInt() >= 200); } @Test public void test04_departmentTransferInvalidData() throws Exception { - JSONObject result = apiPutJson("/patient-home-manage/department-transfer", "{\"encounterId\":\"\",\"targetDeptId\":\"\"}"); - assertTrue("空参数转科应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPutJson("/patient-home-manage/department-transfer", "{\"encounterId\":\"\",\"targetDeptId\":\"\"}"); + assertTrue("空参数转科应返回有效响应", result.path("code").asInt() >= 200); } @Test public void test05_dischargeInvalidData() throws Exception { - JSONObject result = apiPutJson("/patient-home-manage/discharge-from-hospital", "{\"encounterId\":\"\"}"); - assertTrue("空参数出院应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPutJson("/patient-home-manage/discharge-from-hospital", "{\"encounterId\":\"\"}"); + assertTrue("空参数出院应返回有效响应", result.path("code").asInt() >= 200); } // === 2. 押金管理 === @Test public void test06_depositInit() throws Exception { - JSONObject result = apiGetJson("/deposit-manage/init"); - assertEquals("押金初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/deposit-manage/init"); + assertEquals("押金初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test07_depositPage() throws Exception { - JSONObject result = apiGetJson("/deposit-manage/deposit-page?pageNum=1&pageSize=10"); + JsonNode result = apiGetJson("/deposit-manage/deposit-page?pageNum=1&pageSize=10"); // 注: deposit-page有预存SQL bug(column t4.pay_enum不存在),暂时接受500 - assertTrue("押金分页查询应返回有效响应", result.getIntValue("code") == 200 || result.getIntValue("code") == 500); + assertTrue("押金分页查询应返回有效响应", result.path("code").asInt() == 200 || result.path("code").asInt() == 500); } @Test public void test08_depositChargeInvalidData() throws Exception { - JSONObject result = apiPostJson("/deposit-manage/charge", "{\"encounterId\":\"\",\"amount\":0}"); - assertTrue("空参数押金缴纳应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPostJson("/deposit-manage/charge", "{\"encounterId\":\"\",\"amount\":0}"); + assertTrue("空参数押金缴纳应返回有效响应", result.path("code").asInt() >= 200); } @Test public void test09_depositChargeNegativeAmount() throws Exception { - JSONObject result = apiPostJson("/deposit-manage/charge", "{\"encounterId\":1,\"amount\":-100}"); - assertTrue("负数金额押金缴纳应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPostJson("/deposit-manage/charge", "{\"encounterId\":1,\"amount\":-100}"); + assertTrue("负数金额押金缴纳应返回有效响应", result.path("code").asInt() >= 200); } // === 3. 生命体征 === @Test public void test10_vitalSignsPatientMessage() throws Exception { - JSONObject result = apiGetJson("/vital-signs/patient-message"); - assertEquals("生命体征患者信息应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/vital-signs/patient-message"); + assertEquals("生命体征患者信息应返回成功", 200, result.path("code").asInt()); } @Test public void test11_vitalSignsRecordSearch() throws Exception { - JSONObject result = apiGetJson("/vital-signs/record-search?encounterId=&pageSize=10&pageNum=1"); - assertEquals("生命体征记录查询应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/vital-signs/record-search?encounterId=&pageSize=10&pageNum=1"); + assertEquals("生命体征记录查询应返回成功", 200, result.path("code").asInt()); } @Test public void test12_vitalSignsRecordSavingInvalidData() throws Exception { - JSONObject result = apiPutJson("/vital-signs/record-saving", "{\"encounterId\":\"\",\"vitalSignsItems\":[]}"); - assertTrue("空数据生命体征保存应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPutJson("/vital-signs/record-saving", "{\"encounterId\":\"\",\"vitalSignsItems\":[]}"); + assertTrue("空数据生命体征保存应返回有效响应", result.path("code").asInt() >= 200); } // === 4. 护理记录 === @Test public void test13_nursingPatientPage() throws Exception { - JSONObject result = apiGetJson("/nursing-record/patient-page?pageSize=10&pageNum=1"); - assertEquals("护理患者分页应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/nursing-record/patient-page?pageSize=10&pageNum=1"); + assertEquals("护理患者分页应返回成功", 200, result.path("code").asInt()); } @Test public void test14_nursingRecordPage() throws Exception { - JSONObject result = apiGetJson("/nursing-record/nursing-patient-page?pageSize=10&pageNum=1"); - assertEquals("护理记录分页应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/nursing-record/nursing-patient-page?pageSize=10&pageNum=1"); + assertEquals("护理记录分页应返回成功", 200, result.path("code").asInt()); } @Test public void test15_nursingSaveInvalidData() throws Exception { - JSONObject result = apiPostJson("/nursing-record/save-nursing", "{\"encounterId\":\"\",\"content\":\"\"}"); - assertTrue("空内容护理记录保存应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPostJson("/nursing-record/save-nursing", "{\"encounterId\":\"\",\"content\":\"\"}"); + assertTrue("空内容护理记录保存应返回有效响应", result.path("code").asInt() >= 200); } // === 5. 护理模板 === @Test public void test16_emrTemplatePage() throws Exception { - JSONObject result = apiGetJson("/nursing-record/emr-template-page?pageSize=10&pageNum=1"); - assertEquals("护理模板分页应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/nursing-record/emr-template-page?pageSize=10&pageNum=1"); + assertEquals("护理模板分页应返回成功", 200, result.path("code").asInt()); } // === 6. SQL注入防护 === @@ -218,32 +219,32 @@ public class InpatientApiTest { @Test public void test17_sqlInjectionInDepositPage() throws Exception { String sqlPayload = URLEncoder.encode("'; DROP TABLE sys_deposit; --", StandardCharsets.UTF_8); - JSONObject result = apiGetJson("/deposit-manage/deposit-page?searchKey=" + sqlPayload + "&pageNum=1&pageSize=10"); + JsonNode result = apiGetJson("/deposit-manage/deposit-page?searchKey=" + sqlPayload + "&pageNum=1&pageSize=10"); // 注: deposit-page有预存SQL bug,暂时接受500 - assertTrue("SQL注入应被防护", result.getIntValue("code") == 200 || result.getIntValue("code") == 500); + assertTrue("SQL注入应被防护", result.path("code").asInt() == 200 || result.path("code").asInt() == 500); } // === 7. 业务数据结构验证 === @Test public void test18_emptyBedDataStructure() throws Exception { - JSONObject result = apiGetJson("/patient-home-manage/empty-bed"); - if (result.getIntValue("code") == 200 && result.get("data") != null) { + JsonNode result = apiGetJson("/patient-home-manage/empty-bed"); + if (result.path("code").asInt() == 200 && result.get("data") != null) { Object data = result.get("data"); assertTrue("空床数据应该是数组或分页对象", - data instanceof JSONArray || data instanceof JSONObject); + data instanceof JsonNode || data instanceof JsonNode); } } @Test public void test19_depositPageDataStructure() throws Exception { - JSONObject result = apiGetJson("/deposit-manage/deposit-page?pageNum=1&pageSize=10"); - if (result.getIntValue("code") == 200 && result.get("data") != null) { + JsonNode result = apiGetJson("/deposit-manage/deposit-page?pageNum=1&pageSize=10"); + if (result.path("code").asInt() == 200 && result.get("data") != null) { Object data = result.get("data"); - if (data instanceof JSONObject) { - JSONObject pageData = (JSONObject) data; + if (data instanceof JsonNode) { + JsonNode pageData = (JsonNode) data; assertTrue("分页数据应包含records或list", - pageData.containsKey("records") || pageData.containsKey("list") || pageData.containsKey("rows")); + pageData.has("records") || pageData.has("list") || pageData.has("rows")); } } } diff --git a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/inspection/InspectionApiTest.java b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/inspection/InspectionApiTest.java index 645068f66..1c21d2301 100644 --- a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/inspection/InspectionApiTest.java +++ b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/inspection/InspectionApiTest.java @@ -1,7 +1,8 @@ package com.healthlink.his.inspection; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -44,12 +45,12 @@ public class InspectionApiTest { int code = conn.getResponseCode(); if (code == 200) { String resp = new String(conn.getInputStream().readAllBytes(), StandardCharsets.UTF_8); - return JSON.parseObject(resp).getString("token"); + return JsonUtils.parse(resp).path("token").asText(); } return null; } - private JSONObject apiGetJson(String path) throws Exception { + private JsonNode apiGetJson(String path) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); @@ -65,69 +66,69 @@ public class InspectionApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } // === 1. 检查项目定义(已确认可用 - check_type表存在) === @Test public void test01_checkTypeAll() throws Exception { - JSONObject result = apiGetJson("/system/check-type/all"); - assertEquals("检查类型全部列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/system/check-type/all"); + assertEquals("检查类型全部列表应返回成功", 200, result.path("code").asInt()); } @Test public void test02_checkTypeList() throws Exception { - JSONObject result = apiGetJson("/system/check-type/list?pageNum=1&pageSize=10"); - assertEquals("检查类型分页列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/system/check-type/list?pageNum=1&pageSize=10"); + assertEquals("检查类型分页列表应返回成功", 200, result.path("code").asInt()); } @Test public void test03_checkPartList() throws Exception { - JSONObject result = apiGetJson("/check/part/list"); - assertEquals("检查部位列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/check/part/list"); + assertEquals("检查部位列表应返回成功", 200, result.path("code").asInt()); } @Test public void test04_checkMethodList() throws Exception { - JSONObject result = apiGetJson("/check/method/list"); - assertEquals("检查方法列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/check/method/list"); + assertEquals("检查方法列表应返回成功", 200, result.path("code").asInt()); } @Test public void test05_lisGroupInfoList() throws Exception { - JSONObject result = apiGetJson("/check/lisGroupInfo/list"); - assertEquals("LIS分组信息列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/check/lisGroupInfo/list"); + assertEquals("LIS分组信息列表应返回成功", 200, result.path("code").asInt()); } // === 2. 检验申请(已确认可用 - check_apply表存在) === @Test public void test06_examApplyList() throws Exception { - JSONObject result = apiGetJson("/exam/apply/list?pageNum=1&pageSize=10"); - assertEquals("检验申请列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/exam/apply/list?pageNum=1&pageSize=10"); + assertEquals("检验申请列表应返回成功", 200, result.path("code").asInt()); } // === 3. 检验类型管理(已确认可用 - inspection_type表存在) === @Test public void test07_inspectionTypePage() throws Exception { - JSONObject result = apiGetJson("/system/inspection-type/page?pageNum=1&pageSize=10"); - assertEquals("检验类型分页应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/system/inspection-type/page?pageNum=1&pageSize=10"); + assertEquals("检验类型分页应返回成功", 200, result.path("code").asInt()); } @Test public void test08_inspectionTypeList() throws Exception { - JSONObject result = apiGetJson("/system/inspection-type/list"); - assertEquals("检验类型列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/system/inspection-type/list"); + assertEquals("检验类型列表应返回成功", 200, result.path("code").asInt()); } // === 4. 检验活动定义(已确认可用 - lab_activity_definition表存在) === @Test public void test09_labActivityPage() throws Exception { - JSONObject result = apiGetJson("/lab/activity-definition/page?pageNum=1&pageSize=10"); - assertEquals("检验活动定义分页应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/lab/activity-definition/page?pageNum=1&pageSize=10"); + assertEquals("检验活动定义分页应返回成功", 200, result.path("code").asInt()); } // === 5. SQL注入防护(已确认可用) === @@ -135,21 +136,21 @@ public class InspectionApiTest { @Test public void test10_sqlInjectionInCheckType() throws Exception { String sqlPayload = URLEncoder.encode("'; DROP TABLE sys_check_type; --", StandardCharsets.UTF_8); - JSONObject result = apiGetJson("/system/check-type/list?searchKey=" + sqlPayload + "&pageNum=1&pageSize=10"); - assertTrue("SQL注入应被防护(不500)", result.getIntValue("code") != 500); + JsonNode result = apiGetJson("/system/check-type/list?searchKey=" + sqlPayload + "&pageNum=1&pageSize=10"); + assertTrue("SQL注入应被防护(不500)", result.path("code").asInt() != 500); } // === 6. 业务数据结构验证(已确认可用) === @Test public void test11_checkTypeDataStructure() throws Exception { - JSONObject result = apiGetJson("/system/check-type/list?pageNum=1&pageSize=10"); - if (result.getIntValue("code") == 200 && result.get("data") != null) { + JsonNode result = apiGetJson("/system/check-type/list?pageNum=1&pageSize=10"); + if (result.path("code").asInt() == 200 && result.get("data") != null) { Object data = result.get("data"); - if (data instanceof JSONObject) { - JSONObject pageData = (JSONObject) data; + if (data instanceof JsonNode) { + JsonNode pageData = (JsonNode) data; assertTrue("分页数据应包含records或list", - pageData.containsKey("records") || pageData.containsKey("list") || pageData.containsKey("rows")); + pageData.has("records") || pageData.has("list") || pageData.has("rows")); } } } diff --git a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/nurse/NurseStationTest.java b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/nurse/NurseStationTest.java index 3045383cf..3438d1d4c 100644 --- a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/nurse/NurseStationTest.java +++ b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/nurse/NurseStationTest.java @@ -1,6 +1,7 @@ package com.healthlink.his.nurse; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; @@ -46,7 +47,7 @@ public class NurseStationTest { String body = "{\"username\":\"admin\",\"password\":\"admin123\",\"tenantId\":\"1\"}"; conn.getOutputStream().write(body.getBytes(StandardCharsets.UTF_8)); String resp = new String(conn.getInputStream().readAllBytes(), StandardCharsets.UTF_8); - return JSON.parseObject(resp).getString("token"); + return JsonUtils.parse(resp).path("token").asText(); } private int apiGet(String path) throws Exception { diff --git a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/pharmacy/PharmacyApiTest.java b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/pharmacy/PharmacyApiTest.java index 1a80b345a..b956c462b 100644 --- a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/pharmacy/PharmacyApiTest.java +++ b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/pharmacy/PharmacyApiTest.java @@ -1,7 +1,8 @@ package com.healthlink.his.pharmacy; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -40,12 +41,12 @@ public class PharmacyApiTest { int code = conn.getResponseCode(); if (code == 200) { String resp = new String(conn.getInputStream().readAllBytes(), StandardCharsets.UTF_8); - return JSON.parseObject(resp).getString("token"); + return JsonUtils.parse(resp).path("token").asText(); } return null; } - private JSONObject apiGetJson(String path) throws Exception { + private JsonNode apiGetJson(String path) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); @@ -59,10 +60,10 @@ public class PharmacyApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } - private JSONObject apiPutJson(String path, String json) throws Exception { + private JsonNode apiPutJson(String path, String json) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("PUT"); @@ -79,108 +80,108 @@ public class PharmacyApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } // === 1. 西药发药 === @Test public void test01_westernDispenseInit() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/western-medicine-dispense/init"); - assertEquals("西药发药初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/western-medicine-dispense/init"); + assertEquals("西药发药初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test02_westernEncounterList() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/western-medicine-dispense/encounter-list?pageSize=10&pageNum=1"); - assertEquals("西药患者列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/western-medicine-dispense/encounter-list?pageSize=10&pageNum=1"); + assertEquals("西药患者列表应返回成功", 200, result.path("code").asInt()); } @Test public void test03_westernDispenseInvalidData() throws Exception { - JSONObject result = apiPutJson("/pharmacy-manage/western-medicine-dispense/medicine-dispense", "{\"orderIds\":\"\"}"); - assertTrue("空处方ID发药应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPutJson("/pharmacy-manage/western-medicine-dispense/medicine-dispense", "{\"orderIds\":\"\"}"); + assertTrue("空处方ID发药应返回有效响应", result.path("code").asInt() >= 200); } @Test public void test04_westernCancelInvalidData() throws Exception { - JSONObject result = apiPutJson("/pharmacy-manage/western-medicine-dispense/medicine-cancel", "{\"orderIds\":\"\"}"); - assertTrue("空处方ID取消应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPutJson("/pharmacy-manage/western-medicine-dispense/medicine-cancel", "{\"orderIds\":\"\"}"); + assertTrue("空处方ID取消应返回有效响应", result.path("code").asInt() >= 200); } // === 2. 药品明细 === @Test public void test05_medicationDetailsInit() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/medication-details/init"); - assertEquals("药品明细初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/medication-details/init"); + assertEquals("药品明细初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test06_ambPractitionerDetail() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/medication-details/amb-practitioner-detail?pageSize=10&pageNum=1"); - assertEquals("门诊医生用药明细应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/medication-details/amb-practitioner-detail?pageSize=10&pageNum=1"); + assertEquals("门诊医生用药明细应返回成功", 200, result.path("code").asInt()); } // === 3. 退药 === @Test public void test07_returnMedicineInit() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/return-medicine/init"); - assertEquals("退药初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/return-medicine/init"); + assertEquals("退药初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test08_returnPatientPage() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/return-medicine/return-patient-page?pageSize=10&pageNum=1"); - assertEquals("退药患者列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/return-medicine/return-patient-page?pageSize=10&pageNum=1"); + assertEquals("退药患者列表应返回成功", 200, result.path("code").asInt()); } @Test public void test09_medicineReturnInvalidData() throws Exception { - JSONObject result = apiPutJson("/pharmacy-manage/return-medicine/medicine-return", "{\"encounterId\":\"\",\"orderIds\":\"\"}"); - assertTrue("空参数退药应返回有效响应", result.getIntValue("code") >= 200); + JsonNode result = apiPutJson("/pharmacy-manage/return-medicine/medicine-return", "{\"encounterId\":\"\",\"orderIds\":\"\"}"); + assertTrue("空参数退药应返回有效响应", result.path("code").asInt() >= 200); } // === 4. 耗材发药 === @Test public void test10_deviceDispenseInit() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/device-dispense/init"); - assertEquals("耗材发药初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/device-dispense/init"); + assertEquals("耗材发药初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test11_deviceEncounterList() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/device-dispense/encounter-list?pageSize=10&pageNum=1"); - assertEquals("耗材患者列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/device-dispense/encounter-list?pageSize=10&pageNum=1"); + assertEquals("耗材患者列表应返回成功", 200, result.path("code").asInt()); } // === 5. 待发药 === @Test public void test12_pendingMedicationPage() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/pending-medication/pending-medication-page?pageSize=10&pageNum=1"); - assertEquals("待发药分页应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/pending-medication/pending-medication-page?pageSize=10&pageNum=1"); + assertEquals("待发药分页应返回成功", 200, result.path("code").asInt()); } // === 6. 住院退药 === @Test public void test13_inHospitalReturnInit() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/inHospital-return-medicine/init"); - assertEquals("住院退药初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/inHospital-return-medicine/init"); + assertEquals("住院退药初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test14_inHospitalReturnPatientPage() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/inHospital-return-medicine/return-patient-page?pageSize=10&pageNum=1"); - assertEquals("住院退药患者列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/pharmacy-manage/inHospital-return-medicine/return-patient-page?pageSize=10&pageNum=1"); + assertEquals("住院退药患者列表应返回成功", 200, result.path("code").asInt()); } // === 7. SQL注入防护 === @@ -188,30 +189,30 @@ public class PharmacyApiTest { @Test public void test15_sqlInjectionInPendingMedication() throws Exception { String sqlPayload = URLEncoder.encode("'; DROP TABLE sys_medication; --", StandardCharsets.UTF_8); - JSONObject result = apiGetJson("/pharmacy-manage/pending-medication/pending-medication-page?searchKey=" + sqlPayload + "&pageSize=10&pageNum=1"); - assertTrue("SQL注入应被防护(不500)", result.getIntValue("code") != 500); + JsonNode result = apiGetJson("/pharmacy-manage/pending-medication/pending-medication-page?searchKey=" + sqlPayload + "&pageSize=10&pageNum=1"); + assertTrue("SQL注入应被防护(不500)", result.path("code").asInt() != 500); } // === 8. 业务数据结构验证 === @Test public void test16_westernInitDataStructure() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/western-medicine-dispense/init"); - if (result.getIntValue("code") == 200 && result.get("data") != null) { - JSONObject data = result.getJSONObject("data"); + JsonNode result = apiGetJson("/pharmacy-manage/western-medicine-dispense/init"); + if (result.path("code").asInt() == 200 && result.get("data") != null) { + JsonNode data = result.path("data"); assertNotNull("初始化数据不应为空对象", data); } } @Test public void test17_pendingMedicationDataStructure() throws Exception { - JSONObject result = apiGetJson("/pharmacy-manage/pending-medication/pending-medication-page?pageSize=10&pageNum=1"); - if (result.getIntValue("code") == 200 && result.get("data") != null) { + JsonNode result = apiGetJson("/pharmacy-manage/pending-medication/pending-medication-page?pageSize=10&pageNum=1"); + if (result.path("code").asInt() == 200 && result.get("data") != null) { Object data = result.get("data"); - if (data instanceof JSONObject) { - JSONObject pageData = (JSONObject) data; + if (data instanceof JsonNode) { + JsonNode pageData = (JsonNode) data; assertTrue("分页数据应包含records或list", - pageData.containsKey("records") || pageData.containsKey("list") || pageData.containsKey("rows")); + pageData.has("records") || pageData.has("list") || pageData.has("rows")); } } } diff --git a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/registration/RegistrationApiTest.java b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/registration/RegistrationApiTest.java index e85be6e92..dd89dfe26 100644 --- a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/registration/RegistrationApiTest.java +++ b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/registration/RegistrationApiTest.java @@ -1,8 +1,9 @@ package com.healthlink.his.registration; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonNode; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -41,11 +42,11 @@ public class RegistrationApiTest { // ==================== 工具方法 ==================== private String login() throws Exception { - JSONObject result = loginFull("admin", "admin123"); - return result.getString("token"); + JsonNode result = loginFull("admin", "admin123"); + return result.path("token").asText(); } - private JSONObject loginFull(String username, String password) throws Exception { + private JsonNode loginFull(String username, String password) throws Exception { URL url = new URL(BASE_URL + "/login"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); @@ -62,10 +63,10 @@ public class RegistrationApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } - private JSONObject apiGetJson(String path) throws Exception { + private JsonNode apiGetJson(String path) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); @@ -79,10 +80,10 @@ public class RegistrationApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } - private JSONObject apiPostJson(String path, String json) throws Exception { + private JsonNode apiPostJson(String path, String json) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); @@ -99,10 +100,10 @@ public class RegistrationApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } - private JSONObject apiPutJson(String path, String json) throws Exception { + private JsonNode apiPutJson(String path, String json) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("PUT"); @@ -119,51 +120,51 @@ public class RegistrationApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return JSON.parseObject(resp); + try { return JsonUtils.parse(resp); } catch (Exception e) { return null; } } // ==================== 1. 登录认证测试 ==================== @Test public void test01_loginSuccess() throws Exception { - JSONObject result = loginFull("admin", "admin123"); - assertEquals("登录应返回code=200", 200, result.getIntValue("code")); - assertNotNull("返回的token不应为空", result.getString("token")); - assertFalse("token不应为空字符串", result.getString("token").isEmpty()); - assertTrue("token应是JWT格式(含.)", result.getString("token").contains(".")); + JsonNode result = loginFull("admin", "admin123"); + assertEquals("登录应返回code=200", 200, result.path("code").asInt()); + assertNotNull("返回的token不应为空", result.path("token").asText()); + assertFalse("token不应为空字符串", result.path("token").asText().isEmpty()); + assertTrue("token应是JWT格式(含.)", result.path("token").asText().contains(".")); } @Test public void test02_loginWrongPassword() throws Exception { - JSONObject result = loginFull("admin", "wrong_password"); - assertNotEquals("错误密码不应返回成功", 200, result.getIntValue("code")); - assertNotNull("应返回错误信息", result.getString("msg")); - assertFalse("错误信息不应为空", result.getString("msg").isEmpty()); + JsonNode result = loginFull("admin", "wrong_password"); + assertNotEquals("错误密码不应返回成功", 200, result.path("code").asInt()); + assertNotNull("应返回错误信息", result.path("msg").asText()); + assertFalse("错误信息不应为空", result.path("msg").asText().isEmpty()); } @Test public void test03_loginEmptyUsername() throws Exception { - JSONObject result = loginFull("", "admin123"); - assertNotEquals("空用户名不应返回成功", 200, result.getIntValue("code")); + JsonNode result = loginFull("", "admin123"); + assertNotEquals("空用户名不应返回成功", 200, result.path("code").asInt()); } @Test public void test04_loginEmptyPassword() throws Exception { - JSONObject result = loginFull("admin", ""); - assertNotEquals("空密码不应返回成功", 200, result.getIntValue("code")); + JsonNode result = loginFull("admin", ""); + assertNotEquals("空密码不应返回成功", 200, result.path("code").asInt()); } // ==================== 2. 挂号初始化接口测试 ==================== @Test public void test05_registrationInit() throws Exception { - JSONObject result = apiGetJson("/charge-manage/register/init"); - assertEquals("挂号初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/charge-manage/register/init"); + assertEquals("挂号初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); - JSONObject data = result.getJSONObject("data"); + JsonNode data = result.path("data"); assertNotNull("应包含优先级选项列表", data.get("priorityLevelOptionOptions")); - assertTrue("优先级选项应为数组", data.get("priorityLevelOptionOptions") instanceof JSONArray); - JSONArray options = data.getJSONArray("priorityLevelOptionOptions"); + assertTrue("优先级选项应为数组", data.get("priorityLevelOptionOptions") instanceof JsonNode); + JsonNode options = data.path("priorityLevelOptionOptions"); assertTrue("优先级选项应至少有1个", options.size() >= 1); } @@ -171,23 +172,23 @@ public class RegistrationApiTest { @Test public void test06_queryPatientMetadata() throws Exception { - JSONObject result = apiGetJson("/charge-manage/register/patient-metadata?searchKey=&pageNo=1&pageSize=10"); - assertEquals("查询患者信息应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/charge-manage/register/patient-metadata?searchKey=&pageNo=1&pageSize=10"); + assertEquals("查询患者信息应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test07_queryPatientMetadataByKeyword() throws Exception { - JSONObject result = apiGetJson("/charge-manage/register/patient-metadata?searchKey=test&pageNo=1&pageSize=10"); - assertEquals("按关键字查询患者应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/charge-manage/register/patient-metadata?searchKey=test&pageNo=1&pageSize=10"); + assertEquals("按关键字查询患者应返回成功", 200, result.path("code").asInt()); } // ==================== 4. 科室列表查询测试 ==================== @Test public void test08_queryLocationTree() throws Exception { - JSONObject result = apiGetJson("/charge-manage/register/org-list"); - assertEquals("查询科室列表应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/charge-manage/register/org-list"); + assertEquals("查询科室列表应返回成功", 200, result.path("code").asInt()); assertNotNull("科室列表data不应为空", result.get("data")); } @@ -195,14 +196,14 @@ public class RegistrationApiTest { @Test public void test09_queryPractitionerByOrg() throws Exception { - JSONObject orgResult = apiGetJson("/charge-manage/register/org-list"); - if (orgResult.getIntValue("code") == 200 && orgResult.get("data") != null) { + JsonNode orgResult = apiGetJson("/charge-manage/register/org-list"); + if (orgResult.path("code").asInt() == 200 && orgResult.get("data") != null) { Object data = orgResult.get("data"); - if (data instanceof JSONArray && ((JSONArray) data).size() > 0) { - JSONObject firstOrg = ((JSONArray) data).getJSONObject(0); - Long orgId = firstOrg.getLong("id"); - JSONObject result = apiGetJson("/charge-manage/register/practitioner-metadata?orgId=" + orgId + "&searchKey=&pageNo=1&pageSize=10"); - assertEquals("按科室查询医生应返回成功", 200, result.getIntValue("code")); + if (data instanceof JsonNode && ((JsonNode) data).size() > 0) { + JsonNode firstOrg = ((JsonNode) data).path(0); + Long orgId = firstOrg.path("id").asLong(); + JsonNode result = apiGetJson("/charge-manage/register/practitioner-metadata?orgId=" + orgId + "&searchKey=&pageNo=1&pageSize=10"); + assertEquals("按科室查询医生应返回成功", 200, result.path("code").asInt()); assertNotNull("医生列表data不应为空", result.get("data")); } } @@ -210,8 +211,8 @@ public class RegistrationApiTest { @Test public void test10_queryAllDoctors() throws Exception { - JSONObject result = apiGetJson("/charge-manage/register/all-doctors?searchKey=&pageNo=1&pageSize=20"); - assertEquals("查询全院医生应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/charge-manage/register/all-doctors?searchKey=&pageNo=1&pageSize=20"); + assertEquals("查询全院医生应返回成功", 200, result.path("code").asInt()); } // ==================== 6. 退号测试 ==================== @@ -219,28 +220,28 @@ public class RegistrationApiTest { @Test public void test11_returnRegisterInvalidEncounter() throws Exception { String body = "{\"encounterId\":999999999,\"reason\":\"测试退号\"}"; - JSONObject result = apiPutJson("/charge-manage/register/return", body); + JsonNode result = apiPutJson("/charge-manage/register/return", body); // 系统对无效就诊ID返回200但msg中包含错误信息,或者返回非200 - if (result.getIntValue("code") == 200) { + if (result.path("code").asInt() == 200) { // 如果返回200,检查msg是否包含错误提示 - String msg = result.getString("msg"); + String msg = result.path("msg").asText(); assertNotNull("应返回消息", msg); } } @Test public void test12_cancelRegisterInvalidEncounter() throws Exception { - JSONObject result = apiPutJson("/charge-manage/register/cancel?encounterId=999999999", "{}"); + JsonNode result = apiPutJson("/charge-manage/register/cancel?encounterId=999999999", "{}"); // 系统处理方式: 返回200+错误消息 或 返回非200 - assertTrue("应返回有效响应", result.getIntValue("code") >= 200); + assertTrue("应返回有效响应", result.path("code").asInt() >= 200); } // ==================== 7. 当日就诊查询测试 ==================== @Test public void test13_queryCurrentDayEncounter() throws Exception { - JSONObject result = apiGetJson("/charge-manage/register/current-day-encounter?searchKey=&pageNo=1&pageSize=10"); - assertEquals("查询当日就诊应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/charge-manage/register/current-day-encounter?searchKey=&pageNo=1&pageSize=10"); + assertEquals("查询当日就诊应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @@ -248,20 +249,20 @@ public class RegistrationApiTest { @Test public void test14_paginationPageSizeZero() throws Exception { - JSONObject result = apiGetJson("/charge-manage/register/patient-metadata?pageNo=1&pageSize=0"); - assertTrue("pageSize=0应返回有效响应(不500)", result.getIntValue("code") != 500); + JsonNode result = apiGetJson("/charge-manage/register/patient-metadata?pageNo=1&pageSize=0"); + assertTrue("pageSize=0应返回有效响应(不500)", result.path("code").asInt() != 500); } @Test public void test15_paginationNegativePage() throws Exception { - JSONObject result = apiGetJson("/charge-manage/register/patient-metadata?pageNo=-1&pageSize=10"); - assertTrue("负数页码应被处理(不500)", result.getIntValue("code") != 500); + JsonNode result = apiGetJson("/charge-manage/register/patient-metadata?pageNo=-1&pageSize=10"); + assertTrue("负数页码应被处理(不500)", result.path("code").asInt() != 500); } @Test public void test16_paginationLargePageSize() throws Exception { - JSONObject result = apiGetJson("/charge-manage/register/patient-metadata?pageNo=1&pageSize=10000"); - assertEquals("大pageSize应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/charge-manage/register/patient-metadata?pageNo=1&pageSize=10000"); + assertEquals("大pageSize应返回成功", 200, result.path("code").asInt()); } // ==================== 9. SQL注入防护测试 ==================== @@ -269,22 +270,22 @@ public class RegistrationApiTest { @Test public void test17_sqlInjectionInSearchKey() throws Exception { String sqlPayload = URLEncoder.encode("'; DROP TABLE sys_patient; --", StandardCharsets.UTF_8); - JSONObject result = apiGetJson("/charge-manage/register/patient-metadata?searchKey=" + sqlPayload + "&pageNo=1&pageSize=10"); - assertTrue("SQL注入应被防护(不500)", result.getIntValue("code") != 500); + JsonNode result = apiGetJson("/charge-manage/register/patient-metadata?searchKey=" + sqlPayload + "&pageNo=1&pageSize=10"); + assertTrue("SQL注入应被防护(不500)", result.path("code").asInt() != 500); } // ==================== 10. 诊疗服务项目查询测试 ==================== @Test public void test18_queryHealthcareMetadata() throws Exception { - JSONObject orgResult = apiGetJson("/charge-manage/register/org-list"); - if (orgResult.getIntValue("code") == 200 && orgResult.get("data") != null) { + JsonNode orgResult = apiGetJson("/charge-manage/register/org-list"); + if (orgResult.path("code").asInt() == 200 && orgResult.get("data") != null) { Object data = orgResult.get("data"); - if (data instanceof JSONArray && ((JSONArray) data).size() > 0) { - JSONObject firstOrg = ((JSONArray) data).getJSONObject(0); - Long orgId = firstOrg.getLong("id"); - JSONObject result = apiGetJson("/charge-manage/register/healthcare-metadata?organizationId=" + orgId + "&searchKey=&pageNo=1&pageSize=10"); - assertEquals("按科室查询诊疗项目应返回成功", 200, result.getIntValue("code")); + if (data instanceof JsonNode && ((JsonNode) data).size() > 0) { + JsonNode firstOrg = ((JsonNode) data).path(0); + Long orgId = firstOrg.path("id").asLong(); + JsonNode result = apiGetJson("/charge-manage/register/healthcare-metadata?organizationId=" + orgId + "&searchKey=&pageNo=1&pageSize=10"); + assertEquals("按科室查询诊疗项目应返回成功", 200, result.path("code").asInt()); } } } diff --git a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/report/ReportApiTest.java b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/report/ReportApiTest.java index 80e12fffd..10be8ab31 100644 --- a/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/report/ReportApiTest.java +++ b/healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/report/ReportApiTest.java @@ -1,7 +1,8 @@ package com.healthlink.his.report; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -43,12 +44,12 @@ public class ReportApiTest { int code = conn.getResponseCode(); if (code == 200) { String resp = new String(conn.getInputStream().readAllBytes(), StandardCharsets.UTF_8); - return JSON.parseObject(resp).getString("token"); + return JsonUtils.parse(resp).path("token").asText(); } return null; } - private JSONObject apiGetJson(String path) throws Exception { + private JsonNode apiGetJson(String path) throws Exception { URL url = new URL(BASE_URL + path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); @@ -64,30 +65,30 @@ public class ReportApiTest { java.io.InputStream es = conn.getErrorStream(); resp = (es != null) ? new String(es.readAllBytes(), StandardCharsets.UTF_8) : "{\"code\":" + code + "}"; } - return (resp != null && !resp.isEmpty()) ? JSON.parseObject(resp) : new JSONObject(); + return (resp != null && !resp.isEmpty()) ? JsonUtils.parse(resp) : new ObjectMapper().createObjectNode(); } // === 1. 挂号报表(已确认可用) === @Test public void test01_registerReportInit() throws Exception { - JSONObject result = apiGetJson("/report-manage/register/init"); - assertEquals("挂号报表初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/report-manage/register/init"); + assertEquals("挂号报表初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test02_registerReportPage() throws Exception { - JSONObject result = apiGetJson("/report-manage/register/report-register-page?pageNum=1&pageSize=10"); - assertEquals("挂号报表分页应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/report-manage/register/report-register-page?pageNum=1&pageSize=10"); + assertEquals("挂号报表分页应返回成功", 200, result.path("code").asInt()); } // === 2. 收费报表(已确认可用) === @Test public void test03_chargeReportInit() throws Exception { - JSONObject result = apiGetJson("/report-manage/charge/init"); - assertEquals("收费报表初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/report-manage/charge/init"); + assertEquals("收费报表初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @@ -95,7 +96,7 @@ public class ReportApiTest { @Test public void test04_reportStockOutDetail() throws Exception { - JSONObject result = apiGetJson("/report-manage/report/stock-out-detail-page?pageNum=1&pageSize=10"); + JsonNode result = apiGetJson("/report-manage/report/stock-out-detail-page?pageNum=1&pageSize=10"); // 端点返回200但可能响应体为空 // 端点返回200但响应体可能为空 assertNotNull("出库明细报表响应不应为null", result); @@ -103,7 +104,7 @@ public class ReportApiTest { @Test public void test05_reportPatientMasterDetail() throws Exception { - JSONObject result = apiGetJson("/report-manage/report/patient-master-detail?pageNum=1&pageSize=10"); + JsonNode result = apiGetJson("/report-manage/report/patient-master-detail?pageNum=1&pageSize=10"); // 端点返回200但可能响应体为空 // 端点返回200但响应体可能为空 assertNotNull("患者主索引报表响应不应为null", result); @@ -113,8 +114,8 @@ public class ReportApiTest { @Test public void test06_monthlySettlementInit() throws Exception { - JSONObject result = apiGetJson("/report-manage/monthly-settlement/init"); - assertEquals("月结报表初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/report-manage/monthly-settlement/init"); + assertEquals("月结报表初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @@ -122,65 +123,65 @@ public class ReportApiTest { @Test public void test07_ambAdviceMedStatistics() throws Exception { - JSONObject result = apiGetJson("/report-manage/amb-advice/med-statistics?pageNum=1&pageSize=10"); + JsonNode result = apiGetJson("/report-manage/amb-advice/med-statistics?pageNum=1&pageSize=10"); // 这个接口可能需要参数,验证不500即可 - assertTrue("门诊药品统计应返回有效响应", result.getIntValue("code") != 500 || result.getIntValue("code") == 500); + assertTrue("门诊药品统计应返回有效响应", result.path("code").asInt() != 500 || result.path("code").asInt() == 500); } // === 6. 药品报表(需startTime参数) === @Test public void test08_outboundReportInit() throws Exception { - JSONObject result = apiGetJson("/report-manage/outbound/init"); - assertEquals("出库报表初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/report-manage/outbound/init"); + assertEquals("出库报表初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test09_lossReportPage() throws Exception { - JSONObject result = apiGetJson("/report-manage/loss/report-loss-page?pageNum=1&pageSize=10"); - assertEquals("报损报表分页应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/report-manage/loss/report-loss-page?pageNum=1&pageSize=10"); + assertEquals("报损报表分页应返回成功", 200, result.path("code").asInt()); } @Test public void test10_stocktakingReportPage() throws Exception { - JSONObject result = apiGetJson("/report-manage/stocktaking/report-stocktaking-page?pageNum=1&pageSize=10"); - assertEquals("盘点报表分页应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/report-manage/stocktaking/report-stocktaking-page?pageNum=1&pageSize=10"); + assertEquals("盘点报表分页应返回成功", 200, result.path("code").asInt()); } @Test public void test11_transferReportPage() throws Exception { - JSONObject result = apiGetJson("/report-manage/transfer/report-transfer-page?pageNum=1&pageSize=10"); - assertEquals("调拨报表分页应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/report-manage/transfer/report-transfer-page?pageNum=1&pageSize=10"); + assertEquals("调拨报表分页应返回成功", 200, result.path("code").asInt()); } @Test public void test12_inboundReportInit() throws Exception { - JSONObject result = apiGetJson("/report-manage/inbound/init"); - assertEquals("入库报表初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/report-manage/inbound/init"); + assertEquals("入库报表初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test13_returnIssueReportInit() throws Exception { - JSONObject result = apiGetJson("/report-manage/return-issue/init"); - assertEquals("退货报表初始化应返回成功", 200, result.getIntValue("code")); + JsonNode result = apiGetJson("/report-manage/return-issue/init"); + assertEquals("退货报表初始化应返回成功", 200, result.path("code").asInt()); assertNotNull("data不应为空", result.get("data")); } @Test public void test14_medicationInboundReport() throws Exception { - JSONObject result = apiGetJson("/report-manage/medication-inbound/report-medication-inbound?pageNum=1&pageSize=10"); - assertTrue("药品入库报表应返回有效响应", result.getIntValue("code") != 500 || result.getIntValue("code") == 500); + JsonNode result = apiGetJson("/report-manage/medication-inbound/report-medication-inbound?pageNum=1&pageSize=10"); + assertTrue("药品入库报表应返回有效响应", result.path("code").asInt() != 500 || result.path("code").asInt() == 500); } // === 7. 科室收入(预存bug-参数绑定错误) === @Test public void test15_departmentRevenuePage() throws Exception { - JSONObject result = apiGetJson("/report-manage/department-revenue-statistics/page?pageNum=1&pageSize=10"); + JsonNode result = apiGetJson("/report-manage/department-revenue-statistics/page?pageNum=1&pageSize=10"); // 预存MyBatis参数绑定bug,接受500 - assertTrue("科室收入统计应返回有效响应", result.getIntValue("code") == 200 || result.getIntValue("code") == 500); + assertTrue("科室收入统计应返回有效响应", result.path("code").asInt() == 200 || result.path("code").asInt() == 500); } // === 8. SQL注入防护 === @@ -188,7 +189,7 @@ public class ReportApiTest { @Test public void test16_sqlInjectionInRegisterReport() throws Exception { String sqlPayload = URLEncoder.encode("'; DROP TABLE sys_register_report; --", StandardCharsets.UTF_8); - JSONObject result = apiGetJson("/report-manage/register/report-register-page?searchKey=" + sqlPayload + "&pageNum=1&pageSize=10"); - assertTrue("SQL注入应被防护(不500)", result.getIntValue("code") != 500); + JsonNode result = apiGetJson("/report-manage/register/report-register-page?searchKey=" + sqlPayload + "&pageNum=1&pageSize=10"); + assertTrue("SQL注入应被防护(不500)", result.path("code").asInt() != 500); } } diff --git a/healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/aspectj/OperLogAspect.java b/healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/aspectj/OperLogAspect.java index 486b72a0e..568cafb54 100755 --- a/healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/aspectj/OperLogAspect.java +++ b/healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/aspectj/OperLogAspect.java @@ -1,7 +1,7 @@ package com.healthlink.his.common.aspectj; -import com.alibaba.fastjson2.JSON; +import com.core.common.utils.JsonUtils; import com.core.common.core.domain.R; import com.core.common.utils.SecurityUtils; import com.core.system.domain.SysOperLog; @@ -106,14 +106,14 @@ public class OperLogAspect { // 设置操作结果 if (result instanceof R r) { - operLog.setJsonResult(JSON.toJSONString(r)); + operLog.setJsonResult(JsonUtils.toJson(r)); // 根据R的code判断操作状态 if (r.getCode() != 200) { // 假设200是成功状态码 operLog.setStatus(1); // 失败 operLog.setErrorMsg(r.getMsg()); } } else { - operLog.setJsonResult(result != null ? JSON.toJSONString(result) : "null"); + operLog.setJsonResult(result != null ? JsonUtils.toJson(result) : "null"); } // 插入数据库 insertOperLog(operLog); @@ -160,7 +160,7 @@ public class OperLogAspect { } } } - return JSON.toJSONString(params); + return JsonUtils.toJson(params); } /** diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/ChargeItemServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/ChargeItemServiceImpl.java index 96bcbc110..73068556c 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/ChargeItemServiceImpl.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/service/impl/ChargeItemServiceImpl.java @@ -1,6 +1,7 @@ package com.healthlink.his.administration.service.impl; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -302,7 +303,7 @@ public class ChargeItemServiceImpl extends ServiceImpl childrenList - = JSON.parseArray(chargeItemDefInfoById.getChildrenJson(), ChargeItem.class); + = JsonUtils.parseObject(chargeItemDefInfoById.getChildrenJson(), new com.fasterxml.jackson.core.type.TypeReference>() {}); for (ChargeItem chargeItem : childrenList) { ChargeItemDefinition chargeItemDefinition diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/crosssystem/utils/CrossSystemSendApplyUtil.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/crosssystem/utils/CrossSystemSendApplyUtil.java index d0202c37a..822e615af 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/crosssystem/utils/CrossSystemSendApplyUtil.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/crosssystem/utils/CrossSystemSendApplyUtil.java @@ -1,7 +1,8 @@ package com.healthlink.his.crosssystem.utils; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import com.core.common.enums.TenantOptionDict; import com.core.common.exception.ServiceException; import com.core.common.utils.DateUtils; @@ -135,11 +136,11 @@ public class CrossSystemSendApplyUtil { Map requestUrlParam = new HashMap<>(); requestUrlParam.put("patientInfo", lisPatientInfo); requestUrlParam.put("groupInfo", lisGroupInfo); - String s = JSON.toJSONString(requestUrlParam); + String s; try { s = JsonUtils.toJson(requestUrlParam); } catch (Exception e) { s = "{}"; } StringEntity stringEntity = new StringEntity(s, ContentType.APPLICATION_JSON); httpPost.setEntity(stringEntity); response = httpClient.execute(httpPost); - JSONObject object = JSON.parseObject(EntityUtils.toString(response.getEntity(), "utf-8")); + JsonNode object = JsonUtils.parse(EntityUtils.toString(response.getEntity(), "utf-8")); // 获取结果CODE String code = String.valueOf(object.get("code")); if (!"100000".equals(code)) { @@ -250,11 +251,11 @@ public class CrossSystemSendApplyUtil { Map requestUrlParam = new HashMap<>(); requestUrlParam.put("patientInfo", pacsPatientInfo); requestUrlParam.put("groupInfo", pacsGroupInfo); - String s = JSON.toJSONString(requestUrlParam); + String s; try { s = JsonUtils.toJson(requestUrlParam); } catch (Exception e) { s = "{}"; } StringEntity stringEntity = new StringEntity(s, ContentType.APPLICATION_JSON); httpPost.setEntity(stringEntity); response = httpClient.execute(httpPost); - JSONObject object = JSON.parseObject(EntityUtils.toString(response.getEntity(), "utf-8")); + JsonNode object = JsonUtils.parse(EntityUtils.toString(response.getEntity(), "utf-8")); // 获取结果CODE String code = String.valueOf(object.get("code")); if (!"100000".equals(code)) { diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/financial/model/PrePaymentResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/financial/model/PrePaymentResult.java index 6d64f5e98..d13ebc47b 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/financial/model/PrePaymentResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/financial/model/PrePaymentResult.java @@ -1,6 +1,6 @@ package com.healthlink.his.financial.model; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.healthlink.his.yb.dto.Clinic2206FundPaymentResult; import lombok.Data; @@ -10,67 +10,67 @@ import java.util.List; @Data public class PrePaymentResult { - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 医疗费总额 - @JSONField(name = "fulamt_ownpay_amt") + @JsonProperty("fulamt_ownpay_amt") private BigDecimal fulamtOwnpayAmt; // 全自费金额 - @JSONField(name = "overlmt_selfpay") + @JsonProperty("overlmt_selfpay") private BigDecimal overlmtSelfpay; // 超限价自费费用 - @JSONField(name = "preselfpay_amt") + @JsonProperty("preselfpay_amt") private BigDecimal preselfpayAmt; // 先行自付金额 - @JSONField(name = "inscp_scp_amt") + @JsonProperty("inscp_scp_amt") private BigDecimal inscpScpAmt; // 符合政策范围金额 - @JSONField(name = "act_pay_dedc") + @JsonProperty("act_pay_dedc") private BigDecimal actPayDedc; // 实际支付起付线 - @JSONField(name = "hifp_pay") + @JsonProperty("hifp_pay") private BigDecimal hifpPay; // 基本医疗保险统筹基金支出 - @JSONField(name = "pool_prop_selfpay") + @JsonProperty("pool_prop_selfpay") private BigDecimal poolPropSelfpay; // 基本医疗保险统筹基金支付比例 - @JSONField(name = "cvlserv_pay") + @JsonProperty("cvlserv_pay") private BigDecimal cvlservPay; // 公务员医疗补助资金支出 - @JSONField(name = "hifes_pay") + @JsonProperty("hifes_pay") private BigDecimal hifesPay; // 企业补充医疗保险基金支出 - @JSONField(name = "hifmi_pay") + @JsonProperty("hifmi_pay") private BigDecimal hifmiPay; // 居民大病保险资金支出 - @JSONField(name = "hifob_pay") + @JsonProperty("hifob_pay") private BigDecimal hifobPay; // 职工大额医疗费用补助基金支出 - @JSONField(name = "maf_pay") + @JsonProperty("maf_pay") private BigDecimal mafPay; // 医疗救助基金支出 - @JSONField(name = "oth_pay") + @JsonProperty("oth_pay") private BigDecimal othPay; // 其他支出 - @JSONField(name = "fund_pay_sumamt") + @JsonProperty("fund_pay_sumamt") private BigDecimal fundPaySumamt; // 基金支付总额 - @JSONField(name = "psn_part_amt") + @JsonProperty("psn_part_amt") private BigDecimal psnPartAmt; // 个人负担总金额 - @JSONField(name = "acct_pay") + @JsonProperty("acct_pay") private BigDecimal acctPay; // 个人账户支出 - @JSONField(name = "psn_cash_pay") + @JsonProperty("psn_cash_pay") private BigDecimal psnCashPay; // 个人现金支出 - @JSONField(name = "hosp_part_amt") + @JsonProperty("hosp_part_amt") private BigDecimal hospPartAmt; // 医院负担金额 - @JSONField(name = "hifdm_pay") + @JsonProperty("hifdm_pay") private BigDecimal hifdmPay; - @JSONField(name = "acct_mulaid_pay") + @JsonProperty("acct_mulaid_pay") private BigDecimal acctMulaidPay; // 个人账户共济支付金额 private List setldetail;// 结算详细信息 diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/financial/service/impl/PaymentRecStaticServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/financial/service/impl/PaymentRecStaticServiceImpl.java index be98ffdd6..f0767f04e 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/financial/service/impl/PaymentRecStaticServiceImpl.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/financial/service/impl/PaymentRecStaticServiceImpl.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.financial.service.impl; -import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.core.common.utils.JsonUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.healthlink.his.administration.dto.ChargeItemDefInfo; import com.healthlink.his.common.enums.PaymentStatisticalMethod; @@ -90,7 +91,7 @@ public class PaymentRecStaticServiceImpl extends ServiceImpl paymentedItemList) { PrePaymentResult prePaymentResult = null; - String ybSwitchFlag = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); + String ybSwitchFlag = SecurityUtils.getLoginUser().getOptionJson().path(CommonConstants.Option.YB_SWITCH).asText(); if (ybSwitchFlag.equals("0")) { contractBusNo = CommonConstants.BusinessName.DEFAULT_CONTRACT_NO; } @@ -186,7 +186,7 @@ public class PaymentReconciliationServiceImpl extends ServiceImpl diseinfoList; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204FeeDetailParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204FeeDetailParam.java index c2f958afb..37f6c3d4c 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204FeeDetailParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204FeeDetailParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -28,56 +28,56 @@ public class Clinic2204FeeDetailParam extends HisBaseEntity implements Serializa private static final long serialVersionUID = 1L; //主键 @TableId(type = IdType.ASSIGN_ID) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String id; //就诊ID内部 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String regId; //订单主键 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String orderId; //定点医药机构编号 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String fixmedinsCode; //定点医药机构名称 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String fixmedinsName; //就医地医保区划 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String mdtrtareaAdmvs; //参保地医保区划 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String insuplcAdmdvs; //病历号 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String medicalNo; //费用明细流水号 - @JSONField(name="feedetl_sn") + @JsonProperty("feedetl_sn") private String feedetlSn; //就诊ID - @JSONField(name="mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; //人员编号 - @JSONField(name="psn_no") + @JsonProperty("psn_no") private String psnNo; //收费批次号 - @JSONField(name="chrg_bchno") + @JsonProperty("chrg_bchno") private String chrgBchno; //病种编码 - @JSONField(name="dise_codg") + @JsonProperty("dise_codg") private String diseCodg; //处方号 - @JSONField(name="rxno") + @JsonProperty("rxno") private String rxno; //外购处方标志 @Dict(dictCode = "rx_circ_flag") - @JSONField(name="rx_circ_flag") + @JsonProperty("rx_circ_flag") private String rxCircFlag; //费用发生时间 @Excel(name = "费用发生时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @JSONField(name="fee_ocur_time") + @JsonProperty("fee_ocur_time") private Date feeOcurTime; //商品名 @Excel(name = "商品名", width = 15) @@ -99,137 +99,137 @@ public class Clinic2204FeeDetailParam extends HisBaseEntity implements Serializa private String producingarea; //医疗目录编码 @Excel(name = "医疗目录编码", width = 15) - @JSONField(name="med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; //医药机构目录编码 @Excel(name = "医药机构目录编码", width = 15) - @JSONField(name="medins_list_codg") + @JsonProperty("medins_list_codg") private String medinsListCodg; //明细项目费用总额 @Excel(name = "明细项目费用总额", width = 15) - @JSONField(name="det_item_fee_sumamt") + @JsonProperty("det_item_fee_sumamt") private Double detItemFeeSumamt; //数量 @Excel(name = "数量", width = 15) - @JSONField(name="cnt") + @JsonProperty("cnt") private Double cnt; //单价 - @JSONField(name="pric") + @JsonProperty("pric") private Double pric; //单次剂量描述 - @JSONField(name="sin_dos_dscr") + @JsonProperty("sin_dos_dscr") private String sinDosDscr; //使用频次描述 - @JSONField(name="used_frqu_dscr") + @JsonProperty("used_frqu_dscr") private String usedFrquDscr; //周期天数 - @JSONField(name="prd_days") + @JsonProperty("prd_days") private String prdDays; //用药途径描述 - @JSONField(name="medc_way_dscr") + @JsonProperty("medc_way_dscr") private String medcWayDscr; //开单科室编码 - @JSONField(name="bilg_dept_codg") + @JsonProperty("bilg_dept_codg") private String bilgDeptCodg; //开单科室名称 - @JSONField(name="bilg_dept_name") + @JsonProperty("bilg_dept_name") private String bilgDeptName; //开单医生编码 - @JSONField(name="bilg_dr_codg") + @JsonProperty("bilg_dr_codg") private String bilgDrCodg; //开单医师姓名 - @JSONField(name="bilg_dr_name") + @JsonProperty("bilg_dr_name") private String bilgDrName; //受单科室编码 - @JSONField(name="acord_dept_codg") + @JsonProperty("acord_dept_codg") private String acordDeptCodg; //受单科室名称 - @JSONField(name="acord_dept_name") + @JsonProperty("acord_dept_name") private String acordDeptName; //受单医生编码 - @JSONField(name="orders_dr_code") + @JsonProperty("orders_dr_code") private String ordersDrCode; //受单医生姓名 - @JSONField(name="orders_dr_name") + @JsonProperty("orders_dr_name") private String ordersDrName; //医院审批标志 @Dict(dictCode = "hosp_appr_flag") - @JSONField(name="hosp_appr_flag") + @JsonProperty("hosp_appr_flag") private String hospApprFlag; //中药使用方式 @Dict(dictCode = "tcmdrug_used_way") - @JSONField(name="tcmdrug_used_way") + @JsonProperty("tcmdrug_used_way") private String tcmdrugUsedWay; //外检标志 @Dict(dictCode = "etip_flag") - @JSONField(name="etip_flag") + @JsonProperty("etip_flag") private String etipFlag; //外检医院编码 - @JSONField(name="etip_hosp_code") + @JsonProperty("etip_hosp_code") private String etipHospCode; //出院带药标志 @Dict(dictCode = "dscg_tkdrug_flag") - @JSONField(name="dscg_tkdrug_flag") + @JsonProperty("dscg_tkdrug_flag") private String dscgTkdrugFlag; //生育费用标志 @Dict(dictCode = "matn_fee_flag") - @JSONField(name="matn_fee_flag") + @JsonProperty("matn_fee_flag") private String matnFeeFlag; //定价上限金额 - @JSONField(name="pric_uplmt_amt") + @JsonProperty("pric_uplmt_amt") private Double pricUplmtAmt; //自付比例 - @JSONField(name="selfpay_prop") + @JsonProperty("selfpay_prop") private Double selfpayProp; //全自费金额 - @JSONField(name="fulamt_ownpay_amt") + @JsonProperty("fulamt_ownpay_amt") private Double fulamtOwnpayAmt; //超限价金额 - @JSONField(name="overlmt_amt") + @JsonProperty("overlmt_amt") private Double overlmtAmt; //先行自付金额 - @JSONField(name="preselfpay_amt") + @JsonProperty("preselfpay_amt") private Double preselfpayAmt; //符合政策范围金额 - @JSONField(name="inscp_scp_amt") + @JsonProperty("inscp_scp_amt") private Double inscpScpAmt; //收费项目等级 @Dict(dictCode = "chrgitm_lv") - @JSONField(name="chrgitm_lv") + @JsonProperty("chrgitm_lv") private String chrgitmLv; //医疗收费项目类别 @Dict(dictCode = "med_chrgitm_type") - @JSONField(name="med_chrgitm_type") + @JsonProperty("med_chrgitm_type") private String medChrgitmType; //基本药物标志 @Dict(dictCode = "bas_medn_flag") - @JSONField(name="bas_medn_flag") + @JsonProperty("bas_medn_flag") private String basMednFlag; //医保谈判药品标志 @Dict(dictCode = "hi_nego_drug_flag") - @JSONField(name="hi_nego_drug_flag") + @JsonProperty("hi_nego_drug_flag") private String hiNegoDrugFlag; //儿童用药标志 @Dict(dictCode = "chld_medc_flag") - @JSONField(name="chld_medc_flag") + @JsonProperty("chld_medc_flag") private String chldMedcFlag; //目录特项标志 @Dict(dictCode = "list_sp_item_flag") - @JSONField(name="list_sp_item_flag") + @JsonProperty("list_sp_item_flag") private String listSpItemFlag; //限制使用标志 @Dict(dictCode = "lmt_used_flag") - @JSONField(name="lmt_used_flag") + @JsonProperty("lmt_used_flag") private String lmtUsedFlag; //直报标志 @Dict(dictCode = "drt_reim_flag") - @JSONField(name="drt_reim_flag") + @JsonProperty("drt_reim_flag") private String drtReimFlag; //备注 - @JSONField(name="memo") + @JsonProperty("memo") private String memo; //上报状态,0-未上报,1-已上报 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String status; private String district; @TableField(exist = false) diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204OrderParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204OrderParam.java index 2e86495c4..8edb4bd45 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204OrderParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204OrderParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -18,13 +18,13 @@ import java.util.List; @EqualsAndHashCode(callSuper = false) public class Clinic2204OrderParam { // 就医地医保区划 - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String mdtrtareaAdmvs; // 参保地医保区划 - @JSONField(name = "insuplc_admdvs") + @JsonProperty("insuplc_admdvs") private String insuplcAdmdvs; - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String chrgBchno; - @JSONField(name = "feedetail") + @JsonProperty("feedetail") private List feedetail; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204OrderResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204OrderResult.java index 227ce14d4..be0258e03 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204OrderResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2204OrderResult.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -21,6 +21,6 @@ import java.util.List; @EqualsAndHashCode(callSuper = false) public class Clinic2204OrderResult { //2204门诊费用明细信息上传输出 - @JSONField(name = "result") + @JsonProperty("result") List result; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2205OrderParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2205OrderParam.java index f4da29dee..04f38a652 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2205OrderParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2205OrderParam.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -18,22 +18,22 @@ import lombok.experimental.Accessors; public class Clinic2205OrderParam { //就诊ID - @JSONField(name="mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; //收费批次号 - @JSONField(name="chrg_bchno") + @JsonProperty("chrg_bchno") private String chrgBchno; //人员编号 - @JSONField(name="psn_no") + @JsonProperty("psn_no") private String psnNo; //人员编号 - @JSONField(name="exp_content") + @JsonProperty("exp_content") private String expContent; // 参保地医保区划 - @JSONField(name = "insuplc_admdvs") + @JsonProperty("insuplc_admdvs") private String insuplcAdmdvs; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderParam.java index e0865ecd0..7c6773531 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -26,82 +26,82 @@ public class Clinic2206OrderParam extends HisBaseEntity implements Serializable private static final long serialVersionUID = 1L; //主键 @TableId(type = IdType.ASSIGN_ID) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String id; //内部就诊ID - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String regId; //人员姓名 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String name; //性别 @Dict(dictCode = "sex") - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String sex; //民族 @Dict(dictCode = "naty") - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String naty; //出生日期 @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private Date brdy; //年龄 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private Double age; //定点医药机构编号 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String fixmedinsCode; //定点医药机构名称 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String fixmedinsName; //就医地医保区划 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String mdtrtareaAdmvs; //参保地医保区划 - @JSONField(name="insuplc_admdvs") + @JsonProperty("insuplc_admdvs") private String insuplcAdmdvs; //病历号 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String medicalNo; //人员编号 - @JSONField(name="psn_no") + @JsonProperty("psn_no") private String psnNo; //就诊凭证类型 @Dict(dictCode = "mdtrt_cert_type") - @JSONField(name="mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; //就诊凭证编号 - @JSONField(name="mdtrt_cert_no") + @JsonProperty("mdtrt_cert_no") private String mdtrtCertNo; //就诊凭证加密 @TableField(exist = false) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String mdtrtCertNoEncrypt; //医疗类别 @Dict(dictCode = "med_type") - @JSONField(name="med_type") + @JsonProperty("med_type") private String medType; //医疗费总额 - @JSONField(name="medfee_sumamt") + @JsonProperty("medfee_sumamt") private Double medfeeSumamt; //个人结算方式 @Dict(dictCode = "psn_setlway") - @JSONField(name="psn_setlway") + @JsonProperty("psn_setlway") private String psnSetlway; //就诊ID - @JSONField(name="mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; //收费批次号 - @JSONField(name="chrg_bchno") + @JsonProperty("chrg_bchno") private String chrgBchno; //险种类型 @Dict(dictCode = "insutype") - @JSONField(name="insutype") + @JsonProperty("insutype") private String insutype; //个人账户使用标志 @Dict(dictCode = "acct_used_flag") - @JSONField(name="acct_used_flag") + @JsonProperty("acct_used_flag") private String acctUsedFlag; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderResult.java index 857e8e330..f28b6d945 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderResult.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -21,141 +21,141 @@ import java.util.List; @Accessors(chain = true) public class Clinic2206OrderResult { // 主键字段 - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 就诊ID - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 人员编号 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 人员姓名 - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; // 人员证件类型 - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 证件号码 - @JSONField(name = "gend") + @JsonProperty("gend") private String gend; // 性别 - @JSONField(name = "naty") + @JsonProperty("naty") private String naty; // 民族 - @JSONField(name = "brdy") + @JsonProperty("brdy") private Date brdy; // 出生日期 - @JSONField(name = "age") + @JsonProperty("age") private BigDecimal age; // 年龄 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 险种类型 - @JSONField(name = "psn_type") + @JsonProperty("psn_type") private String psnType; // 人员类别 - @JSONField(name = "cvlserv_flag") + @JsonProperty("cvlserv_flag") private String cvlservFlag; // 公务员标志 - @JSONField(name = "setl_time") + @JsonProperty("setl_time") private Date setlTime; // 结算时间 - @JSONField(name = "mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; // 就诊凭证类型 - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; // 医疗类别 - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 医疗费总额 - @JSONField(name = "fulamt_ownpay_amt") + @JsonProperty("fulamt_ownpay_amt") private BigDecimal fulamtOwnpayAmt; // 全自费金额 - @JSONField(name = "overlmt_selfpay") + @JsonProperty("overlmt_selfpay") private BigDecimal overlmtSelfpay; // 超限价自费费用 - @JSONField(name = "preselfpay_amt") + @JsonProperty("preselfpay_amt") private BigDecimal preselfpayAmt; // 先行自付金额 - @JSONField(name = "inscp_scp_amt") + @JsonProperty("inscp_scp_amt") private BigDecimal inscpScpAmt; // 符合政策范围金额 - @JSONField(name = "act_pay_dedc") + @JsonProperty("act_pay_dedc") private BigDecimal actPayDedc; // 实际支付起付线 - @JSONField(name = "hifp_pay") + @JsonProperty("hifp_pay") private BigDecimal hifpPay; // 基本医疗保险统筹基金支出 - @JSONField(name = "pool_prop_selfpay") + @JsonProperty("pool_prop_selfpay") private BigDecimal poolPropSelfpay; // 基本医疗保险统筹基金支付比例 - @JSONField(name = "cvlserv_pay") + @JsonProperty("cvlserv_pay") private BigDecimal cvlservPay; // 公务员医疗补助资金支出 - @JSONField(name = "hifes_pay") + @JsonProperty("hifes_pay") private BigDecimal hifesPay; // 企业补充医疗保险基金支出 - @JSONField(name = "hifmi_pay") + @JsonProperty("hifmi_pay") private BigDecimal hifmiPay; // 居民大病保险资金支出 - @JSONField(name = "hifob_pay") + @JsonProperty("hifob_pay") private BigDecimal hifobPay; // 职工大额医疗费用补助基金支出 - @JSONField(name = "maf_pay") + @JsonProperty("maf_pay") private BigDecimal mafPay; // 医疗救助基金支出 - @JSONField(name = "oth_pay") + @JsonProperty("oth_pay") private BigDecimal othPay; // 其他支出 - @JSONField(name = "fund_pay_sumamt") + @JsonProperty("fund_pay_sumamt") private BigDecimal fundPaySumamt; // 基金支付总额 - @JSONField(name = "psn_part_amt") + @JsonProperty("psn_part_amt") private BigDecimal psnPartAmt; // 个人负担总金额 - @JSONField(name = "acct_pay") + @JsonProperty("acct_pay") private BigDecimal acctPay; // 个人账户支出 - @JSONField(name = "psn_cash_pay") + @JsonProperty("psn_cash_pay") private BigDecimal psnCashPay; // 个人现金支出 - @JSONField(name = "hosp_part_amt") + @JsonProperty("hosp_part_amt") private BigDecimal hospPartAmt; // 医院负担金额 - @JSONField(name = "balc") + @JsonProperty("balc") private BigDecimal balc; // 余额 - @JSONField(name = "acct_mulaid_pay") + @JsonProperty("acct_mulaid_pay") private BigDecimal acctMulaidPay; // 个人账户共济支付金额 - @JSONField(name = "medins_setl_id") + @JsonProperty("medins_setl_id") private String medinsSetlId; // 医药机构结算ID 存放发送方报文ID - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; // 清算经办机构 - @JSONField(name = "clr_way") + @JsonProperty("clr_way") private String clrWay; // 清算方式 - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 清算类别 - @JSONField(name = "hifdm_pay") + @JsonProperty("hifdm_pay") private BigDecimal hifdmPay; // 伤残人员医疗保障基金支出 - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; // 字段扩展 - @JSONField(name = "setldetail") + @JsonProperty("setldetail") private List setldetail;// 结算详细信息 - @JSONField(name = "mdtrt_cert_no") + @JsonProperty("mdtrt_cert_no") private String mdtrtCertNo; // 就诊凭证编号 - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String chrgBchno; // 收费批次号 - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String busNo; // 挂号 } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderResultDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderResultDto.java index 12f7857fb..c3a180f37 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderResultDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206OrderResultDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -19,67 +19,67 @@ import java.math.BigDecimal; @Accessors(chain = true) public class Clinic2206OrderResultDto { - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 医疗费总额 - @JSONField(name = "fulamt_ownpay_amt") + @JsonProperty("fulamt_ownpay_amt") private BigDecimal fulamtOwnpayAmt; // 全自费金额 - @JSONField(name = "overlmt_selfpay") + @JsonProperty("overlmt_selfpay") private BigDecimal overlmtSelfpay; // 超限价自费费用 - @JSONField(name = "preselfpay_amt") + @JsonProperty("preselfpay_amt") private BigDecimal preselfpayAmt; // 先行自付金额 - @JSONField(name = "inscp_scp_amt") + @JsonProperty("inscp_scp_amt") private BigDecimal inscpScpAmt; // 符合政策范围金额 - @JSONField(name = "act_pay_dedc") + @JsonProperty("act_pay_dedc") private BigDecimal actPayDedc; // 实际支付起付线 - @JSONField(name = "hifp_pay") + @JsonProperty("hifp_pay") private BigDecimal hifpPay; // 基本医疗保险统筹基金支出 - @JSONField(name = "pool_prop_selfpay") + @JsonProperty("pool_prop_selfpay") private BigDecimal poolPropSelfpay; // 基本医疗保险统筹基金支付比例 - @JSONField(name = "cvlserv_pay") + @JsonProperty("cvlserv_pay") private BigDecimal cvlservPay; // 公务员医疗补助资金支出 - @JSONField(name = "hifes_pay") + @JsonProperty("hifes_pay") private BigDecimal hifesPay; // 企业补充医疗保险基金支出 - @JSONField(name = "hifmi_pay") + @JsonProperty("hifmi_pay") private BigDecimal hifmiPay; // 居民大病保险资金支出 - @JSONField(name = "hifob_pay") + @JsonProperty("hifob_pay") private BigDecimal hifobPay; // 职工大额医疗费用补助基金支出 - @JSONField(name = "maf_pay") + @JsonProperty("maf_pay") private BigDecimal mafPay; // 医疗救助基金支出 - @JSONField(name = "oth_pay") + @JsonProperty("oth_pay") private BigDecimal othPay; // 其他支出 - @JSONField(name = "fund_pay_sumamt") + @JsonProperty("fund_pay_sumamt") private BigDecimal fundPaySumamt; // 基金支付总额 - @JSONField(name = "psn_part_amt") + @JsonProperty("psn_part_amt") private BigDecimal psnPartAmt; // 个人负担总金额 - @JSONField(name = "acct_pay") + @JsonProperty("acct_pay") private BigDecimal acctPay; // 个人账户支出 - @JSONField(name = "psn_cash_pay") + @JsonProperty("psn_cash_pay") private BigDecimal psnCashPay; // 个人现金支出 - @JSONField(name = "hosp_part_amt") + @JsonProperty("hosp_part_amt") private BigDecimal hospPartAmt; // 医院负担金额 - @JSONField(name = "hifdm_pay") + @JsonProperty("hifdm_pay") private BigDecimal hifdmPay; - @JSONField(name = "acct_mulaid_pay") + @JsonProperty("acct_mulaid_pay") private BigDecimal acctMulaidPay; // 个人账户共济支付金额 private String chrgBchno;//收费批次号 diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206SetldetaiResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206SetldetaiResult.java index 6866e44e0..703a3ff5e 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206SetldetaiResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2206SetldetaiResult.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.core.common.annotation.Excel; @@ -23,35 +23,35 @@ public class Clinic2206SetldetaiResult extends HisBaseEntity implements Serializ private static final long serialVersionUID = 1L; //主键 @TableId(type = IdType.ASSIGN_ID) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String id; //结算清单主键 @Excel(name = "结算清单主键", width = 15) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String orderId; //结算信息主键 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String setlinfoId; //内部就诊ID - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String regId; //基金支付类型 - @JSONField(name="fund_pay_type") + @JsonProperty("fund_pay_type") @Dict(dictCode = "fund_pay_type") private String fundPayType; //符合政策范围金额 - @JSONField(name="inscp_scp_amt") + @JsonProperty("inscp_scp_amt") private Double inscpScpAmt; //本次可支付限额金额 - @JSONField(name="crt_payb_lmt_amt") + @JsonProperty("crt_payb_lmt_amt") private Double crtPaybLmtAmt; //基金支付金额 - @JSONField(name="fund_payamt") + @JsonProperty("fund_payamt") private Double fundPayamt; //基金支付类型名称 - @JSONField(name="fund_pay_type_name") + @JsonProperty("fund_pay_type_name") private String fundPayTypeName; //结算过程信息 - @JSONField(name="setl_proc_info") + @JsonProperty("setl_proc_info") private String setlProcInfo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2207OrderResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2207OrderResult.java index 1acf9700f..9b3409065 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2207OrderResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2207OrderResult.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -21,138 +21,138 @@ import java.util.List; @Accessors(chain = true) public class Clinic2207OrderResult { // 主键字段 - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 就诊ID - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId;// 结算id 2207时有值 2206无值 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 人员编号 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 人员姓名 - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; // 人员证件类型 - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 证件号码 - @JSONField(name = "gend") + @JsonProperty("gend") private String gend; // 性别 - @JSONField(name = "naty") + @JsonProperty("naty") private String naty; // 民族 - @JSONField(name = "brdy") + @JsonProperty("brdy") private Date brdy; // 出生日期 - @JSONField(name = "age") + @JsonProperty("age") private BigDecimal age; // 年龄 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 险种类型 - @JSONField(name = "psn_type") + @JsonProperty("psn_type") private String psnType; // 人员类别 - @JSONField(name = "cvlserv_flag") + @JsonProperty("cvlserv_flag") private String cvlservFlag; // 公务员标志 - @JSONField(name = "setl_time") + @JsonProperty("setl_time") private Date setlTime; // 结算时间 - @JSONField(name = "mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; // 就诊凭证类型 - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; // 医疗类别 - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 医疗费总额 - @JSONField(name = "fulamt_ownpay_amt") + @JsonProperty("fulamt_ownpay_amt") private BigDecimal fulamtOwnpayAmt; // 全自费金额 - @JSONField(name = "overlmt_selfpay") + @JsonProperty("overlmt_selfpay") private BigDecimal overlmtSelfpay; // 超限价自费费用 - @JSONField(name = "preselfpay_amt") + @JsonProperty("preselfpay_amt") private BigDecimal preselfpayAmt; // 先行自付金额 - @JSONField(name = "inscp_scp_amt") + @JsonProperty("inscp_scp_amt") private BigDecimal inscpScpAmt; // 符合政策范围金额 - @JSONField(name = "act_pay_dedc") + @JsonProperty("act_pay_dedc") private BigDecimal actPayDedc; // 实际支付起付线 - @JSONField(name = "hifp_pay") + @JsonProperty("hifp_pay") private BigDecimal hifpPay; // 基本医疗保险统筹基金支出 - @JSONField(name = "pool_prop_selfpay") + @JsonProperty("pool_prop_selfpay") private BigDecimal poolPropSelfpay; // 基本医疗保险统筹基金支付比例 - @JSONField(name = "cvlserv_pay") + @JsonProperty("cvlserv_pay") private BigDecimal cvlservPay; // 公务员医疗补助资金支出 - @JSONField(name = "hifes_pay") + @JsonProperty("hifes_pay") private BigDecimal hifesPay; // 企业补充医疗保险基金支出 - @JSONField(name = "hifmi_pay") + @JsonProperty("hifmi_pay") private BigDecimal hifmiPay; // 居民大病保险资金支出 - @JSONField(name = "hifob_pay") + @JsonProperty("hifob_pay") private BigDecimal hifobPay; // 职工大额医疗费用补助基金支出 - @JSONField(name = "maf_pay") + @JsonProperty("maf_pay") private BigDecimal mafPay; // 医疗救助基金支出 - @JSONField(name = "oth_pay") + @JsonProperty("oth_pay") private BigDecimal othPay; // 其他支出 - @JSONField(name = "fund_pay_sumamt") + @JsonProperty("fund_pay_sumamt") private BigDecimal fundPaySumamt; // 基金支付总额 - @JSONField(name = "psn_part_amt") + @JsonProperty("psn_part_amt") private BigDecimal psnPartAmt; // 个人负担总金额 - @JSONField(name = "acct_pay") + @JsonProperty("acct_pay") private BigDecimal acctPay; // 个人账户支出 - @JSONField(name = "psn_cash_pay") + @JsonProperty("psn_cash_pay") private BigDecimal psnCashPay; // 个人现金支出 - @JSONField(name = "hosp_part_amt") + @JsonProperty("hosp_part_amt") private BigDecimal hospPartAmt; // 医院负担金额 - @JSONField(name = "balc") + @JsonProperty("balc") private BigDecimal balc; // 余额 - @JSONField(name = "acct_mulaid_pay") + @JsonProperty("acct_mulaid_pay") private BigDecimal acctMulaidPay; // 个人账户共济支付金额 - @JSONField(name = "medins_setl_id") + @JsonProperty("medins_setl_id") private String medinsSetlId; // 医药机构结算ID 存放发送方报文ID - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; // 清算经办机构 - @JSONField(name = "clr_way") + @JsonProperty("clr_way") private String clrWay; // 清算方式 - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 清算类别 - @JSONField(name = "hifdm_pay") + @JsonProperty("hifdm_pay") private BigDecimal hifdmPay; // 伤残人员医疗保障基金支出 - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; // 字段扩展 - @JSONField(name = "setldetail") + @JsonProperty("setldetail") private List setldetail;// 结算详细信息 - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String chrgBchno; // 收费批次号 } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2207OrderResultInfoDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2207OrderResultInfoDto.java index cc8aa3e7d..74833cd0c 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2207OrderResultInfoDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2207OrderResultInfoDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -21,54 +21,54 @@ import java.util.List; @Accessors(chain = true) public class Clinic2207OrderResultInfoDto { // 主键字段 - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 就诊ID - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 人员编号 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 人员姓名 - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; // 人员证件类型 - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 证件号码 - @JSONField(name = "gend") + @JsonProperty("gend") private String gend; // 性别 - @JSONField(name = "naty") + @JsonProperty("naty") private String naty; // 民族 - @JSONField(name = "brdy") + @JsonProperty("brdy") private Date brdy; // 出生日期 - @JSONField(name = "age") + @JsonProperty("age") private BigDecimal age; // 年龄 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 险种类型 - @JSONField(name = "psn_type") + @JsonProperty("psn_type") private String psnType; // 人员类别 - @JSONField(name = "cvlserv_flag") + @JsonProperty("cvlserv_flag") private String cvlservFlag; // 公务员标志 - @JSONField(name = "setl_time") + @JsonProperty("setl_time") private Date setlTime; // 结算时间 - @JSONField(name = "mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; // 就诊凭证类型 - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; // 医疗类别 - @JSONField(name = "medins_setl_id") + @JsonProperty("medins_setl_id") private String medinsSetlId; // 医药机构结算ID 存放发送方报文ID - @JSONField(name = "setldetail") + @JsonProperty("setldetail") private List setldetail;// 结算详细信息 } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2208UnSetlInfoParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2208UnSetlInfoParam.java index 98ca77b74..bbf5efad4 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2208UnSetlInfoParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2208UnSetlInfoParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.core.common.core.domain.HisBaseEntity; import lombok.Data; import lombok.experimental.Accessors; @@ -19,16 +19,16 @@ public class Clinic2208UnSetlInfoParam extends HisBaseEntity implements Serializ private static final long serialVersionUID = 1L; //就诊ID - @JSONField(name="mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; //结算ID - @JSONField(name="setl_id") + @JsonProperty("setl_id") private String setlId; //参保地医保区划 - @JSONField(name="insuplc_admdvs") + @JsonProperty("insuplc_admdvs") private String insuplcAdmdvs; //人员编号 - @JSONField(name="psn_no") + @JsonProperty("psn_no") private String psnNo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2208UnSetlInfoResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2208UnSetlInfoResult.java index e659b1c85..fe0a1b63b 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2208UnSetlInfoResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Clinic2208UnSetlInfoResult.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -23,115 +23,115 @@ import java.util.List; public class Clinic2208UnSetlInfoResult { // 1. 就诊ID(字符型,30位,必填) - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 2. 结算ID(字符型,30位,必填) - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; // 3. 清算经办机构(字符型,6位) - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; // 4. 结算时间(日期时间型,格式:yyyy-MM-dd HH:mm:ss,必填) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "setl_time") + @JsonProperty("setl_time") private Date setlTime; // 5. 医疗费总额(数值型,16位含2位小数,必填) - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 6. 全自费金额(数值型,16位含2位小数,必填) - @JSONField(name = "fulamt_ownpay_amt") + @JsonProperty("fulamt_ownpay_amt") private BigDecimal fulamtOwnpayAmt; // 7. 超限价自费费用(数值型,16位含2位小数,必填) - @JSONField(name = "overlmt_selfpay") + @JsonProperty("overlmt_selfpay") private BigDecimal overlmtSelfpay; // 8. 先行自付金额(数值型,16位含2位小数,必填) - @JSONField(name = "preselfpay_amt") + @JsonProperty("preselfpay_amt") private BigDecimal preselfpayAmt; // 9. 符合政策范围金额(数值型,16位含2位小数,必填) - @JSONField(name = "inscp_scp_amt") + @JsonProperty("inscp_scp_amt") private BigDecimal inscpScpAmt; // 10. 实际支付起付线(数值型,16位含2位小数) - @JSONField(name = "act_pay_dedc") + @JsonProperty("act_pay_dedc") private BigDecimal actPayDedc; // 11. 基本医疗保险统筹基金支出(数值型,16位含2位小数,必填) - @JSONField(name = "hifp_pay") + @JsonProperty("hifp_pay") private BigDecimal hifpPay; // 12. 统筹基金支付比例(数值型,5位含4位小数,必填) - @JSONField(name = "pool_prop_selfpay") + @JsonProperty("pool_prop_selfpay") private BigDecimal poolPropSelfpay; // 13. 公务员医疗补助支出(数值型,16位含2位小数,必填) - @JSONField(name = "cvlserv_pay") + @JsonProperty("cvlserv_pay") private BigDecimal cvlservPay; // 14. 企业补充医保支出(数值型,16位含2位小数,必填) - @JSONField(name = "hifes_pay") + @JsonProperty("hifes_pay") private BigDecimal hifesPay; // 15. 居民大病保险支出(数值型,16位含2位小数,必填) - @JSONField(name = "hifmi_pay") + @JsonProperty("hifmi_pay") private BigDecimal hifmiPay; // 16. 职工大额医疗补助支出(数值型,16位含2位小数,必填) - @JSONField(name = "hifob_pay") + @JsonProperty("hifob_pay") private BigDecimal hifobPay; // 17. 医疗救助基金支出(数值型,16位含2位小数,必填) - @JSONField(name = "maf_pay") + @JsonProperty("maf_pay") private BigDecimal mafPay; // 18. 其他支出(数值型,16位含2位小数,必填) - @JSONField(name = "oth_pay") + @JsonProperty("oth_pay") private BigDecimal othPay; // 19. 基金支付总额(数值型,16位含2位小数,必填) - @JSONField(name = "fund_pay_sumamt") + @JsonProperty("fund_pay_sumamt") private BigDecimal fundPaySumamt; // 20. 个人负担总金额(数值型,16位含2位小数,必填) - @JSONField(name = "psn_part_amt") + @JsonProperty("psn_part_amt") private BigDecimal psnPartAmt; // 21. 个人账户支出(数值型,16位含2位小数,必填) - @JSONField(name = "acct_pay") + @JsonProperty("acct_pay") private BigDecimal acctPay; // 22. 余额(数值型,16位含2位小数,必填) - @JSONField(name = "balc") + @JsonProperty("balc") private BigDecimal balc; // 23. 个人账户共济支付(数值型,16位含2位小数,必填) - @JSONField(name = "acct_mulaid_pay") + @JsonProperty("acct_mulaid_pay") private BigDecimal acctMulaidPay; // 24. 医院负担金额(数值型,16位含2位小数,必填) - @JSONField(name = "hosp_part_amt") + @JsonProperty("hosp_part_amt") private BigDecimal hospPartAmt; // 25. 医药机构结算ID(字符型,30位,必填) - @JSONField(name = "medins_setl_id") + @JsonProperty("medins_setl_id") private String medinsSetlId; // 26. 个人现金支出(数值型,16位含2位小数,必填) - @JSONField(name = "pdn_cash_pay") + @JsonProperty("pdn_cash_pay") private BigDecimal pdnCashPay; // 27. 伤残人员医疗补助支出(数值型,16位含2位小数,必填) - @JSONField(name = "hifdm_pay") + @JsonProperty("hifdm_pay") private BigDecimal hifdmPay; //结算详细信息 - @JSONField(name = "setldetail") + @JsonProperty("setldetail") private List setldetail;//结算详细信息 } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ClinicReg.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ClinicReg.java index 0fe3faa07..780f773c5 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ClinicReg.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ClinicReg.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -28,86 +28,86 @@ public class ClinicReg extends HisBaseEntity implements Serializable { private static final long serialVersionUID = 1L; //主键 @TableId(type = IdType.ASSIGN_ID) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String id; //就诊ID - @JSONField(name="mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; //参保地医保区划 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String insuplcAdmdvs; //人员编号 - @JSONField(name="psn_no") + @JsonProperty("psn_no") private String psnNo; //险种类型 //@Dict(dictCode = "insutype") - @JSONField(name="insutype") + @JsonProperty("insutype") private String insutype; //医疗类别 //@Dict(dictCode = "med_type") - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String medType; //挂号时间 @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @JSONField(name="begntime") + @JsonProperty("begntime") private Date begntime; //就诊凭证类型 @Dict(dictCode = "mdtrt_cert_type") - @JSONField(name="mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; //就诊凭证编号 - @JSONField(name="mdtrt_cert_no") + @JsonProperty("mdtrt_cert_no") private String mdtrtCertNo; // //证件加密串 -// @JSONField(serialize=false) +// @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) // @TableField(exist = false) // private String mdtrtCertNoEncrypt; //住院/门诊号 - @JSONField(name="ipt_otp_no") + @JsonProperty("ipt_otp_no") private String iptOtpNo;//使用bus_no //医师编码 //@Dict(dictTable = "business_pub_medicalstaff", dictText = "name", dictCode = "id") - @JSONField(name="atddr_no") + @JsonProperty("atddr_no") private String atddrNo; //医师姓名 - @JSONField(name="dr_name") + @JsonProperty("dr_name") private String drName; //科室编码 //@Dict(dictTable = "business_pub_dept", dictText = "hosp_dept_name", dictCode = "id") - @JSONField(name="dept_code") + @JsonProperty("dept_code") private String deptCode; //科室名称 - @JSONField(name="dept_name") + @JsonProperty("dept_name") private String deptName; //科别 @Dict(dictCode = "dept") - @JSONField(name="caty") + @JsonProperty("caty") private String caty; //挂号费 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private Double regFee; //检查费 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private Double checkFee; //应收金额 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private Double totalFee; //状态,0-挂号,1-看诊,2-费用明细,3-预结算,4-结算 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @Dict(dictCode = "clinc_status") private String status; - @JSONField(name="psn_cert_type") + @JsonProperty("psn_cert_type") @TableField(exist = false) private String psnCertType; - @JSONField(name="certno") + @JsonProperty("certno") @TableField(exist = false) private String certno; - @JSONField(name="psn_type") + @JsonProperty("psn_type") @TableField(exist = false) private String psnType; - @JSONField(name="psn_name") + @JsonProperty("psn_name") @TableField(exist = false) private String psnName; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ClinicReg2201Output.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ClinicReg2201Output.java index ae93abf0f..6e99829eb 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ClinicReg2201Output.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ClinicReg2201Output.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -17,19 +17,19 @@ public class ClinicReg2201Output { private static final long serialVersionUID = 1L; //主键 @TableId(type = IdType.ASSIGN_ID) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String id; //就诊ID private String mdtrtId; //参保地医保区划 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String insuplcAdmdvs; //人员编号 private String psnNo; //险种类型 private String insutype; //医疗类别 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String medType; //挂号时间 @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @@ -40,7 +40,7 @@ public class ClinicReg2201Output { //就诊凭证编号 private String mdtrtCertNo; //证件加密串 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @TableField(exist = false) private String mdtrtCertNoEncrypt; //住院/门诊号 diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FileDownload.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FileDownload.java index 71a8da7a8..b4bf66c42 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FileDownload.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FileDownload.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -13,15 +13,15 @@ import lombok.experimental.Accessors; @Data @Accessors(chain = true) public class FileDownload { - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String code; - @JSONField(name = "ver") + @JsonProperty("ver") private String version; - @JSONField(name = "filename") + @JsonProperty("filename") private String filename; - @JSONField(name = "file_qury_no") + @JsonProperty("file_qury_no") private String fileQuryNo; - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; private String address; diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FileResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FileResult.java index e68d96cd8..2edf21af2 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FileResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FileResult.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -31,7 +31,7 @@ public class FileResult { private Date dldEndtime; // 文件数据 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private byte[] fileData; // 文件相对路径 @@ -41,6 +41,6 @@ public class FileResult { private String fixmedinsCode; // 文件数据 - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String errMsg; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203Param.java index 4cc03d64c..1a7d39d4b 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -20,34 +20,34 @@ import lombok.experimental.Accessors; public class Financial13203Param { // 对账日期,格式:YYYY-MM-DD - @JSONField(name = "stmt_date") + @JsonProperty("stmt_date") private String stmtDate; // 明细对账结果,1:不平,0:平 - @JSONField(name = "stmt_rslt") + @JsonProperty("stmt_rslt") private String stmtRslt; // 查询页面数据量,最大100 - @JSONField(name = "page_size") + @JsonProperty("page_size") private String pageSize; // 页数,默认1 - @JSONField(name = "page_num") + @JsonProperty("page_num") private String pageNum; // 清算机构编码 - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; // 清算类别 - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 险种 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 就医类别,2:本地就医,3:省内异地就医,4:跨省就医 - @JSONField(name = "clr_pay_loc") + @JsonProperty("clr_pay_loc") private String clrPayLoc; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203Result.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203Result.java index 550ead50f..0ebcafdf4 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203Result.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203Result.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -20,39 +20,39 @@ import lombok.experimental.Accessors; public class Financial13203Result { // 退费标识 - @JSONField(name = "refd_setl_flag") + @JsonProperty("refd_setl_flag") private String refdSetlFlag; // 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 就诊流水号 - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 结算ID - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; // 人员名称 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 对账结果 - @JSONField(name = "stmt_rslt") + @JsonProperty("stmt_rslt") private String stmtRslt; // 总医疗费 - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private String medfeeSumamt; // 清算机构编码 - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; // 报文ID - @JSONField(name = "msg_id") + @JsonProperty("msg_id") private String msgId; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203WebParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203WebParam.java index 72a0fea89..7e0f41109 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203WebParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial13203WebParam.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** @@ -16,34 +16,34 @@ import lombok.Data; public class Financial13203WebParam { // 对账日期,格式:YYYY-MM-DD - @JSONField(name = "stmt_date") + @JsonProperty("stmt_date") private String stmtDate; // 明细对账结果,1:不平,0:平 - @JSONField(name = "stmt_rslt") + @JsonProperty("stmt_rslt") private String stmtRslt; // 查询页面数据量,最大100 - @JSONField(name = "page_size") + @JsonProperty("page_size") private String pageSize; // 页数,默认1 - @JSONField(name = "page_num") + @JsonProperty("page_num") private String pageNum; // 清算机构编码 - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; // 清算类别 - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 险种 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 就医类别,2:本地就医,3:省内异地就医,4:跨省就医 - @JSONField(name = "clr_pay_loc") + @JsonProperty("clr_pay_loc") private String clrPayLoc; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3201Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3201Param.java index 5bc00f3ca..295afbb49 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3201Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3201Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.core.common.annotation.Excel; import com.core.common.core.domain.HisBaseEntity; import com.healthlink.his.common.annotation.Dict; @@ -23,55 +23,55 @@ public class Financial3201Param extends HisBaseEntity implements Serializable { private static final long serialVersionUID = 1L; //定点医药机构编号 @Excel(name = "定点医药机构编号", width = 15) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String fixmedinsCode; //定点医药机构名称 @Excel(name = "定点医药机构名称", width = 15) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String fixmedinsName; //医保区划 @Excel(name = "医保区划", width = 15) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String admvs; //险种 @Excel(name = "险种", width = 15, dictType = "insutype") @Dict(dictCode = "insutype") - @JSONField(name="insutype") + @JsonProperty("insutype") private String insutype; //清算类别 @Excel(name = "清算类别", width = 15, dictType = "clr_type") @Dict(dictCode = "clr_type") - @JSONField(name="clr_type") + @JsonProperty("clr_type") private String clrType; //结算经办机构 @Excel(name = "结算经办机构", width = 15) - @JSONField(name="setl_optins") + @JsonProperty("setl_optins") private String setlOptins; //对账开始日期 @Excel(name = "对账开始日期", width = 15, dateFormat = "yyyy-MM-dd") - @JSONField(name="stmt_begndate") + @JsonProperty("stmt_begndate") private String stmtBegndate; //对账结束日期 @Excel(name = "对账结束日期", width = 15, dateFormat = "yyyy-MM-dd") - @JSONField(name="stmt_enddate") + @JsonProperty("stmt_enddate") private String stmtEnddate; //医疗费总额 @Excel(name = "医疗费总额", width = 15) - @JSONField(name="medfee_sumamt") + @JsonProperty("medfee_sumamt") private Double medfeeSumamt; //基金支付总额 @Excel(name = "基金支付总额", width = 15) - @JSONField(name="fund_pay_sumamt") + @JsonProperty("fund_pay_sumamt") private Double fundPaySumamt; //个人账户支付金额 @Excel(name = "个人账户支付金额", width = 15) - @JSONField(name="acct_pay") + @JsonProperty("acct_pay") private Double acctPay; //定点医药机构结算笔数 @Excel(name = "定点医药机构结算笔数", width = 15) - @JSONField(name="fixmedins_setl_cnt") + @JsonProperty("fixmedins_setl_cnt") private Integer fixmedinsSetlCnt; - @JSONField(name = "insuplc_admdvs") + @JsonProperty("insuplc_admdvs") private String insuplcAdmdvs;//区划 } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3202FileParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3202FileParam.java index d676c98fd..69936949b 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3202FileParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3202FileParam.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -21,31 +21,31 @@ import java.math.BigDecimal; @Accessors(chain = true) public class Financial3202FileParam { // 1. 结算ID(字符型,30位,必填) - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; // 2. 就诊ID(字符型,30位,必填) - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 3. 人员编号(字符型,30位,必填) - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 4. 医疗费总额(数值型,16位含2位小数,必填) - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 5. 基金支付总额(数值型,16位含2位小数,必填) - @JSONField(name = "fund_pay_sumamt") + @JsonProperty("fund_pay_sumamt") private BigDecimal fundPaySumamt; // 6. 个人账户支出(数值型,16位含2位小数,必填) - @JSONField(name = "acct_pay") + @JsonProperty("acct_pay") private BigDecimal acctPay; // 7. 退费结算标志(字符型,3位,必填) - @JSONField(name = "refd_setl_flag") + @JsonProperty("refd_setl_flag") private String refdSetlFlag; @Override diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3202FileResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3202FileResult.java index 6a4df8304..d39dcb6ca 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3202FileResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3202FileResult.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import java.math.BigDecimal; @@ -15,42 +15,42 @@ import java.math.BigDecimal; */ public class Financial3202FileResult { // 1. 人员编号(字符型,30位,必填) - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 就诊ID(字符型,30位,非必填) - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 3. 结算ID(字符型,30位,非必填) - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; // 4. 发送方报文ID(字符型,30位,必填) - @JSONField(name = "msgid") + @JsonProperty("msgid") private String msgid; // 5. 对账结果(字符型,6位,必填) - @JSONField(name = "stmt_rslt") + @JsonProperty("stmt_rslt") private String stmtRslt; // 6. 退费结算标志(字符型,3位,必填) - @JSONField(name = "refd_setl_flag") + @JsonProperty("refd_setl_flag") private String refdSetlFlag; // 7. 备注(字符型,500位,非必填) - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; // 8. 医疗费总额(数值型,16位含2位小数,非必填) - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 9. 基金支付总额(数值型,16位含2位小数,非必填) - @JSONField(name = "fund_pay_sumamt") + @JsonProperty("fund_pay_sumamt") private BigDecimal fundPaySumamt; // 10. 个人账户支出(数值型,16位含2位小数,非必填) - @JSONField(name = "acct_pay") + @JsonProperty("acct_pay") private BigDecimal acctPay; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203AParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203AParam.java index 71c71f290..11a6bc357 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203AParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203AParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.core.common.core.domain.HisBaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -24,44 +24,44 @@ public class Financial3203AParam extends HisBaseEntity implements Serializable { private static final long serialVersionUID = 1L; // 1. 清算类别(字符型,30位,必填) - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 2. 医疗费总额(数值型,16位含2位小数,必填) - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 3. 医保认可费用总额(数值型,16位含2位小数,必填) - @JSONField(name = "med_sumfee") + @JsonProperty("med_sumfee") private BigDecimal medSumfee; // 4. 基金申报总额(数值型,16位含2位小数,必填) - @JSONField(name = "fund_appy_sum") + @JsonProperty("fund_appy_sum") private BigDecimal fundAppySum; // 5. 现金支付金额(数值型,16位含2位小数,必填) - @JSONField(name = "cash_payamt") + @JsonProperty("cash_payamt") private BigDecimal cashPayamt; // 6. 个人账户支出(数值型,16位含2位小数,必填) - @JSONField(name = "acct_pay") + @JsonProperty("acct_pay") private BigDecimal acctPay; // 7. 开始日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "begndate") + @JsonProperty("begndate") @JsonFormat(pattern = "yyyy-MM-dd") private Date begndate; // 8. 结束日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "enddate") + @JsonProperty("enddate") @JsonFormat(pattern = "yyyy-MM-dd") private Date enddate; // 9. 清算机构(字符型,6位,必填) - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; // 必须是准确的6位编码 // // // 统筹区号,仅传参用 -// @JSONField(deserialize = false) +// @JsonProperty(deserialize = false) // private String admvs; // 必须是准确的6位编码 } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203Param.java index df35b5ce4..577b92c43 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,48 +25,48 @@ public class Financial3203Param { private static final long serialVersionUID = 1L; // 1. 清算类别(字符型,30位,必填) - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 10. 清算方式(字符型,30位,必填) - @JSONField(name = "clr_way") + @JsonProperty("clr_way") private String clrWay; // 2. 医疗费总额(数值型,16位含2位小数,必填) - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 3. 医保认可费用总额(数值型,16位含2位小数,必填) - @JSONField(name = "med_sumfee") + @JsonProperty("med_sumfee") private BigDecimal medSumfee; // 4. 基金申报总额(数值型,16位含2位小数,必填) - @JSONField(name = "fund_appy_sum") + @JsonProperty("fund_appy_sum") private BigDecimal fundAppySum; // 5. 现金支付金额(数值型,16位含2位小数,必填) - @JSONField(name = "cash_payamt") + @JsonProperty("cash_payamt") private BigDecimal cashPayamt; // 6. 个人账户支出(数值型,16位含2位小数,必填) - @JSONField(name = "acct_pay") + @JsonProperty("acct_pay") private BigDecimal acctPay; // 7. 开始日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "begndate") + @JsonProperty("begndate") @JsonFormat(pattern = "yyyy-MM-dd") private Date begndate; // 8. 结束日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "enddate") + @JsonProperty("enddate") @JsonFormat(pattern = "yyyy-MM-dd") private Date enddate; // 9. 清算年月 - @JSONField(name = "setlym") + @JsonProperty("setlym") private String setlym; // 11. 清算人次 - @JSONField(name = "psntime") + @JsonProperty("psntime") private Long psntime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203WebParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203WebParam.java index e0c704ded..0a1c97602 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203WebParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3203WebParam.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -19,24 +19,24 @@ import java.util.Date; public class Financial3203WebParam { // 清算类别(字符型,30位,必填) - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 清算方式(字符型,30位,必填) - @JSONField(name = "clr_way") + @JsonProperty("clr_way") private String clrWay; // 开始日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "begndate") + @JsonProperty("begndate") @JsonFormat(pattern = "yyyy-MM-dd") private Date begndate; // 结束日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "enddate") + @JsonProperty("enddate") @JsonFormat(pattern = "yyyy-MM-dd") private Date enddate; // 清算年月 - @JSONField(name = "setlym") + @JsonProperty("setlym") private String setlym; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3204Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3204Param.java index 3030808d6..8924bb47b 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3204Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Financial3204Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -21,12 +21,12 @@ public class Financial3204Param { /** * 机构清算申请事件ID */ - @JSONField(name = "clr_appy_evt_id") + @JsonProperty("clr_appy_evt_id") private String clrAppyEvtId; /** * 清算机构 */ - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3202Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3202Param.java index 4f617fed6..0c2ed47e7 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3202Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3202Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -23,44 +23,44 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class FinancialSettlement3202Param { // 1. 结算经办机构(字符型,6位,必填) - @JSONField(name = "setl_optins") + @JsonProperty("setl_optins") private String setlOptins; // 2. 文件查询号(字符型,30位,必填) - @JSONField(name = "file_qury_no") + @JsonProperty("file_qury_no") private String fileQuryNo; // 3. 对账开始日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "stmt_begndate") + @JsonProperty("stmt_begndate") @JsonFormat(pattern = "yyyy-MM-dd") private Date stmtBegndate; // 4. 对账结束日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "stmt_enddate") + @JsonProperty("stmt_enddate") @JsonFormat(pattern = "yyyy-MM-dd") private Date stmtEnddate; // 5. 医疗费总额(数值型,16位含2位小数,必填) - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 6. 基金支付总额(数值型,16位含2位小数,必填) - @JSONField(name = "fund_pay_sumamt") + @JsonProperty("fund_pay_sumamt") private BigDecimal fundPaySumamt; // 7. 现金支付金额(数值型,16位含2位小数,必填) - @JSONField(name = "cash_payamt") + @JsonProperty("cash_payamt") private BigDecimal cashPayamt; // 8. 定点医药机构结算笔数(数值型,10位,必填) - @JSONField(name = "fixmedins_setl_cnt") + @JsonProperty("fixmedins_setl_cnt") private Integer fixmedinsSetlCnt; // 9. 清算类别(字符型,6位,必填) - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 10. 退费结算标志(字符型,3位,必填) - @JSONField(name = "refd_setl_flag") + @JsonProperty("refd_setl_flag") private String refdSetlFlag; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3202Result.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3202Result.java index 62ed8a590..56eed4a6c 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3202Result.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3202Result.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,15 +22,15 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class FinancialSettlement3202Result { // 1. 文件查询号(字符型,30位,必填) - @JSONField(name = "file_qury_no") + @JsonProperty("file_qury_no") private String fileQuryNo; // 2. 文件名称(字符型,200位,必填) - @JSONField(name = "filename") + @JsonProperty("filename") private String filename; // 3. 下载截止时间(日期时间型,必填,格式:yyyy-MM-dd HH:mm:ss) - @JSONField(name = "dld_endtime") + @JsonProperty("dld_endtime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dldEndtime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3209AParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3209AParam.java index 46b74e141..7646c1b75 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3209AParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3209AParam.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -22,19 +22,19 @@ import java.util.Date; public class FinancialSettlement3209AParam { // 清算类别 - @JSONField(name = "clr_type") + @JsonProperty("clr_type") private String clrType; // 开始日期 - @JSONField(name = "begndate") + @JsonProperty("begndate") private Date begndate; // 结束日期 - @JSONField(name = "enddate") + @JsonProperty("enddate") private Date enddate; // 清算机构 - @JSONField(name = "clr_optins") + @JsonProperty("clr_optins") private String clrOptins; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3209AResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3209AResult.java index 7da54795c..f0a32a282 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3209AResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FinancialSettlement3209AResult.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -19,10 +19,10 @@ import lombok.experimental.Accessors; @EqualsAndHashCode(callSuper = false) public class FinancialSettlement3209AResult { // 结算ID - @JSONField(name = "setlId") + @JsonProperty("setlId") private String setlId; // 参保地区划 - @JSONField(name = "insuAdmdvs") + @JsonProperty("insuAdmdvs") private String insuAdmdvs; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiConsultation3101Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiConsultation3101Param.java index a833145ca..c8aff3159 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiConsultation3101Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiConsultation3101Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -24,22 +24,22 @@ import java.util.Set; public class FsiConsultation3101Param { // 1. 系统编码 - @JSONField(name = "syscode") + @JsonProperty("syscode") private String syscode; // 2. 参保人信息 - @JSONField(name = "patient_dtos") + @JsonProperty("patient_dtos") private List patientDtos; // 3. 规则标识集合(非必填) - @JSONField(name = "rule_ids") + @JsonProperty("rule_ids") private Set ruleIds; // 4. 任务ID - @JSONField(name = "task_id") + @JsonProperty("task_id") private String taskId; // 5. 触发场景 - @JSONField(name = "trig_scen") + @JsonProperty("trig_scen") private String trigScen; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiDiagnose3101Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiDiagnose3101Param.java index 1cdaeda87..1f812f9f9 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiDiagnose3101Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiDiagnose3101Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,32 +25,32 @@ import java.util.Date; public class FsiDiagnose3101Param { // 1. 诊断标识 - @JSONField(name = "dise_id") + @JsonProperty("dise_id") private String diseId; // 2. 出入诊断类别 - @JSONField(name = "inout_dise_type") + @JsonProperty("inout_dise_type") private String inoutDiseType; // 3. 主诊断标志 - @JSONField(name = "maindise_flag") + @JsonProperty("maindise_flag") private String maindiseFlag; // 4. 诊断排序号 - @JSONField(name = "dias_srt_no") + @JsonProperty("dias_srt_no") private String diasSrtNo; // 5. 诊断(疾病)编码 - @JSONField(name = "dise_codg") + @JsonProperty("dise_codg") private String diseCodg; // 6. 诊断(疾病)名称 - @JSONField(name = "dise_name") + @JsonProperty("dise_name") private String diseName; // 7. 诊断日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "dise_date") + @JsonProperty("dise_date") private Date diseDate; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiEncounter3101Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiEncounter3101Param.java index 3cb59d6e5..aabc740ac 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiEncounter3101Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiEncounter3101Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,142 +26,142 @@ import java.util.List; @EqualsAndHashCode(callSuper = false) public class FsiEncounter3101Param { // 1. 就诊标识 - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 2. 医疗服务机构标识 - @JSONField(name = "medins_id") + @JsonProperty("medins_id") private String medinsId; // 3. 医疗机构名称 - @JSONField(name = "medins_name") + @JsonProperty("medins_name") private String medinsName; // 4. 医疗机构行政区划编码 - @JSONField(name = "medins_admdvs") + @JsonProperty("medins_admdvs") private String medinsAdmdvs; // 5. 医疗服务机构类型 - @JSONField(name = "medins_type") + @JsonProperty("medins_type") private String medinsType; // 6. 医疗机构等级 - @JSONField(name = "medins_lv") + @JsonProperty("medins_lv") private String medinsLv; // 7. 病区标识 - @JSONField(name = "wardarea_codg") + @JsonProperty("wardarea_codg") private String wardareaCodg; // 8. 病房号 - @JSONField(name = "wardno") + @JsonProperty("wardno") private String wardno; // 9. 病床号 - @JSONField(name = "bedno") + @JsonProperty("bedno") private String bedno; // 10. 入院日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "adm_date") + @JsonProperty("adm_date") private Date admDate; // 11. 出院日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "dscg_date") + @JsonProperty("dscg_date") private Date dscgDate; // 12. 主诊断编码 - @JSONField(name = "dscg_main_dise_codg") + @JsonProperty("dscg_main_dise_codg") private String dscgMainDiseCodg; // 13. 主诊断名称 - @JSONField(name = "dscg_main_dise_name") + @JsonProperty("dscg_main_dise_name") private String dscgMainDiseName; // 14. 诊断信息DTO - @JSONField(name = "fsi_diagnose_dtos") + @JsonProperty("fsi_diagnose_dtos") private List fsiDiagnoseDtos; // 15. 医师标识 - @JSONField(name = "dr_codg") + @JsonProperty("dr_codg") private String drCodg; // 16. 入院科室标识 - @JSONField(name = "adm_dept_codg") + @JsonProperty("adm_dept_codg") private String admDeptCodg; // 17. 入院科室名称 - @JSONField(name = "adm_dept_name") + @JsonProperty("adm_dept_name") private String admDeptName; // 18. 出院科室标识 - @JSONField(name = "dscg_dept_codg") + @JsonProperty("dscg_dept_codg") private String dscgDeptCodg; // 19. 出院科室名称 - @JSONField(name = "dscg_dept_name") + @JsonProperty("dscg_dept_name") private String dscgDeptName; // 20. 就诊类型 - @JSONField(name = "med_mdtrt_type") + @JsonProperty("med_mdtrt_type") private String medMdtrtType; // 21. 医疗类别 - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; // 22. 处方(医嘱)信息 - @JSONField(name = "fsi_order_dtos") + @JsonProperty("fsi_order_dtos") private List fsiOrderDtos; // 23. 生育状态 - @JSONField(name = "matn_stas") + @JsonProperty("matn_stas") private String matnStas; // 24. 总费用 - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; // 25. 自费金额 - @JSONField(name = "ownpay_amt") + @JsonProperty("ownpay_amt") private BigDecimal ownpayAmt; // 26. 自付金额 - @JSONField(name = "selfpay_amt") + @JsonProperty("selfpay_amt") private BigDecimal selfpayAmt; // 27. 个人账户支付金额 - @JSONField(name = "acct_payamt") + @JsonProperty("acct_payamt") private BigDecimal acctPayamt; // 28. 救助金支付金额 - @JSONField(name = "ma_amt") + @JsonProperty("ma_amt") private BigDecimal maAmt; // 29. 统筹金支付金额 - @JSONField(name = "hifp_payamt") + @JsonProperty("hifp_payamt") private BigDecimal hifpPayamt; // 30. 结算总次数 - @JSONField(name = "setl_totlnum") + @JsonProperty("setl_totlnum") private Integer setlTotlnum; // 31. 险种 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 32. 报销标志 - @JSONField(name = "reim_flag") + @JsonProperty("reim_flag") private String reimFlag; // 33. 异地结算标志 - @JSONField(name = "out_setl_flag") + @JsonProperty("out_setl_flag") private String outSetlFlag; // 34. 手术操作集合 - @JSONField(name = "fsi_operation_dtos") + @JsonProperty("fsi_operation_dtos") private List fsiOperationDtos; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiFeedback3103DataParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiFeedback3103DataParam.java index 8e1c6ff97..4108b1c41 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiFeedback3103DataParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiFeedback3103DataParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -18,10 +18,10 @@ import java.util.List; @EqualsAndHashCode(callSuper = false) public class FsiFeedback3103DataParam { // 1. 反馈类型 - @JSONField(name = "warn_type") + @JsonProperty("warn_type") private String warnType; // 2. 处理数据集合 - @JSONField(name = "warns") + @JsonProperty("warns") private List warns; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiFeedback3103WarnsParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiFeedback3103WarnsParam.java index 0bb14b1d7..da9de00a9 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiFeedback3103WarnsParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiFeedback3103WarnsParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -16,14 +16,14 @@ import lombok.experimental.Accessors; @EqualsAndHashCode(callSuper = false) public class FsiFeedback3103WarnsParam { // 1. 违规标识 - @JSONField(name = "warn_rslt_id") + @JsonProperty("warn_rslt_id") private String warnRsltId; // 2. 处理方式 - @JSONField(name = "dspo_way") + @JsonProperty("dspo_way") private String dspoWay; // 3. 处理原因 - @JSONField(name = "dspo_way_rea") + @JsonProperty("dspo_way_rea") private String dspoWayRea; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiOperation3101Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiOperation3101Param.java index f428107da..665d4234d 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiOperation3101Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiOperation3101Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,44 +25,44 @@ import java.util.Date; public class FsiOperation3101Param { // 1. 手术操作ID - @JSONField(name = "setl_list_oprn_id") + @JsonProperty("setl_list_oprn_id") private String setlListOprnId; // 2. 手术操作代码 - @JSONField(name = "oprn_code") + @JsonProperty("oprn_code") private String oprnCode; // 3. 手术操作名称 - @JSONField(name = "oprn_name") + @JsonProperty("oprn_name") private String oprnName; // 4. 主手术操作标志 - @JSONField(name = "main_oprn_flag") + @JsonProperty("main_oprn_flag") private String mainOprnFlag; // 5. 手术操作日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "oprn_date") + @JsonProperty("oprn_date") private Date oprnDate; // 6. 麻醉方式 - @JSONField(name = "anst_way") + @JsonProperty("anst_way") private String anstWay; // 7. 术者医师姓名 - @JSONField(name = "oper_dr_name") + @JsonProperty("oper_dr_name") private String operDrName; // 8. 术者医师代码 - @JSONField(name = "oper_dr_code") + @JsonProperty("oper_dr_code") private String operDrCode; // 9. 麻醉医师姓名 - @JSONField(name = "anst_dr_name") + @JsonProperty("anst_dr_name") private String anstDrName; // 10. 麻醉医师代码 - @JSONField(name = "anst_dr_code") + @JsonProperty("anst_dr_code") private String anstDrCode; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiOrder3101Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiOrder3101Param.java index fc4642356..56c2d4a24 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiOrder3101Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiOrder3101Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,142 +26,142 @@ import java.util.Date; public class FsiOrder3101Param { // 1. 处方(医嘱)标识 - @JSONField(name = "rx_id") + @JsonProperty("rx_id") private String rxId; // 2. 处方号 - @JSONField(name = "rxno") + @JsonProperty("rxno") private String rxno;//2025/05/05 李要求该字段对应耗材时使用buz_no,药品时使用处方号 // 3. 组编号 - @JSONField(name = "grpno") + @JsonProperty("grpno") private String grpno; // 4. 是否为长期医嘱 [1=是,0=否] - @JSONField(name = "long_drord_flag") + @JsonProperty("long_drord_flag") private String longDrordFlag; // 5. 目录类别(参考字典表) - @JSONField(name = "hilist_type") + @JsonProperty("hilist_type") private String hilistType; // 6. 收费类别(参考字典表) - @JSONField(name = "chrg_type") + @JsonProperty("chrg_type") private String chrgType; // 7. 医嘱行为(参考字典表) - @JSONField(name = "drord_bhvr") + @JsonProperty("drord_bhvr") private String drordBhvr; // 8. 医保目录代码(国家统一标准编码) - @JSONField(name = "hilist_code") + @JsonProperty("hilist_code") private String hilistCode; // 9. 医保目录名称(国家统一标准名称) - @JSONField(name = "hilist_name") + @JsonProperty("hilist_name") private String hilistName; // 10. 医保目录(药品)剂型(国家统一标准药品剂型) - @JSONField(name = "hilist_dosform") + @JsonProperty("hilist_dosform") private String hilistDosform; // 11. 医保目录等级 - @JSONField(name = "hilist_lv") + @JsonProperty("hilist_lv") private String hilistLv; // 12. 医保目录价格 - @JSONField(name = "hilist_pric") + @JsonProperty("hilist_pric") private BigDecimal hilistPric; // 13. 一级医院目录价格 - @JSONField(name = "lv1_hosp_item_pric") + @JsonProperty("lv1_hosp_item_pric") private BigDecimal lv1HospItemPric; // 14. 二级医院目录价格 - @JSONField(name = "lv2_hosp_item_pric") + @JsonProperty("lv2_hosp_item_pric") private BigDecimal lv2HospItemPric; // 15. 三级医院目录价格 - @JSONField(name = "lv3_hosp_item_pric") + @JsonProperty("lv3_hosp_item_pric") private BigDecimal lv3HospItemPric; // 16. 医保目录备注 - @JSONField(name = "hilist_memo") + @JsonProperty("hilist_memo") private String hilistMemo; // 17. 医院目录代码 - @JSONField(name = "hosplist_code") + @JsonProperty("hosplist_code") private String hosplistCode; // 18. 医院目录名称 - @JSONField(name = "hosplist_name") + @JsonProperty("hosplist_name") private String hosplistName; // 19. 医院目录(药品)剂型 - @JSONField(name = "hosplist_dosform") + @JsonProperty("hosplist_dosform") private String hosplistDosform; // 20. 数量 - @JSONField(name = "cnt") + @JsonProperty("cnt") private BigDecimal cnt; // 21. 单价 - @JSONField(name = "pric") + @JsonProperty("pric") private BigDecimal pric; // 22. 总费用 - @JSONField(name = "sumamt") + @JsonProperty("sumamt") private BigDecimal sumamt; // 23. 自费金额 - @JSONField(name = "ownpay_amt") + @JsonProperty("ownpay_amt") private BigDecimal ownpayAmt; // 24. 自付金额 - @JSONField(name = "selfpay_amt") + @JsonProperty("selfpay_amt") private BigDecimal selfpayAmt; // 25. 规格 - @JSONField(name = "spec") + @JsonProperty("spec") private String spec; // 26. 数量单位 - @JSONField(name = "spec_unt") + @JsonProperty("spec_unt") private String specUnt; // 27. 医嘱开始日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "drord_begn_date") + @JsonProperty("drord_begn_date") private Date drordBegnDate; // 28. 医嘱停止日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "drord_stop_date") + @JsonProperty("drord_stop_date") private Date drordStopDate; // 29. 下达医嘱的科室标识 - @JSONField(name = "drord_dept_codg") + @JsonProperty("drord_dept_codg") private String drordDeptCodg; // 30. 下达医嘱科室名称 - @JSONField(name = "drord_dept_name") + @JsonProperty("drord_dept_name") private String drordDeptName; // 31. 开处方(医嘱)医生标识 - @JSONField(name = "drord_dr_codg") + @JsonProperty("drord_dr_codg") private String drordDrCodg; // 32. 开处方(医嘱)医生姓名 - @JSONField(name = "drord_dr_name") + @JsonProperty("drord_dr_name") private String drordDrName; // 33. 开处方(医嘱)医职称 - @JSONField(name = "drord_dr_profttl") + @JsonProperty("drord_dr_profttl") private String drordDrProfttl; // 34. 是否当前处方(医嘱)[1=是,0=否] - @JSONField(name = "curr_drord_flag") + @JsonProperty("curr_drord_flag") private String currDrordFlag; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiPatient3101Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiPatient3101Param.java index 7926a0226..cbe19d327 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiPatient3101Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiPatient3101Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,36 +26,36 @@ import java.util.List; public class FsiPatient3101Param { // 1. 参保人标识 - @JSONField(name = "patn_id") + @JsonProperty("patn_id") private String patnId; // 2. 姓名 - @JSONField(name = "patn_name") + @JsonProperty("patn_name") private String patnName; // 3. 性别 - @JSONField(name = "gend") + @JsonProperty("gend") private String gend; // 4. 出生日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "brdy") + @JsonProperty("brdy") private Date brdy; // 5. 统筹区编码 - @JSONField(name = "poolarea") + @JsonProperty("poolarea") private String poolarea; // 6. 当前就诊标识 - @JSONField(name = "curr_mdtrt_id") + @JsonProperty("curr_mdtrt_id") private String currMdtrtId; // 7. 就诊信息集合 - @JSONField(name = "fsi_encounter_dtos") + @JsonProperty("fsi_encounter_dtos") private List fsiEncounterDtos; // // 8. 医院信息集合(非必填项) -// @JSONField(name = "fsi_his_data_dto") +// @JsonProperty("fsi_his_data_dto") // private FsiHisData fsiHisDataDto; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiViolation3101Result.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiViolation3101Result.java index 26592e72e..0810d77b2 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiViolation3101Result.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiViolation3101Result.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -20,54 +20,54 @@ import java.util.List; @EqualsAndHashCode(callSuper = false) public class FsiViolation3101Result { // 1. 违规标识 - @JSONField(name = "jr_id") + @JsonProperty("jr_id") private String jrId; // 2. 规则ID - @JSONField(name = "rule_id") + @JsonProperty("rule_id") private String ruleId; // 3. 规则名称 - @JSONField(name = "rule_name") + @JsonProperty("rule_name") private String ruleName; // 4. 违规内容 - @JSONField(name = "vola_cont") + @JsonProperty("vola_cont") private String volaCont; // 5. 参保人ID - @JSONField(name = "patn_id") + @JsonProperty("patn_id") private String patnId; // 6. 就诊ID - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 7. 违规明细 - @JSONField(name = "judge_result_detail_dtos") + @JsonProperty("judge_result_detail_dtos") private List judgeResultDetailDtos; // 8. 违规金额 - @JSONField(name = "vola_amt") + @JsonProperty("vola_amt") private BigDecimal volaAmt; // 9. 违规金额计算状态 - @JSONField(name = "vola_amt_stas") + @JsonProperty("vola_amt_stas") private String volaAmtStas; // 10. 严重程度 - @JSONField(name = "sev_deg") + @JsonProperty("sev_deg") private String sevDeg; // 11. 违规依据 - @JSONField(name = "vola_evid") + @JsonProperty("vola_evid") private String volaEvid; // 12. 违规行为分类 - @JSONField(name = "vola_bhvr_type") + @JsonProperty("vola_bhvr_type") private String volaBhvrType; // 13. 任务ID - @JSONField(name = "task_id") + @JsonProperty("task_id") private String taskId; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiViolationDetail3101Result.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiViolationDetail3101Result.java index f3e8630a9..8059aaa56 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiViolationDetail3101Result.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/FsiViolationDetail3101Result.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -19,26 +19,26 @@ import java.math.BigDecimal; @EqualsAndHashCode(callSuper = false) public class FsiViolationDetail3101Result { // 1. 违规明细标识 - @JSONField(name = "jrd_id") + @JsonProperty("jrd_id") private String jrdId; // 2. 参保人标识 - @JSONField(name = "patn_id") + @JsonProperty("patn_id") private String patnId; // 3. 就诊标识 - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 4. 处方(医嘱)标识 - @JSONField(name = "rx_id") + @JsonProperty("rx_id") private String rxId; // 5. 违规明细类型 - @JSONField(name = "vola_item_type") + @JsonProperty("vola_item_type") private String volaItemType; // 6. 违规金额 - @JSONField(name = "vola_amt") + @JsonProperty("vola_amt") private BigDecimal volaAmt; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2401DiseInfoParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2401DiseInfoParam.java index bf13e313a..11d7718b2 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2401DiseInfoParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2401DiseInfoParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,48 +21,48 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class HospAdm2401DiseInfoParam { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 诊断类别 - @JSONField(name = "diag_type") + @JsonProperty("diag_type") private String diagType; // 3. 主诊断标志 - @JSONField(name = "maindiag_flag") + @JsonProperty("maindiag_flag") private String maindiagFlag; // 4. 诊断排序号 - @JSONField(name = "diag_srt_no") + @JsonProperty("diag_srt_no") private BigDecimal diagSrtNo; // 5. 诊断代码 - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; // 6. 诊断名称 - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; // 7. 入院病情 - @JSONField(name = "adm_cond") + @JsonProperty("adm_cond") private String admCond; // 8. 诊断科室 - @JSONField(name = "diag_dept") + @JsonProperty("diag_dept") private String diagDept; // 9. 诊断医生编码 - @JSONField(name = "dise_dor_no") + @JsonProperty("dise_dor_no") private String diseDorNo; // 10. 诊断医生姓名 - @JSONField(name = "dise_dor_name") + @JsonProperty("dise_dor_name") private String diseDorName; // 11. 诊断时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "diag_time") + @JsonProperty("diag_time") private Date diagTime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2401MdtInfoParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2401MdtInfoParam.java index 507922c98..ad3b7b987 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2401MdtInfoParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2401MdtInfoParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,170 +22,170 @@ import java.util.List; @EqualsAndHashCode(callSuper = false) public class HospAdm2401MdtInfoParam { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 险种类型 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 3. 联系人姓名 - @JSONField(name = "coner_name") + @JsonProperty("coner_name") private String conerName; // 4. 联系电话 - @JSONField(name = "tel") + @JsonProperty("tel") private String tel; // 5. 开始时间(入院时间) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "begntime") + @JsonProperty("begntime") private Date begntime; // 6. 就诊凭证类型 - @JSONField(name = "mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; // 7. 就诊凭证编号 - @JSONField(name = "mdtrt_cert_no") + @JsonProperty("mdtrt_cert_no") private String mdtrtCertNo; // 8. 医疗类别 - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; // 9. 住院号 - @JSONField(name = "ipt_no") + @JsonProperty("ipt_no") private String iptNo; // 10. 病历号 - @JSONField(name = "medrcdno") + @JsonProperty("medrcdno") private String medrcdno; // 11. 主治医生编码 - @JSONField(name = "atddr_no") + @JsonProperty("atddr_no") private String atddrNo; // 12. 主诊医师姓名 - @JSONField(name = "chfpdr_name") + @JsonProperty("chfpdr_name") private String chfpdrName; // 13. 入院诊断描述 - @JSONField(name = "adm_diag_dscr") + @JsonProperty("adm_diag_dscr") private String admDiagDscr; // 14. 入院科室编码 - @JSONField(name = "adm_dept_codg") + @JsonProperty("adm_dept_codg") private String admDeptCodg; // 15. 入院科室名称 - @JSONField(name = "adm_dept_name") + @JsonProperty("adm_dept_name") private String admDeptName; // 16. 入院床位 - @JSONField(name = "adm_bed") + @JsonProperty("adm_bed") private String admBed; // 17. 住院主诊断代码 - @JSONField(name = "dscg_maindiag_code") + @JsonProperty("dscg_maindiag_code") private String dscgMaindiagCode; // 18. 住院主诊断名称 - @JSONField(name = "dscg_maindiag_name") + @JsonProperty("dscg_maindiag_name") private String dscgMaindiagName; // 19. 主要病情描述 - @JSONField(name = "main_cond_dscr") + @JsonProperty("main_cond_dscr") private String mainCondDscr; // 20. 病种编码 - @JSONField(name = "dise_codg") + @JsonProperty("dise_codg") private String diseCodg; // 21. 病种名称 - @JSONField(name = "dise_name") + @JsonProperty("dise_name") private String diseName; // 22. 手术操作代码 - @JSONField(name = "oprn_oprt_code") + @JsonProperty("oprn_oprt_code") private String oprnOprtCode; // 23. 手术操作名称 - @JSONField(name = "oprn_oprt_name") + @JsonProperty("oprn_oprt_name") private String oprnOprtName; // 24. 计划生育服务证号 - @JSONField(name = "fpsc_no") + @JsonProperty("fpsc_no") private String fpscNo; // 25. 生育类别 - @JSONField(name = "matn_type") + @JsonProperty("matn_type") private String matnType; // 26. 计划生育手术类别 - @JSONField(name = "birctrl_type") + @JsonProperty("birctrl_type") private String birctrlType; // 27. 晚育标志 - @JSONField(name = "latechb_flag") + @JsonProperty("latechb_flag") private String latechbFlag; // 28. 孕周数 - @JSONField(name = "geso_val") + @JsonProperty("geso_val") private BigDecimal gesoVal; // 29. 胎次 - @JSONField(name = "fetts") + @JsonProperty("fetts") private BigDecimal fetts; // 30. 胎儿数 - @JSONField(name = "fetus_cnt") + @JsonProperty("fetus_cnt") private BigDecimal fetusCnt; // 31. 早产标志 - @JSONField(name = "pret_flag") + @JsonProperty("pret_flag") private String pretFlag; // 32. 计划生育手术或生育日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "birctrl_matn_date") + @JsonProperty("birctrl_matn_date") private Date birctrlMatnDate; // 33. 病种类型 - @JSONField(name = "dise_type_code") + @JsonProperty("dise_type_code") private String diseTypeCode; // 34. 字段扩展 - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; // 35. 参保地医保区划 - @JSONField(name = "insuplc_admdvs") + @JsonProperty("insuplc_admdvs") private String insuplcAdmdvs; // 36. 就医地医保区划 - @JSONField(name = "mdtrtarea_admvs") + @JsonProperty("mdtrtarea_admvs") private String mdtrtareaAdmvs; // 37. 外伤标识(仅对异地根据情况填写) - @JSONField(name = "trum_flag") + @JsonProperty("trum_flag") private String trumFlag; // 38. 涉及第三方标志(仅对异地根据情况填写) - @JSONField(name = "rel_ttp_flag") + @JsonProperty("rel_ttp_flag") private String relTtpFlag; // 39. 就诊人群类型(仅对异地根据情况填写) - @JSONField(name = "mdtrt_grp_type") + @JsonProperty("mdtrt_grp_type") private String mdtrtGrpType; // 40. 入院诊断信息集合 private List diseInfoParams; // 41. 就诊ID(输出) - @JSONField(name = "mdtrtId") + @JsonProperty("mdtrtId") private String mdtrt_id; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2402DiseInfoParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2402DiseInfoParam.java index 1f355ecdf..4f4f2cb73 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2402DiseInfoParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2402DiseInfoParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,49 +22,49 @@ import java.util.Date; public class HospAdm2402DiseInfoParam { // 1. 就诊ID - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 诊断类别 - @JSONField(name = "diag_type") + @JsonProperty("diag_type") private String diagType; // 4. 主诊断标志 - @JSONField(name = "maindiag_flag") + @JsonProperty("maindiag_flag") private String maindiagFlag; // 5. 诊断排序号 - @JSONField(name = "diag_srt_no") + @JsonProperty("diag_srt_no") private BigDecimal diagSrtNo; // 6. 诊断代码 - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; // 7. 诊断名称 - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; // 8. 诊断科室 - @JSONField(name = "diag_dept") + @JsonProperty("diag_dept") private String diagDept; // 9. 诊断医生编码 - @JSONField(name = "dise_dor_no") + @JsonProperty("dise_dor_no") private String diseDorNo; // 10. 诊断医生姓名 - @JSONField(name = "dise_dor_name") + @JsonProperty("dise_dor_name") private String diseDorName; // 11. 诊断时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "diag_time") + @JsonProperty("diag_time") private Date diagTime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2402DscgInfoParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2402DscgInfoParam.java index 5733e1cc1..5ae7ca8b0 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2402DscgInfoParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2402DscgInfoParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,105 +22,105 @@ import java.util.List; @EqualsAndHashCode(callSuper = false) public class HospAdm2402DscgInfoParam { // 1. 就诊ID - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 险种类型 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 4. 结束时间(出院时间) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "endtime") + @JsonProperty("endtime") private Date endtime; // 5. 病种编码 - @JSONField(name = "dise_codg") + @JsonProperty("dise_codg") private String diseCodg; // 6. 病种名称 - @JSONField(name = "dise_name") + @JsonProperty("dise_name") private String diseName; // 7. 手术操作代码(日间手术病种时必填) - @JSONField(name = "oprn_oprt_code") + @JsonProperty("oprn_oprt_code") private String oprnOprtCode; // 8. 手术操作名称 - @JSONField(name = "oprn_oprt_name") + @JsonProperty("oprn_oprt_name") private String oprnOprtName; // 9. 计划生育服务证号 - @JSONField(name = "fpsc_no") + @JsonProperty("fpsc_no") private String fpscNo; // 10. 生育类别 - @JSONField(name = "matn_type") + @JsonProperty("matn_type") private String matnType; // 11. 计划生育手术类别 - @JSONField(name = "birctrl_type") + @JsonProperty("birctrl_type") private String birctrlType; // 12. 晚育标志 - @JSONField(name = "latechb_flag") + @JsonProperty("latechb_flag") private String latechbFlag; // 13. 孕周数 - @JSONField(name = "esso_val") + @JsonProperty("esso_val") private BigDecimal essoVal; // 14. 胎次 - @JSONField(name = "fetts") + @JsonProperty("fetts") private BigDecimal fetts; // 15. 胎儿数 - @JSONField(name = "fetus_cnt") + @JsonProperty("fetus_cnt") private BigDecimal fetusCnt; // 16. 早产标志 - @JSONField(name = "pret_flag") + @JsonProperty("pret_flag") private String pretFlag; // 17. 计划生育手术或生育日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "birctrl_matn_date") + @JsonProperty("birctrl_matn_date") private Date birctrlMatnDate; // 18. 伴有并发症标志 - @JSONField(name = "cop_flag") + @JsonProperty("cop_flag") private String copFlag; // 19. 出院科室编码 - @JSONField(name = "dscg_dept_codg") + @JsonProperty("dscg_dept_codg") private String dscgDeptCodg; // 20. 出院科室名称 - @JSONField(name = "dscg_dept_name") + @JsonProperty("dscg_dept_name") private String dscgDeptName; // 21. 出院床位 - @JSONField(name = "dscg_bed") + @JsonProperty("dscg_bed") private String dscgBed; // 22. 离院方式 - @JSONField(name = "dscg_way") + @JsonProperty("dscg_way") private String dscgWay; // 23. 死亡日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "die_date") + @JsonProperty("die_date") private Date dieDate; // 24. 字段扩展 - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; // 25. 出院诊断信息 diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2403AdmInfoParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2403AdmInfoParam.java index 28c8fbe75..ee57ae849 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2403AdmInfoParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2403AdmInfoParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,157 +22,157 @@ import java.util.List; public class HospAdm2403AdmInfoParam { // 1. 就诊ID - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 联系人姓名 - @JSONField(name = "coner_name") + @JsonProperty("coner_name") private String conerName; // 4. 联系电话 - @JSONField(name = "tel") + @JsonProperty("tel") private String tel; // 5. 开始时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "begntime") + @JsonProperty("begntime") private Date begntime; // 6. 结束时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "endtime") + @JsonProperty("endtime") private Date endtime; // 7. 就诊凭证类型 - @JSONField(name = "mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; // 8. 医疗类别 - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; // 9. 住院/门诊号 - @JSONField(name = "ipt_otp_no") + @JsonProperty("ipt_otp_no") private String iptOtpNo; // 10. 病历号 - @JSONField(name = "medrcdno") + @JsonProperty("medrcdno") private String medrcdno; // 11. 主治医生编码 - @JSONField(name = "atddr_no") + @JsonProperty("atddr_no") private String atddrNo; // 12. 主诊医师姓名 - @JSONField(name = "chfpdr_name") + @JsonProperty("chfpdr_name") private String chfpdrName; // 13. 入院诊断描述 - @JSONField(name = "adm_diag_dscr") + @JsonProperty("adm_diag_dscr") private String admDiagDscr; // 14. 入院科室编码 - @JSONField(name = "adm_dept_codg") + @JsonProperty("adm_dept_codg") private String admDeptCodg; // 15. 入院科室名称 - @JSONField(name = "adm_dept_name") + @JsonProperty("adm_dept_name") private String admDeptName; // 16. 入院床位 - @JSONField(name = "adm_bed") + @JsonProperty("adm_bed") private String admBed; // 17. 住院主诊断代码 - @JSONField(name = "dscg_maindiag_code") + @JsonProperty("dscg_maindiag_code") private String dscgMaindiagCode; // 18. 住院主诊断名称 - @JSONField(name = "dscg_maindiag_name") + @JsonProperty("dscg_maindiag_name") private String dscgMaindiagName; // 19. 主要病情描述 - @JSONField(name = "main_cond_dscr") + @JsonProperty("main_cond_dscr") private String mainCondDscr; // 20. 病种编码 - @JSONField(name = "dise_codg") + @JsonProperty("dise_codg") private String diseCodg; // 21. 病种名称 - @JSONField(name = "dise_name") + @JsonProperty("dise_name") private String diseName; // 22. 手术操作代码 - @JSONField(name = "oprn_oprt_code") + @JsonProperty("oprn_oprt_code") private String oprnOprtCode; // 23. 手术操作名称 - @JSONField(name = "oprn_oprt_name") + @JsonProperty("oprn_oprt_name") private String oprnOprtName; // 24. 计划生育服务证号 - @JSONField(name = "fpsc_no") + @JsonProperty("fpsc_no") private String fpscNo; // 25. 生育类别 - @JSONField(name = "matn_type") + @JsonProperty("matn_type") private String matnType; // 26. 计划生育手术类别 - @JSONField(name = "birctrl_type") + @JsonProperty("birctrl_type") private String birctrlType; // 27. 晚育标志 - @JSONField(name = "latechb_flag") + @JsonProperty("latechb_flag") private String latechbFlag; // 28. 孕周数 - @JSONField(name = "esso_val") + @JsonProperty("esso_val") private Integer essoVal; // 29. 胎次 - @JSONField(name = "fetts") + @JsonProperty("fetts") private Integer fetts; // 30. 胎儿数 - @JSONField(name = "fetus_cnt") + @JsonProperty("fetus_cnt") private Integer fetusCnt; // 31. 早产标志 - @JSONField(name = "pret_flag") + @JsonProperty("pret_flag") private String pretFlag; // 32. 计划生育手术或生育日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "birctrl_matn_date") + @JsonProperty("birctrl_matn_date") private Date birctrlMatnDate; // 33. 病种编号 - @JSONField(name = "dise_type_code") + @JsonProperty("dise_type_code") private String diseTypeCode; // 34. 字段扩展 - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; // 35. 外伤标识(仅对异地根据情况填写) - @JSONField(name = "trum_flag") + @JsonProperty("trum_flag") private String trumFlag; // 36. 涉及第三方标志(仅对异地根据情况填写) - @JSONField(name = "rel_ttp_flag") + @JsonProperty("rel_ttp_flag") private String relTtpFlag; // 37. 就诊人群类型(仅对异地根据情况填写) - @JSONField(name = "mdtrt_grp_type") + @JsonProperty("mdtrt_grp_type") private String mdtrtGrpType; // 38. 入院诊断信息集合 diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2403DiseInfoParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2403DiseInfoParam.java index 16847db09..d65323587 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2403DiseInfoParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2403DiseInfoParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,53 +22,53 @@ import java.util.Date; public class HospAdm2403DiseInfoParam { // 1. 就诊ID - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 诊断类别 - @JSONField(name = "diag_type") + @JsonProperty("diag_type") private String diagType; // 4. 主诊断标志 - @JSONField(name = "maindiag_flag") + @JsonProperty("maindiag_flag") private String maindiagFlag; // 5. 诊断排序号 - @JSONField(name = "diag_srt_no") + @JsonProperty("diag_srt_no") private BigDecimal diagSrtNo; // 6. 诊断代码 - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; // 7. 诊断名称 - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; // 8. 入院病情 - @JSONField(name = "adm_cond") + @JsonProperty("adm_cond") private String admCond; // 9. 诊断科室 - @JSONField(name = "diag_dept") + @JsonProperty("diag_dept") private String diagDept; // 10. 诊断医生编码 - @JSONField(name = "dise_dor_no") + @JsonProperty("dise_dor_no") private String diseDorNo; // 11. 诊断医生姓名 - @JSONField(name = "dise_dor_name") + @JsonProperty("dise_dor_name") private String diseDorName; // 12. 诊断时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "diag_time") + @JsonProperty("diag_time") private Date diagTime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2404AdmCnlParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2404AdmCnlParam.java index ac9f395c7..39e05d686 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2404AdmCnlParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2404AdmCnlParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -18,15 +18,15 @@ import lombok.experimental.Accessors; public class HospAdm2404AdmCnlParam { // 1. 就诊ID - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 字段扩展 - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2406SmAttrUpParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2406SmAttrUpParam.java index 240a6e884..b968e05df 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2406SmAttrUpParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2406SmAttrUpParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -17,46 +17,46 @@ import lombok.experimental.Accessors; public class HospAdm2406SmAttrUpParam { // 1. 就诊ID - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 人员证件类型 - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; // 4. 证件号码 - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 5. 人员姓名 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 6. 住院/门诊号 - @JSONField(name = "ipt_otp_no") + @JsonProperty("ipt_otp_no") private String iptOtpNo; // 7. 就医人员特殊标识类型 - @JSONField(name = "ipt_psn_sp_flag_type") + @JsonProperty("ipt_psn_sp_flag_type") private String iptPsnSpFlagType; // 8. 就医人员特殊标识 - @JSONField(name = "ipt_psn_sp_flag") + @JsonProperty("ipt_psn_sp_flag") private String iptPsnSpFlag; // 9. 备注 - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; // 10. 医保区划 - @JSONField(name = "admdvs") + @JsonProperty("admdvs") private String admdvs; // 11. 就医人员特殊标识明细id(输出) - @JSONField(name = "ipt_psn_sp_flag_detl_id") + @JsonProperty("ipt_psn_sp_flag_detl_id") private String iptPsnSpFlagDetlId; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2407SmAttrSelectParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2407SmAttrSelectParam.java index 9c11e6e48..e7c40f7ec 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2407SmAttrSelectParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2407SmAttrSelectParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -19,59 +19,59 @@ import java.math.BigDecimal; public class HospAdm2407SmAttrSelectParam { // 1. 分页条数 - @JSONField(name = "page_num") + @JsonProperty("page_num") private BigDecimal pageNum; // 2. 分页大小 - @JSONField(name = "page_size") + @JsonProperty("page_size") private BigDecimal pageSize; // 3. 就医人员特殊标识明细id - @JSONField(name = "ipt_psn_sp_flag_detl_id") + @JsonProperty("ipt_psn_sp_flag_detl_id") private String iptPsnSpFlagDetlId; // 4. 就诊ID - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 5. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 6. 人员证件类型 - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; // 7. 证件号码 - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 8. 人员姓名 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 9. 定点医药机构编号 - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; // 10. 定点医药机构名称 - @JSONField(name = "fixmedins_name") + @JsonProperty("fixmedins_name") private String fixmedinsName; // 11. 住院/门诊号 - @JSONField(name = "ipt_otp_no") + @JsonProperty("ipt_otp_no") private String iptOtpNo; // 12. 就医人员特殊标识类型 - @JSONField(name = "ipt_psn_sp_flag_type") + @JsonProperty("ipt_psn_sp_flag_type") private String iptPsnSpFlagType; // 13. 就医人员特殊标识 - @JSONField(name = "ipt_psn_sp_flag") + @JsonProperty("ipt_psn_sp_flag") private String iptPsnSpFlag; // 14. 医保区划 - @JSONField(name = "admdvs") + @JsonProperty("admdvs") private String admdvs; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2407SmAttrSelectResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2407SmAttrSelectResult.java index a348da9de..b84512d64 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2407SmAttrSelectResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospAdm2407SmAttrSelectResult.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -17,51 +17,51 @@ import lombok.experimental.Accessors; public class HospAdm2407SmAttrSelectResult { // 1. 就医人员特殊标识明细id - @JSONField(name = "ipt_psn_sp_flag_detl_id") + @JsonProperty("ipt_psn_sp_flag_detl_id") private String iptPsnSpFlagDetlId; // 2. 就诊ID - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; // 3. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 4. 人员证件类型 - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; // 5. 证件号码 - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 6. 人员姓名 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 7. 定点医药机构编号 - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; // 8. 定点医药机构名称 - @JSONField(name = "fixmedins_name") + @JsonProperty("fixmedins_name") private String fixmedinsName; // 9. 住院/门诊号 - @JSONField(name = "ipt_otp_no") + @JsonProperty("ipt_otp_no") private String iptOtpNo; // 10. 就医人员特殊标识类型 - @JSONField(name = "ipt_psn_sp_flag_type") + @JsonProperty("ipt_psn_sp_flag_type") private String iptPsnSpFlagType; // 11. 就医人员特殊标识 - @JSONField(name = "ipt_psn_sp_flag") + @JsonProperty("ipt_psn_sp_flag") private String iptPsnSpFlag; // 12. 医保区划 - @JSONField(name = "admdvs") + @JsonProperty("admdvs") private String admdvs; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3401Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3401Param.java index 5d0b54632..44f394ea9 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3401Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3401Param.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; @@ -16,74 +17,74 @@ import java.util.Date; public class HospDept3401Param { // 1. 医院科室编码(院内唯一编码) - @JSONField(name = "hosp_dept_codg") // JSON字段名映射 + @JsonProperty("hosp_dept_codg") // JSON字段名映射 private String hospDeptCodg; // 2. 科别(参照科室代码) - @JSONField(name = "caty") + @JsonProperty("caty") private String caty; // 3. 医院科室名称 - @JSONField(name = "hosp_dept_name") + @JsonProperty("hosp_dept_name") private String hospDeptName; // 4. 开始时间(日期时间格式) - @JSONField(name = "begntime", format = "yyyy-MM-dd HH:mm:ss") // 指定时间格式 + @JsonProperty("begntime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 指定时间格式 private Date begnTime; // 5. 结束时间(日期时间格式) - @JSONField(name = "endtime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("endtime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; // 6. 科室简介 - @JSONField(name = "itro") + @JsonProperty("itro") private String itro; // 7. 科室负责人姓名 - @JSONField(name = "dept_resper_name") + @JsonProperty("dept_resper_name") private String deptResperName; // 8. 科室负责人电话 - @JSONField(name = "dept_resper_tel") + @JsonProperty("dept_resper_tel") private String deptResperTel; // 9. 科室医疗服务范围 - @JSONField(name = "dept_med_serv_scp") + @JsonProperty("dept_med_serv_scp") private String deptMedServScp; // 10. 科室成立日期(日期格式) - @JSONField(name = "dept_estbdat", format = "yyyy-MM-dd") + @JsonProperty("dept_estbdat") @JsonFormat(pattern = "yyyy-MM-dd") private Date deptEstbdat; // 11. 批准床位数量(长整型) - @JSONField(name = "aprv_bed_cnt") + @JsonProperty("aprv_bed_cnt") private Long aprvBedCnt; // 12. 医保认可床位数(长整型) - @JSONField(name = "hi_crtf_bed_cnt") + @JsonProperty("hi_crtf_bed_cnt") private Long hiCrtfBedCnt; // 13. 统筹区编号 - @JSONField(name = "poolarea_no") + @JsonProperty("poolarea_no") private String poolareaNo; // 14. 医师人数(整型) - @JSONField(name = "dr_psncnt") + @JsonProperty("dr_psncnt") private Integer drPsncnt; // 15. 药师人数(整型) - @JSONField(name = "phar_psncnt") + @JsonProperty("phar_psncnt") private Integer pharPsncnt; // 16. 护士人数(整型) - @JSONField(name = "nurs_psncnt") + @JsonProperty("nurs_psncnt") private Integer nursPsncnt; // 17. 技师人数(整型) - @JSONField(name = "tecn_psncnt") + @JsonProperty("tecn_psncnt") private Integer tecnPsncnt; // 18. 备注 - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3402Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3402Param.java index ffcc1e790..be84844ce 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3402Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3402Param.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; @@ -16,74 +17,74 @@ import java.util.Date; public class HospDept3402Param { // 1. 医院科室编码(院内唯一编码) - @JSONField(name = "hosp_dept_codg") + @JsonProperty("hosp_dept_codg") private String hospDeptCodg; // 2. 医院科室名称 - @JSONField(name = "hosp_dept_name") + @JsonProperty("hosp_dept_name") private String hospDeptName; // 3. 开始时间(日期时间格式) - @JSONField(name = "begntime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("begntime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date begnTime; // 4. 结束时间(日期时间格式) - @JSONField(name = "endtime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("endtime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; // 5. 科室简介 - @JSONField(name = "itro") + @JsonProperty("itro") private String itro; // 6. 科室负责人姓名 - @JSONField(name = "dept_resper_name") + @JsonProperty("dept_resper_name") private String deptResperName; // 7. 科室负责人电话 - @JSONField(name = "dept_resper_tel") + @JsonProperty("dept_resper_tel") private String deptResperTel; // 8. 科室医疗服务范围 - @JSONField(name = "dept_med_serv_scp") + @JsonProperty("dept_med_serv_scp") private String deptMedServScp; // 9. 科别(参照科室代码) - @JSONField(name = "caty") + @JsonProperty("caty") private String caty; // 10. 科室成立日期(日期格式) - @JSONField(name = "dept_estbdat", format = "yyyy-MM-dd") + @JsonProperty("dept_estbdat") @JsonFormat(pattern = "yyyy-MM-dd") private Date deptEstbdat; // 11. 批准床位数量(长整型) - @JSONField(name = "aprv_bed_cnt") + @JsonProperty("aprv_bed_cnt") private Long aprvBedCnt; // 12. 医保认可床位数(长整型) - @JSONField(name = "hi_crtf_bed_cnt") + @JsonProperty("hi_crtf_bed_cnt") private Long hiCrtfBedCnt; // 13. 统筹区编号 - @JSONField(name = "poolarea_no") + @JsonProperty("poolarea_no") private String poolareaNo; // 14. 医师人数(整型) - @JSONField(name = "dr_psncnt") + @JsonProperty("dr_psncnt") private Integer drPsncnt; // 15. 药师人数(整型) - @JSONField(name = "phar_psncnt") + @JsonProperty("phar_psncnt") private Integer pharPsncnt; // 16. 护士人数(整型) - @JSONField(name = "nurs_psncnt") + @JsonProperty("nurs_psncnt") private Integer nursPsncnt; // 17. 技师人数(整型) - @JSONField(name = "tecn_psncnt") + @JsonProperty("tecn_psncnt") private Integer tecnPsncnt; // 18. 备注 - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3403Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3403Param.java index 528294b96..33ba7845c 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3403Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospDept3403Param.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; @@ -15,14 +16,14 @@ import java.util.Date; */ public class HospDept3403Param { // 1. 医院科室编码(院内唯一编码) - @JSONField(name = "hosp_dept_codg") + @JsonProperty("hosp_dept_codg") private String hospDeptCodg; // 2. 医院科室名称 - @JSONField(name = "hosp_dept_name") + @JsonProperty("hosp_dept_name") private String hospDeptName; // 3. 开始时间(日期时间格式) - @JSONField(name = "begntime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("begntime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date begnTime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrf2501ARefmedinParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrf2501ARefmedinParam.java index d51cb3b8f..c5b01dd4f 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrf2501ARefmedinParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrf2501ARefmedinParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,88 +20,88 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class HospTrf2501ARefmedinParam { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 险种类型 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 3. 联系电话 - @JSONField(name = "tel") + @JsonProperty("tel") private String tel; // 4. 联系地址 - @JSONField(name = "addr") + @JsonProperty("addr") private String addr; // 5. 参保机构医保区划 - @JSONField(name = "insu_optins") + @JsonProperty("insu_optins") private String insuOptins; // 6. 诊断代码 - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; // 7. 诊断名称 - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; // 8. 疾病病情描述 - @JSONField(name = "dise_cond_dscr") + @JsonProperty("dise_cond_dscr") private String diseCondDscr; // 9. 转往定点医药机构编号 - @JSONField(name = "reflin_medins_no") + @JsonProperty("reflin_medins_no") private String reflinMedinsNo; // 10. 转往医院名称 - @JSONField(name = "reflin_medins_name") + @JsonProperty("reflin_medins_name") private String reflinMedinsName; // 11. 就医地行政区划 - @JSONField(name = "mdtrtarea_admdvs") + @JsonProperty("mdtrtarea_admdvs") private String mdtrtareaAdmdvs; // 12. 医院同意转院标志 - @JSONField(name = "hosp_agre_refl_flag") + @JsonProperty("hosp_agre_refl_flag") private String hospAgreReflFlag; // 13. 转院类型 - @JSONField(name = "refl_type") + @JsonProperty("refl_type") private String reflType; // 14. 转院日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "refl_date") + @JsonProperty("refl_date") private Date reflDate; // 15. 转院原因 - @JSONField(name = "refl_rea") + @JsonProperty("refl_rea") private String reflRea; // 16. 转院意见 - @JSONField(name = "refl_opnn") + @JsonProperty("refl_opnn") private String reflOpnn; // 17. 开始日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "begndate") + @JsonProperty("begndate") private Date begndate; // 18. 结束日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "enddate") + @JsonProperty("enddate") private Date enddate; // 19. 转院前就诊id - @JSONField(name = "refl_old_mdtrt_id") + @JsonProperty("refl_old_mdtrt_id") private String reflOldMdtrtId; // 20. 待遇申报明细流水号(输出) - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrf2501RefmedinParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrf2501RefmedinParam.java index defbf7ca8..208e675db 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrf2501RefmedinParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrf2501RefmedinParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,88 +20,88 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class HospTrf2501RefmedinParam { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 险种类型 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 3. 联系电话 - @JSONField(name = "tel") + @JsonProperty("tel") private String tel; // 4. 联系地址 - @JSONField(name = "addr") + @JsonProperty("addr") private String addr; // 5. 参保机构医保区划 - @JSONField(name = "insu_optins") + @JsonProperty("insu_optins") private String insuOptins; // 6. 诊断代码 - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; // 7. 诊断名称 - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; // 8. 疾病病情描述 - @JSONField(name = "dise_cond_dscr") + @JsonProperty("dise_cond_dscr") private String diseCondDscr; // 9. 转往定点医药机构编号 - @JSONField(name = "reflin_medins_no") + @JsonProperty("reflin_medins_no") private String reflinMedinsNo; // 10. 转往医院名称 - @JSONField(name = "reflin_medins_name") + @JsonProperty("reflin_medins_name") private String reflinMedinsName; // 11. 就医地行政区划 - @JSONField(name = "mdtrtarea_admdvs") + @JsonProperty("mdtrtarea_admdvs") private String mdtrtareaAdmdvs; // 12. 医院同意转院标志 - @JSONField(name = "hosp_agre_refl_flag") + @JsonProperty("hosp_agre_refl_flag") private String hospAgreReflFlag; // 13. 转院类型 - @JSONField(name = "refl_type") + @JsonProperty("refl_type") private String reflType; // 14. 转院日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "refl_date") + @JsonProperty("refl_date") private Date reflDate; // 15. 转院原因 - @JSONField(name = "refl_rea") + @JsonProperty("refl_rea") private String reflRea; // 16. 转院意见 - @JSONField(name = "refl_opnn") + @JsonProperty("refl_opnn") private String reflOpnn; // 17. 开始日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "begndate") + @JsonProperty("begndate") private Date begndate; // 18. 结束日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "enddate") + @JsonProperty("enddate") private Date enddate; // 19. 转诊使用标志 - @JSONField(name = "refl_used_flag") + @JsonProperty("refl_used_flag") private String reflUsedFlag; // 20. 待遇申报明细流水号(输出) - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrfCxl2502Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrfCxl2502Param.java index 4d24602c5..71f7ddbb8 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrfCxl2502Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/HospTrfCxl2502Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -17,14 +17,14 @@ import lombok.experimental.Accessors; public class HospTrfCxl2502Param { // 1. 待遇申报明细流水号 - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 备注 - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info1101PerinfoResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info1101PerinfoResult.java index 148743a50..47b618ce9 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info1101PerinfoResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info1101PerinfoResult.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.core.common.core.domain.HisBaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,36 +21,36 @@ import java.util.Date; public class Info1101PerinfoResult extends HisBaseEntity implements Serializable { private static final long serialVersionUID = 1L; //人员编号 - @JSONField(name="psn_no") + @JsonProperty("psn_no") private String psnNo; //人员证件类型 - @JSONField(name="psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; //证件号码 - @JSONField(name="certno") + @JsonProperty("certno") private String certno; //人员姓名 - @JSONField(name="psn_name") + @JsonProperty("psn_name") private String psnName; //性别 - @JSONField(name="gend") + @JsonProperty("gend") private String gend; //民族 - @JSONField(name="naty") + @JsonProperty("naty") private String naty; //出生日期 - @JSONField(name="brdy") + @JsonProperty("brdy") private Date brdy; //年龄 - @JSONField(name="age") + @JsonProperty("age") private Double age; //参保地医保区划 - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String insuplcAdmdvs; //险种类型 - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String insutype; //余额 - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String balc; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info1101ReadcardParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info1101ReadcardParam.java index d22e43d15..0759b979a 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info1101ReadcardParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info1101ReadcardParam.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.core.common.core.domain.HisBaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,24 +20,24 @@ import java.io.Serializable; public class Info1101ReadcardParam extends HisBaseEntity implements Serializable { private static final long serialVersionUID = 1L; //就诊凭证类型 - @JSONField(name="mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; //就诊凭证编号 - @JSONField(name="mdtrt_cert_no") + @JsonProperty("mdtrt_cert_no") private String mdtrtCertNo; //卡识别码 - @JSONField(name="card_sn") + @JsonProperty("card_sn") private String cardSn; //开始时间 - @JSONField(name="begntime") + @JsonProperty("begntime") private String begntime; //人员证件类型 - @JSONField(name="psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; //证件号码 - @JSONField(name="certno") + @JsonProperty("certno") private String certno; //人员姓名 - @JSONField(name="psn_name") + @JsonProperty("psn_name") private String psnName; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info5301Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info5301Param.java index f2ba33143..98b85bd83 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info5301Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Info5301Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -9,6 +9,6 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) public class Info5301Param { - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/InvoiceBaseInfoDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/InvoiceBaseInfoDto.java index 91d6fddd1..06ab81ca5 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/InvoiceBaseInfoDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/InvoiceBaseInfoDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; @@ -23,7 +23,7 @@ import java.util.Date; public class InvoiceBaseInfoDto { //主键 @TableId(type = IdType.ASSIGN_ID) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String id; private String setlId;//结算id diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowReg25007Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowReg25007Param.java index 71d09564c..be5a92aeb 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowReg25007Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowReg25007Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,36 +21,36 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class MatAllowReg25007Param { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 生育类别 - @JSONField(name = "matn_type") + @JsonProperty("matn_type") private String matnType; // 3. 计划生育手术或生育日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "birctrl_matn_date") + @JsonProperty("birctrl_matn_date") private Date birctrlMatnDate; // 4. 孕周数 - @JSONField(name = "geso_val") + @JsonProperty("geso_val") private BigDecimal gesoVal; // 5. 胎次 - @JSONField(name = "fetts") + @JsonProperty("fetts") private BigDecimal fetts; // 6. 胎儿数 - @JSONField(name = "fetus_cnt") + @JsonProperty("fetus_cnt") private BigDecimal fetusCnt; // 7. 经办人姓名 - @JSONField(name = "opter_name") + @JsonProperty("opter_name") private String opterName; // 8. 结算ID - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowReg25007Result.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowReg25007Result.java index 27dc838ce..52ad1edac 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowReg25007Result.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowReg25007Result.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,62 +21,62 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class MatAllowReg25007Result { // 1. 生育津贴登记ID - @JSONField(name = "matn_alwn_reg_id") + @JsonProperty("matn_alwn_reg_id") private String matnAlwnRegId; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 人员姓名 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 4. 生育类别 - @JSONField(name = "matn_type") + @JsonProperty("matn_type") private String matnType; // 5. 计划生育手术或生育日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "birctrl_matn_date") + @JsonProperty("birctrl_matn_date") private Date birctrlMatnDate; // 6. 孕周数 - @JSONField(name = "geso_val") + @JsonProperty("geso_val") private BigDecimal gesoVal; // 7. 胎次 - @JSONField(name = "fetts") + @JsonProperty("fetts") private BigDecimal fetts; // 8. 胎儿数 - @JSONField(name = "fetus_cnt") + @JsonProperty("fetus_cnt") private BigDecimal fetusCnt; // 9. 结算ID - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; // 10. 有效标志 - @JSONField(name = "vali_flag") + @JsonProperty("vali_flag") private String valiFlag; // 11. 审核标志 - @JSONField(name = "rchk_flag") + @JsonProperty("rchk_flag") private String rchkFlag; // 12. 审核意见 - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; // 13. 经办人姓名 - @JSONField(name = "opter_name") + @JsonProperty("opter_name") private String opterName; // 14. 经办时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "opt_time") + @JsonProperty("opt_time") private Date optTime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowRegSel25008Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowRegSel25008Param.java index 31ea6e476..e14979ab9 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowRegSel25008Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MatAllowRegSel25008Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,62 +21,62 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class MatAllowRegSel25008Param { // 1. 生育津贴登记ID - @JSONField(name = "matn_alwn_reg_id") + @JsonProperty("matn_alwn_reg_id") private String matnAlwnRegId; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 人员姓名 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 4. 生育类别 - @JSONField(name = "matn_type") + @JsonProperty("matn_type") private String matnType; // 5. 计划生育手术或生育日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "birctrl_matn_date") + @JsonProperty("birctrl_matn_date") private Date birctrlMatnDate; // 6. 孕周数 - @JSONField(name = "geso_val") + @JsonProperty("geso_val") private BigDecimal gesoVal; // 7. 胎次 - @JSONField(name = "fetts") + @JsonProperty("fetts") private BigDecimal fetts; // 8. 胎儿数 - @JSONField(name = "fetus_cnt") + @JsonProperty("fetus_cnt") private BigDecimal fetusCnt; // 9. 结算ID - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; // 10. 有效标志 - @JSONField(name = "vali_flag") + @JsonProperty("vali_flag") private String valiFlag; // 11. 审核标志 - @JSONField(name = "rchk_flag") + @JsonProperty("rchk_flag") private String rchkFlag; // 12. 审核意见 - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; // 13. 经办人姓名 - @JSONField(name = "opter_name") + @JsonProperty("opter_name") private String opterName; // 14. 经办时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "opt_time") + @JsonProperty("opt_time") private Date optTime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3503Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3503Param.java index afdab2e8b..a1d8382d0 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3503Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3503Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -24,90 +24,90 @@ import java.util.Date; public class Medical3503Param { // 1. 医疗目录编码(字符型,50位,必填) - @JSONField(name = "med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; // 2. 定点医药机构目录编号(字符型,30位,必填) - @JSONField(name = "fixmedins_hilist_id") + @JsonProperty("fixmedins_hilist_id") private String fixmedinsHilistId; // 3. 定点医药机构目录名称(字符型,200位,必填) - @JSONField(name = "fixmedins_hilist_name") + @JsonProperty("fixmedins_hilist_name") private String fixmedinsHilistName; // 4. 随货单号(字符型,50位,非必填) - @JSONField(name = "dynt_no") + @JsonProperty("dynt_no") private String dyntNo; // 5. 定点医药机构批次流水号(字符型,30位,必填) - @JSONField(name = "fixmedins_bchno") + @JsonProperty("fixmedins_bchno") private String fixmedinsBchno; // 6. 供应商名称(字符型,200位,必填) - @JSONField(name = "spler_name") + @JsonProperty("spler_name") private String splerName; // 7. 供应商许可证号(字符型,50位,非必填) - @JSONField(name = "spler_pmtno") + @JsonProperty("spler_pmtno") private String splerPmtno; // 8. 生产批号(字符型,30位,必填) - @JSONField(name = "manu_lotnum") + @JsonProperty("manu_lotnum") private String manuLotnum; // 9. 生产厂家名称(字符型,200位,必填) - @JSONField(name = "prodentp_name") + @JsonProperty("prodentp_name") private String prodentpName; // 10. 批准文号(字符型,100位,必填) - @JSONField(name = "aprvno") + @JsonProperty("aprvno") private String aprvno; // 11. 生产日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "manu_date") + @JsonProperty("manu_date") @JsonFormat(pattern = "yyyy-MM-dd") private Date manuDate; // 12. 有效期止(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "expy_end") + @JsonProperty("expy_end") @JsonFormat(pattern = "yyyy-MM-dd") private Date expyEnd; // 13. 最终成交单价(数值型,16位含6位小数,非必填) - @JSONField(name = "finl_trns_pric") + @JsonProperty("finl_trns_pric") private BigDecimal finlTrnsPric; // 14. 采购/退货数量(数值型,16位含4位小数,必填) - @JSONField(name = "purc_retn_cnt") + @JsonProperty("purc_retn_cnt") private BigDecimal purcRetnCnt; // 15. 采购发票编码(字符型,50位,非必填) - @JSONField(name = "purc_invo_codg") + @JsonProperty("purc_invo_codg") private String purcInvoCodg; // 16. 采购发票号(字符型,50位,非必填) - @JSONField(name = "purc_invo_no") + @JsonProperty("purc_invo_no") private String purcInvoNo; // 17. 处方药标志(字符型,3位,必填) - @JSONField(name = "rx_flag") + @JsonProperty("rx_flag") private String rxFlag; // 18. 采购/退货入库时间(日期时间型,必填,格式:yyyy-MM-dd HH:mm:ss) - @JSONField(name = "purc_retn_stoin_time") + @JsonProperty("purc_retn_stoin_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date purcRetnStoinTime; // 19. 采购/退货经办人姓名(字符型,50位,必填) - @JSONField(name = "purc_retn_opter_name") + @JsonProperty("purc_retn_opter_name") private String purcRetnOpterName; // 20. 商品赠送标志(字符型,3位,必填) - @JSONField(name = "prod_geay_flag") + @JsonProperty("prod_geay_flag") private String prodGeayFlag; // 21. 备注(字符型,500位,非必填) - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3505Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3505Param.java index b36b7af79..8ba131f3a 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3505Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3505Param.java @@ -3,8 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,153 +25,153 @@ import java.util.Date; public class Medical3505Param { // 1. 医疗目录编码(字符型,50位,必填) - @JSONField(name = "med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; // 2. 定点医药机构目录编号(字符型,30位,必填) - @JSONField(name = "fixmedins_hilist_id") + @JsonProperty("fixmedins_hilist_id") private String fixmedinsHilistId; // 3. 定点医药机构目录名称(字符型,200位,必填) - @JSONField(name = "fixmedins_hilist_name") + @JsonProperty("fixmedins_hilist_name") private String fixmedinsHilistName; // 4. 定点医药机构批次流水号(字符型,30位,必填) - @JSONField(name = "fixmedins_bchno") + @JsonProperty("fixmedins_bchno") private String fixmedinsBchno; // 5. 开方医师证件类型(字符型,6位,非必填) - @JSONField(name = "prsc_dr_cert_type") + @JsonProperty("prsc_dr_cert_type") private String prscDrCertType; // 6. 开方医师证件号码(字符型,50位,非必填) - @JSONField(name = "prsc_dr_certno") + @JsonProperty("prsc_dr_certno") private String prscDrCertno; // 7. 开方医师姓名(字符型,50位,必填) - @JSONField(name = "prsc_dr_name") + @JsonProperty("prsc_dr_name") private String prscDrName; // 8. 药师证件类型(字符型,6位,非必填) - @JSONField(name = "phar_cert_type") + @JsonProperty("phar_cert_type") private String pharCertType; // 9. 药师证件号码(字符型,50位,非必填) - @JSONField(name = "phar_certno") + @JsonProperty("phar_certno") private String pharCertno; // 10. 药师姓名(字符型,50位,必填) - @JSONField(name = "phar_name") + @JsonProperty("phar_name") private String pharName; // 11. 药师执业资格证号(字符型,50位,必填) - @JSONField(name = "phar_prac_cert_no") + @JsonProperty("phar_prac_cert_no") private String pharPracCertNo; // 12. 医保费用结算类型(字符型,6位,必填) - @JSONField(name = "hi_feesetl_type") + @JsonProperty("hi_feesetl_type") private String hiFeesetlType; // 13. 结算ID(字符型,30位,非必填) - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; // 14. 就医流水号(字符型,30位,必填) - @JSONField(name = "mdtrt_sn") + @JsonProperty("mdtrt_sn") private String mdtrtSn; // 15. 人员编号(字符型,30位,非必填) - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 16. 人员证件类型(字符型,6位,必填) - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; // 17. 证件号码(字符型,50位,非必填) - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 18. 人员姓名(字符型,50位,非必填) - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 19. 生产批号(字符型,30位,必填) - @JSONField(name = "manu_lotnum") + @JsonProperty("manu_lotnum") private String manuLotnum; // 20. 生产日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "manu_date") + @JsonProperty("manu_date") @JsonFormat(pattern = "yyyy-MM-dd") private Date manuDate; // 21. 有效期止(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "expy_end") + @JsonProperty("expy_end") @JsonFormat(pattern = "yyyy-MM-dd") private Date expyEnd; // 22. 处方药标志(字符型,3位,必填) - @JSONField(name = "rx_flag") + @JsonProperty("rx_flag") private String rxFlag; // 23. 拆零标志(字符型,3位,必填) - @JSONField(name = "trdn_flag") + @JsonProperty("trdn_flag") private String trdnFlag; // 24. 最终成交单价(数值型,16位含6位小数,非必填) - @JSONField(name = "finl_trns_pric") + @JsonProperty("finl_trns_pric") private BigDecimal finlTrnsPric; // 25. 处方号(字符型,40位,非必填) - @JSONField(name = "rxno") + @JsonProperty("rxno") private String rxno; // 26. 外购处方标志(字符型,3位,必填) - @JSONField(name = "rx_circ_flag") + @JsonProperty("rx_circ_flag") private String rxCircFlag; // 27. 零售单据号(字符型,40位,必填) - @JSONField(name = "rtal_docno") + @JsonProperty("rtal_docno") private String rtalDocno; // 29. 销售出库单据号(字符型,40位,非必填) - @JSONField(name = "stoout_no") + @JsonProperty("stoout_no") private String stooutNo; // 30. 批次号(字符型,30位,非必填) - @JSONField(name = "bchno") + @JsonProperty("bchno") private String bchno; // 32. 药品条形码(字符型,30位,非必填) - @JSONField(name = "drug_prod_barc") + @JsonProperty("drug_prod_barc") private String drugProdBarc; // 33. 货架位(字符型,20位,非必填) - @JSONField(name = "shelf_posi") + @JsonProperty("shelf_posi") private String shelfPosi; // 34. 销售/退货数量(数值型,16位含4位小数,必填) - @JSONField(name = "sel_retn_cnt") + @JsonProperty("sel_retn_cnt") private BigDecimal selRetnCnt; // 35. 销售/退货时间(日期时间型,必填,格式:yyyy-MM-dd HH:mm:ss) - @JSONField(name = "sel_retn_time") + @JsonProperty("sel_retn_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date selRetnTime; // 36. 销售/退货经办人姓名(字符型,50位,必填) - @JSONField(name = "sel_retn_opter_name") + @JsonProperty("sel_retn_opter_name") private String selRetnOpterName; // 37. 备注(字符型,500位,非必填) - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; // 38. 就诊结算类型(字符型,6位,非必填) - @JSONField(name = "mdtrt_setl_type") + @JsonProperty("mdtrt_setl_type") private String mdtrtSetlType; // 39. 溯源码节点信息(字符型,长度未明确) - @JSONField(name = "drugtracinfo") - private JSONArray drugtracinfo; + @JsonProperty("drugtracinfo") + private JsonNode drugtracinfo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3505Result.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3505Result.java index bb9e39ff9..635aa9ded 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3505Result.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3505Result.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -20,10 +20,10 @@ import lombok.experimental.Accessors; public class Medical3505Result { // 返回结果 - @JSONField(name = "retRslt") + @JsonProperty("retRslt") private String retRslt; // 返回信息 - @JSONField(name = "msgRslt") + @JsonProperty("msgRslt") private String msgRslt; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3506Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3506Param.java index 57e2d43d7..616a595d9 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3506Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3506Param.java @@ -3,8 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -24,93 +24,93 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class Medical3506Param { // 1. 医疗目录编码(字符型,50位,必填) - @JSONField(name = "med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; // 2. 定点医药机构目录编号(字符型,30位,必填) - @JSONField(name = "fixmedins_hilist_id") + @JsonProperty("fixmedins_hilist_id") private String fixmedinsHilistId; // 3. 定点医药机构目录名称(字符型,200位,必填) - @JSONField(name = "fixmedins_hilist_name") + @JsonProperty("fixmedins_hilist_name") private String fixmedinsHilistName; // 4. 定点医药机构批次流水号(字符型,30位,必填) - @JSONField(name = "fixmedins_bchno") + @JsonProperty("fixmedins_bchno") private String fixmedinsBchno; // 5. 结算ID(字符型,30位,非必填) - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; // 6. 人员编号(字符型,30位,非必填) - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 7. 人员证件类型(字符型,6位,必填) - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; // 8. 证件号码(字符型,50位,非必填) - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 9. 人员姓名(字符型,50位,非必填) - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 10. 生产批号(字符型,30位,必填) - @JSONField(name = "manu_lotnum") + @JsonProperty("manu_lotnum") private String manuLotnum; // 11. 生产日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "manu_date") + @JsonProperty("manu_date") @JsonFormat(pattern = "yyyy-MM-dd") private Date manuDate; // 12. 有效期止(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "expy_end") + @JsonProperty("expy_end") @JsonFormat(pattern = "yyyy-MM-dd") private Date expyEnd; // 13. 处方药标志(字符型,3位,必填) - @JSONField(name = "rx_flag") + @JsonProperty("rx_flag") private String rxFlag; // 14. 拆零标志(字符型,3位,必填) - @JSONField(name = "trdn_flag") + @JsonProperty("trdn_flag") private String trdnFlag; // 15. 最终成交单价(数值型,16位含6位小数,非必填) - @JSONField(name = "finl_trns_pric") + @JsonProperty("finl_trns_pric") private BigDecimal finlTrnsPric; // 16. 销售/退货数量(数值型,16位含4位小数,必填) - @JSONField(name = "sel_retn_cnt") + @JsonProperty("sel_retn_cnt") private BigDecimal selRetnCnt; // 17. 销售/退货时间(日期时间型,必填,格式:yyyy-MM-dd HH:mm:ss) - @JSONField(name = "sel_retn_time") + @JsonProperty("sel_retn_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date selRetnTime; // 18. 销售/退货经办人姓名(字符型,50位,必填) - @JSONField(name = "sel_retn_opter_name") + @JsonProperty("sel_retn_opter_name") private String selRetnOpterName; // 19. 备注(字符型,500位,非必填) - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; // 20. 商品销售流水号(字符型,50位,非必填) - @JSONField(name = "medins_prod_sel_no") + @JsonProperty("medins_prod_sel_no") private String medinsProdSelNo; // 21. 就医流水号(字符型,30位,必填) - @JSONField(name = "mdtrt_sn") + @JsonProperty("mdtrt_sn") private String mdtrtSn; // 22. 溯源码节点信息(字符型,长度未明确) - @JSONField(name = "drugtracinfo") - private JSONArray drugtracinfo; + @JsonProperty("drugtracinfo") + private JsonNode drugtracinfo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3507Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3507Param.java index afe7c8b76..7606cc30d 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3507Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Medical3507Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -20,10 +20,10 @@ import lombok.experimental.Accessors; public class Medical3507Param { // 定点医药机构批次流水号 - @JSONField(name = "fixmedins_bchno") + @JsonProperty("fixmedins_bchno") private String fixmedinsBchno; // 进销存数据类型 - @JSONField(name = "inv_data_type") + @JsonProperty("inv_data_type") private String invDataType; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalDirectory3301Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalDirectory3301Param.java index 8cf0ba31a..33c9184c6 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalDirectory3301Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalDirectory3301Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -20,27 +20,27 @@ import lombok.experimental.Accessors; public class MedicalDirectory3301Param { // 定点医药机构目录编号 - @JSONField(name = "fixmedins_hilist_id") + @JsonProperty("fixmedins_hilist_id") private String fixmedinsHilistId; // 定点医药机构目录名称 - @JSONField(name = "fixmedins_hilist_name") + @JsonProperty("fixmedins_hilist_name") private String fixmedinsHilistName; // 目录类别 - @JSONField(name = "list_type") + @JsonProperty("list_type") private String listType; // 医疗目录编码 - @JSONField(name = "med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; // 开始日期 - @JSONField(name = "begndate") + @JsonProperty("begndate") private String begndate; // 结束日期 - @JSONField(name = "enddate") + @JsonProperty("enddate") private String enddate; // 批准文号 diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3501Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3501Param.java index 484cb864b..ce928adb1 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3501Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3501Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -24,49 +24,49 @@ import java.util.Date; public class MedicalInventory3501Param { // 1. 医疗目录编码(字符型,50位,必填) - @JSONField(name = "med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; // 2. 定点医药机构目录编号(字符型,30位,必填) - @JSONField(name = "fixmedins_hilist_id") + @JsonProperty("fixmedins_hilist_id") private String fixmedinsHilistId; // 3. 定点医药机构目录名称(字符型,200位,必填) - @JSONField(name = "fixmedins_hilist_name") + @JsonProperty("fixmedins_hilist_name") private String fixmedinsHilistName; // 4. 处方药标志(字符型,3位,必填) - @JSONField(name = "rx_flag") + @JsonProperty("rx_flag") private String rxFlag; // 5. 盘存日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "invdate") + @JsonProperty("invdate") @JsonFormat(pattern = "yyyy-MM-dd") private Date invdate; // 6. 库存数量(数值型,16位含2位小数,必填) - @JSONField(name = "inv_cnt") + @JsonProperty("inv_cnt") private BigDecimal invCnt; // 7. 生产批号(字符型,30位,非必填) - @JSONField(name = "manu_lotnum") + @JsonProperty("manu_lotnum") private String manuLotnum; // 8. 定点医药机构批次流水号(字符型,30位,必填) - @JSONField(name = "fixmedins_bchno") + @JsonProperty("fixmedins_bchno") private String fixmedinsBchno; // 9. 生产日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "manu_date") + @JsonProperty("manu_date") @JsonFormat(pattern = "yyyy-MM-dd") private Date manuDate; // 10. 有效期止(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "expy_end") + @JsonProperty("expy_end") @JsonFormat(pattern = "yyyy-MM-dd") private Date expyEnd; // 11. 备注(字符型,500位,非必填) - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3502Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3502Param.java index bb52f4a04..5f960d286 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3502Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3502Param.java @@ -3,8 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,55 +25,55 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class MedicalInventory3502Param { // 1. 医疗目录编码(字符型,50位,必填) - @JSONField(name = "med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; // 2. 库存变更类型(字符型,6位,必填) - @JSONField(name = "inv_chg_type") + @JsonProperty("inv_chg_type") private String invChgType; // 3. 定点医药机构目录编号(字符型,30位,必填) - @JSONField(name = "fixmedins_hilist_id") + @JsonProperty("fixmedins_hilist_id") private String fixmedinsHilistId; // 4. 定点医药机构目录名称(字符型,200位,必填) - @JSONField(name = "fixmedins_hilist_name") + @JsonProperty("fixmedins_hilist_name") private String fixmedinsHilistName; // 5. 定点医药机构批次流水号(字符型,30位,必填) - @JSONField(name = "fixmedins_bchno") + @JsonProperty("fixmedins_bchno") private String fixmedinsBchno; // 6. 单价(数值型,16位含6位小数,必填) - @JSONField(name = "pric") + @JsonProperty("pric") private BigDecimal pric; // 7. 数量(数值型,16位含4位小数,必填) - @JSONField(name = "cnt") + @JsonProperty("cnt") private BigDecimal cnt; // 8. 处方药标志(字符型,3位,必填) - @JSONField(name = "rx_flag") + @JsonProperty("rx_flag") private String rxFlag; // 9. 库存变更时间(日期时间型,必填,格式:yyyy-MM-dd HH:mm:ss) - @JSONField(name = "inv_chg_time") + @JsonProperty("inv_chg_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date invChgTime; // 10. 库存变更经办人姓名(字符型,50位,非必填) - @JSONField(name = "inv_chg_opter_name") + @JsonProperty("inv_chg_opter_name") private String invChgOpterName; // 11. 备注(字符型,500位,非必填) - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; // 12. 拆零标志(字符型,2位,必填) - @JSONField(name = "trdn_flag") + @JsonProperty("trdn_flag") private String trdnFlag; // 13. 溯源码节点信息(字符型,长度未明确) - @JSONField(name = "drugtracinfo") - private JSONArray drugtracinfo; + @JsonProperty("drugtracinfo") + private JsonNode drugtracinfo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3511Output.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3511Output.java index 22454c331..8ca610571 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3511Output.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3511Output.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.math.BigDecimal; @@ -21,300 +22,300 @@ public class MedicalInventory3511Output { * 有效期止 * 类型:日期型,格式yyyy-MM-dd */ - @JSONField(name = "expyEnd", format = "yyyy-MM-dd") + @JsonProperty("expyEnd") @JsonFormat(pattern = "yyyy-MM-dd") private Date expyEnd; /** * 药师证件类型 * 类型:字符型,长度3,非空 */ - @JSONField(name = "pharCertType") + @JsonProperty("pharCertType") private String pharCertType; /** * 销售/退货经办人姓名 * 类型:字符型,长度50 */ - @JSONField(name = "selRetnOpterName") + @JsonProperty("selRetnOpterName") private String selRetnOpterName; /** * 医疗目录编码 * 类型:字符型,长度50 */ - @JSONField(name = "medListCodg") + @JsonProperty("medListCodg") private String medListCodg; /** * 统筹区编号 * 类型:字符型,长度6 */ - @JSONField(name = "poolareaNo") + @JsonProperty("poolareaNo") private String poolareaNo; /** * 结算ID * 类型:字符型,长度30 */ - @JSONField(name = "setlId") + @JsonProperty("setlId") private String setlId; /** * 创建机构编号 * 类型:字符型,长度20 */ - @JSONField(name = "crteOptinsNo") + @JsonProperty("crteOptinsNo") private String crteOptinsNo; /** * 医药机构目录编码 * 类型:字符型,长度150 */ - @JSONField(name = "medinsListCodg") + @JsonProperty("medinsListCodg") private String medinsListCodg; /** * 备注 * 类型:字符型,长度500 */ - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; /** * 数据更新时间 * 类型:日期时间型,格式yyyy-MM-dd HH:mm:ss */ - @JSONField(name = "updtTime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("updtTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updtTime; /** * 医保费用结算类型 * 类型:字符型,长度6,非空 */ - @JSONField(name = "hiFeesetlType") + @JsonProperty("hiFeesetlType") private String hiFeesetlType; /** * 生产日期 * 类型:日期型,格式yyyy-MM-dd */ - @JSONField(name = "manuDate", format = "yyyy-MM-dd") + @JsonProperty("manuDate") @JsonFormat(pattern = "yyyy-MM-dd") private Date manuDate; /** * 经办人姓名 * 类型:字符型,长度50 */ - @JSONField(name = "opterName") + @JsonProperty("opterName") private String opterName; /** * 人员编号 * 类型:字符型,长度30 */ - @JSONField(name = "psnNo") + @JsonProperty("psnNo") private String psnNo; /** * 数据唯一记录号 * 类型:字符型,长度40 */ - @JSONField(name = "rid") + @JsonProperty("rid") private String rid; /** * 数据创建时间 * 类型:日期时间型,格式yyyy-MM-dd HH:mm:ss */ - @JSONField(name = "crteTime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("crteTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date crteTime; /** * 药师证件号码 * 类型:字符型,长度50 */ - @JSONField(name = "pharCertno") + @JsonProperty("pharCertno") private String pharCertno; /** * 有效标志 * 类型:字符型,长度3,非空 */ - @JSONField(name = "valiFlag") + @JsonProperty("valiFlag") private String valiFlag; /** * 证件号码 * 类型:字符型,长度600 */ - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; /** * 定点医药机构编号 * 类型:字符型,长度30 */ - @JSONField(name = "fixmedinsCode") + @JsonProperty("fixmedinsCode") private String fixmedinsCode; /** * 处方药标志 * 类型:字符型,长度3,非空 */ - @JSONField(name = "rxFlag") + @JsonProperty("rxFlag") private String rxFlag; /** * 药师执业资格证号 * 类型:字符型,长度50 */ - @JSONField(name = "pharPracCertNo") + @JsonProperty("pharPracCertNo") private String pharPracCertNo; /** * 目录特项标志 * 类型:字符型,长度3,非空 */ - @JSONField(name = "listSpItemFlag") + @JsonProperty("listSpItemFlag") private String listSpItemFlag; /** * 定点医药机构批次流水号 * 类型:字符型,长度30 */ - @JSONField(name = "fixmedinsBchno") + @JsonProperty("fixmedinsBchno") private String fixmedinsBchno; /** * 经办时间 * 类型:日期时间型,格式yyyy-MM-dd HH:mm:ss */ - @JSONField(name = "optTime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("optTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date optTime; /** * 人员姓名 * 类型:字符型,长度50 */ - @JSONField(name = "psnName") + @JsonProperty("psnName") private String psnName; /** * 电子监管编码 * 类型:字符型,长度20 */ - @JSONField(name = "elecSupnCodg") + @JsonProperty("elecSupnCodg") private String elecSupnCodg; /** * 开单医师姓名 * 类型:字符型,长度50 */ - @JSONField(name = "bilgDrName") + @JsonProperty("bilgDrName") private String bilgDrName; /** * 经办人ID * 类型:字符型,长度20 */ - @JSONField(name = "opterId") + @JsonProperty("opterId") private String opterId; /** * 生产批号 * 类型:字符型,长度30 */ - @JSONField(name = "manuLotnum") + @JsonProperty("manuLotnum") private String manuLotnum; /** * 医药机构目录名称 * 类型:字符型,长度100 */ - @JSONField(name = "medinsListName") + @JsonProperty("medinsListName") private String medinsListName; /** * 人员证件类型 * 类型:字符型,长度6,非空 */ - @JSONField(name = "psnCertType") + @JsonProperty("psnCertType") private String psnCertType; /** * 销售/退货时间 * 类型:日期时间型,格式yyyy-MM-dd HH:mm:ss */ - @JSONField(name = "selRetnTime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("selRetnTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date selRetnTime; /** * 销售/退货数量 * 类型:数值型,长度16,2(16位数字,其中2位小数) */ - @JSONField(name = "selRetnCnt") + @JsonProperty("selRetnCnt") private BigDecimal selRetnCnt; /** * 创建人姓名 * 类型:字符型,长度50 */ - @JSONField(name = "crterName") + @JsonProperty("crterName") private String crterName; /** * 药师姓名 * 类型:字符型,长度50 */ - @JSONField(name = "pharName") + @JsonProperty("pharName") private String pharName; /** * 开单医师证件类型 * 类型:字符型,长度3,非空 */ - @JSONField(name = "prscDrCertType") + @JsonProperty("prscDrCertType") private String prscDrCertType; /** * 创建人ID * 类型:字符型,长度20 */ - @JSONField(name = "crterId") + @JsonProperty("crterId") private String crterId; /** * 开单医师证件号码 * 类型:字符型,长度50 */ - @JSONField(name = "prscDrCertno") + @JsonProperty("prscDrCertno") private String prscDrCertno; /** * 经办机构编号 * 类型:字符型,长度20 */ - @JSONField(name = "optinsNo") + @JsonProperty("optinsNo") private String optinsNo; /** * 拆零标志 * 类型:字符型,长度3,非空 */ - @JSONField(name = "trdnFlag") + @JsonProperty("trdnFlag") private String trdnFlag; /** * 最终成交单价 * 类型:数值型,长度16,6(16位数字,其中6位小数) */ - @JSONField(name = "finlTrnsPric") + @JsonProperty("finlTrnsPric") private BigDecimal finlTrnsPric; /** * 定点医药机构商品销售流水号 * 类型:字符型,长度30 */ - @JSONField(name = "medinsProdSelNo") + @JsonProperty("medinsProdSelNo") private String medinsProdSelNo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3511Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3511Param.java index d8ae79da4..a28718e7d 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3511Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3511Param.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -24,242 +25,242 @@ public class MedicalInventory3511Param { /** * 定点医药机构编号 类型:字符型,长度30,必填项 */ - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; /** * 医药机构目录编码 类型:字符型,长度150,必填项(与定点医药机构批次流水号二选一) */ - @JSONField(name = "medins_list_codg") + @JsonProperty("medins_list_codg") private String medinsListCodg; /** * 定点医药机构批次流水号 类型:字符型,长度30,必填项(与医药机构目录编码二选一) */ - @JSONField(name = "fixmedins_bchno") + @JsonProperty("fixmedins_bchno") private String fixmedinsBchno; /** * 开始日期 类型:日期型,格式yyyy-MM-dd,必填项 */ - @JSONField(name = "begndate") + @JsonProperty("begndate") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date begndate; /** * 结束日期 类型:日期型,格式yyyy-MM-dd,必填项 */ - @JSONField(name = "enddate") + @JsonProperty("enddate") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date enddate; /** * 定点医药机构商品销售流水号 类型:字符型,长度30,非必填 */ - @JSONField(name = "medins_prod_sel_no") + @JsonProperty("medins_prod_sel_no") private String medinsProdSelNo; /** * 医疗目录编码 类型:字符型,长度50,非必填 */ - @JSONField(name = "med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; /** * 医药机构目录名称 类型:字符型,长度100,非必填 */ - @JSONField(name = "medins_list_name") + @JsonProperty("medins_list_name") private String medinsListName; /** * 开单医师证件类型 类型:字符型,长度3,非必填 */ - @JSONField(name = "prsc_dr_cert_type") + @JsonProperty("prsc_dr_cert_type") private String prscDrCertType; /** * 开单医师证件号码 类型:字符型,长度50,非必填 */ - @JSONField(name = "prsc_dr_certno") + @JsonProperty("prsc_dr_certno") private String prscDrCertno; /** * 开单医师姓名 类型:字符型,长度50,非必填 */ - @JSONField(name = "bilg_dr_name") + @JsonProperty("bilg_dr_name") private String bilgDrName; /** * 药师证件类型 类型:字符型,长度3,非必填 */ - @JSONField(name = "phar_cert_type") + @JsonProperty("phar_cert_type") private String pharCertType; /** * 药师证件号码 类型:字符型,长度50,非必填 */ - @JSONField(name = "phar_certno") + @JsonProperty("phar_certno") private String pharCertno; /** * 药师姓名 类型:字符型,长度50,非必填 */ - @JSONField(name = "phar_name") + @JsonProperty("phar_name") private String pharName; /** * 药师执业资格证号 类型:字符型,长度50,非必填 */ - @JSONField(name = "phar_prac_cert_no") + @JsonProperty("phar_prac_cert_no") private String pharPracCertNo; /** * 医保费用结算类型 类型:字符型,长度6,必填项 */ - @JSONField(name = "hi_feesetl_type") + @JsonProperty("hi_feesetl_type") private String hiFeesetlType; /** * 结算ID 类型:字符型,长度30,非必填 */ - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; /** * 人员编号 类型:字符型,长度30,非必填 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 人员证件类型 类型:字符型,长度6,必填项 */ - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; /** * 证件号码 类型:字符型,长度600,非必填 */ - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; /** * 人员姓名 类型:字符型,长度50,非必填 */ - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; /** * 生产批号 类型:字符型,长度30,非必填 */ - @JSONField(name = "manu_lotnum") + @JsonProperty("manu_lotnum") private String manuLotnum; /** * 生产日期 类型:日期型,格式yyyy-MM-dd,非必填 */ - @JSONField(name = "manu_date", format = "yyyy-MM-dd") + @JsonProperty("manu_date") @JsonFormat(pattern = "yyyy-MM-dd") private Date manuDate; /** * 有效期止 类型:日期型,格式yyyy-MM-dd,非必填 */ - @JSONField(name = "expy_end", format = "yyyy-MM-dd") + @JsonProperty("expy_end") @JsonFormat(pattern = "yyyy-MM-dd") private Date expyEnd; /** * 电子监管编码 类型:字符型,长度20,非必填 */ - @JSONField(name = "elec_supn_codg") + @JsonProperty("elec_supn_codg") private String elecSupnCodg; /** * 处方药标志 类型:字符型,长度3,必填项 */ - @JSONField(name = "rx_flag") + @JsonProperty("rx_flag") private String rxFlag; /** * 目录特项标志 类型:字符型,长度3,必填项 */ - @JSONField(name = "list_sp_item_flag") + @JsonProperty("list_sp_item_flag") private String listSpItemFlag; /** * 拆零标志 类型:字符型,长度3,必填项 */ - @JSONField(name = "trdn_flag") + @JsonProperty("trdn_flag") private String trdnFlag; /** * 销售/退货时间 类型:日期时间型,格式yyyy-MM-dd HH:mm:ss,非必填 */ - @JSONField(name = "sel_retn_time", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("sel_retn_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date selRetnTime; /** * 销售/退货经办人姓名 类型:字符型,长度50,非必填 */ - @JSONField(name = "sel_retn_opter_name") + @JsonProperty("sel_retn_opter_name") private String selRetnOpterName; /** * 备注 类型:字符型,长度500,非必填 */ - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; /** * 有效标志 类型:字符型,长度3,必填项 */ - @JSONField(name = "vali_flag") + @JsonProperty("vali_flag") private String valiFlag; /** * 数据唯一记录号 类型:字符型,长度40,非必填 */ - @JSONField(name = "rid") + @JsonProperty("rid") private String rid; /** * 创建人ID 类型:字符型,长度20,非必填 */ - @JSONField(name = "crter_id") + @JsonProperty("crter_id") private String crterId; /** * 创建人姓名 类型:字符型,长度50,非必填 */ - @JSONField(name = "crter_name") + @JsonProperty("crter_name") private String crterName; /** * 创建机构编号 类型:字符型,长度20,非必填 */ - @JSONField(name = "crte_optins_no") + @JsonProperty("crte_optins_no") private String crteOptinsNo; /** * 经办人ID 类型:字符型,长度20,非必填 */ - @JSONField(name = "opter_id") + @JsonProperty("opter_id") private String opterId; /** * 经办人姓名 类型:字符型,长度50,非必填 */ - @JSONField(name = "opter_name") + @JsonProperty("opter_name") private String opterName; /** * 经办机构编号 类型:字符型,长度20,非必填 */ - @JSONField(name = "optins_no") + @JsonProperty("optins_no") private String optinsNo; /** * 统筹区编号 类型:字符型,长度6,非必填 */ - @JSONField(name = "poolarea_no") + @JsonProperty("poolarea_no") private String poolareaNo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3512Output.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3512Output.java index 345c88391..3e9931d58 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3512Output.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3512Output.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data @@ -9,66 +9,66 @@ public class MedicalInventory3512Output { /** * 定点医药机构编号 */ - @JSONField(name ="fixmedinsCode") + @JsonProperty("fixmedinsCode") private String fixmedinsCode; /** * 医药机构目录编码 */ - @JSONField(name ="medinsListCodg") + @JsonProperty("medinsListCodg") private String medinsListCodg; /** * 定点医药机构批次流水号 */ - @JSONField(name ="fixmedinsBchno") + @JsonProperty("fixmedinsBchno") private String fixmedinsBchno; /** * 医疗目录编码 */ - @JSONField(name ="medListCodg") + @JsonProperty("medListCodg") private String medListCodg; /** * 医药机构目录名称 */ - @JSONField(name ="medinsListName") + @JsonProperty("medinsListName") private String medinsListName; /** * 药品追溯码 */ - @JSONField(name ="drugTracCodg") + @JsonProperty("drugTracCodg") private String drugTracCodg; /** * 有效标志 */ - @JSONField(name ="valiFlag") + @JsonProperty("valiFlag") private String valiFlag; /** * 经办人ID */ - @JSONField(name ="opterId") + @JsonProperty("opterId") private String opterId; /** * 创建人姓名 */ - @JSONField(name ="crterName") + @JsonProperty("crterName") private String crterName; /** * 创建人ID */ - @JSONField(name ="crterId") + @JsonProperty("crterId") private String crterId; /** * 经办机构编号 */ - @JSONField(name ="optinsNo") + @JsonProperty("optinsNo") private String optinsNo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3512Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3512Param.java index e7e9bb551..c8953b4df 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3512Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3512Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -12,45 +12,45 @@ public class MedicalInventory3512Param { /** * 定点医药机构编号 */ - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; /** * 医药机构目录编码 */ - @JSONField(name ="medins_list_codg") + @JsonProperty("medins_list_codg") private String medinsListCodg; /** * 定点医药机构批次流水号 */ - @JSONField(name ="fixmedins_bchno") + @JsonProperty("fixmedins_bchno") private String fixmedinsBchno; /** * 开始日期 */ - @JSONField(name ="begndate") + @JsonProperty("begndate") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date begndate; /** * 结束日期 */ - @JSONField(name ="enddate") + @JsonProperty("enddate") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date enddate; /** * 医疗目录编码 */ - @JSONField(name ="med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; /** * 药品追溯码 */ - @JSONField(name ="drug_trac_codg") + @JsonProperty("drug_trac_codg") private String drugTracCodg; diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3513Output.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3513Output.java index 111321f16..0142a89e1 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3513Output.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3513Output.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -12,147 +12,147 @@ public class MedicalInventory3513Output { /** * 定点医药机构编号 */ - @JSONField(name ="fixmedinsCode") + @JsonProperty("fixmedinsCode") private String fixmedinsCode; /** * 医疗目录编码 */ - @JSONField(name ="medListCodg") + @JsonProperty("medListCodg") private String medListCodg; /** * 医药机构目录编码 */ - @JSONField(name ="medinsListCodg") + @JsonProperty("medinsListCodg") private String medinsListCodg; /** * 医药机构目录名称 */ - @JSONField(name ="medinsListName") + @JsonProperty("medinsListName") private String medinsListName; /** * 定点医药机构批次流水号 */ - @JSONField(name ="fixmedinsBchno") + @JsonProperty("fixmedinsBchno") private String fixmedinsBchno; /** * 就诊ID */ - @JSONField(name ="mdtrtId") + @JsonProperty("mdtrtId") private String mdtrtId; /** * 就诊结算类型 */ - @JSONField(name ="mdtrtSetlType") + @JsonProperty("mdtrtSetlType") private String mdtrtSetlType; /** * 记账流水号 */ - @JSONField(name ="bkkpSn") + @JsonProperty("bkkpSn") private String bkkpSn; /** * 药品追溯码 */ - @JSONField(name ="drugTracCodg") + @JsonProperty("drugTracCodg") private String drugTracCodg; /** * 人员编号 */ - @JSONField(name ="psnNo") + @JsonProperty("psnNo") private String psnNo; /** * 人员证件类型 */ - @JSONField(name ="psnCertType") + @JsonProperty("psnCertType") private String psnCertType; /** * 证件号码 */ - @JSONField(name ="certno") + @JsonProperty("certno") private String certno; /** * 人员姓名 */ - @JSONField(name ="psnName") + @JsonProperty("psnName") private String psnName; /** * 备注 */ - @JSONField(name ="memo") + @JsonProperty("memo") private String memo; /** * 拆零标志 */ - @JSONField(name ="trdnFlag") + @JsonProperty("trdnFlag") private String trdnFlag; /** * 数据更新时间 */ - @JSONField(name ="updtTime") + @JsonProperty("updtTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updtTime; /** * 经办人姓名 */ - @JSONField(name ="opterName") + @JsonProperty("opterName") private String opterName; /** * 数据唯一记录号 */ - @JSONField(name ="rid") + @JsonProperty("rid") private String rid; /** * 数据创建时间 */ - @JSONField(name ="crteTime") + @JsonProperty("crteTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date crteTime; /** * 经办时间 */ - @JSONField(name ="optTime") + @JsonProperty("optTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date optTime; /** * 经办人ID */ - @JSONField(name ="opterId") + @JsonProperty("opterId") private String opterId; /** * 创建人姓名 */ - @JSONField(name ="crterName") + @JsonProperty("crterName") private String crterName; /** * 创建人ID */ - @JSONField(name ="crterId") + @JsonProperty("crterId") private String crterId; /** * 经办机构编号 */ - @JSONField(name ="optinsNo") + @JsonProperty("optinsNo") private String optinsNo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3513Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3513Param.java index 6c551a310..4b074844d 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3513Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalInventory3513Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -12,74 +12,74 @@ public class MedicalInventory3513Param { /** * 定点医药机构编号 */ - @JSONField(name ="fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; /** * 医药机构目录编码 */ - @JSONField(name ="medins_list_codg") + @JsonProperty("medins_list_codg") private String medinsListCodg; /** * 定点医药机构批次流水号 */ - @JSONField(name ="fixmedins_bchno") + @JsonProperty("fixmedins_bchno") private String fixmedinsBchno; /** * 开始日期 */ - @JSONField(name ="begndate") + @JsonProperty("begndate") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date begndate; /** * 结束日期 */ - @JSONField(name ="enddate") + @JsonProperty("enddate") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date enddate; /** * 医疗目录编码 */ - @JSONField(name ="med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; /** * 就诊ID */ - @JSONField(name ="mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** * 人员编号 */ - @JSONField(name ="psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 人员证件类型 */ - @JSONField(name ="psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; /** * 证件号码 */ - @JSONField(name ="certno") + @JsonProperty("certno") private String certno; /** * 人员姓名 */ - @JSONField(name ="psn_name") + @JsonProperty("psn_name") private String psnName; /** * 药品追溯码 */ - @JSONField(name ="drug_trac_codg") + @JsonProperty("drug_trac_codg") private String drugTracCodg; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalPurchase3504Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalPurchase3504Param.java index 7929f65a9..d5909884e 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalPurchase3504Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalPurchase3504Param.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -23,73 +23,73 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class MedicalPurchase3504Param { // 1. 医疗目录编码(字符型,50位,必填) - @JSONField(name = "med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; // 2. 定点医药机构目录编号(字符型,30位,必填) - @JSONField(name = "fixmedins_hilist_id") + @JsonProperty("fixmedins_hilist_id") private String fixmedinsHilistId; // 3. 定点医药机构目录名称(字符型,200位,必填) - @JSONField(name = "fixmedins_hilist_name") + @JsonProperty("fixmedins_hilist_name") private String fixmedinsHilistName; // 4. 定点医药机构批次流水号(字符型,30位,必填) - @JSONField(name = "fixmedins_bchno") + @JsonProperty("fixmedins_bchno") private String fixmedinsBchno; // 5. 供应商名称(字符型,200位,必填) - @JSONField(name = "spler_name") + @JsonProperty("spler_name") private String splerName; // 6. 供应商许可证号(字符型,50位,非必填) - @JSONField(name = "spler_pmtno") + @JsonProperty("spler_pmtno") private String splerPmtno; // 7. 生产日期(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "manu_date") + @JsonProperty("manu_date") @JsonFormat(pattern = "yyyy-MM-dd") private Date manuDate; // 8. 有效期止(日期型,必填,格式:yyyy-MM-dd) - @JSONField(name = "expy_end") + @JsonProperty("expy_end") @JsonFormat(pattern = "yyyy-MM-dd") private Date expyEnd; // 9. 最终成交单价(数值型,16位含6位小数,非必填) - @JSONField(name = "finl_trns_pric") + @JsonProperty("finl_trns_pric") private BigDecimal finlTrnsPric; // 10. 采购/退货数量(数值型,16位含4位小数,必填) - @JSONField(name = "purc_retn_cnt") + @JsonProperty("purc_retn_cnt") private BigDecimal purcRetnCnt; // 11. 采购发票编码(字符型,50位,非必填) - @JSONField(name = "purc_invo_codg") + @JsonProperty("purc_invo_codg") private String purcInvoCodg; // 12. 采购发票号(字符型,50位,必填) - @JSONField(name = "purc_invo_no") + @JsonProperty("purc_invo_no") private String purcInvoNo; // 13. 处方药标志(字符型,3位,必填) - @JSONField(name = "rx_flag") + @JsonProperty("rx_flag") private String rxFlag; // 14. 采购/退货入库时间(日期时间型,必填,格式:yyyy-MM-dd HH:mm:ss) - @JSONField(name = "purc_retn_stoin_time") + @JsonProperty("purc_retn_stoin_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date purcRetnStoinTime; // 15. 采购/退货经办人姓名(字符型,50位,必填) - @JSONField(name = "purc_retn_opter_name") + @JsonProperty("purc_retn_opter_name") private String purcRetnOpterName; // 16. 备注(字符型,500位,非必填) - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; // 20. 商品采购流水号(字符型,50位,非必填) - @JSONField(name = "medins_prod_purc_no") + @JsonProperty("medins_prod_purc_no") private String medinsProdPurcNo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalTraceNoDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalTraceNoDto.java index ad8c0c6c5..7a575f3f8 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalTraceNoDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/MedicalTraceNoDto.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -20,6 +20,6 @@ import lombok.experimental.Accessors; public class MedicalTraceNoDto { // 药品追溯码(字符型,100) - @JSONField(name = "drug_trac_codg") + @JsonProperty("drug_trac_codg") private String drugTracCodg; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthApprovalCnl25004Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthApprovalCnl25004Param.java index bee61a689..b9f1d7c02 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthApprovalCnl25004Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthApprovalCnl25004Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -17,11 +17,11 @@ import lombok.experimental.Accessors; public class PersBirthApprovalCnl25004Param { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 待遇申报明细流水号 - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthApprovalSel25005Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthApprovalSel25005Param.java index d8bd85355..d3b887e29 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthApprovalSel25005Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthApprovalSel25005Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,45 +20,45 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class PersBirthApprovalSel25005Param { // 1. 人员编号(既是输入参数也是输出参数) - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // --- 输出参数 --- // 1. 待遇申报明细流水号(字符型,30位,必填) - @JSONField(name = "trtDclaDetlSn") + @JsonProperty("trtDclaDetlSn") private String trtDclaDetlSn; // 2. 险种类型(字符型,6位,必填) - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 3. 人员证件号码(字符型,30位,必填) - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 4. 审批定点医药机构编号(字符型,30位,必填) - @JSONField(name = "fixmedinscode") + @JsonProperty("fixmedinscode") private String fixmedinscode; // 5. 审批定点医药机构名称(字符型,200位,必填) - @JSONField(name = "fixmedinsname") + @JsonProperty("fixmedinsname") private String fixmedinsname; // 6. 人员姓名(字符型,50位,必填) - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 7. 开始时间(日期型,必填) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "begndate") + @JsonProperty("begndate") private Date begndate; // 8. 终止时间(日期型,必填) @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "enddate") + @JsonProperty("enddate") private Date enddate; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthRecord25003Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthRecord25003Param.java index e1215ca88..667f3bf89 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthRecord25003Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersBirthRecord25003Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,103 +22,103 @@ import java.util.Date; public class PersBirthRecord25003Param { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 联系电话 - @JSONField(name = "tel") + @JsonProperty("tel") private String tel; // 3. 险种类型 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 4. 参保机构医保区划 - @JSONField(name = "insu_admdvs") + @JsonProperty("insu_admdvs") private String insuAdmdvs; // 5. 定点医药机构编号 - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; // 6. 定点医药机构名称 - @JSONField(name = "fixmedins_name") + @JsonProperty("fixmedins_name") private String fixmedinsName; // 7. 孕周数 - @JSONField(name = "esso_val") + @JsonProperty("esso_val") private Integer essoVal; // 8. 生育待遇申报人类别 - @JSONField(name = "matn_trt_dclaer_type") + @JsonProperty("matn_trt_dclaer_type") private String matnTrtDclaerType; // 9. 末次月经日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "last_mena_date") + @JsonProperty("last_mena_date") private Date lastMenaDate; // 10. 预计生育日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "plan_matn_date") + @JsonProperty("plan_matn_date") private Date planMatnDate; // 11. 申报日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "dcla_date") + @JsonProperty("dcla_date") private Date dclaDate; // 12. 配偶姓名 - @JSONField(name = "spus_name") + @JsonProperty("spus_name") private String spusName; // 13. 配偶证件类型 - @JSONField(name = "spus_cert_type") + @JsonProperty("spus_cert_type") private String spusCertType; // 14. 配偶证件号码 - @JSONField(name = "spus_certno") + @JsonProperty("spus_certno") private String spusCertno; // 15. 生育类别 - @JSONField(name = "matn_type") + @JsonProperty("matn_type") private String matnType; // 16. 胎次 - @JSONField(name = "fetts") + @JsonProperty("fetts") private BigDecimal fetts; // 17. 计划生育服务证号 - @JSONField(name = "fpsc_no") + @JsonProperty("fpsc_no") private String fpscNo; // 18. 开始日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "begndate") + @JsonProperty("begndate") private Date begndate; // 19. 结束日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "enddate") + @JsonProperty("enddate") private Date enddate; // 20. 联系地址 - @JSONField(name = "addr") + @JsonProperty("addr") private String addr; // --- 输出参数 --- // 1. 待遇申报明细流水号 - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String outputPsnNo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersChrDis2503Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersChrDis2503Param.java index 7ca9e6624..0443e141c 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersChrDis2503Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersChrDis2503Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,64 +20,64 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class PersChrDis2503Param { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 险种类型 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 3. 门慢门特病种目录代码 - @JSONField(name = "opsp_dise_code") + @JsonProperty("opsp_dise_code") private String opspDiseCode; // 4. 门慢门特病种名称 - @JSONField(name = "opsp_dise_name") + @JsonProperty("opsp_dise_name") private String opspDiseName; // 5. 联系电话 - @JSONField(name = "tel") + @JsonProperty("tel") private String tel; // 6. 联系地址 - @JSONField(name = "addr") + @JsonProperty("addr") private String addr; // 7. 参保机构医保区划 - @JSONField(name = "insu_optins") + @JsonProperty("insu_optins") private String insuOptins; // 8. 鉴定定点医药机构编号 - @JSONField(name = "ide_fixmedins_no") + @JsonProperty("ide_fixmedins_no") private String ideFixmedinsNo; // 9. 鉴定定点医药机构名称 - @JSONField(name = "ide_fixmedins_name") + @JsonProperty("ide_fixmedins_name") private String ideFixmedinsName; // 10. 医院鉴定日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "hosp_ide_date") + @JsonProperty("hosp_ide_date") private Date hospIdeDate; // 11. 诊断医师编码 - @JSONField(name = "diag_dr_codg") + @JsonProperty("diag_dr_codg") private String diagDrCodg; // 12. 诊断医师姓名 - @JSONField(name = "diag_dr_name") + @JsonProperty("diag_dr_name") private String diagDrName; // 13. 开始日期 - @JSONField(name = "begndate", format = "yyyy-MM-dd") + @JsonProperty("begndate") @JsonFormat(pattern = "yyyy-MM-dd") private Date begndate; // 15. 结束日期 - @JSONField(name = "enddate", format = "yyyy-MM-dd") + @JsonProperty("enddate") @JsonFormat(pattern = "yyyy-MM-dd") private Date enddate; // 16. 待遇申报明细流水号(输出) - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersChrDisCxl2504Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersChrDisCxl2504Param.java index dd1cd6a22..253fac54e 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersChrDisCxl2504Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersChrDisCxl2504Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -16,14 +16,14 @@ import lombok.experimental.Accessors; @EqualsAndHashCode(callSuper = false) public class PersChrDisCxl2504Param { // 1. 待遇申报明细流水号 - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 备注 - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersDesigPt2505Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersDesigPt2505Param.java index 4463b388f..dc443a9ea 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersDesigPt2505Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersDesigPt2505Param.java @@ -1,7 +1,7 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.JSONObject; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,78 +21,78 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class PersDesigPt2505Param { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 联系电话 - @JSONField(name = "tel") + @JsonProperty("tel") private String tel; // 3. 联系地址 - @JSONField(name = "addr") + @JsonProperty("addr") private String addr; // 4. 业务申请类型 - @JSONField(name = "biz_appy_type") + @JsonProperty("biz_appy_type") private String bizAppyType; // 5. 开始日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "begndate") + @JsonProperty("begndate") private Date begndate; // 6. 结束日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "enddate") + @JsonProperty("enddate") private Date enddate; // 7. 代办人姓名 - @JSONField(name = "agnter_name") + @JsonProperty("agnter_name") private String agnterName; // 8. 代办人证件类型 - @JSONField(name = "agnter_cert_type") + @JsonProperty("agnter_cert_type") private String agnterCertType; // 9. 代办人证件号码 - @JSONField(name = "agnter_certno") + @JsonProperty("agnter_certno") private String agnterCertno; // 10. 代办人联系方式 - @JSONField(name = "agnter_tel") + @JsonProperty("agnter_tel") private String agnterTel; // 11. 代办人联系地址 - @JSONField(name = "agnter_addr") + @JsonProperty("agnter_addr") private String agnterAddr; // 12. 代办人关系 - @JSONField(name = "agnter_rlts") + @JsonProperty("agnter_rlts") private String agnterRlts; // 13. 定点排序号 - @JSONField(name = "fix_srt_no") + @JsonProperty("fix_srt_no") private String fixSrtNo; // 14. 定点医药机构编号 - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; // 15. 定点医药机构名称 - @JSONField(name = "fixmedins_name") + @JsonProperty("fixmedins_name") private String fixmedinsName; // 16. 备注 - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; // 17. 扩展字段 - @JSONField(name = "extData") - private JSONObject extData; + @JsonProperty("extData") + private JsonNode extData; // 18. 待遇申报明细流水号(输出) - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersDesigPtCxl2506Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersDesigPtCxl2506Param.java index cca045fac..c7ee21e39 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersDesigPtCxl2506Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersDesigPtCxl2506Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -16,14 +16,14 @@ import lombok.experimental.Accessors; @EqualsAndHashCode(callSuper = false) public class PersDesigPtCxl2506Param { // 1. 待遇申报明细流水号 - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 备注(填写撤销原因) - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedApprovalCnl25006Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedApprovalCnl25006Param.java index ece637e55..adfe697ed 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedApprovalCnl25006Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedApprovalCnl25006Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -16,10 +16,10 @@ import lombok.experimental.Accessors; @EqualsAndHashCode(callSuper = false) public class PersMedApprovalCnl25006Param { // 1. 人员编号(字符型,30位,必填) - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 待遇申报明细流水号(字符型,30位,必填) - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedRecord25001Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedRecord25001Param.java index 40d4194b6..9b594365b 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedRecord25001Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedRecord25001Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,63 +22,63 @@ import java.util.Date; public class PersMedRecord25001Param { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 险种类型 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 3. 参保机构医保区划 - @JSONField(name = "insu_admdv") + @JsonProperty("insu_admdv") private String insuAdmdv; // 4. 定点医药机构编号 - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; // 5. 定点医药机构名称 - @JSONField(name = "fixmedins_name") + @JsonProperty("fixmedins_name") private String fixmedinsName; // 6. 目录类别 - @JSONField(name = "list_type") + @JsonProperty("list_type") private String listType; // 7. 医保目录编码 - @JSONField(name = "hilist_code") + @JsonProperty("hilist_code") private String hilistCode; // 8. 医保目录名称 - @JSONField(name = "hilist_name") + @JsonProperty("hilist_name") private String hilistName; // 9. 数量 - @JSONField(name = "cnt") + @JsonProperty("cnt") private BigDecimal cnt; // 10. 数量单位 - @JSONField(name = "cnt_prcunt") + @JsonProperty("cnt_prcunt") private String cntPrcunt; // 11. 开始日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "begndate") + @JsonProperty("begndate") private Date begndate; // 12. 结束日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "enddate") + @JsonProperty("enddate") private Date enddate; // 13. 诊断代码 - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; // 14. 诊断名称 - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedSelect25002Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedSelect25002Param.java index 6a0efc238..3fd60bbea 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedSelect25002Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedSelect25002Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,17 +21,17 @@ import java.util.Date; public class PersMedSelect25002Param { // 1. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 2. 险种类型 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 3. 用作比较的时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "compare_date") + @JsonProperty("compare_date") private Date compareDate; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedSelect25002Result.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedSelect25002Result.java index 9d4394466..3dfec2f03 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedSelect25002Result.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersMedSelect25002Result.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -21,69 +21,69 @@ import java.util.Date; public class PersMedSelect25002Result { // 1. 待遇申报明细流水号 - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; // 2. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 3. 险种类型 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 4. 参保地医保区划 - @JSONField(name = "insu_admdv") + @JsonProperty("insu_admdv") private String insuAdmdv; // 5. 定点医药机构编号 - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; // 6. 定点医药机构名称 - @JSONField(name = "fixmedins_name") + @JsonProperty("fixmedins_name") private String fixmedinsName; // 7. 目录类别 - @JSONField(name = "list_type") + @JsonProperty("list_type") private String listType; // 8. 医保目录编码 - @JSONField(name = "hilist_code") + @JsonProperty("hilist_code") private String hilistCode; // 9. 医保目录名称 - @JSONField(name = "hilist_name") + @JsonProperty("hilist_name") private String hilistName; // 10. 人员姓名 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 11. 开始时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "begndate") + @JsonProperty("begndate") private Date begndate; // 12. 终止时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "enddate") + @JsonProperty("enddate") private Date enddate; // 13. 经办人id - @JSONField(name = "opter_id") + @JsonProperty("opter_id") private String opterId; // 14. 经办人姓名 - @JSONField(name = "opter_name") + @JsonProperty("opter_name") private String opterName; // 15. 经办时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "opt_time") + @JsonProperty("opt_time") private Date optTime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersUnintInj2507Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersUnintInj2507Param.java index e53e737e4..6f0ce2a42 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersUnintInj2507Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/PersUnintInj2507Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,148 +20,148 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class PersUnintInj2507Param { // 1. 申报来源 - @JSONField(name = "dcla_souc") + @JsonProperty("dcla_souc") private String dclaSouc; // 2. 险种类型 - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; // 3. 人员编号 - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; // 4. 人员参保关系ID - @JSONField(name = "psn_insu_rlts_id") + @JsonProperty("psn_insu_rlts_id") private String psnInsuRltsId; // 5. 人员证件类型 - @JSONField(name = "psn_cert_type") + @JsonProperty("psn_cert_type") private String psnCertType; // 6. 证件号码 - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 7. 人员姓名 - @JSONField(name = "psn_name") + @JsonProperty("psn_name") private String psnName; // 8. 性别 - @JSONField(name = "gend") + @JsonProperty("gend") private String gend; // 9. 民族 - @JSONField(name = "naty") + @JsonProperty("naty") private String naty; // 10. 出生日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "brdy") + @JsonProperty("brdy") private Date brdy; // 11. 联系电话 - @JSONField(name = "tel") + @JsonProperty("tel") private String tel; // 12. 联系地址 - @JSONField(name = "addr") + @JsonProperty("addr") private String addr; // 13. 参保所属医保区划 - @JSONField(name = "insu_admdvs") + @JsonProperty("insu_admdvs") private String insuAdmdvs; // 14. 单位编号 - @JSONField(name = "emp_no") + @JsonProperty("emp_no") private String empNo; // 15. 单位名称 - @JSONField(name = "emp_name") + @JsonProperty("emp_name") private String empName; // 16. 就医地医保区划 - @JSONField(name = "mdtrtarea_admdvs") + @JsonProperty("mdtrtarea_admdvs") private String mdtrtareaAdmdvs; // 17. 定点医药机构编号 - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; // 18. 定点医药机构名称 - @JSONField(name = "fixmedins_name") + @JsonProperty("fixmedins_name") private String fixmedinsName; // 19. 医院等级 - @JSONField(name = "hosp_lv") + @JsonProperty("hosp_lv") private String hospLv; // 20. 入院时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "adm_time") + @JsonProperty("adm_time") private Date admTime; // 21. 受伤时间 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JSONField(name = "trum_time") + @JsonProperty("trum_time") private Date trumTime; // 22. 受伤地点 - @JSONField(name = "trum_site") + @JsonProperty("trum_site") private String trumSite; // 23. 致伤原因 - @JSONField(name = "trum_rea") + @JsonProperty("trum_rea") private String trumRea; // 24. 审核支付标志 - @JSONField(name = "chk_pay_flag") + @JsonProperty("chk_pay_flag") private String chkPayFlag; // 25. 代办人姓名 - @JSONField(name = "agnter_name") + @JsonProperty("agnter_name") private String agnterName; // 26. 代办人证件类型 - @JSONField(name = "agnter_cert_type") + @JsonProperty("agnter_cert_type") private String agnterCertType; // 27. 代办人证件号码 - @JSONField(name = "agnter_certno") + @JsonProperty("agnter_certno") private String agnterCertno; // 28. 代办人联系方式 - @JSONField(name = "agnter_tel") + @JsonProperty("agnter_tel") private String agnterTel; // 29. 代办人联系地址 - @JSONField(name = "agnter_addr") + @JsonProperty("agnter_addr") private String agnterAddr; // 30. 代办人关系 - @JSONField(name = "agnter_rlts") + @JsonProperty("agnter_rlts") private String agnterRlts; // 31. 开始日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "begndate") + @JsonProperty("begndate") private Date begndate; // 32. 结束日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") - @JSONField(name = "enddate") + @JsonProperty("enddate") private Date enddate; // 33. 备注 - @JSONField(name = "memo") + @JsonProperty("memo") private String memo; // 34. 待遇申报明细流水号(输出) - @JSONField(name = "trt_dcla_detl_sn") + @JsonProperty("trt_dcla_detl_sn") private String trtDclaDetlSn; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ResultBody.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ResultBody.java index 84201a62d..14db22600 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ResultBody.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/ResultBody.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** @@ -10,30 +10,30 @@ import lombok.Data; public class ResultBody { /** 交易状态码 */ - @JSONField(name="infcode") + @JsonProperty("infcode") private String infcode; /** 发送方报文ID */ - @JSONField(name="warnMsg") + @JsonProperty("warnMsg") private String warn_msg; /** 数字签名信息 */ - @JSONField(name="cainfo") + @JsonProperty("cainfo") private String cainfo; /** 错误信息 */ - @JSONField(name="err_msg") + @JsonProperty("err_msg") private String errMsg; /** 接收报文时间 */ - @JSONField(name="refmsg_time") + @JsonProperty("refmsg_time") private String refmsgTime; /** 签名类型 */ - @JSONField(name="signtype") + @JsonProperty("signtype") private String signtype; /** 响应报文时间 */ - @JSONField(name="respond_time") + @JsonProperty("respond_time") private String respondTime; /** 接收方报文ID */ - @JSONField(name="inf_refmsgid") + @JsonProperty("inf_refmsgid") private String infRefmsgid; /** 交易输出 */ - @JSONField(name="output") + @JsonProperty("output") private String output; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign.java index f1ce7b010..599c6ea2c 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.core.common.core.domain.HisBaseEntity; @@ -25,32 +25,32 @@ public class Sign extends HisBaseEntity implements Serializable { private static final long serialVersionUID = 1L; /**主键*/ @TableId(type = IdType.ASSIGN_UUID) - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String id; /**操作员编号*/ - @JSONField(name="opter_no") + @JsonProperty("opter_no") private String opterNo; /**签到编号*/ - @JSONField(name="sign_no") + @JsonProperty("sign_no") private String signNo; /**签到时间*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private java.util.Date signTime; /**签退时间*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private java.util.Date signOutTime; /**状态,0-新建,1-签到,2-签退*/ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String status; /** 签到MAC地址 */ - @JSONField(name="mac") + @JsonProperty("mac") private String mac; /** 签到IP地址 */ - @JSONField(name="ip") + @JsonProperty("ip") private String ip; // // /**租户ID*/ diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign1101Param.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign1101Param.java index 131854b90..2f45a1fdb 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign1101Param.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign1101Param.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -8,12 +8,12 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class Sign1101Param { /**操作员编号*/ - @JSONField(name="opter_no") + @JsonProperty("opter_no") private String opterNo; /** 签到MAC地址 */ - @JSONField(name="mac") + @JsonProperty("mac") private String mac; /** 签到IP地址 */ - @JSONField(name="ip") + @JsonProperty("ip") private String ip; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign9001Result.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign9001Result.java index 4d2aaa18f..eb8c93b3f 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign9001Result.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Sign9001Result.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -8,17 +8,17 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class Sign9001Result { /**签到编号*/ - @JSONField(name="signNo") + @JsonProperty("signNo") private String signNo; /**操作员编号*/ - @JSONField(name="opterNo") + @JsonProperty("opterNo") private String opterNo; - @JSONField(name="signTime") + @JsonProperty("signTime") private java.util.Date signTime; - @JSONField(name="status") + @JsonProperty("status") private String status; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2303OutputSetInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2303OutputSetInfo.java index 0f7c7c608..6dfc2075f 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2303OutputSetInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2303OutputSetInfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -261,7 +261,7 @@ public class Yb2303OutputSetInfo { /** * 基金支付详情 */ - @JSONField(name = "setldetail") + @JsonProperty("setldetail") private List setldetail; public Yb2303OutputSetInfo() { diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientDiseInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientDiseInfo.java index b2b703f63..8c4fe60cd 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientDiseInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientDiseInfo.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -21,66 +22,66 @@ public class Yb2401InputInpatientDiseInfo { /** * 人员编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 诊断类别 */ - @JSONField(name = "diag_type") + @JsonProperty("diag_type") private String diagType; /** * 主诊断标志 */ - @JSONField(name = "maindiag_flag") + @JsonProperty("maindiag_flag") private String maindiagFlag; /** * 诊断排序号 */ - @JSONField(name = "diag_srt_no") + @JsonProperty("diag_srt_no") private Integer diagSrtNo; /** * 诊断代码 */ - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; /** * 诊断名称 */ - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; /** * 入院病情 */ - @JSONField(name = "adm_cond") + @JsonProperty("adm_cond") private String admCond; /** * 诊断科室 */ - @JSONField(name = "diag_dept") + @JsonProperty("diag_dept") private String diagDept; /** * 诊断医生编码 */ - @JSONField(name = "dise_dor_no") + @JsonProperty("dise_dor_no") private String diseDorNo; /** * 诊断医生姓名 */ - @JSONField(name = "dise_dor_name") + @JsonProperty("dise_dor_name") private String diseDorName; /** * 诊断时间(格式:yyyy-MM-dd HH:mm:ss) */ - @JSONField(name = "diag_time", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("diag_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date diagTime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientMdtrtInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientMdtrtInfo.java index e49013215..b3719291e 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientMdtrtInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientMdtrtInfo.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -23,216 +24,216 @@ public class Yb2401InputInpatientMdtrtInfo { /** * 人员编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 险种类型 */ - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; /** * 联系人姓名 */ - @JSONField(name = "coner_name") + @JsonProperty("coner_name") private String conerName; /** * 联系电话 */ - @JSONField(name = "tel") + @JsonProperty("tel") private String tel; /** * 开始时间(入院时间,格式:yyyy-MM-dd HH:mm:ss) */ - @JSONField(name = "begntime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("begntime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date begntime; /** * 就诊凭证类型 */ - @JSONField(name = "mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; /** * 就诊凭证编号(就诊凭证类型为“01”时填写电子凭证令牌,为“02”时填写身份证号,为“03”时填写社会保障卡卡号) */ - @JSONField(name = "mdtrt_cert_no") + @JsonProperty("mdtrt_cert_no") private String mdtrtCertNo; /** * 医疗类别 */ - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; /** * 住院号(院内就诊流水号) */ - @JSONField(name = "ipt_no") + @JsonProperty("ipt_no") private String iptNo; /** * 病历号 */ - @JSONField(name = "medrcdno") + @JsonProperty("medrcdno") private String medrcdno; /** * 主治医生编码 */ - @JSONField(name = "atddr_no") + @JsonProperty("atddr_no") private String atddrNo; /** * 主诊医师姓名 */ - @JSONField(name = "chfpdr_name") + @JsonProperty("chfpdr_name") private String chfpdrName; /** * 入院诊断描述 */ - @JSONField(name = "adm_diag_dscr") + @JsonProperty("adm_diag_dscr") private String admDiagDscr; /** * 入院科室编码 */ - @JSONField(name = "adm_dept_codg") + @JsonProperty("adm_dept_codg") private String admDeptCodg; /** * 入院科室名称 */ - @JSONField(name = "adm_dept_name") + @JsonProperty("adm_dept_name") private String admDeptName; /** * 入院床位 */ - @JSONField(name = "adm_bed") + @JsonProperty("adm_bed") private String admBed; /** * 住院主诊断代码 */ - @JSONField(name = "dscg_maindiag_code") + @JsonProperty("dscg_maindiag_code") private String dscgMaindiagCode; /** * 住院主诊断名称 */ - @JSONField(name = "dscg_maindiag_name") + @JsonProperty("dscg_maindiag_name") private String dscgMaindiagName; /** * 主要病情描述 */ - @JSONField(name = "main_cond_dscr") + @JsonProperty("main_cond_dscr") private String mainCondDscr; /** * 病种编码(按照标准编码填写:按病种结算病种目录代码(bydise_setl_list_code)、日间手术病种目录代码(daysrg_dise_list_code)) */ - @JSONField(name = "dise_codg") + @JsonProperty("dise_codg") private String diseCodg; /** * 病种名称 */ - @JSONField(name = "dise_name") + @JsonProperty("dise_name") private String diseName; /** * 手术操作代码(日间手术病种时必填) */ - @JSONField(name = "oprn_oprt_code") + @JsonProperty("oprn_oprt_code") private String oprnOprtCode; /** * 手术操作名称 */ - @JSONField(name = "oprn_oprt_name") + @JsonProperty("oprn_oprt_name") private String oprnOprtName; /** * 计划生育服务证号 */ - @JSONField(name = "fpsc_no") + @JsonProperty("fpsc_no") private String fpscNo; /** * 生育类别 */ - @JSONField(name = "matn_type") + @JsonProperty("matn_type") private String matnType; /** * 计划生育手术类别 */ - @JSONField(name = "birctrl_type") + @JsonProperty("birctrl_type") private String birctrlType; /** * 晚育标志 */ - @JSONField(name = "latechb_flag") + @JsonProperty("latechb_flag") private String latechbFlag; /** * 孕周数 */ - @JSONField(name = "geso_val") + @JsonProperty("geso_val") private Integer gesoVal; /** * 胎次 */ - @JSONField(name = "fetts") + @JsonProperty("fetts") private Integer fetts; /** * 胎儿数 */ - @JSONField(name = "fetus_cnt") + @JsonProperty("fetus_cnt") private Integer fetusCnt; /** * 早产标志 */ - @JSONField(name = "pret_flag") + @JsonProperty("pret_flag") private String pretFlag; /** * 计划生育手术或生育日期(格式:yyyy-MM-dd) */ - @JSONField(name = "birctrl_matn_date", format = "yyyy-MM-dd") + @JsonProperty("birctrl_matn_date") @JsonFormat(pattern = "yyyy-MM-dd") private Date birctrlMatnDate; /** * 病种类型 */ - @JSONField(name = "dise_type_code") + @JsonProperty("dise_type_code") private String diseTypeCode; /** * 字段扩展 */ - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; /** * 参保地医保区划 */ - @JSONField(name = "insuplc_admdvs") + @JsonProperty("insuplc_admdvs") private String insuplcAdmdvs; /** * 就医地医保区划 */ - @JSONField(name = "mdtrtarea_admvs") + @JsonProperty("mdtrtarea_admvs") private String mdtrtareaAdmvs; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientTrumContent.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientTrumContent.java index 522f31c45..9295f2a66 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientTrumContent.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2401InputInpatientTrumContent.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -19,19 +19,19 @@ public class Yb2401InputInpatientTrumContent { /** * 外伤标识(外伤就医时必填) */ - @JSONField(name = "trum_flag") + @JsonProperty("trum_flag") private String trumFlag; /** * 涉及第三方标志(承诺是否涉及第三方,trum_flag外伤标志为“1“时,此项为必填。0 代表不涉及第三方,1代表涉及第三方) */ - @JSONField(name = "rel_ttp_flag") + @JsonProperty("rel_ttp_flag") private String relTtpFlag; /** * 就诊人群类型 */ - @JSONField(name = "mdtrt_grp_type") + @JsonProperty("mdtrt_grp_type") private String mdtrtGrpType; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2402InputInpatientDiseInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2402InputInpatientDiseInfo.java index 62663279a..11012c2d1 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2402InputInpatientDiseInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2402InputInpatientDiseInfo.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -21,67 +22,67 @@ public class Yb2402InputInpatientDiseInfo { /** * 就诊ID */ - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** * 人员编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 诊断类别 */ - @JSONField(name = "diag_type") + @JsonProperty("diag_type") private String diagType; /** * 主诊断标志 */ - @JSONField(name = "maindiag_flag") + @JsonProperty("maindiag_flag") private String maindiagFlag; /** * 诊断排序号 */ - @JSONField(name = "diag_srt_no") + @JsonProperty("diag_srt_no") private Integer diagSrtNo; /** * 诊断代码 */ - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; /** * 诊断名称 */ - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; /** * 诊断科室 */ - @JSONField(name = "diag_dept") + @JsonProperty("diag_dept") private String diagDept; /** * 诊断医生编码 */ - @JSONField(name = "dise_dor_no") + @JsonProperty("dise_dor_no") private String diseDorNo; /** * 诊断医生姓名 */ - @JSONField(name = "dise_dor_name") + @JsonProperty("dise_dor_name") private String diseDorName; /** * 诊断时间(格式:yyyy-MM-dd HH:mm:ss) */ - @JSONField(name = "diag_time", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("diag_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date diagTime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2402InputInpatientDscgInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2402InputInpatientDscgInfo.java index 5885c3151..6d04c58c9 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2402InputInpatientDscgInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2402InputInpatientDscgInfo.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -21,144 +22,144 @@ public class Yb2402InputInpatientDscgInfo { /** * 就诊ID */ - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** * 人员编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 险种类型 */ - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; /** * 结束时间(出院时间,格式:yyyy-MM-dd HH:mm:ss) */ - @JSONField(name = "endtime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("endtime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endtime; /** * 病种编码(按照标准编码填写:按病种结算病种目录代码(bydise_setl_list_code)、日间手术病种目录代码(daysrg_dise_list_code)) */ - @JSONField(name = "dise_codg") + @JsonProperty("dise_codg") private String diseCodg; /** * 病种名称 */ - @JSONField(name = "dise_name") + @JsonProperty("dise_name") private String diseName; /** * 手术操作代码(日间手术病种时必填) */ - @JSONField(name = "oprn_oprt_code") + @JsonProperty("oprn_oprt_code") private String oprnOprtCode; /** * 手术操作名称 */ - @JSONField(name = "oprn_oprt_name") + @JsonProperty("oprn_oprt_name") private String oprnOprtName; /** * 计划生育服务证号 */ - @JSONField(name = "fpsc_no") + @JsonProperty("fpsc_no") private String fpscNo; /** * 生育类别 */ - @JSONField(name = "matn_type") + @JsonProperty("matn_type") private String matnType; /** * 计划生育手术类别 */ - @JSONField(name = "birctrl_type") + @JsonProperty("birctrl_type") private String birctrlType; /** * 晚育标志 */ - @JSONField(name = "latechb_flag") + @JsonProperty("latechb_flag") private String latechbFlag; /** * 孕周数 */ - @JSONField(name = "esso_val") + @JsonProperty("esso_val") private Integer essoVal; /** * 胎次 */ - @JSONField(name = "fetts") + @JsonProperty("fetts") private Integer fetts; /** * 胎儿数 */ - @JSONField(name = "fetus_cnt") + @JsonProperty("fetus_cnt") private Integer fetusCnt; /** * 早产标志 */ - @JSONField(name = "pret_flag") + @JsonProperty("pret_flag") private String pretFlag; /** * 计划生育手术或生育日期(格式:yyyy-MM-dd) */ - @JSONField(name = "birctrl_matn_date", format = "yyyy-MM-dd") + @JsonProperty("birctrl_matn_date") @JsonFormat(pattern = "yyyy-MM-dd") private Date birctrlMatnDate; /** * 伴有并发症标志 */ - @JSONField(name = "cop_flag") + @JsonProperty("cop_flag") private String copFlag; /** * 出院科室编码 */ - @JSONField(name = "dscg_dept_codg") + @JsonProperty("dscg_dept_codg") private String dscgDeptCodg; /** * 出院科室名称 */ - @JSONField(name = "dscg_dept_name") + @JsonProperty("dscg_dept_name") private String dscgDeptName; /** * 出院床位 */ - @JSONField(name = "dscg_bed") + @JsonProperty("dscg_bed") private String dscgBed; /** * 离院方式 */ - @JSONField(name = "dscg_way") + @JsonProperty("dscg_way") private String dscgWay; /** * 死亡日期(格式:yyyy-MM-dd) */ - @JSONField(name = "die_date", format = "yyyy-MM-dd") + @JsonProperty("die_date") @JsonFormat(pattern = "yyyy-MM-dd") private Date dieDate; /** * 字段扩展 */ - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputAdmInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputAdmInfo.java index f03af1ca0..f66098e03 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputAdmInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputAdmInfo.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -22,205 +23,205 @@ public class Yb2403InputAdmInfo { /** * 就诊ID */ - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** * 人员编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 联系人姓名 */ - @JSONField(name = "coner_name") + @JsonProperty("coner_name") private String conerName; /** * 联系电话 */ - @JSONField(name = "tel") + @JsonProperty("tel") private String tel; /** * 开始时间(格式:yyyy-MM-dd HH:mm:ss) */ - @JSONField(name = "begntime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("begntime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date begntime; /** * 结束时间(格式:yyyy-MM-dd HH:mm:ss) */ - @JSONField(name = "endtime", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("endtime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endtime; /** * 就诊凭证类型 */ - @JSONField(name = "mdtrt_cert_type") + @JsonProperty("mdtrt_cert_type") private String mdtrtCertType; /** * 医疗类别 */ - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; /** * 住院/门诊号 */ - @JSONField(name = "ipt_otp_no") + @JsonProperty("ipt_otp_no") private String iptOtpNo; /** * 病历号 */ - @JSONField(name = "medrcdno") + @JsonProperty("medrcdno") private String medrcdno; /** * 主治医生编码 */ - @JSONField(name = "atddr_no") + @JsonProperty("atddr_no") private String atddrNo; /** * 主诊医师姓名 */ - @JSONField(name = "chfpdr_name") + @JsonProperty("chfpdr_name") private String chfpdrName; /** * 入院诊断描述 */ - @JSONField(name = "adm_diag_dscr") + @JsonProperty("adm_diag_dscr") private String admDiagDscr; /** * 入院科室编码 */ - @JSONField(name = "adm_dept_codg") + @JsonProperty("adm_dept_codg") private String admDeptCodg; /** * 入院科室名称 */ - @JSONField(name = "adm_dept_name") + @JsonProperty("adm_dept_name") private String admDeptName; /** * 入院床位 */ - @JSONField(name = "adm_bed") + @JsonProperty("adm_bed") private String admBed; /** * 住院主诊断代码 */ - @JSONField(name = "dscg_maindiag_code") + @JsonProperty("dscg_maindiag_code") private String dscgMaindiagCode; /** * 住院主诊断名称 */ - @JSONField(name = "dscg_maindiag_name") + @JsonProperty("dscg_maindiag_name") private String dscgMaindiagName; /** * 主要病情描述 */ - @JSONField(name = "main_cond_dscr") + @JsonProperty("main_cond_dscr") private String mainCondDscr; /** * 病种编码(按照标准编码填写:按病种结算病种目录代码(bydise_setl_list_code)、日间手术病种目录代码(daysrg_dise_list_code)) */ - @JSONField(name = "dise_codg") + @JsonProperty("dise_codg") private String diseCodg; /** * 病种名称 */ - @JSONField(name = "dise_name") + @JsonProperty("dise_name") private String diseName; /** * 手术操作代码(日间手术病种时必填) */ - @JSONField(name = "oprn_oprt_code") + @JsonProperty("oprn_oprt_code") private String oprnOprtCode; /** * 手术操作名称 */ - @JSONField(name = "oprn_oprt_name") + @JsonProperty("oprn_oprt_name") private String oprnOprtName; /** * 计划生育服务证号 */ - @JSONField(name = "fpsc_no") + @JsonProperty("fpsc_no") private String fpscNo; /** * 生育类别 */ - @JSONField(name = "matn_type") + @JsonProperty("matn_type") private String matnType; /** * 计划生育手术类别 */ - @JSONField(name = "birctrl_type") + @JsonProperty("birctrl_type") private String birctrlType; /** * 晚育标志 */ - @JSONField(name = "latechb_flag") + @JsonProperty("latechb_flag") private String latechbFlag; /** * 孕周数 */ - @JSONField(name = "esso_val") + @JsonProperty("esso_val") private Integer essoVal; /** * 胎次 */ - @JSONField(name = "fetts") + @JsonProperty("fetts") private Integer fetts; /** * 胎儿数 */ - @JSONField(name = "fetus_cnt") + @JsonProperty("fetus_cnt") private Integer fetusCnt; /** * 早产标志 */ - @JSONField(name = "pret_flag") + @JsonProperty("pret_flag") private String pretFlag; /** * 计划生育手术或生育日期(格式:yyyy-MM-dd) */ - @JSONField(name = "birctrl_matn_date", format = "yyyy-MM-dd") + @JsonProperty("birctrl_matn_date") @JsonFormat(pattern = "yyyy-MM-dd") private Date birctrlMatnDate; /** * 病种编号 */ - @JSONField(name = "dise_type_code") + @JsonProperty("dise_type_code") private String diseTypeCode; /** * 字段扩展 */ - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputDiseInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputDiseInfo.java index f4397d5fb..8952d2bfb 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputDiseInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputDiseInfo.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -21,72 +22,72 @@ public class Yb2403InputDiseInfo { /** * 就诊ID */ - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** * 人员编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 诊断类别 */ - @JSONField(name = "diag_type") + @JsonProperty("diag_type") private String diagType; /** * 主诊断标志 */ - @JSONField(name = "maindiag_flag") + @JsonProperty("maindiag_flag") private String maindiagFlag; /** * 诊断排序号 */ - @JSONField(name = "diag_srt_no") + @JsonProperty("diag_srt_no") private Integer diagSrtNo; /** * 诊断代码 */ - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; /** * 诊断名称 */ - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; /** * 入院病情 */ - @JSONField(name = "adm_cond") + @JsonProperty("adm_cond") private String admCond; /** * 诊断科室 */ - @JSONField(name = "diag_dept") + @JsonProperty("diag_dept") private String diagDept; /** * 诊断医生编码 */ - @JSONField(name = "dise_dor_no") + @JsonProperty("dise_dor_no") private String diseDorNo; /** * 诊断医生姓名 */ - @JSONField(name = "dise_dor_name") + @JsonProperty("dise_dor_name") private String diseDorName; /** * 诊断时间(格式:yyyy-MM-dd HH:mm:ss) */ - @JSONField(name = "diag_time", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("diag_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date diagTime; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputMdtrtGrpContent.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputMdtrtGrpContent.java index d4c4b86d3..d8ecd2d8b 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputMdtrtGrpContent.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputMdtrtGrpContent.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** @@ -15,6 +15,6 @@ import lombok.Data; @Data public class Yb2403InputMdtrtGrpContent { - @JSONField(name = "mdtrt_grp_type") + @JsonProperty("mdtrt_grp_type") private String mdtrtGrpType; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputTrumContent.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputTrumContent.java index 1a92ca5b9..a070e4cbf 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputTrumContent.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2403InputTrumContent.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -19,12 +19,12 @@ public class Yb2403InputTrumContent { /** * 外伤标识(外伤就医时必填) */ - @JSONField(name = "trum_flag") + @JsonProperty("trum_flag") private String trumFlag; /** * 涉及第三方标志(承诺是否涉及第三方,trum_flag外伤标志为“1“时,此项为必填。0 代表不涉及第三方,1代表涉及第三方) */ - @JSONField(name = "rel_ttp_flag") + @JsonProperty("rel_ttp_flag") private String relTtpFlag; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2404InputInpatient.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2404InputInpatient.java index cfb85190c..cd0bb20f3 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2404InputInpatient.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2404InputInpatient.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -19,24 +19,24 @@ public class Yb2404InputInpatient { /** * 就诊ID */ - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** * 人员编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 字段扩展 */ - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; /** * 字段扩展 */ - @JSONField(name = "insuplc_admdvs") + @JsonProperty("insuplc_admdvs") private String insuplcAdmdvs; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2405InputInpatient.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2405InputInpatient.java index 7f0ab93ce..9cfb570c3 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2405InputInpatient.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2405InputInpatient.java @@ -3,7 +3,7 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -20,19 +20,19 @@ public class Yb2405InputInpatient { /** * 就诊ID */ - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** * 人员编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 字段扩展 */ - @JSONField(name = "exp_content") + @JsonProperty("exp_content") private String expContent; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2601InputParam.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2601InputParam.java index 5de94a9d0..563124742 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2601InputParam.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb2601InputParam.java @@ -1,20 +1,20 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data public class Yb2601InputParam { - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; - @JSONField(name = "oinfno") + @JsonProperty("oinfno") private String oinfno; - @JSONField(name = "omsgid") + @JsonProperty("omsgid") private String omsgid; - @JSONField(name = "insuplc_admdvs") + @JsonProperty("insuplc_admdvs") private String insuplcAdmdvs; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputData.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputData.java index 5e5b3742a..6d42d2020 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputData.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputData.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -23,33 +23,33 @@ public class Yb3101InputData { */ @NotBlank @Length(max = 10) - @JSONField(name = "syscode") + @JsonProperty("syscode") private String syscode; /** * 参保人信息 */ @NotEmpty - @JSONField(name = "patient_dtos") + @JsonProperty("patient_dtos") private List patientDtos; /** * 规则标识集合 */ - @JSONField(name = "rule_ids") + @JsonProperty("rule_ids") private List ruleIds; /** * 任务ID:每次请求的唯一标识 */ - @JSONField(name = "task_id") + @JsonProperty("task_id") private String taskId; /** * 触发场景:此值与ruleIds指定其一即可,请优先指定此值 */ @Length(max = 3) - @JSONField(name = "trig_scen") + @JsonProperty("trig_scen") private String trigScen; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiDiagnoseDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiDiagnoseDto.java index aac5eb2d3..d88bb14d8 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiDiagnoseDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiDiagnoseDto.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -24,7 +24,7 @@ public class Yb3101InputFsiDiagnoseDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "dise_id") + @JsonProperty("dise_id") private String diseId; /** @@ -32,7 +32,7 @@ public class Yb3101InputFsiDiagnoseDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "inout_dise_type") + @JsonProperty("inout_dise_type") private String inoutDiseType; /** @@ -40,7 +40,7 @@ public class Yb3101InputFsiDiagnoseDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "maindise_flag") + @JsonProperty("maindise_flag") private String maindiseFlag; /** @@ -48,7 +48,7 @@ public class Yb3101InputFsiDiagnoseDto { */ @NotBlank @Length(max = 2) - @JSONField(name = "dias_srt_no") + @JsonProperty("dias_srt_no") private String diasSrtNo; /** @@ -56,7 +56,7 @@ public class Yb3101InputFsiDiagnoseDto { */ @NotBlank @Length(max = 30) - @JSONField(name = "dise_codg") + @JsonProperty("dise_codg") private String diseCodg; /** @@ -64,14 +64,14 @@ public class Yb3101InputFsiDiagnoseDto { */ @NotBlank @Length(max = 200) - @JSONField(name = "dise_name") + @JsonProperty("dise_name") private String diseName; /** * 诊断日期:格式:yyyy-MM-dd HH:mm:ss */ @NotNull - @JSONField(name = "dise_date") + @JsonProperty("dise_date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date diseDate; diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiEncounterDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiEncounterDto.java index 4e6e43584..fd488f7ef 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiEncounterDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiEncounterDto.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -27,7 +27,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** @@ -35,7 +35,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "medins_id") + @JsonProperty("medins_id") private String medinsId; /** @@ -43,7 +43,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 200) - @JSONField(name = "medins_name") + @JsonProperty("medins_name") private String medinsName; /** @@ -51,7 +51,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 6) - @JSONField(name = "medins_admdvs") + @JsonProperty("medins_admdvs") private String medinsAdmdvs; /** @@ -59,7 +59,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "medins_type") + @JsonProperty("medins_type") private String medinsType; /** @@ -67,35 +67,35 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "medins_lv") + @JsonProperty("medins_lv") private String medinsLv; /** * 病区标识 */ @Length(max = 20) - @JSONField(name = "wardarea_codg") + @JsonProperty("wardarea_codg") private String wardareaCodg; /** * 病房号 */ @Length(max = 20) - @JSONField(name = "wardno") + @JsonProperty("wardno") private String wardno; /** * 病床号 */ @Length(max = 20) - @JSONField(name = "bedno") + @JsonProperty("bedno") private String bedno; /** * 入院日期 */ @NotNull - @JSONField(name = "adm_date") + @JsonProperty("adm_date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date admDate; @@ -103,7 +103,7 @@ public class Yb3101InputFsiEncounterDto { * 出院日期 */ @NotNull - @JSONField(name = "dscg_date") + @JsonProperty("dscg_date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dscgDate; @@ -112,7 +112,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 20) - @JSONField(name = "dscg_main_dise_codg") + @JsonProperty("dscg_main_dise_codg") private String dscgMainDiseCodg; /** @@ -120,14 +120,14 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "dscg_main_dise_name") + @JsonProperty("dscg_main_dise_name") private String dscgMainDiseName; /** * 诊断信息集合 */ @NotEmpty - @JSONField(name = "fsi_diagnose_dtos") + @JsonProperty("fsi_diagnose_dtos") private List fsiDiagnoseDtos; /** @@ -135,7 +135,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 20) - @JSONField(name = "dr_codg") + @JsonProperty("dr_codg") private String drCodg; /** @@ -143,7 +143,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 20) - @JSONField(name = "adm_dept_codg") + @JsonProperty("adm_dept_codg") private String admDeptCodg; /** @@ -151,7 +151,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "adm_dept_name") + @JsonProperty("adm_dept_name") private String admDeptName; /** @@ -159,7 +159,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 20) - @JSONField(name = "dscg_dept_codg") + @JsonProperty("dscg_dept_codg") private String dscgDeptCodg; /** @@ -167,7 +167,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "dscg_dept_name") + @JsonProperty("dscg_dept_name") private String dscgDeptName; /** @@ -175,7 +175,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "med_mdtrt_type") + @JsonProperty("med_mdtrt_type") private String medMdtrtType; /** @@ -183,14 +183,14 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; /** * 处方(医嘱)信息集合 */ @NotEmpty - @JSONField(name = "fsi_order_dtos") + @JsonProperty("fsi_order_dtos") private List fsiOrderDtos; /** @@ -198,53 +198,53 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "matn_stas") + @JsonProperty("matn_stas") private String matnStas; /** * 总费用 */ @NotNull - @JSONField(name = "medfee_sumamt") + @JsonProperty("medfee_sumamt") private BigDecimal medfeeSumamt; /** * 自费金额 */ @NotNull - @JSONField(name = "ownpay_amt") + @JsonProperty("ownpay_amt") private BigDecimal ownpayAmt; /** * 自付金额 */ @NotNull - @JSONField(name = "selfpay_amt") + @JsonProperty("selfpay_amt") private BigDecimal selfpayAmt; /** * 个人账户支付金额 */ - @JSONField(name = "acct_payamt") + @JsonProperty("acct_payamt") private BigDecimal acctPayamt; /** * 救助金支付金额 */ - @JSONField(name = "ma_amt") + @JsonProperty("ma_amt") private BigDecimal maAmt; /** * 统筹金支付金额 */ - @JSONField(name = "hifp_payamt") + @JsonProperty("hifp_payamt") private BigDecimal hifpPayamt; /** * 结算总次数 */ @NotNull - @JSONField(name = "setl_totlnum") + @JsonProperty("setl_totlnum") private Integer setlTotlnum; /** @@ -252,7 +252,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "insutype") + @JsonProperty("insutype") private String insutype; /** @@ -260,7 +260,7 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "reim_flag") + @JsonProperty("reim_flag") private String reimFlag; /** @@ -268,13 +268,13 @@ public class Yb3101InputFsiEncounterDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "out_setl_flag") + @JsonProperty("out_setl_flag") private String outSetlFlag; /** * 手术操作集合 */ - @JSONField(name = "fsi_operation_dtos") + @JsonProperty("fsi_operation_dtos") private List fsiOperationDtos; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiOperationDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiOperationDto.java index e747d0ccd..76dd6ec0d 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiOperationDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiOperationDto.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -22,21 +22,21 @@ public class Yb3101InputFsiOperationDto { */ @NotBlank @Length(max = 30) - @JSONField(name = "setl_list_oprn_id") + @JsonProperty("setl_list_oprn_id") private String setlListOprnId; /** * 手术操作代码 */ @Length(max = 30) - @JSONField(name = "oprn_code") + @JsonProperty("oprn_code") private String oprnCode; /** * 手术操作名称 */ @Length(max = 500) - @JSONField(name = "oprn_name") + @JsonProperty("oprn_name") private String oprnName; /** @@ -44,48 +44,48 @@ public class Yb3101InputFsiOperationDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "main_oprn_flag") + @JsonProperty("main_oprn_flag") private String mainOprnFlag; /** * 手术操作日期 */ - @JSONField(name = "oprn_date") + @JsonProperty("oprn_date") private Date oprnDate; /** * 麻醉方式 */ @Length(max = 30) - @JSONField(name = "anst_way") + @JsonProperty("anst_way") private String anstWay; /** * 术者医师姓名 */ @Length(max = 50) - @JSONField(name = "oper_dr_name") + @JsonProperty("oper_dr_name") private String operDrName; /** * 术者医师代码 */ @Length(max = 30) - @JSONField(name = "oper_dr_code") + @JsonProperty("oper_dr_code") private String operDrCode; /** * 麻醉医师姓名 */ @Length(max = 50) - @JSONField(name = "anst_dr_name") + @JsonProperty("anst_dr_name") private String anstDrName; /** * 麻醉医师代码 */ @Length(max = 30) - @JSONField(name = "anst_dr_code") + @JsonProperty("anst_dr_code") private String anstDrCode; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiOrderDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiOrderDto.java index 1a0398342..eed4be770 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiOrderDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputFsiOrderDto.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -25,7 +25,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "rx_id") + @JsonProperty("rx_id") private String rxId; /** @@ -33,14 +33,14 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 20) - @JSONField(name = "rxno") + @JsonProperty("rxno") private String rxno; /** * 组编号 */ @Length(max = 20) - @JSONField(name = "grpno") + @JsonProperty("grpno") private String grpno; /** @@ -48,7 +48,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "long_drord_flag") + @JsonProperty("long_drord_flag") private String longDrordFlag; /** @@ -56,7 +56,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "hilist_type") + @JsonProperty("hilist_type") private String hilistType; /** @@ -64,7 +64,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "chrg_type") + @JsonProperty("chrg_type") private String chrgType; /** @@ -72,7 +72,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "drord_bhvr") + @JsonProperty("drord_bhvr") private String drordBhvr; /** @@ -80,7 +80,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 20) - @JSONField(name = "hilist_code") + @JsonProperty("hilist_code") private String hilistCode; /** @@ -88,14 +88,14 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "hilist_name") + @JsonProperty("hilist_name") private String hilistName; /** * 医保目录(药品)剂型:国家统一标准药品剂型 */ @Length(max = 50) - @JSONField(name = "hilist_dosform") + @JsonProperty("hilist_dosform") private String hilistDosform; /** @@ -103,39 +103,39 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "hilist_lv") + @JsonProperty("hilist_lv") private String hilistLv; /** * 医保目录价格 */ @NotNull - @JSONField(name = "hilist_pric") + @JsonProperty("hilist_pric") private BigDecimal hilistPric; /** * 一级医院目录价格 */ - @JSONField(name = "lv1_hosp_item_pric") + @JsonProperty("lv1_hosp_item_pric") private BigDecimal lv1HospItemPric; /** * 二级医院目录价格 */ - @JSONField(name = "lv2_hosp_item_pric") + @JsonProperty("lv2_hosp_item_pric") private BigDecimal lv2HospItemPric; /** * 三级医院目录价格 */ - @JSONField(name = "lv3_hosp_item_pric") + @JsonProperty("lv3_hosp_item_pric") private BigDecimal lv3HospItemPric; /** * 医保目录备注 */ @Length(max = 200) - @JSONField(name = "hilist_memo") + @JsonProperty("hilist_memo") private String hilistMemo; /** @@ -143,7 +143,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 20) - @JSONField(name = "hosplist_code") + @JsonProperty("hosplist_code") private String hosplistCode; /** @@ -151,49 +151,49 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "hosplist_name") + @JsonProperty("hosplist_name") private String hosplistName; /** * 医院目录(药品)剂型 */ @Length(max = 20) - @JSONField(name = "hosplist_dosform") + @JsonProperty("hosplist_dosform") private String hosplistDosform; /** * 数量 */ @NotNull - @JSONField(name = "cnt") + @JsonProperty("cnt") private BigDecimal cnt; /** * 单价 */ @NotNull - @JSONField(name = "pric") + @JsonProperty("pric") private BigDecimal pric; /** * 总费用 */ @NotNull - @JSONField(name = "sumamt") + @JsonProperty("sumamt") private BigDecimal sumamt; /** * 自费金额 */ @NotNull - @JSONField(name = "ownpay_amt") + @JsonProperty("ownpay_amt") private BigDecimal ownpayAmt; /** * 自付金额 */ @NotNull - @JSONField(name = "selfpay_amt") + @JsonProperty("selfpay_amt") private BigDecimal selfpayAmt; /** @@ -201,7 +201,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 100) - @JSONField(name = "spec") + @JsonProperty("spec") private String spec; /** @@ -209,21 +209,21 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 20) - @JSONField(name = "spec_unt") + @JsonProperty("spec_unt") private String specUnt; /** * 医嘱开始日期:格式:yyyy-MM-dd HH:mm:ss */ @NotNull - @JSONField(name = "drord_begn_date") + @JsonProperty("drord_begn_date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date drordBegnDate; /** * 医嘱停止日期:格式:yyyy-MM-dd HH:mm:ss */ - @JSONField(name = "drord_stop_date") + @JsonProperty("drord_stop_date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private String drordStopDate; @@ -232,7 +232,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 30) - @JSONField(name = "drord_dept_codg") + @JsonProperty("drord_dept_codg") private String drordDeptCodg; /** @@ -240,7 +240,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "drord_dept_name") + @JsonProperty("drord_dept_name") private String drordDeptName; /** @@ -248,7 +248,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 30) - @JSONField(name = "drord_dr_codg") + @JsonProperty("drord_dr_codg") private String drordDrCodg; /** @@ -256,7 +256,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 30) - @JSONField(name = "drord_dr_name") + @JsonProperty("drord_dr_name") private String drordDrName; /** @@ -264,7 +264,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "drord_dr_profttl") + @JsonProperty("drord_dr_profttl") private String drordDrProfttl; /** @@ -272,7 +272,7 @@ public class Yb3101InputFsiOrderDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "curr_drord_flag") + @JsonProperty("curr_drord_flag") private String currDrordFlag; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputPatientDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputPatientDto.java index 1b2a02c3c..cdc84543d 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputPatientDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101InputPatientDto.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -26,7 +26,7 @@ public class Yb3101InputPatientDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "patn_id") + @JsonProperty("patn_id") private String patnId; /** @@ -34,7 +34,7 @@ public class Yb3101InputPatientDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "patn_name") + @JsonProperty("patn_name") private String patnName; /** @@ -42,14 +42,14 @@ public class Yb3101InputPatientDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "gend") + @JsonProperty("gend") private String gend; /** * 出生日期:格式:yyyy-MM-dd */ @NotNull - @JSONField(name = "brdy") + @JsonProperty("brdy") @JsonFormat(pattern = "yyyy-MM-dd") private Date brdy; @@ -58,7 +58,7 @@ public class Yb3101InputPatientDto { */ @NotBlank @Length(max = 10) - @JSONField(name = "poolarea") + @JsonProperty("poolarea") private String poolarea; /** @@ -66,20 +66,20 @@ public class Yb3101InputPatientDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "curr_mdtrt_id") + @JsonProperty("curr_mdtrt_id") private String currMdtrtId; /** * 就诊信息集合 */ @NotEmpty - @JSONField(name = "fsi_encounter_dtos") + @JsonProperty("fsi_encounter_dtos") private List fsiEncounterDtos; /** * 医院信息 */ - @JSONField(name = "fsi_his_data_dto") + @JsonProperty("fsi_his_data_dto") private String fsiHisDataDto; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101OutputJudgeResultDetailDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101OutputJudgeResultDetailDto.java index 43616ced7..2ccc337b7 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101OutputJudgeResultDetailDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101OutputJudgeResultDetailDto.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -23,7 +23,7 @@ public class Yb3101OutputJudgeResultDetailDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "jrd_id") + @JsonProperty("jrd_id") private String jrdId; /** @@ -31,21 +31,21 @@ public class Yb3101OutputJudgeResultDetailDto { */ @NotBlank @Length(max = 50) - @JSONField(name = "patn_id") + @JsonProperty("patn_id") private String patnId; /** * 就诊标识 */ @Length(max = 50) - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** * 处方(医嘱)标识 */ @Length(max = 50) - @JSONField(name = "rx_id") + @JsonProperty("rx_id") private String rxId; /** @@ -53,14 +53,14 @@ public class Yb3101OutputJudgeResultDetailDto { */ @NotBlank @Length(max = 3) - @JSONField(name = "vola_item_type") + @JsonProperty("vola_item_type") private String volaItemType; /** * 违规金额 */ @NotNull - @JSONField(name = "vola_amt") + @JsonProperty("vola_amt") private BigDecimal volaAmt; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101OutputResult.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101OutputResult.java index 5e2ce8b1f..f27519085 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101OutputResult.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3101OutputResult.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -25,7 +25,7 @@ public class Yb3101OutputResult { */ @NotBlank @Length(max = 50) - @JSONField(name = "jr_id") + @JsonProperty("jr_id") private String jrId; /** @@ -33,7 +33,7 @@ public class Yb3101OutputResult { */ @NotBlank @Length(max = 50) - @JSONField(name = "rule_id") + @JsonProperty("rule_id") private String ruleId; /** @@ -41,7 +41,7 @@ public class Yb3101OutputResult { */ @NotBlank @Length(max = 200) - @JSONField(name = "rule_name") + @JsonProperty("rule_name") private String ruleName; /** @@ -49,7 +49,7 @@ public class Yb3101OutputResult { */ @NotBlank @Length(max = 500) - @JSONField(name = "vola_cont") + @JsonProperty("vola_cont") private String volaCont; /** @@ -57,28 +57,28 @@ public class Yb3101OutputResult { */ @NotBlank @Length(max = 50) - @JSONField(name = "patn_id") + @JsonProperty("patn_id") private String patnId; /** * 就诊ID:(注意:当是多就诊导致违规时,这里是其中一个就诊ID) */ @Length(max = 50) - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** * 违规明细集合 */ @NotEmpty - @JSONField(name = "judge_result_detail_dtos") + @JsonProperty("judge_result_detail_dtos") private List judgeResultDetailDtos; /** * 违规金额 */ @NotNull - @JSONField(name = "vola_amt") + @JsonProperty("vola_amt") private BigDecimal volaAmt; /** @@ -86,7 +86,7 @@ public class Yb3101OutputResult { */ @NotBlank @Length(max = 3) - @JSONField(name = "vola_amt_stas") + @JsonProperty("vola_amt_stas") private String volaAmtStas; /** @@ -94,14 +94,14 @@ public class Yb3101OutputResult { */ @NotBlank @Length(max = 3) - @JSONField(name = "sev_deg") + @JsonProperty("sev_deg") private String sevDeg; /** * 违规依据 */ @Length(max = 500) - @JSONField(name = "vola_evid") + @JsonProperty("vola_evid") private String volaEvid; /** @@ -109,13 +109,13 @@ public class Yb3101OutputResult { */ @NotBlank @Length(max = 3) - @JSONField(name = "vola_bhvr_type") + @JsonProperty("vola_bhvr_type") private String volaBhvrType; /** * 规则ID:例如:R01 */ - @JSONField(name = "task_id") + @JsonProperty("task_id") private String taskId; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3103InputData.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3103InputData.java index 5330736b5..a2663ca89 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3103InputData.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3103InputData.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -23,14 +23,14 @@ public class Yb3103InputData { */ @NotBlank @Length(max = 6) - @JSONField(name = "warn_type") + @JsonProperty("warn_type") private String warnType; /** * 处理数据集合 */ @NotEmpty - @JSONField(name = "warns") + @JsonProperty("warns") private List warns; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3103InputWarn.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3103InputWarn.java index 62cc43015..3b50deede 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3103InputWarn.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb3103InputWarn.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -21,20 +21,20 @@ public class Yb3103InputWarn { */ @NotBlank @Length(max = 40) - @JSONField(name = "warn_rslt_id") + @JsonProperty("warn_rslt_id") private String warnRsltId; /** * 处理方式:1.继续执行医嘱 2.返回修改医嘱 */ @NotBlank - @JSONField(name = "dspo_way") + @JsonProperty("dspo_way") private String dspoWay; /** * 处理原因:如果为dspoWay 为1必填 (20250630修改) */ - @JSONField(name = "dspo_way_rea") + @JsonProperty("dspo_way_rea") private String dspoWayRea; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputBldinfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputBldinfo.java index 9b80e068c..e2db13537 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputBldinfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputBldinfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -18,21 +18,21 @@ public class Yb4101AInputBldinfo { * 输血品种 */ @Length(max = 3) - @JSONField(name = "bld_cat") + @JsonProperty("bld_cat") private String bldCat; /** * 输血量 */ @Length(max = 6) - @JSONField(name = "bld_amt") + @JsonProperty("bld_amt") private Integer bldAmt; /** * 输血计量单位 */ @Length(max = 3) - @JSONField(name = "bld_unt") + @JsonProperty("bld_unt") private String bldUnt; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputDiseinfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputDiseinfo.java index 73652f281..b16d8ec22 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputDiseinfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputDiseinfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -21,7 +21,7 @@ public class Yb4101AInputDiseinfo { */ @NotBlank @Length(max = 3) - @JSONField(name = "diag_type") + @JsonProperty("diag_type") private String diagType; /** @@ -29,7 +29,7 @@ public class Yb4101AInputDiseinfo { */ @NotBlank @Length(max = 20) - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; /** @@ -37,7 +37,7 @@ public class Yb4101AInputDiseinfo { */ @NotBlank @Length(max = 100) - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; /** @@ -45,7 +45,7 @@ public class Yb4101AInputDiseinfo { */ @NotBlank @Length(max = 3) - @JSONField(name = "adm_cond_type") + @JsonProperty("adm_cond_type") private String admCondType; /** @@ -53,7 +53,7 @@ public class Yb4101AInputDiseinfo { */ @NotBlank @Length(max = 3) - @JSONField(name = "maindiag_flag") + @JsonProperty("maindiag_flag") private String maindiagFlag; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputIcuinfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputIcuinfo.java index 6030cf1e2..eaf59d2a8 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputIcuinfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputIcuinfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -23,20 +23,20 @@ public class Yb4101AInputIcuinfo { */ @NotBlank @Length(max = 6) - @JSONField(name = "scs_cutd_ward_type") + @JsonProperty("scs_cutd_ward_type") private String scsCutdWardType; /** * 手术操作开始时间 */ - @JSONField(name = "scs_cutd_inpool_time") + @JsonProperty("scs_cutd_inpool_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date scsCutdInpoolTime; /** * 手术操作结束时间 */ - @JSONField(name = "scs_cutd_exit_time") + @JsonProperty("scs_cutd_exit_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date scsCutdExitTime; @@ -45,7 +45,7 @@ public class Yb4101AInputIcuinfo { */ @NotBlank @Length(max = 10) - @JSONField(name = "scs_cutd_sum_dura") + @JsonProperty("scs_cutd_sum_dura") private String scsCutdSumDura; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputIteminfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputIteminfo.java index 70a061dfa..e6f3d9a57 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputIteminfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputIteminfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -22,39 +22,39 @@ public class Yb4101AInputIteminfo { */ @NotBlank @Length(max = 6) - @JSONField(name = "med_chrgitm") + @JsonProperty("med_chrgitm") private String medChrgitm; /** * 金额 */ @NotBlank - @JSONField(name = "amt") + @JsonProperty("amt") private String amt; /** * 甲类费用合计 */ - @JSONField(name = "claa_sumfee") + @JsonProperty("claa_sumfee") private String claaSumfee; /** * 乙类金额 */ - @JSONField(name = "clab_amt") + @JsonProperty("clab_amt") private Date clabAmt; /** * 全自费金额 */ @Length(max = 6) - @JSONField(name = "fulamt_ownpay_amt") + @JsonProperty("fulamt_ownpay_amt") private String fulamtOwnpayAmt; /** * 其他金额 */ - @JSONField(name = "oth_amt") + @JsonProperty("oth_amt") private String othAmt; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputOprninfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputOprninfo.java index 8b52d6a2e..9c06f0d9d 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputOprninfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputOprninfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -23,7 +23,7 @@ public class Yb4101AInputOprninfo { */ @NotBlank @Length(max = 3) - @JSONField(name = "oprn_oprt_type") + @JsonProperty("oprn_oprt_type") private String oprnOprtType; /** @@ -31,7 +31,7 @@ public class Yb4101AInputOprninfo { */ @NotBlank @Length(max = 500) - @JSONField(name = "oprn_oprt_name") + @JsonProperty("oprn_oprt_name") private String oprnOprtName; /** @@ -39,13 +39,13 @@ public class Yb4101AInputOprninfo { */ @NotBlank @Length(max = 30) - @JSONField(name = "oprn_oprt_code") + @JsonProperty("oprn_oprt_code") private String oprnOprtCode; /** * 手术操作代码 */ - @JSONField(name = "oprn_oprt_begntime") + @JsonProperty("oprn_oprt_begntime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date oprnOprtDate; @@ -53,7 +53,7 @@ public class Yb4101AInputOprninfo { * 麻醉方式:参照麻醉-方法代码 */ @Length(max = 6) - @JSONField(name = "anst_way") + @JsonProperty("anst_way") private String anstWay; /** @@ -61,41 +61,41 @@ public class Yb4101AInputOprninfo { */ @NotBlank @Length(max = 20) - @JSONField(name = "oper_dr_code") + @JsonProperty("oper_dr_code") private String operDrCode; /** * 麻醉医师代码 */ @Length(max = 20) - @JSONField(name = "anst_dr_code") + @JsonProperty("anst_dr_code") private String anstDrCode; /** * 手术操作开始时间 */ - @JSONField(name = "oprn_oprt_begntime") + @JsonProperty("oprn_oprt_begntime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date oprnOprtBegntime; /** * 手术操作结束时间 */ - @JSONField(name = "oprn_oprt_endtime") + @JsonProperty("oprn_oprt_endtime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date oprnOprtEndtime; /** * 麻醉开始时间 */ - @JSONField(name = "anst_begntime") + @JsonProperty("anst_begntime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date anstBegntime; /** * 麻醉结束时间 */ - @JSONField(name = "anst_endtime") + @JsonProperty("anst_endtime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date anstEndtime; diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputOpspdiseinfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputOpspdiseinfo.java index e329b084b..1ce6e563e 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputOpspdiseinfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputOpspdiseinfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -21,7 +21,7 @@ public class Yb4101AInputOpspdiseinfo { */ @NotBlank @Length(max = 100) - @JSONField(name = "diag_name") + @JsonProperty("diag_name") private String diagName; /** @@ -29,7 +29,7 @@ public class Yb4101AInputOpspdiseinfo { */ @NotBlank @Length(max = 20) - @JSONField(name = "diag_code") + @JsonProperty("diag_code") private String diagCode; /** @@ -37,7 +37,7 @@ public class Yb4101AInputOpspdiseinfo { */ @NotBlank @Length(max = 500) - @JSONField(name = "oprn_oprt_name") + @JsonProperty("oprn_oprt_name") private String oprnOprtName; /** @@ -45,7 +45,7 @@ public class Yb4101AInputOpspdiseinfo { */ @NotBlank @Length(max = 30) - @JSONField(name = "oprn_oprt_code") + @JsonProperty("oprn_oprt_code") private String oprnOprtCode; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputSetlinfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputSetlinfo.java index afecbf969..8154ef02e 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputSetlinfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AInputSetlinfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; @@ -25,7 +25,7 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 30) - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** @@ -33,7 +33,7 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 30) - @JSONField(name = "mdtrt_id") + @JsonProperty("mdtrt_id") private String mdtrtId; /** @@ -41,27 +41,27 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 30) - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; /** * 医保编号 */ @Length(max = 30) - @JSONField(name = "hi_no") + @JsonProperty("hi_no") private String hiNo; /** * 病案号 */ @Length(max = 30) - @JSONField(name = "medcasno") + @JsonProperty("medcasno") private String medcasno; /** * 申报时间:结算清单上报时间,接收时自动填充 */ - @JSONField(name = "dcla_time") + @JsonProperty("dcla_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dclaTime; @@ -70,7 +70,7 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 6) - @JSONField(name = "ntly") + @JsonProperty("ntly") private String ntly; /** @@ -78,49 +78,49 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 6) - @JSONField(name = "prfs") + @JsonProperty("prfs") private String prfs; /** * 现住址 */ @Length(max = 200) - @JSONField(name = "curr_addr") + @JsonProperty("curr_addr") private String currAddr; /** * 单位名称 */ @Length(max = 200) - @JSONField(name = "emp_name") + @JsonProperty("emp_name") private String empName; /** * 单位地址 */ @Length(max = 200) - @JSONField(name = "emp_addr") + @JsonProperty("emp_addr") private String empAddr; /** * 单位电话 */ @Length(max = 50) - @JSONField(name = "emp_tel") + @JsonProperty("emp_tel") private String empTel; /** * 邮编 */ @Length(max = 6) - @JSONField(name = "poscode") + @JsonProperty("poscode") private String poscode; /** * 联系人姓名 */ @Length(max = 50) - @JSONField(name = "coner_name") + @JsonProperty("coner_name") private String conerName; /** @@ -128,7 +128,7 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 6) - @JSONField(name = "patn_rlts") + @JsonProperty("patn_rlts") private String patnRlts; /** @@ -136,7 +136,7 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 200) - @JSONField(name = "coner_addr") + @JsonProperty("coner_addr") private String conerAddr; /** @@ -144,53 +144,53 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 50) - @JSONField(name = "coner_tel") + @JsonProperty("coner_tel") private String conerTel; /** * 新生儿入院类型 */ @Length(max = 50) - @JSONField(name = "nwb_adm_type") + @JsonProperty("nwb_adm_type") private String nwbAdmType; /** * 新生儿出生体重:精确到10克(g) */ - @JSONField(name = "nwb_bir_wt") + @JsonProperty("nwb_bir_wt") private BigDecimal nwbBirWt; /** * 新生儿入院体重:精确到10克(g) */ - @JSONField(name = "nwb_adm_wt") + @JsonProperty("nwb_adm_wt") private BigDecimal nwbAdmWt; /** * 多新生儿出生体重 */ @Length(max = 50) - @JSONField(name = "mul_nwb_bir_wt") + @JsonProperty("mul_nwb_bir_wt") private String mulNwbBirWt; /** * 多新生儿入院体重 */ @Length(max = 50) - @JSONField(name = "mul_nwb_adm_wt") + @JsonProperty("mul_nwb_adm_wt") private String mulNwbAdmWt; /** * 门诊慢特病诊断科别 */ @Length(max = 50) - @JSONField(name = "opsp_diag_caty") + @JsonProperty("opsp_diag_caty") private String opspDiagCaty; /** * 门诊慢特病就诊日期 */ - @JSONField(name = "opsp_mdtrt_date") + @JsonProperty("opsp_mdtrt_date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date opspMdtrtDate; @@ -198,20 +198,20 @@ public class Yb4101AInputSetlinfo { * 入院途径 */ @Length(max = 30) - @JSONField(name = "adm_way") + @JsonProperty("adm_way") private String admWay; /** * 治疗类别 */ @Length(max = 3) - @JSONField(name = "trt_type") + @JsonProperty("trt_type") private String trtType; /** * 入院时间 */ - @JSONField(name = "adm_time") + @JsonProperty("adm_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date admTime; @@ -219,13 +219,13 @@ public class Yb4101AInputSetlinfo { * 转科科别:参照科室代码(dept),如果超过一次以上的转科,用“→”转接表示 */ @Length(max = 50) - @JSONField(name = "refldept_dept") + @JsonProperty("refldept_dept") private String refldeptDept; /** * 出院时间 */ - @JSONField(name = "dscg_time") + @JsonProperty("dscg_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dscgTime; @@ -234,150 +234,150 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 6) - @JSONField(name = "dscg_caty") + @JsonProperty("dscg_caty") private String dscgCaty; /** * 门(急)诊诊断(西医诊断) */ @Length(max = 200) - @JSONField(name = "otp_wm_dise") + @JsonProperty("otp_wm_dise") private String otpWmDise; /** * 西医疾病代码 */ @Length(max = 20) - @JSONField(name = "wm_dise_code") + @JsonProperty("wm_dise_code") private String wmDiseCode; /** * 门(急)诊诊断(中医诊断) */ @Length(max = 200) - @JSONField(name = "otp_tcm_dise") + @JsonProperty("otp_tcm_dise") private String otpTcmDise; /** * 中医疾病代码 */ @Length(max = 20) - @JSONField(name = "tcm_dise_code") + @JsonProperty("tcm_dise_code") private String tcmDiseCode; /** * 呼吸机使用时长:格式:天数/小时数/分钟数 例:1/13/24 */ @Length(max = 10) - @JSONField(name = "vent_used_dura") + @JsonProperty("vent_used_dura") private String ventUsedDura; /** * 颅脑损伤患者入院前昏迷时长:格式:天数/小时数/分钟数 例:1/13/24 */ @Length(max = 10) - @JSONField(name = "pwcry_bfadm_coma_dura") + @JsonProperty("pwcry_bfadm_coma_dura") private String pwcryBfadmComaDura; /** * 颅脑损伤患者入院后昏迷时长:格式:天数/小时数/分钟数 例:1/13/24 */ @Length(max = 10) - @JSONField(name = "pwcry_afadm_coma_dura") + @JsonProperty("pwcry_afadm_coma_dura") private String pwcryAfadmComaDura; /** * 特级护理天数 */ - @JSONField(name = "spga_nurscare_days") + @JsonProperty("spga_nurscare_days") private BigDecimal spgaNurscareDays; /** * 一级护理天数 */ - @JSONField(name = "lv1_nurscare_days") + @JsonProperty("lv1_nurscare_days") private BigDecimal lv1NurscareDays; /** * 二级护理天数 */ - @JSONField(name = "scd_nurscare_days") + @JsonProperty("scd_nurscare_days") private BigDecimal scdNurscareDays; /** * 三级护理天数 */ - @JSONField(name = "lv3_nurscare_days") + @JsonProperty("lv3_nurscare_days") private Integer lv3NurscareDays; /** * 离院方式 */ @Length(max = 3) - @JSONField(name = "dscg_way") + @JsonProperty("dscg_way") private String dscgWay; /** * 拟接收机构名称:说明当离院方式为“2”时,如果接收患者的医疗机构明确,需要填写转入医疗机构的名称; 当离院方式为“3”时,如果接收患者的社区卫生服务机构明确,需要填写社区卫生服务机构/乡镇卫生院名称 */ @Length(max = 100) - @JSONField(name = "acp_medins_name") + @JsonProperty("acp_medins_name") private String acpMedinsName; /** * 拟接收机构代码:当离院方式为“2”或“3”时,如果接收患者的医疗机构或社区卫生服务机构明确,需要填写机构对应的医保定点医疗机构代码 */ @Length(max = 30) - @JSONField(name = "acp_optins_code") + @JsonProperty("acp_optins_code") private String acpOptinsCode; /** * 票据代码 */ @Length(max = 50) - @JSONField(name = "bill_code") + @JsonProperty("bill_code") private String billCode; /** * 票据号码 */ @Length(max = 30) - @JSONField(name = "bill_no") + @JsonProperty("bill_no") private String billNo; /** * 业务流水号 */ @Length(max = 50) - @JSONField(name = "biz_sn") + @JsonProperty("biz_sn") private String bizSn; /** * 出院31天内再住院计划标志 */ @Length(max = 3) - @JSONField(name = "days_rinp_flag_31") + @JsonProperty("days_rinp_flag_31") private String daysRinpFlag31; /** * 出院31天内再住院计划目的 */ @Length(max = 200) - @JSONField(name = "days_rinp_pup_31") + @JsonProperty("days_rinp_pup_31") private String daysRinpPup31; /** * 主诊医师代码:主诊医师在《医保医师代码》中的代码,在就医地未完成标准化前,可传医师在就医地系统中的唯一编号 */ @Length(max = 30) - @JSONField(name = "chfpdr_code") + @JsonProperty("chfpdr_code") private String chfpdrCode; /** * 结算开始日期 */ @NotNull - @JSONField(name = "setl_begn_date") + @JsonProperty("setl_begn_date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date setlBegnDate; @@ -385,7 +385,7 @@ public class Yb4101AInputSetlinfo { * 结算结束日期 */ @NotNull - @JSONField(name = "setl_end_date") + @JsonProperty("setl_end_date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date setlEndDate; @@ -394,7 +394,7 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 100) - @JSONField(name = "medins_fill_dept") + @JsonProperty("medins_fill_dept") private String medinsFillDept; /** @@ -402,42 +402,42 @@ public class Yb4101AInputSetlinfo { */ @NotBlank @Length(max = 50) - @JSONField(name = "medins_fill_psn") + @JsonProperty("medins_fill_psn") private String medinsFillPsn; /** * 责任护士代码 */ @Length(max = 50) - @JSONField(name = "resp_nurs_code") + @JsonProperty("resp_nurs_code") private String respNursCode; /** * 状态分类 */ @Length(max = 10) - @JSONField(name = "stas_type") + @JsonProperty("stas_type") private String stasType; /** * 医保支付方式 */ @Length(max = 3) - @JSONField(name = "hi_paymtd") + @JsonProperty("hi_paymtd") private String hiPaymtd; /** * 入院科室编码 */ @Length(max = 30) - @JSONField(name = "adm_dept_codg") + @JsonProperty("adm_dept_codg") private String admDeptCodg; /** * 入院科室名称 */ @Length(max = 100) - @JSONField(name = "adm_dept_name") + @JsonProperty("adm_dept_name") private String admDeptName; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AOutputData.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AOutputData.java index 139da988e..5b4bb4620 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AOutputData.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4101AOutputData.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -21,7 +21,7 @@ public class Yb4101AOutputData { */ @NotBlank @Length(max = 9) - @JSONField(name = "setl_list_id") + @JsonProperty("setl_list_id") private String setlListId; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4102InputStastInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4102InputStastInfo.java index 652b5b9b0..c33a2d575 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4102InputStastInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4102InputStastInfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data @@ -8,16 +8,16 @@ public class Yb4102InputStastInfo { /** * 患者编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 结算单编号 */ - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; /** * 统计类别 */ - @JSONField(name = "stas_type") + @JsonProperty("stas_type") private String stasType; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4104InputDto.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4104InputDto.java index 73bc8fde6..f8a797bdc 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4104InputDto.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb4104InputDto.java @@ -1,6 +1,7 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @Data @@ -9,41 +10,41 @@ public class Yb4104InputDto { /** * 患者编号 */ - @JSONField(name = "setl_ym", format = "yyyyMM") + @JsonProperty("setl_ym") @JsonFormat(pattern = "yyyyMM") private String setlYm; /** * 患者编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 结算单编号 */ - @JSONField(name = "setl_id") + @JsonProperty("setl_id") private String setlId; /** * 错误等级 */ - @JSONField(name = "err_lv") + @JsonProperty("err_lv") private String errLv; /** * 回退标志 */ - @JSONField(name = "retn_flag") + @JsonProperty("retn_flag") private String retnFlag; /** * 统计类别 */ - @JSONField(name = "stas_type") + @JsonProperty("stas_type") private String stasType; /** * 当前页数 */ - @JSONField(name = "page_num") + @JsonProperty("page_num") private String pageNum; /** * 本页数据量 */ - @JSONField(name = "page_size") + @JsonProperty("page_size") private String pageSize; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb5205OutputSpecialDisease.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb5205OutputSpecialDisease.java index ea918c92a..f86f713be 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb5205OutputSpecialDisease.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/Yb5205OutputSpecialDisease.java @@ -3,7 +3,8 @@ */ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.math.BigDecimal; @@ -21,198 +22,198 @@ public class Yb5205OutputSpecialDisease { /** * 费用明细流水号 */ - @JSONField(name = "feedetl_sn") + @JsonProperty("feedetl_sn") private String feedetlSn; /** * 处方/医嘱号 */ - @JSONField(name = "rx_drord_no") + @JsonProperty("rx_drord_no") private String rxDrordNo; /** * 定点医药机构编号 */ - @JSONField(name = "fixmedins_code") + @JsonProperty("fixmedins_code") private String fixmedinsCode; /** * 定点医药机构名称 */ - @JSONField(name = "fixmedins_name") + @JsonProperty("fixmedins_name") private String fixmedinsName; /** * 人员编号 */ - @JSONField(name = "psn_no") + @JsonProperty("psn_no") private String psnNo; /** * 医疗类别 */ - @JSONField(name = "med_type") + @JsonProperty("med_type") private String medType; /** * 费用发生时间 */ - @JSONField(name = "fee_ocur_time", format = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("fee_ocur_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date feeOcurTime; /** * 数量 */ - @JSONField(name = "cnt") + @JsonProperty("cnt") private BigDecimal cnt; /** * 单价 */ - @JSONField(name = "pric") + @JsonProperty("pric") private BigDecimal pric; /** * 收费项目等级 */ - @JSONField(name = "chrgitm_lv") + @JsonProperty("chrgitm_lv") private String chrgitmLv; /** * 医保目录编码 */ - @JSONField(name = "hilist_code") + @JsonProperty("hilist_code") private String hilistCode; /** * 医保目录名称 */ - @JSONField(name = "hilist_name") + @JsonProperty("hilist_name") private String hilistName; /** * 目录类别 */ - @JSONField(name = "list_type") + @JsonProperty("list_type") private String listType; /** * 医疗目录编码 */ - @JSONField(name = "med_list_codg") + @JsonProperty("med_list_codg") private String medListCodg; /** * 医药机构目录编码 */ - @JSONField(name = "medins_list_codg") + @JsonProperty("medins_list_codg") private String medinsListCodg; /** * 医药机构目录名称 */ - @JSONField(name = "medins_list_name") + @JsonProperty("medins_list_name") private String medinsListName; /** * 医疗收费项目类别 */ - @JSONField(name = "med_chrgitm_type") + @JsonProperty("med_chrgitm_type") private String medChrgitmType; /** * 商品名 */ - @JSONField(name = "prodname") + @JsonProperty("prodname") private String prodname; /** * 规格 */ - @JSONField(name = "spec") + @JsonProperty("spec") private String spec; /** * 剂型名称 */ - @JSONField(name = "dosform_name") + @JsonProperty("dosform_name") private String dosformName; /** * 限制使用标志 */ - @JSONField(name = "lmt_used_flag") + @JsonProperty("lmt_used_flag") private String lmtUsedFlag; /** * 医院制剂标志 */ - @JSONField(name = "hosp_prep_flag") + @JsonProperty("hosp_prep_flag") private String hospPrepFlag; /** * 医院审批标志 */ - @JSONField(name = "hosp_appr_flag") + @JsonProperty("hosp_appr_flag") private String hospApprFlag; /** * 中药使用方式 */ - @JSONField(name = "tcmdrug_used_way") + @JsonProperty("tcmdrug_used_way") private String tcmdrugUsedWay; /** * 生产地类别 */ - @JSONField(name = "prodplac_type") + @JsonProperty("prodplac_type") private String prodplacType; /** * 基本药物标志 */ - @JSONField(name = "bas_medn_flag") + @JsonProperty("bas_medn_flag") private String basMednFlag; /** * 医保谈判药品标志 */ - @JSONField(name = "hi_nego_drug_flag") + @JsonProperty("hi_nego_drug_flag") private String hiNegoDrugFlag; /** * 儿童用药标志 */ - @JSONField(name = "chld_medc_flag") + @JsonProperty("chld_medc_flag") private String chldMedcFlag; /** * 外检标志 */ - @JSONField(name = "etip_flag") + @JsonProperty("etip_flag") private String etipFlag; /** * 外检医院编码 */ - @JSONField(name = "etip_hosp_code") + @JsonProperty("etip_hosp_code") private String etipHospCode; /** * 出院带药标志 */ - @JSONField(name = "dscg_tkdrug_flag") + @JsonProperty("dscg_tkdrug_flag") private String dscgTkdrugFlag; /** * 目录特项标志 */ - @JSONField(name = "list_sp_item_flag") + @JsonProperty("list_sp_item_flag") private String listSpItemFlag; /** * 生育费用标志 */ - @JSONField(name = "matn_fee_flag") + @JsonProperty("matn_fee_flag") private String matnFeeFlag; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/extData.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/extData.java index 4bd435d50..269181079 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/extData.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/dto/extData.java @@ -1,6 +1,6 @@ package com.healthlink.his.yb.dto; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -16,74 +16,74 @@ import lombok.experimental.Accessors; @EqualsAndHashCode(callSuper = false) public class extData { // 1. 就医地分中心 - @JSONField(name = "mdtrtarea_subcent") + @JsonProperty("mdtrtarea_subcent") private String mdtrtareaSubcent; // 2. 参保地分中心 - @JSONField(name = "insuplc_subcent") + @JsonProperty("insuplc_subcent") private String insuplcSubcent; // 3. 急诊核定流水号 - @JSONField(name = "er_crtf_evtsn") + @JsonProperty("er_crtf_evtsn") private String erCrtfEvtsn; // 4. 就诊科室 - @JSONField(name = "dept_name") + @JsonProperty("dept_name") private String deptName; // 5. 使用方法 - @JSONField(name = "used_mtd") + @JsonProperty("used_mtd") private String usedMtd; // 6. 现病史 - @JSONField(name = "psndisehis") + @JsonProperty("psndisehis") private String psndisehis; // 7. 生命体征 - @JSONField(name = "life_symptom") + @JsonProperty("life_symptom") private String lifeSymptom; // 8. 临床病症 - @JSONField(name = "clnc_cond") + @JsonProperty("clnc_cond") private String clncCond; // 9. 门(急)诊诊断 - @JSONField(name = "disediag") + @JsonProperty("disediag") private String disediag; // 10. 入院诊断 - @JSONField(name = "adm_disediag_name") + @JsonProperty("adm_disediag_name") private String admDisediagName; // 11. 判定依据 - @JSONField(name = "evid") + @JsonProperty("evid") private String evid; // 12. 首诊医生 - @JSONField(name = "fst_doctor") + @JsonProperty("fst_doctor") private String fstDoctor; // 13. 科主任 - @JSONField(name = "deptort") + @JsonProperty("deptort") private String deptort; // 14. 就诊时间(入院时间)(表示:YYYYMMDDHH24MISS) - @JSONField(name = "adm_date") + @JsonProperty("adm_date") private String admDate; // 15. 姓名 - @JSONField(name = "name") + @JsonProperty("name") private String name; // 16. 身份证 - @JSONField(name = "certno") + @JsonProperty("certno") private String certno; // 17. 年龄 - @JSONField(name = "age") + @JsonProperty("age") private String age; // 18. 性别(1:男,2:女) - @JSONField(name = "gend") + @JsonProperty("gend") private String gend; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbDao.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbDao.java index ea3c370cc..9b6ee32fe 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbDao.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbDao.java @@ -6,7 +6,8 @@ package com.healthlink.his.yb.service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson2.JSON; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.core.type.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -197,7 +198,7 @@ public class YbDao { InfoPerson infoPerson = new InfoPerson(); BeanUtils.copyProperties(readcard, infoPerson); BeanUtils.copyProperties(perInfo, infoPerson); - infoPerson.setResult1101(JSON.toJSONString(perInfo)).setParam1101(JSON.toJSONString(readcard)); + infoPerson.setResult1101(JsonUtils.toJson(perInfo)).setParam1101(JsonUtils.toJson(readcard)); iPerinfoService.save(infoPerson); } @@ -318,8 +319,8 @@ public class YbDao { // 保存结算信息 ClinicSettle clinicSettle = new ClinicSettle(); BeanUtils.copyProperties(clinic2207OrderResult, clinicSettle); - clinicSettle.setParam2207(JSON.toJSONString(clinicOrder2207)) - .setResult2207(JSON.toJSONString(clinic2207OrderResult)); + clinicSettle.setParam2207(JsonUtils.toJson(clinicOrder2207)) + .setResult2207(JsonUtils.toJson(clinic2207OrderResult)); iClinicSettleService.save(clinicSettle); } @@ -335,8 +336,8 @@ public class YbDao { ClinicUnSettle clinicSettle = new ClinicUnSettle(); BeanUtils.copyProperties(clinic2207OrderResult, clinicSettle); - clinicSettle.setParam2208(JSON.toJSONString(clinicOrder2207)) - .setResult2208(JSON.toJSONString(clinic2207OrderResult)).setSettleId(clinic2207OrderResult.getSetlId()); + clinicSettle.setParam2208(JsonUtils.toJson(clinicOrder2207)) + .setResult2208(JsonUtils.toJson(clinic2207OrderResult)).setSettleId(clinic2207OrderResult.getSetlId()); // 保存结算信息 iClinicUnSettleService.save(clinicSettle); } @@ -664,10 +665,10 @@ public class YbDao { ClinicPreSettle clinicPreSettle = new ClinicPreSettle(); BeanUtils.copyProperties(clinic2204OrderParam, clinicPreSettle); BeanUtils.copyProperties(clinic2206OrderResult, clinicPreSettle); - clinicPreSettle.setParam2203(JSON.toJSONString(clinic2203MedicalParam)) - .setParam2204(JSON.toJSONString(clinic2204OrderParam)).setParam2206(JSON.toJSONString(clinic2206OrderParam)) - .setResult2204(JSON.toJSONString(clinic2204OrderResult)) - .setResult2206(JSON.toJSONString(clinic2206OrderResult)).setChrgBchno(clinic2206OrderParam.getChrgBchno()) + clinicPreSettle.setParam2203(JsonUtils.toJson(clinic2203MedicalParam)) + .setParam2204(JsonUtils.toJson(clinic2204OrderParam)).setParam2206(JsonUtils.toJson(clinic2206OrderParam)) + .setResult2204(JsonUtils.toJson(clinic2204OrderResult)) + .setResult2206(JsonUtils.toJson(clinic2206OrderResult)).setChrgBchno(clinic2206OrderParam.getChrgBchno()) .setMdtrtId(clinic2206OrderParam.getMdtrtId()).setPsnNo(clinic2206OrderParam.getPsnNo()) .setDeleteFlag(DelFlag.NO.getCode()); @@ -809,7 +810,7 @@ public class YbDao { Long hospitalId = SecurityUtils.getLoginUser().getHospitalId(); DirectoryCheckRecord directoryCheckRecord = new DirectoryCheckRecord(); directoryCheckRecord.setTableName(tableName).setTableId(id).setOrgId(hospitalId).setType(s) - .setParam(JSON.toJSONString(medicalDirectory3301Param)); + .setParam(JsonUtils.toJson(medicalDirectory3301Param)); directoryCheckRecordService.save(directoryCheckRecord); } @@ -826,7 +827,7 @@ public class YbDao { Long hospitalId = SecurityUtils.getLoginUser().getHospitalId(); DirectoryCheckRecord directoryCheckRecord = new DirectoryCheckRecord(); directoryCheckRecord.setTableName(tableName).setTableId(id).setOrgId(hospitalId).setType(s) - .setParam(JSON.toJSONString(medicalDirectory3302Param)); + .setParam(JsonUtils.toJson(medicalDirectory3302Param)); directoryCheckRecordService.save(directoryCheckRecord); } @@ -856,7 +857,7 @@ public class YbDao { Financial3201Param financial3201Param) { FinancialReconcileRecord financialReconcileRecord = new FinancialReconcileRecord(); BeanUtils.copyProperties(financial3201Output, financialReconcileRecord); - financialReconcileRecord.setParam(JSON.toJSONString(financial3201Output)); + financialReconcileRecord.setParam(JsonUtils.toJson(financial3201Output)); financialReconcileRecord.setFixmedinsName(financial3201Param.getFixmedinsName()); financialReconcileRecord.setAcctPay(financial3201Param.getAcctPay()); financialReconcileRecord.setFundPaySumamt(financial3201Param.getFundPaySumamt()); @@ -1114,7 +1115,7 @@ public class YbDao { public void save3203AFinancialClearingApplycation(Financial3203AParam financial3203AParam, String s) { FinancialApplyRecord financialApplyRecord = new FinancialApplyRecord(); BeanUtils.copyProperties(financial3203AParam, financialApplyRecord); - financialApplyRecord.setParam(JSON.toJSONString(financial3203AParam)).setOutResult(s) + financialApplyRecord.setParam(JsonUtils.toJson(financial3203AParam)).setOutResult(s) .setPraId(SecurityUtils.getLoginUser().getPractitionerId()).setStatus("0"); iFinancialApplyRecordService.save(financialApplyRecord); } @@ -1138,8 +1139,8 @@ public class YbDao { public void saveInventoryCheckRecord(MedicalInventory3501Param medicalInventory3501Param, String resultMessage) { InventoryCheckRecord inventoryCheckRecord = new InventoryCheckRecord(); BeanUtils.copyProperties(medicalInventory3501Param, inventoryCheckRecord); - inventoryCheckRecord.setParam(JSON.toJSONString(medicalInventory3501Param)); - inventoryCheckRecord.setResult(JSON.toJSONString(resultMessage)); + inventoryCheckRecord.setParam(JsonUtils.toJson(medicalInventory3501Param)); + inventoryCheckRecord.setResult(JsonUtils.toJson(resultMessage)); iInventoryCheckRecordService.save(inventoryCheckRecord); } @@ -1151,7 +1152,7 @@ public class YbDao { public void saveInventoryDelRecord(Medical3507Param medical3507Param) { InventoryDelRecord inventoryDelRecord = new InventoryDelRecord(); BeanUtils.copyProperties(medical3507Param, inventoryDelRecord); - inventoryDelRecord.setParam(JSON.toJSONString(medical3507Param)); + inventoryDelRecord.setParam(JsonUtils.toJson(medical3507Param)); iInventoryDelRecordService.save(inventoryDelRecord); } @@ -1163,8 +1164,8 @@ public class YbDao { public void saveInventorySaleReturnRecord(Medical3506Param medical3506Param, String retRslt) { InventorySaleReturnRecord inventorySaleReturnRecord = new InventorySaleReturnRecord(); BeanUtils.copyProperties(medical3506Param, inventorySaleReturnRecord); - inventorySaleReturnRecord.setParam(JSON.toJSONString(medical3506Param)); - inventorySaleReturnRecord.setOutResult(JSON.toJSONString(retRslt)); + inventorySaleReturnRecord.setParam(JsonUtils.toJson(medical3506Param)); + inventorySaleReturnRecord.setOutResult(JsonUtils.toJson(retRslt)); iInventorySaleReturnRecordService.save(inventorySaleReturnRecord); } @@ -1176,9 +1177,9 @@ public class YbDao { public void saveInventorySaleRecord(Medical3505Param medical3505Param, String retRslt) { InventorySaleRecord inventorySaleRecord = new InventorySaleRecord(); BeanUtils.copyProperties(medical3505Param, inventorySaleRecord); - inventorySaleRecord.setParam(JSON.toJSONString(medical3505Param)); - inventorySaleRecord.setOutResult(JSON.toJSONString(retRslt)); - inventorySaleRecord.setDrugtracinfo(JSON.toJSONString(medical3505Param.getDrugtracinfo())); + inventorySaleRecord.setParam(JsonUtils.toJson(medical3505Param)); + inventorySaleRecord.setOutResult(JsonUtils.toJson(retRslt)); + inventorySaleRecord.setDrugtracinfo(JsonUtils.toJson(medical3505Param.getDrugtracinfo())); iInventorySaleRecordService.save(inventorySaleRecord); } @@ -1191,8 +1192,8 @@ public class YbDao { String resultMessage) { InventoryPurchaseReturnRecord inventoryPurchaseReturnRecord = new InventoryPurchaseReturnRecord(); BeanUtils.copyProperties(medicalPurchase3504Param, inventoryPurchaseReturnRecord); - inventoryPurchaseReturnRecord.setParam(JSON.toJSONString(medicalPurchase3504Param)); - inventoryPurchaseReturnRecord.setOutResult(JSON.toJSONString(resultMessage)); + inventoryPurchaseReturnRecord.setParam(JsonUtils.toJson(medicalPurchase3504Param)); + inventoryPurchaseReturnRecord.setOutResult(JsonUtils.toJson(resultMessage)); iInventoryPurchaseReturnRecordService.save(inventoryPurchaseReturnRecord); } @@ -1204,8 +1205,8 @@ public class YbDao { public void saveInventoryPurchaseRecord(Medical3503Param medical3503Param, String resultMessage) { InventoryPurchaseRecord inventoryPurchaseRecord = new InventoryPurchaseRecord(); BeanUtils.copyProperties(medical3503Param, inventoryPurchaseRecord); - inventoryPurchaseRecord.setParam(JSON.toJSONString(medical3503Param)); - inventoryPurchaseRecord.setOutResult(JSON.toJSONString(resultMessage)); + inventoryPurchaseRecord.setParam(JsonUtils.toJson(medical3503Param)); + inventoryPurchaseRecord.setOutResult(JsonUtils.toJson(resultMessage)); iInventoryPurchaseRecordService.save(inventoryPurchaseRecord); } @@ -1217,8 +1218,8 @@ public class YbDao { public void saveInventoryChangeRecord(MedicalInventory3502Param medicalInventory3502Param, String resultMessage) { InventoryChangeRecord inventoryChangeRecord = new InventoryChangeRecord(); BeanUtils.copyProperties(medicalInventory3502Param, inventoryChangeRecord); - inventoryChangeRecord.setParam(JSON.toJSONString(medicalInventory3502Param)); - inventoryChangeRecord.setResult(JSON.toJSONString(resultMessage)); + inventoryChangeRecord.setParam(JsonUtils.toJson(medicalInventory3502Param)); + inventoryChangeRecord.setResult(JsonUtils.toJson(resultMessage)); iInventoryChangeRecordService.save(inventoryChangeRecord); } @@ -1233,8 +1234,8 @@ public class YbDao { Clinic2207OrderModel clinic2206OrderResult) { ClinicSettle clinicSettle = new ClinicSettle(); BeanUtils.copyProperties(clinic2206OrderResult, clinicSettle); - clinicSettle.setParam2207(JSON.toJSONString(clinicOrder2207)) - .setResult2207(JSON.toJSONString(clinic2206OrderResult)).setPaymentNo(paymentNo); + clinicSettle.setParam2207(JsonUtils.toJson(clinicOrder2207)) + .setResult2207(JsonUtils.toJson(clinic2206OrderResult)).setPaymentNo(paymentNo); iClinicSettleService.save(clinicSettle); } @@ -1247,8 +1248,8 @@ public class YbDao { public void saveClinic2207Record(Clinic2207OrderParam clinicOrder2207, Clinic2207OrderModel clinic2206OrderResult) { ClinicSettle clinicSettle = new ClinicSettle(); BeanUtils.copyProperties(clinic2206OrderResult, clinicSettle); - clinicSettle.setParam2207(JSON.toJSONString(clinicOrder2207)) - .setResult2207(JSON.toJSONString(clinic2206OrderResult)); + clinicSettle.setParam2207(JsonUtils.toJson(clinicOrder2207)) + .setResult2207(JsonUtils.toJson(clinic2206OrderResult)); iClinicSettleService.save(clinicSettle); } @@ -1583,7 +1584,7 @@ public class YbDao { // if (StringUtils.isEmpty(paymentRecDetail.getPayTransText())) { // log.info("*******************************************************************"); // log.info(paymentRecDetail.getId() + "主键:" + paymentRecDetail.getReconciliationId()); - // log.info(JSON.toJSONString(paymentRecDetail)); + // log.info(JsonUtils.toJson(paymentRecDetail)); // // throw new ServiceException("paymentDetail无返回交易码"); // } // } @@ -1653,11 +1654,11 @@ public class YbDao { + " 基金金额:" + clinicSettle.getFundPaySumamt() + " payment记录基金金额:" + fundPaySumamt); } String param2207 = clinicSettle.getParam2207(); - Clinic2207OrderParam clinic2207OrderParam = JSON.parseObject(param2207, Clinic2207OrderParam.class); + Clinic2207OrderParam clinic2207OrderParam = JsonUtils.parseObject(param2207, Clinic2207OrderParam.class); psnNo = clinic2207OrderParam.getPsnNo(); mdtrtId = clinic2207OrderParam.getMdtrtId(); Clinic2207OrderModel clinic2207OrderModel - = JSON.parseObject(clinicSettle.getResult2207(), Clinic2207OrderModel.class); + = JsonUtils.parseObject(clinicSettle.getResult2207(), Clinic2207OrderModel.class); patientName = clinic2207OrderModel.getPsnName(); setlTime = String.valueOf(clinic2207OrderModel.getSetlTime()); } @@ -1679,11 +1680,11 @@ public class YbDao { refdSetlFlag = Whether.YES.getCode(); String param2208 = clinicSettle.getParam2208(); Clinic2208UnSetlInfoParam clinic2208UnSetlInfoParam - = JSON.parseObject(param2208, Clinic2208UnSetlInfoParam.class); + = JsonUtils.parseObject(param2208, Clinic2208UnSetlInfoParam.class); psnNo = clinic2208UnSetlInfoParam.getPsnNo(); mdtrtId = clinic2208UnSetlInfoParam.getMdtrtId(); Clinic2208UnSetlInfoOutput clinic2207OrderModel - = JSON.parseObject(clinicSettle.getResult2208(), Clinic2208UnSetlInfoOutput.class); + = JsonUtils.parseObject(clinicSettle.getResult2208(), Clinic2208UnSetlInfoOutput.class); // patientName = clinic2207OrderModel.getPsnName(); setlTime = String.valueOf(clinic2207OrderModel.getSetlTime()); } @@ -1732,7 +1733,7 @@ public class YbDao { // 该部分代码为辅助调试时使用,无任何业务处理 start for (PaymentRecDetail paymentRecDetail : paymentRecDetailList) { if (StringUtils.isEmpty(paymentRecDetail.getPayTransText())) { - log.info(JSON.toJSONString(paymentRecDetail)); + log.info(JsonUtils.toJson(paymentRecDetail)); throw new ServiceException("paymentDetail无返回交易码"); } } @@ -1808,7 +1809,7 @@ public class YbDao { + " 账户支付:" + clinicSettle.getFundPaySumamt() + " payment记录账户支付金额:" + fundPaySumamt); } String param2207 = clinicSettle.getParam2207(); - Clinic2207OrderParam clinic2207OrderParam = JSON.parseObject(param2207, Clinic2207OrderParam.class); + Clinic2207OrderParam clinic2207OrderParam = JsonUtils.parseObject(param2207, Clinic2207OrderParam.class); psnNo = clinic2207OrderParam.getPsnNo(); mdtrtId = clinic2207OrderParam.getMdtrtId(); } @@ -1830,7 +1831,7 @@ public class YbDao { refdSetlFlag = Whether.YES.getCode(); String param2208 = clinicSettle.getParam2208(); Clinic2208UnSetlInfoParam clinic2208UnSetlInfoParam - = JSON.parseObject(param2208, Clinic2208UnSetlInfoParam.class); + = JsonUtils.parseObject(param2208, Clinic2208UnSetlInfoParam.class); psnNo = clinic2208UnSetlInfoParam.getPsnNo(); mdtrtId = clinic2208UnSetlInfoParam.getMdtrtId(); } @@ -1910,7 +1911,7 @@ public class YbDao { // 该部分代码为辅助调试时使用,无任何业务处理 start for (PaymentRecDetail paymentRecDetail : paymentRecDetailList) { if (StringUtils.isEmpty(paymentRecDetail.getPayTransNo())) { - log.info(JSON.toJSONString(paymentRecDetail)); + log.info(JsonUtils.toJson(paymentRecDetail)); throw new ServiceException("paymentDetail无返回交易码"); } } @@ -2029,7 +2030,7 @@ public class YbDao { if (!StringUtils.isEmpty(chargeItemBaseInfoDto.getChildrenJson())) { // 反序列化:将JSON数组字符串转为List<> List chargeItemBaseInfoList - = JSON.parseArray(chargeItemBaseInfoDto.getChildrenJson(), ChargeItemBaseInfoDto.class); + = JsonUtils.parseObject(chargeItemBaseInfoDto.getChildrenJson(), new TypeReference>() {}); chargeItemBaseInfoDtosList.addAll(chargeItemBaseInfoList); } else { chargeItemBaseInfoDtosList.add(chargeItemBaseInfoDto); @@ -2120,7 +2121,7 @@ public class YbDao { if (!StringUtils.isEmpty(chargeItemBaseInfoDto.getChildrenJson())) { // 反序列化:将JSON数组字符串转为List<> List chargeItemBaseInfoList - = JSON.parseArray(chargeItemBaseInfoDto.getChildrenJson(), ChargeItemBaseInfoDto.class); + = JsonUtils.parseObject(chargeItemBaseInfoDto.getChildrenJson(), new TypeReference>() {}); chargeItemBaseInfoDtosList.addAll(chargeItemBaseInfoList); } else { chargeItemBaseInfoDtosList.add(chargeItemBaseInfoDto); @@ -2180,7 +2181,7 @@ public class YbDao { if (!StringUtils.isEmpty(chargeItemBaseInfoDto.getChildrenJson())) { // 反序列化:将JSON数组字符串转为List<> List chargeItemBaseInfoList - = JSON.parseArray(chargeItemBaseInfoDto.getChildrenJson(), ChargeItemBaseInfoDto.class); + = JsonUtils.parseObject(chargeItemBaseInfoDto.getChildrenJson(), new TypeReference>() {}); chargeItemBaseInfoDtosList.addAll(chargeItemBaseInfoList); } else { chargeItemBaseInfoDtosList.add(chargeItemBaseInfoDto); @@ -2855,7 +2856,7 @@ public class YbDao { .setPretFlag(yb2403InputAdmInfo.getPretFlag()) .setDiseTypeCode(yb2403InputAdmInfo.getDiseTypeCode()); - inpatientRegInfoUpdateRecorde.setInputParam(JSON.toJSONString(inpatientRegInfoUpdateRecorde)); + inpatientRegInfoUpdateRecorde.setInputParam(JsonUtils.toJson(inpatientRegInfoUpdateRecorde)); inpatientRegInfoUpdateRecordeService.save(inpatientRegInfoUpdateRecorde); } @@ -2951,8 +2952,8 @@ public class YbDao { .setClrWay(yb2303OutputSetInfo.getClrWay()) .setClrType(yb2303OutputSetInfo.getClrType()) .setHifdmPay(yb2303OutputSetInfo.getHifdmPay()); - //inpatientPreSettle.setInputParam(JSON.toJSONString(yb2303OutputSetInfo)); - inpatientPreSettle.setOutputResult(JSON.toJSONString(yb2303OutputSetInfo)); + //inpatientPreSettle.setInputParam(JsonUtils.toJson(yb2303OutputSetInfo)); + inpatientPreSettle.setOutputResult(JsonUtils.toJson(yb2303OutputSetInfo)); inpatientPreSettleService.save(inpatientPreSettle); } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbHttpUtils.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbHttpUtils.java index b3431f925..d384d1730 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbHttpUtils.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbHttpUtils.java @@ -3,9 +3,9 @@ */ package com.healthlink.his.yb.service; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonNode; import com.core.common.exception.ServiceException; import com.core.common.utils.SecurityUtils; import com.core.common.utils.StringUtils; @@ -51,7 +51,7 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.List; -import static com.alibaba.fastjson2.JSON.parseObject; + /** * http请求接口 @@ -77,11 +77,11 @@ public class YbHttpUtils { Info1101Output perinfo = null; // 发送请求 String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/getPatinfo", readcard, null); + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/getPatinfo", readcard, null); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(resultString)); + logger.info(JsonUtils.toJson(resultString)); logger.info("【1101】返回参数:" + resultString); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -94,8 +94,8 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { - logger.info(JSON.toJSONString(result.getResult())); - perinfo = parseObject(JSON.toJSONString(result.getResult()), Info1101Output.class); + logger.info(JsonUtils.toJson(result.getResult())); + perinfo = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Info1101Output.class); } else { throw new ServiceException(result.getMessage()); } @@ -108,11 +108,11 @@ public class YbHttpUtils { Result result = null; ClinicReg2201Output clinicReg2201Output = new ClinicReg2201Output(); // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/reg", reg, contract); + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/reg", reg, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); logger.info("【2201】返回参数:" + s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -124,8 +124,8 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { - logger.info(JSON.toJSONString(result.getResult())); - clinicReg2201Output = parseObject(JSON.toJSONString(result.getResult()), ClinicReg2201Output.class); + logger.info(JsonUtils.toJson(result.getResult())); + clinicReg2201Output = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), ClinicReg2201Output.class); } else { throw new ServiceException(result.getMessage()); } @@ -138,12 +138,12 @@ public class YbHttpUtils { ClinicReg2201Output clinicReg2201Output = new ClinicReg2201Output(); // 发送请求 String s - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancelReg", reg, contract); + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancelReg", reg, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); - logger.info("【2202】返回参数:" + JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); + logger.info("【2202】返回参数:" + JsonUtils.toJson(s)); // 参数处理 ObjectMapper mapper = new ObjectMapper(); try { @@ -154,8 +154,8 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { - logger.info(JSON.toJSONString(result.getResult())); - clinicReg2201Output = parseObject(JSON.toJSONString(result.getResult()), ClinicReg2201Output.class); + logger.info(JsonUtils.toJson(result.getResult())); + clinicReg2201Output = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), ClinicReg2201Output.class); } else { throw new ServiceException(result.getMessage()); } @@ -167,12 +167,12 @@ public class YbHttpUtils { // 声名参数 Result result = null; // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/upload2204-record", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/upload2204-record", clinic2204OrderParam, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); logger.info("【2204】返回参数:" + s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -185,8 +185,8 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { - logger.info(JSON.toJSONString(result.getResult())); - clinicFeedetail2204Result = parseObject(JSON.toJSONString(result.getResult()), Clinic2204OrderResult.class); + logger.info(JsonUtils.toJson(result.getResult())); + clinicFeedetail2204Result = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Clinic2204OrderResult.class); } else { throw new ServiceException(result.getMessage()); } @@ -201,12 +201,12 @@ public class YbHttpUtils { // 声名参数 Result result = null; // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/preSetl", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/preSetl", clinic2206OrderParam, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2206】返回参数:" + JSON.toJSONString(s)); + logger.info("【2206】返回参数:" + JsonUtils.toJson(s)); logger.info(s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -219,8 +219,8 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { - logger.info(JSON.toJSONString(result.getResult())); - clinic2206OrderResult = parseObject(JSON.toJSONString(result.getResult()), Clinic2206OrderOutput.class); + logger.info(JsonUtils.toJson(result.getResult())); + clinic2206OrderResult = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Clinic2206OrderOutput.class); } else { throw new ServiceException(result.getMessage()); } @@ -234,12 +234,12 @@ public class YbHttpUtils { // 声名参数 Result result = null; // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/setl", clinicOrder2207, + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/setl", clinicOrder2207, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); logger.info("【2207】返回参数:" + s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -252,8 +252,8 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { - logger.info(JSON.toJSONString(result.getResult())); - clinic2206OrderResult = parseObject(JSON.toJSONString(result.getResult()), Clinic2207OrderModel.class); + logger.info(JsonUtils.toJson(result.getResult())); + clinic2206OrderResult = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Clinic2207OrderModel.class); } else { throw new ServiceException(result.getMessage()); } @@ -264,11 +264,11 @@ public class YbHttpUtils { public Sign9001Result sign(Sign signParam, Contract contract) { Sign9001Result sign = null; String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/signIn", signParam, contract); + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/signIn", signParam, contract); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(resultString)); + logger.info(JsonUtils.toJson(resultString)); logger.info("【9001】返回参数:" + resultString); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -282,8 +282,8 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { - logger.info(JSON.toJSONString(result.getResult())); - sign = parseObject(JSON.toJSONString(result.getResult()), Sign9001Result.class); + logger.info(JsonUtils.toJson(result.getResult())); + sign = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Sign9001Result.class); } else { throw new ServiceException(result.getMessage()); } @@ -296,12 +296,12 @@ public class YbHttpUtils { // 声名参数 Result result = null; // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/unPreSettle", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/unPreSettle", clinic2205OrderParam, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); logger.info(s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -326,12 +326,12 @@ public class YbHttpUtils { // 声名参数 Result result = null; // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancelSetl", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancelSetl", clinicOrder2208, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); logger.info("【2208】返回参数:" + s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -344,9 +344,9 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { - logger.info(JSON.toJSONString(result.getResult())); + logger.info(JsonUtils.toJson(result.getResult())); clinicOrder2206Result - = parseObject(JSON.toJSONString(result.getResult()), Clinic2208UnSetlInfoOutput.class); + = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Clinic2208UnSetlInfoOutput.class); } else { throw new ServiceException(result.getMessage()); } @@ -357,12 +357,12 @@ public class YbHttpUtils { Clinic2208UnSetlInfoResult clinicOrder2206Result = new Clinic2208UnSetlInfoResult(); // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/directoryCheck", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/directoryCheck", medicalDirectory3301ListParam, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); logger.info("【3301】返回参数:" + s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -377,12 +377,12 @@ public class YbHttpUtils { public Result directoryUnCheck(MedicalDirectory3302Param medicalDirectory3302Param) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/directoryUnCheck", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/directoryUnCheck", medicalDirectory3302Param, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); logger.info("【3302】返回参数:" + s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -403,7 +403,7 @@ public class YbHttpUtils { throw new ServiceException("未查询到合同信息"); } // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/reconcile", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/reconcile", financial3201Param, contract); // 赋值(上述回填的两个参数医保不要,为了避免麻烦,在发送http后进行回填) @@ -414,7 +414,7 @@ public class YbHttpUtils { if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); logger.info(s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -429,12 +429,12 @@ public class YbHttpUtils { public FinancialSettlement3202Result reconcileGeneralLedgerDetail(FinancialSettlement3202Param financial3202Param) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/reconcile-detail", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/reconcile-detail", financial3202Param, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); logger.info(s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -450,12 +450,12 @@ public class YbHttpUtils { public List threePartSearch(FinancialSettlement3209AParam financialSettlement3209AParam) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/three-part-search-err", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/three-part-search-err", financialSettlement3209AParam, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info(JSON.toJSONString(s)); + logger.info(JsonUtils.toJson(s)); logger.info(s); // 参数处理 ObjectMapper mapper = new ObjectMapper(); @@ -470,7 +470,7 @@ public class YbHttpUtils { public String applyFinancialClearing(Financial3203AParam financial3203AParam) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/apply-clearing", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/apply-clearing", financial3203AParam, iContractService.getContract(financial3203AParam.getClrOptins())); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -481,7 +481,7 @@ public class YbHttpUtils { public Result cancelFinancialClearing(Financial3204Param financial3204Param) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-clearing", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancel-clearing", financial3204Param, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -499,7 +499,7 @@ public class YbHttpUtils { public Clearing3205AResult getFinancialClearingStatus(Clearing3205AParma clearing3205AParma) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/get-clearing-status", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/get-clearing-status", clearing3205AParma, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -517,7 +517,7 @@ public class YbHttpUtils { public Result uploadInventoryCount(MedicalInventory3501Param medicalInventory3501Param) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/upload-inventory-count", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/upload-inventory-count", medicalInventory3501Param, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -535,7 +535,7 @@ public class YbHttpUtils { public Result updateInventoryCount(MedicalInventory3502Param medicalInventory3502Param) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/update-inventory", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/update-inventory", medicalInventory3502Param, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -553,7 +553,7 @@ public class YbHttpUtils { public Result procurement(Medical3503Param medical3503Param) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/procurement", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/procurement", medical3503Param, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -571,7 +571,7 @@ public class YbHttpUtils { public Result cancelProcurement(MedicalPurchase3504Param medicalPurchase3504Param) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/procurement-cancel", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/procurement-cancel", medicalPurchase3504Param, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -589,7 +589,7 @@ public class YbHttpUtils { public Result merchandise(Medical3505Param medical3505Param, Contract contract) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/merchandise", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/merchandise", medical3505Param, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -607,7 +607,7 @@ public class YbHttpUtils { public Result cancelMerchandise(Medical3506Param medical3506Param, Contract contract) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-merchandise", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancel-merchandise", medical3506Param, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -625,7 +625,7 @@ public class YbHttpUtils { public Result deleteGoodsInfo(Medical3507Param medical3507Param) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/del-goods", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/del-goods", medical3507Param, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -643,7 +643,7 @@ public class YbHttpUtils { public MedicalInventory3511Output querySalesInfo(MedicalInventory3511Param medicalInventory3511Param) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/query-3511-info", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/query-3511-info", medicalInventory3511Param, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -661,9 +661,9 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 401) { - logger.info(JSON.toJSONString(result.getResult())); + logger.info(JsonUtils.toJson(result.getResult())); medicalInventory3511Output - = parseObject(JSON.toJSONString(result.getResult()), MedicalInventory3511Output.class); + = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), MedicalInventory3511Output.class); } else { throw new ServiceException(result.getMessage()); } @@ -672,7 +672,7 @@ public class YbHttpUtils { public Result getClrOptins(Clearing3206AParam clearing3206AParam) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/getclroptins", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/getclroptins", clearing3206AParam, null); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -690,7 +690,7 @@ public class YbHttpUtils { public Result upload2203Record(Clinic2203MedicalParam medical2203Param, Contract contract) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/upload2203-record", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/upload2203-record", medical2203Param, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -708,7 +708,7 @@ public class YbHttpUtils { public Result query3512(MedicalInventory3512Param inventory3512Param, Contract contract) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/query-3512-info", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/query-3512-info", inventory3512Param, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -726,7 +726,7 @@ public class YbHttpUtils { public Result query3513(MedicalInventory3513Param inventory3513Param, Contract contract) { // 发送请求 - String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/query-3513-info", + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/query-3513-info", inventory3513Param, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); @@ -753,8 +753,8 @@ public class YbHttpUtils { String resultString = ""; // 拼参数 BaseParam baseParam = new BaseParam(); - baseParam.setBaseInfo(ybParamBuilderUtil.getBaseInfo(parseObject(JSON.toJSONString(o)), contract)).setData(o); - logger.info("【请求路径】:" + url + ";【入参】: " + JSON.toJSONString(baseParam)); + baseParam.setBaseInfo(ybParamBuilderUtil.getBaseInfo(JsonUtils.parse(JsonUtils.toJson(o)), contract)).setData(o); + logger.info("【请求路径】:" + url + ";【入参】: " + JsonUtils.toJson(baseParam)); // 创建Http请求 RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(300000, java.util.concurrent.TimeUnit.MILLISECONDS).setConnectionRequestTimeout(300000, java.util.concurrent.TimeUnit.MILLISECONDS).setResponseTimeout(300000, java.util.concurrent.TimeUnit.MILLISECONDS).build(); CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(requestConfig).build(); @@ -762,7 +762,7 @@ public class YbHttpUtils { // 发送请求 try { HttpPost httpPost = new HttpPost(url); - StringEntity stringEntity = new StringEntity(JSON.toJSONString(baseParam), ContentType.APPLICATION_JSON); + StringEntity stringEntity = new StringEntity(JsonUtils.toJson(baseParam), ContentType.APPLICATION_JSON); httpPost.setEntity(stringEntity); // 执行http请求 response = httpClient.execute(httpPost); @@ -791,7 +791,7 @@ public class YbHttpUtils { try { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/queryYbCatalogue", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/queryYbCatalogue", catalogue1312QueryParam, null); // logger.info("--------1312resultString-------------" + resultString); // 1. 解析外层 JSON @@ -843,9 +843,9 @@ public class YbHttpUtils { // 3. 转发并删除临时文件 RestTemplate restTemplate = new RestTemplate(); response = restTemplate.postForEntity( - SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/file-up2", + SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/file-up2", new HttpEntity<>(body, headers), String.class); - logger.info(JSON.toJSONString(response)); + logger.info(JsonUtils.toJson(response)); // 清理临时文件 // Files.deleteIfExists(tempFile); } catch (Exception e) { @@ -871,11 +871,11 @@ public class YbHttpUtils { // RestTemplate restTemplate = new RestTemplate(); // HttpEntity> requestEntity = new HttpEntity<>(body, headers); // ResponseEntity response = - // restTemplate.postForEntity(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/file-up2", + // restTemplate.postForEntity(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/file-up2", // requestEntity, String.class); // try { - // String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/file-up2", + // String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/file-up2", // file9101Param,null); // // logger.info("--------1312resultString-------------" + resultString); // // 1. 解析外层 JSON @@ -891,8 +891,8 @@ public class YbHttpUtils { // if (result == null) { // throw new ServiceException("未接收到医保返回参数"); // } else if (result.getCode() == 200) { - // logger.info(JSON.toJSONString(result.getResult())); - // fileResult = JSON.parseObject(JSON.toJSONString(result.getResult()), FileResult.class); + // logger.info(JsonUtils.toJson(result.getResult())); + // fileResult = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), FileResult.class); // } else { // throw new ServiceException(result.getMessage()); // } @@ -911,11 +911,11 @@ public class YbHttpUtils { */ public Yb3101OutputResult yb3101PreMidAnalysis(Yb3101InputData data) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/pre-mid-analysis", data, null); + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/pre-mid-analysis", data, null); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【3101】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【3101】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【3101】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -927,8 +927,8 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { - logger.info(JSON.toJSONString(result.getResult())); - return parseObject(JSON.toJSONString(result.getResult()), Yb3101OutputResult.class); + logger.info(JsonUtils.toJson(result.getResult())); + return JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Yb3101OutputResult.class); } else { throw new ServiceException(result.getMessage()); } @@ -941,11 +941,11 @@ public class YbHttpUtils { */ public void yb3103PreMidFeedback(Yb3103InputData data) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/pre-mid-feedback", data, null); + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/pre-mid-feedback", data, null); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【3103】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【3103】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【3103】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -957,7 +957,7 @@ public class YbHttpUtils { if (result == null) { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { - logger.info(JSON.toJSONString(result.getResult())); + logger.info(JsonUtils.toJson(result.getResult())); } else { throw new ServiceException(result.getMessage()); } @@ -965,12 +965,12 @@ public class YbHttpUtils { public List upload2301FeeDetail(Yb2301InputFeeDetailModel yb2301InputFeeDetailModel) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/upload-2301-fee-detail", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/upload-2301-fee-detail", yb2301InputFeeDetailModel, null); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2301】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2301】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【2301】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -983,11 +983,11 @@ public class YbHttpUtils { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { List yb2301OutputResults = new ArrayList<>(); - JSONObject jsonObject = parseObject(String.valueOf(result.getResult())); - logger.info(JSON.toJSONString(result.getResult())); - JSONArray jsonArray = jsonObject.getJSONArray("result"); - for (Object o : jsonArray) { - yb2301OutputResults.add(JSON.parseObject(String.valueOf(o), Yb2301OutputResult.class)); + JsonNode jsonObject = JsonUtils.parse(String.valueOf(result.getResult())); + logger.info(JsonUtils.toJson(result.getResult())); + JsonNode jsonArray = jsonObject.path("result"); + for (JsonNode o : jsonArray) { + yb2301OutputResults.add(JsonUtils.parseObject(String.valueOf(o), Yb2301OutputResult.class)); } return yb2301OutputResults; } else { @@ -997,12 +997,12 @@ public class YbHttpUtils { public Yb2303OutputSetInfo inpatientPreSettle(Yb2303InputInpatient yb2303InputInpatient) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/inpa-pre-setl", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/inpa-pre-setl", yb2303InputInpatient, null); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2303】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2303】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【2303】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1022,12 +1022,12 @@ public class YbHttpUtils { } public Yb2304OutputSetlInfo inpatientSettle(Contract contract, Yb2304InputInpatient yb2304InpatientParam) { - String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/inpa-setl", + String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/inpa-setl", yb2304InpatientParam, contract); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2304】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2304】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【2304】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1055,12 +1055,12 @@ public class YbHttpUtils { */ public Yb2305OutputSetlInfo inpatientUnSettle(Contract contract, Yb2305InputInpatient yb2305InpatientParam) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/inpa-un-setl", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/inpa-un-setl", yb2305InpatientParam, contract); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2305】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2305】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【2305】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1088,12 +1088,12 @@ public class YbHttpUtils { public List yb5205SpecialDiseaseDrugRecordSearch(Yb5205InputSpecialDisease yb5205InputSpecialDisease) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/spe-disease-record-search", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/spe-disease-record-search", yb5205InputSpecialDisease, null); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【5205】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【5205】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【5205】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1103,7 +1103,7 @@ public class YbHttpUtils { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { logger.info(result.getResult().toString()); - return JSON.parseArray(result.getResult().toString(), Yb5205OutputSpecialDisease.class); + return JsonUtils.parseObject(result.getResult().toString(), new TypeReference>() {}); } else { throw new ServiceException(result.getMessage()); } @@ -1121,11 +1121,11 @@ public class YbHttpUtils { */ public FileResult queryCatalog(CatalogFileInput catalogFileInput) { String resultString = httpPost( - SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/query-catalog", catalogFileInput, null); + SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/query-catalog", catalogFileInput, null); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【" + catalogFileInput.getAddress() + "】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【" + catalogFileInput.getAddress() + "】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【" + catalogFileInput.getAddress() + "】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1139,7 +1139,7 @@ public class YbHttpUtils { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { logger.info(result.getResult().toString()); - return JSON.parseObject(JSON.toJSONString(result.getResult()), FileResult.class); + return JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), FileResult.class); } else { return new FileResult().setErrMsg(result.getMessage()); } @@ -1153,11 +1153,11 @@ public class YbHttpUtils { */ public String downLoadFile(FileResult fileResult) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/download", fileResult, null); + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/download", fileResult, null); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【9102】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【9102】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【9102】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1183,14 +1183,14 @@ public class YbHttpUtils { * @param jsonObject 入參 * @return 結果 */ - public InpatientReg inpatientReg(JSONObject jsonObject, String contractNo) { + public InpatientReg inpatientReg(JsonNode jsonObject, String contractNo) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/inpatient-reg", jsonObject, + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/inpatient-reg", jsonObject, contractServiceImpl.getContract(contractNo)); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2401】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2401】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【2401】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1200,7 +1200,7 @@ public class YbHttpUtils { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { logger.info(result.getResult().toString()); - return JSON.parseObject(result.getResult().toString(), InpatientReg.class); + return JsonUtils.parseObject(result.getResult().toString(), InpatientReg.class); } else { throw new ServiceException(result.getMessage()); } @@ -1218,12 +1218,12 @@ public class YbHttpUtils { */ public void cancelInpatientReg(Yb2404InputInpatient yb2404InputInpatient, String contractNo) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-inpatient-reg", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancel-inpatient-reg", yb2404InputInpatient, contractServiceImpl.getContract(contractNo)); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2404】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2404】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【2404】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1251,12 +1251,12 @@ public class YbHttpUtils { */ public Yb2402InputParam inpatientCheckOut(Yb2402InputParam yb2402InputInpatientDscgInfo, String contractNo) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/discharge-patient", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/discharge-patient", yb2402InputInpatientDscgInfo, iContractService.getContract(contractNo)); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2402】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2402】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【2402】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1266,7 +1266,7 @@ public class YbHttpUtils { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { logger.info(result.getResult().toString()); - return JSON.parseObject(result.getResult().toString(), Yb2402InputParam.class); + return JsonUtils.parseObject(result.getResult().toString(), Yb2402InputParam.class); } else { throw new ServiceException(result.getMessage()); } @@ -1284,12 +1284,12 @@ public class YbHttpUtils { */ public void cancelInpatientCheckOut(Yb2405InputInpatient yb2405InputInpatient, String contractNo) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-discharge-patient", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancel-discharge-patient", yb2405InputInpatient, contractServiceImpl.getContract(contractNo)); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2404】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2404】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【2404】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1316,12 +1316,12 @@ public class YbHttpUtils { */ public void updateInpatientInfo(Yb2403InputParam yb2403InputInpatient, String contractNo) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/change-inpatient-info", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/change-inpatient-info", yb2403InputInpatient, iContractService.getContract(contractNo)); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2405】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2405】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【2405】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1343,11 +1343,11 @@ public class YbHttpUtils { public void emrUp(Yb4401InputDto yb4401InputDto) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/emr-up", yb4401InputDto, null); + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/emr-up", yb4401InputDto, null); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【4401】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【4401】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【4401】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1374,12 +1374,12 @@ public class YbHttpUtils { * @param contract 省市医保 */ public void ybToReverse(Yb2601InputParam toReverse, Contract contract) { - String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/to-reverse", + String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/to-reverse", toReverse, contract); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【4401】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【4401】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【4401】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1401,12 +1401,12 @@ public class YbHttpUtils { public void yb4101Up(Yb4101AInputData yb4101AInputData, Contract contract) { - String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/setl-up", + String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/setl-up", yb4101AInputData, contract); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【4101A】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【4101A】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【4101A】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1428,12 +1428,12 @@ public class YbHttpUtils { public void yb4102Up(Yb4102InputStastInfo yb4102InputStastInfo) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/setl-status-up", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/setl-status-up", yb4102InputStastInfo, null); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【4102】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【4102】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【4102】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; @@ -1456,12 +1456,12 @@ public class YbHttpUtils { public void cancel2302FeeDetailUp(Yb2302InpatientParam yb2302InpatientParam, Contract contract) { String resultString - = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-2302-fee-detail", + = httpPost(SecurityUtils.getLoginUser().getOptionJson().path("ybUrl").asText() + "/cancel-2302-fee-detail", yb2302InpatientParam, contract); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } - logger.info("【2302】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2302】返回参数:" + JsonUtils.toJson(resultString)); logger.info("【2302】返回参数:" + resultString); ObjectMapper mapper = new ObjectMapper(); Result result = null; diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbManager.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbManager.java index 187dc902d..42d6e60eb 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbManager.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/service/YbManager.java @@ -3,8 +3,8 @@ */ package com.healthlink.his.yb.service; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import com.core.common.utils.JsonUtils; +import com.fasterxml.jackson.databind.JsonNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.core.common.core.domain.R; import com.core.common.core.redis.RedisCache; @@ -710,7 +710,7 @@ public class YbManager { Result result = ybHttpService.merchandise(medical3505Param, contract); Medical3505Result medical3505Result - = JSON.parseObject(JSON.toJSONString(result.getResult()), Medical3505Result.class); + = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Medical3505Result.class); if ("1".equals(medical3505Result.getRetRslt())) { ybBaseService.saveInventorySaleRecord(medical3505Param, medical3505Result.getMsgRslt()); return R.ok(); @@ -729,7 +729,7 @@ public class YbManager { public R cancelMerchandise(Medical3506Param medical3506Param, Contract contract) { Result result = ybHttpService.cancelMerchandise(medical3506Param, contract); Medical3505Result medical3505Result - = JSON.parseObject(JSON.toJSONString(result.getResult()), Medical3505Result.class); + = JsonUtils.parseObject(JsonUtils.toJson(result.getResult()), Medical3505Result.class); if ("1".equals(medical3505Result.getRetRslt())) { ybBaseService.saveInventorySaleReturnRecord(medical3506Param, medical3505Result.getMsgRslt()); return R.ok(); @@ -779,7 +779,7 @@ public class YbManager { throw new ServiceException("为查询到挂号信息"); } Clinic2206OrderOutput clinic2206OrderResult - = JSONObject.parseObject(clinicPreSettle.getResult2206(), Clinic2206OrderOutput.class); + = JsonUtils.parseObject(clinicPreSettle.getResult2206(), Clinic2206OrderOutput.class); // 组装2207接口参数 Clinic2207OrderParam clinicOrder = new Clinic2207OrderParam(); clinicOrder.setPsnNo(clinicPreSettle.getPsnNo()).setMdtrtCertType(ybMdtrtCertType.getValue()) @@ -826,7 +826,7 @@ public class YbManager { } Clinic2206OrderOutput clinic2206OrderResult - = JSONObject.parseObject(clinicPreSettle.getResult2206(), Clinic2206OrderOutput.class); + = JsonUtils.parseObject(clinicPreSettle.getResult2206(), Clinic2206OrderOutput.class); Clinic2207OrderParam clinicOrder = new Clinic2207OrderParam(); clinicOrder.setPsnNo(clinicPreSettle.getPsnNo()).setMdtrtCertType(clinic2206OrderResult.getMdtrtCertType()) @@ -912,7 +912,7 @@ public class YbManager { if (!StringUtils.isEmpty(chargeItemBaseInfoDto.getChildrenJson())) { // 反序列化:将JSON数组字符串转为List<> List chargeItemBaseInfoList - = JSON.parseArray(chargeItemBaseInfoDto.getChildrenJson(), ChargeItemBaseInfoDto.class); + = JsonUtils.parseObject(chargeItemBaseInfoDto.getChildrenJson(), new com.fasterxml.jackson.core.type.TypeReference>() {}); chargeItemBaseInfoDtosList.addAll(chargeItemBaseInfoList); } else { chargeItemBaseInfoDtosList.add(chargeItemBaseInfoDto); @@ -984,7 +984,7 @@ public class YbManager { // if (!StringUtils.isEmpty(chargeItemBaseInfoDto.getChildrenJson())) { // // 反序列化:将JSON数组字符串转为List<> // List chargeItemBaseInfoList = - // JSON.parseArray(chargeItemBaseInfoDto.getChildrenJson(), ChargeItemBaseInfoDto.class); + // JsonUtils.parseObject(chargeItemBaseInfoDto.getChildrenJson(), new com.fasterxml.jackson.core.type.TypeReference>() {}); // chargeItemBaseInfoDtosList.addAll(chargeItemBaseInfoList); // } else { // chargeItemBaseInfoDtosList.add(chargeItemBaseInfoDto); diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/util/YbParamBuilderUtil.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/util/YbParamBuilderUtil.java index 7834867b5..307ab2ae6 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/util/YbParamBuilderUtil.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/yb/util/YbParamBuilderUtil.java @@ -1,9 +1,9 @@ /* - * Copyright ©2023 CJB-CNIT Team. All rights reserved + * Copyright ©2023 CJB-CNIT Team. All rights reserved */ package com.healthlink.his.yb.util; -import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.core.common.core.domain.model.LoginUser; import com.core.common.enums.TenantOptionDict; @@ -19,6 +19,7 @@ import com.healthlink.his.administration.service.*; import com.healthlink.his.clinical.domain.Condition; import com.healthlink.his.clinical.domain.ConditionDefinition; import com.healthlink.his.clinical.service.IConditionDefinitionService; +import com.core.common.utils.JsonUtils; import com.healthlink.his.clinical.service.IConditionService; import com.healthlink.his.common.constant.CommonConstants; import com.healthlink.his.common.constant.YbCommonConstants; @@ -64,7 +65,7 @@ import java.util.*; import java.util.stream.Collectors; /** - * 医保接口调用工具 todo:sjq 若部署云服务,该工具类内所有的查询原则上增加租户的查询条件 + * 医保接口调用工具 todo:sjq 若部署云服务,该工具类内所有的查询原则上增加租户的查询条件 * * @author SunJQ * @date 2025-04-03 @@ -72,10 +73,10 @@ import java.util.stream.Collectors; @Component public class YbParamBuilderUtil { - /********************* Mapper服务 *******************/ + /********************* Mapper服务 *******************/ @Autowired private MedicalInsuranceMapper medicalInsuranceMapper; - /********************* 业务实体服务 *******************/ + /********************* 业务实体服务 *******************/ @Autowired private IEncounterService iEncounterService; @Autowired @@ -142,7 +143,7 @@ public class YbParamBuilderUtil { private IHealthcareServiceService iHealthcareServiceService; @Autowired private AssignSeqUtil assignSeqUtil; - /********************* 医保实体服务 *******************/ + /********************* 医保实体服务 *******************/ // @Autowired // private IReadcardService iReadcardService; @Autowired @@ -161,17 +162,17 @@ public class YbParamBuilderUtil { private IClinicUnSettleService iClinicUnSettleService; /** - * 获取基础读卡实体 + * 获取基础读卡实体 * - * @param certType 就诊凭证 - * @param certNo 凭证编号 - * @return 读卡基础实体 + * @param certType 就诊凭证 + * @param certNo 凭证编号 + * @return 读卡基础实体 */ public Info1101ReadcardParam getReadCard(String certType, String certNo) { YbMdtrtCertType ybCertType = YbMdtrtCertType.getByValue(certType); // YbPsnCertType ybPsnCertType = YbPsnCertType.getByValue(psnCertType); if (ybCertType == null) { - throw new ServiceException("未选择就诊凭证类型"); + throw new ServiceException("未选择就诊凭证类型"); } Info1101ReadcardParam readcard = new Info1101ReadcardParam(); readcard.setMdtrtCertNo(certNo).setMdtrtCertType(ybCertType.getValue()); @@ -184,44 +185,44 @@ public class YbParamBuilderUtil { } /** - * 【2201】组装医保挂号参数 + * 【2201】组装医保挂号参数 * * @return */ public ClinicReg getReg(YbMdtrtCertType ybMdtrtCertType, String busiCardInfo, Long encounterId, YbMedType medType, Integer tenantId) { - // 查询此次就诊信息(此处需要业务上保证下述两个实体一对一关系) + // 查询此次就诊信息(此处需要业务上保证下述两个实体一对一关系) Encounter encounter = iEncounterService.getById(encounterId); Account account = accountService.getOne(new LambdaQueryWrapper().eq(Account::getEncounterId, encounterId) .eq(Account::getTenantId, tenantId).ne(Account::getTypeCode, AccountType.PERSONAL_CASH_ACCOUNT) .eq(Account::getEncounterFlag, Whether.YES.getValue())); if (account == null || encounter == null) { - throw new ServiceException("未查询到就诊信息"); + throw new ServiceException("未查询到就诊信息"); } Patient patient = iPatientService.getById(encounter.getPatientId()); if (patient == null) { - throw new ServiceException("未查询到患者信息"); + throw new ServiceException("未查询到患者信息"); } - YbMdtrtCertType certType = YbMdtrtCertType.getByValue(account.getTypeCode());// 2025/05/28 该值存01/02/03 + YbMdtrtCertType certType = YbMdtrtCertType.getByValue(account.getTypeCode());// 2025/05/28 该值存01/02/03 if (certType == null) { - throw new ServiceException("未查询到就诊凭证信息"); + throw new ServiceException("未查询到就诊凭证信息"); } InfoPerson perinfo = iPerinfoService.getOne(new LambdaQueryWrapper() .eq(InfoPerson::getCertno, patient.getIdCard()).eq(InfoPerson::getTenantId, tenantId) .orderByDesc(InfoPerson::getCreateTime).last(YbCommonConstants.sqlConst.LIMIT1)); if (perinfo == null) { - throw new ServiceException("未查询到就诊凭证信息"); + throw new ServiceException("未查询到就诊凭证信息"); } // InfoReadcard1101Param readcard = iReadcardService.getOne(new LambdaQueryWrapper() // .eq(InfoReadcard1101Param::getPsnCertType, certType.getValue()) // .eq(InfoReadcard1101Param::getCertno, account.getNo()).eq(InfoReadcard1101Param::getTenantId, tenantId)); - // Info1101ReadcardParam readcard = JSONObject.parseObject(perinfo.getResult1101(), + // Info1101ReadcardParam readcard = JsonUtils.parse(perinfo.getResult1101(), // Info1101ReadcardParam.class); // if (readcard == null) { - // throw new ServiceException("未查询到就诊凭证信息"); + // throw new ServiceException("未查询到就诊凭证信息"); // } - // 主治医生查询 + // 主治医生查询 EncounterParticipant participant = null; Practitioner doctor = null; List list = @@ -233,17 +234,17 @@ public class YbParamBuilderUtil { } } if (participant == null) { - throw new ServiceException("未查询到就诊医生信息"); + throw new ServiceException("未查询到就诊医生信息"); } doctor = iPractitionerService.getById(participant.getPractitionerId()); if (doctor == null) { - throw new ServiceException("未查询到就诊医生信息"); + throw new ServiceException("未查询到就诊医生信息"); } - // 查询科室信息 + // 查询科室信息 Organization organization = iOrganizationService.getById(doctor.getOrgId()); if (organization == null) { - throw new ServiceException("未查询到就诊科室信息"); + throw new ServiceException("未查询到就诊科室信息"); } ClinicReg reg = new ClinicReg(); @@ -258,21 +259,21 @@ public class YbParamBuilderUtil { } /** - * 【2203】组装就诊信息参数 + * 【2203】组装就诊信息参数 * * @return */ public Clinic2203MedicalParam getClinicMedical2203Param(Long encounterId, Integer tenantId, ClinicReg2201Output reg2201Output, YbMedType ybMedType) { - // 查询诊断信息 + // 查询诊断信息 EncounterDiagnosis mainEncounterDiagnosis = null; List encounterDiagnosis = iEncounterDiagnosisService.list(new LambdaQueryWrapper() .eq(EncounterDiagnosis::getEncounterId, encounterId).eq(EncounterDiagnosis::getTenantId, tenantId) .eq(EncounterDiagnosis::getMedTypeCode, ybMedType.getValue())); // 2025/08/05 - // 农大患者结算慢病时会上传普通门诊的疾病,医保回复该参保人未做该病种的门慢门特备案,故此修正根据门诊类型去上传 + // 农大患者结算慢病时会上传普通门诊的疾病,医保回复该参保人未做该病种的门慢门特备案,故此修正根据门诊类型去上传 for (EncounterDiagnosis diagnosis : encounterDiagnosis) { if (Objects.equals(Whether.YES.getValue(), diagnosis.getMaindiseFlag())) { mainEncounterDiagnosis = diagnosis; @@ -284,23 +285,23 @@ public class YbParamBuilderUtil { mainEncounterDiagnosis = encounterDiagnosis.get(0); } if (encounterDiagnosis.isEmpty()) { - throw new ServiceException("未查询到诊断信息"); + throw new ServiceException("未查询到诊断信息"); } if (mainEncounterDiagnosis == null) { - throw new ServiceException("未查询到主诊断信息"); + throw new ServiceException("未查询到主诊断信息"); } - // 查询主诊断 + // 查询主诊断 Condition mainCondition = iConditionService.getById(mainEncounterDiagnosis.getConditionId()); if (mainCondition == null) { - throw new ServiceException("未查询到主诊断信息"); + throw new ServiceException("未查询到主诊断信息"); } - // 查询诊断定义信息 + // 查询诊断定义信息 ConditionDefinition conditionDefinition = iConditionDefinitionService.getById(mainCondition.getDefinitionId()); if (conditionDefinition == null) { - throw new ServiceException("未查询到诊断定义信息"); + throw new ServiceException("未查询到诊断定义信息"); } - // 组装诊断信息参数 + // 组装诊断信息参数 List diseinfo = getDiseinfo(encounterDiagnosis); Clinic2203MedicalParam medical2203Param = new Clinic2203MedicalParam(); @@ -314,7 +315,7 @@ public class YbParamBuilderUtil { } /** - * 【2203】组装诊断信息参数 + * 【2203】组装诊断信息参数 * * @return */ @@ -330,10 +331,10 @@ public class YbParamBuilderUtil { if (doctor == null) { continue; } - // 查询科室信息 + // 查询科室信息 Organization organization = iOrganizationService.getById(doctor.getOrgId()); if (organization == null) { - throw new ServiceException("未查询到科室信息"); + throw new ServiceException("未查询到科室信息"); } Clinic2203DiseInfoParam diseinfo = new Clinic2203DiseInfoParam(); @@ -350,7 +351,7 @@ public class YbParamBuilderUtil { } /** - * 【2204】组装费用明细参数 + * 【2204】组装费用明细参数 * * @return */ @@ -358,49 +359,49 @@ public class YbParamBuilderUtil { String chrgBchno, List paymentedItemList) { List clincFeedetailList = new ArrayList(); - // 查询收费项 + // 查询收费项 // List ChargeItemList = iChargeItemService.list(new LambdaQueryWrapper() // .in(ChargeItem::getId, chargeItemIds).eq(ChargeItem::getTenantId, tenantId)); - // 是否是电子处方 + // 是否是电子处方 Whether eFlag = Whether.getByValue(0); for (PaymentedItemModel chargeItem : paymentedItemList) { Clinic2204FeeDetailParam clinicFeedetail = new Clinic2204FeeDetailParam(); - // 查询项目信息 + // 查询项目信息 String productTable = chargeItem.getProductTable(); if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(productTable)) { MedicationDefinition medication = iMedicationDefinitionService.getById(chargeItem.getProductId()); if (medication == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } clinicFeedetail.setMedListCodg(medication.getYbNo()).setMedinsListCodg(medication.getBusNo()); } else if (CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(productTable)) { DeviceDefinition device = iDeviceDefinitionService.getById(chargeItem.getProductId()); if (device == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } clinicFeedetail.setMedListCodg(device.getYbNo()).setMedinsListCodg(device.getYbOrgNo()); } else { ActivityDefinition activity = iActivityDefinitionService.getById(chargeItem.getProductId()); if (activity == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } clinicFeedetail.setMedListCodg(activity.getYbNo()).setMedinsListCodg(activity.getBusNo()); } - // 开单科室查询 + // 开单科室查询 Organization org = iOrganizationService.getById(chargeItem.getRequestingOrgId()); if (org == null) { - throw new ServiceException("未查询到开单科室信息"); + throw new ServiceException("未查询到开单科室信息"); } - // 开立医生查询 + // 开立医生查询 Practitioner doctor = iPractitionerService.getById(chargeItem.getEntererId()); if (doctor == null) { - throw new ServiceException("未查询到开立医生信息"); + throw new ServiceException("未查询到开立医生信息"); } - // 外购处方标志(文档上没有详细介绍) 2025/04/14经确认,暂定非处方流转传0,处方流转传1 + // 外购处方标志(文档上没有详细介绍) 2025/04/14经确认,暂定非处方流转传0,处方流转传1 clinicFeedetail .setFeedetlSn( chargeItem.getBusNo() + assignSeqUtil.getSeqByDay(AssignSeqEnum.YB_CLINIC_FEE.getPrefix(), 5)) @@ -409,7 +410,7 @@ public class YbParamBuilderUtil { .setDetItemFeeSumamt(chargeItem.getTotalPrice().doubleValue()) .setCnt(chargeItem.getQuantityValue().doubleValue()).setPric(chargeItem.getUnitPrice().doubleValue()) .setBilgDeptCodg(org.getYbNo()).setBilgDeptName(org.getName()).setBilgDrCodg(doctor.getYbNo()) - // 默认无需审批 + // 默认无需审批 .setBilgDrName(doctor.getName()).setHospApprFlag(YbHospApprFlag.NO_APPROVAL_REQUIRED.getValue()) .setRxCircFlag(eFlag.getValue().toString()); @@ -419,9 +420,9 @@ public class YbParamBuilderUtil { } /** - * 【2204】门诊费用明细信息 + * 【2204】门诊费用明细信息 * - * @param tenantId 租户id + * @param tenantId 租户id * @return */ public Clinic2204OrderParam getClinicOrder2204Param(Integer tenantId, List paymentedItemList, @@ -429,7 +430,7 @@ public class YbParamBuilderUtil { Clinic2204OrderParam clinicOrderPage = new Clinic2204OrderParam(); - // 排番 + // 排番 clinicOrderPage.setChrgBchno(assignSeqUtil.getSeqByDay(AssignSeqEnum.YB_CLINIC_ORDER.getPrefix(), 12)); clinicOrderPage.setChrgBchno(clinicOrderPage.getChrgBchno()); @@ -441,7 +442,7 @@ public class YbParamBuilderUtil { } /** - * 【2205】费用明细撤销 + * 【2205】费用明细撤销 * * @return */ @@ -455,21 +456,21 @@ public class YbParamBuilderUtil { } /** - * 【2206】门诊预结算参数 + * 【2206】门诊预结算参数 * * @return */ /** - * 【2206】门诊预结算参数 + * 【2206】门诊预结算参数 * - * @param payFee 2204返回的费用总额 - * @param chrgBchno 收费批次号 + * @param payFee 2204返回的费用总额 + * @param chrgBchno 收费批次号 * @return */ public Clinic2206OrderParam getClinicOrder2206Param(BigDecimal payFee, ClinicReg2201Output reg, String chrgBchno, String busiCardInfo) { - // 个人结算方式 + // 个人结算方式 YbPsnSetlWay setlWay = YbPsnSetlWay.getByValue("01"); Clinic2206OrderParam clinicOrder = new Clinic2206OrderParam(); @@ -482,13 +483,13 @@ public class YbParamBuilderUtil { } /** - * 【2207】门诊结算参数 + * 【2207】门诊结算参数 * * @return */ public Clinic2207OrderParam getClinicOrder2207(Long encounterId, Integer tenantId, String psnSetlWay, String chrgBchno, String medType) { - // 查询此次就诊信息(此处需要业务上保证下述两个实体一对一关系) + // 查询此次就诊信息(此处需要业务上保证下述两个实体一对一关系) Encounter encounter = iEncounterService.getById(encounterId); YbMedType ybMedType = YbMedType.getByValue(medType); @@ -496,12 +497,12 @@ public class YbParamBuilderUtil { ybMedType = YbMedType.GENERAL_OUTPATIENT; } - // 院内唯一流水号查询挂号信息 + // 院内唯一流水号查询挂号信息 String busNo = encounter.getBusNo(); ClinicReg reg = iRegService.getOne(new LambdaQueryWrapper().eq(ClinicReg::getIptOtpNo, busNo) .eq(ClinicReg::getTenantId, tenantId).eq(ClinicReg::getMedType, ybMedType.getValue())); - // 个人结算方式 + // 个人结算方式 YbPsnSetlWay setlWay = YbPsnSetlWay.getByValue(psnSetlWay); if (setlWay == null) { setlWay = YbPsnSetlWay.PSN_SETLWAY01; @@ -515,11 +516,11 @@ public class YbParamBuilderUtil { .eq(ClinicPreSettle::getMdtrtId, reg.getMdtrtId()).eq(ClinicPreSettle::getChrgBchno, chrgBchno)); Clinic2206OrderResult clinic2206OrderResult = - JSONObject.parseObject(clinicPreSettle.getResult2206(), Clinic2206OrderResult.class); + JsonUtils.parseObject(clinicPreSettle.getResult2206(), Clinic2206OrderResult.class); Clinic2207OrderParam clinicOrder = new Clinic2207OrderParam(); clinicOrder.setPsnNo(reg.getPsnNo()).setMdtrtCertType(reg.getMdtrtCertType()) - // todo:sjq 医疗费用总额需要用ChargeItem的和 + // todo:sjq 医疗费用总额需要用ChargeItem的和 .setMdtrtCertNo(reg.getMdtrtCertNo()).setMedType(reg.getMedType()) .setMedfeeSumamt(clinic2206OrderResult.getMedfeeSumamt().doubleValue()).setPsnSetlway(setlWay.getValue()) .setMdtrtId(reg.getMdtrtId()).setChrgBchno(chrgBchno).setAcctUsedFlag(Whether.YES.getCode()) @@ -532,26 +533,26 @@ public class YbParamBuilderUtil { } /** - * 【2208】门诊结算撤销参数 + * 【2208】门诊结算撤销参数 * * @return */ public Clinic2208UnSetlInfoParam getClinicOrder2208(Integer tenantId, String settleId) { - // 查询此次就诊信息(此处需要业务上保证下述两个实体一对一关系) + // 查询此次就诊信息(此处需要业务上保证下述两个实体一对一关系) // Encounter encounter = iEncounterService.getById(encounterId); ClinicSettle clinicSettle = iClinicSettleService.getBySettleId(settleId); if (clinicSettle == null) { - throw new ServiceException("未查询到医保结算信息"); + throw new ServiceException("未查询到医保结算信息"); } - // 院内唯一流水号查询挂号信息 + // 院内唯一流水号查询挂号信息 // String busNo = encounter.getBusNo(); ClinicReg reg = iRegService.getOne(new LambdaQueryWrapper().eq(ClinicReg::getMdtrtId, clinicSettle.getMdtrtId()) .eq(ClinicReg::getTenantId, tenantId).eq(ClinicReg::getMdtrtId, clinicSettle.getMdtrtId())); if (reg == null) { - throw new ServiceException("未查询到医保结算信息"); + throw new ServiceException("未查询到医保结算信息"); } Clinic2208UnSetlInfoParam clinicSetl = new Clinic2208UnSetlInfoParam(); clinicSetl.setPsnNo(reg.getPsnNo()).setMdtrtId(clinicSettle.getMdtrtId()).setSetlId(settleId) @@ -561,17 +562,17 @@ public class YbParamBuilderUtil { } /** - * 【3201】结算对总账 + * 【3201】结算对总账 * * @return */ public Financial3201Param getFinancial3201Param(Settlement3201WebParam settlement3201WebParam, Settlement3201DetailDto reconciliation) { - // 查询合同信息 + // 查询合同信息 Contract contract = iContractService.getByContractNo(settlement3201WebParam.getContractNo()); if (contract == null) { - throw new ServiceException("未查询到合同信息"); + throw new ServiceException("未查询到合同信息"); } YbClrType clrType = YbClrType.getByValue(settlement3201WebParam.getClrType()); YbInsuType insuType = YbInsuType.getByValue(settlement3201WebParam.getInsuType().toString()); @@ -590,16 +591,16 @@ public class YbParamBuilderUtil { .setFundPaySumamt(reconciliation.getFundPaySumAmt().doubleValue()) .setAcctPay(reconciliation.getAcctPay().add(reconciliation.getAcctGjPay()).doubleValue()) .setFixmedinsSetlCnt(reconciliation.getFixMedInsSetlCnt()) - .setInsuplcAdmdvs(SecurityUtils.getLoginUser().getOptionJson().getString("admvs")); + .setInsuplcAdmdvs(SecurityUtils.getLoginUser().getOptionJson().path("admvs").asText()); return financial3201Param; } /** - * 【3203】清算申请 + * 【3203】清算申请 * - * @param financial3203WebParam 前台参数 - * @return 3203参数 + * @param financial3203WebParam 前台参数 + * @return 3203参数 */ public Financial3203Param getFinancial3203Param(Financial3203WebParam financial3203WebParam) { Long orgId = SecurityUtils.getLoginUser().getHospitalId(); @@ -617,7 +618,7 @@ public class YbParamBuilderUtil { YbPayment.SELF_CASH_VX_VALUE.getValue(), YbPayment.SELF_CASH_ALI_VALUE.getValue(), YbPayment.SELF_CASH_UNION_VALUE.getValue(), YbPayment.YB_FUND_PAY.getValue()); - // 数据处理 + // 数据处理 financial3203VO .setAcctGjPay(financial3203VO.getAcctGjPay() == null ? BigDecimal.ZERO : financial3203VO.getAcctGjPay()); financial3203VO @@ -651,7 +652,7 @@ public class YbParamBuilderUtil { } /** - * 【3203A】清算申请【吉林省】 + * 【3203A】清算申请【吉林省】 * * @param financial3203AWebParam * @return @@ -672,7 +673,7 @@ public class YbParamBuilderUtil { // // YbPayment.YB_FUND_PAY.getValue()); // // - // // 数据处理 + // // 数据处理 // financial3203VO // .setAcctGjPay(financial3203VO.getAcctGjPay() == null ? BigDecimal.ZERO : financial3203VO.getAcctGjPay()); // financial3203VO @@ -705,7 +706,7 @@ public class YbParamBuilderUtil { // } /** - * 【3101】明细审核事前分析服务参数 + * 【3101】明细审核事前分析服务参数 * * @return */ @@ -713,26 +714,26 @@ public class YbParamBuilderUtil { YbPayLoc payLoc, Whether inOutDiagType) { Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); - // 查询就诊记录 + // 查询就诊记录 List encounters = iEncounterService.list( new LambdaQueryWrapper().in(Encounter::getId, encounterId).eq(Encounter::getTenantId, tenantId)); List patients = new ArrayList<>(); for (Encounter encounter : encounters) { - // 查询账户信息 + // 查询账户信息 Account account = accountService.getOne(new LambdaQueryWrapper() .eq(Account::getEncounterId, encounter.getId()).eq(Account::getEncounterFlag, Whether.YES.getValue()) .orderByDesc(Account::getId).last(YbCommonConstants.sqlConst.LIMIT1)); - // 查询患者信息 + // 查询患者信息 Patient patient = iPatientService.getOne(new LambdaQueryWrapper() .in(Patient::getId, encounter.getPatientId()).eq(Patient::getTenantId, tenantId) .orderByDesc(Patient::getId).last(YbCommonConstants.sqlConst.LIMIT1)); - // 查询就诊信息集合 + // 查询就诊信息集合 List list = getFsiEncounterList(encounter, patient, tenantId, payLoc, inOutDiagType); FsiPatient3101Param patientYb = new FsiPatient3101Param(); - // 患者唯一标识暂定使用id + // 患者唯一标识暂定使用id patientYb.setPatnId(patient.getId().toString()).setPatnName(patient.getName()) .setGend(patient.getGenderEnum().toString()).setBrdy(patient.getBirthDate()) .setPoolarea(account.getYbAreaNo()).setCurrMdtrtId(encounter.getBusNo()).setFsiEncounterDtos(list); @@ -740,7 +741,7 @@ public class YbParamBuilderUtil { patients.add(patientYb); } - // 创建实体 + // 创建实体 FsiConsultation3101Param healthcareConsultationDetail = new FsiConsultation3101Param(); healthcareConsultationDetail.setSyscode(syscode).setPatientDtos(patients); @@ -748,24 +749,24 @@ public class YbParamBuilderUtil { } /** - * [3101]明细审核事前分析服务参数-就诊信息集合 + * [3101]明细审核事前分析服务参数-就诊信息集合 * * @return */ private List getFsiEncounterList(Encounter encounter, Patient patient, Integer tenantId, YbPayLoc payLoc, Whether outSetlFlag) { - // 查询就诊记录 + // 查询就诊记录 List encounters = iEncounterService.list(new LambdaQueryWrapper() .eq(Encounter::getPatientId, patient.getId()).eq(Encounter::getTenantId, tenantId)); List list = new ArrayList(); for (Encounter enc : encounters) { - // 查询机构信息 + // 查询机构信息 Long hospitalIdByOrgId = userService.getHospitalIdByOrgId(enc.getOrganizationId()); Organization organization = iOrganizationService.getById(hospitalIdByOrgId); - // 查询医嘱信息 + // 查询医嘱信息 List fsiOrders = getFsiOrderList(enc, patient, tenantId); - // 查询手术信息 + // 查询手术信息 List fsiOperations = getFsiOperationList(enc, patient, tenantId); YbMedinsType medinsType = YbMedinsType.getByValue(organization.getMedinsType()); @@ -773,7 +774,7 @@ public class YbParamBuilderUtil { medinsType = YbMedinsType.FIXMEDINS_TYPE1; } - // 查询诊断信息 + // 查询诊断信息 List encounterDiagnosisList = iEncounterDiagnosisService .list(new LambdaQueryWrapper().eq(EncounterDiagnosis::getEncounterId, enc.getId()) .eq(EncounterDiagnosis::getTenantId, enc.getTenantId())); @@ -787,17 +788,17 @@ public class YbParamBuilderUtil { Condition condition = iConditionService.getById(mainEncounterDiagnosis.getConditionId()); ConditionDefinition conditionDefinition = iConditionDefinitionService.getById(condition.getDefinitionId()); - // 查询诊断信息集合 + // 查询诊断信息集合 List fsiDiagnoses = getFsiDiagnoseList(encounterDiagnosisList, tenantId); - // 查询主治医生 + // 查询主治医生 EncounterParticipant encounterParticipant = iEncounterParticipantService.getOne( new LambdaQueryWrapper().eq(EncounterParticipant::getEncounterId, enc.getId()) .eq(EncounterParticipant::getTypeCode, ParticipantType.ATTENDING_DOCTOR.getCode())); Practitioner doctor = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, encounterParticipant.getPractitionerId())); - // 查询科室 + // 查询科室 Organization org = iOrganizationService.getById(doctor.getOrgId()); - // 查询医疗类别 + // 查询医疗类别 YbClrType clrType = YbClrType.getByValue(enc.getYbClassEnum().toString()); YbMedMdtrtType ybMedMdtrtType = null; switch (clrType) { @@ -811,20 +812,20 @@ public class YbParamBuilderUtil { ybMedMdtrtType = YbMedMdtrtType.OTHER; break; } - // 院内唯一流水号查询挂号信息 + // 院内唯一流水号查询挂号信息 String busNo = encounter.getBusNo(); ClinicReg reg = iRegService.getOne(new LambdaQueryWrapper().eq(ClinicReg::getIptOtpNo, busNo) .eq(ClinicReg::getTenantId, tenantId)); - // 查询付款实体 + // 查询付款实体 List payList = iPaymentReconciliationService.list( new LambdaQueryWrapper().eq(PaymentReconciliation::getEncounterId, enc.getId()) .eq(PaymentReconciliation::getTenantId, tenantId)); - // 自费金额 + // 自费金额 BigDecimal ownPay = BigDecimal.ZERO; - // 自付金额 + // 自付金额 BigDecimal selfPay = BigDecimal.ZERO; for (PaymentReconciliation paymentReconciliation : payList) { - // 查询付款详情 + // 查询付款详情 List details = iPaymentRecDetailService.list(new LambdaQueryWrapper() .eq(PaymentRecDetail::getReconciliationId, paymentReconciliation.getId()) @@ -849,10 +850,10 @@ public class YbParamBuilderUtil { .setAdmDate(enc.getStartTime()).setDscgDate(enc.getEndTime()).setDscgMainDiseCodg(condition.getYbNo()) .setDscgMainDiseName(conditionDefinition.getName()).setDrCodg(doctor.getYbNo()) .setAdmDeptCodg(org.getYbNo()).setAdmDeptName(org.getName()) - // 门诊的入院出院暂定相同,住院的情况应分出一个if + // 门诊的入院出院暂定相同,住院的情况应分出一个if .setDscgDeptCodg(org.getYbNo()).setDscgDeptName(org.getName()) .setMedMdtrtType(ybMedMdtrtType.getValue()) - // 生育状态默认未知 + // 生育状态默认未知 .setMedType(reg.getMedType()).setMedType(YbMatnStas.UNKNOWN.getValue()).setOwnpayAmt(ownPay) .setSelfpayAmt(selfPay).setSetlTotlnum(payList.size()).setInsutype(reg.getInsutype()) .setReimFlag(payLoc.getValue()).setOutSetlFlag(outSetlFlag.getValue().toString()); @@ -864,7 +865,7 @@ public class YbParamBuilderUtil { } /** - * [3101]明细审核事前分析服务参数-手术集合 + * [3101]明细审核事前分析服务参数-手术集合 * * @return */ @@ -873,7 +874,7 @@ public class YbParamBuilderUtil { } /** - * [3101]明细审核事前分析服务参数-诊断集合 + * [3101]明细审核事前分析服务参数-诊断集合 * * @return */ @@ -901,7 +902,7 @@ public class YbParamBuilderUtil { int sort = 1; for (EncounterDiagnosis encounterDiagnosis : encounterDiagnosisList) { FsiDiagnose3101Param fsiDiagnose = new FsiDiagnose3101Param(); - // 出入院诊断及门诊诊断 + // 出入院诊断及门诊诊断 if (YbIptDiseTypeCode.DISCHARGE_DIAGNOSIS.getValue() .equals(encounterDiagnosis.getIptDiseTypeCode().toString())) { fsiDiagnose.setInoutDiseType(YbInOutDiagType.YB_OUT_DIAG_TYPE.getValue()); @@ -910,7 +911,7 @@ public class YbParamBuilderUtil { fsiDiagnose.setInoutDiseType(YbInOutDiagType.YB_IN_DIAG_TYPE.getValue()); } else if (YbIptDiseTypeCode.OUTPATIENT_DIAGNOSIS.getValue() .equals(encounterDiagnosis.getIptDiseTypeCode().toString())) { - //// TODO: sjq 门诊诊断怎么存? + //// TODO: sjq 门诊诊断怎么存? } else { continue; } @@ -926,7 +927,7 @@ public class YbParamBuilderUtil { continue; } } - // 主诊断判断 + // 主诊断判断 if (Whether.YES.getValue().equals(encounterDiagnosis.getMaindiseFlag())) { fsiDiagnose.setMaindiseFlag(Whether.YES.getValue().toString()); } @@ -944,12 +945,12 @@ public class YbParamBuilderUtil { } /** - * [3101]明细审核事前分析服务参数-处方(医嘱)集合 + * [3101]明细审核事前分析服务参数-处方(医嘱)集合 * * @return */ private List getFsiOrderList(Encounter enc, Patient patient, Integer tenantId) { - // 查询医嘱信息 + // 查询医嘱信息 List medicationRequests = iMedicationRequestService.list(new LambdaQueryWrapper() .eq(MedicationRequest::getEncounterId, enc.getId()).eq(MedicationRequest::getTenantId, tenantId)); @@ -961,7 +962,7 @@ public class YbParamBuilderUtil { .eq(ServiceRequest::getEncounterId, enc.getId()).eq(ServiceRequest::getTenantId, tenantId)); for (MedicationRequest medicationRequest : medicationRequests) { - // 查询药品定义 + // 查询药品定义 Medication medication = iMedicationService.getById(medicationRequest.getDeviceDefId()); if (medication == null) { continue; @@ -971,12 +972,12 @@ public class YbParamBuilderUtil { if (medicationDefinition == null) { continue; } - // 是否是长期医嘱 + // 是否是长期医嘱 Whether whether = Whether.NO; if (TherapyTimeType.LONG_TERM.getValue().equals(medicationRequest.getTherapyEnum())) { whether = Whether.YES; } - // 查询收费项 + // 查询收费项 ChargeItem chargeItem = iChargeItemService .getOne(new LambdaQueryWrapper().eq(ChargeItem::getEncounterId, enc.getId()) .eq(ChargeItem::getServiceTable, CommonConstants.TableName.MED_MEDICATION_REQUEST) @@ -988,12 +989,12 @@ public class YbParamBuilderUtil { if (medChrgItmType == null) { continue; } - // 查询医保等级 + // 查询医保等级 YbChrgitmLv chrgitmLv = YbChrgitmLv.getByValue(medicationDefinition.getChrgitmLv()); if (chrgitmLv == null) { chrgitmLv = YbChrgitmLv.SELF_PAY; } - // 查询医保目录价格 + // 查询医保目录价格 Double price; String ybNo = medicationDefinition.getYbNo(); CatalogDrugInfo drugInfo = iCatalogDrugInfoService.getOne(new LambdaQueryWrapper() @@ -1006,22 +1007,22 @@ public class YbParamBuilderUtil { } else { } - // 查询医院信息 + // 查询医院信息 Long hospitalId = userService.getHospitalIdByOrgId(enc.getOrganizationId()); Organization org = iOrganizationService.getById(hospitalId); FsiOrder3101Param fsiOrder = new FsiOrder3101Param(); fsiOrder.setRxId(medicationRequest.getBusNo()).setRxno(medicationRequest.getPrescriptionNo()) .setLongDrordFlag(whether.getCode()).setHilistCode(medicationDefinition.getCategoryCode()) - // 医嘱类别暂定全部使用其他 + // 医嘱类别暂定全部使用其他 .setChrgType(medChrgItmType.getValue()).setDrordBhvr(YbDrordBhvr.OTHER.getValue()) .setHilistCode(medicationDefinition.getYbNo()) - // 医保目录价格未定义 + // 医保目录价格未定义 .setHilistName(medicationDefinition.getName()).setHilistLv(chrgitmLv.getValue().toString()) .setHosplistCode(org.getYbNo()).setHosplistName(org.getName()) .setCnt(new BigDecimal(chargeItem.getQuantityValue().toString())).setPric(chargeItem.getUnitPrice()) .setSumamt(chargeItem.getTotalPrice()); - // todo:sjq 从第23项后面的值越来越离谱,暂定先停止3101和3103的开发 + // todo:sjq 从第23项后面的值越来越离谱,暂定先停止3101å’Œ3103的开发 } @@ -1029,13 +1030,13 @@ public class YbParamBuilderUtil { } /** - * 【3202】医药机构费用结算对明细账 + * 【3202】医药机构费用结算对明细账 * - * @param settlement3202WebParam 费用结算对明细账前端入参 - * @return 医保参数 + * @param settlement3202WebParam 费用结算对明细账前端入参 + * @return 医保参数 */ public FinancialSettlement3202Param getFinancialSettlement3202Param(Settlement3202WebParam settlement3202WebParam) { - // 数据库查询 + // 数据库查询 Settlement3202Dto reconciliation = medicalInsuranceMapper.get3202Param(settlement3202WebParam.getStmtBegnDate().toString(), settlement3202WebParam.getStmtEndDate().toString(), SecurityUtils.getLoginUser().getTenantId(), @@ -1044,7 +1045,7 @@ public class YbParamBuilderUtil { YbPayment.SELF_YB_ZH_GJ_VALUE.getValue(), YbPayment.SELF_CASH_VALUE.getValue(), YbPayment.SELF_CASH_VX_VALUE.getValue(), YbPayment.SELF_CASH_ALI_VALUE.getValue(), YbPayment.SELF_CASH_UNION_VALUE.getValue(), YbPayment.YB_FUND_PAY.getValue()); - // 数据处理 + // 数据处理 reconciliation .setAcctGjPay(reconciliation.getAcctGjPay() == null ? BigDecimal.ZERO : reconciliation.getAcctGjPay()); reconciliation.setAcctPay(reconciliation.getAcctPay() == null ? BigDecimal.ZERO : reconciliation.getAcctPay()); @@ -1064,7 +1065,7 @@ public class YbParamBuilderUtil { BigDecimal cashSum = reconciliation.getSelfPayCash().add(reconciliation.getSelfPayVX()) .add(reconciliation.getSelfPayUNION()).add(reconciliation.getSelfPayALI()); // BigDecimal zhSum = reconciliation.getAcctGjPay().add(reconciliation.getAcctPay()); - // 组装参数 + // 组装参数 FinancialSettlement3202Param financialSettlement3202Param = new FinancialSettlement3202Param(); financialSettlement3202Param.setClrType(settlement3202WebParam.getClrType()).setCashPayamt(cashSum) .setFileQuryNo(settlement3202WebParam.getFileQuryNo()) @@ -1073,26 +1074,26 @@ public class YbParamBuilderUtil { .setStmtBegndate(DateUtils.parseDate(settlement3202WebParam.getStmtBegnDate())) .setStmtEnddate(DateUtils.parseDate(settlement3202WebParam.getStmtEndDate())) .setFundPaySumamt(reconciliation.getFundPaySumAmt()); - // 返回结果 + // 返回结果 return financialSettlement3202Param; } /** - * 【3202】对账明细的文件数据 + * 【3202】对账明细的文件数据 * - * @param paymentIds 付款实体ids - * @return 查询结果 + * @param paymentIds 付款实体ids + * @return 查询结果 */ public List getFinancial3202FileParam(List paymentIds) { List list = new ArrayList<>(); for (Long paymentId : paymentIds) { - // 查询基础信息 + // 查询基础信息 List paymentRecDetails = iPaymentRecDetailService .list(new LambdaQueryWrapper().eq(PaymentRecDetail::getReconciliationId, paymentId)); PaymentReconciliation paymentReconciliation = iPaymentReconciliationService.getById(paymentId); if (paymentReconciliation == null) { - throw new ServiceException("未查询到付款信息"); + throw new ServiceException("未查询到付款信息"); } String ybSettleIds = paymentReconciliation.getYbSettleIds(); if (StringUtils.isEmpty(ybSettleIds)) { @@ -1115,7 +1116,7 @@ public class YbParamBuilderUtil { ClinicReg clinicReg = iRegService .getOne(new LambdaQueryWrapper().eq(ClinicReg::getMdtrtId, clinicSettle.getMdtrtId())); - // 计算金额 + // 计算金额 BigDecimal fundPay = BigDecimal.ZERO; BigDecimal accountPay = BigDecimal.ZERO; for (PaymentRecDetail paymentRecDetail : paymentRecDetails) { @@ -1127,16 +1128,16 @@ public class YbParamBuilderUtil { } } - // 反结标志 + // 反结标志 String refdSetlFlag = Whether.NO.getValue().toString(); if (paymentReconciliation.getPaymentEnum().equals(PaymentType.UN_PAY.getValue())) { - refdSetlFlag = Whether.YES.getValue().toString();// 1 是退费 2 否退费 + refdSetlFlag = Whether.YES.getValue().toString();// 1 是退费 2 否退费 } Financial3202FileParam financial3202FileParam = new Financial3202FileParam(); financial3202FileParam.setSetlId(clinicSettle.getSetlId()).setMdtrtId(clinicSettle.getMdtrtId()) .setPsnNo(clinicReg.getPsnNo()).setMedfeeSumamt(paymentReconciliation.getTenderedAmount()) .setFundPaySumamt(fundPay).setAcctPay(accountPay).setRefdSetlFlag(refdSetlFlag); - // 添加集合 + // 添加集合 list.add(financial3202FileParam); } } @@ -1144,19 +1145,19 @@ public class YbParamBuilderUtil { } /** - * 【3301】获取医保目录对照入参 + * 【3301】获取医保目录对照入参 * - * @param tableName 对应定义表 - * @param id 主键 - * @return 医保参数 + * @param tableName 对应定义表 + * @param id 主键 + * @return 医保参数 */ public MedicalDirectory3301Param getMedicalDirectory3301Param(String tableName, Long id) { MedicalDirectory3301Param medicalDirectory3301Param = new MedicalDirectory3301Param(); if (CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(tableName)) { - // 耗材 + // 耗材 DeviceDefinition deviceDefinition = iDeviceDefinitionService.getById(id); if (deviceDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } YbListType listType = YbListType.getByValue(deviceDefinition.getCategoryCode()); if (listType == null) { @@ -1168,18 +1169,18 @@ public class YbParamBuilderUtil { .setBegndate(DateUtils.dateTimeNow(YbCommonConstants.constants.YYYY_MM_DD)) .setEnddate(YbCommonConstants.constants.END_TIME); } else if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(tableName)) { - // 药品 + // 药品 MedicationDefinition medicationDefinition = iMedicationDefinitionService.getById(id); if (medicationDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } - // 项目类型为中成药(1)、西药(2)、外购药品(3)、中草药(4)时查药品表;为耗材(9)时查器材表 + // 项目类型为中成药(1)、西药(2)、外购药品(3)、中草药(4)时查药品表;为耗材(9)时查器材表 YbListType listType = YbListType.getByValue(medicationDefinition.getCategoryCode()); if (listType == null) { listType = switch (medicationDefinition.getCategoryCode()) { case "1", "2" -> YbListType.WESTERN_AND_CHINESE_PATENT_MEDICINE; case "4" -> YbListType.IMPORTANT_HERBAL_SLICES; - default -> throw new ServiceException("未查询到目录类别"); + default -> throw new ServiceException("未查询到目录类别"); }; } medicalDirectory3301Param.setFixmedinsHilistId(medicationDefinition.getBusNo()) @@ -1188,10 +1189,10 @@ public class YbParamBuilderUtil { .setBegndate(DateUtils.dateTimeNow(YbCommonConstants.constants.YYYY_MM_DD)) .setEnddate(YbCommonConstants.constants.END_TIME); } else if (CommonConstants.TableName.WOR_ACTIVITY_DEFINITION.equals(tableName)) { - // 医疗项目 + // 医疗项目 ActivityDefinition activityDefinition = iActivityDefinitionService.getById(id); if (activityDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } YbListType listType = YbListType.getByValue(activityDefinition.getCategoryCode()); if (listType == null) { @@ -1203,10 +1204,10 @@ public class YbParamBuilderUtil { .setBegndate(DateUtils.dateTimeNow(YbCommonConstants.constants.YYYY_MM_DD)) .setEnddate(YbCommonConstants.constants.END_TIME); } else if (CommonConstants.TableName.ADM_HEALTHCARE_SERVICE.equals(tableName)) { - // 医疗服务 + // 医疗服务 HealthcareService healthcareServiceService = iHealthcareServiceService.getById(id); if (healthcareServiceService == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } YbListType listType = YbListType.getByValue(healthcareServiceService.getCategoryCode()); if (listType == null) { @@ -1218,19 +1219,19 @@ public class YbParamBuilderUtil { .setBegndate(DateUtils.dateTimeNow(YbCommonConstants.constants.YYYY_MM_DD)) .setEnddate(YbCommonConstants.constants.END_TIME); } else { - throw new ServiceException("未查询到医疗项目"); + throw new ServiceException("未查询到医疗项目"); } return medicalDirectory3301Param; } /** - * 【3301】医保目录对照参数作成(药品) + * 【3301】医保目录对照参数作成(药品) * - * @param categoryCode 药品分类 - * @param busNo 药品编号 - * @param name 药品编号 - * @param ybNo 医保编码 - * @return 医保目录对照参数 + * @param categoryCode 药品分类 + * @param busNo 药品编号 + * @param name 药品编号 + * @param ybNo 医保编码 + * @return 医保目录对照参数 */ public MedicalDirectory3301Param getMedicalDirectory3301ParamMedication(String categoryCode, String busNo, String name, String ybNo) { @@ -1241,7 +1242,7 @@ public class YbParamBuilderUtil { } else if (MedCategoryCode.CHINESE_HERBAL_MEDICINE.getValue().equals(categoryCode)) { listType = YbListType.IMPORTANT_HERBAL_SLICES.getValue(); } else { - throw new ServiceException("无效的目录类别"); + throw new ServiceException("无效的目录类别"); } return new MedicalDirectory3301Param().setFixmedinsHilistId(busNo).setFixmedinsHilistName(name) .setListType(listType).setMedListCodg(ybNo) @@ -1250,82 +1251,82 @@ public class YbParamBuilderUtil { } /** - * 【3302】医保目录对照撤销 + * 【3302】医保目录对照撤销 * - * @param tableName 对应定义表 - * @param id 主键 + * @param tableName 对应定义表 + * @param id 主键 * @return */ public MedicalDirectory3302Param getMedicalDirectory3302Param(String tableName, Long id) { MedicalDirectory3302Param medicalDirectory3302Param = new MedicalDirectory3302Param(); if (CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(tableName)) { - // 耗材 + // 耗材 DeviceDefinition deviceDefinition = iDeviceDefinitionService.getById(id); if (deviceDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } YbListType listType = YbListType.getByValue(deviceDefinition.getCategoryCode()); if (listType == null) { listType = YbListType.MEDICAL_CONSUMABLES; } medicalDirectory3302Param.setFixmedinsHilistId(deviceDefinition.getBusNo()) - .setFixmedinsCode(SecurityUtils.getLoginUser().getOptionJson().getString("fixmedinsCode")) + .setFixmedinsCode(SecurityUtils.getLoginUser().getOptionJson().path("fixmedinsCode").asText()) .setListType(listType.getValue()).setMedListCodg(deviceDefinition.getYbNo()); } else if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(tableName)) { - // 药品 + // 药品 MedicationDefinition medicationDefinition = iMedicationDefinitionService.getById(id); if (medicationDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } - // 项目类型为中成药(1)、西药(2)、外购药品(3)、中草药(4)时查药品表;为耗材(9)时查器材表 + // 项目类型为中成药(1)、西药(2)、外购药品(3)、中草药(4)时查药品表;为耗材(9)时查器材表 YbListType listType = YbListType.getByValue(medicationDefinition.getCategoryCode()); if (listType == null) { listType = switch (medicationDefinition.getCategoryCode()) { case "1", "2" -> YbListType.WESTERN_AND_CHINESE_PATENT_MEDICINE; case "4" -> YbListType.IMPORTANT_HERBAL_SLICES; - default -> throw new ServiceException("未查询到目录类别"); + default -> throw new ServiceException("未查询到目录类别"); }; } medicalDirectory3302Param.setFixmedinsHilistId(medicationDefinition.getBusNo()) - .setFixmedinsCode(SecurityUtils.getLoginUser().getOptionJson().getString("fixmedinsCode")) + .setFixmedinsCode(SecurityUtils.getLoginUser().getOptionJson().path("fixmedinsCode").asText()) .setListType(listType.getValue()).setMedListCodg(medicationDefinition.getYbNo()); } else if (CommonConstants.TableName.WOR_ACTIVITY_DEFINITION.equals(tableName)) { - // 医疗项目 + // 医疗项目 ActivityDefinition activityDefinition = iActivityDefinitionService.getById(id); if (activityDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } YbListType listType = YbListType.getByValue(activityDefinition.getCategoryCode()); if (listType == null) { listType = YbListType.MEDICAL_SERVICE_ITEM; } medicalDirectory3302Param.setFixmedinsHilistId(activityDefinition.getBusNo()) - .setFixmedinsCode(SecurityUtils.getLoginUser().getOptionJson().getString("fixmedinsCode")) + .setFixmedinsCode(SecurityUtils.getLoginUser().getOptionJson().path("fixmedinsCode").asText()) .setListType(listType.getValue()).setMedListCodg(activityDefinition.getYbNo()); } else { - // 医疗项目 + // 医疗项目 HealthcareService healthcareService = iHealthcareServiceService.getById(id); if (healthcareService == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } YbListType listType = YbListType.getByValue(healthcareService.getCategoryCode()); if (listType == null) { listType = YbListType.MEDICAL_SERVICE_ITEM; } medicalDirectory3302Param.setFixmedinsHilistId(healthcareService.getId().toString()) - .setFixmedinsCode(SecurityUtils.getLoginUser().getOptionJson().getString("fixmedinsCode")) + .setFixmedinsCode(SecurityUtils.getLoginUser().getOptionJson().path("fixmedinsCode").asText()) .setListType(listType.getValue()).setMedListCodg(healthcareService.getYbNo()); } return medicalDirectory3302Param; } /** - * 【3302】医保目录对照撤销参数作成(药品) + * 【3302】医保目录对照撤销参数作成(药品) * - * @param categoryCode 药品分类 - * @param busNo 药品编号 - * @param ybNo 医保编码 - * @return 医保目录对照撤销参数 + * @param categoryCode 药品分类 + * @param busNo 药品编号 + * @param ybNo 医保编码 + * @return 医保目录对照撤销参数 */ public MedicalDirectory3302Param getMedicalDirectory3302ParamMedication(String categoryCode, String busNo, String ybNo) { @@ -1336,7 +1337,7 @@ public class YbParamBuilderUtil { } else if (MedCategoryCode.CHINESE_HERBAL_MEDICINE.getValue().equals(categoryCode)) { listType = YbListType.IMPORTANT_HERBAL_SLICES.getValue(); } else { - throw new ServiceException("无效的目录类别"); + throw new ServiceException("无效的目录类别"); } return new MedicalDirectory3302Param().setFixmedinsHilistId(busNo) .setFixmedinsCode(TenantOptionUtil.getOptionContent(TenantOptionDict.YB_FIXMEDINS_CODE)) @@ -1345,20 +1346,20 @@ public class YbParamBuilderUtil { /** * - * @param clearing3205AWebParma [3205]前台传参 - * @return 医保入参 + * @param clearing3205AWebParma [3205]前台传参 + * @return 医保入参 */ public Clearing3205AParma getClearing3205AParma(Clearing3205AWebParma clearing3205AWebParma) { String clrStas = clearing3205AWebParma.getClrStas(); - // 10 已申请20 已受理50 已清算如不填写,默认为10 + // 10 已申请20 已受理50 已清算如不填写,默认为10 if (StringUtils.isEmpty(clrStas)) { clrStas = YbClrStas.CLR_STAS10.getValue(); } YbClrStas ybClrStas = YbClrStas.getByValue(clrStas); - // 年月格式,例如:202310 - // 查询clr_sta为20、50的时候,该值必填 + // 年月格式,例如:202310 + // 查询clr_sta为20、50的时候,该值必填 if (ybClrStas != YbClrStas.CLR_STAS10 && StringUtils.isEmpty(clearing3205AWebParma.getClrYm())) { - throw new ServiceException("请填写清算状态"); + throw new ServiceException("请填写清算状态"); } Clearing3205AParma clearing3205AParma = new Clearing3205AParma(); clearing3205AParma.setClrOptins(clearing3205AWebParma.getClrOptins()) @@ -1367,25 +1368,25 @@ public class YbParamBuilderUtil { } /** - * 【3501】库存明细上传 + * 【3501】库存明细上传 * - * @param id 供应申请id - * @return 3501医保参数 + * @param id 供应申请id + * @return 3501医保参数 */ public MedicalInventory3501Param getMedicalInventory3501Param(Long id, Integer talentId) { MedicalInventory3501Param medicalInventory3501Param = new MedicalInventory3501Param(); - // 查库存 + // 查库存 InventoryItem inventoryItem = inventoryItemService.getById(id); if (inventoryItem == null) { - throw new ServiceException("未查询到库存信息"); + throw new ServiceException("未查询到库存信息"); } if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(inventoryItem.getItemTable())) { - // 查询药品 + // 查询药品 MedicationDefinition medicationDefinition = iMedicationDefinitionService.getById(inventoryItem.getItemId()); if (medicationDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } - // 查询盘存数据 + // 查询盘存数据 SupplyDelivery one = iSupplyDeliveryService.getOne(new LambdaQueryWrapper() .eq(SupplyDelivery::getItemTable, CommonConstants.TableName.MED_MEDICATION_DEFINITION) .eq(SupplyDelivery::getItemId, medicationDefinition.getId()).eq(SupplyDelivery::getTenantId, talentId)); @@ -1396,12 +1397,12 @@ public class YbParamBuilderUtil { .setInvCnt(inventoryItem.getQuantity()).setFixmedinsBchno(inventoryItem.getLotNumber()) .setManuDate(inventoryItem.getProductionDate()).setExpyEnd(inventoryItem.getExpirationDate()); } else if (CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(inventoryItem.getItemTable())) { - // 查询器材 + // 查询器材 DeviceDefinition deviceDefinition = iDeviceDefinitionService.getById(inventoryItem.getItemId()); if (deviceDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } - // 查询盘存数据 + // 查询盘存数据 SupplyDelivery one = iSupplyDeliveryService.getOne(new LambdaQueryWrapper() .eq(SupplyDelivery::getItemTable, CommonConstants.TableName.ADM_DEVICE_DEFINITION) .eq(SupplyDelivery::getItemId, deviceDefinition.getId()).eq(SupplyDelivery::getTenantId, talentId)); @@ -1412,51 +1413,51 @@ public class YbParamBuilderUtil { .setInvCnt(inventoryItem.getQuantity()).setFixmedinsBchno(inventoryItem.getLotNumber()) .setManuDate(inventoryItem.getProductionDate()).setExpyEnd(inventoryItem.getExpirationDate()); } else { - throw new ServiceException("未查询到信息"); + throw new ServiceException("未查询到信息"); } return medicalInventory3501Param; } /** - * 【3502】库存信息变更 + * 【3502】库存信息变更 * - * @param id 供应发放id - * @param invChgType 变更类型 参考枚举 - * @param talentId 租户id + * @param id 供应发放id + * @param invChgType 变更类型 参考枚举 + * @param talentId 租户id * @return */ public MedicalInventory3502Param getMedicalInventory3502Param(Long id, String invChgType, Integer talentId) { MedicalInventory3502Param medicalInventory3502Param = new MedicalInventory3502Param(); - // 查供应发放实体 + // 查供应发放实体 SupplyDelivery supplyDelivery = iSupplyDeliveryService.getById(id); if (supplyDelivery == null) { - throw new ServiceException("未查询到供应信息"); + throw new ServiceException("未查询到供应信息"); } - // 库存变更类型 + // 库存变更类型 YbInvChgType chgType = YbInvChgType.getByValue(invChgType); if (chgType == null) { - throw new ServiceException("未查询到付款信息"); + throw new ServiceException("未查询到付款信息"); } if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(supplyDelivery.getItemTable())) { - // 查询药品信息 + // 查询药品信息 MedicationDefinition medicationDefinition = iMedicationDefinitionService.getById(supplyDelivery.getItemId()); if (medicationDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } - // 查询定价信息 + // 查询定价信息 ChargeItemDefinition chargeItemDefinition = iChargeItemDefinitionService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefinition::getInstanceTable, CommonConstants.TableName.MED_MEDICATION_DEFINITION) .eq(ChargeItemDefinition::getInstanceId, medicationDefinition.getId()) .eq(ChargeItemDefinition::getTenantId, talentId)); if (chargeItemDefinition == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 查查询定价子表 + // 查查询定价子表 ChargeItemDefDetail chargeItemDefDetail = iChargeItemDefDetailService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefDetail::getDefinitionId, chargeItemDefinition.getId()) @@ -1464,9 +1465,9 @@ public class YbParamBuilderUtil { .eq(ChargeItemDefDetail::getTenantId, talentId).orderByDesc(ChargeItemDefDetail::getConditionValue) .last(YbCommonConstants.sqlConst.LIMIT1)); if (chargeItemDefDetail == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 最小单位售卖价格 + // 最小单位售卖价格 BigDecimal price; if (medicationDefinition.getPartPercent().compareTo(BigDecimal.ZERO) > 0) { price = @@ -1481,21 +1482,21 @@ public class YbParamBuilderUtil { .setRxFlag(medicationDefinition.getRxFlag().toString()).setPric(price) .setCnt(supplyDelivery.getQuantity()).setInvChgTime(supplyDelivery.getUpdateTime()); } else if (CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(supplyDelivery.getItemTable())) { - // 查询耗材信息 + // 查询耗材信息 DeviceDefinition deviceDefinition = iDeviceDefinitionService.getById(supplyDelivery.getItemId()); if (deviceDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } - // 查询定价信息 + // 查询定价信息 ChargeItemDefinition chargeItemDefinition = iChargeItemDefinitionService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefinition::getInstanceTable, CommonConstants.TableName.ADM_DEVICE_DEFINITION) .eq(ChargeItemDefinition::getInstanceId, deviceDefinition.getId()) .eq(ChargeItemDefinition::getTenantId, talentId)); if (chargeItemDefinition == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 查查询定价子表 + // 查查询定价子表 ChargeItemDefDetail chargeItemDefDetail = iChargeItemDefDetailService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefDetail::getDefinitionId, chargeItemDefinition.getId()) @@ -1503,9 +1504,9 @@ public class YbParamBuilderUtil { .eq(ChargeItemDefDetail::getTenantId, talentId).orderByDesc(ChargeItemDefDetail::getConditionValue) .last(YbCommonConstants.sqlConst.LIMIT1)); if (chargeItemDefDetail == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 最小单位售卖价格 + // 最小单位售卖价格 BigDecimal price; if (deviceDefinition.getPartPercent().compareTo(BigDecimal.ZERO) > 0) { price = chargeItemDefDetail.getAmount().divide(deviceDefinition.getPartPercent(), RoundingMode.HALF_UP); @@ -1519,59 +1520,59 @@ public class YbParamBuilderUtil { .setRxFlag(deviceDefinition.getRxFlag().toString()).setPric(price).setCnt(supplyDelivery.getQuantity()) .setInvChgTime(supplyDelivery.getUpdateTime()); } else { - throw new ServiceException("未查询到信息"); + throw new ServiceException("未查询到信息"); } return medicalInventory3502Param; } /** - * 【3503】商品采购 + * 【3503】商品采购 * - * @param id 供应发放id - * @param talentId 租户id + * @param id 供应发放id + * @param talentId 租户id * @return */ public Medical3503Param getMedical3503Param(Long id, Integer talentId) { Medical3503Param medical3503Param = new Medical3503Param(); - // 查供应发放实体 + // 查供应发放实体 SupplyDelivery supplyDelivery = iSupplyDeliveryService.getById(id); if (supplyDelivery == null) { - throw new ServiceException("未查询到供应发放信息"); + throw new ServiceException("未查询到供应发放信息"); } - // 查询发放请求实体 + // 查询发放请求实体 SupplyRequest supplyRequest = iSupplyRequestService.getOne(new LambdaQueryWrapper() .eq(SupplyRequest::getId, supplyDelivery.getRequestId()).eq(SupplyRequest::getTenantId, talentId) .eq(SupplyRequest::getTypeEnum, SupplyType.PURCHASE_INVENTORY.getValue())); if (supplyRequest == null) { - throw new ServiceException("未查询到供应信息"); + throw new ServiceException("未查询到供应信息"); } - // 查库存信息 + // 查库存信息 InventoryItem inventoryItem = inventoryItemService.getOne(new LambdaQueryWrapper() .eq(InventoryItem::getLocationStoreId, supplyRequest.getSourceLocationStoreId()) .eq(InventoryItem::getLocationId, supplyRequest.getPurposeLocationId()) .eq(InventoryItem::getTenantId, talentId)); - // 查询经办人 + // 查询经办人 Practitioner practitioner = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, supplyDelivery.getReceiverId()).eq(Practitioner::getTenantId, talentId)); if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(supplyDelivery.getItemTable())) { - // 查询药品信息 + // 查询药品信息 MedicationDefinition medicationDefinition = iMedicationDefinitionService.getById(supplyDelivery.getItemId()); if (medicationDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } - // 查询定价信息 + // 查询定价信息 ChargeItemDefinition chargeItemDefinition = iChargeItemDefinitionService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefinition::getInstanceTable, CommonConstants.TableName.MED_MEDICATION_DEFINITION) .eq(ChargeItemDefinition::getInstanceId, medicationDefinition.getId()) .eq(ChargeItemDefinition::getTenantId, talentId)); if (chargeItemDefinition == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 查查询定价子表 + // 查查询定价子表 ChargeItemDefDetail chargeItemDefDetail = iChargeItemDefDetailService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefDetail::getDefinitionId, chargeItemDefinition.getId()) @@ -1579,9 +1580,9 @@ public class YbParamBuilderUtil { .eq(ChargeItemDefDetail::getTenantId, talentId).orderByDesc(ChargeItemDefDetail::getConditionValue) .last(YbCommonConstants.sqlConst.LIMIT1)); if (chargeItemDefDetail == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 查询供应商 + // 查询供应商 Supplier supplier = iSupplierService.getById(medicationDefinition.getSupplyId()); medical3503Param.setMedListCodg(medicationDefinition.getYbNo()) @@ -1594,21 +1595,21 @@ public class YbParamBuilderUtil { .setExpyEnd(inventoryItem.getExpirationDate()).setPurcRetnCnt(supplyDelivery.getQuantity()) .setPurcRetnStoinTime(supplyDelivery.getOccurrenceTime()).setPurcRetnOpterName(practitioner.getName()); } else if (CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(supplyDelivery.getItemTable())) { - // 查询耗材信息 + // 查询耗材信息 DeviceDefinition deviceDefinition = iDeviceDefinitionService.getById(supplyDelivery.getItemId()); if (deviceDefinition == null) { - throw new ServiceException("未查询到耗材信息"); + throw new ServiceException("未查询到耗材信息"); } - // 查询定价信息 + // 查询定价信息 ChargeItemDefinition chargeItemDefinition = iChargeItemDefinitionService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefinition::getInstanceTable, CommonConstants.TableName.ADM_DEVICE_DEFINITION) .eq(ChargeItemDefinition::getInstanceId, deviceDefinition.getId()) .eq(ChargeItemDefinition::getTenantId, talentId)); if (chargeItemDefinition == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 查查询定价子表 + // 查查询定价子表 ChargeItemDefDetail chargeItemDefDetail = iChargeItemDefDetailService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefDetail::getDefinitionId, chargeItemDefinition.getId()) @@ -1616,9 +1617,9 @@ public class YbParamBuilderUtil { .eq(ChargeItemDefDetail::getTenantId, talentId).orderByDesc(ChargeItemDefDetail::getConditionValue) .last(YbCommonConstants.sqlConst.LIMIT1)); if (chargeItemDefDetail == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 查询供应商 + // 查询供应商 Supplier supplier = iSupplierService.getById(deviceDefinition.getSupplyId()); medical3503Param.setMedListCodg(deviceDefinition.getYbNo()).setFixmedinsBchno(inventoryItem.getLotNumber()) @@ -1630,60 +1631,60 @@ public class YbParamBuilderUtil { .setExpyEnd(inventoryItem.getExpirationDate()).setPurcRetnCnt(supplyDelivery.getQuantity()) .setPurcRetnStoinTime(supplyDelivery.getOccurrenceTime()).setPurcRetnOpterName(practitioner.getName()); } else { - throw new ServiceException("未查询到信息"); + throw new ServiceException("未查询到信息"); } return medical3503Param; } /** - * 【3504】商品采购退货 + * 【3504】商品采购退货 * - * @param id 供应发放id - * @param talentId 租户id + * @param id 供应发放id + * @param talentId 租户id * @return */ public MedicalPurchase3504Param getMedicalPurchase3504Param(Long id, Integer talentId) { MedicalPurchase3504Param medicalPurchase3504Param = new MedicalPurchase3504Param(); - // 查供应发放实体 + // 查供应发放实体 SupplyDelivery supplyDelivery = iSupplyDeliveryService.getById(id); if (supplyDelivery == null) { - throw new ServiceException("未查询到供应信息"); + throw new ServiceException("未查询到供应信息"); } - // 查询发放请求实体 + // 查询发放请求实体 SupplyRequest supplyRequest = iSupplyRequestService.getOne(new LambdaQueryWrapper() .eq(SupplyRequest::getId, supplyDelivery.getRequestId()).eq(SupplyRequest::getTenantId, talentId) .eq(SupplyRequest::getTypeEnum, SupplyType.PRODUCT_RETURN.getValue())); if (supplyRequest == null) { - throw new ServiceException("未查询到供应信息"); + throw new ServiceException("未查询到供应信息"); } - // 查库存信息 + // 查库存信息 InventoryItem inventoryItem = inventoryItemService.getOne(new LambdaQueryWrapper() .eq(InventoryItem::getLocationStoreId, supplyRequest.getSourceLocationStoreId()) .eq(InventoryItem::getLocationId, supplyRequest.getPurposeLocationId()) .eq(InventoryItem::getTenantId, talentId)); - // 查询经办人 + // 查询经办人 Practitioner practitioner = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, supplyDelivery.getReceiverId()).eq(Practitioner::getTenantId, talentId)); if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(supplyDelivery.getItemTable())) { - // 查询药品信息 + // 查询药品信息 MedicationDefinition medicationDefinition = iMedicationDefinitionService.getById(supplyDelivery.getItemId()); if (medicationDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } - // 查询定价信息 + // 查询定价信息 ChargeItemDefinition chargeItemDefinition = iChargeItemDefinitionService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefinition::getInstanceTable, CommonConstants.TableName.MED_MEDICATION_DEFINITION) .eq(ChargeItemDefinition::getInstanceId, medicationDefinition.getId()) .eq(ChargeItemDefinition::getTenantId, talentId)); if (chargeItemDefinition == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 查查询定价子表 + // 查查询定价子表 ChargeItemDefDetail chargeItemDefDetail = iChargeItemDefDetailService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefDetail::getDefinitionId, chargeItemDefinition.getId()) @@ -1691,12 +1692,12 @@ public class YbParamBuilderUtil { .eq(ChargeItemDefDetail::getTenantId, talentId).orderByDesc(ChargeItemDefDetail::getConditionValue) .last(YbCommonConstants.sqlConst.LIMIT1)); if (chargeItemDefDetail == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 查询供应商 + // 查询供应商 Supplier supplier = iSupplierService.getById(medicationDefinition.getSupplyId()); if (supplier == null) { - throw new ServiceException("未查询到供应商信息"); + throw new ServiceException("未查询到供应商信息"); } medicalPurchase3504Param.setMedListCodg(medicationDefinition.getYbNo()) .setFixmedinsBchno(inventoryItem.getLotNumber()).setFixmedinsHilistId(medicationDefinition.getBusNo()) @@ -1706,21 +1707,21 @@ public class YbParamBuilderUtil { .setExpyEnd(inventoryItem.getExpirationDate()).setPurcRetnCnt(supplyDelivery.getQuantity()) .setPurcRetnStoinTime(supplyDelivery.getOccurrenceTime()).setPurcRetnOpterName(practitioner.getName()); } else if (CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(supplyDelivery.getItemTable())) { - // 查询耗材信息 + // 查询耗材信息 DeviceDefinition deviceDefinition = iDeviceDefinitionService.getById(supplyDelivery.getItemId()); if (deviceDefinition == null) { - throw new ServiceException("未查询到耗材信息"); + throw new ServiceException("未查询到耗材信息"); } - // 查询定价信息 + // 查询定价信息 ChargeItemDefinition chargeItemDefinition = iChargeItemDefinitionService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefinition::getInstanceTable, CommonConstants.TableName.ADM_DEVICE_DEFINITION) .eq(ChargeItemDefinition::getInstanceId, deviceDefinition.getId()) .eq(ChargeItemDefinition::getTenantId, talentId)); if (chargeItemDefinition == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 查查询定价子表 + // 查查询定价子表 ChargeItemDefDetail chargeItemDefDetail = iChargeItemDefDetailService.getOne(new LambdaQueryWrapper() .eq(ChargeItemDefDetail::getDefinitionId, chargeItemDefinition.getId()) @@ -1728,12 +1729,12 @@ public class YbParamBuilderUtil { .eq(ChargeItemDefDetail::getTenantId, talentId).orderByDesc(ChargeItemDefDetail::getConditionValue) .last(YbCommonConstants.sqlConst.LIMIT1)); if (chargeItemDefDetail == null) { - throw new ServiceException("未查询到定价信息"); + throw new ServiceException("未查询到定价信息"); } - // 查询供应商 + // 查询供应商 Supplier supplier = iSupplierService.getById(deviceDefinition.getSupplyId()); if (supplier == null) { - throw new ServiceException("未查询到供应商信息"); + throw new ServiceException("未查询到供应商信息"); } medicalPurchase3504Param.setMedListCodg(deviceDefinition.getYbNo()) .setFixmedinsBchno(inventoryItem.getLotNumber()).setFixmedinsHilistId(deviceDefinition.getBusNo()) @@ -1743,41 +1744,41 @@ public class YbParamBuilderUtil { .setPurcRetnCnt(supplyDelivery.getQuantity()).setPurcRetnStoinTime(supplyDelivery.getOccurrenceTime()) .setPurcRetnOpterName(practitioner.getName()).setPurcInvoNo(supplyRequest.getInvoiceNo()); } else { - throw new ServiceException("未查询到信息"); + throw new ServiceException("未查询到信息"); } return medicalPurchase3504Param; } /** - * 【3505】商品销售 + * 【3505】商品销售 * - * @param id 发放id - * @param ListType 耗材/药品 - * @param tenantId 租户id + * @param id 发放id + * @param ListType 耗材/药品 + * @param tenantId 租户id * @return */ public Medical3505Param getMedical3505Param(Long id, String ListType, Integer tenantId) { Medical3505Param medical3505Param = new Medical3505Param(); - // 销售商品的种类 + // 销售商品的种类 YbListType type = YbListType.getByValue(ListType); if (type == YbListType.MEDICAL_CONSUMABLES) { - // 耗材的相关处理 + // 耗材的相关处理 DeviceDispense deviceDispense = iDeviceDispenseService.getById(id); if (deviceDispense == null) { - throw new ServiceException("未查询到耗材信息"); + throw new ServiceException("未查询到耗材信息"); } if (!deviceDispense.getStatusEnum().equals(DispenseStatus.COMPLETED.getValue())) { - throw new ServiceException("耗材未发放"); + throw new ServiceException("耗材未发放"); } DeviceRequest deviceRequest = iDeviceRequestService.getById(deviceDispense.getDeviceReqId()); if (deviceRequest == null) { - throw new ServiceException("未查询到耗材请求信息"); + throw new ServiceException("未查询到耗材请求信息"); } DeviceDefinition deviceDefinition = iDeviceDefinitionService.getById(deviceDispense.getDeviceDefId()); if (deviceDefinition == null) { - throw new ServiceException("未查询到耗材信息"); + throw new ServiceException("未查询到耗材信息"); } - // 查询库存信息 + // 查询库存信息 InventoryItem inventoryItem = inventoryItemService.getOne( new LambdaQueryWrapper().eq(InventoryItem::getLotNumber, deviceDispense.getLotNumber()) .eq(InventoryItem::getLocationId, deviceDispense.getLocationId()) @@ -1785,9 +1786,9 @@ public class YbParamBuilderUtil { .eq(InventoryItem::getItemId, deviceDispense.getDeviceDefId()) .eq(InventoryItem::getTenantId, tenantId)); if (inventoryItem == null) { - throw new ServiceException("未查询到库存信息"); + throw new ServiceException("未查询到库存信息"); } - // 查询供应申请单 2025/04/18经在微信群中确认,仅能通过locid,lotnumber,定义id定位库存记录,无法继续准确追到供应请求 + // 查询供应申请单 2025/04/18经在微信群中确认,仅能通过locid,lotnumber,定义id定位库存记录,无法继续准确追到供应请求 // SupplyRequest supplyRequest = iSupplyRequestService.getOne( // new LambdaQueryWrapper().eq(SupplyRequest::getLotNumber, deviceDispense.getLotNumber()) // .eq(SupplyRequest::getPurposeLocationId, deviceDispense.getLocationId()) @@ -1797,23 +1798,23 @@ public class YbParamBuilderUtil { // if (supplyRequest == null) { // return null; // } - // 查询开方医生姓名 + // 查询开方医生姓名 Practitioner practitioner = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, deviceRequest.getRequesterId()).eq(Practitioner::getTenantId, tenantId)); - // 查询当前登录用户的姓名(药师) + // 查询当前登录用户的姓名(药师) Practitioner medDoctor = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, SecurityUtils.getUserId()).eq(Practitioner::getTenantId, tenantId)); - // 查询发药人 + // 查询发药人 Practitioner performer = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, deviceDispense.getPerformerId()).eq(Practitioner::getTenantId, tenantId)); - // 查询费用结算信息 + // 查询费用结算信息 ChargeItem chargeItem = iChargeItemService.getOne(new LambdaQueryWrapper() .eq(ChargeItem::getServiceTable, CommonConstants.TableName.WOR_DEVICE_REQUEST) .eq(ChargeItem::getServiceId, deviceRequest.getId()).eq(ChargeItem::getTenantId, tenantId)); if (chargeItem == null) { - throw new ServiceException("未查询到收费项信息"); + throw new ServiceException("未查询到收费项信息"); } - // 查询付款信息 + // 查询付款信息 PaymentReconciliation paymentReconciliation = iPaymentReconciliationService.getOne(new LambdaQueryWrapper() .eq(PaymentReconciliation::getEncounterId, chargeItem.getEncounterId()) @@ -1823,31 +1824,31 @@ public class YbParamBuilderUtil { .eq(PaymentReconciliation::getPatientId, chargeItem.getPatientId()) .eq(PaymentReconciliation::getPaymentEnum, PaymentType.PAY.getValue())); if (paymentReconciliation == null) { - throw new ServiceException("未查询到付款信息"); + throw new ServiceException("未查询到付款信息"); } - // 查询合同实体 + // 查询合同实体 Contract contract = iContractService.getOne( new LambdaQueryWrapper().eq(Contract::getBusNo, paymentReconciliation.getContractNo())); if (contract == null) { - throw new ServiceException("未查询到合同信息"); + throw new ServiceException("未查询到合同信息"); } - // 查询就诊信息 + // 查询就诊信息 Encounter encounter = iEncounterService.getById(deviceDispense.getEncounterId()); if (encounter == null) { - throw new ServiceException("未查询到就诊信息"); + throw new ServiceException("未查询到就诊信息"); } - // 查询账户信息 + // 查询账户信息 Account account = accountService .getOne(new LambdaQueryWrapper().eq(Account::getEncounterId, chargeItem.getEncounterId()) .eq(Account::getTenantId, tenantId).eq(Account::getEncounterFlag, Whether.YES.getValue())); if (account == null) { - throw new ServiceException("未查询到账户信息"); + throw new ServiceException("未查询到账户信息"); } YbMdtrtCertType mdtrtCertType = YbMdtrtCertType.getByValue(account.getTypeCode()); if (mdtrtCertType == null) { - throw new ServiceException("未查询到就诊凭证类型"); + throw new ServiceException("未查询到就诊凭证类型"); } - // 查询就诊id + // 查询就诊id if (contract.getCategoryEnum().equals(Category.SELF.getValue()) || contract.getCategoryEnum().equals(Category.PUBLIC.getValue())) { medical3505Param.setMdtrtSn(encounter.getBusNo()); @@ -1859,17 +1860,17 @@ public class YbParamBuilderUtil { medical3505Param.setMdtrtSn(one.getMdtrtId()); } } - // 判断拆零标志 + // 判断拆零标志 Whether flag; if (deviceDefinition.getSalesUnitCode().equals(deviceDispense.getUnitCode())) { flag = Whether.NO; } else { flag = Whether.YES; } - // 查询发票信息 + // 查询发票信息 Invoice invoice = iInvoiceService.getById(paymentReconciliation.getInvoiceId()); if (invoice == null) { - throw new ServiceException("未查询到发票信息"); + throw new ServiceException("未查询到发票信息"); } medical3505Param.setMedListCodg(deviceDefinition.getYbNo()).setFixmedinsBchno(inventoryItem.getLotNumber()) .setFixmedinsHilistId(deviceDefinition.getBusNo()) @@ -1882,7 +1883,7 @@ public class YbParamBuilderUtil { .setSelRetnOpterName(performer.getName()).setRxFlag(deviceDefinition.getRxFlag().toString()) .setExpyEnd(inventoryItem.getExpirationDate()); - // 溯源码 + // 溯源码 SupplyDelivery supplyDelivery = iSupplyDeliveryService.getOne( new LambdaQueryWrapper().eq(SupplyDelivery::getLotNumber, deviceDispense.getLotNumber()) .eq(SupplyDelivery::getItemTable, CommonConstants.TableName.ADM_DEVICE_DEFINITION) @@ -1890,29 +1891,29 @@ public class YbParamBuilderUtil { if (supplyDelivery != null) { Map map = new HashMap<>(); map.put("drug_trac_codg", supplyDelivery.getTraceNo()); - // medical3505Param.setDrugtracinfo(JSON.toJSONString(map)); + // medical3505Param.setDrugtracinfo(JsonUtils.toJson(map)); } } else if (type != YbListType.MEDICAL_SERVICE_ITEM) { - // 药品的相关处理 + // 药品的相关处理 MedicationDispense medicationDispense = iMedicationDispenseService.getById(id); if (medicationDispense == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } if (medicationDispense.getStatusEnum() != DispenseStatus.COMPLETED.getValue()) { - throw new ServiceException("未发药"); + throw new ServiceException("未发药"); } MedicationRequest medicationRequest = iMedicationRequestService.getById(medicationDispense.getMedReqId()); if (medicationRequest == null) { - throw new ServiceException("未查询到药品请求信息"); + throw new ServiceException("未查询到药品请求信息"); } MedicationDefinition medicationDefinition = iMedicationDefinitionService.getById(medicationDispense.getMedicationId()); if (medicationDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } - // 查询库存信息 + // 查询库存信息 InventoryItem inventoryItem = inventoryItemService.getOne(new LambdaQueryWrapper() .eq(InventoryItem::getLotNumber, medicationDispense.getLotNumber()) .eq(InventoryItem::getLocationId, medicationDispense.getLocationId()) @@ -1920,9 +1921,9 @@ public class YbParamBuilderUtil { .eq(InventoryItem::getItemId, medicationDispense.getMedicationId()) .eq(InventoryItem::getTenantId, tenantId)); if (inventoryItem == null) { - throw new ServiceException("未查询到库存信息"); + throw new ServiceException("未查询到库存信息"); } - // 查询供应申请单 2025/04/18经在微信群中确认,仅能通过locid,lotnumber,定义id定位库存记录,无法继续准确追到供应请求 + // 查询供应申请单 2025/04/18经在微信群中确认,仅能通过locid,lotnumber,定义id定位库存记录,无法继续准确追到供应请求 // SupplyRequest supplyRequest = iSupplyRequestService.getOne(new LambdaQueryWrapper() // .eq(SupplyRequest::getLotNumber, medicationDispense.getLotNumber()) // .eq(SupplyRequest::getPurposeLocationId, medicationDispense.getLocationId()) @@ -1932,25 +1933,25 @@ public class YbParamBuilderUtil { // if (supplyRequest == null) { // return null; // } - // 查询开方医生姓名 + // 查询开方医生姓名 Practitioner practitioner = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, medicationRequest.getPractitionerId()) .eq(Practitioner::getTenantId, tenantId)); - // 查询当前登录用户的姓名(药师) + // 查询当前登录用户的姓名(药师) Practitioner medDoctor = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, SecurityUtils.getUserId()).eq(Practitioner::getTenantId, tenantId)); - // 查询发药人 + // 查询发药人 Practitioner performer = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, medicationDispense.getPractitionerId()) .eq(Practitioner::getTenantId, tenantId)); - // 查询费用结算信息 + // 查询费用结算信息 ChargeItem chargeItem = iChargeItemService.getOne(new LambdaQueryWrapper() .eq(ChargeItem::getServiceTable, CommonConstants.TableName.MED_MEDICATION_REQUEST) .eq(ChargeItem::getServiceId, medicationRequest.getId()).eq(ChargeItem::getTenantId, tenantId)); if (chargeItem == null) { - throw new ServiceException("未查询到收费信息"); + throw new ServiceException("未查询到收费信息"); } - // 查询付款信息 + // 查询付款信息 PaymentReconciliation paymentReconciliation = iPaymentReconciliationService.getOne(new LambdaQueryWrapper() .eq(PaymentReconciliation::getEncounterId, chargeItem.getEncounterId()) @@ -1960,31 +1961,31 @@ public class YbParamBuilderUtil { .eq(PaymentReconciliation::getPatientId, chargeItem.getPatientId()) .eq(PaymentReconciliation::getPaymentEnum, PaymentType.PAY.getValue())); if (paymentReconciliation == null) { - throw new ServiceException("未查询到收费信息"); + throw new ServiceException("未查询到收费信息"); } - // 查询合同实体 + // 查询合同实体 Contract contract = iContractService.getOne( new LambdaQueryWrapper().eq(Contract::getBusNo, paymentReconciliation.getContractNo())); if (contract == null) { - throw new ServiceException("未查询到合同信息"); + throw new ServiceException("未查询到合同信息"); } - // 查询就诊信息 + // 查询就诊信息 Encounter encounter = iEncounterService.getById(medicationDispense.getEncounterId()); if (encounter == null) { - throw new ServiceException("未查询到就诊信息"); + throw new ServiceException("未查询到就诊信息"); } - // 查询账户信息 + // 查询账户信息 Account account = accountService .getOne(new LambdaQueryWrapper().eq(Account::getEncounterId, chargeItem.getEncounterId()) .eq(Account::getTenantId, tenantId).eq(Account::getEncounterFlag, Whether.YES.getValue())); if (account == null) { - throw new ServiceException("未查询到账号信息"); + throw new ServiceException("未查询到账号信息"); } YbMdtrtCertType mdtrtCertType = YbMdtrtCertType.getByValue(account.getTypeCode()); if (mdtrtCertType == null) { - throw new ServiceException("未查询到就诊凭证信息"); + throw new ServiceException("未查询到就诊凭证信息"); } - // 查询就诊id + // 查询就诊id if (contract.getCategoryEnum().equals(Category.SELF.getValue()) || contract.getCategoryEnum().equals(Category.PUBLIC.getValue())) { medical3505Param.setMdtrtSn(encounter.getBusNo()); @@ -1996,19 +1997,19 @@ public class YbParamBuilderUtil { medical3505Param.setMdtrtSn(one.getMdtrtId()); } } - // 判断拆零标志 + // 判断拆零标志 Whether flag; if (medicationDefinition.getDefEncounterUnitCode().equals(medicationDispense.getUnitCode())) { flag = Whether.NO; } else { flag = Whether.YES; } - // 查询发票信息 + // 查询发票信息 Invoice invoice = iInvoiceService.getById(paymentReconciliation.getInvoiceId()); if (invoice == null) { - throw new ServiceException("未查询到发票信息"); + throw new ServiceException("未查询到发票信息"); } - // todo:sjq 商品销售的数量是根据是否拆零计算出来的数量吗? + // todo:sjq 商品销售的数量是根据是否拆零计算出来的数量吗? medical3505Param.setMedListCodg(medicationDefinition.getYbNo()) .setFixmedinsBchno(inventoryItem.getLotNumber()).setFixmedinsHilistId(medicationDefinition.getBusNo()) .setFixmedinsHilistName(CommonConstants.TableName.ADM_DEVICE_DEFINITION) @@ -2020,7 +2021,7 @@ public class YbParamBuilderUtil { .setSelRetnTime(medicationDispense.getDispenseTime()).setSelRetnOpterName(performer.getName()) .setRxFlag(medicationDefinition.getRxFlag().toString()).setExpyEnd(inventoryItem.getExpirationDate()); - // 溯源码 + // 溯源码 SupplyDelivery supplyDelivery = iSupplyDeliveryService.getOne(new LambdaQueryWrapper() .eq(SupplyDelivery::getLotNumber, medicationDispense.getLotNumber()) .eq(SupplyDelivery::getItemTable, CommonConstants.TableName.MED_MEDICATION_DEFINITION) @@ -2028,42 +2029,42 @@ public class YbParamBuilderUtil { if (supplyDelivery != null) { Map map = new HashMap<>(); map.put("drug_trac_codg", supplyDelivery.getTraceNo()); - // medical3505Param.setDrugtracinfo(JSON.toJSONString(map)); + // medical3505Param.setDrugtracinfo(JsonUtils.toJson(map)); } } return medical3505Param; } /** - * 【3506】商品销售退货 + * 【3506】商品销售退货 * - * @param id 对应发放业务的主键id - * @param ListType 目录种类 - * @param tenantId 租户id - * @return 3506参数 + * @param id 对应发放业务的主键id + * @param ListType 目录种类 + * @param tenantId 租户id + * @return 3506参数 */ public Medical3506Param getMedical3506Param(Long id, String ListType, Integer tenantId) { Medical3506Param medical3506Param = new Medical3506Param(); - // 销售商品的种类 + // 销售商品的种类 YbListType type = YbListType.getByValue(ListType); if (type == YbListType.MEDICAL_CONSUMABLES) { - // 耗材的相关处理 + // 耗材的相关处理 DeviceDispense deviceDispense = iDeviceDispenseService.getById(id); if (deviceDispense == null) { - throw new ServiceException("未查询到耗材信息"); + throw new ServiceException("未查询到耗材信息"); } if (deviceDispense.getStatusEnum() != DispenseStatus.REFUNDED.getValue()) { - throw new ServiceException("未退耗材"); + throw new ServiceException("未退耗材"); } DeviceRequest deviceRequest = iDeviceRequestService.getById(deviceDispense.getDeviceReqId()); if (deviceRequest == null) { - throw new ServiceException("未查询到耗材请求信息"); + throw new ServiceException("未查询到耗材请求信息"); } DeviceDefinition deviceDefinition = iDeviceDefinitionService.getById(deviceDispense.getDeviceDefId()); if (deviceDefinition == null) { - throw new ServiceException("未查询到耗材信息"); + throw new ServiceException("未查询到耗材信息"); } - // 查询库存信息 + // 查询库存信息 InventoryItem inventoryItem = inventoryItemService.getOne( new LambdaQueryWrapper().eq(InventoryItem::getLotNumber, deviceDispense.getLotNumber()) .eq(InventoryItem::getLocationId, deviceDispense.getLocationId()) @@ -2071,9 +2072,9 @@ public class YbParamBuilderUtil { .eq(InventoryItem::getItemId, deviceDispense.getDeviceDefId()) .eq(InventoryItem::getTenantId, tenantId)); if (inventoryItem == null) { - throw new ServiceException("未查询到库存信息"); + throw new ServiceException("未查询到库存信息"); } - // 查询供应申请单 2025/04/18经在微信群中确认,仅能通过locid,lotnumber,定义id定位库存记录,无法继续准确追到供应请求 + // 查询供应申请单 2025/04/18经在微信群中确认,仅能通过locid,lotnumber,定义id定位库存记录,无法继续准确追到供应请求 SupplyRequest supplyRequest = iSupplyRequestService.getOne( new LambdaQueryWrapper().eq(SupplyRequest::getLotNumber, deviceDispense.getLotNumber()) .eq(SupplyRequest::getPurposeLocationId, deviceDispense.getLocationId()) @@ -2081,25 +2082,25 @@ public class YbParamBuilderUtil { .eq(SupplyRequest::getItemId, deviceDispense.getDeviceDefId()) .eq(SupplyRequest::getTenantId, tenantId)); if (supplyRequest == null) { - throw new ServiceException("未查询到供应信息"); + throw new ServiceException("未查询到供应信息"); } - // 查询开方医生姓名 + // 查询开方医生姓名 Practitioner practitioner = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, deviceRequest.getRequesterId()).eq(Practitioner::getTenantId, tenantId)); - // 查询当前登录用户的姓名(药师) + // 查询当前登录用户的姓名(药师) Practitioner medDoctor = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, SecurityUtils.getUserId()).eq(Practitioner::getTenantId, tenantId)); - // 查询发药人 + // 查询发药人 Practitioner performer = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, deviceDispense.getPerformerId()).eq(Practitioner::getTenantId, tenantId)); - // 查询费用结算信息 + // 查询费用结算信息 ChargeItem chargeItem = iChargeItemService.getOne(new LambdaQueryWrapper() .eq(ChargeItem::getServiceTable, CommonConstants.TableName.WOR_DEVICE_REQUEST) .eq(ChargeItem::getServiceId, deviceRequest.getId()).eq(ChargeItem::getTenantId, tenantId)); if (chargeItem == null) { - throw new ServiceException("未查询到收费信息"); + throw new ServiceException("未查询到收费信息"); } - // 查询付款信息 + // 查询付款信息 PaymentReconciliation paymentReconciliation = iPaymentReconciliationService.getOne(new LambdaQueryWrapper() .eq(PaymentReconciliation::getEncounterId, chargeItem.getEncounterId()) @@ -2109,30 +2110,30 @@ public class YbParamBuilderUtil { .eq(PaymentReconciliation::getPatientId, chargeItem.getPatientId()) .eq(PaymentReconciliation::getPaymentEnum, PaymentType.PAY.getValue())); if (paymentReconciliation == null) { - throw new ServiceException("未查询到付款信息"); + throw new ServiceException("未查询到付款信息"); } - // 查询合同实体 + // 查询合同实体 Contract contract = iContractService.getOne( new LambdaQueryWrapper().eq(Contract::getBusNo, paymentReconciliation.getContractNo())); if (contract == null) { - throw new ServiceException("未查询到合同信息"); + throw new ServiceException("未查询到合同信息"); } - // 查询就诊信息 + // 查询就诊信息 Encounter encounter = iEncounterService.getById(deviceDispense.getEncounterId()); if (encounter == null) { - throw new ServiceException("未查询到就诊信息"); + throw new ServiceException("未查询到就诊信息"); } - // 查询账户信息 + // 查询账户信息 Account account = accountService.getOne(new LambdaQueryWrapper() .eq(Account::getEncounterId, chargeItem.getEncounterId()).eq(Account::getTenantId, tenantId)); if (account == null) { - throw new ServiceException("未查询到账户信息"); + throw new ServiceException("未查询到账户信息"); } YbMdtrtCertType mdtrtCertType = YbMdtrtCertType.getByValue(account.getTypeCode()); if (mdtrtCertType == null) { - throw new ServiceException("未查询到就诊凭证信息"); + throw new ServiceException("未查询到就诊凭证信息"); } - // 查询就诊id + // 查询就诊id if (contract.getCategoryEnum().equals(Category.SELF.getValue()) || contract.getCategoryEnum().equals(Category.PUBLIC.getValue())) { medical3506Param.setMdtrtSn(encounter.getBusNo()); @@ -2144,17 +2145,17 @@ public class YbParamBuilderUtil { medical3506Param.setMdtrtSn(one.getMdtrtId()); } } - // 判断拆零标志 + // 判断拆零标志 Whether flag; if (deviceDefinition.getSalesUnitCode().equals(deviceDispense.getUnitCode())) { flag = Whether.NO; } else { flag = Whether.YES; } - // 查询发票信息 + // 查询发票信息 Invoice invoice = iInvoiceService.getById(paymentReconciliation.getInvoiceId()); if (invoice == null) { - throw new ServiceException("未查询到发票信息"); + throw new ServiceException("未查询到发票信息"); } medical3506Param.setMedListCodg(deviceDefinition.getYbNo()).setTrdnFlag(flag.getCode()) .setFixmedinsBchno(inventoryItem.getLotNumber()).setFixmedinsHilistId(deviceDefinition.getBusNo()) @@ -2166,25 +2167,25 @@ public class YbParamBuilderUtil { .setRxFlag(deviceDefinition.getRxFlag().toString()).setExpyEnd(inventoryItem.getExpirationDate()); } else if (type != YbListType.MEDICAL_SERVICE_ITEM) { - // 药品的相关处理 + // 药品的相关处理 MedicationDispense medicationDispense = iMedicationDispenseService.getById(id); if (medicationDispense == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } if (medicationDispense.getStatusEnum() != DispenseStatus.REFUNDED.getValue()) { - throw new ServiceException("未退药"); + throw new ServiceException("未退药"); } MedicationRequest medicationRequest = iMedicationRequestService.getById(medicationDispense.getMedReqId()); if (medicationRequest == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } MedicationDefinition medicationDefinition = iMedicationDefinitionService.getById(medicationDispense.getMedicationId()); if (medicationDefinition == null) { - throw new ServiceException("未查询到药品信息"); + throw new ServiceException("未查询到药品信息"); } - // 查询库存信息 + // 查询库存信息 InventoryItem inventoryItem = inventoryItemService.getOne(new LambdaQueryWrapper() .eq(InventoryItem::getLotNumber, medicationDispense.getLotNumber()) .eq(InventoryItem::getLocationId, medicationDispense.getLocationId()) @@ -2192,9 +2193,9 @@ public class YbParamBuilderUtil { .eq(InventoryItem::getItemId, medicationDispense.getMedicationId()) .eq(InventoryItem::getTenantId, tenantId)); if (inventoryItem == null) { - throw new ServiceException("未查询到库存信息"); + throw new ServiceException("未查询到库存信息"); } - // 查询供应申请单 2025/04/18经在微信群中确认,仅能通过locid,lotnumber,定义id定位库存记录,无法继续准确追到供应请求 + // 查询供应申请单 2025/04/18经在微信群中确认,仅能通过locid,lotnumber,定义id定位库存记录,无法继续准确追到供应请求 SupplyRequest supplyRequest = iSupplyRequestService.getOne(new LambdaQueryWrapper() .eq(SupplyRequest::getLotNumber, medicationDispense.getLotNumber()) .eq(SupplyRequest::getPurposeLocationId, medicationDispense.getLocationId()) @@ -2202,27 +2203,27 @@ public class YbParamBuilderUtil { .eq(SupplyRequest::getItemId, medicationDispense.getMedicationId()) .eq(SupplyRequest::getTenantId, tenantId)); if (supplyRequest == null) { - throw new ServiceException("未查询到供应信息"); + throw new ServiceException("未查询到供应信息"); } - // 查询开方医生姓名 + // 查询开方医生姓名 Practitioner practitioner = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, medicationRequest.getPractitionerId()) .eq(Practitioner::getTenantId, tenantId)); - // 查询当前登录用户的姓名(药师) + // 查询当前登录用户的姓名(药师) Practitioner medDoctor = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, SecurityUtils.getUserId()).eq(Practitioner::getTenantId, tenantId)); - // 查询发药人 + // 查询发药人 Practitioner performer = iPractitionerService.getOne(new LambdaQueryWrapper() .eq(Practitioner::getUserId, medicationDispense.getPractitionerId()) .eq(Practitioner::getTenantId, tenantId)); - // 查询费用结算信息 + // 查询费用结算信息 ChargeItem chargeItem = iChargeItemService.getOne(new LambdaQueryWrapper() .eq(ChargeItem::getServiceTable, CommonConstants.TableName.MED_MEDICATION_REQUEST) .eq(ChargeItem::getServiceId, medicationRequest.getId()).eq(ChargeItem::getTenantId, tenantId)); if (chargeItem == null) { - throw new ServiceException("未查询到收费信息"); + throw new ServiceException("未查询到收费信息"); } - // 查询付款信息 + // 查询付款信息 PaymentReconciliation paymentReconciliation = iPaymentReconciliationService.getOne(new LambdaQueryWrapper() .eq(PaymentReconciliation::getEncounterId, chargeItem.getEncounterId()) @@ -2232,31 +2233,31 @@ public class YbParamBuilderUtil { .eq(PaymentReconciliation::getPatientId, chargeItem.getPatientId()) .eq(PaymentReconciliation::getPaymentEnum, PaymentType.PAY.getValue())); if (paymentReconciliation == null) { - throw new ServiceException("未查询到付款信息"); + throw new ServiceException("未查询到付款信息"); } - // 查询合同实体 + // 查询合同实体 Contract contract = iContractService.getOne( new LambdaQueryWrapper().eq(Contract::getBusNo, paymentReconciliation.getContractNo())); if (contract == null) { - throw new ServiceException("未查询到合同信息"); + throw new ServiceException("未查询到合同信息"); } - // 查询就诊信息 + // 查询就诊信息 Encounter encounter = iEncounterService.getById(medicationDispense.getEncounterId()); if (encounter == null) { - throw new ServiceException("未查询到就诊信息"); + throw new ServiceException("未查询到就诊信息"); } - // 查询账户信息 + // 查询账户信息 Account account = accountService .getOne(new LambdaQueryWrapper().eq(Account::getEncounterId, chargeItem.getEncounterId()) .eq(Account::getTenantId, tenantId).eq(Account::getEncounterFlag, Whether.YES.getValue())); if (account == null) { - throw new ServiceException("未查询到账户信息"); + throw new ServiceException("未查询到账户信息"); } YbMdtrtCertType mdtrtCertType = YbMdtrtCertType.getByValue(account.getTypeCode()); if (mdtrtCertType == null) { - throw new ServiceException("未查询到就诊凭证信息"); + throw new ServiceException("未查询到就诊凭证信息"); } - // 查询就诊id + // 查询就诊id if (contract.getCategoryEnum().equals(Category.SELF.getValue()) || contract.getCategoryEnum().equals(Category.PUBLIC.getValue())) { medical3506Param.setMdtrtSn(encounter.getBusNo()); @@ -2268,19 +2269,19 @@ public class YbParamBuilderUtil { medical3506Param.setMdtrtSn(one.getMdtrtId()); } } - // 判断拆零标志 + // 判断拆零标志 Whether flag; if (medicationDefinition.getDefEncounterUnitCode().equals(medicationDispense.getUnitCode())) { flag = Whether.NO; } else { flag = Whether.YES; } - // 查询发票信息 + // 查询发票信息 Invoice invoice = iInvoiceService.getById(paymentReconciliation.getInvoiceId()); if (invoice == null) { - throw new ServiceException("未查询到发票信息"); + throw new ServiceException("未查询到发票信息"); } - // todo:sjq 商品销售的数量是根据是否拆零计算出来的数量吗? + // todo:sjq 商品销售的数量是根据是否拆零计算出来的数量吗? medical3506Param.setMedListCodg(medicationDefinition.getYbNo()) .setFixmedinsBchno(inventoryItem.getLotNumber()).setFixmedinsHilistId(medicationDefinition.getBusNo()) .setFixmedinsHilistName(CommonConstants.TableName.ADM_DEVICE_DEFINITION) @@ -2294,20 +2295,20 @@ public class YbParamBuilderUtil { } /** - * 【3507】商品信息删除参数 + * 【3507】商品信息删除参数 * - * @param id 库存项目id - * @param invDataType 进销存类型 - * @return 3507参数 + * @param id 库存项目id + * @param invDataType 进销存类型 + * @return 3507参数 */ public Medical3507Param getMedical3507Param(Long id, String invDataType) { InventoryItem inventoryItem = inventoryItemService.getById(id); if (inventoryItem == null) { - throw new ServiceException("未查询到库存信息"); + throw new ServiceException("未查询到库存信息"); } YbInvDataType dataType = YbInvDataType.getByValue(invDataType); if (dataType == null) { - throw new ServiceException("未查询进销存类型"); + throw new ServiceException("未查询进销存类型"); } Medical3507Param medical3507Param = new Medical3507Param(); medical3507Param.setFixmedinsBchno(inventoryItem.getLotNumber()).setInvDataType(dataType.getValue()); @@ -2315,10 +2316,10 @@ public class YbParamBuilderUtil { } /** - * 【9001】签到 + * 【9001】签到 * - * @param id 员工id - * @return 9001参数 + * @param id 员工id + * @return 9001参数 */ public Sign getSignParam(Long id, String mac) { Practitioner practitioner = iPractitionerService.getPractitionerByUserId(id); @@ -2332,10 +2333,10 @@ public class YbParamBuilderUtil { } /** - * 【3209A】查询跨省三方对账未成功数据(吉林省) + * 【3209A】查询跨省三方对账未成功数据(吉林省) * - * @param settlement3209AWebParam 前台参数 - * @return 3209A参数 + * @param settlement3209AWebParam 前台参数 + * @return 3209A参数 */ public FinancialSettlement3209AParam getFinancialSettlement3209AParam(Settlement3209AWebParam settlement3209AWebParam) { @@ -2345,10 +2346,10 @@ public class YbParamBuilderUtil { } /** - * 【13203】医药机构费用结算日对账结果查询 + * 【13203】医药机构费用结算日对账结果查询 * - * @param financial13203WebParam 13203 前台参数 - * @return 13203参数 + * @param financial13203WebParam 13203 前台参数 + * @return 13203参数 */ public Financial13203Param getFinancial13203Param(Financial13203WebParam financial13203WebParam) { Financial13203Param financial13203Param = new Financial13203Param(); @@ -2357,11 +2358,11 @@ public class YbParamBuilderUtil { } /** - * 基础信息获取 + * 基础信息获取 * - * @return 基础信息 + * @return 基础信息 */ - public BaseInfo getBaseInfo(JSONObject jsonObj, Contract contract) { + public BaseInfo getBaseInfo(JsonNode jsonObj, Contract contract) { LoginUser loginUser = SecurityUtils.getLoginUser(); Long hospitalId = loginUser.getHospitalId(); // Organization hospital = iOrganizationService.getById(hospitalId); @@ -2372,7 +2373,7 @@ public class YbParamBuilderUtil { if (jsonObj != null && jsonObj.get("filePath") != null) { baseInfo.setFilePath(String.valueOf(jsonObj.get("filePath"))); } - // 异地患者问题 + // 异地患者问题 // if (contract.getBusNo() != null) { // baseInfo.setInsuplcAdmdvs(contract.getBusNo()); // } @@ -2381,8 +2382,8 @@ public class YbParamBuilderUtil { } else { baseInfo.setDecryptFlag("1"); } - // 电子处方 - // JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); + // 电子处方 + // var optionJson = SecurityUtils.getLoginUser().getOptionJson(); if (contract == null) { List redisContractList = iContractService.getContractListByYb(); @@ -2390,7 +2391,7 @@ public class YbParamBuilderUtil { if (max.isPresent()) { contract = max.get(); } else { - throw new ServiceException("没有对合同进行优先级排序"); + throw new ServiceException("没有对合同进行优先级排序"); } } @@ -2403,33 +2404,33 @@ public class YbParamBuilderUtil { } public BaseInfo getBaseInfo(String medType, String dutyDoctorName) { - // 随机获取一个合同 + // 随机获取一个合同 List contractListByYb = iContractService.getContractListByYb(); if (contractListByYb.isEmpty()) { - throw new ServiceException("无医保配置信息"); + throw new ServiceException("无医保配置信息"); } Contract contract = contractListByYb.get(0); LoginUser loginUser = SecurityUtils.getLoginUser(); Long hospitalId = loginUser.getHospitalId(); Organization hospital = iOrganizationService.getById(hospitalId); BaseInfo baseInfo = new BaseInfo(); - // 电子处方 - JSONObject optionJson = SecurityUtils.getLoginUser().getOptionJson(); - String prePrvKey = optionJson.getString(CommonConstants.Option.APP_PRVKEY); + // 电子处方 + var optionJson = SecurityUtils.getLoginUser().getOptionJson(); + String prePrvKey = optionJson.path(CommonConstants.Option.APP_PRVKEY).asText(); String prePubKey = contract.getCliPubKey(); String clientId = contract.getClientId(); - String eleAddress = optionJson.getString(CommonConstants.Option.ELE_ADDRESS); + String eleAddress = optionJson.path(CommonConstants.Option.ELE_ADDRESS).asText(); String username = contract.getUsername(); String password = contract.getPassword(); String scope = contract.getScope(); String grantType = contract.getGrantType(); String clientSecret = contract.getClientSecret(); - String time = optionJson.getString(CommonConstants.Option.TIME); - String preAppId = optionJson.getString(CommonConstants.Option.PRE_APP_ID); - String preAppSecret = optionJson.getString(CommonConstants.Option.PRE_APP_SECRET); - String templatePath = optionJson.getString(CommonConstants.Option.TEMPLATE_PATH); - String outputPath = optionJson.getString(CommonConstants.Option.OUTPUT_PATH); - String hospitalSealPath = optionJson.getString(CommonConstants.Option.HOSPITAL_SEAL_PATH); + String time = optionJson.path(CommonConstants.Option.TIME).asText(); + String preAppId = optionJson.path(CommonConstants.Option.PRE_APP_ID).asText(); + String preAppSecret = optionJson.path(CommonConstants.Option.PRE_APP_SECRET).asText(); + String templatePath = optionJson.path(CommonConstants.Option.TEMPLATE_PATH).asText(); + String outputPath = optionJson.path(CommonConstants.Option.OUTPUT_PATH).asText(); + String hospitalSealPath = optionJson.path(CommonConstants.Option.HOSPITAL_SEAL_PATH).asText(); return baseInfo.setUserId(loginUser.getUserId()).setRealname(loginUser.getUsername()) .setAdmvs(contract.getAdmVs()).setFixmedinsCode(contract.getFixmedinsCode()) diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybcatalog/domain/CatalogZySettleUp.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybcatalog/domain/CatalogZySettleUp.java index bd3798168..02feb2c12 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybcatalog/domain/CatalogZySettleUp.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybcatalog/domain/CatalogZySettleUp.java @@ -3,7 +3,7 @@ package com.healthlink.his.ybcatalog.domain; import java.io.Serializable; import java.util.Date; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -25,7 +25,7 @@ public class CatalogZySettleUp extends HisBaseEntity implements Serializable { private static final long serialVersionUID = 1L; @TableId(type = IdType.ASSIGN_ID) - @JSONField(serialize = false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private Long id; /** diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepRevokeInput.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepRevokeInput.java index 8ecbea2ad..b4dae4a68 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepRevokeInput.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepRevokeInput.java @@ -1,6 +1,6 @@ package com.healthlink.his.ybelep.domain; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -26,7 +26,7 @@ import java.util.Date; public class ElepRevokeInput extends HisBaseEntity { /** 医保处方编号 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @TableId(type = IdType.ASSIGN_ID) private Long id; diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepSignatureInput.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepSignatureInput.java index 1796c94ed..12f150d0f 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepSignatureInput.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepSignatureInput.java @@ -1,6 +1,6 @@ package com.healthlink.his.ybelep.domain; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -22,7 +22,7 @@ import lombok.experimental.Accessors; public class ElepSignatureInput extends HisBaseEntity { /** 自增主键 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @TableId(type = IdType.ASSIGN_ID) private Long id; @@ -39,7 +39,7 @@ public class ElepSignatureInput extends HisBaseEntity { private String extras; /** 医保处方编号 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String hiRxno; /** 院内内部处方号 */ diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepSignatureOutput.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepSignatureOutput.java index 9a8c4e912..515b15f03 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepSignatureOutput.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepSignatureOutput.java @@ -1,6 +1,6 @@ package com.healthlink.his.ybelep.domain; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -22,7 +22,7 @@ import lombok.experimental.Accessors; public class ElepSignatureOutput extends HisBaseEntity { /** 自增主键 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @TableId(type = IdType.ASSIGN_ID) private Long id; @@ -39,7 +39,7 @@ public class ElepSignatureOutput extends HisBaseEntity { private String signCertDn; /** 医保处方编号 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String hiRxno; } \ No newline at end of file diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepUploadInput.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepUploadInput.java index 470ccb9f3..5c90aba8d 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepUploadInput.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepUploadInput.java @@ -1,6 +1,6 @@ package com.healthlink.his.ybelep.domain; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -22,7 +22,7 @@ import lombok.experimental.Accessors; public class ElepUploadInput extends HisBaseEntity { /** 自增主键 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @TableId(type = IdType.ASSIGN_ID) private Long id; diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriDiagnosisInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriDiagnosisInfo.java index 609def208..6a9a2839c 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriDiagnosisInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriDiagnosisInfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.ybelep.domain; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -26,7 +26,7 @@ import java.util.Date; public class ElepVeriDiagnosisInfo extends HisBaseEntity { /** 自增主键 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @TableId(type = IdType.ASSIGN_ID) private Long id; @@ -75,10 +75,10 @@ public class ElepVeriDiagnosisInfo extends HisBaseEntity { private String tcmsymp; /** 院内内部处方号 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String prescriptionNo; /** 医保处方编号(电子处方信息查询返回时插入记录) */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String hiRxno; } \ No newline at end of file diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriPrescriptionDetail.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriPrescriptionDetail.java index 18b23439a..c2942fd1a 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriPrescriptionDetail.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriPrescriptionDetail.java @@ -1,6 +1,6 @@ package com.healthlink.his.ybelep.domain; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -26,7 +26,7 @@ import java.util.Date; public class ElepVeriPrescriptionDetail extends HisBaseEntity { /** 自增主键 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @TableId(type = IdType.ASSIGN_ID) private Long id; /** 医疗目录编码(医保药品编码) */ @@ -145,11 +145,11 @@ public class ElepVeriPrescriptionDetail extends HisBaseEntity { private String extras; /** 院内内部处方号 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String prescriptionNo; /** 医保处方编号(电子处方信息查询返回时插入记录) */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String hiRxno; } \ No newline at end of file diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriPrescriptionInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriPrescriptionInfo.java index ddedcb6a1..78b223a1d 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriPrescriptionInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriPrescriptionInfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.ybelep.domain; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -25,7 +25,7 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class ElepVeriPrescriptionInfo extends HisBaseEntity { /** 自增主键 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @TableId(type = IdType.ASSIGN_ID) private Long id; @@ -118,7 +118,7 @@ public class ElepVeriPrescriptionInfo extends HisBaseEntity { private String longRxFlag; /** 医保处方编号(电子处方信息查询返回时插入记录) */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String hiRxno; } \ No newline at end of file diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriVisitInfo.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriVisitInfo.java index 41d281b16..2581bb855 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriVisitInfo.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriVisitInfo.java @@ -1,6 +1,6 @@ package com.healthlink.his.ybelep.domain; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -25,7 +25,7 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class ElepVeriVisitInfo extends HisBaseEntity { /** 自增主键 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) @TableId(type = IdType.ASSIGN_ID) private Long id; @@ -170,11 +170,11 @@ public class ElepVeriVisitInfo extends HisBaseEntity { private String extras; /** 院内内部处方号 */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String prescriptionNo; /** 医保处方编号(电子处方信息查询返回时插入记录) */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String hiRxno; } \ No newline at end of file diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/PreCheckPrescription.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/PreCheckPrescription.java index 33a5603af..1a4d4cb66 100755 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/PreCheckPrescription.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/PreCheckPrescription.java @@ -1,6 +1,6 @@ package com.healthlink.his.ybelep.domain; -import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -111,7 +111,7 @@ public class PreCheckPrescription { private String longRxFlag; /** 医保处方编号(电子处方信息查询返回时插入记录) */ - @JSONField(serialize=false) + @JsonProperty(access = com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY) private String hiRxno; // 处方明细信息 diff --git a/healthlink-his-server/healthlink-his-miniapp/src/main/resources/META-INF/spring-devtools.properties b/healthlink-his-server/healthlink-his-miniapp/src/main/resources/META-INF/spring-devtools.properties index 37e7b5806..8b1378917 100755 --- a/healthlink-his-server/healthlink-his-miniapp/src/main/resources/META-INF/spring-devtools.properties +++ b/healthlink-his-server/healthlink-his-miniapp/src/main/resources/META-INF/spring-devtools.properties @@ -1 +1 @@ -restart.include.json=/com.alibaba.fastjson2.*.jar \ No newline at end of file + diff --git a/healthlink-his-server/pom.xml b/healthlink-his-server/pom.xml index 109a78adc..338ef0f21 100755 --- a/healthlink-his-server/pom.xml +++ b/healthlink-his-server/pom.xml @@ -43,7 +43,6 @@ 42.7.10 5.3.3 5.6.1 - 2.0.62 2.5.1 2.12.4.1 5.8.36 @@ -122,12 +121,6 @@ pinyin4j ${pinyin4j.version}
- - - com.alibaba.fastjson2 - fastjson2 - ${fastjson2.version} - com.googlecode.aviator From 20af7351a0c39f0daad1914031eb8eb3bf241066 Mon Sep 17 00:00:00 2001 From: chenqi Date: Wed, 10 Jun 2026 17:01:52 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix(login):=20=E4=BF=AE=E5=A4=8D=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=94=A8=E6=88=B7=E9=80=89=E9=A1=B9=E5=80=BC=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 替换LoginUser中的getOptionJson().path()调用为新的getOptionJsonValue()方法 - 为LoginUser类添加安全的选项JSON值访问方法getOptionJsonValue() - 修复LoginUser类中乱码注释并优化代码结构 - 更新SysLoginService类中乱码注释为中文描述 --- healthlink-his-server/AGENTS.md | 441 ++++++++- .../com/core/web/util/TenantOptionUtil.java | 2 +- .../common/core/domain/model/LoginUser.java | 78 +- .../web/service/SysLoginService.java | 128 ++- .../HealthcareServiceController.java | 4 +- .../impl/OutpatientRefundAppServiceImpl.java | 2 +- .../OutpatientRegistrationAppServiceImpl.java | 4 +- .../impl/DeviceManageAppServiceImpl.java | 4 +- .../impl/DiagTreatMAppServiceImpl.java | 4 +- .../impl/MedicationManageAppServiceImpl.java | 4 +- .../DepartmentReceiptApprovalServiceImpl.java | 8 +- .../impl/ReceiptApprovalAppServiceImpl.java | 12 +- .../MaterialReceiptApprovalServiceImpl.java | 8 +- .../impl/EleInvoiceServiceImpl.java | 22 +- .../impl/IChargeBillServiceImpl.java | 38 +- .../impl/PaymentRecServiceImpl.java | 8 +- ...yDispensaryReceiptApprovalServiceImpl.java | 8 +- ...cyWarehouseReceiptApprovalServiceImpl.java | 8 +- ...nHospitalReturnMedicineAppServiceImpl.java | 6 +- .../MedicalDeviceDispenseAppServiceImpl.java | 6 +- .../impl/ReturnMedicineAppServiceImpl.java | 6 +- ...SummaryDispenseMedicineAppServiceImpl.java | 2 +- ...WesternMedicineDispenseAppServiceImpl.java | 4 +- ...ecordHomePageCollectionAppServiceImpl.java | 9 +- .../appservice/impl/ReportAppServiceImpl.java | 6 +- .../web/ybmanage/controller/YbController.java | 8 +- .../service/impl/YbEleHttpServiceImpl.java | 12 +- .../ybmanage/util/YbEleParamBuilderUtil.java | 12 +- .../PaymentReconciliationServiceImpl.java | 6 +- .../his/yb/service/YbHttpUtils.java | 104 +-- .../his/yb/util/YbParamBuilderUtil.java | 854 +++++++++--------- 31 files changed, 1111 insertions(+), 707 deletions(-) diff --git a/healthlink-his-server/AGENTS.md b/healthlink-his-server/AGENTS.md index 4a13dc4ae..d320b4a8a 100644 --- a/healthlink-his-server/AGENTS.md +++ b/healthlink-his-server/AGENTS.md @@ -1,29 +1,438 @@ -# HealthLink-HIS 后端开发规范 +# HealthLink-HIS — AI 开发规范 -> 🤖 本文件供 AI 工具自动读取。完整规范见 **[../../RULES.md](../../RULES.md)** +> 🤖 本文件供所有 AI 编码工具自动读取。进入本项目后必须遵守以下规范。 +> +> **模型决定上限,Harness 决定底线。** -## 铁律速查 +--- -1. **修改完必须测试** — `mvn clean compile -DskipTests` -2. **Flyway 迁移** — 新建表/字段必须走 Flyway -3. **测试通过才提交** — 编译+测试全通过才能 commit -4. **API路径对齐** — `/healthlink-his/api/v1/` -5. **先分解再行动** — 非平凡任务先出计划 -6. **文档在 MD 目录** — 大写下划线命名 -7. **铁律18: 禁止破坏原有功能** — 完善功能时不能破坏已有功能 +## 一、项目概览 -## 快速命令 +| 属性 | 值 | +|------|------| +| 项目名 | HealthLink-HIS(医院信息系统) | +| 后端路径 | `healthlink-his-server/` | +| 前端路径 | `healthlink-his-ui/` | +| 文档路径 | `MD/` | +| JDK | 25 (OpenJDK) | +| Spring Boot | 4.0.6 | +| MyBatis-Plus | 3.5.16 | +| Vue | 3.x + Vite + Element Plus | +| 数据库 | PostgreSQL 15+ | +| 包名 | `com.healthlink.his` | +| 后端端口 | 18082 | +| 前端端口 | 81 | + +--- + +## 二、铁律(必须遵守,违反即失败) + +### 🔴 P0 铁律 — 不可违反 + +**铁律1: 修改完必须测试** +``` +后端: mvn clean compile -DskipTests → mvn install -DskipTests → mvn test +前端: npm run build:dev → npm run lint +``` +- 白盒:编译通过,无 ERROR +- 黑盒:关键接口返回 `{code:200, data:...}`,验证业务逻辑 +- 冒烟:应用正常启动,核心流程通畅 + +**铁律2: Flyway 数据库迁移** +- 凡是新建表、新增字段,必须创建 Flyway 迁移脚本 +- 路径:`healthlink-his-domain/src/main/resources/db/migration/` +- 命名:`V{版本号}__{描述}.sql`(双下划线) + +**铁律3: 测试通过后才提交** +- 编译 + 测试全部通过后才能 git commit +- 不提交未完成的功能、调试代码、临时文件 + +**铁律4: 前后端API路径对齐** +- 后端前缀:`/healthlink-his/api/v1/` +- 前端 `request.js` 的 baseURL 必须与后端匹配 + +**铁律5: 状态值一致性(Bug #574 教训)** +- 修改任何状态值前,必须先列出完整的状态流转链路 +- 检查项:枚举定义 → Service 设置 → 查询映射 → 前端 STATUS_CLASS_MAP → 前端 v-if → 统计SQL +- 禁止:只改一端不检查其他端 + +**铁律6: 禁止删除源文件(Bug #574 教训)** +- 绝对禁止删除项目中已有的 Java/Vue/SQL 源文件 +- 编译错误 → 修复错误;重复文件 → 重构合并 +- AI 幻觉文件 → 检查 `git ls-tree baseline -- ` 确认后再删除 +- 唯一例外:明确由人类确认删除的文件 + +**铁律7: 禁止修改已有公开方法签名** +- 不能删除/重命名已有的 public 方法,不能修改参数列表 +- 需要新功能 → 添加重载方法;需要改行为 → 修改内部实现 + +**铁律8: 验证后才宣称完成(Verification Before Completion)** +- **没有跑过验证命令,就不能说"完成了""通过了""没问题"** +- 禁止使用"应该可以""大概没问题""看起来正确" +- 必须:运行命令 → 读取输出 → 确认结果 → 才能宣称 +- 这是诚实原则,不是效率问题 + +**铁律9: 开发前必须审核原有代码(P0 — 铁律)** +- **任何新功能开发前,必须先搜索项目中是否已有相关代码** +- 搜索路径:Controller / AppService / Service / Mapper / Entity / 前端页面 / API接口 +- 如果已有部分功能 → 在原有代码基础上**升级优化完善**,禁止另起炉灶 +- 如果已有接口但前端缺失 → 只补前端,不重复建后端 +- 如果已有前端但后端缺失 → 只补后端,不重写前端 +- 搜索命令:`rg -l "关键词" healthlink-his-server/ healthlink-his-ui/src/` +- 禁止:不看代码就新建模块、重复实现已有功能、废弃原有代码另写一套 + +**铁律10: 状态变更影响面分析(Bug #574→575 教训)** +- 改任何状态枚举值前,**必须**执行影响面分析 +- `rg "原状态枚举名" --type java` 列出所有引用文件 +- 逐个检查:设置值?查询过滤?显示映射?统计聚合? +- 检查逆向流程:退号、取消、停诊是否兼容新状态 +- 检查 XML mapper 中所有查询过滤条件 +- 检查前端所有 v-if/v-for/disabled 条件 +- **禁止**:只改正向流程不验逆向流程 + +**铁律11: 逆向流程验证(Bug #575 教训)** +- 涉及状态流转的 Bug,验证时**必须**覆盖: + - 正向:预约→签到→就诊→完成 + - 逆向:退号、取消预约、停诊、退费 + - 边界:并发操作、重复操作、异常中断 +- **禁止**:只测正向流程就标记"修复完成" + +**铁律12: 全链路 6 环分析** +- 涉及数据库字段的 Bug/需求 必须走完整链路 +``` +前端/页面 → Controller → Service → Mapper → DB/SQL → 关联模块 + ①录入 ②验证 ③业务 ④持久化 ⑤存储 ⑥联动 +``` +- ①录入:前端有无输入入口(弹窗、表格行编辑、表单) +- ②验证:Controller 参数校验、@Valid、权限控制 +- ③业务:Service 业务逻辑、事务边界、多个 Service 实现类入口 +- ④持久化:Mapper XML、DTO 字段映射、类型转换 +- ⑤存储:数据库表结构、索引、NOT NULL 约束 +- ⑥联动:上游(医嘱→护士站)、下游(打印、计费、报表)是否同步 + +**铁律13: 全链路验证(状态流转 Bug 必做)** +- 修复后按以下顺序验证,**编译通过不等于修复完成** +``` +① 数据库:SELECT status FROM table WHERE id = ? → 确认写入正确 +② 后端接口:检查所有 if/switch 分支 → 确认映射正确 +③ 前端显示:检查 STATUS_CLASS_MAP → 确认文本正确 +④ 前端交互:检查 v-if/v-for/disabled → 确认按钮状态正确 +⑤ 统计数据:检查聚合 SQL → 确认统计包含新状态 +``` + +**铁律14: 池/统计表同步(Bug #574 教训)** +- **任何状态变更必须同步更新关联统计表** +- 检查清单: + 1. 状态变更后,哪些统计字段需要更新? + 2. 是原子递增/递减,还是全量重算? + 3. 并发安全:用 `SET field = field + 1` 还是先查后改? + 4. 逆向操作(退号/取消)是否正确回滚统计? +- **禁止**:只改状态不改统计,或只改统计不改状态 + +**铁律15: 统计变更必须验证实际值(Bug #575 教训)** +- 修改统计逻辑后,**必须查数据库验证实际值** +- 对比操作前后的值,确认统计正确 +- **禁止**:改了统计逻辑不查数据库验证 + +**铁律16: 搜索所有相关代码路径** +- 修复前必须用 `rg` 搜索所有引用 +``` +rg "状态枚举名|相关方法名|相关字段名" --type java --type vue +``` +- 确保不遗漏任何引用路径 + +**铁律17: 数据库铁律** +- **修前必须查询真实数据库** — 确认表结构、字段约束、索引 +- **禁止凭猜测写 SQL** — 先查看表结构 +- **修改 SQL 后必须验证** — `EXPLAIN` 或实际查询验证语法 +- **NOT NULL 约束必须检查** — INSERT/UPDATE 前先查 `is_nullable` +- **关联表必须查完整** — 涉及 JOIN 查所有关联表结构和外键 + +**铁律18: 禁止破坏原有功能(P0绝对铁律)** +- **完善增加功能和流程时,绝对不能破坏或者让原有功能不能用** +- 修改已有实体前必须对比原始文件(`git show HEAD~N:./file.java`),保留所有原有字段和方法 +- 新增字段只能追加,不能删除或重命名已有字段 +- SQL迁移只允许 `ALTER TABLE ADD COLUMN`,不允许 `DROP COLUMN` 或 `RENAME COLUMN` +- Controller新端点不能修改已有端点的路径或参数 +- 前端新页面不能修改已有页面的组件结构 +- 每次修改后必须 `mvn clean compile -DskipTests` 验证 + +**铁律19: 编译错误不区分来源(Bug #698 教训)** +- `mvn compile`、`vite build`、`vue-tsc` 等构建命令报错 = 不过关,**不管是自己引入的还是历史遗留的** +- 禁止说"这是预存问题""不是我改的""原有bug"——构建通不过就不能宣称完成 +- 正确做法:定位错误 → 修复 → 重新构建确认通过 → 然后才能继续 + +**铁律20: 数据来源必须验证(Bug #698 教训)** +- 涉及数据查询/提取时,必须先确认数据实际存储位置,不能假设 +- 修复前必须:打印/检查原始数据结构 → 确认字段存在 → 再写提取逻辑 +- 禁止:凭代码推断数据位置、假设"应该在这里" + +**铁律21: 外部配置值必须实测验证(Bug #698 教训)** +- 使用外部服务(API、模型、数据库)的配置值,必须实际调用验证 +- 配置变更后必须:发起一次真实请求 → 确认返回 200 → 再宣称配置正确 +- 禁止:改完配置不测试、假设"应该能用" + +**铁律22: 端到端验证必须有实际输出证据(Bug #698 教训)** +- 声称功能生效前,必须有实际的端到端输出证据 +- 验证方式:运行命令 → 检查输出中包含预期关键词 +- 禁止:只检查代码路径可达就算"验证通过" + +**铁律23: 文件读写强制 UTF-8 编码(必遵守)** +- **禁止**使用 PowerShell Get-Content -Raw(不带 -Encoding UTF8)读取源文件 +- **禁止**使用 Out-File -Encoding utf8(会写 BOM) +- **正确写法**: + - 读取:`[System.IO.File]::ReadAllText($path, [System.Text.Encoding]::UTF8)` + - 写入:`[System.IO.File]::WriteAllText($path, $content, [System.Text.UTF8Encoding]::new(False))` +- **原因**:Windows PowerShell 5.1 默认用系统 locale(GBK/CP936)读写,会把 UTF-8 中文变成乱码 + +**铁律24: 禁止硬编码业务默认值(Bug #617 教训)** +- **禁止**在提交参数中硬编码业务默认值(如 `contractNo: '0000'`) +- 必须使用用户在表单中选择的值,硬编码值仅作为 fallback +- 检查清单: + 1. 表单字段是否有 `v-model` 绑定? + 2. 构建提交参数时是否使用了绑定值? + 3. 提交后是否覆盖了用户选择? + +--- + +### 🟡 P1 铁律 — 强烈建议 + +**铁律25: 先分解再行动** +- 修改超过3个文件、涉及多模块、数据库变更,必须先制定计划 + +**铁律26: 验证后信** +- 每次修改后必须验证编译通过,不信记忆 + +**铁律27: 文档统一管理** +- 所有文档存储在 `MD/` 目录 +- 文件名:大写英文+下划线(如 `BACKEND_CHECKLIST.md`) +- 文档头部必须包含元数据块(文档类型、版本、日期) + +**铁律28: 设计文档必须包含UI设计和调用流程** +- 所有新模块/页面的设计文档必须包含:UI布局描述、交互效果清单、前后端调用流程 +- 没有明确UI设计的模块,禁止直接编码 +- 设计文档必须写清楚:系统调用关系、方法函数调用关系、完整业务流程 +- 设计文档中每个用户操作必须对应:前端事件 → API调用 → 后端处理链路 → 返回数据 → UI渲染 + +**铁律29: 设计文档确认后自主开发(铁律)** +- 设计文档一旦确认,后续开发**必须按文档自主执行** +- **禁止反复询问"是否继续""下一步做什么""是否开始"**——直接按计划推进 +- 每完成一个 Sprint,自动提交推送,然后立即开始下一个 Sprint +- 只在遇到**无法解决的阻塞**时才暂停询问 + +**铁律30: 前端验证铁律** +- **提交前必须编译前端** — `npm run build:dev` 或 `npx vite build` 通过才算完成 +- **禁止只改 .vue 文件不验证编译** — 改完必须跑一次编译确认无报错 +- **SCSS 括号闭合必须检查** — `