From cc3c043f5591646ccfeef921d41f559441544c20 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期一, 27 三月 2023 09:04:44 +0800
Subject: [PATCH] yxh

---
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpServiceDonationcost.java                       |   22 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundflowServiceImpl.java               |   61 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceSystemmessageService.java                  |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundflowruleServiceImpl.java           |   60 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseOrganization.java                               |  164 
 ruoyi-project/src/main/resources/mapper/project/ServiceDistributesummaryMapper.xml                       |   64 
 ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementSharedMapper.xml                     |  115 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewopinions.java                   |   73 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundDetailOneVO.java                             |   14 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundService.java                           |   48 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatefollowup.java                          |  107 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/VServiceDonateorganRegisterServiceImpl.java   |   87 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementSharedService.java            |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementShared.java                     |  251 
 ruoyi-project/src/main/resources/mapper/project/ServiceSystemmessageMapper.xml                           |   49 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseItemexpenseMapper.java                          |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceRelativesconfirmationServiceImpl.java  |  213 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java                 |   29 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatefollowupMapper.xml                          |  137 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementdetailServiceImpl.java    |   88 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organInfoVO.java                                 |   14 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MedicalEvaluationVO.java                         |   81 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatefollowupMapper.java                    |   32 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java                    |   70 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTravelexpensestandardServiceImpl.java  |   66 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesFundOut.java                  |   18 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceSystemmessage.java                           |   94 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundSharedService.java                     |   24 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundMapper.java                              |   37 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceSystemmessageMapper.java                     |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundShared.java                              |  257 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesIn.java                       |   41 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitness.java                         |  195 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/VServiceDonateorganRegisterMapper.java              |   23 
 ruoyi-project/src/main/resources/mapper/project/ServiceExternalpersonMapper.xml                          |   66 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDocumentfilesMapper.java                     |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundflowService.java                       |   23 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonateconsolationfundMapper.xml                   |   81 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceOrganallocationMapper.java                   |   26 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateannexServiceImpl.java            |   79 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorgan.java                             |  146 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/WitnessStatsVO.java                              |   44 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementdetailService.java            |   32 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateannexService.java                    |   26 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateannexMapper.java                       |   26 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFunddetailService.java                     |   39 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml                             |  389 +
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementSharedServiceImpl.java    |  171 
 ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml                                    |  186 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java                        |   40 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceExternalpersonService.java                 |   29 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpTravelExpenseStandardIn.java                   |  100 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/countByRecordStateVO.java                        |   25 
 ruoyi-project/src/main/resources/mapper/project/ServiceOrganallocationMapper.xml                         |   98 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/CheckFundVO.java                                 |   50 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationWitnessVO.java                           |  107 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/BasePrcaddressDictMapper.java                       |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateannexrequirementService.java         |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDocumentfiles.java                           |   78 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java          |  109 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundflowruleService.java                   |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementMapper.java                     |   36 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateflowchartServiceImpl.java        |   49 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceRelativesconfirmation.java                   |  181 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundDetailTwoVO.java                             |  118 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMedicalevaluationService.java              |   28 
 ruoyi-project/src/main/resources/mapper/project/ServiceDocumentfilesMapper.xml                           |   54 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/AllOrgansInfo.java                               |   44 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseFinancesubjectServiceImpl.java            |  134 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateOrganVO.java                               |   93 
 ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementMapper.xml                           |   98 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecompletioninfoService.java           |   29 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TimeVO.java                                      |   24 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesReimbursementOut.java         |   19 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java   |   86 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java                   |  610 ++
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceOrganallocationServiceImpl.java        |  152 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IBasePrcaddressDictService.java                    |   32 
 ruoyi-project/pom.xml                                                                                    |   32 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java                       |   77 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organQuality.java                                |   65 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseOrganizationMapper.java                         |   37 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundflowMapper.java                          |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundflowruleMapper.java                      |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java                              |  235 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java                                    |  224 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTravelexpensestandardMapper.java             |   28 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateannex.java                             |   53 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateannexrequirementMapper.java            |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatefollowupServiceImpl.java         |   88 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateFollowupVO.java                            |   75 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrgansOfHospital.java                            |   20 
 ruoyi-project/src/main/resources/mapper/project/ServiceFundflowMapper.xml                                |   41 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateconsolationfundService.java          |   23 
 ruoyi-project/src/main/resources/mapper/project/ServiceDistributedetailMapper.xml                        |   70 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDocumentfilesServiceImpl.java          |   62 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java             |  134 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml                          |  333 +
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateflowchart.java                         |   47 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java      |   78 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/NumberOfOrgans.java                              |   20 
 ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml                   |  179 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseFinancesubject.java                             |   91 
 ruoyi-project/src/main/resources/mapper/project/BaseItemexpenseMapper.xml                                |   39 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementdetail.java                     |  164 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DistrictDonateCalculateVO.java                   |   16 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDistributesummaryMapper.java                 |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceExpertexpense.java                           |  204 
 ruoyi-project/src/main/resources/mapper/project/BasePrcaddressDictMapper.xml                             |   47 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonateannexrequirementMapper.xml                  |   38 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseItemexpenseServiceImpl.java               |   57 
 ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewopinionsMapper.xml                   |  122 
 ruoyi-project/src/main/resources/mapper/project/ServiceFundflowruleMapper.xml                            |   35 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseExpertfeetype.java                              |   40 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ItemDetailVO.java                                |   20 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java                           |  214 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java                |   32 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundVO.java                                      |   97 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ItemTypeVO.java                                  |   17 
 ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementdetailMapper.xml                     |   73 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceExpertexpenseService.java                  |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDistributesummaryServiceImpl.java      |   79 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/EthicalReviewVO.java                             |   88 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceRelativesconfirmationService.java          |   29 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceExpertexpenseMapper.java                     |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java                       |  118 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml                         |  213 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceRelativesconfirmationMapper.java             |   31 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatefollowupService.java                 |   32 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IVServiceDonateorganRegisterService.java           |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java            |  935 +++
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseExpertfeetypeServiceImpl.java             |   46 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatebaseinfoMapper.java                    |   75 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceOrganallocationService.java                |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateannexrequirement.java                  |   63 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseOrganizationServiceImpl.java              |  112 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java         |  238 
 ruoyi-project/src/main/resources/mapper/project/ServiceTravelexpensestandardMapper.xml                   |   41 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateannexrequirementServiceImpl.java |   58 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpTravelExpenseStandardOut.java                  |   13 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceExternalperson.java                          |  105 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDistributedetailMapper.java                  |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/VServiceDonateorganRegister.java                    |  205 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceEthicalreviewopinionsMapper.java             |   29 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateconsolationfund.java                   |  212 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceReimbursementDto.java                    |  195 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonationwitnessMapper.java                   |   55 
 ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml                              |  116 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceExternalpersonMapper.java                    |   28 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml                    |  150 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateNumber.java                                |   28 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseItemexpenseService.java                       |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceExternalpersonServiceImpl.java         |   76 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseFinancesubjectService.java                    |   37 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementSharedMapper.java               |   26 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateconsolationfundServiceImpl.java  |   85 
 ruoyi-project/src/main/resources/mapper/project/BaseFinancesubjectMapper.xml                             |   62 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundflow.java                                |   71 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseExpertfeetypeService.java                     |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceSystemmessageServiceImpl.java          |   70 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementdetailMapper.java               |   30 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDistributedetailService.java               |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoService.java                 |   45 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonateannexMapper.xml                             |   86 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FinanceSubjectVO.java                            |   18 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java        |  216 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDistributesummaryService.java              |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateByRegionVO.java                            |   20 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BasePrcaddressDictServiceImpl.java            |  148 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundSharedServiceImpl.java             |  169 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateNumberByMonth.java                         |   12 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationCompletionVO.java                        |   85 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/PMPRateVO.java                                   |   10 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateconsolationfundMapper.java             |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundflowrule.java                            |   65 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/reportInfo.java                                  |   13 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseExpertfeetypeMapper.java                        |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateflowchartService.java                |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateflowchartMapper.java                   |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDistributedetailServiceImpl.java       |   76 
 ruoyi-project/src/main/resources/mapper/project/VServiceDonateorganRegisterMapper.xml                    |   71 
 ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml                       |  125 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FinanceSubjectItemType.java                      |   20 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseOrganizationService.java                      |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organNumberByOrgVO.java                          |   13 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDocumentfilesService.java                  |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java  |   90 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseItemexpense.java                                |   51 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/RelativeConfirmationVO.java                      |  105 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceFundVO.java                               |   41 
 ruoyi-project/src/main/resources/mapper/project/BaseOrganizationMapper.xml                               |   99 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDistributesummary.java                       |  149 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementService.java                  |   38 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDistributedetail.java                        |  184 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceExpertexpenseServiceImpl.java          |   85 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceTravelexpensestandardService.java          |   28 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java                          |  375 +
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseFinancesubjectMapper.java                       |   34 
 ruoyi-project/src/main/resources/mapper/project/ServiceExpertexpenseMapper.xml                           |   75 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundSharedMapper.java                        |   27 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatecompletioninfoMapper.java              |   41 
 ruoyi-project/src/main/resources/mapper/project/ServiceFundSharedMapper.xml                              |  115 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceOrganallocation.java                         |  199 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceTravelexpensestandard.java                   |   87 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java          |   26 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java                    |   99 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateAnnexVO.java                               |   48 
 207 files changed, 17,094 insertions(+), 0 deletions(-)

diff --git a/ruoyi-project/pom.xml b/ruoyi-project/pom.xml
new file mode 100644
index 0000000..c33bc74
--- /dev/null
+++ b/ruoyi-project/pom.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>ruoyi</artifactId>
+        <groupId>com.ruoyi</groupId>
+        <version>3.7.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>ruoyi-project</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-system</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseExpertfeetype.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseExpertfeetype.java
new file mode 100644
index 0000000..73ded2a
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseExpertfeetype.java
@@ -0,0 +1,40 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 涓撳璐圭敤瀵硅薄 base_expertfeetype
+ * 
+ * @author ruoyi
+ * @date 2022-04-19
+ */
+@Data
+@ApiModel("涓撳璐圭敤")
+public class BaseExpertfeetype extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 鑷id */
+    @ApiModelProperty("鑷id")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 绫诲瀷浠g爜 */
+    @ApiModelProperty("绫诲瀷浠g爜")
+    @Excel(name = "绫诲瀷浠g爜")
+    private String typecode;
+
+    /** 绫诲瀷 */
+    @ApiModelProperty("绫诲瀷")
+    @Excel(name = "绫诲瀷")
+    private String typename;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseFinancesubject.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseFinancesubject.java
new file mode 100644
index 0000000..404eaae
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseFinancesubject.java
@@ -0,0 +1,91 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鏀跺叆璐圭敤绉戠洰瀵硅薄 base_financesubject
+ * 
+ * @author ruoyi
+ * @date 2022-01-11
+ */
+@Data
+@ApiModel("鏀跺叆璐圭敤绉戠洰")
+public class BaseFinancesubject extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID锛屽敮涓�鍊� */
+    @ApiModelProperty("ID锛屽敮涓�鍊�")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 绉戠洰绫诲瀷锛氭垚鏈敹鍏� */
+    @ApiModelProperty("绉戠洰绫诲瀷锛氭垚鏈敹鍏�")
+    @Excel(name = "绉戠洰绫诲瀷锛氭垚鏈敹鍏�")
+    private String subjecttype;
+
+    /** 椤圭洰绫诲瀷 */
+    @ApiModelProperty("椤圭洰绫诲瀷")
+    @Excel(name = "椤圭洰绫诲瀷")
+    private String itemtypename;
+
+    /** 椤圭洰鍚嶇О */
+    @ApiModelProperty("椤圭洰鍚嶇О")
+    @Excel(name = "椤圭洰鍚嶇О")
+    private String itemname;
+
+    /** 椤圭洰鎻忚堪 */
+    @ApiModelProperty("椤圭洰鎻忚堪")
+    @Excel(name = "椤圭洰鎻忚堪")
+    private String itemdescribe;
+
+    /** 椤圭洰鍗曚綅 */
+    @ApiModelProperty("椤圭洰鍗曚綅")
+    @Excel(name = "椤圭洰鍗曚綅")
+    private String itemunit;
+
+    /** 鍚敤鐘舵�� */
+    @ApiModelProperty("鍚敤鐘舵��")
+    @Excel(name = "鍚敤鐘舵��")
+    private String usestate;
+
+    /** 绉戠洰绫诲瀷缂栧彿 */
+    @ApiModelProperty("绉戠洰绫诲瀷缂栧彿")
+    private String subjecttypename;
+
+    /** 椤圭洰绫诲瀷缂栧彿 */
+    @ApiModelProperty("椤圭洰绫诲瀷缂栧彿")
+    private String itemtype;
+
+    /** 鎴愭湰澶х被 */
+    @ApiModelProperty("鎴愭湰澶х被")
+    private String costtype;
+
+    /** 鎴愭湰澶х被鍚嶇О */
+    @ApiModelProperty("鎴愭湰澶х被鍚嶇О")
+    private String costtypename;
+
+    /** 璐圭敤澶х被 */
+    @ApiModelProperty("璐圭敤澶х被")
+    private String expensetype;
+
+    /** 璐圭敤澶х被鍚嶇О */
+    @ApiModelProperty("璐圭敤澶х被鍚嶇О")
+    private String expensetypename;
+
+
+    private String itempinyin;
+
+    private String itemcode;
+
+    private Integer orderno;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseItemexpense.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseItemexpense.java
new file mode 100644
index 0000000..3a8af09
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseItemexpense.java
@@ -0,0 +1,51 @@
+package com.ruoyi.project.domain;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鏀跺叆璐圭敤绉戠洰瀵硅薄 base_itemexpense
+ * 
+ * @author ruoyi
+ * @date 2022-05-11
+ */
+@Data
+@ApiModel("鏀跺叆璐圭敤绉戠洰")
+public class BaseItemexpense extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID锛屽敮涓�鍊� */
+    @ApiModelProperty("ID锛屽敮涓�鍊�")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鏈嶅姟椤圭洰ID */
+    @ApiModelProperty("鏈嶅姟椤圭洰ID")
+    @Excel(name = "鏈嶅姟椤圭洰ID")
+    private Long itemid;
+
+    /** 璐圭敤閲戦 */
+    @ApiModelProperty("璐圭敤閲戦")
+    @Excel(name = "璐圭敤閲戦")
+    private BigDecimal expense;
+
+    /** 璐圭敤璇存槑 */
+    @ApiModelProperty("璐圭敤璇存槑")
+    @Excel(name = "璐圭敤璇存槑")
+    private String expensedescribe;
+
+    /** 鍚敤鐘舵�� */
+    @ApiModelProperty("鍚敤鐘舵��")
+    @Excel(name = "鍚敤鐘舵��")
+    private String usestate;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseOrganization.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseOrganization.java
new file mode 100644
index 0000000..7f00a22
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseOrganization.java
@@ -0,0 +1,164 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鏈烘瀯绠$悊瀵硅薄 base_organization
+ * 
+ * @author ruoyi
+ * @date 2021-11-05
+ */
+@Data
+@ApiModel("鏈烘瀯")
+public class BaseOrganization extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 涓婚敭鑷 */
+    @ApiModelProperty("涓婚敭鑷")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 缁勭粐鍚嶇О */
+    @ApiModelProperty("缁勭粐鍚嶇О")
+    @Excel(name = "缁勭粐鍚嶇О")
+    private String organizationname;
+
+    /** 缁勭粐缂栧彿 */
+    @ApiModelProperty("缁勭粐缂栧彿")
+    @Excel(name = "缁勭粐缂栧彿")
+    private String organizationid;
+
+    /** logo鍥剧墖璺緞 */
+    @ApiModelProperty("logo鍥剧墖璺緞")
+    @Excel(name = "logo鍥剧墖璺緞")
+    private String logourl;
+
+    /** 娉ㄥ唽鏃堕棿 */
+    @ApiModelProperty("娉ㄥ唽鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "娉ㄥ唽鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date registertime;
+
+    /** 娉ㄥ唽鍦扮偣璇︾粏鍦板潃 */
+    @ApiModelProperty("娉ㄥ唽鍦扮偣璇︾粏鍦板潃")
+    @Excel(name = "娉ㄥ唽鍦扮偣璇︾粏鍦板潃")
+    private String registeraddress;
+
+    /** 鍔炲叕鍦扮偣 */
+    @ApiModelProperty("鍔炲叕鍦扮偣")
+    @Excel(name = "鍔炲叕鍦扮偣")
+    private String officeplace;
+
+    /** 娉曚汉 */
+    @ApiModelProperty("娉曚汉")
+    @Excel(name = "娉曚汉")
+    private String legalperson;
+
+    /** 鑱旂郴浜� */
+    @ApiModelProperty("鑱旂郴浜�")
+    @Excel(name = "鑱旂郴浜�")
+    private String contactperson;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    private String contactnumber;
+
+    /** 浠嬬粛 */
+    @ApiModelProperty("浠嬬粛")
+    @Excel(name = "浠嬬粛")
+    private String introduction;
+
+    /** 鏈烘瀯绫诲瀷 鏍规嵁瀛楀吀OrganizationType椤�
+1锛歄PO鏈烘瀯
+2锛氱孩鍗佸瓧浼�
+3锛氬尰鐤楁満鏋�
+4锛氳繍杈撳崟浣� */
+	@ApiModelProperty("鏈烘瀯绫诲瀷 鏍规嵁瀛楀吀 sys_OrganizationType")
+    @Excel(name = "鏈烘瀯绫诲瀷 鏍规嵁瀛楀吀OrganizationType椤� 1锛歄PO鏈烘瀯 2锛氱孩鍗佸瓧浼� 3锛氬尰鐤楁満鏋� 4锛氳繍杈撳崟浣�")
+    private String organizationtype;
+
+    /** 鍖婚櫌鎬ц川 鏍规嵁瀛楀吀HospitalNature椤� 
+A1:缁煎悎鎬у尰闄� 绛�
+
+OrganizationType=2鍖荤枟鏈烘瀯鏃堕渶瑕侀�夋嫨 */
+    @ApiModelProperty("鍖婚櫌鎬ц川 鏍规嵁瀛楀吀sys_HospitalNature OrganizationType=2鍖荤枟鏈烘瀯鏃堕渶瑕侀�夋嫨")
+    @Excel(name = "鍖婚櫌鎬ц川 鏍规嵁瀛楀吀HospitalNature椤� A1:缁煎悎鎬у尰闄� 绛� OrganizationType=2鍖荤枟鏈烘瀯鏃堕渶瑕侀�夋嫨")
+    private String hospitalnature;
+
+    /** 鍦板尯鎬ц川 鏍规嵁瀛楀吀RegionalLevel椤�  
+0锛氱渷鏈骇 绛�
+
+OrganizationType=2鍖荤枟鏈烘瀯鏃堕渶瑕侀�夋嫨 */
+	@ApiModelProperty("鍦板尯鎬ц川 鏍规嵁瀛楀吀sys_RegionalLevel  OrganizationType=2鍖荤枟鏈烘瀯鏃堕渶瑕侀�夋嫨")
+    @Excel(name = "鍦板尯鎬ц川 鏍规嵁瀛楀吀RegionalLevel椤� 0锛氱渷鏈骇 绛� OrganizationType=2鍖荤枟鏈烘瀯鏃堕渶瑕侀�夋嫨")
+    private String regionallevel;
+
+    /** 鍖荤枟鏈烘瀯缂栧彿 濡�0锛氭禉姹熺渷浜烘皯鍖婚櫌 1锛氭澀宸炲競绗竴浜烘皯鍖婚櫌
+OrganizationType=2鍖荤枟鏈烘瀯鏃堕渶瑕佸~鍐� */
+    @ApiModelProperty("鍖荤枟鏈烘瀯缂栧彿 濡�0锛氭禉姹熺渷浜烘皯鍖婚櫌 1锛氭澀宸炲競绗竴浜烘皯鍖婚櫌OrganizationType=2鍖荤枟鏈烘瀯鏃堕渶瑕佸~鍐�")
+    @Excel(name = "鍖荤枟鏈烘瀯缂栧彿 濡�0锛氭禉姹熺渷浜烘皯鍖婚櫌 1锛氭澀宸炲競绗竴浜烘皯鍖婚櫌 OrganizationType=2鍖荤枟鏈烘瀯鏃堕渶瑕佸~鍐�")
+    private String medicalcode;
+
+    /** 鐪佷唤缂栧彿 鏍规嵁琛屾斂鍖哄垝琛�  鎸夋敞鍐屽湴閫夋嫨 */
+    @ApiModelProperty("鐪佷唤缂栧彿 鏍规嵁琛屾斂鍖哄垝琛�  鎸夋敞鍐屽湴閫夋嫨")
+    @Excel(name = "鐪佷唤缂栧彿 鏍规嵁琛屾斂鍖哄垝琛�  鎸夋敞鍐屽湴閫夋嫨")
+    private String province;
+
+    /** 鐪佷唤鍚嶇О */
+    @ApiModelProperty("鐪佷唤鍚嶇О")
+    @Excel(name = "鐪佷唤鍚嶇О")
+    private String provincename;
+
+    /** 甯傜紪鍙�  鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("甯傜紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")
+    @Excel(name = "甯傜紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")
+    private String city;
+
+    /** 甯傚悕绉� */
+    @ApiModelProperty("甯傚悕绉�")
+    @Excel(name = "甯傚悕绉�")
+    private String cityname;
+
+    /** 鎵�灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("鎵�灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛�")
+    @Excel(name = "鎵�灞炶閬�", readConverterExp = "闀�=")
+    private String town;
+
+    /** 鎵�灞炶閬擄紙闀囷級鍚嶇О */
+    @ApiModelProperty("鎵�灞炶閬擄紙闀囷級鍚嶇О")
+    @Excel(name = "鎵�灞炶閬�", readConverterExp = "闀�=")
+    private String townname;
+
+    /** 绀惧尯锛堟潙锛夌紪鍙� 鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("绀惧尯锛堟潙锛夌紪鍙� 鏍规嵁琛屾斂鍖哄垝琛�")
+    @Excel(name = "绀惧尯", readConverterExp = "鏉�=")
+    private String community;
+
+    /** 绀惧尯锛堟潙锛夊悕绉� */
+    @ApiModelProperty("绀惧尯锛堟潙锛夊悕绉�")
+    @Excel(name = "绀惧尯", readConverterExp = "鏉�=")
+    private String communityname;
+
+    /** 鎵�灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("鎵�灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")
+    @Excel(name = "鎵�灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")
+    private String countycode;
+
+    /** 鎵�灞炲尯鍩熷悕绉� */
+    @ApiModelProperty("鎵�灞炲尯鍩熷悕绉�")
+    @Excel(name = "鎵�灞炲尯鍩熷悕绉�")
+    private String countyname;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDistributedetail.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDistributedetail.java
new file mode 100644
index 0000000..016e173
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDistributedetail.java
@@ -0,0 +1,184 @@
+package com.ruoyi.project.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 涓撳璐圭敤鍒嗗彂姹囨�绘槑缁嗗璞� service_distributedetail
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+@Data
+@ApiModel("涓撳璐圭敤鍒嗗彂姹囨�绘槑缁�")
+public class ServiceDistributedetail extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 涓婚敭ID */
+    @ApiModelProperty("涓婚敭ID")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 璐圭敤鍙戞斁缁熻琛↖D */
+    @ApiModelProperty("璐圭敤鍙戞斁缁熻琛↖D")
+    @Excel(name = "璐圭敤鍙戞斁缁熻琛↖D")
+    private Long dsid;
+
+    /** 鏀剁泭浜哄鍚� 瀹跺睘鎴栦笓瀹� */
+    @ApiModelProperty("鏀剁泭浜哄鍚� 瀹跺睘鎴栦笓瀹�")
+    @Excel(name = "鏀剁泭浜哄鍚� 瀹跺睘鎴栦笓瀹�")
+    private String beneficiaryname;
+
+    /** 鏀剁泭浜虹紪鍙� */
+    @ApiModelProperty("鏀剁泭浜虹紪鍙�")
+    @Excel(name = "鏀剁泭浜虹紪鍙�")
+    private String beneficiaryno;
+
+    /** 宸ヤ綔鍗曚綅 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅")
+    @Excel(name = "宸ヤ綔鍗曚綅")
+    private String unitname;
+
+    /** 宸ヤ綔鍗曚綅缂栧彿 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅缂栧彿")
+    @Excel(name = "宸ヤ綔鍗曚綅缂栧彿")
+    private String unitno;
+
+    /** 宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿")
+    @Excel(name = "宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿")
+    private String unituserno;
+
+    /** 鑱岀О,瑙佸瓧鍏竤ys_professionaltitle */
+    @ApiModelProperty("鑱岀О,瑙佸瓧鍏竤ys_professionaltitle")
+    @Excel(name = "鑱岀О,瑙佸瓧鍏竤ys_professionaltitle")
+    private String title;
+
+    /** 璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType */
+    @ApiModelProperty("璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType")
+    @Excel(name = "璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType")
+    private Long idcardtype;
+
+    /** 璇佷欢鍙风爜 */
+    @ApiModelProperty("璇佷欢鍙风爜")
+    @Excel(name = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 鎬у埆 鏍规嵁瀛楀吀sys_user_sex */
+    @ApiModelProperty("鎬у埆 鏍规嵁瀛楀吀sys_user_sex")
+    @Excel(name = "鎬у埆 鏍规嵁瀛楀吀sys_user_sex")
+    private String sex;
+
+    /** 涓庢崘璧犺�呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation */
+    @ApiModelProperty("涓庢崘璧犺�呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation")
+    @Excel(name = "涓庢崘璧犺�呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation")
+    private String familyrelations;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 寮�鎴烽摱琛� */
+    @ApiModelProperty("寮�鎴烽摱琛�")
+    @Excel(name = "寮�鎴烽摱琛�")
+    private String depositbank;
+
+    /** 鍗″彿 */
+    @ApiModelProperty("鍗″彿")
+    @Excel(name = "鍗″彿")
+    private String bankcardno;
+
+    /** 鏀鍚嶇О */
+    @ApiModelProperty("鏀鍚嶇О")
+    @Excel(name = "鏀鍚嶇О")
+    private String branchbankname;
+
+    /** 閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    private String annexbankcard;
+
+    /** 鐧昏琛ㄧ収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("鐧昏琛ㄧ収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "鐧昏琛ㄧ収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    private String annexregistform;
+
+    /** 璧勯噾绫诲埆 瑙佸瓧鍏竤ys_SubjectType */
+    @ApiModelProperty("璧勯噾绫诲埆 瑙佸瓧鍏竤ys_SubjectType")
+    @Excel(name = "璧勯噾绫诲埆 瑙佸瓧鍏竤ys_SubjectType")
+    private String applytype;
+
+    /** 椤圭洰ID */
+    @ApiModelProperty("椤圭洰ID")
+    @Excel(name = "椤圭洰ID")
+    private Long itemid;
+
+    /** 椤圭洰鍚嶇О */
+    @ApiModelProperty("椤圭洰鍚嶇О")
+    @Excel(name = "椤圭洰鍚嶇О")
+    private String itemname;
+
+    /** 椤圭洰绫诲埆 */
+    @ApiModelProperty("椤圭洰绫诲埆")
+    @Excel(name = "椤圭洰绫诲埆")
+    private String itemtype;
+
+    /** 鏁伴噺 */
+    @ApiModelProperty("鏁伴噺")
+    @Excel(name = "鏁伴噺")
+    private BigDecimal quantity;
+
+    /** 浠锋牸 */
+    @ApiModelProperty("浠锋牸")
+    @Excel(name = "浠锋牸")
+    private BigDecimal price;
+
+    /** 鐢宠閲戦 */
+    @ApiModelProperty("鐢宠閲戦")
+    @Excel(name = "鐢宠閲戦")
+    private BigDecimal amount;
+
+    /** 鎵g◣閲戦 */
+    @ApiModelProperty("鎵g◣閲戦")
+    @Excel(name = "鎵g◣閲戦")
+    private BigDecimal taxamount;
+
+    /** 绋庡悗閲戦 */
+    @ApiModelProperty("绋庡悗閲戦")
+    @Excel(name = "绋庡悗閲戦")
+    private BigDecimal taxedamount;
+
+    /** 棰勬敮閲戦 */
+    @ApiModelProperty("棰勬敮閲戦")
+    @Excel(name = "棰勬敮閲戦")
+    private BigDecimal prepaidamount;
+
+    /** 璁板綍鐘舵�� */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private String recordstatus;
+
+    /** 涓婁紶鏍囧織 */
+    @ApiModelProperty("涓婁紶鏍囧織")
+    @Excel(name = "涓婁紶鏍囧織")
+    private String uploadflag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDistributesummary.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDistributesummary.java
new file mode 100644
index 0000000..c8a7318
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDistributesummary.java
@@ -0,0 +1,149 @@
+package com.ruoyi.project.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 涓撳璐圭敤鍒嗗彂姹囨�讳富瀵硅薄 service_distributesummary
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+@Data
+@ApiModel("涓撳璐圭敤鍒嗗彂姹囨�讳富")
+public class ServiceDistributesummary extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    @ApiModelProperty("ID")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞妗堜緥缂栧彿 */
+    @ApiModelProperty("鎹愮尞妗堜緥缂栧彿")
+    @Excel(name = "鎹愮尞妗堜緥缂栧彿")
+    private String donorno;
+
+    /** 鎹愮尞鑰呭鍚� */
+    @ApiModelProperty("鎹愮尞鑰呭鍚�")
+    @Excel(name = "鎹愮尞鑰呭鍚�")
+    private String donorname;
+
+    /** 鐢宠浜虹紪鍙� */
+    @ApiModelProperty("鐢宠浜虹紪鍙�")
+    @Excel(name = "鐢宠浜虹紪鍙�")
+    private String userno;
+
+    /** 鐢宠浜哄鍚� */
+    @ApiModelProperty("鐢宠浜哄鍚�")
+    @Excel(name = "鐢宠浜哄鍚�")
+    private String username;
+
+    /** 宸ヤ綔鍗曚綅 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅")
+    @Excel(name = "宸ヤ綔鍗曚綅")
+    private String unitname;
+
+    /** 宸ヤ綔鍗曚綅缂栧彿 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅缂栧彿")
+    @Excel(name = "宸ヤ綔鍗曚綅缂栧彿")
+    private String unitno;
+
+    /** 宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿")
+    @Excel(name = "宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿")
+    private String unituserno;
+
+    /** 妗堜緥鎬绘暟 */
+    @ApiModelProperty("妗堜緥鎬绘暟")
+    @Excel(name = "妗堜緥鎬绘暟")
+    private Integer casecount;
+
+    /** 妗堜緥鎻忚堪 */
+    @ApiModelProperty("妗堜緥鎻忚堪")
+    @Excel(name = "妗堜緥鎻忚堪")
+    private String casedescribe;
+
+    /** 璐圭敤鎬婚噾棰� */
+    @ApiModelProperty("璐圭敤鎬婚噾棰�")
+    @Excel(name = "璐圭敤鎬婚噾棰�")
+    private BigDecimal totalamount;
+
+    /** 璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType */
+    @ApiModelProperty("璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    @Excel(name = "璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    private String applytype;
+
+    /** 閮ㄩ棬涓荤宸ュ彿 */
+    @ApiModelProperty("閮ㄩ棬涓荤宸ュ彿")
+    @Excel(name = "閮ㄩ棬涓荤宸ュ彿")
+    private String managerno;
+
+    /** 閮ㄩ棬涓荤鍚嶅瓧 */
+    @ApiModelProperty("閮ㄩ棬涓荤鍚嶅瓧")
+    @Excel(name = "閮ㄩ棬涓荤鍚嶅瓧")
+    private String managername;
+
+    /** 閮ㄩ棬缂栧彿 */
+    @ApiModelProperty("閮ㄩ棬缂栧彿")
+    @Excel(name = "閮ㄩ棬缂栧彿")
+    private String departmentno;
+
+    /** 閮ㄩ棬鍚嶇О */
+    @ApiModelProperty("閮ㄩ棬鍚嶇О")
+    @Excel(name = "閮ㄩ棬鍚嶇О")
+    private String departmentname;
+
+    /** 璐㈠姟缁忓姙浜� */
+    @ApiModelProperty("璐㈠姟缁忓姙浜�")
+    @Excel(name = "璐㈠姟缁忓姙浜�")
+    private String operator;
+
+    /** 璐㈠姟瀹℃牳 */
+    @ApiModelProperty("璐㈠姟瀹℃牳")
+    @Excel(name = "璐㈠姟瀹℃牳")
+    private String checher;
+
+    /** 璐㈠姟璐熻矗浜� */
+    @ApiModelProperty("璐㈠姟璐熻矗浜�")
+    @Excel(name = "璐㈠姟璐熻矗浜�")
+    private String financedirector;
+
+    /** OPO璐熻矗浜� */
+    @ApiModelProperty("OPO璐熻矗浜�")
+    @Excel(name = "OPO璐熻矗浜�")
+    private String opodirector;
+
+    /** 璁板綍鐘舵�� */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private String recordstatus;
+
+    /** 涓婁紶鏍囧織 */
+    @ApiModelProperty("涓婁紶鏍囧織")
+    @Excel(name = "涓婁紶鏍囧織")
+    private String uploadflag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDocumentfiles.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDocumentfiles.java
new file mode 100644
index 0000000..d0f12da
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDocumentfiles.java
@@ -0,0 +1,78 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鎹愮尞闄勪欢瀵硅薄 service_documentfiles
+ * 
+ * @author ruoyi
+ * @date 2022-04-08
+ */
+@Data
+@ApiModel("鎹愮尞闄勪欢")
+public class ServiceDocumentfiles extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鏂囨。褰掔被锛氬浗瀹舵枃浠躲�佺渷绾ф枃浠躲�佸尰闄㈡枃浠� */
+    @ApiModelProperty("鏂囨。褰掔被锛氬浗瀹舵枃浠躲�佺渷绾ф枃浠躲�佸尰闄㈡枃浠�")
+    @Excel(name = "鏂囨。褰掔被锛氬浗瀹舵枃浠躲�佺渷绾ф枃浠躲�佸尰闄㈡枃浠�")
+    private String doctype;
+
+    /** 鏂囦欢鍚嶇О */
+    @ApiModelProperty("鏂囦欢鍚嶇О")
+    @Excel(name = "鏂囦欢鍚嶇О")
+    private String filename;
+
+    /** 鏂囦欢绫诲瀷 */
+    @ApiModelProperty("鏂囦欢绫诲瀷")
+    @Excel(name = "鏂囦欢绫诲瀷")
+    private String filetype;
+
+    /** 鏂囦欢鍦板潃 */
+    @ApiModelProperty("鏂囦欢鍦板潃")
+    @Excel(name = "鏂囦欢鍦板潃")
+    private String fileurl;
+
+    /** 鐘舵�� */
+    @ApiModelProperty("鐘舵��")
+    @Excel(name = "鐘舵��")
+    private String status;
+
+    private String remark;
+
+
+    private String provinceno;
+
+    private String provincename;
+
+    private String cityno;
+
+    private String cityname;
+
+    private String townno;
+
+    private String townname;
+
+    private String source;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateannex.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateannex.java
new file mode 100644
index 0000000..e8a99a1
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateannex.java
@@ -0,0 +1,53 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎹愮尞闄勪欢瀵硅薄 service_donateannex
+ * 
+ * @author ruoyi
+ * @date 2021-11-11
+ */
+@Data
+@ApiModel("鎹愮尞闄勪欢")
+public class ServiceDonateannex extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 闄勪欢鍚嶇О */
+    @ApiModelProperty("闄勪欢鍚嶇О")
+    @Excel(name = "闄勪欢鍚嶇О")
+    private String annexname;
+
+    /** 闄勪欢缂栧彿 */
+    @ApiModelProperty("闄勪欢缂栧彿")
+    @Excel(name = "闄勪欢缂栧彿")
+    private String annexno;
+
+    /** 闄勪欢璺緞 */
+    @ApiModelProperty("闄勪欢璺緞")
+    private String annexurl;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateannexrequirement.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateannexrequirement.java
new file mode 100644
index 0000000..52eb9a1
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateannexrequirement.java
@@ -0,0 +1,63 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎹愮尞闄勪欢瑕佹眰瀵硅薄 service_donateannexrequirement
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Data
+@ApiModel("鎹愮尞闄勪欢瑕佹眰")
+public class ServiceDonateannexrequirement extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 闄勪欢鍚嶇О */
+    @ApiModelProperty("闄勪欢鍚嶇О")
+    @Excel(name = "闄勪欢鍚嶇О")
+    private String annexname;
+
+    /** 闄勪欢缂栧彿 */
+    @ApiModelProperty("闄勪欢缂栧彿")
+    @Excel(name = "闄勪欢缂栧彿")
+    private String annexno;
+
+    /** 澶辨晥鏃堕棿锛宯ull涓哄缁堟湁鏁� */
+    @ApiModelProperty("澶辨晥鏃堕棿锛宯ull涓哄缁堟湁鏁�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "澶辨晥鏃堕棿锛宯ull涓哄缁堟湁鏁�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date expirestime;
+
+    /** 0锛氶潪蹇呴』锛�1锛氬繀椤伙紱2锛氭潯浠跺繀椤� */
+    @ApiModelProperty("0锛氶潪蹇呴』锛�1锛氬繀椤伙紱2锛氭潯浠跺繀椤�")
+    @Excel(name = "0锛氶潪蹇呴』锛�1锛氬繀椤伙紱2锛氭潯浠跺繀椤�")
+    private Long isrequired;
+
+    /** 娴佺▼鍚嶇О 鐩墠鍒嗕负 涓婃姤  瀹℃煡  璇勪及  涓夋祦绋� */
+    @ApiModelProperty("娴佺▼鍚嶇О 鐩墠鍒嗕负 涓婃姤  瀹℃煡  璇勪及  涓夋祦绋�")
+    @Excel(name = "娴佺▼鍚嶇О 鐩墠鍒嗕负 涓婃姤  瀹℃煡  璇勪及  涓夋祦绋�")
+    private String flowname;
+
+    /** 鎹愮尞绫诲埆 鏍规嵁瀛楀吀sys_DonationCategory IsRequired=2鏃跺繀濉� */
+    @ApiModelProperty("鎹愮尞绫诲埆 鏍规嵁瀛楀吀sys_DonationCategory IsRequired=2鏃跺繀濉�")
+    @Excel(name = "鎹愮尞绫诲埆 鏍规嵁瀛楀吀sys_DonationCategory IsRequired=2鏃跺繀濉�")
+    private String donationcategory;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java
new file mode 100644
index 0000000..6984a8d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java
@@ -0,0 +1,375 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 鎹愮尞鍩虹瀵硅薄 service_donatebaseinfo
+ *
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+@Data
+@ApiModel("鎹愮尞鍩虹")
+public class ServiceDonatebaseinfo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 濮撳悕 */
+    @ApiModelProperty("濮撳悕")
+    @Excel(name = "濮撳悕")
+    private String name;
+
+    /** 鎬у埆 */
+    @ApiModelProperty("鎬у埆")
+    private String sex;
+
+    /** 璇佷欢绫诲瀷 */
+    @ApiModelProperty("璇佷欢绫诲瀷")
+    private Long idcardtype;
+
+    /** 璇佷欢鍙风爜 */
+    @ApiModelProperty("璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 骞撮緞 */
+    @ApiModelProperty("骞撮緞")
+    private Long age;
+
+    /** 骞撮緞鍗曚綅 */
+    @ApiModelProperty("骞撮緞鍗曚綅")
+    private String ageunit;
+
+    /** 鍑虹敓鏃ユ湡 */
+    @ApiModelProperty("鍑虹敓鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date birthday;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 鐜颁綇鍦板潃 */
+    @ApiModelProperty("鐜颁綇鍦板潃")
+    private String residenceaddress;
+
+    /** 鍥界睄 */
+    @ApiModelProperty("鍥界睄")
+    private String nationality;
+
+    /** 鐪�(鍖�/甯�) */
+    @ApiModelProperty("鐪�(鍖�/甯�)")
+    @Excel(name = "鐪�(鍖�/甯�)")
+    private String residenceprovince;
+
+    /** 绫嶈疮 */
+	@ApiModelProperty("绫嶈疮")
+    @Excel(name = "绫嶈疮")
+    private String nativeplace;
+
+    /** 鐜颁綇鍦板潃鐪佸悕绉� */
+    @ApiModelProperty("鐜颁綇鍦板潃鐪佸悕绉�")
+    private String residenceprovincename;
+
+    /** 姘戞棌 */
+    @ApiModelProperty("姘戞棌")
+    private String nation;
+
+    /** 鑱屼笟 */
+    @ApiModelProperty("鑱屼笟")
+    private String occupation;
+
+    /** 甯�(宸�) */
+    @ApiModelProperty("甯�(宸�)")
+    private String residencecity;
+
+    /** 甯傚悕绉� */
+    @ApiModelProperty("甯傚悕绉�")
+    private String residencecityname;
+
+    /** 瀛﹀巻 */
+    @ApiModelProperty("瀛﹀巻")
+    private String education;
+
+    /** 鍘匡紙甯�/鍖猴級 */
+    @ApiModelProperty("鍘匡紙甯�/鍖猴級")
+    private String residencetown;
+
+    /** 鎵�灞炶閬擄紙闀囷級鍚嶇О */
+    @ApiModelProperty("鎵�灞炶閬擄紙闀囷級鍚嶇О")
+    private String residencetownname;
+
+    /** 绀惧尯锛堟潙锛夌紪鍙� 鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("绀惧尯锛堟潙锛夌紪鍙� 鏍规嵁琛屾斂鍖哄垝琛�")
+    private String residencecommunity;
+
+    /** 绀惧尯锛堟潙锛夊悕绉� */
+    @ApiModelProperty("绀惧尯锛堟潙锛夊悕绉�")
+    private String residencecommunityname;
+
+    /** 鎵�灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("鎵�灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")
+    private String residencecountycode;
+
+    /** 鎵�灞炲尯鍩熷悕绉� */
+    @ApiModelProperty("鎵�灞炲尯鍩熷悕绉�")
+    private String residencecountyname;
+
+    /** 鎴风睄鍦板潃 */
+    @ApiModelProperty("鎴风睄鍦板潃")
+    private String registeraddress;
+
+    /** 鐪�(鍖�/甯�) */
+    @ApiModelProperty("鐪�(鍖�/甯�)")
+    private String registerprovince;
+
+    /** 鎴风睄鍦板潃鐪佸悕绉� */
+    @ApiModelProperty("鎴风睄鍦板潃鐪佸悕绉�")
+    private String registerprovincename;
+
+    /** 甯�(宸�) */
+    @ApiModelProperty("甯�(宸�)")
+    private String registercity;
+
+    /** 甯傚悕绉� */
+    @ApiModelProperty("甯傚悕绉�")
+    private String registercityname;
+
+    /** 鍘匡紙甯�/鍖猴級 */
+    @ApiModelProperty("鍘匡紙甯�/鍖猴級")
+    private String registertown;
+
+    /** 鎵�灞炶閬擄紙闀囷級鍚嶇О */
+    @ApiModelProperty("鎵�灞炶閬擄紙闀囷級鍚嶇О")
+    private String registertownname;
+
+    /** 绀惧尯锛堟潙锛夌紪鍙� 鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("绀惧尯锛堟潙锛夌紪鍙� 鏍规嵁琛屾斂鍖哄垝琛�")
+    private String registercommunity;
+
+    /** 绀惧尯锛堟潙锛夊悕绉� */
+    @ApiModelProperty("绀惧尯锛堟潙锛夊悕绉�")
+    private String registercommunityname;
+
+    /** 鎵�灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("鎵�灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")
+    private String registercountycode;
+
+    /** 鎵�灞炲尯鍩熷悕绉� */
+    @ApiModelProperty("鎵�灞炲尯鍩熷悕绉�")
+    private String registercountyname;
+
+    /** 璁板綍鐘舵�� */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private String recordstate;
+
+    /** 娌荤枟鍖婚櫌 */
+    @ApiModelProperty("娌荤枟鍖婚櫌")
+    private String treatmenthospitalno;
+
+    /** 鎵�鍦ㄥ尰鐤楁満鏋� */
+    @ApiModelProperty("鎵�鍦ㄥ尰鐤楁満鏋�")
+    @Excel(name = "鎵�鍦ㄥ尰鐤楁満鏋�")
+    private String treatmenthospitalname;
+
+    /** 绉戝 */
+    @ApiModelProperty("绉戝")
+    private String treatmentdeptname;
+
+    /** 鐤剧梾璇婃柇 */
+    @ApiModelProperty("鐤剧梾璇婃柇")
+    private String diagnosisno;
+
+    /** 鐤剧梾璇婃柇鍚嶇О */
+    @ApiModelProperty("鐤剧梾璇婃柇鍚嶇О")
+    private String diagnosisname;
+
+    /** 琛�鍨�  */
+    @ApiModelProperty("琛�鍨� ")
+    private String bloodtype;
+
+    /** 浣忛櫌鍙� */
+    @ApiModelProperty("浣忛櫌鍙�")
+    private String inpatientno;
+
+    /** Rh闃存�� */
+    @ApiModelProperty("Rh闃存��")
+    private String rhyin;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 鎹愮尞绫诲埆 */
+    @ApiModelProperty("鎹愮尞绫诲埆")
+    private String donationcategory;
+
+    /** 鐥呮儏姒傚喌 */
+    @ApiModelProperty("鐥呮儏姒傚喌")
+    private String illnessoverview;
+
+    /** 鐤剧梾绫诲瀷 */
+    @ApiModelProperty("鐤剧梾绫诲瀷")
+    private String diseasetype;
+
+    /** 浼犳煋鐥呮儏鍐� */
+    @ApiModelProperty("浼犳煋鐥呮儏鍐�")
+    private String infectious;
+
+    /** 鏈汉鎰忔効  */
+    @ApiModelProperty("鏈汉鎰忔効 ")
+    private String selfwill;
+
+    /** 鍏朵粬鎯呭喌 */
+    @ApiModelProperty("鍏朵粬鎯呭喌")
+    private String othercases;
+
+    /** 浜插睘鎰忔効 */
+    @ApiModelProperty("浜插睘鎰忔効")
+    private Long kinshipwill;
+
+    /** 鍏朵粬 */
+    @ApiModelProperty("鍏朵粬")
+    private String diseasetypeOther;
+
+    /** 浜插睘鍏崇郴鐘跺喌 */
+    @ApiModelProperty("浜插睘鍏崇郴鐘跺喌")
+    private String kinship;
+
+    /** 淇℃伅鏉ユ簮 */
+    @ApiModelProperty("淇℃伅鏉ユ簮")
+    private String infosources;
+
+    /** 绾㈠崄瀛椾細鏈烘瀯缂栧彿 閫夎嚜鏈烘瀯琛� */
+    @ApiModelProperty("绾㈠崄瀛椾細鏈烘瀯缂栧彿 閫夎嚜鏈烘瀯琛�")
+    private String redorganno;
+
+    /** 绾㈠崄瀛椾細鏈烘瀯鍚嶇О */
+    @ApiModelProperty("绾㈠崄瀛椾細鏈烘瀯鍚嶇О")
+    private String redorganname;
+
+    /** 绾㈠崄瀛椾細鑱旂郴浜� */
+    @ApiModelProperty("绾㈠崄瀛椾細鑱旂郴浜�")
+    private String contactperson;
+
+    /** 鍏朵粬 */
+    @ApiModelProperty("鍏朵粬")
+    private String infectiousOther;
+
+    /** 绾㈠崄瀛椾細鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("绾㈠崄瀛椾細鑱旂郴鐢佃瘽")
+    private String contactnumber;
+
+    /** 鎶ュ憡鑰呯紪鍙� */
+    @ApiModelProperty("鎶ュ憡鑰呯紪鍙�")
+    private String reporterno;
+
+    /** 鎶ュ憡鑰呭鍚� */
+    @ApiModelProperty("鎶ュ憡鑰呭鍚�")
+    @Excel(name = "鎶ュ憡鑰呭鍚�")
+    private String reportername;
+
+    /** 鐥呬汉鐘跺喌 */
+    @ApiModelProperty("鐥呬汉鐘跺喌")
+    private String patientstate;
+
+    /** 鎶ュ憡鑰呰仈绯荤數璇� */
+    @ApiModelProperty("鎶ュ憡鑰呰仈绯荤數璇�")
+    private String reporterphone;
+
+    /** 淇℃伅鏉ユ簮鍏朵粬 */
+    @ApiModelProperty("淇℃伅鏉ユ簮鍏朵粬")
+    private String infosourcesOther;
+
+    /** 鎶ュ憡鏃堕棿 */
+    @ApiModelProperty("鎶ュ憡鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鎶ュ憡鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date reporttime;
+
+    /** 鍏朵粬 */
+    @ApiModelProperty("鍏朵粬")
+    private String kinshipOther;
+
+    /** 涓昏浜插睘 */
+    @ApiModelProperty("涓昏浜插睘")
+    private String majorrelatives;
+
+    /** 涓庢崘璧犺�呭叧绯� */
+    @ApiModelProperty("涓庢崘璧犺�呭叧绯�")
+    private String familyrelations;
+
+    /** 鑾峰彇缁勭粐缂栧彿 */
+    @ApiModelProperty("鑾峰彇缁勭粐缂栧彿")
+    private String acquisitiontissueno;
+
+    /** 鑾峰彇缁勭粐鍚嶇О */
+    @ApiModelProperty("鑾峰彇缁勭粐鍚嶇О")
+    private String acquisitiontissuename;
+
+    /** 淇℃伅鍛樺鍚� */
+    @ApiModelProperty("淇℃伅鍛樺鍚�")
+    private String infoname;
+
+    /** 淇℃伅鍛樿仈绯绘柟寮� */
+    @ApiModelProperty("淇℃伅鍛樿仈绯绘柟寮�")
+    private String infophone;
+
+    /** 鑱旂郴鏃堕棿 */
+    @ApiModelProperty("鑱旂郴鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date contacttime;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(exist = false)
+    private Date starttime;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(exist = false)
+    private Date endtime;
+
+    @TableField(exist = false)
+    private String city;
+
+
+    private Long deptid;
+
+    @ApiModelProperty("閮ㄩ棬鍚嶇О")
+    @Excel(name = "閮ㄩ棬鍚嶇О")
+    private String deptname;
+
+    @ApiModelProperty("缁勯暱缂栫爜")
+    @Excel(name = "缁勯暱缂栫爜")
+    private String leaderno;
+    
+    @ApiModelProperty("缁勯暱鍚嶇О")
+    @Excel(name = "缁勯暱鍚嶇О")
+    private String leadername;
+
+    @ApiModelProperty("涓氬姟鍦板尯")
+    @Excel(name = "涓氬姟鍦板尯")
+    private String businessarea;
+
+
+}
\ No newline at end of file
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java
new file mode 100644
index 0000000..ad2a390
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java
@@ -0,0 +1,99 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎹愮尞瀹屾垚瀵硅薄 service_donatecompletioninfo
+ * 
+ * @author ruoyi
+ * @date 2021-11-19
+ */
+@Data
+@ApiModel("鎹愮尞瀹屾垚")
+public class ServiceDonatecompletioninfo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**  */
+    @ApiModelProperty("")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 鏄惁閬椾綋鎹愮尞 */
+    @ApiModelProperty("鏄惁閬椾綋鎹愮尞")
+    @Excel(name = "鏄惁閬椾綋鎹愮尞")
+    private String isbodydonation;
+
+
+    /** 鎺ユ敹鍗曚綅鍚嶇О */
+    @ApiModelProperty("鎺ユ敹鍗曚綅鍚嶇О")
+    @Excel(name = "鎺ユ敹鍗曚綅鍚嶇О")
+    private String receivingunitname;
+
+    /** 鎺ユ敹鍗曚綅 */
+    @ApiModelProperty("鎺ユ敹鍗曚綅")
+    @Excel(name = "鎺ユ敹鍗曚綅")
+    private String receivingunit;
+
+    /** 瀹屾垚鏃堕棿 */
+    @ApiModelProperty("瀹屾垚鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "瀹屾垚鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date completetime;
+
+    /** 璐熻矗浜虹紪鍙� */
+    @ApiModelProperty("璐熻矗浜虹紪鍙�")
+    private String responsibleuserid;
+
+    /** 璐熻矗浜哄鍚� */
+    @ApiModelProperty("璐熻矗浜哄鍚�")
+    @Excel(name = "璐熻矗浜哄鍚�")
+    private String responsibleusername;
+
+    /** 鍗忚皟鍛樹竴缂栧彿 */
+    @ApiModelProperty("鍗忚皟鍛樹竴缂栧彿")
+    private String coordinateduserido;
+
+    /** 鍗忚皟鍛樹竴濮撳悕 */
+    @ApiModelProperty("鍗忚皟鍛樹竴濮撳悕")
+    @Excel(name = "鍗忚皟鍛樹竴濮撳悕")
+    private String coordinatedusernameo;
+
+    /** 鍗忚皟鍛樹簩缂栧彿 */
+    @ApiModelProperty("鍗忚皟鍛樹簩缂栧彿")
+    private String coordinateduseridt;
+
+    /** 鍗忚皟鍛樹簩濮撳悕 */
+    @ApiModelProperty("鍗忚皟鍛樹簩濮撳悕")
+    @Excel(name = "鍗忚皟鍛樹簩濮撳悕")
+    private String coordinatedusernamet;
+
+    /** 闄勪欢 */
+    @ApiModelProperty("闄勪欢")
+    private String assessannex;
+
+    /** 鎹愮尞鍣ㄥ畼 */
+    @ApiModelProperty("鎹愮尞鍣ㄥ畼")
+    @Excel(name = "鎹愮尞鍣ㄥ畼")
+    private String donateorgan;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateconsolationfund.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateconsolationfund.java
new file mode 100644
index 0000000..b26cd2a
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateconsolationfund.java
@@ -0,0 +1,212 @@
+package com.ruoyi.project.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 璧勯噾鐢宠涓昏〃瀵硅薄 service_donateconsolationfund
+ * 
+ * @author ruoyi
+ * @date 2022-01-18
+ */
+@Data
+@ApiModel("璧勯噾鐢宠涓昏〃")
+public class ServiceDonateconsolationfund extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**  */
+    @ApiModelProperty("")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 涓庢崘鐚�呭叧绯� */
+    @ApiModelProperty("涓庢崘鐚�呭叧绯�")
+    @Excel(name = "涓庢崘鐚�呭叧绯�")
+    private String familyrelations;
+
+    /** 瀹跺睘濮撳悕 */
+    @ApiModelProperty("瀹跺睘濮撳悕")
+    @Excel(name = "瀹跺睘濮撳悕")
+    private String name;
+
+    /** 瀹跺睘鎬у埆 鏍规嵁瀛楀吀sys_user_sex */
+    @ApiModelProperty("瀹跺睘鎬у埆 鏍规嵁瀛楀吀sys_user_sex")
+    private Long sex;
+
+    /** 绉绘浜鸿瘉浠剁被鍨� */
+    @ApiModelProperty("绉绘浜鸿瘉浠剁被鍨�")
+    private Long idcardtype;
+
+    /** 绉绘浜鸿瘉浠跺彿鐮� */
+    @ApiModelProperty("绉绘浜鸿瘉浠跺彿鐮�")
+    @Excel(name = "绉绘浜鸿瘉浠跺彿鐮�")
+    private String idcardno;
+
+    /** 瀹跺睘鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("瀹跺睘鑱旂郴鐢佃瘽")
+    @Excel(name = "瀹跺睘鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 寮�鎴烽摱琛� */
+    @ApiModelProperty("寮�鎴烽摱琛�")
+    @Excel(name = "寮�鎴烽摱琛�")
+    private String depositbank;
+
+    /** 閾惰鐪佷唬鐮� */
+    @ApiModelProperty("閾惰鐪佷唬鐮�")
+    private String bankprovince;
+
+    /** 閾惰鐪佸悕绉� */
+    @ApiModelProperty("閾惰鐪佸悕绉�")
+    private String bankprovincename;
+
+    /** 閾惰甯傜紪鍙� */
+    @ApiModelProperty("閾惰甯傜紪鍙�")
+    private String bankcity;
+
+    /** 閾惰甯傚悕绉� */
+    @ApiModelProperty("閾惰甯傚悕绉�")
+    private String bankcityname;
+
+    /** 閾惰鎵�灞炶閬擄紙闀囷級 */
+    @ApiModelProperty("閾惰鎵�灞炶閬擄紙闀囷級")
+    private String banktown;
+
+    /** 閾惰鎵�灞炶閬擄紙闀囷級鍚嶇О */
+    @ApiModelProperty("閾惰鎵�灞炶閬擄紙闀囷級鍚嶇О")
+    private String banktownname;
+
+    /** 鍒嗚鍚嶇О */
+    @ApiModelProperty("鍒嗚鍚嶇О")
+    private String branchbankname;
+
+    /** 鍗″彿 */
+    @ApiModelProperty("鍗″彿")
+    @Excel(name = "鍗″彿")
+    private String bankcardno;
+
+    /** 閾惰鍗$収鐗囪矾寰� */
+    @ApiModelProperty("閾惰鍗$収鐗囪矾寰�")
+    private String annexbankcard;
+
+    /** 鐧昏琛ㄧ収鐗囪矾寰� */
+    @ApiModelProperty("鐧昏琛ㄧ収鐗囪矾寰�")
+    private String annexregistform;
+
+    /** 鐢宠閲戦 */
+    @ApiModelProperty("鐢宠閲戦")
+    @Excel(name = "鐢宠閲戦")
+    private BigDecimal amountrequested;
+
+    /** 璧勯噾澶囨敞 */
+    @ApiModelProperty("璧勯噾澶囨敞")
+    @Excel(name = "璧勯噾澶囨敞")
+    private String consolationmark;
+
+    /** 璧勯噾绫诲埆 */
+    @ApiModelProperty("璧勯噾绫诲埆")
+    @Excel(name = "璧勯噾绫诲埆")
+    private String consolationtype;
+
+    /** 棰勬敮璐圭敤 */
+    @ApiModelProperty("棰勬敮璐圭敤")
+    @Excel(name = "棰勬敮璐圭敤")
+    private BigDecimal prepaidamount;
+
+    /** 鍙戠エ寮犳暟 */
+    @ApiModelProperty("鍙戠エ寮犳暟")
+    @Excel(name = "鍙戠エ寮犳暟")
+    private Long invoicecount;
+
+    /** 闄勪欢鏁� */
+    @ApiModelProperty("闄勪欢鏁�")
+    @Excel(name = "闄勪欢鏁�")
+    private Long attachcount;
+
+    /** 閮ㄩ棬涓荤宸ュ彿 */
+    @ApiModelProperty("閮ㄩ棬涓荤宸ュ彿")
+    @Excel(name = "閮ㄩ棬涓荤宸ュ彿")
+    private String managerno;
+
+    /** 閮ㄩ棬涓荤鍚嶅瓧 */
+    @ApiModelProperty("閮ㄩ棬涓荤鍚嶅瓧")
+    @Excel(name = "閮ㄩ棬涓荤鍚嶅瓧")
+    private String managername;
+
+    /** 閮ㄩ棬缂栧彿 */
+    @ApiModelProperty("閮ㄩ棬缂栧彿")
+    @Excel(name = "閮ㄩ棬缂栧彿")
+    private String deptmentno;
+
+    /** 閮ㄩ棬鍚嶇О */
+    @ApiModelProperty("閮ㄩ棬鍚嶇О")
+    @Excel(name = "閮ㄩ棬鍚嶇О")
+    private String deptmentname;
+
+    /** 涓績绛惧瓧 */
+    @ApiModelProperty("涓績绛惧瓧")
+    @Excel(name = "涓績绛惧瓧")
+    private String opochecker;
+
+    /** 璐㈠姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("璐㈠姟鍓櫌闀跨瀛�")
+    @Excel(name = "璐㈠姟鍓櫌闀跨瀛�")
+    private String finvicepresident;
+
+    /** 涓氬姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("涓氬姟鍓櫌闀跨瀛�")
+    @Excel(name = "涓氬姟鍓櫌闀跨瀛�")
+    private String busvicepresident;
+
+    /** 鍔炲叕瀹や富浠荤瀛� */
+    @ApiModelProperty("鍔炲叕瀹や富浠荤瀛�")
+    @Excel(name = "鍔炲叕瀹や富浠荤瀛�")
+    private String officedirector;
+
+    /** 璐㈠姟瀹や富浠荤瀛� */
+    @ApiModelProperty("璐㈠姟瀹や富浠荤瀛�")
+    @Excel(name = "璐㈠姟瀹や富浠荤瀛�")
+    private String financedirector;
+
+    /** 璐㈠姟瀹℃牳 */
+    @ApiModelProperty("璐㈠姟瀹℃牳")
+    @Excel(name = "璐㈠姟瀹℃牳")
+    private String financechecher;
+
+    /** 璁板綍鐘舵�� */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private String recordstatus;
+
+    /** 涓婁紶鏍囧織 */
+    @ApiModelProperty("涓婁紶鏍囧織")
+    @Excel(name = "涓婁紶鏍囧織")
+    private String uploadflag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateflowchart.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateflowchart.java
new file mode 100644
index 0000000..5484cda
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateflowchart.java
@@ -0,0 +1,47 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 鎹愮尞娴佺▼瀵硅薄 service_donateflowchart
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+@Data
+public class ServiceDonateflowchart extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 娴佺▼鍚嶇О */
+    @Excel(name = "娴佺▼鍚嶇О")
+    private String flowname;
+
+    /** 娴佺▼闄勪欢 */
+    private String flowannex;
+
+    /** 娴佺▼鍐呭 */
+    private String flowcontent;
+
+    /** 娴佺▼缁撹 */
+    @Excel(name = "娴佺▼缁撹")
+    private Long flowconclusion;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatefollowup.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatefollowup.java
new file mode 100644
index 0000000..114a1e1
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatefollowup.java
@@ -0,0 +1,107 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎹愮尞闅忚瀵硅薄 service_donatefollowup
+ * 
+ * @author ruoyi
+ * @date 2021-12-10
+ */
+@Data
+@ApiModel("鎹愮尞闅忚")
+public class ServiceDonatefollowup extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 鎹愮尞闅忚ID */
+    //@ApiModelProperty("鎹愮尞闅忚ID")
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 闅忚搴忓彿锛堢n娆★級 */
+    @ApiModelProperty("闅忚搴忓彿锛堢n娆★級")
+    @Excel(name = "闅忚搴忓彿", readConverterExp = "绗�=n娆�")
+    private Long seqno;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鍏宠仈service_donateorgan琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donateorgan琛ㄧ殑ID")
+    private Long organid;
+
+    /** 鍣ㄥ畼鍙椾綋鑰呭鍚� */
+    @ApiModelProperty("鍣ㄥ畼鍙椾綋鑰呭鍚�")
+    @Excel(name = "鍣ㄥ畼鍙椾綋鑰呭鍚�")
+    private String recipientname;
+
+    /** 鍣ㄥ畼鍙椾綋鑰呯數璇� */
+    @ApiModelProperty("鍣ㄥ畼鍙椾綋鑰呯數璇�")
+    @Excel(name = "鍣ㄥ畼鍙椾綋鑰呯數璇�")
+    private String recipientphone;
+
+    /** 鍣ㄥ畼鍙椾綋鑰呮弿杩� */
+    @ApiModelProperty("鍣ㄥ畼鍙椾綋鑰呮弿杩�")
+    private String recipientdescribe;
+
+    /** 绉绘鍖婚櫌缂栧彿 */
+    @ApiModelProperty("绉绘鍖婚櫌缂栧彿")
+    private String hospitalno;
+
+    /** 绉绘鍖婚櫌鍚嶇О */
+    @ApiModelProperty("绉绘鍖婚櫌鍚嶇О")
+    @Excel(name = "绉绘鍖婚櫌鍚嶇О")
+    private String hospitalname;
+
+    /** 绉绘鍖婚櫌绉戝 */
+    @ApiModelProperty("绉绘鍖婚櫌绉戝")
+    private String hospitaldept;
+
+    /** 鎺ュ彈闅忚鍖荤敓濮撳悕 */
+    @ApiModelProperty("鎺ュ彈闅忚鍖荤敓濮撳悕")
+    @Excel(name = "鎺ュ彈闅忚鍖荤敓濮撳悕")
+    private String doctorname;
+
+    /** 鎺ュ彈闅忚鍖荤敓鐢佃瘽 */
+    @ApiModelProperty("鎺ュ彈闅忚鍖荤敓鐢佃瘽")
+    private String doctorphone;
+
+    /** 鍖荤敓鎻忚堪 */
+    @ApiModelProperty("鍖荤敓鎻忚堪")
+    @Excel(name = "鍖荤敓鎻忚堪")
+    private String doctordescribe;
+
+    /** 鎹愮尞缁撴灉 */
+    @ApiModelProperty("鎹愮尞缁撴灉")
+    @Excel(name = "鎹愮尞缁撴灉")
+    private String donateresult;
+
+    /** 闅忚鎻忚堪 */
+    @ApiModelProperty("闅忚鎻忚堪")
+    @Excel(name = "闅忚鎻忚堪")
+    private String followupdescribe;
+
+    /** 闅忚鑰� */
+    @ApiModelProperty("闅忚鑰�")
+    private String followupno;
+
+    /** 闅忚鏃堕棿 */
+    @ApiModelProperty("闅忚鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "闅忚鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date followuptime;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorgan.java
new file mode 100644
index 0000000..21cbdad
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorgan.java
@@ -0,0 +1,146 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎹愮尞鍣ㄥ畼绠$悊瀵硅薄 service_donateorgan
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Data
+@ApiModel("鎹愮尞鍣ㄥ畼绠$悊")
+public class ServiceDonateorgan extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ */
+	@ApiModelProperty("鍣ㄥ畼绫诲埆")
+    @Excel(name = "鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ")
+    private String organno;
+
+    /** 鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ */
+    @ApiModelProperty("鍣ㄥ畼绫诲埆鍚嶇О")
+    @Excel(name = "鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ")
+    private String organname;
+
+    /** 鍣ㄥ畼鐘舵�� 1锛氶鐧昏 2锛氬凡鑾峰彇 3锛氬垎閰嶇櫥璁�  4锛氬垎閰嶅鏍革紙宸插垎閰嶏級 4锛氳繍杈撲腑 5锛氬凡绉绘 */
+    @Excel(name = "鍣ㄥ畼鐘舵�� 1锛氶鐧昏 2锛氬凡鑾峰彇 3锛氬垎閰嶇櫥璁�  4锛氬垎閰嶅鏍�", readConverterExp = "宸插垎閰�")
+    @ApiModelProperty("鍣ㄥ畼鐘舵��")
+    private String organstate;
+
+    /** 鍣ㄥ畼缂栧彿 瑙佽瘉鐧昏鍚庣敓鎴� */
+    @ApiModelProperty("鍣ㄥ畼缂栧彿")
+    @Excel(name = "鍣ㄥ畼缂栧彿 瑙佽瘉鐧昏鍚庣敓鎴�")
+    private String organnumber;
+
+    /** 鍣ㄥ畼鑾峰彇鏃堕棿 */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date organgettime;
+
+    /** 鍖荤敓濮撳悕 */
+    @ApiModelProperty("鍖荤敓濮撳悕")
+    @Excel(name = "鍖荤敓濮撳悕")
+    private String organgetdoct;
+
+    /** 鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛� */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛�")
+    private String gainhospitalno;
+
+    /** 鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛� */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛�")
+    private String gainhospitalname;
+
+    /** 鍣ㄥ畼绉绘鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛� */
+    @ApiModelProperty("鍣ㄥ畼绉绘鏈烘瀯缂栧彿")
+    @Excel(name = "鍣ㄥ畼绉绘鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛�")
+    private String transplanthospitalno;
+
+    /** 鍣ㄥ畼绉绘鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛� */
+    @ApiModelProperty("鍣ㄥ畼绉绘鏈烘瀯鍚嶇О")
+    @Excel(name = "鍣ㄥ畼绉绘鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛�")
+    private String transplanthospitalname;
+
+    /** 绉绘鍖荤敓 */
+    @ApiModelProperty("绉绘鍖荤敓")
+    @Excel(name = "绉绘鍖荤敓")
+    private String transplantdoct;
+
+    /** 绉绘鏃堕棿 */
+    @ApiModelProperty("绉绘鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "绉绘鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date transplanttime;
+
+
+    /** 鏄惁鑾峰彇鍓嶆椿妫� */
+    @ApiModelProperty("鏄惁鑾峰彇鍓嶆椿妫�")
+    @Excel(name = "鏄惁鑾峰彇鍓嶆椿妫�")
+    private String isbiopsybefore;
+
+    /** 鏄惁鑾峰彇鍚庢椿妫� */
+    @ApiModelProperty("鏄惁鑾峰彇鍚庢椿妫�")
+    @Excel(name = "鏄惁鑾峰彇鍚庢椿妫�")
+    private String isbiopsyafter;
+
+    /** 鏄惁杈圭紭鍣ㄥ畼 */
+    @ApiModelProperty("鏄惁杈圭紭鍣ㄥ畼")
+    @Excel(name = "鏄惁杈圭紭鍣ㄥ畼")
+    private String ismarginalorgan;
+
+    /** 鏄惁鐥呭師鑿岄槼鎬� */
+    @ApiModelProperty("鏄惁鐥呭師鑿岄槼鎬�")
+    @Excel(name = "鏄惁鐥呭師鑿岄槼鎬�")
+    private String ispathogenpositive;
+
+    /** 鏄惁鍘熷彂鎬ф棤鍔熻兘 */
+    @ApiModelProperty("鏄惁鍘熷彂鎬ф棤鍔熻兘")
+    @Excel(name = "鏄惁鍘熷彂鎬ф棤鍔熻兘")
+    private String ispnf;
+
+    /** 鏄惁鍔熻兘寤惰繜鎬ф仮澶� */
+    @ApiModelProperty("鏄惁鍔熻兘寤惰繜鎬ф仮澶�")
+    @Excel(name = "鏄惁鍔熻兘寤惰繜鎬ф仮澶�")
+    private String isdgf;
+
+    /** 寮冪敤鍘熷洜 */
+    @ApiModelProperty("寮冪敤鍘熷洜")
+    @Excel(name = "寮冪敤鍘熷洜")
+    private String abandonreason;
+
+    /** 閲嶆柊鍒嗛厤鍘熷洜 */
+    @ApiModelProperty("閲嶆柊鍒嗛厤鍘熷洜")
+    @Excel(name = "閲嶆柊鍒嗛厤鍘熷洜")
+    private String reallocationreason;
+
+
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitness.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitness.java
new file mode 100644
index 0000000..5557bc2
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitness.java
@@ -0,0 +1,195 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎹愮尞瑙佽瘉瀵硅薄 service_donationwitness
+ * 
+ * @author ruoyi
+ * @date 2021-11-17
+ */
+@Data
+@ApiModel("鎹愮尞瑙佽瘉")
+public class ServiceDonationwitness extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**  */
+    @ApiModelProperty("")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿 */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿")
+    private String gainhospitalno;
+
+    /** 鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О")
+    private String gainhospitalname;
+
+    /** 姝讳骸鏃堕棿 */
+    @ApiModelProperty("姝讳骸鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "姝讳骸鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date deathtime;
+
+    /** 姝讳骸鍘熷洜 */
+    @ApiModelProperty("姝讳骸鍘熷洜")
+    @Excel(name = "姝讳骸鍘熷洜")
+    private String deathreason;
+
+    /** 姝讳骸鍒ゅ畾鍖荤敓涓� */
+    @ApiModelProperty("姝讳骸鍒ゅ畾鍖荤敓涓�")
+    @Excel(name = "姝讳骸鍒ゅ畾鍖荤敓涓�")
+    private String deathjudgedocto;
+
+    /** 姝讳骸鍒ゅ畾鍖荤敓浜� */
+    @ApiModelProperty("姝讳骸鍒ゅ畾鍖荤敓浜�")
+    @Excel(name = "姝讳骸鍒ゅ畾鍖荤敓浜�")
+    private String deathjudgedoctt;
+
+    /** 姝讳骸璇佹槑闄勪欢璺緞 */
+    @ApiModelProperty("姝讳骸璇佹槑闄勪欢璺緞")
+    private String deathjudgeannex;
+
+    /** 鎵嬫湳寮�濮嬫椂闂� */
+    @ApiModelProperty("鎵嬫湳寮�濮嬫椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鎵嬫湳寮�濮嬫椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date operationbegtime;
+
+    /** 鎵嬫湳缁撴潫鏃堕棿 */
+    @ApiModelProperty("鎵嬫湳缁撴潫鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鎵嬫湳缁撴潫鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date operationendtime;
+
+    /** 鎵嬫湳鍖荤敓 */
+    @ApiModelProperty("鎵嬫湳鍖荤敓")
+    @Excel(name = "鎵嬫湳鍖荤敓")
+    private String operationdoctor;
+
+    /** 鏄惁榛樺搥缂呮��浠紡 */
+    @ApiModelProperty("鏄惁榛樺搥缂呮��浠紡")
+    @Excel(name = "鏄惁榛樺搥缂呮��浠紡")
+    private Integer isspendremember;
+
+    /** 鏄惁鎭㈠閬椾綋浠 */
+    @ApiModelProperty("鏄惁鎭㈠閬椾綋浠")
+    @Excel(name = "鏄惁鎭㈠閬椾綋浠")
+    private Integer isrestoreremains;
+
+    /** 缂呮��浠紡闄勪欢璺緞 */
+    @ApiModelProperty("缂呮��浠紡闄勪欢璺緞")
+    private String rememberannex;
+
+    /** 璐熻矗浜虹紪鍙� */
+    @ApiModelProperty("璐熻矗浜虹紪鍙�")
+    private String responsibleuserid;
+
+    /** 璐熻矗浜哄鍚� */
+    @ApiModelProperty("璐熻矗浜哄鍚�")
+    @Excel(name = "璐熻矗浜哄鍚�")
+    private String responsibleusername;
+
+    /** 鑱旂粶浜轰竴缂栧彿 */
+    @ApiModelProperty("鑱旂粶浜轰竴缂栧彿")
+    private String coordinateduserido;
+
+    /** 鑱旂粶浜轰竴濮撳悕 */
+    @ApiModelProperty("鑱旂粶浜轰竴濮撳悕")
+    private String coordinatedusernameo;
+
+    /** 鑱旂粶浜轰簩缂栧彿 */
+    @ApiModelProperty("鑱旂粶浜轰簩缂栧彿")
+    private String coordinateduseridt;
+
+    /** 鑱旂粶浜轰簩濮撳悕 */
+    @ApiModelProperty("鑱旂粶浜轰簩濮撳悕")
+    private String coordinatedusernamet;
+
+    /** 鑵逛富鍔ㄨ剦鎻掔鏃堕棿 */
+    @ApiModelProperty("鑵逛富鍔ㄨ剦鎻掔鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鑵逛富鍔ㄨ剦鎻掔鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date abdominalaortacannulatime;
+
+    /** 鑵逛富鍔ㄨ剦鐏屾敞鏃堕棿 */
+    @ApiModelProperty("鑵逛富鍔ㄨ剦鐏屾敞鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鑵逛富鍔ㄨ剦鐏屾敞鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date abdominalaortaperfusiontime;
+
+    /** 闂ㄩ潤鑴夋彃绠℃椂闂� */
+    @ApiModelProperty("闂ㄩ潤鑴夋彃绠℃椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "闂ㄩ潤鑴夋彃绠℃椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date portalveincannulatime;
+
+    /** 闂ㄩ潤鑴夌亴娉ㄦ椂闂� */
+    @ApiModelProperty("闂ㄩ潤鑴夌亴娉ㄦ椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "闂ㄩ潤鑴夌亴娉ㄦ椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date portalveinperfusiontime;
+
+    /** 鑲哄姩鑴夋彃绠℃椂闂� */
+    @ApiModelProperty("鑲哄姩鑴夋彃绠℃椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鑲哄姩鑴夋彃绠℃椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date pulmonaryarterycannulatime;
+
+    /** 鑲哄姩鑴夌亴娉ㄦ椂闂� */
+    @ApiModelProperty("鑲哄姩鑴夌亴娉ㄦ椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鑲哄姩鑴夌亴娉ㄦ椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date pulmonaryarteryperfusiontime;
+
+    /** 涓诲姩鑴夋彃绠℃椂闂� */
+    @ApiModelProperty("涓诲姩鑴夋彃绠℃椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓诲姩鑴夋彃绠℃椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date aortacannulatime;
+
+    /** 涓诲姩鑴夌亴娉ㄦ椂闂� */
+    @ApiModelProperty("涓诲姩鑴夌亴娉ㄦ椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓诲姩鑴夌亴娉ㄦ椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date aortaperfusiontime;
+
+    /** 鎹愮尞鍣ㄥ畼 */
+    @ApiModelProperty("鎹愮尞鍣ㄥ畼")
+    @Excel(name = "鎹愮尞鍣ㄥ畼")
+    private String organdonation;
+
+    /** 鎹愮尞鍣ㄥ畼 鍏朵粬 */
+    @ApiModelProperty("鎹愮尞鍣ㄥ畼 鍏朵粬")
+    @Excel(name = "鎹愮尞鍣ㄥ畼 鍏朵粬")
+    private String organdonationOther;
+
+
+    /** 鎹愮尞绫诲埆 */
+    @ApiModelProperty("鎹愮尞绫诲埆")
+    @Excel(name = "鎹愮尞绫诲埆")
+    private String donationcategory;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewopinions.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewopinions.java
new file mode 100644
index 0000000..88373e8
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewopinions.java
@@ -0,0 +1,73 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 浼︾悊瀹℃煡涓撳鎰忚瀵硅薄 service_ethicalreviewopinions
+ * 
+ * @author ruoyi
+ * @date 2021-11-23
+ */
+@Data
+@ApiModel("浼︾悊瀹℃煡涓撳鎰忚")
+public class ServiceEthicalreviewopinions extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 涓撳鎰忚 */
+    @ApiModelProperty("涓撳鎰忚")
+    @Excel(name = "涓撳鎰忚")
+    private String expertopinion;
+
+    /** 涓撳缁撹  瑙佸瓧鍏� sys_0_1  */
+    @ApiModelProperty("涓撳缁撹  瑙佸瓧鍏� sys_0_1 ")
+    @Excel(name = "涓撳缁撹  瑙佸瓧鍏� sys_0_1 ")
+    private Long expertconclusion;
+
+    /** 涓撳鍚嶅瓧 */
+    @ApiModelProperty("涓撳鍚嶅瓧")
+    @Excel(name = "涓撳鍚嶅瓧")
+    private String expertname;
+
+    /** 缁撹鏃堕棿 */
+    @ApiModelProperty("缁撹鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "缁撹鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date conclusiontime;
+
+    /** 缁撹闄勪欢 鍙┖ 澶氫釜鐢�;鍙烽殧寮� */
+    @ApiModelProperty("缁撹闄勪欢 鍙┖ 澶氫釜鐢�;鍙烽殧寮�")
+    @Excel(name = "缁撹闄勪欢 鍙┖ 澶氫釜鐢�;鍙烽殧寮�")
+    private String conclusionannex;
+
+    /** 缁撹椤哄簭 */
+    @ApiModelProperty("缁撹椤哄簭")
+    @Excel(name = "缁撹椤哄簭")
+    private Long conclusionorder;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceExpertexpense.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceExpertexpense.java
new file mode 100644
index 0000000..fc62027
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceExpertexpense.java
@@ -0,0 +1,204 @@
+package com.ruoyi.project.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 璐圭敤鐢宠涓诲璞� service_expertexpense
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+@Data
+@ApiModel("璐圭敤鐢宠涓�")
+public class ServiceExpertexpense extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞缂栧彿 */
+    @ApiModelProperty("鎹愮尞缂栧彿")
+    @Excel(name = "鎹愮尞缂栧彿")
+    private String donorno;
+
+    /** 鎹愮尞鑰呭鍚� */
+    @ApiModelProperty("鎹愮尞鑰呭鍚�")
+    @Excel(name = "鎹愮尞鑰呭鍚�")
+    private String donorname;
+
+    /** 鐢宠浜虹紪鍙� */
+    @ApiModelProperty("鐢宠浜虹紪鍙�")
+    @Excel(name = "鐢宠浜虹紪鍙�")
+    private String userno;
+
+    /** 鐢宠浜哄鍚� */
+    @ApiModelProperty("鐢宠浜哄鍚�")
+    @Excel(name = "鐢宠浜哄鍚�")
+    private String username;
+
+    /** 鍒濇璇勪及璐圭敤 */
+    @ApiModelProperty("鍒濇璇勪及璐圭敤")
+    @Excel(name = "鍒濇璇勪及璐圭敤")
+    private BigDecimal ievaluatecost;
+
+    /** ECOM鍥㈤槦璐圭敤 */
+    @ApiModelProperty("ECOM鍥㈤槦璐圭敤")
+    @Excel(name = "ECOM鍥㈤槦璐圭敤")
+    private BigDecimal ecomteamcost;
+
+    /** 鍣ㄥ畼缁存姢璐圭敤 */
+    @ApiModelProperty("鍣ㄥ畼缁存姢璐圭敤")
+    @Excel(name = "鍣ㄥ畼缁存姢璐圭敤")
+    private BigDecimal mcost;
+
+    /** 鍣ㄥ畼缁存姢涓撳璐圭敤 */
+    @ApiModelProperty("鍣ㄥ畼缁存姢涓撳璐圭敤")
+    @Excel(name = "鍣ㄥ畼缁存姢涓撳璐圭敤")
+    private BigDecimal mexpertcost;
+
+    /** 鍣ㄥ畼缁存姢鍖荤枟鍥㈤槦璐圭敤 */
+    @ApiModelProperty("鍣ㄥ畼缁存姢鍖荤枟鍥㈤槦璐圭敤")
+    @Excel(name = "鍣ㄥ畼缁存姢鍖荤枟鍥㈤槦璐圭敤")
+    private BigDecimal mmedicalcost;
+
+    /** 鍣ㄥ畼缁存姢鎶ょ悊鍥㈤槦璐圭敤 */
+    @ApiModelProperty("鍣ㄥ畼缁存姢鎶ょ悊鍥㈤槦璐圭敤")
+    @Excel(name = "鍣ㄥ畼缁存姢鎶ょ悊鍥㈤槦璐圭敤")
+    private BigDecimal mnursecost;
+
+    /** 浼氳瘖鍔冲姟璐� */
+    @ApiModelProperty("浼氳瘖鍔冲姟璐�")
+    @Excel(name = "浼氳瘖鍔冲姟璐�")
+    private BigDecimal meetingcost;
+
+    /** 鐥呮埧鎶ょ悊鍔冲姟璐� */
+    @ApiModelProperty("鐥呮埧鎶ょ悊鍔冲姟璐�")
+    @Excel(name = "鐥呮埧鎶ょ悊鍔冲姟璐�")
+    private BigDecimal nursecost;
+
+    /** 妫�楠屾鏌ヨ垂 */
+    @ApiModelProperty("妫�楠屾鏌ヨ垂")
+    @Excel(name = "妫�楠屾鏌ヨ垂")
+    private BigDecimal checkcost;
+
+    /** 鎹愮尞鑰呰浆杩愯垂 */
+    @ApiModelProperty("鎹愮尞鑰呰浆杩愯垂")
+    @Excel(name = "鎹愮尞鑰呰浆杩愯垂")
+    private BigDecimal transportcost;
+
+    /** 鐥呮儏璇勪及涓撳璐� */
+    @ApiModelProperty("鐥呮儏璇勪及涓撳璐�")
+    @Excel(name = "鐥呮儏璇勪及涓撳璐�")
+    private BigDecimal illnessevaluatecost;
+
+    /** 鑴戞浜″垽瀹氫笓瀹惰垂 */
+    @ApiModelProperty("鑴戞浜″垽瀹氫笓瀹惰垂")
+    @Excel(name = "鑴戞浜″垽瀹氫笓瀹惰垂")
+    private BigDecimal deathjudgecost;
+
+    /** 鑴戞浜″叾浠栧姵鍔¤垂 */
+    @ApiModelProperty("鑴戞浜″叾浠栧姵鍔¤垂")
+    @Excel(name = "鑴戞浜″叾浠栧姵鍔¤垂")
+    private BigDecimal deathothercost;
+
+    /** 閬椾綋鎶ょ悊璐� */
+    @ApiModelProperty("閬椾綋鎶ょ悊璐�")
+    @Excel(name = "閬椾綋鎶ょ悊璐�")
+    private BigDecimal bnursecost;
+
+    /** 浼︾悊瀹℃煡涓撳璐� */
+    @ApiModelProperty("浼︾悊瀹℃煡涓撳璐�")
+    @Excel(name = "浼︾悊瀹℃煡涓撳璐�")
+    private BigDecimal ethicsevaluatecost;
+
+    /** 鍣ㄥ畼鑾峰彇鍔冲姟璐� */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鍔冲姟璐�")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鍔冲姟璐�")
+    private BigDecimal oproducecost;
+
+    /** 鍣ㄥ畼杞繍璐� */
+    @ApiModelProperty("鍣ㄥ畼杞繍璐�")
+    @Excel(name = "鍣ㄥ畼杞繍璐�")
+    private BigDecimal otransportcost;
+
+    /** 鍣ㄥ畼璐ㄩ噺璇勪及璐� */
+    @ApiModelProperty("鍣ㄥ畼璐ㄩ噺璇勪及璐�")
+    @Excel(name = "鍣ㄥ畼璐ㄩ噺璇勪及璐�")
+    private BigDecimal oevaluatecost;
+
+    /** 鍚堣鍔冲姟璐� */
+    @ApiModelProperty("鍚堣鍔冲姟璐�")
+    @Excel(name = "鍚堣鍔冲姟璐�")
+    private BigDecimal totalcost;
+
+    /** 閮ㄩ棬涓荤宸ュ彿 */
+    @ApiModelProperty("閮ㄩ棬涓荤宸ュ彿")
+    @Excel(name = "閮ㄩ棬涓荤宸ュ彿")
+    private String managerno;
+
+    /** 閮ㄩ棬涓荤鍚嶅瓧 */
+    @ApiModelProperty("閮ㄩ棬涓荤鍚嶅瓧")
+    @Excel(name = "閮ㄩ棬涓荤鍚嶅瓧")
+    private String managername;
+
+    /** 閮ㄩ棬缂栧彿 */
+    @ApiModelProperty("閮ㄩ棬缂栧彿")
+    @Excel(name = "閮ㄩ棬缂栧彿")
+    private String departmentno;
+
+    /** 閮ㄩ棬鍚嶇О */
+    @ApiModelProperty("閮ㄩ棬鍚嶇О")
+    @Excel(name = "閮ㄩ棬鍚嶇О")
+    private String departmentname;
+
+    /** 涓績绛惧瓧 */
+    @ApiModelProperty("涓績绛惧瓧")
+    @Excel(name = "涓績绛惧瓧")
+    private String opochecker;
+
+    /** 璐㈠姟瀹や富浠荤瀛� */
+    @ApiModelProperty("璐㈠姟瀹や富浠荤瀛�")
+    @Excel(name = "璐㈠姟瀹や富浠荤瀛�")
+    private String financedirector;
+
+    /** 璐㈠姟瀹℃牳 */
+    @ApiModelProperty("璐㈠姟瀹℃牳")
+    @Excel(name = "璐㈠姟瀹℃牳")
+    private String financechecher;
+
+    /** 璁板綍鐘舵�� */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private String recordstatus;
+
+    /** 涓婁紶鏍囧織 */
+    @ApiModelProperty("涓婁紶鏍囧織")
+    @Excel(name = "涓婁紶鏍囧織")
+    private String uploadflag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceExternalperson.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceExternalperson.java
new file mode 100644
index 0000000..9485bd0
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceExternalperson.java
@@ -0,0 +1,105 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 澶栧洿鍗曚綅浜哄憳瀵硅薄 service_externalperson
+ * 
+ * @author ruoyi
+ * @date 2021-11-24
+ */
+@Data
+@ApiModel("澶栧洿鍗曚綅浜哄憳")
+public class ServiceExternalperson extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 浜哄憳缂栧彿 */
+    @ApiModelProperty("浜哄憳缂栧彿")
+    @Excel(name = "浜哄憳缂栧彿")
+    private String userno;
+
+    /** 浜哄憳鍚嶇О */
+    @ApiModelProperty("浜哄憳鍚嶇О")
+    @Excel(name = "浜哄憳鍚嶇О")
+    private String username;
+
+    /** 鐢ㄦ埛鐘舵�� */
+    @ApiModelProperty("鐢ㄦ埛鐘舵��")
+    @Excel(name = "鐢ㄦ埛鐘舵��")
+    private Long userstatus;
+
+    /** 浜哄憳绫诲埆 */
+    @ApiModelProperty("浜哄憳绫诲埆")
+    @Excel(name = "浜哄憳绫诲埆")
+    private String usertype;
+
+    /** 宸ヤ綔浜哄憳缂栧彿 */
+    @ApiModelProperty("宸ヤ綔浜哄憳缂栧彿")
+    @Excel(name = "宸ヤ綔浜哄憳缂栧彿")
+    private String personnelunitno;
+
+    /** 鎷奸煶鐮� */
+    @ApiModelProperty("鎷奸煶鐮�")
+    private String pym;
+
+    /** 浜旂瑪鐮� */
+    @ApiModelProperty("浜旂瑪鐮�")
+    private String wbm;
+
+    /** 鎬у埆 */
+    @ApiModelProperty("鎬у埆")
+    private String sex;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    private String telephone;
+
+    /** 鑱旂郴鍦板潃 */
+    @ApiModelProperty("鑱旂郴鍦板潃")
+    private String address;
+
+    /** 鍗曚綅缂栧彿 */
+    @ApiModelProperty("鍗曚綅缂栧彿")
+    private String unitno;
+
+    /** 鍗曚綅鍚嶇О */
+    @ApiModelProperty("鍗曚綅鍚嶇О")
+    private String unitname;
+
+    /** 鑱岀О */
+    @ApiModelProperty("鑱岀О")
+    private String title;
+
+    /** 寮�鎴烽摱琛� */
+    @ApiModelProperty("寮�鎴烽摱琛�")
+    private String depositbank;
+
+    /** 鍒嗚鍚嶇О */
+    @ApiModelProperty("鍒嗚鍚嶇О")
+    private String branchbankname;
+
+    /** 閾惰鍗″彿 */
+    @ApiModelProperty("閾惰鍗″彿")
+    private String bankcardno;
+
+    /** 韬唤璇佸彿 */
+    @ApiModelProperty("韬唤璇佸彿")
+    private String idcardno;
+
+
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java
new file mode 100644
index 0000000..60503db
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java
@@ -0,0 +1,224 @@
+package com.ruoyi.project.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 璐圭敤鐢宠涓诲璞� service_fund
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+@Data
+@ApiModel("璐圭敤鐢宠涓�")
+public class ServiceFund extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 鐢宠浜虹紪鍙� */
+    @ApiModelProperty("鐢宠浜虹紪鍙�")
+    @Excel(name = "鐢宠浜虹紪鍙�")
+    private String userno;
+
+    /** 鐢宠浜哄鍚� */
+    @ApiModelProperty("鐢宠浜哄鍚�")
+    @Excel(name = "鐢宠浜哄鍚�")
+    private String username;
+
+    /** 宸ヤ綔鍗曚綅 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅")
+    @Excel(name = "宸ヤ綔鍗曚綅")
+    private String unitname;
+
+    /** 宸ヤ綔鍗曚綅缂栧彿 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅缂栧彿")
+    @Excel(name = "宸ヤ綔鍗曚綅缂栧彿")
+    private String unitno;
+
+    /** 宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿")
+    @Excel(name = "宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿")
+    private String unituserno;
+
+    /** 瀹跺睘鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("瀹跺睘鑱旂郴鐢佃瘽")
+    @Excel(name = "瀹跺睘鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    private String annexbankcard;
+
+    /** 鐧昏琛ㄧ収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("鐧昏琛ㄧ収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "鐧昏琛ㄧ収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    private String annexregistform;
+
+    /** 鐢宠閲戦 */
+    @ApiModelProperty("鐢宠閲戦")
+    @Excel(name = "鐢宠閲戦")
+    private Double amountrequested;
+
+    /** 璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType */
+    @ApiModelProperty("璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    @Excel(name = "璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    private String applytype;
+
+    /** 棰勬敮璐圭敤 */
+    @ApiModelProperty("棰勬敮璐圭敤")
+    @Excel(name = "棰勬敮璐圭敤")
+    private Double prepaidamount;
+
+    /** 鍙戠エ寮犳暟 */
+    @ApiModelProperty("鍙戠エ寮犳暟")
+    @Excel(name = "鍙戠エ寮犳暟")
+    private Long invoicecount;
+
+    /** 闄勪欢鏁� */
+    @ApiModelProperty("闄勪欢鏁�")
+    @Excel(name = "闄勪欢鏁�")
+    private Long attachcount;
+
+    /** 閮ㄩ棬涓荤宸ュ彿 */
+    @ApiModelProperty("閮ㄩ棬涓荤宸ュ彿")
+    @Excel(name = "閮ㄩ棬涓荤宸ュ彿")
+    private String managerno;
+
+    /** 閮ㄩ棬涓荤鍚嶅瓧 */
+    @ApiModelProperty("閮ㄩ棬涓荤鍚嶅瓧")
+    @Excel(name = "閮ㄩ棬涓荤鍚嶅瓧")
+    private String managername;
+
+    /** 閮ㄩ棬缂栧彿 */
+    @ApiModelProperty("閮ㄩ棬缂栧彿")
+    @Excel(name = "閮ㄩ棬缂栧彿")
+    private String deptmentno;
+
+    /** 閮ㄩ棬鍚嶇О */
+    @ApiModelProperty("閮ㄩ棬鍚嶇О")
+    @Excel(name = "閮ㄩ棬鍚嶇О")
+    private String deptmentname;
+
+    /** 涓績绛惧瓧 */
+    @ApiModelProperty("涓績绛惧瓧")
+    @Excel(name = "涓績绛惧瓧")
+    private String opochecker;
+
+    /** 璐㈠姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("璐㈠姟鍓櫌闀跨瀛�")
+    @Excel(name = "璐㈠姟鍓櫌闀跨瀛�")
+    private String finvicepresident;
+
+    /** 涓氬姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("涓氬姟鍓櫌闀跨瀛�")
+    @Excel(name = "涓氬姟鍓櫌闀跨瀛�")
+    private String busvicepresident;
+
+    /** 鍔炲叕瀹や富浠荤瀛� */
+    @ApiModelProperty("鍔炲叕瀹や富浠荤瀛�")
+    @Excel(name = "鍔炲叕瀹や富浠荤瀛�")
+    private String officedirector;
+
+    /** 璐㈠姟瀹や富浠荤瀛� */
+    @ApiModelProperty("璐㈠姟瀹や富浠荤瀛�")
+    @Excel(name = "璐㈠姟瀹や富浠荤瀛�")
+    private String financedirector;
+
+    /** 璐㈠姟瀹℃牳 */
+    @ApiModelProperty("璐㈠姟瀹℃牳")
+    @Excel(name = "璐㈠姟瀹℃牳")
+    private String financechecher;
+
+    /** 璁板綍鐘舵�� */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private Integer recordstatus;
+
+    /** 涓婁紶鏍囧織 */
+    @ApiModelProperty("涓婁紶鏍囧織")
+    @Excel(name = "涓婁紶鏍囧織")
+    private String uploadflag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+    /** 璐圭敤鎬婚噾棰� */
+    @ApiModelProperty("璐圭敤鎬婚噾棰�")
+    private Double totalcost;
+
+    /** 鑾峰彇涓撳鎬昏垂鐢� */
+    @ApiModelProperty("鑾峰彇涓撳鎬昏垂鐢�")
+    private Double procurementcost;
+
+    /** 涓撳璐圭敤鎬婚噾棰� */
+    @ApiModelProperty("涓撳璐圭敤鎬婚噾棰�")
+    private Double expertcost;
+
+    /** 浼︾悊瀹℃煡璐圭敤鎬婚噾棰� */
+    @ApiModelProperty("浼︾悊瀹℃煡璐圭敤鎬婚噾棰�")
+    private Double ethicscost;
+
+    /** 鎹愮尞鑰呭尰瀛︽垚鏈�婚噾棰� */
+    @ApiModelProperty("鎹愮尞鑰呭尰瀛︽垚鏈�婚噾棰�")
+    private Double medicalcost;
+
+    /** 鎹愮尞鑰呭灞為瀹胯垂鎬婚噾棰� */
+    @ApiModelProperty("鎹愮尞鑰呭灞為瀹胯垂鎬婚噾棰�")
+    private Double familycost;
+
+    /** 鎹愮尞鑰呭杽鍚庢垚鏈�婚噾棰� */
+    @ApiModelProperty("鎹愮尞鑰呭杽鍚庢垚鏈�婚噾棰�")
+    private Double aftercarecost;
+
+    @ApiModelProperty("鎹愮尞鑰呭鍚�")
+    private String donorname;
+
+    /** 褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑 */
+    @ApiModelProperty("褰撳墠瀹℃牳绾у埆")
+    private int flowlevel;
+
+    /** 绋庡墠閲戦 */
+    @ApiModelProperty("绋庡墠閲戦")
+    @Excel(name = "绋庡墠閲戦")
+    private Double pretaxcost;
+
+    /** 绋庡悗閲戦 */
+    @ApiModelProperty("绋庡悗閲戦")
+    @Excel(name = "绋庡悗閲戦")
+    private Double taxedcost;
+
+    /** 浜嬬敱澶囨敞 */
+    @ApiModelProperty("浜嬬敱澶囨敞")
+    @Excel(name = "浜嬬敱澶囨敞")
+    private String remark;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundShared.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundShared.java
new file mode 100644
index 0000000..b49c4f8
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundShared.java
@@ -0,0 +1,257 @@
+//package com.ruoyi.system.domain;
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 璐圭敤鐢宠涓诲璞� service_fund_shared
+ * 
+ * @author ruoyi
+ * @date 2023-01-10
+ */
+@Data
+@ApiModel("璐圭敤鐢宠涓�")
+public class ServiceFundShared extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 鎹愮尞鑰呭鍚� */
+    @ApiModelProperty("鎹愮尞鑰呭鍚�")
+    @Excel(name = "鎹愮尞鑰呭鍚�")
+    private String donorname;
+
+    /** 鐢宠浜虹紪鍙� */
+    @ApiModelProperty("鐢宠浜虹紪鍙�")
+    @Excel(name = "鐢宠浜虹紪鍙�")
+    private String userno;
+
+    /** 鐢宠浜哄鍚� */
+    @ApiModelProperty("鐢宠浜哄鍚�")
+    @Excel(name = "鐢宠浜哄鍚�")
+    private String username;
+
+    /** 宸ヤ綔鍗曚綅 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅")
+    @Excel(name = "宸ヤ綔鍗曚綅")
+    private String unitname;
+
+    /** 宸ヤ綔鍗曚綅缂栧彿 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅缂栧彿")
+    @Excel(name = "宸ヤ綔鍗曚綅缂栧彿")
+    private String unitno;
+
+    /** 宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿")
+    @Excel(name = "宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿")
+    private String unituserno;
+
+    /** 瀹跺睘鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("瀹跺睘鑱旂郴鐢佃瘽")
+    @Excel(name = "瀹跺睘鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    private String annexbankcard;
+
+    /** 鐧昏琛ㄧ収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("鐧昏琛ㄧ収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "鐧昏琛ㄧ収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    private String annexregistform;
+
+    /** 绋庡墠閲戦鍚堣 */
+    @ApiModelProperty("绋庡墠閲戦鍚堣")
+    @Excel(name = "绋庡墠閲戦鍚堣")
+    private BigDecimal pretaxcost;
+
+    /** 绋庡悗閲戦鍚堣 */
+    @ApiModelProperty("绋庡悗閲戦鍚堣")
+    @Excel(name = "绋庡悗閲戦鍚堣")
+    private BigDecimal taxedcost;
+
+    /** 璐圭敤鎬婚噾棰� */
+    @ApiModelProperty("璐圭敤鎬婚噾棰�")
+    @Excel(name = "璐圭敤鎬婚噾棰�")
+    private BigDecimal totalcost;
+
+    /** 鑾峰彇涓撳鎬昏垂鐢� */
+    @ApiModelProperty("鑾峰彇涓撳鎬昏垂鐢�")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    //@TableId(type = IdType.AUTO)
+    private BigDecimal procurementcost;
+
+    /** 涓撳璐圭敤鎬婚噾棰� */
+    @ApiModelProperty("涓撳璐圭敤鎬婚噾棰�")
+    @Excel(name = "涓撳璐圭敤鎬婚噾棰�")
+    private BigDecimal expertcost;
+
+    /** 浼︾悊瀹℃煡璐圭敤鎬婚噾棰� */
+    @ApiModelProperty("浼︾悊瀹℃煡璐圭敤鎬婚噾棰�")
+    @Excel(name = "浼︾悊瀹℃煡璐圭敤鎬婚噾棰�")
+    private BigDecimal ethicscost;
+
+    /** 鎹愮尞鑰呭尰瀛︽垚鏈�婚噾棰� */
+    @ApiModelProperty("鎹愮尞鑰呭尰瀛︽垚鏈�婚噾棰�")
+    @Excel(name = "鎹愮尞鑰呭尰瀛︽垚鏈�婚噾棰�")
+    private BigDecimal medicalcost;
+
+    /** 鎹愮尞鑰呭灞為瀹胯垂鎬婚噾棰� */
+    @ApiModelProperty("鎹愮尞鑰呭灞為瀹胯垂鎬婚噾棰�")
+    @Excel(name = "鎹愮尞鑰呭灞為瀹胯垂鎬婚噾棰�")
+    private BigDecimal familycost;
+
+    /** 鎹愮尞鑰呭杽鍚庢垚鏈�婚噾棰� */
+    @ApiModelProperty("鎹愮尞鑰呭杽鍚庢垚鏈�婚噾棰�")
+    @Excel(name = "鎹愮尞鑰呭杽鍚庢垚鏈�婚噾棰�")
+    private BigDecimal aftercarecost;
+
+    /** 鐢宠閲戦 */
+    @ApiModelProperty("鐢宠閲戦")
+    @Excel(name = "鐢宠閲戦")
+    private BigDecimal amountrequested;
+
+    /** 璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType */
+    @ApiModelProperty("璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    @Excel(name = "璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    private String applytype;
+
+    /** 棰勬敮璐圭敤 */
+    @ApiModelProperty("棰勬敮璐圭敤")
+    @Excel(name = "棰勬敮璐圭敤")
+    private BigDecimal prepaidamount;
+
+    /** 鍙戠エ寮犳暟 */
+    @ApiModelProperty("鍙戠エ寮犳暟")
+    @Excel(name = "鍙戠エ寮犳暟")
+    private Long invoicecount;
+
+    /** 闄勪欢鏁� */
+    @ApiModelProperty("闄勪欢鏁�")
+    @Excel(name = "闄勪欢鏁�")
+    private Long attachcount;
+
+    /** 閮ㄩ棬涓荤宸ュ彿 */
+    @ApiModelProperty("閮ㄩ棬涓荤宸ュ彿")
+    @Excel(name = "閮ㄩ棬涓荤宸ュ彿")
+    private String managerno;
+
+    /** 閮ㄩ棬涓荤鍚嶅瓧 */
+    @ApiModelProperty("閮ㄩ棬涓荤鍚嶅瓧")
+    @Excel(name = "閮ㄩ棬涓荤鍚嶅瓧")
+    private String managername;
+
+    /** 閮ㄩ棬缂栧彿 */
+    @ApiModelProperty("閮ㄩ棬缂栧彿")
+    @Excel(name = "閮ㄩ棬缂栧彿")
+    private String deptmentno;
+
+    /** 閮ㄩ棬鍚嶇О */
+    @ApiModelProperty("閮ㄩ棬鍚嶇О")
+    @Excel(name = "閮ㄩ棬鍚嶇О")
+    private String deptmentname;
+
+    /** 涓績绛惧瓧 */
+    @ApiModelProperty("涓績绛惧瓧")
+    @Excel(name = "涓績绛惧瓧")
+    private String opochecker;
+
+    /** 璐㈠姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("璐㈠姟鍓櫌闀跨瀛�")
+    @Excel(name = "璐㈠姟鍓櫌闀跨瀛�")
+    private String finvicepresident;
+
+    /** 涓氬姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("涓氬姟鍓櫌闀跨瀛�")
+    @Excel(name = "涓氬姟鍓櫌闀跨瀛�")
+    private String busvicepresident;
+
+    /** 鍔炲叕瀹や富浠荤瀛� */
+    @ApiModelProperty("鍔炲叕瀹や富浠荤瀛�")
+    @Excel(name = "鍔炲叕瀹や富浠荤瀛�")
+    private String officedirector;
+
+    /** 璐㈠姟瀹や富浠荤瀛� */
+    @ApiModelProperty("璐㈠姟瀹や富浠荤瀛�")
+    @Excel(name = "璐㈠姟瀹や富浠荤瀛�")
+    private String financedirector;
+
+    /** 璐㈠姟瀹℃牳 */
+    @ApiModelProperty("璐㈠姟瀹℃牳")
+    @Excel(name = "璐㈠姟瀹℃牳")
+    private String financechecher;
+
+    /** 鍙戞斁鐘舵�� */
+    @ApiModelProperty("鍙戞斁鐘舵��")
+    @Excel(name = "鍙戞斁鐘舵��")
+    private String isdistribute;
+
+    /** 璁板綍鐘舵�� */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private Integer recordstatus;
+
+    /** 涓婁紶鏍囧織 */
+    @ApiModelProperty("涓婁紶鏍囧織")
+    @Excel(name = "涓婁紶鏍囧織")
+    private String uploadflag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+    /** 褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑 */
+    @ApiModelProperty("褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑")
+    @Excel(name = "褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑")
+    private Long flowlevel;
+
+    /** 瀵规帴绯荤粺琛ㄥ崟id */
+    @ApiModelProperty("瀵规帴绯荤粺琛ㄥ崟id")
+    @Excel(name = "瀵规帴绯荤粺琛ㄥ崟id")
+    private String oaid;
+
+    /** 瀵规帴绯荤粺琛ㄥ崟鐘舵�� */
+    @ApiModelProperty("瀵规帴绯荤粺琛ㄥ崟鐘舵��")
+    @Excel(name = "瀵规帴绯荤粺琛ㄥ崟鐘舵��")
+    private String oabdzt;
+
+    /** 璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉� */
+    @ApiModelProperty("璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉�")
+    @Excel(name = "璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉�")
+    private String filename;
+
+    /** 璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉� */
+    @ApiModelProperty("璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉�")
+    @Excel(name = "璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉�")
+    private String fileid;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java
new file mode 100644
index 0000000..0910510
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java
@@ -0,0 +1,235 @@
+package com.ruoyi.project.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 璐圭敤鐢宠鏄庣粏瀵硅薄 service_funddetail
+ * 
+ * @author ruoyi
+ * @date 2022-01-25
+ */
+@Data
+@ApiModel("璐圭敤鐢宠鏄庣粏")
+public class ServiceFunddetail extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 涓婚敭ID */
+    @ApiModelProperty("涓婚敭ID")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 璧勯噾鐢宠涓昏〃ID */
+    @ApiModelProperty("璧勯噾鐢宠涓昏〃ID")
+    @Excel(name = "璧勯噾鐢宠涓昏〃ID")
+    private Long fundid;
+
+    /** 鏀剁泭浜哄鍚� 瀹跺睘鎴栦笓瀹� */
+    @ApiModelProperty("鏀剁泭浜哄鍚� 瀹跺睘鎴栦笓瀹�")
+    @Excel(name = "鏀剁泭浜哄鍚� 瀹跺睘鎴栦笓瀹�")
+    private String beneficiaryname;
+
+    /** 鏀剁泭浜虹紪鍙� */
+    @ApiModelProperty("鏀剁泭浜虹紪鍙�")
+    @Excel(name = "鏀剁泭浜虹紪鍙�")
+    private String beneficiaryno;
+
+    /** 宸ヤ綔鍗曚綅 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅")
+    @Excel(name = "宸ヤ綔鍗曚綅")
+    private String unitname;
+
+    /** 宸ヤ綔鍗曚綅缂栧彿 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅缂栧彿")
+    @Excel(name = "宸ヤ綔鍗曚綅缂栧彿")
+    private String unitno;
+
+    /** 宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿 */
+    @ApiModelProperty("宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿")
+    @Excel(name = "宸ヤ綔鍗曚綅鐢ㄦ埛缂栧彿")
+    private String unituserno;
+
+    /** 鑱岀О,瑙佸瓧鍏竤ys_professionaltitle */
+    @ApiModelProperty("鑱岀О")
+    @Excel(name = "鑱岀О")
+    private String title;
+
+    /** 璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType */
+    @ApiModelProperty("璇佷欢绫诲瀷")
+    @Excel(name = "璇佷欢绫诲瀷")
+    private Long idcardtype;
+
+    /** 璇佷欢鍙风爜 */
+    @ApiModelProperty("璇佷欢鍙风爜")
+    @Excel(name = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 鎬у埆 鏍规嵁瀛楀吀sys_user_sex */
+    @ApiModelProperty("鎬у埆")
+    @Excel(name = "鎬у埆")
+    private String sex;
+
+    /** 涓庢崘璧犺�呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation */
+    @ApiModelProperty("涓庢崘璧犺�呭叧绯�")
+    @Excel(name = "涓庢崘璧犺�呭叧绯�")
+    private String familyrelations;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 寮�鎴烽摱琛� */
+    @ApiModelProperty("寮�鎴烽摱琛�")
+    @Excel(name = "寮�鎴烽摱琛�")
+    private String depositbank;
+
+    /** 鍗″彿 */
+    @ApiModelProperty("鍗″彿")
+    @Excel(name = "鍗″彿")
+    private String bankcardno;
+
+    /** 鏀鍚嶇О */
+    @ApiModelProperty("鏀鍚嶇О")
+    @Excel(name = "鏀鍚嶇О")
+    private String branchbankname;
+
+    /** 閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("閾惰鍗$収鐗囪矾寰�")
+    @Excel(name = "閾惰鍗$収鐗囪矾寰�")
+    private String annexbankcard;
+
+    /** 鐧昏琛ㄧ収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("鐧昏琛ㄧ収鐗囪矾寰�")
+    @Excel(name = "鐧昏琛ㄧ収鐗囪矾寰�")
+    private String annexregistform;
+
+    /** 璧勯噾绫诲埆 */
+    @ApiModelProperty("璧勯噾绫诲埆")
+    @Excel(name = "璧勯噾绫诲埆")
+    private String applytype;
+
+    /** 璧勯噾绫诲埆鍚嶇О */
+    @ApiModelProperty("璧勯噾绫诲埆鍚嶇О")
+    @Excel(name = "璧勯噾绫诲埆鍚嶇О")
+    private String applytypename;
+
+    /** 椤圭洰ID */
+    @ApiModelProperty("椤圭洰ID")
+    @Excel(name = "椤圭洰ID")
+    private Long itemid;
+
+    /** 椤圭洰鍚嶇О */
+    @ApiModelProperty("椤圭洰鍚嶇О")
+    @Excel(name = "椤圭洰鍚嶇О")
+    private String itemname;
+
+    /** 椤圭洰绫诲埆 */
+    @ApiModelProperty("椤圭洰绫诲埆")
+    @Excel(name = "椤圭洰绫诲埆")
+    private String itemtype;
+
+    /** 鐢宠閲戦 */
+    @ApiModelProperty("鐢宠閲戦")
+    @Excel(name = "鐢宠閲戦")
+    private Double amount;
+
+    /** 棰勬敮閲戦 */
+    @ApiModelProperty("棰勬敮閲戦")
+    @Excel(name = "棰勬敮閲戦")
+    private Double prepaidamount;
+
+    /** 鎵g◣閲戦 */
+    @ApiModelProperty("鎵g◣閲戦")
+    @Excel(name = "鎵g◣閲戦")
+    private Double taxamount;
+
+    /** 鍙戠エ寮犳暟 */
+    @ApiModelProperty("鍙戠エ寮犳暟")
+    @Excel(name = "鍙戠エ寮犳暟")
+    private Long invoicecount;
+
+    /** 绋庡悗閲戦 */
+    @ApiModelProperty("绋庡悗閲戦")
+    @Excel(name = "绋庡悗閲戦")
+    private Double taxedamount;
+
+    /** 闄勪欢寮犳暟 */
+    @ApiModelProperty("闄勪欢寮犳暟")
+    @Excel(name = "闄勪欢寮犳暟")
+    private Long attachcount;
+
+    /** 璁板綍鐘舵�� */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private String recordstatus;
+
+    /** 涓婁紶鏍囧織 */
+    @ApiModelProperty("涓婁紶鏍囧織")
+    @Excel(name = "涓婁紶鏍囧織")
+    private String uploadflag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+    /** 鏁伴噺 */
+    @ApiModelProperty("鏁伴噺")
+    private Double quantity;
+
+    /** 浠锋牸 */
+    @ApiModelProperty("浠锋牸")
+    private Double price;
+
+    /** 鎹愮尞浜轰俊鎭痠d */
+    @ApiModelProperty("鎹愮尞浜轰俊鎭痠d")
+    private Long infoid;
+
+    /** 鎹愮尞浜虹紪鍙� */
+    @ApiModelProperty("鎹愮尞浜虹紪鍙�")
+    private String donorno;
+
+    /** 鎹愮尞浜哄鍚� */
+    @ApiModelProperty("鎹愮尞浜哄鍚�")
+    private String donorname;
+
+    /** 鏈嶅姟鑼冨洿 */
+    @ApiModelProperty("鏈嶅姟鑼冨洿")
+    private String servicesscope;
+
+    /** 鏈嶅姟鑼冨洿鍚嶇О */
+    @ApiModelProperty("鏈嶅姟鑼冨洿鍚嶇О")
+    private String servicesscopename;
+
+    /** 鏈嶅姟瀵硅薄 */
+    @ApiModelProperty("鏈嶅姟瀵硅薄")
+    private String servicetype;
+
+    /** 鏈嶅姟瀵硅薄鍚嶇О */
+    @ApiModelProperty("鏈嶅姟瀵硅薄鍚嶇О")
+    private String servicetypename;
+
+    private String itemcode;
+
+    private Integer orderno;
+
+    /** 浜嬬敱澶囨敞 */
+    @ApiModelProperty("浜嬬敱澶囨敞")
+    @Excel(name = "浜嬬敱澶囨敞")
+    private String remark;
+
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundflow.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundflow.java
new file mode 100644
index 0000000..d0b796a
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundflow.java
@@ -0,0 +1,71 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 璧勯噾瀹℃壒娴佺▼瀵硅薄 service_fundflow
+ * 
+ * @author ruoyi
+ * @date 2022-04-27
+ */
+@Data
+@ApiModel("璧勯噾瀹℃壒娴佺▼")
+public class ServiceFundflow extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 璐圭敤缂栧彿锛屽樊鏃呰垂鍏宠仈琛╯ervice_reimbursement ID; 璐圭敤鍏宠仈璐圭敤琛╯ervice_fund鐨処D */
+    @ApiModelProperty("璐圭敤缂栧彿锛屽樊鏃呰垂鍏宠仈琛╯ervice_reimbursement ID; 璐圭敤鍏宠仈璐圭敤琛╯ervice_fund鐨処D")
+    @Excel(name = "璐圭敤缂栧彿锛屽樊鏃呰垂鍏宠仈琛╯ervice_reimbursement ID; 璐圭敤鍏宠仈璐圭敤琛╯ervice_fund鐨処D")
+    private Long fundid;
+
+    /** 瀹℃牳浜虹紪鍙� */
+    @ApiModelProperty("瀹℃牳浜虹紪鍙�")
+    @Excel(name = "瀹℃牳浜虹紪鍙�")
+    private String checkuserno;
+
+    /** 瀹℃牳浜哄鍚� */
+    @ApiModelProperty("瀹℃牳浜哄鍚�")
+    @Excel(name = "瀹℃牳浜哄鍚�")
+    private String checkusername;
+
+    /** 娴佺▼鍐呭锛屾搷浣滃啓鎰忚寤鸿 */
+    @ApiModelProperty("娴佺▼鍐呭锛屾搷浣滃啓鎰忚寤鸿")
+    @Excel(name = "娴佺▼鍐呭锛屾搷浣滃啓鎰忚寤鸿")
+    private String flowcontent;
+
+    /** 娴佺▼缁撹 1锛氶�氳繃锛�2锛氶┏鍥烇紱 */
+    @ApiModelProperty("娴佺▼缁撹 1锛氶�氳繃锛�2锛氶┏鍥烇紱")
+    @Excel(name = "娴佺▼缁撹 1锛氶�氳繃锛�2锛氶┏鍥烇紱")
+    private Integer flowconclusion;
+
+    /** 璐圭敤绫诲埆  1锛氬樊鏃呰垂妯″潡  2锛氳垂鐢ㄧ敵璇锋ā鍧� */
+    @ApiModelProperty("璐圭敤绫诲埆  1锛氬樊鏃呰垂妯″潡  2锛氳垂鐢ㄧ敵璇锋ā鍧�")
+    @Excel(name = "璐圭敤绫诲埆  1锛氬樊鏃呰垂妯″潡  2锛氳垂鐢ㄧ敵璇锋ā鍧�")
+    private Integer fundtype;
+
+    /** 璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType */
+    @ApiModelProperty("璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    @Excel(name = "璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    private String applytype;
+
+    /** 瀹℃牳闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑 */
+    @ApiModelProperty("瀹℃牳闃舵")
+    @Excel(name = "瀹℃牳闃舵")
+    private Integer flowlevel;
+
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundflowrule.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundflowrule.java
new file mode 100644
index 0000000..357b696
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundflowrule.java
@@ -0,0 +1,65 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 璧勯噾瀹℃壒瑙勫垯瀵硅薄 service_fundflowrule
+ * 
+ * @author ruoyi
+ * @date 2022-04-27
+ */
+@Data
+@ApiModel("璧勯噾瀹℃壒瑙勫垯")
+public class ServiceFundflowrule extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType */
+    @ApiModelProperty("璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    @Excel(name = "璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    private String applytype;
+
+    /** 瀹℃牳浜虹紪鍙� */
+    @ApiModelProperty("瀹℃牳浜虹紪鍙�")
+    @Excel(name = "瀹℃牳浜虹紪鍙�")
+    private String checkuserno;
+
+    /** 瀹℃牳浜哄鍚� */
+    @ApiModelProperty("瀹℃牳浜哄鍚�")
+    @Excel(name = "瀹℃牳浜哄鍚�")
+    private String checkusername;
+
+    /** 鏄惁瑕侀獙璇侀儴闂紝鍙鏍稿悓閮ㄩ棬鐨� */
+    @ApiModelProperty("鏄惁瑕侀獙璇侀儴闂紝鍙鏍稿悓閮ㄩ棬鐨�")
+    @Excel(name = "鏄惁瑕侀獙璇侀儴闂紝鍙鏍稿悓閮ㄩ棬鐨�")
+    private Integer verificationdept;
+
+    /** 褰撳墠瀹℃牳绾у埆 */
+    @ApiModelProperty("褰撳墠瀹℃牳绾у埆")
+    @Excel(name = "褰撳墠瀹℃牳绾у埆")
+    private Integer flowlevel;
+
+    /** 鎬诲鏍哥骇鍒� */
+    @ApiModelProperty("鎬诲鏍哥骇鍒�")
+    @Excel(name = "鎬诲鏍哥骇鍒�")
+    private Integer totallevel;
+
+    /** 璐圭敤绫诲埆  1锛氬樊鏃呰垂妯″潡  2锛氳垂鐢ㄧ敵璇锋ā鍧� */
+    @ApiModelProperty("璐圭敤绫诲埆  1锛氬樊鏃呰垂妯″潡  2锛氳垂鐢ㄧ敵璇锋ā鍧�")
+    @Excel(name = "璐圭敤绫诲埆  1锛氬樊鏃呰垂妯″潡  2锛氳垂鐢ㄧ敵璇锋ā鍧�")
+    private Integer fundtype;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java
new file mode 100644
index 0000000..56a0fe5
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java
@@ -0,0 +1,118 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鍖诲璇勪及瀵硅薄 service_medicalevaluation
+ * 
+ * @author ruoyi
+ * @date 2021-11-19
+ */
+@Data
+@ApiModel("鍖诲璇勪及")
+public class ServiceMedicalevaluation extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**  */
+    @ApiModelProperty("")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 鐥呮儏姒傚喌 */
+    @ApiModelProperty("鐥呮儏姒傚喌")
+    @Excel(name = "鐥呮儏姒傚喌")
+    private String illnessoverview;
+
+    /** 鐤剧梾璇婃柇鍚嶇О */
+    @ApiModelProperty("鐤剧梾璇婃柇鍚嶇О")
+    @Excel(name = "鐤剧梾璇婃柇鍚嶇О")
+    private String diagnosisname;
+
+    /** 闄㈢骇璇勪及鍐呭 */
+    @ApiModelProperty("闄㈢骇璇勪及鍐呭")
+    @Excel(name = "闄㈢骇璇勪及鍐呭")
+    private String hospitalassesscontent;
+
+    /** 闄㈢骇璇勪及鍖荤敓 */
+    @ApiModelProperty("闄㈢骇璇勪及鍖荤敓")
+    @Excel(name = "闄㈢骇璇勪及鍖荤敓")
+    private String hospitalassessdoctor;
+
+    /** 闄㈢骇璇勪及鏃堕棿 */
+    @ApiModelProperty("闄㈢骇璇勪及鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "闄㈢骇璇勪及鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date hospitalassesstime;
+
+    /** 闄㈢骇璇勪及缁撹 */
+    @ApiModelProperty("闄㈢骇璇勪及缁撹")
+    @Excel(name = "闄㈢骇璇勪及缁撹")
+    private String hospitalassessconclusion;
+
+    /** 鐪佺骇璇勪及鍐呭 */
+    @ApiModelProperty("鐪佺骇璇勪及鍐呭")
+    @Excel(name = "鐪佺骇璇勪及鍐呭")
+    private String provincialassesscontent;
+
+    /** 鐪佺骇璇勪及鍖荤敓 */
+    @ApiModelProperty("鐪佺骇璇勪及鍖荤敓")
+    @Excel(name = "鐪佺骇璇勪及鍖荤敓")
+    private String provincialassessdoctor;
+
+    /** 鐪佺骇璇勪及鏃堕棿 */
+    @ApiModelProperty("鐪佺骇璇勪及鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鐪佺骇璇勪及鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date provincialassesstime;
+
+    /** 鐪佺骇璇勪及缁撹 */
+    @ApiModelProperty("鐪佺骇璇勪及缁撹")
+    @Excel(name = "鐪佺骇璇勪及缁撹")
+    private String provincialassessconclusion;
+
+    /** 鐪佺骇璇勪及缁勬牳蹇冩垚鍛樿瘎浼板唴瀹� */
+    @ApiModelProperty("鐪佺骇璇勪及缁勬牳蹇冩垚鍛樿瘎浼板唴瀹�")
+    @Excel(name = "鐪佺骇璇勪及缁勬牳蹇冩垚鍛樿瘎浼板唴瀹�")
+    private String coreteamassesscontent;
+
+    /** 鐪佺骇璇勪及缁勬牳蹇冩垚鍛樿瘎浼板尰鐢� */
+    @ApiModelProperty("鐪佺骇璇勪及缁勬牳蹇冩垚鍛樿瘎浼板尰鐢�")
+    @Excel(name = "鐪佺骇璇勪及缁勬牳蹇冩垚鍛樿瘎浼板尰鐢�")
+    private String coreteamassessdoctor;
+
+    /** 鐪佺骇璇勪及缁勬牳蹇冩垚鍛樿瘎浼版椂闂� */
+    @ApiModelProperty("鐪佺骇璇勪及缁勬牳蹇冩垚鍛樿瘎浼版椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鐪佺骇璇勪及缁勬牳蹇冩垚鍛樿瘎浼版椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date coreteamassesstime;
+
+    /** 鐪佺骇璇勪及缁勬牳蹇冩垚鍛樼粨璁� */
+    @ApiModelProperty("鐪佺骇璇勪及缁勬牳蹇冩垚鍛樼粨璁�")
+    @Excel(name = "鐪佺骇璇勪及缁勬牳蹇冩垚鍛樼粨璁�")
+    private String coreteamassessconclusion;
+
+    /** 璇勪及闄勪欢 */
+    @ApiModelProperty("璇勪及闄勪欢")
+    private String assessannex;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceOrganallocation.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceOrganallocation.java
new file mode 100644
index 0000000..2dbc47e
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceOrganallocation.java
@@ -0,0 +1,199 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * 鍣ㄥ畼鍒嗛厤瀵硅薄 service_organallocation
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Data
+@ApiModel("鍣ㄥ畼鍒嗛厤")
+public class ServiceOrganallocation extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 瀵瑰簲鍣ㄥ畼琛╯ervice_donateorgan鐨処D */
+    @Excel(name = "瀵瑰簲鍣ㄥ畼琛╯ervice_donateorgan鐨処D")
+    private Long organid;
+
+    /** 鍣ㄥ畼缂栧彿 */
+    @ApiModelProperty("鍣ㄥ畼缂栧彿")
+    @Excel(name = "鍣ㄥ畼缂栧彿")
+    private String organnumber;
+
+    /** 鐢宠浜虹紪鍙� */
+    @Excel(name = "鐢宠浜虹紪鍙�")
+	@ApiModelProperty("鐢宠浜虹紪鍙�")
+    private String applicantuserid;
+
+    /** 鐢宠浜哄鍚� */
+    @ApiModelProperty("鐢宠浜哄鍚�")
+    @Excel(name = "鐢宠浜哄鍚�")
+    private String applicantusername;
+
+    /** 鐢宠鏃堕棿 */
+    @ApiModelProperty("鐢宠鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鐢宠鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date applicanttime;
+
+    /** 瀹℃牳浜虹紪鍙� */
+    @ApiModelProperty("瀹℃牳浜虹紪鍙�")
+    @Excel(name = "瀹℃牳浜虹紪鍙�")
+    private String checkuserid;
+
+    /** 瀹℃牳浜哄鍚� */
+    @ApiModelProperty("瀹℃牳浜哄鍚�")
+    @Excel(name = "瀹℃牳浜哄鍚�")
+    private String checkusername;
+
+    /** 瀹℃牳鏃堕棿 */
+    @ApiModelProperty("瀹℃牳鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "瀹℃牳鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date checktime;
+
+    /** 瀹℃牳鎰忚 */
+    @ApiModelProperty("瀹℃牳鎰忚")
+    @Excel(name = "瀹℃牳鎰忚")
+    private String checksuggestion;
+
+    /** 0:鎻愪氦鍒嗛厤锛�1锛氬鏍搁�氳繃锛�2锛氬鏍告嫆缁� */
+    @Excel(name = "0:鎻愪氦鍒嗛厤锛�1锛氬鏍搁�氳繃锛�2锛氬鏍告嫆缁�")
+    @ApiModelProperty("鍒嗛厤鐘舵��")
+    private Long allocationstatus;
+
+    /** 绉绘浜哄鍚� */
+    @ApiModelProperty("绉绘浜哄鍚�")
+    @Excel(name = "绉绘浜哄鍚�")
+    private String name;
+
+    /** 绉绘浜烘�у埆 鏍规嵁瀛楀吀sys_user_sex */
+    @Excel(name = "绉绘浜烘�у埆 鏍规嵁瀛楀吀sys_user_sex")
+	@ApiModelProperty("绉绘浜烘�у埆")
+    private Long sex;
+
+    /** 绉绘浜鸿瘉浠剁被鍨� 鏍规嵁瀛楀吀sys_IDType */
+	@ApiModelProperty("绉绘浜鸿瘉浠剁被鍨�")
+    @Excel(name = "绉绘浜鸿瘉浠剁被鍨� 鏍规嵁瀛楀吀sys_IDType")
+    private Long idcardtype;
+
+    /** 绉绘浜鸿瘉浠跺彿鐮� */
+    @ApiModelProperty("绉绘浜鸿瘉浠跺彿鐮�")
+    @Excel(name = "绉绘浜鸿瘉浠跺彿鐮�")
+    private String idcardno;
+
+    /** 绉绘浜哄勾榫� */
+    @ApiModelProperty("绉绘浜哄勾榫�")	
+    @Excel(name = "绉绘浜哄勾榫�")
+    private Long age;
+
+    /** 绉绘浜哄勾榫勫崟浣� 鏍规嵁瀛楀吀sys_AgeUnit */
+    @Excel(name = "绉绘浜哄勾榫勫崟浣� 鏍规嵁瀛楀吀sys_AgeUnit")
+    @ApiModelProperty("绉绘浜哄勾榫勫崟浣�")	
+    private String ageunit;
+
+    /** 绉绘浜哄嚭鐢熸棩鏈� */
+    @Excel(name = "绉绘浜哄嚭鐢熸棩鏈�")
+    @ApiModelProperty("绉绘浜哄嚭鐢熸棩鏈�")
+    private String birthday;
+
+    /** 绉绘浜鸿仈绯荤數璇� */
+    @Excel(name = "绉绘浜鸿仈绯荤數璇�")
+    @ApiModelProperty("绉绘浜鸿仈绯荤數璇�")	
+    private String phone;
+
+    /** 绉绘浜虹幇浣忓湴鍧� */
+    @Excel(name = "绉绘浜虹幇浣忓湴鍧�")
+    @ApiModelProperty("绉绘浜虹幇浣忓湴鍧�")	
+    private String residenceaddress;
+
+    /** 绉绘浜虹幇浣忓湴鍧�鐪佷唬鐮� */
+    @Excel(name = "绉绘浜虹幇浣忓湴鍧�鐪佷唬鐮�")
+    @ApiModelProperty("绉绘浜虹幇浣忓湴鍧�鐪佷唬鐮�")	
+    private String residenceprovince;
+
+    /** 绉绘浜虹幇浣忓湴鍧�鐪佸悕绉� */
+    @Excel(name = "绉绘浜虹幇浣忓湴鍧�鐪佸悕绉�")
+    @ApiModelProperty("绉绘浜虹幇浣忓湴鍧�鐪佸悕绉�")	
+    private String residenceprovincename;
+
+    /** 绉绘浜哄競缂栧彿  鏍规嵁琛屾斂鍖哄垝琛� */
+    @Excel(name = "绉绘浜哄競缂栧彿  鏍规嵁琛屾斂鍖哄垝琛�")
+    @ApiModelProperty("绉绘浜哄競缂栧彿  鏍规嵁琛屾斂鍖哄垝琛�")	
+    private String residencecity;
+
+    /** 绉绘浜哄競鍚嶇О */
+    @Excel(name = "绉绘浜哄競鍚嶇О")
+    @ApiModelProperty("绉绘浜哄競鍚嶇О")	
+    private String residencecityname;
+
+    /** 绉绘浜烘墍灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛� */
+    @Excel(name = "绉绘浜烘墍灞炶閬�", readConverterExp = "闀�=")
+    @ApiModelProperty("绉绘浜烘墍灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛�")	
+    private String residencetown;
+
+    /** 绉绘浜烘墍灞炶閬擄紙闀囷級鍚嶇О */
+    @Excel(name = "绉绘浜烘墍灞炶閬�", readConverterExp = "闀�=")
+    @ApiModelProperty("绉绘浜烘墍灞炶閬擄紙闀囷級鍚嶇О")	
+    private String residencetownname;
+
+    /** 绉绘浜虹ぞ鍖猴紙鏉戯級缂栧彿 鏍规嵁琛屾斂鍖哄垝琛� */
+    @Excel(name = "绉绘浜虹ぞ鍖�", readConverterExp = "鏉�=")
+    @ApiModelProperty("绉绘浜虹ぞ鍖猴紙鏉戯級缂栧彿 鏍规嵁琛屾斂鍖哄垝琛�")	
+    private String residencecommunity;
+
+    /** 绉绘浜虹ぞ鍖猴紙鏉戯級鍚嶇О */
+    @Excel(name = "绉绘浜虹ぞ鍖�", readConverterExp = "鏉�=")
+    @ApiModelProperty("绉绘浜虹ぞ鍖猴紙鏉戯級鍚嶇О")	
+    private String residencecommunityname;
+
+    /** 绉绘浜烘墍灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛� */
+    @Excel(name = "绉绘浜烘墍灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")
+    @ApiModelProperty("绉绘浜烘墍灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")	
+    private String residencecountycode;
+
+    /** 绉绘浜烘墍灞炲尯鍩熷悕绉� */
+    @Excel(name = "绉绘浜烘墍灞炲尯鍩熷悕绉�")
+    @ApiModelProperty("绉绘浜烘墍灞炲尯鍩熷悕绉�")	
+    private String residencecountyname;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(exist = false)
+    private Date starttime;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(exist = false)
+    private Date endtime;
+
+    @TableField(exist = false)
+    private String city;
+
+    /** 鎶ュ憡鑰呯紪鍙� */
+    @TableField(exist = false)
+    private String reporterno;
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java
new file mode 100644
index 0000000..f807b28
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java
@@ -0,0 +1,214 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鎶ラ攢鐢宠瀵硅薄 service_reimbursement
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+@Data
+@ApiModel("鎶ラ攢鐢宠")
+public class ServiceReimbursement extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鎶ラ攢浜虹紪鍙� */
+    @ApiModelProperty("鎶ラ攢浜虹紪鍙�")
+    @Excel(name = "鎶ラ攢浜虹紪鍙�")
+    private String userno;
+
+    /** 鎶ラ攢浜哄鍚� */
+    @ApiModelProperty("鎶ラ攢浜哄鍚�")
+    @Excel(name = "鎶ラ攢浜哄鍚�")
+    private String username;
+
+    /** 璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType */
+    @ApiModelProperty("璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType")
+    @Excel(name = "璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType")
+    private String idcardtype;
+
+    /** 璇佷欢鍙风爜 */
+    @ApiModelProperty("璇佷欢鍙风爜")
+    @Excel(name = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 寮�鎴烽摱琛� */
+    @ApiModelProperty("寮�鎴烽摱琛�")
+    @Excel(name = "寮�鎴烽摱琛�")
+    private String depositbank;
+
+    /** 鍗″彿 */
+    @ApiModelProperty("鍗″彿")
+    @Excel(name = "鍗″彿")
+    private String bankcardno;
+
+    /** 鍒嗚鍚嶇О */
+    @ApiModelProperty("鍒嗚鍚嶇О")
+    @Excel(name = "鍒嗚鍚嶇О")
+    private String branchbankname;
+
+    /** 閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    private String annexbankcard;
+
+    /** 闄勪欢璺緞 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("闄勪欢璺緞 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "闄勪欢璺緞 澶氫釜鐢�;鍒嗗紑")
+    private String annexfiles;
+
+    /** 鐢宠閲戦 */
+    @ApiModelProperty("鐢宠閲戦")
+    @Excel(name = "鐢宠閲戦")
+    private Double amountrequested;
+
+    /** 棰勬敮璐圭敤 */
+    @ApiModelProperty("棰勬敮璐圭敤")
+    @Excel(name = "棰勬敮璐圭敤")
+    private Double prepaidamount;
+
+    /** 鍙戠エ寮犳暟 */
+    @ApiModelProperty("鍙戠エ寮犳暟")
+    @Excel(name = "鍙戠エ寮犳暟")
+    private Long invoicecount;
+
+    /** 闄勪欢鏁� */
+    @ApiModelProperty("闄勪欢鏁�")
+    @Excel(name = "闄勪欢鏁�")
+    private Long attachcount;
+
+    /** 閮ㄩ棬涓荤宸ュ彿 */
+    @ApiModelProperty("閮ㄩ棬涓荤宸ュ彿")
+    @Excel(name = "閮ㄩ棬涓荤宸ュ彿")
+    private String managerno;
+
+    /** 閮ㄩ棬涓荤鍚嶅瓧 */
+    @ApiModelProperty("閮ㄩ棬涓荤鍚嶅瓧")
+    @Excel(name = "閮ㄩ棬涓荤鍚嶅瓧")
+    private String managername;
+
+    /** 閮ㄩ棬缂栧彿 */
+    @ApiModelProperty("閮ㄩ棬缂栧彿")
+    @Excel(name = "閮ㄩ棬缂栧彿")
+    private String deptmentno;
+
+    /** 閮ㄩ棬鍚嶇О */
+    @ApiModelProperty("閮ㄩ棬鍚嶇О")
+    @Excel(name = "閮ㄩ棬鍚嶇О")
+    private String deptmentname;
+
+    /** 涓績绛惧瓧 */
+    @ApiModelProperty("涓績绛惧瓧")
+    @Excel(name = "涓績绛惧瓧")
+    private String opochecker;
+
+    /** 璐㈠姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("璐㈠姟鍓櫌闀跨瀛�")
+    @Excel(name = "璐㈠姟鍓櫌闀跨瀛�")
+    private String finvicepresident;
+
+    /** 涓氬姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("涓氬姟鍓櫌闀跨瀛�")
+    @Excel(name = "涓氬姟鍓櫌闀跨瀛�")
+    private String busvicepresident;
+
+    /** 鍔炲叕瀹や富浠荤瀛� */
+    @ApiModelProperty("鍔炲叕瀹や富浠荤瀛�")
+    @Excel(name = "鍔炲叕瀹や富浠荤瀛�")
+    private String officedirector;
+
+    /** 璐㈠姟瀹や富浠荤瀛� */
+    @ApiModelProperty("璐㈠姟瀹や富浠荤瀛�")
+    @Excel(name = "璐㈠姟瀹や富浠荤瀛�")
+    private String financedirector;
+
+    /** 璐㈠姟瀹℃牳 */
+    @ApiModelProperty("璐㈠姟瀹℃牳")
+    @Excel(name = "璐㈠姟瀹℃牳")
+    private String financechecher;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 璁板綍鐘舵�� */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private Integer recordstatus;
+
+    /** 涓婁紶鏍囧織 */
+    @ApiModelProperty("涓婁紶鏍囧織")
+    @Excel(name = "涓婁紶鏍囧織")
+    private String uploadflag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+    @ApiModelProperty("鍑哄樊浜�")
+    @Excel(name = "鍑哄樊浜�")
+    private String travelers;
+
+    @ApiModelProperty("鍑哄樊浜嬬敱")
+    private String reason;
+
+    @ApiModelProperty("鎹愮尞鑰呭鍚�")
+    private String donorname;
+
+    @ApiModelProperty("鎬婚噾棰�")
+    private Double totalamount;
+
+    @ApiModelProperty("鎬婚噾棰濈殑澶у啓")
+    private String bigstrmoney;
+
+    /** 闄勪欢鍦板潃锛宎dd by yangjb 20221124 */
+    @ApiModelProperty("闄勪欢鍦板潃")
+    private String fileurl;
+
+    private String remark;
+
+    /** 褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑 */
+    @ApiModelProperty("褰撳墠瀹℃牳绾у埆")
+    private Long flowlevel;
+
+
+    /** 璐圭敤褰掑睘锛�0锛氬叾浠栦汉鍛橈紱1锛氫笓鑱屼汉鍛橈紱2锛氬崗璋冨憳锛�3锛氫笓瀹讹紱4锛氭崘鐚�呭灞� */
+    @ApiModelProperty("璐圭敤褰掑睘")
+    private String costtype;
+
+    /** 璐圭敤褰掑睘鎻忚堪 */
+    @ApiModelProperty("璐圭敤褰掑睘鎻忚堪")
+    private String costtypename;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementShared.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementShared.java
new file mode 100644
index 0000000..5a980a9
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementShared.java
@@ -0,0 +1,251 @@
+package com.ruoyi.project.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 鎶ラ攢鐢宠瀵硅薄 service_reimbursement_shared
+ * 
+ * @author ruoyi
+ * @date 2023-01-10
+ */
+@Data
+@ApiModel("鎶ラ攢鐢宠")
+public class ServiceReimbursementShared extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鎶ラ攢浜虹紪鍙� */
+    @ApiModelProperty("鎶ラ攢浜虹紪鍙�")
+    @Excel(name = "鎶ラ攢浜虹紪鍙�")
+    private String userno;
+
+    /** 鎶ラ攢浜哄鍚� */
+    @ApiModelProperty("鎶ラ攢浜哄鍚�")
+    @Excel(name = "鎶ラ攢浜哄鍚�")
+    private String username;
+
+    /** 鍑哄樊浜哄憳 */
+    @ApiModelProperty("鍑哄樊浜哄憳")
+    @Excel(name = "鍑哄樊浜哄憳")
+    private String travelers;
+
+    /** 璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType */
+    @ApiModelProperty("璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType")
+    @Excel(name = "璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType")
+    private String idcardtype;
+
+    /** 璇佷欢鍙风爜 */
+    @ApiModelProperty("璇佷欢鍙风爜")
+    @Excel(name = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 寮�鎴烽摱琛� */
+    @ApiModelProperty("寮�鎴烽摱琛�")
+    @Excel(name = "寮�鎴烽摱琛�")
+    private String depositbank;
+
+    /** 鍗″彿 */
+    @ApiModelProperty("鍗″彿")
+    @Excel(name = "鍗″彿")
+    private String bankcardno;
+
+    /** 鍒嗚鍚嶇О */
+    @ApiModelProperty("鍒嗚鍚嶇О")
+    @Excel(name = "鍒嗚鍚嶇О")
+    private String branchbankname;
+
+    /** 閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    private String annexbankcard;
+
+    /** 闄勪欢璺緞 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("闄勪欢璺緞 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "闄勪欢璺緞 澶氫釜鐢�;鍒嗗紑")
+    private String annexfiles;
+
+    /** 鐢宠閲戦 */
+    @ApiModelProperty("鐢宠閲戦")
+    @Excel(name = "鐢宠閲戦")
+    private BigDecimal amountrequested;
+
+    /** 棰勬敮璐圭敤 */
+    @ApiModelProperty("棰勬敮璐圭敤")
+    @Excel(name = "棰勬敮璐圭敤")
+    private BigDecimal prepaidamount;
+
+    /** 鍙戠エ寮犳暟 */
+    @ApiModelProperty("鍙戠エ寮犳暟")
+    @Excel(name = "鍙戠エ寮犳暟")
+    private Long invoicecount;
+
+    /** 闄勪欢鏁� */
+    @ApiModelProperty("闄勪欢鏁�")
+    @Excel(name = "闄勪欢鏁�")
+    private Long attachcount;
+
+    /** 閮ㄩ棬涓荤宸ュ彿 */
+    @ApiModelProperty("閮ㄩ棬涓荤宸ュ彿")
+    @Excel(name = "閮ㄩ棬涓荤宸ュ彿")
+    private String managerno;
+
+    /** 閮ㄩ棬涓荤鍚嶅瓧 */
+    @ApiModelProperty("閮ㄩ棬涓荤鍚嶅瓧")
+    @Excel(name = "閮ㄩ棬涓荤鍚嶅瓧")
+    private String managername;
+
+    /** 閮ㄩ棬缂栧彿 */
+    @ApiModelProperty("閮ㄩ棬缂栧彿")
+    @Excel(name = "閮ㄩ棬缂栧彿")
+    private String deptmentno;
+
+    /** 閮ㄩ棬鍚嶇О */
+    @ApiModelProperty("閮ㄩ棬鍚嶇О")
+    @Excel(name = "閮ㄩ棬鍚嶇О")
+    private String deptmentname;
+
+    /** 涓績绛惧瓧 */
+    @ApiModelProperty("涓績绛惧瓧")
+    @Excel(name = "涓績绛惧瓧")
+    private String opochecker;
+
+    /** 璐㈠姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("璐㈠姟鍓櫌闀跨瀛�")
+    @Excel(name = "璐㈠姟鍓櫌闀跨瀛�")
+    private String finvicepresident;
+
+    /** 涓氬姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("涓氬姟鍓櫌闀跨瀛�")
+    @Excel(name = "涓氬姟鍓櫌闀跨瀛�")
+    private String busvicepresident;
+
+    /** 鍔炲叕瀹や富浠荤瀛� */
+    @ApiModelProperty("鍔炲叕瀹や富浠荤瀛�")
+    @Excel(name = "鍔炲叕瀹や富浠荤瀛�")
+    private String officedirector;
+
+    /** 璐㈠姟瀹や富浠荤瀛� */
+    @ApiModelProperty("璐㈠姟瀹や富浠荤瀛�")
+    @Excel(name = "璐㈠姟瀹や富浠荤瀛�")
+    private String financedirector;
+
+    /** 璐㈠姟瀹℃牳 */
+    @ApiModelProperty("璐㈠姟瀹℃牳")
+    @Excel(name = "璐㈠姟瀹℃牳")
+    private String financechecher;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 鎹愮尞鑰呭鍚� */
+    @ApiModelProperty("鎹愮尞鑰呭鍚�")
+    @Excel(name = "鎹愮尞鑰呭鍚�")
+    private String donorname;
+
+    /** 浜嬬敱 */
+    @ApiModelProperty("浜嬬敱")
+    @Excel(name = "浜嬬敱")
+    private String reason;
+
+    /** 璁板綍鐘舵�� 璇﹁瀛楀吀sys_travelexpensestatus */
+    @ApiModelProperty("璁板綍鐘舵�� 璇﹁瀛楀吀sys_travelexpensestatus")
+    @Excel(name = "璁板綍鐘舵�� 璇﹁瀛楀吀sys_travelexpensestatus")
+    private Integer recordstatus;
+
+    /** 涓婁紶鏍囧織 */
+    @ApiModelProperty("涓婁紶鏍囧織")
+    @Excel(name = "涓婁紶鏍囧織")
+    private String uploadflag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+    /** 鎬婚噾棰� */
+    @ApiModelProperty("鎬婚噾棰�")
+    @Excel(name = "鎬婚噾棰�")
+    private BigDecimal totalamount;
+
+    /** 鎬婚噾棰濈殑澶у啓 */
+    @ApiModelProperty("鎬婚噾棰濈殑澶у啓")
+    @Excel(name = "鎬婚噾棰濈殑澶у啓")
+    private String bigstrmoney;
+
+    /** 褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑 */
+    @ApiModelProperty("褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑")
+    @Excel(name = "褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑")
+    private Long flowlevel;
+
+    /** 璐圭敤褰掑睘锛堝瓧鍏歌〃锛歴ys_travelexpensebelong锛夛細0锛氬叾浠栦汉鍛橈紱1锛氫笓鑱屼汉鍛橈紱2锛氬崗璋冨憳锛�3锛氫笓瀹讹紱4锛氭崘鐚�呭灞� */
+    @ApiModelProperty("璐圭敤褰掑睘锛堝瓧鍏歌〃锛歴ys_travelexpensebelong锛夛細0锛氬叾浠栦汉鍛橈紱1锛氫笓鑱屼汉鍛橈紱2锛氬崗璋冨憳锛�3锛氫笓瀹讹紱4锛氭崘鐚�呭灞�")
+    @Excel(name = "璐圭敤褰掑睘", readConverterExp = "瀛�=鍏歌〃锛歴ys_travelexpensebelong")
+    private String costtype;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    @Excel(name = "璐圭敤褰掑睘", readConverterExp = "$column.readConverterExp()")
+    private String costtypename;
+
+    /** 瀵规帴绯荤粺鐨勮〃鍗昳d */
+    @ApiModelProperty("瀵规帴绯荤粺鐨勮〃鍗昳d")
+    @Excel(name = "瀵规帴绯荤粺鐨勮〃鍗昳d")
+    private String oaid;
+
+    /** 瀵规帴绯荤粺鐨勮〃鍗曠姸鎬� */
+    @ApiModelProperty("瀵规帴绯荤粺鐨勮〃鍗曠姸鎬�")
+    @Excel(name = "瀵规帴绯荤粺鐨勮〃鍗曠姸鎬�")
+    private String oabdzt;
+
+    /** 闄勪欢鍦板潃锛宎dd by yangjb 20230109 */
+    @ApiModelProperty("闄勪欢鍦板潃")
+    private String fileurl;
+
+    /** 璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉� */
+    @ApiModelProperty("璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉�")
+    @Excel(name = "璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉�")
+    private String filename;
+
+    /** 璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉� */
+    @ApiModelProperty("璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉�")
+    @Excel(name = "璐㈠姟鎺ュ彛杩斿洖鐨勬枃浠跺悕绉�")
+    private String fileid;
+
+    /** service reimbursement鐨勪富閿� */
+    @ApiModelProperty("service reimbursement鐨刬d")
+    private Long reimid;
+
+    @ApiModelProperty("鍒犻櫎鏍囪瘑")
+    private Long delFlag;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementdetail.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementdetail.java
new file mode 100644
index 0000000..dffa2e6
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementdetail.java
@@ -0,0 +1,164 @@
+package com.ruoyi.project.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎶ラ攢鐢宠鏄庣粏瀵硅薄 service_reimbursementdetail
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+@Data
+@ApiModel("鎶ラ攢鐢宠鏄庣粏")
+public class ServiceReimbursementdetail extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 涓婚敭ID */
+    @ApiModelProperty("涓婚敭ID")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 璧勯噾鐢宠涓昏〃ID */
+    @ApiModelProperty("璧勯噾鐢宠涓昏〃ID")
+    @Excel(name = "璧勯噾鐢宠涓昏〃ID")
+    private Long rbid;
+
+    /** 鍑哄彂鏃堕棿 */
+    @ApiModelProperty("鍑哄彂鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍑哄彂鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date starttime;
+
+    /** 鍑哄彂鍦扮偣 */
+    @ApiModelProperty("鍑哄彂鍦扮偣")
+    @Excel(name = "鍑哄彂鍦扮偣")
+    private String departure;
+
+    /** 鍒拌揪鏃堕棿 */
+    @ApiModelProperty("鍒拌揪鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍒拌揪鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date endtime;
+
+    /** 鍒拌揪鍦扮偣 */
+    @ApiModelProperty("鍒拌揪鍦扮偣")
+    @Excel(name = "鍒拌揪鍦扮偣")
+    private String destination;
+
+    /** 澶╂暟 */
+    @ApiModelProperty("澶╂暟")
+    @Excel(name = "澶╂暟")
+    private Long days;
+
+    /** 浜ら�氳垂 */
+    @ApiModelProperty("浜ら�氳垂")
+    @Excel(name = "浜ら�氳垂")
+    private Double trafficexpense;
+
+    /** 浜ら�氬伐鍏� */
+    @ApiModelProperty("浜ら�氬伐鍏�")
+    @Excel(name = "浜ら�氬伐鍏�")
+    private String traffictype;
+
+    /** 甯傚唴浜ら�氳垂 */
+    @ApiModelProperty("甯傚唴浜ら�氳垂")
+    @Excel(name = "甯傚唴浜ら�氳垂")
+    private Double cityfee;
+
+    /** 浣忓璐� */
+    @ApiModelProperty("浣忓璐�")
+    @Excel(name = "浣忓璐�")
+    private Double hotelexpense;
+
+    /** 鍙戠エ寮犳暟 */
+    @ApiModelProperty("鍙戠エ寮犳暟")
+    @Excel(name = "鍙戠エ寮犳暟")
+    private Long invoicecount;
+
+    /** 闄勪欢寮犳暟 */
+    @ApiModelProperty("闄勪欢寮犳暟")
+    @Excel(name = "闄勪欢寮犳暟")
+    private Long attachcount;
+
+    /** 鏉傝垂 */
+    @ApiModelProperty("鏉傝垂")
+    @Excel(name = "鏉傝垂")
+    private Double otherexpense;
+
+    /** 浼欓璐� */
+    @ApiModelProperty("浼欓璐�")
+    @Excel(name = "浼欓璐�")
+    private Double foodexpenses;
+
+    /** 浼欓璐硅ˉ鍔� */
+    @ApiModelProperty("浼欓璐硅ˉ鍔�")
+    @Excel(name = "浼欓璐硅ˉ鍔�")
+    private Double foodallowance;
+
+    /** 闄勪欢琛� */
+    @ApiModelProperty("闄勪欢琛�")
+    @Excel(name = "闄勪欢琛�")
+    private String annexfiles;
+
+    /** 涓婁紶鏍囪瘑 */
+    @ApiModelProperty("涓婁紶鏍囪瘑")
+    @Excel(name = "涓婁紶鏍囪瘑")
+    private String uploadFlag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadTime;
+
+    private String remark;
+
+    /** 宸梾鍦板潃鐪佷唬鐮� */
+    @ApiModelProperty("宸梾鍦板潃鐪佷唬鐮�")
+    @Excel(name = "宸梾鍦板潃鐪佷唬鐮�")
+    private String travelprovince;
+
+    /** 宸梾鍦板潃鐪佸悕绉� */
+    @ApiModelProperty("宸梾鍦板潃鐪佸悕绉�")
+    @Excel(name = "宸梾鍦板潃鐪佸悕绉�")
+    private String travelprovincename;
+
+    /** 甯傜紪鍙�  鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("甯傜紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")
+    @Excel(name = "甯傜紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")
+    private String travelcity;
+
+    /** 甯傚悕绉� */
+    @ApiModelProperty("甯傚悕绉�")
+    @Excel(name = "甯傚悕绉�")
+    private String travelcityname;
+
+    /** 鎵�灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("鎵�灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛�")
+    @Excel(name = "鎵�灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛�")
+    private String traveltown;
+
+    /** 鎵�灞炶閬擄紙闀囷級鍚嶇О */
+    @ApiModelProperty("鎵�灞炶閬擄紙闀囷級鍚嶇О")
+    @Excel(name = "鎵�灞炶閬擄紙闀囷級鍚嶇О")
+    private String traveltownname;
+
+    private Double otherfeeamount;
+
+    private String otherfeedesc;
+
+    private Integer orderno;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceRelativesconfirmation.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceRelativesconfirmation.java
new file mode 100644
index 0000000..5df18e4
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceRelativesconfirmation.java
@@ -0,0 +1,181 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎹愮尞浜插睘纭瀵硅薄 service_relativesconfirmation
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+@Data
+@ApiModel("鎹愮尞浜插睘纭")
+public class ServiceRelativesconfirmation extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 濮撳悕 */
+    @ApiModelProperty("濮撳悕")
+    @Excel(name = "濮撳悕")
+    private String name;
+
+    /** 璇佷欢绫诲瀷 */
+    @ApiModelProperty("璇佷欢绫诲瀷")
+    private Long idcardtype;
+
+    /** 璇佷欢鍙风爜 */
+    @ApiModelProperty("璇佷欢鍙风爜")
+    @Excel(name = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 鐜颁綇鍦板潃 */
+    @ApiModelProperty("鐜颁綇鍦板潃")
+    @Excel(name = "鐜颁綇鍦板潃")
+    private String residenceaddress;
+
+    /** 鐜颁綇鍦板潃鐪佷唬鐮� */
+    @ApiModelProperty("鐜颁綇鍦板潃鐪佷唬鐮�")
+    private String residenceprovince;
+
+    /** 鐜颁綇鍦板潃鐪佸悕绉� */
+    @ApiModelProperty("鐜颁綇鍦板潃鐪佸悕绉�")
+    @Excel(name = "鐜颁綇鍦板潃鐪佸悕绉�")
+    private String residenceprovincename;
+
+    /** 甯傜紪鍙� */
+    @ApiModelProperty("甯傜紪鍙�")
+    private String residencecity;
+
+    /** 甯傚悕绉� */
+    @ApiModelProperty("甯傚悕绉�")
+    private String residencecityname;
+
+    /** 鎵�灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("鎵�灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛�")
+    private String residencetown;
+
+    /** 鎵�灞炶閬擄紙闀囷級鍚嶇О */
+    @ApiModelProperty("鎵�灞炶閬擄紙闀囷級鍚嶇О")
+    private String residencetownname;
+
+    /** 绀惧尯锛堟潙锛夌紪鍙� 鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("绀惧尯锛堟潙锛夌紪鍙� 鏍规嵁琛屾斂鍖哄垝琛�")
+    private String residencecommunity;
+
+    /** 绀惧尯锛堟潙锛夊悕绉� */
+    @ApiModelProperty("绀惧尯锛堟潙锛夊悕绉�")
+    private String residencecommunityname;
+
+    /** 鎵�灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("鎵�灞炲尯鍩熺紪鍙�  鏍规嵁琛屾斂鍖哄垝琛�")
+    private String residencecountycode;
+
+    /** 鎵�灞炲尯鍩熷悕绉� */
+    @ApiModelProperty("鎵�灞炲尯鍩熷悕绉�")
+    private String residencecountyname;
+
+    /** 浜插睘鍏崇郴,澶氶�� ;鍙烽殧寮� 鏍规嵁瀛楀吀sys_KinshipConfirm */
+    @ApiModelProperty("浜插睘鍏崇郴,澶氶�� ;鍙烽殧寮� 鏍规嵁瀛楀吀sys_KinshipConfirm")
+    @Excel(name = "浜插睘鍏崇郴,澶氶�� ;鍙烽殧寮� 鏍规嵁瀛楀吀sys_KinshipConfirm")
+    private String kinship;
+
+    /** 瀛愬コ鏁伴噺 */
+    @ApiModelProperty("瀛愬コ鏁伴噺")
+    private Long kinshipChildrennum;
+
+    /** 涓庢崘璧犺�呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation */
+    @ApiModelProperty("涓庢崘璧犺�呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation")
+    private String signfamilyrelations;
+
+    /** 浜插睘鍏崇郴纭绛惧瓧 */
+    @ApiModelProperty("浜插睘鍏崇郴纭绛惧瓧")
+    private String kinshipconfirmationsign;
+
+    /** 鎹愮尞鍐冲畾 */
+    @ApiModelProperty("鎹愮尞鍐冲畾")
+    @Excel(name = "鎹愮尞鍐冲畾")
+    private String organdecision;
+
+    /** 鍏朵粬 */
+    @ApiModelProperty("鍏朵粬")
+    private String organdecisionOther;
+
+    /** 浜插睘纭绛惧瓧 */
+    @ApiModelProperty("浜插睘纭绛惧瓧")
+    private String relativeconfirmationsign;
+
+    /** 涓庢崘璧犺�呭叧绯� */
+    @ApiModelProperty("涓庢崘璧犺�呭叧绯�")
+    private String familyrelations;
+
+    /** 鑾峰彇缁勭粐缂栧彿 */
+    @ApiModelProperty("鑾峰彇缁勭粐缂栧彿")
+    private String acquisitiontissueno;
+
+    /** 鑾峰彇缁勭粐鍚嶇О */
+    @ApiModelProperty("鑾峰彇缁勭粐鍚嶇О")
+    private String acquisitiontissuename;
+
+    /** 璐熻矗浜虹紪鍙� */
+    @ApiModelProperty("璐熻矗浜虹紪鍙�")
+    private String responsibleuserid;
+
+    /** 璐熻矗浜哄鍚� */
+    @ApiModelProperty("璐熻矗浜哄鍚�")
+    @Excel(name = "璐熻矗浜哄鍚�")
+    private String responsibleusername;
+
+    /** 鍗忚皟鍛樼瀛�1 */
+    @ApiModelProperty("鍗忚皟鍛樼瀛�1")
+    @Excel(name = "鍗忚皟鍛樼瀛�1")
+    private String coordinateduserido;
+
+    /** 鑱旂粶浜轰竴濮撳悕 */
+    @ApiModelProperty("鑱旂粶浜轰竴濮撳悕")
+    private String coordinatedusernameo;
+
+    /** 鍗忚皟鍛樼瀛�2 */
+    @ApiModelProperty("鍗忚皟鍛樼瀛�2")
+    @Excel(name = "鍗忚皟鍛樼瀛�2")
+    private String coordinateduseridt;
+
+    /** 鑱旂粶浜轰簩濮撳悕 */
+    @ApiModelProperty("鑱旂粶浜轰簩濮撳悕")
+    private String coordinatedusernamet;
+
+    /** 绛剧讲鏃ユ湡 */
+    @ApiModelProperty("绛剧讲鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "绛剧讲鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date signdate;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceSystemmessage.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceSystemmessage.java
new file mode 100644
index 0000000..7bc12d6
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceSystemmessage.java
@@ -0,0 +1,94 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 绯荤粺娑堟伅瀵硅薄 service_systemmessage
+ * 
+ * @author ruoyi
+ * @date 2022-06-02
+ */
+@Data
+@ApiModel("绯荤粺娑堟伅")
+public class ServiceSystemmessage extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鍙戦�佺敤鎴风紪鍙� */
+    @ApiModelProperty("鍙戦�佺敤鎴风紪鍙�")
+    @Excel(name = "鍙戦�佺敤鎴风紪鍙�")
+    private String senduserno;
+
+    /** 鍙戦�佺敤鎴峰悕绉� */
+    @ApiModelProperty("鍙戦�佺敤鎴峰悕绉�")
+    @Excel(name = "鍙戦�佺敤鎴峰悕绉�")
+    private String sendusername;
+
+    /** 鎺ユ敹鐢ㄦ埛缂栧彿 */
+    @ApiModelProperty("鎺ユ敹鐢ㄦ埛缂栧彿")
+    @Excel(name = "鎺ユ敹鐢ㄦ埛缂栧彿")
+    private String receiveuserno;
+
+    /** 鎺ユ敹鐢ㄦ埛鍚嶇О */
+    @ApiModelProperty("鎺ユ敹鐢ㄦ埛鍚嶇О")
+    @Excel(name = "鎺ユ敹鐢ㄦ埛鍚嶇О")
+    private String receiveusername;
+
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    @Excel(name = "娑堟伅鏍囬")
+    private String messagetitle;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    @Excel(name = "娑堟伅鍐呭")
+    private String messagecontent;
+
+    /** 1锛氱郴缁熸秷鎭紱2锛氫汉宸ユ秷鎭� */
+    @ApiModelProperty("1锛氱郴缁熸秷鎭紱2锛氫汉宸ユ秷鎭�")
+    @Excel(name = "1锛氱郴缁熸秷鎭紱2锛氫汉宸ユ秷鎭�")
+    private Integer messagetype;
+
+    /** 鏄惁宸茶 0锛氬惁 锛�1锛氭槸 */
+    @ApiModelProperty("鏄惁宸茶 0锛氬惁 锛�1锛氭槸")
+    @Excel(name = "鏄惁宸茶 0锛氬惁 锛�1锛氭槸")
+    private Integer isread;
+
+    /** 宸茶鏃堕棿 */
+    @ApiModelProperty("宸茶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "宸茶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date readtime;
+
+    /** 璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType */
+    @ApiModelProperty("璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    @Excel(name = "璧勯噾绫诲埆 瑙佸瓧鍏竤ys_ConsolationType")
+    private String applytype;
+
+    /** 璐圭敤绫诲埆  1锛氬樊鏃呰垂妯″潡  2锛氳垂鐢ㄧ敵璇锋ā鍧� */
+    @ApiModelProperty("璐圭敤绫诲埆  1锛氬樊鏃呰垂妯″潡  2锛氳垂鐢ㄧ敵璇锋ā鍧�")
+    @Excel(name = "璐圭敤绫诲埆  1锛氬樊鏃呰垂妯″潡  2锛氳垂鐢ㄧ敵璇锋ā鍧�")
+    private Integer fundtype;
+
+    /** 鍏宠仈缂栧彿  棰勭暀锛岀敤浜庤烦杞� */
+    @ApiModelProperty("鍏宠仈缂栧彿  棰勭暀锛岀敤浜庤烦杞�")
+    @Excel(name = "鍏宠仈缂栧彿  棰勭暀锛岀敤浜庤烦杞�")
+    private Long relevantno;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceTravelexpensestandard.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceTravelexpensestandard.java
new file mode 100644
index 0000000..b8bcf5d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceTravelexpensestandard.java
@@ -0,0 +1,87 @@
+package com.ruoyi.project.domain;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 浣忓璐归檺棰濇爣鍑嗗璞� service_travelexpensestandard
+ * 
+ * @author ruoyi
+ * @date 2022-04-26
+ */
+@Data
+@ApiModel("浣忓璐归檺棰濇爣鍑�")
+public class ServiceTravelexpensestandard extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鐪佺紪鍙� */
+    @ApiModelProperty("鐪佺紪鍙�")
+    @Excel(name = "鐪佺紪鍙�")
+    private String provincecode;
+
+    /** 甯傜紪鍙� */
+    @ApiModelProperty("甯傜紪鍙�")
+    @Excel(name = "甯傜紪鍙�")
+    private String citycode;
+
+    /** 鍩庨晣鍖虹紪鍙� */
+    @ApiModelProperty("鍩庨晣鍖虹紪鍙�")
+    @Excel(name = "鍩庨晣鍖虹紪鍙�")
+    private String towncode;
+
+    /** 寮�濮嬫棩鏈� */
+    @ApiModelProperty("寮�濮嬫棩鏈�")
+    @Excel(name = "寮�濮嬫棩鏈�")
+    private String begindate;
+
+    /** 缁撴潫鏃ユ湡 */
+    @ApiModelProperty("缁撴潫鏃ユ湡")
+    @Excel(name = "缁撴潫鏃ユ湡")
+    private String enddate;
+
+    /** 涓�绾ц垂鐢ㄦ爣鍑� */
+    @ApiModelProperty("涓�绾ц垂鐢ㄦ爣鍑�")
+    @Excel(name = "涓�绾ц垂鐢ㄦ爣鍑�")
+    private BigDecimal firstlevelcost;
+
+    /** 浜岀骇璐圭敤鏍囧噯 */
+    @ApiModelProperty("浜岀骇璐圭敤鏍囧噯")
+    @Excel(name = "浜岀骇璐圭敤鏍囧噯")
+    private BigDecimal secondlevelcost;
+
+    /** 涓夌骇璐圭敤鏍囧噯 */
+    @ApiModelProperty("涓夌骇璐圭敤鏍囧噯")
+    @Excel(name = "涓夌骇璐圭敤鏍囧噯")
+    private BigDecimal thirdlevelcost;
+
+
+    /** 缁撴潫鏃ユ湡 */
+    @ApiModelProperty("鐪�")
+    @Excel(name = "鐪�")
+    private String provincename;
+
+
+    /** 缁撴潫鏃ユ湡 */
+    @ApiModelProperty("甯�")
+    @Excel(name = "甯�")
+    private String cityname;
+
+    /** 缁撴潫鏃ユ湡 */
+    @ApiModelProperty("鍩庨晣鍖�")
+    @Excel(name = "鍩庨晣鍖�")
+    private String townname;
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/VServiceDonateorganRegister.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/VServiceDonateorganRegister.java
new file mode 100644
index 0000000..b62c884
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/VServiceDonateorganRegister.java
@@ -0,0 +1,205 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鍣ㄥ畼淇℃伅鐧昏鏂板璞� v_service_donateorgan_register
+ * 
+ * @author shenjie
+ * @date 2021-11-27
+ */
+@Data
+@ApiModel("鍣ㄥ畼淇℃伅鐧昏鏂�")
+public class VServiceDonateorganRegister extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long id;
+
+    /** 濮撳悕 */
+    @ApiModelProperty("濮撳悕")
+    @Excel(name = "濮撳悕")
+    private String name;
+
+    /** 鎬у埆 */
+    @ApiModelProperty("鎬у埆")
+    @Excel(name = "鎬у埆")
+    private Long sex;
+
+    /** 璇佷欢鍙风爜 */
+    @ApiModelProperty("璇佷欢鍙风爜")
+    @Excel(name = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 骞撮緞 */
+    @ApiModelProperty("骞撮緞")
+    @Excel(name = "骞撮緞")
+    private Long age;
+
+    /** 骞撮緞鍗曚綅 */
+    @ApiModelProperty("骞撮緞鍗曚綅")
+    @Excel(name = "骞撮緞鍗曚綅")
+    private String ageunit;
+
+    /** 鍑虹敓鏃ユ湡 */
+    @ApiModelProperty("鍑虹敓鏃ユ湡")
+    @Excel(name = "鍑虹敓鏃ユ湡")
+    private String birthday;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 鐜颁綇鍦板潃 */
+    @ApiModelProperty("鐜颁綇鍦板潃")
+    @Excel(name = "鐜颁綇鍦板潃")
+    private String residenceaddress;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 鍣ㄥ畼绫诲埆 */
+    @ApiModelProperty("鍣ㄥ畼绫诲埆")
+    @Excel(name = "鍣ㄥ畼绫诲埆")
+    private String organno;
+
+    /** 鍣ㄥ畼绫诲埆鍚嶇О */
+    @ApiModelProperty("鍣ㄥ畼绫诲埆鍚嶇О")
+    @Excel(name = "鍣ㄥ畼绫诲埆鍚嶇О")
+    private String organname;
+
+    /** 鍣ㄥ畼鐘舵�� */
+    @ApiModelProperty("鍣ㄥ畼鐘舵��")
+    @Excel(name = "鍣ㄥ畼鐘舵��")
+    private Long organstate;
+
+    /** 鍣ㄥ畼缂栧彿 */
+    @ApiModelProperty("鍣ㄥ畼缂栧彿")
+    @Excel(name = "鍣ㄥ畼缂栧彿")
+    private String organnumber;
+
+    /** 鍣ㄥ畼鑾峰彇鏃堕棿 */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date organgettime;
+
+    /** 鍖荤敓濮撳悕 */
+    @ApiModelProperty("鍖荤敓濮撳悕")
+    @Excel(name = "鍖荤敓濮撳悕")
+    private String organgetdoct;
+
+    /** 鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿 */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿")
+    private String gainhospitalno;
+
+    /** 鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О")
+    private String gainhospitalname;
+
+    /** 鍣ㄥ畼绉绘鏈烘瀯缂栧彿 */
+    @ApiModelProperty("鍣ㄥ畼绉绘鏈烘瀯缂栧彿")
+    @Excel(name = "鍣ㄥ畼绉绘鏈烘瀯缂栧彿")
+    private String transplanthospitalno;
+
+    /** 鍣ㄥ畼绉绘鏈烘瀯鍚嶇О */
+    @ApiModelProperty("鍣ㄥ畼绉绘鏈烘瀯鍚嶇О")
+    @Excel(name = "鍣ㄥ畼绉绘鏈烘瀯鍚嶇О")
+    private String transplanthospitalname;
+
+    /** 绉绘鍖荤敓 */
+    @ApiModelProperty("绉绘鍖荤敓")
+    @Excel(name = "绉绘鍖荤敓")
+    private String transplantdoct;
+
+    /** 绉绘鏃堕棿 */
+    @ApiModelProperty("绉绘鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "绉绘鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date transplanttime;
+
+    /** 鐢宠浜哄鍚� */
+    @ApiModelProperty("鐢宠浜哄鍚�")
+    @Excel(name = "鐢宠浜哄鍚�")
+    private String applicantusername;
+
+    /** 鐢宠鏃堕棿 */
+    @ApiModelProperty("鐢宠鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鐢宠鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date applicanttime;
+
+    /** 瀹℃牳浜哄鍚� */
+    @ApiModelProperty("瀹℃牳浜哄鍚�")
+    @Excel(name = "瀹℃牳浜哄鍚�")
+    private String checkusername;
+
+    /** 瀹℃牳鏃堕棿 */
+    @ApiModelProperty("瀹℃牳鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "瀹℃牳鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date checktime;
+
+    /** 瀹℃牳鎰忚 */
+    @ApiModelProperty("瀹℃牳鎰忚")
+    @Excel(name = "瀹℃牳鎰忚")
+    private String checksuggestion;
+
+    /** 瀹℃牳鐘舵�� */
+    @ApiModelProperty("瀹℃牳鐘舵��")
+    @Excel(name = "瀹℃牳鐘舵��")
+    private Long allocationstatus;
+
+    /** 绉绘浜哄鍚� */
+    @ApiModelProperty("绉绘浜哄鍚�")
+    @Excel(name = "绉绘浜哄鍚�")
+    private String acceptname;
+
+    /** 绉绘浜烘�у埆 */
+    @ApiModelProperty("绉绘浜烘�у埆")
+    @Excel(name = "绉绘浜烘�у埆")
+    private Long acceptsex;
+
+    /** 绉绘浜鸿瘉浠跺彿鐮� */
+    @ApiModelProperty("绉绘浜鸿瘉浠跺彿鐮�")
+    @Excel(name = "绉绘浜鸿瘉浠跺彿鐮�")
+    private String acceptidcard;
+
+    /** 绉绘浜哄勾榫� */
+    @ApiModelProperty("绉绘浜哄勾榫�")
+    @Excel(name = "绉绘浜哄勾榫�")
+    private Long acceptage;
+
+    /** 绉绘浜哄勾榫勫崟浣� */
+    @ApiModelProperty("绉绘浜哄勾榫勫崟浣�")
+    @Excel(name = "绉绘浜哄勾榫勫崟浣�")
+    private String acceptageunit;
+
+    /** 绉绘浜鸿仈绯荤數璇� */
+    @ApiModelProperty("绉绘浜鸿仈绯荤數璇�")
+    @Excel(name = "绉绘浜鸿仈绯荤數璇�")
+    private String acceptphone;
+
+    /** 绉绘浜虹幇浣忓湴鍧� */
+    @ApiModelProperty("绉绘浜虹幇浣忓湴鍧�")
+    @Excel(name = "绉绘浜虹幇浣忓湴鍧�")
+    private String acceptresidenceaddress;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceReimbursementDto.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceReimbursementDto.java
new file mode 100644
index 0000000..ae21c4d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceReimbursementDto.java
@@ -0,0 +1,195 @@
+package com.ruoyi.project.domain.dto;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class ServiceReimbursementDto extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 鎶ラ攢浜虹紪鍙� */
+    @ApiModelProperty("鎶ラ攢浜虹紪鍙�")
+    @Excel(name = "鎶ラ攢浜虹紪鍙�")
+    private String userno;
+
+    /** 鎶ラ攢浜哄鍚� */
+    @ApiModelProperty("鎶ラ攢浜哄鍚�")
+    @Excel(name = "鎶ラ攢浜哄鍚�")
+    private String username;
+
+    /** 璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType */
+    @ApiModelProperty("璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType")
+    @Excel(name = "璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType")
+    private String idcardtype;
+
+    /** 璇佷欢鍙风爜 */
+    @ApiModelProperty("璇佷欢鍙风爜")
+    @Excel(name = "璇佷欢鍙风爜")
+    private String idcardno;
+
+    /** 鑱旂郴鐢佃瘽 */
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /** 寮�鎴烽摱琛� */
+    @ApiModelProperty("寮�鎴烽摱琛�")
+    @Excel(name = "寮�鎴烽摱琛�")
+    private String depositbank;
+
+    /** 鍗″彿 */
+    @ApiModelProperty("鍗″彿")
+    @Excel(name = "鍗″彿")
+    private String bankcardno;
+
+    /** 鍒嗚鍚嶇О */
+    @ApiModelProperty("鍒嗚鍚嶇О")
+    @Excel(name = "鍒嗚鍚嶇О")
+    private String branchbankname;
+
+    /** 閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "閾惰鍗$収鐗囪矾寰� 澶氫釜鐢�;鍒嗗紑")
+    private String annexbankcard;
+
+    /** 闄勪欢璺緞 澶氫釜鐢�;鍒嗗紑 */
+    @ApiModelProperty("闄勪欢璺緞 澶氫釜鐢�;鍒嗗紑")
+    @Excel(name = "闄勪欢璺緞 澶氫釜鐢�;鍒嗗紑")
+    private String annexfiles;
+
+    /** 鐢宠閲戦 */
+    @ApiModelProperty("鐢宠閲戦")
+    @Excel(name = "鐢宠閲戦")
+    private String amountrequested;
+
+    /** 棰勬敮璐圭敤 */
+    @ApiModelProperty("棰勬敮璐圭敤")
+    @Excel(name = "棰勬敮璐圭敤")
+    private Double prepaidamount;
+
+    /** 鍙戠エ寮犳暟 */
+    @ApiModelProperty("鍙戠エ寮犳暟")
+    @Excel(name = "鍙戠エ寮犳暟")
+    private Long invoicecount;
+
+    /** 闄勪欢鏁� */
+    @ApiModelProperty("闄勪欢鏁�")
+    @Excel(name = "闄勪欢鏁�")
+    private Long attachcount;
+
+    /** 閮ㄩ棬涓荤宸ュ彿 */
+    @ApiModelProperty("閮ㄩ棬涓荤宸ュ彿")
+    @Excel(name = "閮ㄩ棬涓荤宸ュ彿")
+    private String managerno;
+
+    /** 閮ㄩ棬涓荤鍚嶅瓧 */
+    @ApiModelProperty("閮ㄩ棬涓荤鍚嶅瓧")
+    @Excel(name = "閮ㄩ棬涓荤鍚嶅瓧")
+    private String managername;
+
+    /** 閮ㄩ棬缂栧彿 */
+    @ApiModelProperty("閮ㄩ棬缂栧彿")
+    @Excel(name = "閮ㄩ棬缂栧彿")
+    private String deptmentno;
+
+    /** 閮ㄩ棬鍚嶇О */
+    @ApiModelProperty("閮ㄩ棬鍚嶇О")
+    @Excel(name = "閮ㄩ棬鍚嶇О")
+    private String deptmentname;
+
+    /** 涓績绛惧瓧 */
+    @ApiModelProperty("涓績绛惧瓧")
+    @Excel(name = "涓績绛惧瓧")
+    private String opochecker;
+
+    /** 璐㈠姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("璐㈠姟鍓櫌闀跨瀛�")
+    @Excel(name = "璐㈠姟鍓櫌闀跨瀛�")
+    private String finvicepresident;
+
+    /** 涓氬姟鍓櫌闀跨瀛� */
+    @ApiModelProperty("涓氬姟鍓櫌闀跨瀛�")
+    @Excel(name = "涓氬姟鍓櫌闀跨瀛�")
+    private String busvicepresident;
+
+    /** 鍔炲叕瀹や富浠荤瀛� */
+    @ApiModelProperty("鍔炲叕瀹や富浠荤瀛�")
+    @Excel(name = "鍔炲叕瀹や富浠荤瀛�")
+    private String officedirector;
+
+    /** 璐㈠姟瀹や富浠荤瀛� */
+    @ApiModelProperty("璐㈠姟瀹や富浠荤瀛�")
+    @Excel(name = "璐㈠姟瀹や富浠荤瀛�")
+    private String financedirector;
+
+    /** 璐㈠姟瀹℃牳 */
+    @ApiModelProperty("璐㈠姟瀹℃牳")
+    @Excel(name = "璐㈠姟瀹℃牳")
+    private String financechecher;
+
+    /** 鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 璁板綍鐘舵�� */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private String recordstatus;
+
+    /** 涓婁紶鏍囧織 */
+    @ApiModelProperty("涓婁紶鏍囧織")
+    @Excel(name = "涓婁紶鏍囧織")
+    private String uploadflag;
+
+    /** 涓婁紶鏃堕棿 */
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date uploadtime;
+
+    @ApiModelProperty("鍑哄樊浜�")
+    @Excel(name = "鍑哄樊浜�")
+    private String travelers;
+
+    @ApiModelProperty("鍑哄樊浜嬬敱")
+    private String reason;
+
+    @ApiModelProperty("鎹愮尞鑰呭鍚�")
+    private String donorname;
+
+    @ApiModelProperty("鎬婚噾棰�")
+    private Double totalamount;
+
+    @ApiModelProperty("鎬婚噾棰濈殑澶у啓")
+    private String bigstrmoney;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date searchstarttime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date searchendtime;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/AllOrgansInfo.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/AllOrgansInfo.java
new file mode 100644
index 0000000..e9d704d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/AllOrgansInfo.java
@@ -0,0 +1,44 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class AllOrgansInfo {
+
+    //鎹愮尞涓櫒瀹�
+    private Integer processOrgans;
+    //瀹屾垚鎹愮尞鍣ㄥ畼
+    private Integer finishedOrgans;
+
+    private Integer leftLiver;
+
+    private Integer rightLiver;
+
+    private Integer fullLiver;
+
+    private Integer leftRenal;
+
+    private Integer rightRenal;
+
+    private Integer heart;
+
+    private Integer leftLung;
+
+    private Integer rightLung;
+
+    private Integer fullLung;
+
+    private Integer pancreas;
+
+    private Integer smallIntestine;
+
+    private Integer leftEye;
+
+    private Integer rightEye;
+
+    private Integer body;
+
+    private Integer others;
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/CheckFundVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/CheckFundVO.java
new file mode 100644
index 0000000..84cecbb
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/CheckFundVO.java
@@ -0,0 +1,50 @@
+package com.ruoyi.project.domain.vo;
+
+import java.util.Date;
+import java.util.List;
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.project.domain.ServiceFund;
+import com.ruoyi.project.domain.ServiceFunddetail;
+import com.ruoyi.project.domain.ServiceFundflow;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.Excel.Type;
+import com.ruoyi.common.annotation.Excels;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 璐圭敤瀹℃牳瀹炰綋绫�
+ *
+ * @author ruoyi
+ */
+@Data
+@ApiModel("璐圭敤瀹℃牳瀹炰綋绫�")
+public class CheckFundVO {
+
+    /** 璧勯噾鐢宠涓昏〃ID */
+    @ApiModelProperty("璧勯噾鐢宠涓昏〃ID")
+    @Excel(name = "璧勯噾鐢宠涓昏〃ID")
+    private Long fundid;
+
+    /** 娴佺▼鍐呭锛屾搷浣滃啓鎰忚寤鸿 */
+    @ApiModelProperty("娴佺▼鍐呭锛屾搷浣滃啓鎰忚寤鸿")
+    @Excel(name = "娴佺▼鍐呭锛屾搷浣滃啓鎰忚寤鸿")
+    private String flowcontent;
+
+    /** 娴佺▼缁撹 1锛氶�氳繃锛�2锛氶┏鍥烇紱 */
+    @ApiModelProperty("娴佺▼缁撹 1锛氶�氳繃锛�2锛氶┏鍥烇紱")
+    @Excel(name = "娴佺▼缁撹 1锛氶�氳繃锛�2锛氶┏鍥烇紱")
+    private Integer flowconclusion;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DistrictDonateCalculateVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DistrictDonateCalculateVO.java
new file mode 100644
index 0000000..8bd2212
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DistrictDonateCalculateVO.java
@@ -0,0 +1,16 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class DistrictDonateCalculateVO {
+
+    private String district;
+
+    private int donateCount;
+
+    private int completeCount;
+
+    private int totalOrganCount;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateAnnexVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateAnnexVO.java
new file mode 100644
index 0000000..14150d0
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateAnnexVO.java
@@ -0,0 +1,48 @@
+package com.ruoyi.project.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class DonateAnnexVO {
+
+    private Long id;
+    private String donorno;
+    private String recordstate;
+    private String name;
+    private String sex;
+    private Long idcardtype;
+    private String idcardno;
+    private String age;
+    private String ageunit;
+    private String birthday;
+    private String phone;
+    private String treatmenthospitalno;
+    private String treatmenthospitalname;
+    private String treatmentdeptname;
+    private String reporterno;
+    private String reportername;
+    private String reporterphone;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reporttime;
+    private Long daid;
+    private Long infoid;
+    private String dadonorno;
+    private String annexname;
+    private String annexno;
+    private String annexurl;
+    private Long del_flag;
+    private String create_by;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date create_time;
+    private String update_by;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date update_time;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateByRegionVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateByRegionVO.java
new file mode 100644
index 0000000..a57152f
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateByRegionVO.java
@@ -0,0 +1,20 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class DonateByRegionVO {
+
+    private String regionLevel;
+
+    private String hospitalNumber;
+
+    private String hospitalName;
+
+    private String month;
+
+    private Integer baseInfoCount;
+
+    private Integer completionCount;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateFollowupVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateFollowupVO.java
new file mode 100644
index 0000000..d62bd8f
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateFollowupVO.java
@@ -0,0 +1,75 @@
+package com.ruoyi.project.domain.vo;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class DonateFollowupVO {
+
+    private Long id;
+    private Long infoid;
+    private String donorno;
+    private String organno;
+    private String organname;
+    private String organstate;
+    private String organnumber;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date organgettime;
+    private String organgetdoct;
+    private String gainhospitalno;
+    private String gainhospitalname;
+    private String transplanthospitalno;
+    private String transplanthospitalname;
+    private String transplantdoct;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date transplanttime;
+    private String caseno;
+    private String isbiopsybefore;
+    private String isbiopsyafter;
+    private String ismarginalorgan;
+    private String ispathogenpositive;
+    private String ispnf;
+    private String isdgf;
+    private String name;
+    private String sex;
+    private Long age;
+    private String reporterno;
+    private String reportername;
+    private String reporterphone;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reporttime;
+    private String treatmenthospitalno;
+    private String treatmenthospitalname;
+    private Long dfid;
+    private Long seqno;
+    private Long dfinfoid;
+    private Long organid;
+    private String recipientname;
+    private String recipientphone;
+    private String recipientdescribe;
+    private String hospitalno;
+    private String hospitalname;
+    private String hospitaldept;
+    private String doctorname;
+    private String doctorphone;
+    private String doctordescribe;
+    private String donateresult;
+    private String followupdescribe;
+    private String followupno;
+    private Date followuptime;
+    private Long delflag;
+    private String createby;
+    private Date createtime;
+    private String updateby;
+    private Date updatetime;
+
+    private String basecreateby;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateNumber.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateNumber.java
new file mode 100644
index 0000000..d0b003c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateNumber.java
@@ -0,0 +1,28 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class DonateNumber {
+
+    private Integer numberOfDonate;
+
+    private Integer numberOfMedicalEvaluation;
+
+    private Integer numberOfRelativeConfirmation;
+
+    private Integer numberOfEthicalReview;
+
+    private Integer numberOfDonatePeople;
+
+    private Integer numberOfOrgans;
+
+    private Integer numberOfWitness;
+
+    private Integer numberOfCompletion;
+
+    private Integer numberOfTerminated;
+
+}
+
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateNumberByMonth.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateNumberByMonth.java
new file mode 100644
index 0000000..aa7ed1d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateNumberByMonth.java
@@ -0,0 +1,12 @@
+package com.ruoyi.project.domain.vo;
+
+
+import lombok.Data;
+
+@Data
+public class DonateNumberByMonth {
+    private String donatemonth;
+
+    private Integer donatecount;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateOrganVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateOrganVO.java
new file mode 100644
index 0000000..48c6c28
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonateOrganVO.java
@@ -0,0 +1,93 @@
+package com.ruoyi.project.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class DonateOrganVO {
+
+    private Long id;
+    private String donorno;
+    private String recordstate;
+    private String name;
+    private String sex;
+    private Long idcardtype;
+    private String idcardno;
+    private String age;
+    private String ageunit;
+    private String birthday;
+    private String phone;
+    private String nationality;
+    private String nativeplace;
+    private String nation;
+    private String diagnosisno;
+    private String treatmenthospitalno;
+    private String treatmenthospitalname;
+    private String treatmentdeptname;
+    private String reporterno;
+    private String reportername;
+    private String reporterphone;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reporttime;
+    private Long doid;
+    private Long infoid;
+    private String dodonorno;
+    private String organno;
+    private String organname;
+    private String organstate;
+    private String organnumber;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date organgettime;
+    private String organgetdoct;
+    private String gainhospitalno;
+    private String gainhospitalname;
+    private String transplanthospitalno;
+    private String transplanthospitalname;
+    private String transplantdoct;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date transplanttime;
+    private String caseno;
+    private String isbiopsybefore;
+    private String isbiopsyafter;
+    private String ismarginalorgan;
+    private String ispathogenpositive;
+    private String ispnf;
+    private String isdgf;
+    private Long del_flag;
+    private String create_by;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date create_time;
+    private String update_by;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date update_time;
+    private String abandonreason;
+    private String reallocationreason;
+    private String leaderno;
+    private String leadername;
+    private String businessarea;
+    private String gainHospitalname;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startorgangettime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endorgangettime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date starttransplanttime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endtransplanttime;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationCompletionVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationCompletionVO.java
new file mode 100644
index 0000000..76c86b4
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationCompletionVO.java
@@ -0,0 +1,85 @@
+package com.ruoyi.project.domain.vo;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class DonationCompletionVO {
+
+    private Long id;
+    private String donorno;
+    private String donationcategory;
+    private String recordstate;
+    private String name;
+    private String sex;
+    private Long idcardtype;
+    private String idcardno;
+    private Long age;
+    private String ageunit;
+    private String birthday;
+    private String nationality;
+    private String nation;
+    private String reporterno;
+    private String reportername;
+    private String reporterphone;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reporttime;
+    private Long dcid;
+    private Long infoid;
+    private String dcdonorno;
+    private String isbodydonation;
+    private String receivingunitname;
+    private String receivingunit;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date completetime;
+    private String responsibleuserid;
+    private String responsibleusername;
+    private String coordinateduserido;
+    private String coordinatedusernameo;
+    private String coordinateduseridt;
+    private String coordinatedusernamet;
+    private String assessannex;
+    private String donateorgan;
+    private Long delflag;
+    private String createby;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createtime;
+    private String updateby;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatetime;
+    private String treatmenthospitalno;
+    private String treatmenthospitalname;
+    private String treatmentdeptname;
+    private String registeraddress;
+    private String registerprovince;
+    private String registerprovincename;
+    private String registercity;
+    private String registercityname;
+    private String registertown;
+    private String registertownname;
+    private String registercommunity;
+    private String registercommunityname;
+    private String registercountycode;
+    private String registercountyname;
+
+    private String basecreateby;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date starttime;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endtime;
+    private String city;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationWitnessVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationWitnessVO.java
new file mode 100644
index 0000000..eb6fb0c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationWitnessVO.java
@@ -0,0 +1,107 @@
+package com.ruoyi.project.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class DonationWitnessVO {
+    private Long id;
+    private String donorno;
+    private String donationcategory;
+    private String name;
+    private String sex;
+    private Long idcardtype;
+    private String idcardno;
+    private Long age;
+    private String birthday;
+    private String treatmenthospitalno;
+    private String treatmenthospitalname;
+    private String treatmentdeptname;
+    private String recordstate;
+    private String reporterno;
+    private String reportername;
+    private String reporterphone;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reporttime;
+    private Long dwid;
+    private Long infoid;
+    private String gainhospitalno;
+    private String gainhospitalname;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date deathtime;
+    private String deathreason;
+    private String deathjudgedocto;
+    private String deathjudgedoctt;
+    private String deathjudgeannex;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date operationbegtime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date operationendtime;
+    private String operationdoctor;
+    private Long isspendremember;
+    private Long isrestoreremains;
+    private String rememberannex;
+    private String responsibleuserid;
+    private String responsibleusername;
+    private String coordinateduserido;
+    private String coordinatedusernameo;
+    private String coordinateduseridt;
+    private String coordinatedusernamet;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date abdominalaortacannulatime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date abdominalaortaperfusiontime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date portalveincannulatime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date portalveinperfusiontime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date pulmonaryarteryperfusiontime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date pulmonaryarterycannulatime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date aortacannulatime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date aortaperfusiontime;
+    private String organdonation;
+    private String organdonationother;
+    private String dwdonationcategory;
+    private Long delflag;
+    private String createby;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createtime;
+    private String updateby;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatetime;
+
+    private String basecreateby;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date starttime;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endtime;
+
+    private String city;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/EthicalReviewVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/EthicalReviewVO.java
new file mode 100644
index 0000000..5758003
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/EthicalReviewVO.java
@@ -0,0 +1,88 @@
+package com.ruoyi.project.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class EthicalReviewVO {
+
+    private Long id;
+    private String donorno;
+    private String recordstate;
+    private String name;
+    private String sex;
+    //private Long idcardtype;
+    private String idcardno;
+    private Long age;
+    private String birthday;
+    private String nationality;
+    private String nation;
+    private String registeraddress;
+    private String registerprovince;
+    private String registerprovincename;
+    private String registercity;
+    private String registercityname;
+    private String registertown;
+    private String registertownname;
+    private String registercommunity;
+    private String registercommunityname;
+    private String registercountycode;
+    private String registercountyname;
+    private String treatmenthospitalno;
+    private String treatmenthospitalname;
+    private String treatmentdeptname;
+    private String diagnosisno;
+    private String diagnosisname;
+    private String reporterno;
+    private String reportername;
+    private String reporterphone;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reporttime;
+    private String bloodtype;
+    private Long rhyin;
+    private String inpatientno;
+    private String illnessoverview;
+    private String diseasetype;
+    private String patientstate;
+    private Long fcid;
+//    private String expertopinion;
+//    private String expertconclusion;
+//    private String expertname;
+//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+//    private Date conclusiontime;
+//    private String conclusionannex;
+//    private String conclusionorder;
+
+    private Long infoid;
+    private String fcdonorno;
+    private String flowname;
+    private String flowannex;
+    private String flowcontent;
+    private String flowconclusion;
+    private Long delFlag;
+    private String createBy;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+    private String updateBy;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    private String basecreateby;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date starttime;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endtime;
+    private String city;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FinanceSubjectItemType.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FinanceSubjectItemType.java
new file mode 100644
index 0000000..acb566d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FinanceSubjectItemType.java
@@ -0,0 +1,20 @@
+package com.ruoyi.project.domain.vo;
+
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class FinanceSubjectItemType {
+
+    /** 椤圭洰绫诲瀷缂栧彿 */
+    @ApiModelProperty("椤圭洰绫诲瀷缂栧彿")
+    @Excel(name = "椤圭洰绫诲瀷缂栧彿")
+    private  String ItemType;
+
+    /** 椤圭洰绫诲瀷鍚嶇О */
+    @ApiModelProperty("椤圭洰绫诲瀷鍚嶇О")
+    @Excel(name = "椤圭洰绫诲瀷鍚嶇О")
+    private String ItemTypeName;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FinanceSubjectVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FinanceSubjectVO.java
new file mode 100644
index 0000000..4afc670
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FinanceSubjectVO.java
@@ -0,0 +1,18 @@
+package com.ruoyi.project.domain.vo;
+
+
+import lombok.Data;
+
+@Data
+public class FinanceSubjectVO {
+    private Long id;
+
+    private String itemname;
+
+    private String itempinyin;
+
+    private String itemdescribe;
+
+    private String itemcode;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundDetailOneVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundDetailOneVO.java
new file mode 100644
index 0000000..d6635e4
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundDetailOneVO.java
@@ -0,0 +1,14 @@
+package com.ruoyi.project.domain.vo;
+
+
+import lombok.Data;
+
+@Data
+public class FundDetailOneVO {
+
+    private String number;
+
+    private String message;
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundDetailTwoVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundDetailTwoVO.java
new file mode 100644
index 0000000..43d1700
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundDetailTwoVO.java
@@ -0,0 +1,118 @@
+package com.ruoyi.project.domain.vo;
+
+
+import lombok.Data;
+
+@Data
+public class FundDetailTwoVO {
+
+    private double fy1;
+    private double fy2;
+    private double fy3;
+    private double fy4;
+    private double fy5;
+    private double fy6;
+    private double fy7;
+    private double fy8;
+    private double fy9;
+    private double fy10;
+    private double fy11;
+    private double fy12;
+    private double fy13;
+    private double fy14;
+    private double fy15;
+    private double fy16;
+    private double fy17;
+    private double fy18;
+    private double fy19;
+    private double fy20;
+    private double fy21;
+    private double fy22;
+    private double fy23;
+    private double fy24;
+    private double fy25;
+    private double fy26;
+    private double fy27;
+    private double fy28;
+    private double fy29;
+    private double fy30;
+    private double fy31;
+    private double fy32;
+    private double fy33;
+    private double fy34;
+    private double fy35;
+    private double fy36;
+    private double fy37;
+    private double fy38;
+    private double fy39;
+    private double fy40;
+    private double fy41;
+    private double fy42;
+    private double fy43;
+    private double fy44;
+    private double fy45;
+    private double fy46;
+    private double fy47;
+    private double fy48;
+    private double fy49;
+    private double fy50;
+    private double fy51;
+    private double fy52;
+    private double fyhj;
+
+    private double sh1;
+    private double sh2;
+    private double sh3;
+    private double sh4;
+    private double sh5;
+    private double sh6;
+    private double sh7;
+    private double sh8;
+    private double sh9;
+    private double sh10;
+    private double sh11;
+    private double sh12;
+    private double sh13;
+    private double sh14;
+    private double sh15;
+    private double sh16;
+    private double sh17;
+    private double sh18;
+    private double sh19;
+    private double sh20;
+    private double sh21;
+    private double sh22;
+    private double sh23;
+    private double sh24;
+    private double sh25;
+    private double sh26;
+    private double sh27;
+    private double sh28;
+    private double sh29;
+    private double sh30;
+    private double sh31;
+    private double sh32;
+    private double sh33;
+    private double sh34;
+    private double sh35;
+    private double sh36;
+    private double sh37;
+    private double sh38;
+    private double sh39;
+    private double sh40;
+    private double sh41;
+    private double sh42;
+    private double sh43;
+    private double sh44;
+    private double sh45;
+    private double sh46;
+    private double sh47;
+    private double sh48;
+    private double sh49;
+    private double sh50;
+    private double sh51;
+    private double sh52;
+    private double shhj;
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundVO.java
new file mode 100644
index 0000000..bb1e5f7
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundVO.java
@@ -0,0 +1,97 @@
+package com.ruoyi.project.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class FundVO {
+    private Long id;
+    private Long infoiD;
+    private String donorno;
+    private String userno;
+    private String username;
+    private String unitname;
+    private String unitno;
+    private String unituserno;
+    private String phone;
+    private String annexbankcard;
+    private String annexregistform;
+    private Double amountrequested;
+    private Double applytype;
+    private String prepaidamount;
+    private Long invoicecount;
+    private Long attachcount;
+    private String managerno;
+    private String managername;
+    private String deptmentno;
+    private String deptmentname;
+    private String opochecker;
+    private String finvicepresident;
+    private String busvicepresident;
+    private String officedirector;
+    private String financedirector;
+    private String financechecher;
+    private String remark;
+    private String recordstatus;
+    private Long fdid;
+    private Long fundid;
+    private String beneficiaryname;
+    private String beneficiaryno;
+    private String fduintname;
+    private String fduintno;
+    private String fduintuserno;
+    private String title;
+    private Long idcardtype;
+    private String idcardno;
+    private String sex;
+    private String familyrelations;
+    private String fdphone;
+    private String depositbank;
+    private String bankcardno;
+    private String branchbankname;
+    private String fdannexbankcard;
+    private String fdannexregistform;
+    private String fdapplytype;
+    private Long itemid;
+    private String itemname;
+    private String itemtype;
+    private Double amount;
+    private Double taxamount;
+    private Double taxedamount;
+    private String fdprepaidamount;
+    private Long fdinvoicecount;
+    private Long fdattachcount;
+    private String fdremark;
+    private String fdrecordstatus;
+    private Long del_flag;
+    private String create_by;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date create_time;
+    private String update_by;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date update_time;
+    private String uploadflag;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date uploadtime;
+
+    private Double quantity;
+    private Double price;
+    private Double totalcost;
+    private Double procurementcost;
+    private Double expertcost;
+    private Double ethicscost;
+    private Double medicalcost;
+    private Double familycost;
+    private Double aftercarecost;
+    private String donorname;
+
+    private Double pretaxcost;
+    private Double taxedcost;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ItemDetailVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ItemDetailVO.java
new file mode 100644
index 0000000..eac7b3c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ItemDetailVO.java
@@ -0,0 +1,20 @@
+package com.ruoyi.project.domain.vo;
+
+
+import lombok.Data;
+
+@Data
+public class ItemDetailVO {
+
+    private Long id;
+
+    private String itemName;
+
+    private String itemPinyin;
+
+    private String itemCode;
+
+    private String itemDescribe;
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ItemTypeVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ItemTypeVO.java
new file mode 100644
index 0000000..7c9fe4e
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ItemTypeVO.java
@@ -0,0 +1,17 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ItemTypeVO {
+
+    private String itemType;
+
+    private String itemTypeName;
+
+    private List<ItemDetailVO> itemDetails;
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MedicalEvaluationVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MedicalEvaluationVO.java
new file mode 100644
index 0000000..d1d496d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MedicalEvaluationVO.java
@@ -0,0 +1,81 @@
+package com.ruoyi.project.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class MedicalEvaluationVO {
+    private Long id;
+    private String name;
+    private String sex;
+    private String idcardno;
+    private Long age;
+    private String registeraddress;
+    private String registerprovince;
+    private String registerprovinceName;
+    private String registercity;
+    private String registercityname;
+    private String registertown;
+    private String registertownname;
+    private String recordstate;
+    private String treatmenthospitalno;
+    private String treatmenthospitalname;
+    private String diagnosisno;
+    private String diagnosisname;
+    private String donorno;
+    private String diseasetype;
+    private String patientstate;
+    private String reportername;
+    private String reporterno;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reporttime;
+    private Long meid;
+    private Long infoid;
+    private String hospitalassesscontent;
+    private String hospitalassessconclusion;
+    private String provincialassesscontent;
+    private String provincialassessconclusion;
+    private String coreteamassesscontent;
+    private String coreteamassessconclusion;
+    private String illnessoverview;
+    private String mediagnosisname;
+    private String hospitalassessdoctor;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date hospitalassesstime;
+
+    private String provincialassessdoctor;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date provincialassesstime;
+    private String coreteamassessdoctor;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date coreteamassesstime;
+    private String assessannex;
+    private Long delflag;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createtime;
+    private String createby;
+    private String updateby;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatetime;
+
+    private String basecreateby;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date starttime;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endtime;
+    private String city;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/NumberOfOrgans.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/NumberOfOrgans.java
new file mode 100644
index 0000000..1cc680b
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/NumberOfOrgans.java
@@ -0,0 +1,20 @@
+package com.ruoyi.project.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class NumberOfOrgans {
+
+    private String district;
+
+    private Integer numberOfHospitals;
+
+    private Integer donateNumber;
+
+    private Integer acceptNumber;
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrgansOfHospital.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrgansOfHospital.java
new file mode 100644
index 0000000..ee573c9
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrgansOfHospital.java
@@ -0,0 +1,20 @@
+package com.ruoyi.project.domain.vo;
+
+
+import lombok.Data;
+
+@Data
+public class OrgansOfHospital {
+
+
+    //private String district;
+
+    private String HospitalName;
+
+    private String HospitalNo;
+
+    private Integer donateNumber;
+
+    private Integer acceptNumber;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/PMPRateVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/PMPRateVO.java
new file mode 100644
index 0000000..44678dd
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/PMPRateVO.java
@@ -0,0 +1,10 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class PMPRateVO {
+
+    //PMP鐜�
+    private double PMPRate;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/RelativeConfirmationVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/RelativeConfirmationVO.java
new file mode 100644
index 0000000..d740a37
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/RelativeConfirmationVO.java
@@ -0,0 +1,105 @@
+package com.ruoyi.project.domain.vo;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class RelativeConfirmationVO {
+
+    private Long id;
+    private String name;
+    private String sex;
+    private Long idcardtype;
+    private String idcardno;
+    private Long Age;
+    private String birthday;
+    private String ageunit;
+    private String phone;
+    private String nationality;
+    private String nativeplace;
+    private String nation;
+    private String occupation;
+    private String education;
+    private String registeraddress;
+    private String registerprovince;
+    private String registerprovincename;
+    private String registercity;
+    private String registercityname;
+    private String registertown;
+    private String registertownname;
+    private String registercommunity;
+    private String registercountycode;
+    private String registercommunityname;
+    private String registercountyname;
+    private String recordstate;
+    private String reporterno;
+    private String reportername;
+    private String reporterphone;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reporttime;
+    private String donorno;
+    private String treatmenthospitalno;
+    private String treatmenthospitalname;
+    private String treatmentdeptname;
+    private Long rcid;
+    private Long infoid;
+    private String rcdonrono;
+    private String rcname;
+    private Long rcidcardtype;
+    private String rcidcardno;
+    private String rcphone;
+    private String familyrelations;
+    private String organdecision;
+    private String residenceaddress;
+    private String residenceprovince;
+    private String coordinatedusernamet;
+    private String coordinateduseridt;
+    private String coordinatedusernameo;
+    private String coordinateduserido;
+    private String responsibleusername;
+    private String responsibleuserid;
+    private String acquisitiontissuename;
+    private String acquisitiontissueno;
+    private String signfamilyrelations;
+    private String relativeconfirmationsign;
+    private String organdecision_other;
+    private String residenceprovincename;
+    private String residencecityname;
+    private String residencetown;
+    private String residencetownname;
+    private String residencecommunity;
+    private String residencecommunityname;
+    private String residencecountycode;
+    private String residencecountyname;
+    private String residencecity;
+    private String kinship;
+    private Long kinship_childrennum;
+    private String kinshipconfirmationsign;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signdate;
+    private Long delFlag;
+    private String createBy;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+    private String updateBy;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    private String basecreateby;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date starttime;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endtime;
+    private String city;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceFundVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceFundVO.java
new file mode 100644
index 0000000..9ade521
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceFundVO.java
@@ -0,0 +1,41 @@
+package com.ruoyi.project.domain.vo;
+
+import java.util.Date;
+import java.util.List;
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.project.domain.ServiceFund;
+import com.ruoyi.project.domain.ServiceFunddetail;
+import com.ruoyi.project.domain.ServiceFundflow;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.Excel.Type;
+import com.ruoyi.common.annotation.Excels;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 璐圭敤姹囨�诲疄浣撶被
+ *
+ * @author ruoyi
+ */
+@Data
+@ApiModel("璐圭敤姹囨�诲疄浣撶被")
+public class ServiceFundVO extends ServiceFund
+{
+    /** 璐圭敤鏄庣粏 */
+    private List<ServiceFunddetail> serviceFunddetails;
+
+    public List<ServiceFunddetail> getServiceFunddetails()
+    {
+        return serviceFunddetails;
+    }
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesFundOut.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesFundOut.java
new file mode 100644
index 0000000..c2a8c8d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesFundOut.java
@@ -0,0 +1,18 @@
+package com.ruoyi.project.domain.vo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.project.domain.ServiceFund;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class SpFinancialExpensesFundOut extends ServiceFund {
+
+    /** 瀹℃牳鎸夐挳鏍囧織 */
+    @ApiModelProperty("瀹℃牳鎸夐挳鏍囧織 0锛氫笉鏄剧ず瀹℃牳锛�1锛氭樉绀哄鏍�")
+    @Excel(name = "瀹℃牳鎸夐挳鏍囧織")
+    private Integer CheckFlag;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesIn.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesIn.java
new file mode 100644
index 0000000..647e7f6
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesIn.java
@@ -0,0 +1,41 @@
+package com.ruoyi.project.domain.vo;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.page.PageDomain;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class SpFinancialExpensesIn extends PageDomain {
+
+    /** 鐢宠浜哄鍚嶆敮鎸佹ā绯� */
+    @ApiModelProperty("鐢宠浜哄鍚嶆敮鎸佹ā绯�")
+    @Excel(name = "鐢宠浜哄鍚�")
+    private String APPLICANT;
+
+    /** 鐢宠寮�濮嬫棩鏈� */
+    @ApiModelProperty("鐢宠寮�濮嬫棩鏈�")
+    @Excel(name = "鐢宠寮�濮嬫棩鏈�")
+    private String APPLICATIONBEGTIME;
+
+    /** 鐢宠缁撴潫鏃ユ湡 */
+    @ApiModelProperty("鐢宠缁撴潫鏃ユ湡")
+    @Excel(name = "鐢宠缁撴潫鏃ユ湡")
+    private String APPLICATIONENDTIME;
+
+    /** 瀹℃牳鐘舵��  0:瀹℃牳锛� 1:寰呭锛� 2:鍏ㄩ儴锛�  */
+    @ApiModelProperty("瀹℃牳鐘舵��")
+    @Excel(name = "瀹℃牳鐘舵��")
+    private int CHECKFLAG;
+
+    /** 璐圭敤绫诲瀷  0:鍏ㄩ儴锛� 鍏朵綑涓哄叿浣撹垂鐢ㄧ被鍨�  */
+    @ApiModelProperty("璐圭敤绫诲瀷")
+    @Excel(name = "璐圭敤绫诲瀷")
+    private int APPLYTYPE;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesReimbursementOut.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesReimbursementOut.java
new file mode 100644
index 0000000..759f0f7
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpFinancialExpensesReimbursementOut.java
@@ -0,0 +1,19 @@
+package com.ruoyi.project.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.project.domain.ServiceReimbursement;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class SpFinancialExpensesReimbursementOut extends ServiceReimbursement
+{
+    /** 瀹℃牳鎸夐挳鏍囧織 */
+    @ApiModelProperty("瀹℃牳鎸夐挳鏍囧織 0锛氫笉鏄剧ず瀹℃牳锛�1锛氭樉绀哄鏍�")
+    @Excel(name = "瀹℃牳鎸夐挳鏍囧織")
+    private Integer CheckFlag;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpServiceDonationcost.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpServiceDonationcost.java
new file mode 100644
index 0000000..d450164
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpServiceDonationcost.java
@@ -0,0 +1,22 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class SpServiceDonationcost {
+
+    private String bigclass;
+
+    private String subjecttypename;
+
+    private String itemtypename;
+
+    private String itemname;
+
+    private String itemunit;
+
+    private String amount;
+
+    private String donorno;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpTravelExpenseStandardIn.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpTravelExpenseStandardIn.java
new file mode 100644
index 0000000..cc37cbb
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpTravelExpenseStandardIn.java
@@ -0,0 +1,100 @@
+package com.ruoyi.project.domain.vo;
+
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class SpTravelExpenseStandardIn {
+    /** 鐪佺紪鍙� */
+    @ApiModelProperty("鐪佺紪鍙�")
+    @Excel(name = "鐪佺紪鍙�")
+    private String PAPROVINCECODE;
+
+    /** 甯傜紪鍙� */
+    @ApiModelProperty("甯傜紪鍙�")
+    @Excel(name = "甯傜紪鍙�")
+    private String PACITYCODE;
+
+    /** 鍩庨晣鍖虹紪鍙� */
+    @ApiModelProperty("鍩庨晣鍖虹紪鍙�")
+    @Excel(name = "鍩庨晣鍖虹紪鍙�")
+    private String PATOWNCODE;
+
+    /** 寮�濮嬫棩鏈� */
+    @ApiModelProperty("寮�濮嬫棩鏈�")
+    @Excel(name = "寮�濮嬫棩鏈�")
+    private String PABEGINDATE;
+
+    /** 缁撴潫鏃ユ湡 */
+    @ApiModelProperty("缁撴潫鏃ユ湡")
+    @Excel(name = "缁撴潫鏃ユ湡")
+    private String PAENDDATE;
+
+    /** 缁撴潫鏃ユ湡 */
+    @ApiModelProperty("浜哄憳绾у埆")
+    @Excel(name = "浜哄憳绾у埆")
+    private Integer STANDARDLEVEL;
+
+
+    public String getPAPROVINCECODE()
+    {
+        return PAPROVINCECODE;
+    }
+
+    public void setPAPROVINCECODE(String PAPROVINCECODE)
+    {
+        this.PAPROVINCECODE = PAPROVINCECODE;
+    }
+
+    public String getPACITYCODE()
+    {
+        return PACITYCODE;
+    }
+
+    public void setPACITYCODE(String PACITYCODE)
+    {
+        this.PACITYCODE = PACITYCODE;
+    }
+
+    public String getPATOWNCODE()
+    {
+        return PATOWNCODE;
+    }
+
+    public void setPATOWNCODE(String PATOWNCODE)
+    {
+        this.PATOWNCODE = PATOWNCODE;
+    }
+
+    public String getPABEGINDATE()
+    {
+        return PABEGINDATE;
+    }
+
+    public void setPABEGINDATE(String PABEGINDATE)
+    {
+        this.PABEGINDATE = PABEGINDATE;
+    }
+
+    public String getPAENDDATE()
+    {
+        return PAENDDATE;
+    }
+
+    public void setPAENDDATE(String PAENDDATE)
+    {
+        this.PAENDDATE = PAENDDATE;
+    }
+
+    public Integer getSTANDARDLEVEL()
+    {
+        return STANDARDLEVEL;
+    }
+
+    public void setSTANDARDLEVEL(Integer STANDARDLEVEL)
+    {
+        this.STANDARDLEVEL = STANDARDLEVEL;
+    }
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpTravelExpenseStandardOut.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpTravelExpenseStandardOut.java
new file mode 100644
index 0000000..4be7b64
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpTravelExpenseStandardOut.java
@@ -0,0 +1,13 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class SpTravelExpenseStandardOut {
+
+    private String REIMBURSEMENTDATE;
+
+    private BigDecimal REIMBURSEMENTAMOUT;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TimeVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TimeVO.java
new file mode 100644
index 0000000..c8cfa05
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TimeVO.java
@@ -0,0 +1,24 @@
+package com.ruoyi.project.domain.vo;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class TimeVO {
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date starttime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endtime;
+
+    private String city;
+
+    private String reporterno;
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/WitnessStatsVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/WitnessStatsVO.java
new file mode 100644
index 0000000..a338311
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/WitnessStatsVO.java
@@ -0,0 +1,44 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class WitnessStatsVO {
+
+    //鐢锋�ф瘮渚�
+    private double manRate;
+    //濂虫�ф瘮渚�
+    private double womanRate;
+    //diseasetype涓�0姣斾緥
+    private double D0Rate;
+    //diseasetype涓�1姣斾緥
+    private double D1Rate;
+    //diseasetype涓�2姣斾緥
+    private double D2Rate;
+    //diseasetype涓�3姣斾緥
+    private double D3Rate;
+    //diseasetype涓�4姣斾緥
+    private double D4Rate;
+    //鍏朵粬鐤剧梾姣斾緥
+    private double DOthersRate;
+    //瑙佽瘉琛╠onationcategory涓篋BD姣斾緥
+    private double DBDRate;
+    //瑙佽瘉琛╠onationcategory涓篋CD姣斾緥
+    private double DCDRate;
+    //瑙佽瘉琛╠onationcategory涓篋BCD姣斾緥
+    private double DBCDRate;
+    //骞撮緞0-17姣斾緥
+    private double A1Rate;
+    //骞撮緞18-48姣斾緥
+    private double A2Rate;
+    //骞撮緞49-69姣斾緥
+    private double A3Rate;
+    //A鍨嬭姣斾緥
+    private double XARate;
+    //B鍨嬭姣斾緥
+    private double XBRate;
+    //AB鍨嬭姣斾緥
+    private double XABRate;
+    //O鍨嬭姣斾緥
+    private double XORate;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/countByRecordStateVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/countByRecordStateVO.java
new file mode 100644
index 0000000..c2fed53
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/countByRecordStateVO.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.domain.vo;
+
+
+import lombok.Data;
+
+@Data
+public class countByRecordStateVO {
+
+    private int baseinfo;
+
+    private int medicalevaluation;
+
+    private int relativeconfirmation;
+
+    private int ethicalreview;
+
+    private int organallocation;
+
+    private int witness;
+
+    private int abandon;
+
+    private int completion;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organInfoVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organInfoVO.java
new file mode 100644
index 0000000..5bc5515
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organInfoVO.java
@@ -0,0 +1,14 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class organInfoVO {
+
+    private String organNo;
+
+    //private String organName;
+
+    private int count;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organNumberByOrgVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organNumberByOrgVO.java
new file mode 100644
index 0000000..9eb64dd
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organNumberByOrgVO.java
@@ -0,0 +1,13 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class organNumberByOrgVO {
+
+    private String orgId;
+
+    private String orgName;
+
+    private int organCount;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organQuality.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organQuality.java
new file mode 100644
index 0000000..28acfa1
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organQuality.java
@@ -0,0 +1,65 @@
+package com.ruoyi.project.domain.vo;
+
+
+import lombok.Data;
+
+@Data
+public class organQuality {
+
+    //鍣ㄥ畼鎹愮尞杞寲鐜�
+    private double donateTransferRate;
+
+    //骞冲潎鍣ㄥ畼浜у嚭鐜�
+    private double organProductionRate;
+
+    //DBD鎹愮尞鍒嗙被鍗犳瘮
+    private double DBDDonateRate;
+
+    //DCD鎹愮尞鍒嗙被鍗犳瘮
+    private double DCDDonateRate;
+
+    //DBCD鎹愮尞鍒嗙被鍗犳瘮
+    private double DBCDDonateRate;
+
+    //鍣ㄥ畼鍒╃敤鐜�
+    private double organUsedRate;
+
+    //鍣ㄥ畼鐥呯悊鑾峰彇鍓嶆椿妫�鐜�
+    private double organBeforeGetCheckRate;
+
+    //鍣ㄥ畼鐥呯悊鑾峰彇鍚庢椿妫�鐜�
+    private double organAfterGetCheckRate;
+
+    //杈圭紭渚涘櫒瀹樻瘮鐜�
+    private double marginOrganRate;
+
+    //鐥呭師鑿屽煿鍏婚槼鎬х巼
+    private double germPositiveRate;
+
+    //鎬籔NF鍙戠敓鐜�
+    private double totalPNFRate;
+
+    //DBD PNF鍙戠敓鐜�
+    private double DBDPNFRate;
+
+    //DCD PNF鍙戠敓鐜�
+    private double DCDPNFRate;
+
+    //DBCD PNF鍙戠敓鐜�
+    private double DBCDPNFRate;
+
+    //鎬籇GF鍙戠敓鐜�
+    private double totalDGFRate;
+
+    //DBD DGF鍙戠敓鐜�
+    private double DBDDGFRate;
+
+    //DCD DGF鍙戠敓鐜�
+    private double DCDDGFRate;
+
+    //DBCD DGF鍙戠敓鐜�
+    private double DBCDDGFRate;
+
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/reportInfo.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/reportInfo.java
new file mode 100644
index 0000000..17f0be3
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/reportInfo.java
@@ -0,0 +1,13 @@
+package com.ruoyi.project.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class reportInfo {
+
+    private Long id;
+
+    private String reportNo;
+
+    private String reportName;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseExpertfeetypeMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseExpertfeetypeMapper.java
new file mode 100644
index 0000000..38957bc
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseExpertfeetypeMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.BaseExpertfeetype;
+
+/**
+ * 涓撳璐圭敤Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-04-19
+ */
+public interface BaseExpertfeetypeMapper extends BaseMapper<BaseExpertfeetype>
+{
+    /**
+     * 鏌ヨ涓撳璐圭敤鍒楄〃
+     *
+     * @param baseExpertfeetype 涓撳璐圭敤
+     * @return 涓撳璐圭敤闆嗗悎
+     */
+    public List<BaseExpertfeetype> selectBaseExpertfeetypeList(BaseExpertfeetype baseExpertfeetype);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseFinancesubjectMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseFinancesubjectMapper.java
new file mode 100644
index 0000000..a138473
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseFinancesubjectMapper.java
@@ -0,0 +1,34 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.BaseFinancesubject;
+import com.ruoyi.project.domain.vo.FinanceSubjectItemType;
+import com.ruoyi.project.domain.vo.FinanceSubjectVO;
+import com.ruoyi.project.domain.vo.SpServiceDonationcost;
+
+/**
+ * 鏀跺叆璐圭敤绉戠洰Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-11
+ */
+public interface BaseFinancesubjectMapper extends BaseMapper<BaseFinancesubject>
+{
+    /**
+     * 鏌ヨ鏀跺叆璐圭敤绉戠洰鍒楄〃
+     *
+     * @param baseFinancesubject 鏀跺叆璐圭敤绉戠洰
+     * @return 鏀跺叆璐圭敤绉戠洰闆嗗悎
+     */
+    public List<BaseFinancesubject> selectBaseFinancesubjectList(BaseFinancesubject baseFinancesubject);
+
+    List<FinanceSubjectVO> getItemName(String itemType);
+
+    List<SpServiceDonationcost> getDonationCost(String DonorNo);
+
+    List<FinanceSubjectItemType> getItemType(String ExpenseType);
+
+    List<BaseFinancesubject> getAllInfoByExpenseType(String expenseType);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseItemexpenseMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseItemexpenseMapper.java
new file mode 100644
index 0000000..4c84acf
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseItemexpenseMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.BaseItemexpense;
+
+/**
+ * 鏀跺叆璐圭敤绉戠洰Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-05-11
+ */
+public interface BaseItemexpenseMapper extends BaseMapper<BaseItemexpense>
+{
+    /**
+     * 鏌ヨ鏀跺叆璐圭敤绉戠洰鍒楄〃
+     *
+     * @param baseItemexpense 鏀跺叆璐圭敤绉戠洰
+     * @return 鏀跺叆璐圭敤绉戠洰闆嗗悎
+     */
+    public List<BaseItemexpense> selectBaseItemexpenseList(BaseItemexpense baseItemexpense);
+
+    List<BaseItemexpense> getDetailsByItemId(Long itemid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseOrganizationMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseOrganizationMapper.java
new file mode 100644
index 0000000..5655c04
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BaseOrganizationMapper.java
@@ -0,0 +1,37 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.BasePrcaddressDict;
+import com.ruoyi.project.domain.BaseOrganization;
+
+/**
+ * 鏈烘瀯绠$悊Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-05
+ */
+public interface BaseOrganizationMapper extends BaseMapper<BaseOrganization>
+{
+    /**
+     * 鏌ヨ鏈烘瀯绠$悊鍒楄〃
+     *
+     * @param baseOrganization 鏈烘瀯绠$悊
+     * @return 鏈烘瀯绠$悊闆嗗悎
+     */
+    public List<BaseOrganization> selectBaseOrganizationList(BaseOrganization baseOrganization);
+
+    BaseOrganization getOrganizationByNumber(String hospitalNo);
+
+    Integer getOrganizationByCity(String cityNumber);
+
+    List<BaseOrganization> getHospitalList();
+
+    List<BaseOrganization> getBaseOrganizationList();
+
+    List<BaseOrganization> getTransOrg();
+
+    String getNameByNo(String orgno);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BasePrcaddressDictMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BasePrcaddressDictMapper.java
new file mode 100644
index 0000000..a5b3d74
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/BasePrcaddressDictMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.common.core.domain.entity.BasePrcaddressDict;
+
+/**
+ * 鐪佸競鍖虹鐞哅apper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+public interface BasePrcaddressDictMapper extends BaseMapper<BasePrcaddressDict>
+{
+    /**
+     * 鏌ヨ鐪佸競鍖虹鐞嗗垪琛�
+     *
+     * @param basePrcaddressDict 鐪佸競鍖虹鐞�
+     * @return 鐪佸競鍖虹鐞嗛泦鍚�
+     */
+    public List<BasePrcaddressDict> selectBasePrcaddressDictList(BasePrcaddressDict basePrcaddressDict);
+
+    List<BasePrcaddressDict> getAllCityOfZJ();
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDistributedetailMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDistributedetailMapper.java
new file mode 100644
index 0000000..bb35f56
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDistributedetailMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDistributedetail;
+
+/**
+ * 涓撳璐圭敤鍒嗗彂姹囨�绘槑缁哅apper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+public interface ServiceDistributedetailMapper extends BaseMapper<ServiceDistributedetail>
+{
+    /**
+     * 鏌ヨ涓撳璐圭敤鍒嗗彂姹囨�绘槑缁嗗垪琛�
+     *
+     * @param serviceDistributedetail 涓撳璐圭敤鍒嗗彂姹囨�绘槑缁�
+     * @return 涓撳璐圭敤鍒嗗彂姹囨�绘槑缁嗛泦鍚�
+     */
+    public List<ServiceDistributedetail> selectServiceDistributedetailList(ServiceDistributedetail serviceDistributedetail);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDistributesummaryMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDistributesummaryMapper.java
new file mode 100644
index 0000000..4f1cc2b
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDistributesummaryMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDistributesummary;
+
+/**
+ * 涓撳璐圭敤鍒嗗彂姹囨�讳富Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+public interface ServiceDistributesummaryMapper extends BaseMapper<ServiceDistributesummary>
+{
+    /**
+     * 鏌ヨ涓撳璐圭敤鍒嗗彂姹囨�讳富鍒楄〃
+     *
+     * @param serviceDistributesummary 涓撳璐圭敤鍒嗗彂姹囨�讳富
+     * @return 涓撳璐圭敤鍒嗗彂姹囨�讳富闆嗗悎
+     */
+    public List<ServiceDistributesummary> selectServiceDistributesummaryList(ServiceDistributesummary serviceDistributesummary);
+
+    List<ServiceDistributesummary> getSummaryByInfoId(Long infoid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDocumentfilesMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDocumentfilesMapper.java
new file mode 100644
index 0000000..38293e3
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDocumentfilesMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDocumentfiles;
+
+/**
+ * 鎹愮尞闄勪欢Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-04-08
+ */
+public interface ServiceDocumentfilesMapper extends BaseMapper<ServiceDocumentfiles>
+{
+    /**
+     * 鏌ヨ鎹愮尞闄勪欢鍒楄〃
+     *
+     * @param serviceDocumentfiles 鎹愮尞闄勪欢
+     * @return 鎹愮尞闄勪欢闆嗗悎
+     */
+    public List<ServiceDocumentfiles> selectServiceDocumentfilesList(ServiceDocumentfiles serviceDocumentfiles);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateannexMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateannexMapper.java
new file mode 100644
index 0000000..aafdd97
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateannexMapper.java
@@ -0,0 +1,26 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDonateannex;
+import com.ruoyi.project.domain.vo.DonateAnnexVO;
+
+/**
+ * 鎹愮尞闄勪欢Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-11
+ */
+public interface ServiceDonateannexMapper extends BaseMapper<ServiceDonateannex>
+{
+    /**
+     * 鏌ヨ鎹愮尞闄勪欢鍒楄〃
+     *
+     * @param serviceDonateannex 鎹愮尞闄勪欢
+     * @return 鎹愮尞闄勪欢闆嗗悎
+     */
+    public List<ServiceDonateannex> selectServiceDonateannexList(ServiceDonateannex serviceDonateannex);
+
+    List<DonateAnnexVO> selectVOList(DonateAnnexVO donateAnnexVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateannexrequirementMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateannexrequirementMapper.java
new file mode 100644
index 0000000..2d4d293
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateannexrequirementMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDonateannexrequirement;
+
+/**
+ * 鎹愮尞闄勪欢瑕佹眰Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+public interface ServiceDonateannexrequirementMapper extends BaseMapper<ServiceDonateannexrequirement>
+{
+    /**
+     * 鏌ヨ鎹愮尞闄勪欢瑕佹眰鍒楄〃
+     *
+     * @param serviceDonateannexrequirement 鎹愮尞闄勪欢瑕佹眰
+     * @return 鎹愮尞闄勪欢瑕佹眰闆嗗悎
+     */
+    public List<ServiceDonateannexrequirement> selectServiceDonateannexrequirementList(ServiceDonateannexrequirement serviceDonateannexrequirement);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatebaseinfoMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatebaseinfoMapper.java
new file mode 100644
index 0000000..c7c5688
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatebaseinfoMapper.java
@@ -0,0 +1,75 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.Date;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDonatebaseinfo;
+import com.ruoyi.project.domain.vo.TimeVO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 鎹愮尞鍩虹Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-13
+ */
+public interface ServiceDonatebaseinfoMapper extends BaseMapper<ServiceDonatebaseinfo>
+{
+    /**
+     * 鏌ヨ鎹愮尞鍩虹鍒楄〃
+     *
+     * @param serviceDonatebaseinfo 鎹愮尞鍩虹
+     * @return 鎹愮尞鍩虹闆嗗悎
+     */
+    public List<ServiceDonatebaseinfo> selectServiceDonatebaseinfoList(ServiceDonatebaseinfo serviceDonatebaseinfo);
+
+    String getDonateNumberById(Long id);
+
+    int getDonateCount();
+
+    int getDonateBaseCountThisYear(TimeVO timeVO);
+
+    Integer countNumber(TimeVO timeVO);
+
+    String getBloodCode(String bloodtype);
+
+    Integer countTerminatedNumber(TimeVO timeVO);
+
+    List<ServiceDonatebaseinfo> getAllDonateBaseInfo();
+
+    List<ServiceDonatebaseinfo> getBaseInfoByHospital(String organizationid);
+
+    int updateDonateNumber(@Param("id") Long id, @Param("updateNumber") String updateNumber);
+
+    List<ServiceDonatebaseinfo> getAllDonateBaseInfoByTime(TimeVO timeVO);
+
+    List<ServiceDonatebaseinfo> listForSearch(ServiceDonatebaseinfo serviceDonatebaseinfo);
+
+    String getDonorNameById(Long infoid);
+
+    String gethqzz(Long infoid);
+
+    ServiceDonatebaseinfo getById(Long infoid);
+
+    int countByRecordState(@Param("recordState") String recordState, @Param("starttime") Date starttime, @Param("endtime") Date endtime);
+
+    List<String> getDistrictDonate();
+
+    List<String> getDistrictComplete();
+
+    List<String> getDistrictOrgans();
+
+
+    List<String> getDistrictDonateByTime(TimeVO timeVO);
+
+    List<String> getDistrictCompleteByTime(TimeVO timeVO);
+
+    List<String> gettreatmenthospitalnoCompleteByTime(TimeVO timeVO);
+
+    List<String> getDistrictOrgansByTime(TimeVO timeVO);
+
+
+    String getDonateNameById(Long infoid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatecompletioninfoMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatecompletioninfoMapper.java
new file mode 100644
index 0000000..b2ae8c5
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatecompletioninfoMapper.java
@@ -0,0 +1,41 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.Date;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
+import com.ruoyi.project.domain.vo.DonationCompletionVO;
+import com.ruoyi.project.domain.vo.TimeVO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 鎹愮尞瀹屾垚Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-19
+ */
+public interface ServiceDonatecompletioninfoMapper extends BaseMapper<ServiceDonatecompletioninfo>
+{
+    /**
+     * 鏌ヨ鎹愮尞瀹屾垚鍒楄〃
+     *
+     * @param serviceDonatecompletioninfo 鎹愮尞瀹屾垚
+     * @return 鎹愮尞瀹屾垚闆嗗悎
+     */
+    public List<ServiceDonatecompletioninfo> selectServiceDonatecompletioninfoList(ServiceDonatecompletioninfo serviceDonatecompletioninfo);
+
+    List<DonationCompletionVO> selectVOList(DonationCompletionVO donationCompletionVO);
+
+    Integer countNumber(TimeVO timeVO);
+
+    ServiceDonatecompletioninfo getByInfoId(Long id);
+
+
+    int count(TimeVO timeVO);
+
+    List<ServiceDonatecompletioninfo> getCompletionDonatePeopleByTime(TimeVO timeVO);
+
+    public void delDuplicateDonateCompletioninfo(@Param("infoid") long infoid,@Param("createby") String createby);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateconsolationfundMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateconsolationfundMapper.java
new file mode 100644
index 0000000..306b079
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateconsolationfundMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDonateconsolationfund;
+
+/**
+ * 璧勯噾鐢宠涓昏〃Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-18
+ */
+public interface ServiceDonateconsolationfundMapper extends BaseMapper<ServiceDonateconsolationfund>
+{
+    /**
+     * 鏌ヨ璧勯噾鐢宠涓昏〃鍒楄〃
+     *
+     * @param serviceDonateconsolationfund 璧勯噾鐢宠涓昏〃
+     * @return 璧勯噾鐢宠涓昏〃闆嗗悎
+     */
+    public List<ServiceDonateconsolationfund> selectServiceDonateconsolationfundList(ServiceDonateconsolationfund serviceDonateconsolationfund);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateflowchartMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateflowchartMapper.java
new file mode 100644
index 0000000..8a1f054
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateflowchartMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDonateflowchart;
+
+/**
+ * 鎹愮尞娴佺▼Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+public interface ServiceDonateflowchartMapper extends BaseMapper<ServiceDonateflowchart>
+{
+    /**
+     * 鏌ヨ鎹愮尞娴佺▼鍒楄〃
+     *
+     * @param serviceDonateflowchart 鎹愮尞娴佺▼
+     * @return 鎹愮尞娴佺▼闆嗗悎
+     */
+    public List<ServiceDonateflowchart> selectServiceDonateflowchartList(ServiceDonateflowchart serviceDonateflowchart);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatefollowupMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatefollowupMapper.java
new file mode 100644
index 0000000..0ab0ec1
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatefollowupMapper.java
@@ -0,0 +1,32 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDonatefollowup;
+import com.ruoyi.project.domain.vo.DonateFollowupVO;
+
+/**
+ * 鎹愮尞闅忚Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-12-10
+ */
+public interface ServiceDonatefollowupMapper extends BaseMapper<ServiceDonatefollowup>
+{
+    /**
+     * 鏌ヨ鎹愮尞闅忚鍒楄〃
+     *
+     * @param serviceDonatefollowup 鎹愮尞闅忚
+     * @return 鎹愮尞闅忚闆嗗悎
+     */
+    public List<ServiceDonatefollowup> selectServiceDonatefollowupList(ServiceDonatefollowup serviceDonatefollowup);
+
+    List<ServiceDonatefollowup> selectAll(ServiceDonatefollowup serviceDonatefollowup);
+
+    ServiceDonatefollowup selectFollowUpById(Long id);
+
+    List<DonateFollowupVO> selectVOList(DonateFollowupVO donateFollowupVO);
+
+    int updateFollowUp(ServiceDonatefollowup serviceDonatefollowup);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java
new file mode 100644
index 0000000..46c252c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java
@@ -0,0 +1,77 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.sql.Time;
+import java.util.Date;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceDonateorgan;
+import com.ruoyi.project.domain.vo.DonateOrganVO;
+import com.ruoyi.project.domain.vo.TimeVO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 鎹愮尞鍣ㄥ畼绠$悊Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+public interface ServiceDonateorganMapper extends BaseMapper<ServiceDonateorgan>
+{
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼绠$悊鍒楄〃
+     *
+     * @param serviceDonateorgan 鎹愮尞鍣ㄥ畼绠$悊
+     * @return 鎹愮尞鍣ㄥ畼绠$悊闆嗗悎
+     */
+    public List<ServiceDonateorgan> selectServiceDonateorganList(ServiceDonateorgan serviceDonateorgan);
+
+    List<ServiceDonateorgan> getAllDonateOrgans();
+
+    Integer getAllProcessOrgans(TimeVO timeVO);
+
+    Integer getAllFinishedOrgans(TimeVO timeVO);
+
+
+
+    int getAllFinishedOrgansThisYear(TimeVO timeVO);
+
+    int getOrganNumberThisYear(TimeVO timeVO);
+
+    int getbiopsyBeforeNumberThisYear(TimeVO timeVO);
+
+    int getbiopsyAfterNumberThisYear(TimeVO timeVO);
+
+    int getmarginalOrgansNumberThisYear(TimeVO timeVO);
+
+    int getPathogenPositiveNumberThisYear(TimeVO timeVO);
+
+    int getPNFNumberThisYear(TimeVO timeVO);
+
+    int getDGFNumberThisYear(TimeVO timeVO);
+
+    List<ServiceDonateorgan> selectPNFOrganThisYear(TimeVO timeVO);
+
+    List<ServiceDonateorgan> selectDGFOrganThisYear(TimeVO timeVO);
+
+    List<DonateOrganVO> selectVOList(DonateOrganVO donateOrganVO);
+
+    int getOrganNo(@Param("organno") String organno, @Param("starttime") Date starttime, @Param("endtime") Date endtime, @Param("city") String city, @Param("reporterno") String reporterno);
+
+    Integer countNumber(TimeVO timeVO);
+
+    Integer countPeople(TimeVO timeVO);
+
+    List<ServiceDonateorgan> getAllDonateOrgansByTime(TimeVO timeVO);
+
+    List<ServiceDonateorgan> selectServiceDonateorganListNotAbandon(ServiceDonateorgan serviceDonateorgan);
+
+    int getOrgansCount(@Param("starttime") Date starttime, @Param("endtime") Date endtime, @Param("organizationid") String organizationid);
+
+    int getDistinctOrgansCount(@Param("organno") String organno, @Param("starttime") Date starttime, @Param("endtime") Date endtime, @Param("city") String city, @Param("reporterno") String reporterno);
+
+    String getOrganNameByNo(String organno);
+
+    List<ServiceDonateorgan> selectAll(TimeVO timeVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonationwitnessMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonationwitnessMapper.java
new file mode 100644
index 0000000..816ce74
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonationwitnessMapper.java
@@ -0,0 +1,55 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.sql.Time;
+import java.util.Collection;
+import java.util.List;
+
+import com.ruoyi.project.domain.ServiceDonateorgan;
+import com.ruoyi.project.domain.ServiceDonationwitness;
+import com.ruoyi.project.domain.vo.DonationWitnessVO;
+import com.ruoyi.project.domain.vo.TimeVO;
+
+/**
+ * 鎹愮尞瑙佽瘉Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-17
+ */
+public interface ServiceDonationwitnessMapper extends BaseMapper<ServiceDonationwitness>
+{
+    /**
+     * 鏌ヨ鎹愮尞瑙佽瘉鍒楄〃
+     *
+     * @param serviceDonationwitness 鎹愮尞瑙佽瘉
+     * @return 鎹愮尞瑙佽瘉闆嗗悎
+     */
+    public List<ServiceDonationwitness> selectServiceDonationwitnessList(ServiceDonationwitness serviceDonationwitness);
+
+    List<ServiceDonationwitness> getWitnessList();
+
+    List<DonationWitnessVO> selectVOList(DonationWitnessVO donationWitnessVO);
+
+    int getDBDDonaterNumberThisYear(TimeVO timeVO);
+
+    int getDCDDonaterNumberThisYear(TimeVO timeVO);
+
+    int getDBCDDonaterNumberThisYear(TimeVO timeVO);
+
+    String getDonationCategoryByInfoId(Long infoId);
+
+    Integer countNumber(TimeVO timeVO);
+
+    ServiceDonationwitness selectByInfoId(Long infoid);
+
+    List<ServiceDonationwitness> getAllDonatePeople();
+
+
+    int countThisYearByTime(TimeVO timeVO);
+
+    List<ServiceDonationwitness> getAllDonatePeopleByTime(TimeVO timeVO);
+
+    List<ServiceDonationwitness> selectByTime(TimeVO timeVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceEthicalreviewopinionsMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceEthicalreviewopinionsMapper.java
new file mode 100644
index 0000000..b73e7d8
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceEthicalreviewopinionsMapper.java
@@ -0,0 +1,29 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceEthicalreviewopinions;
+import com.ruoyi.project.domain.vo.EthicalReviewVO;
+import com.ruoyi.project.domain.vo.TimeVO;
+
+/**
+ * 浼︾悊瀹℃煡涓撳鎰忚Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-23
+ */
+public interface ServiceEthicalreviewopinionsMapper extends BaseMapper<ServiceEthicalreviewopinions>
+{
+    /**
+     * 鏌ヨ浼︾悊瀹℃煡涓撳鎰忚鍒楄〃
+     *
+     * @param serviceEthicalreviewopinions 浼︾悊瀹℃煡涓撳鎰忚
+     * @return 浼︾悊瀹℃煡涓撳鎰忚闆嗗悎
+     */
+    public List<ServiceEthicalreviewopinions> selectServiceEthicalreviewopinionsList(ServiceEthicalreviewopinions serviceEthicalreviewopinions);
+
+    List<EthicalReviewVO> selectVOList(EthicalReviewVO ethicalReviewVO);
+
+    Integer countNumber(TimeVO timeVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceExpertexpenseMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceExpertexpenseMapper.java
new file mode 100644
index 0000000..3399a5c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceExpertexpenseMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceExpertexpense;
+
+/**
+ * 璐圭敤鐢宠涓籑apper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+public interface ServiceExpertexpenseMapper extends BaseMapper<ServiceExpertexpense>
+{
+    /**
+     * 鏌ヨ璐圭敤鐢宠涓诲垪琛�
+     *
+     * @param serviceExpertexpense 璐圭敤鐢宠涓�
+     * @return 璐圭敤鐢宠涓婚泦鍚�
+     */
+    public List<ServiceExpertexpense> selectServiceExpertexpenseList(ServiceExpertexpense serviceExpertexpense);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceExternalpersonMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceExternalpersonMapper.java
new file mode 100644
index 0000000..ed92ba7
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceExternalpersonMapper.java
@@ -0,0 +1,28 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceExternalperson;
+
+/**
+ * 澶栧洿鍗曚綅浜哄憳Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-24
+ */
+public interface ServiceExternalpersonMapper extends BaseMapper<ServiceExternalperson>
+{
+    /**
+     * 鏌ヨ澶栧洿鍗曚綅浜哄憳鍒楄〃
+     *
+     * @param serviceExternalperson 澶栧洿鍗曚綅浜哄憳
+     * @return 澶栧洿鍗曚綅浜哄憳闆嗗悎
+     */
+    public List<ServiceExternalperson> selectServiceExternalpersonList(ServiceExternalperson serviceExternalperson);
+
+
+    List<ServiceExternalperson> getAllpeople(String usertype);
+
+    ServiceExternalperson getInfoByUserNo(String userno);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundMapper.java
new file mode 100644
index 0000000..9cda208
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundMapper.java
@@ -0,0 +1,37 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceFund;
+import com.ruoyi.project.domain.vo.FundVO;
+import com.ruoyi.project.domain.vo.SpFinancialExpensesFundOut;
+import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 璐圭敤鐢宠涓籑apper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+public interface ServiceFundMapper extends BaseMapper<ServiceFund>
+{
+    /**
+     * 鏌ヨ璐圭敤鐢宠涓诲垪琛�
+     *
+     * @param serviceFund 璐圭敤鐢宠涓�
+     * @return 璐圭敤鐢宠涓婚泦鍚�
+     */
+    public List<ServiceFund> selectServiceFundList(ServiceFund serviceFund);
+
+    List<ServiceFund> getInfoByInfoId(Long infoid);
+
+    Long getFundId(Long infoid);
+
+    List<FundVO> selectVOList(FundVO fundVO);
+
+    List<SpFinancialExpensesFundOut> getListBypower(@Param("PAUSERNO")  String PAUSERNO, @Param("PAFUNDTYPE")  Integer PAFUNDTYPE, @Param("PAAPPLICANT")  String PAAPPLICANT, @Param("PAAPPLICATIONBEGTIME")   String PAAPPLICATIONBEGTIME, @Param("PAAPPLICATIONENDTIME")   String PAAPPLICATIONENDTIME, @Param("PADEPARTMENT")   String PADEPARTMENT, @Param("CHECKFLAG")  Integer CHECKFLAG, @Param("APPLYTYPE")  Integer APPLYTYPE);
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundSharedMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundSharedMapper.java
new file mode 100644
index 0000000..7d8abf7
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundSharedMapper.java
@@ -0,0 +1,27 @@
+//package com.ruoyi.system.mapper;
+package com.ruoyi.project.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.project.domain.ServiceFundShared;
+
+import java.util.List;
+
+//import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+//import com.ruoyi.system.domain.ServiceFundShared;
+
+/**
+ * 璐圭敤鐢宠涓籑apper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2023-01-10
+ */
+public interface ServiceFundSharedMapper extends BaseMapper<ServiceFundShared>
+{
+    /**
+     * 鏌ヨ璐圭敤鐢宠涓诲垪琛�
+     *
+     * @param serviceFundShared 璐圭敤鐢宠涓�
+     * @return 璐圭敤鐢宠涓婚泦鍚�
+     */
+    public List<ServiceFundShared> selectServiceFundSharedList(ServiceFundShared serviceFundShared);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java
new file mode 100644
index 0000000..2f6cd57
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java
@@ -0,0 +1,40 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceFunddetail;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 璐圭敤鐢宠鏄庣粏Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-25
+ */
+public interface ServiceFunddetailMapper extends BaseMapper<ServiceFunddetail>
+{
+    /**
+     * 鏌ヨ璐圭敤鐢宠鏄庣粏鍒楄〃
+     *
+     * @param serviceFunddetail 璐圭敤鐢宠鏄庣粏
+     * @return 璐圭敤鐢宠鏄庣粏闆嗗悎
+     */
+    public List<ServiceFunddetail> selectServiceFunddetailList(ServiceFunddetail serviceFunddetail);
+
+    List<ServiceFunddetail> selectFundDetailListById(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDLW(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDSH(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDSS(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDYX(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDHZ(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDLWF(Long id);
+
+    int countItem(@Param("fundid") Long fundid, @Param("itemid") Long itemid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundflowMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundflowMapper.java
new file mode 100644
index 0000000..88c7a21
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundflowMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceFundflow;
+
+/**
+ * 璧勯噾瀹℃壒娴佺▼Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-04-27
+ */
+public interface ServiceFundflowMapper extends BaseMapper<ServiceFundflow>
+{
+    /**
+     * 鏌ヨ璧勯噾瀹℃壒娴佺▼鍒楄〃
+     *
+     * @param serviceFundflow 璧勯噾瀹℃壒娴佺▼
+     * @return 璧勯噾瀹℃壒娴佺▼闆嗗悎
+     */
+    public List<ServiceFundflow> selectServiceFundflowList(ServiceFundflow serviceFundflow);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundflowruleMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundflowruleMapper.java
new file mode 100644
index 0000000..913fec9
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundflowruleMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceFundflowrule;
+
+/**
+ * 璧勯噾瀹℃壒瑙勫垯Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-04-27
+ */
+public interface ServiceFundflowruleMapper extends BaseMapper<ServiceFundflowrule>
+{
+    /**
+     * 鏌ヨ璧勯噾瀹℃壒瑙勫垯鍒楄〃
+     *
+     * @param serviceFundflowrule 璧勯噾瀹℃壒瑙勫垯
+     * @return 璧勯噾瀹℃壒瑙勫垯闆嗗悎
+     */
+    public List<ServiceFundflowrule> selectServiceFundflowruleList(ServiceFundflowrule serviceFundflowrule);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java
new file mode 100644
index 0000000..6f6316e
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java
@@ -0,0 +1,29 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceMedicalevaluation;
+import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
+import com.ruoyi.project.domain.vo.TimeVO;
+
+/**
+ * 鍖诲璇勪及Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-19
+ */
+public interface ServiceMedicalevaluationMapper extends BaseMapper<ServiceMedicalevaluation>
+{
+    /**
+     * 鏌ヨ鍖诲璇勪及鍒楄〃
+     *
+     * @param serviceMedicalevaluation 鍖诲璇勪及
+     * @return 鍖诲璇勪及闆嗗悎
+     */
+    public List<ServiceMedicalevaluation> selectServiceMedicalevaluationList(ServiceMedicalevaluation serviceMedicalevaluation);
+
+    List<MedicalEvaluationVO> selectVOList(MedicalEvaluationVO medicalEvaluationVO);
+
+    Integer countNumber(TimeVO timeVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceOrganallocationMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceOrganallocationMapper.java
new file mode 100644
index 0000000..449457f
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceOrganallocationMapper.java
@@ -0,0 +1,26 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceOrganallocation;
+import com.ruoyi.project.domain.vo.TimeVO;
+
+/**
+ * 鍣ㄥ畼鍒嗛厤Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+public interface ServiceOrganallocationMapper extends BaseMapper<ServiceOrganallocation>
+{
+    /**
+     * 鏌ヨ鍣ㄥ畼鍒嗛厤鍒楄〃
+     *
+     * @param serviceOrganallocation 鍣ㄥ畼鍒嗛厤
+     * @return 鍣ㄥ畼鍒嗛厤闆嗗悎
+     */
+    public List<ServiceOrganallocation> selectServiceOrganallocationList(ServiceOrganallocation serviceOrganallocation);
+
+    Integer countNumber(TimeVO timeVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementMapper.java
new file mode 100644
index 0000000..bf09d3e
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementMapper.java
@@ -0,0 +1,36 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceReimbursement;
+import com.ruoyi.project.domain.dto.ServiceReimbursementDto;
+import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 鎶ラ攢鐢宠Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+public interface ServiceReimbursementMapper extends BaseMapper<ServiceReimbursement>
+{
+    /**
+     * 鏌ヨ鎶ラ攢鐢宠鍒楄〃
+     *
+     * @param serviceReimbursement 鎶ラ攢鐢宠
+     * @return 鎶ラ攢鐢宠闆嗗悎
+     */
+    public List<ServiceReimbursement> selectServiceReimbursementList(ServiceReimbursement serviceReimbursement);
+
+    Long getMaxId();
+
+    List<ServiceReimbursement> selectSearchList(ServiceReimbursementDto serviceReimbursementdto);
+
+    List<SpFinancialExpensesReimbursementOut> getListBypower(@Param("PAUSERNO")  String PAUSERNO,@Param("PAFUNDTYPE")  Integer PAFUNDTYPE,@Param("PAAPPLICANT")  String PAAPPLICANT,@Param("PAAPPLICATIONBEGTIME")   String PAAPPLICATIONBEGTIME,@Param("PAAPPLICATIONENDTIME")   String PAAPPLICATIONENDTIME, @Param("PADEPARTMENT")   String PADEPARTMENT,@Param("CHECKFLAG")   Integer CHECKFLAG,@Param("APPLYTYPE")   Integer APPLYTYPE);
+
+    List<ServiceReimbursement> getInfoByInfoId(Long infoid);
+
+    List<ServiceReimbursement> getInfoByInfoIdRelatives(Long infoid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementSharedMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementSharedMapper.java
new file mode 100644
index 0000000..50ae48c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementSharedMapper.java
@@ -0,0 +1,26 @@
+package com.ruoyi.project.mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.project.domain.ServiceReimbursementShared;
+
+import java.util.List;
+
+
+
+/**
+ * 鎶ラ攢鐢宠Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2023-01-10
+ */
+public interface ServiceReimbursementSharedMapper extends BaseMapper<ServiceReimbursementShared>
+{
+    /**
+     * 鏌ヨ鎶ラ攢鐢宠鍒楄〃
+     *
+     * @param serviceReimbursementShared 鎶ラ攢鐢宠
+     * @return 鎶ラ攢鐢宠闆嗗悎
+     */
+    public List<ServiceReimbursementShared> selectServiceReimbursementSharedList(ServiceReimbursementShared serviceReimbursementShared);
+
+    List<ServiceReimbursementShared> getRemShareInfoByRemId(Long RemId);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementdetailMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementdetailMapper.java
new file mode 100644
index 0000000..1e3d839
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementdetailMapper.java
@@ -0,0 +1,30 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceReimbursementdetail;
+
+/**
+ * 鎶ラ攢鐢宠鏄庣粏Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+public interface ServiceReimbursementdetailMapper extends BaseMapper<ServiceReimbursementdetail>
+{
+    /**
+     * 鏌ヨ鎶ラ攢鐢宠鏄庣粏鍒楄〃
+     *
+     * @param serviceReimbursementdetail 鎶ラ攢鐢宠鏄庣粏
+     * @return 鎶ラ攢鐢宠鏄庣粏闆嗗悎
+     */
+    public List<ServiceReimbursementdetail> selectServiceReimbursementdetailList(ServiceReimbursementdetail serviceReimbursementdetail);
+
+    List<ServiceReimbursementdetail> getRBDetailList(Long id);
+
+    List<Long> getAllIds(Long rbid);
+
+
+    List<ServiceReimbursementdetail> getAllDetailsByRBID(Long id);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceRelativesconfirmationMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceRelativesconfirmationMapper.java
new file mode 100644
index 0000000..c75c460
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceRelativesconfirmationMapper.java
@@ -0,0 +1,31 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceRelativesconfirmation;
+import com.ruoyi.project.domain.vo.RelativeConfirmationVO;
+import com.ruoyi.project.domain.vo.TimeVO;
+
+/**
+ * 鎹愮尞浜插睘纭Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+public interface ServiceRelativesconfirmationMapper extends BaseMapper<ServiceRelativesconfirmation>
+{
+    /**
+     * 鏌ヨ鎹愮尞浜插睘纭鍒楄〃
+     *
+     * @param serviceRelativesconfirmation 鎹愮尞浜插睘纭
+     * @return 鎹愮尞浜插睘纭闆嗗悎
+     */
+    public List<ServiceRelativesconfirmation> selectServiceRelativesconfirmationList(ServiceRelativesconfirmation serviceRelativesconfirmation);
+
+    String getCoordinateUserByInfoId(Long infoid);
+
+    List<RelativeConfirmationVO> selectVOList(RelativeConfirmationVO relativeConfirmationVO);
+
+    Integer countNumber(TimeVO timeVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceSystemmessageMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceSystemmessageMapper.java
new file mode 100644
index 0000000..6e6234b
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceSystemmessageMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceSystemmessage;
+
+/**
+ * 绯荤粺娑堟伅Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-06-02
+ */
+public interface ServiceSystemmessageMapper extends BaseMapper<ServiceSystemmessage>
+{
+    /**
+     * 鏌ヨ绯荤粺娑堟伅鍒楄〃
+     *
+     * @param serviceSystemmessage 绯荤粺娑堟伅
+     * @return 绯荤粺娑堟伅闆嗗悎
+     */
+    public List<ServiceSystemmessage> selectServiceSystemmessageList(ServiceSystemmessage serviceSystemmessage);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTravelexpensestandardMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTravelexpensestandardMapper.java
new file mode 100644
index 0000000..cb4f4ec
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTravelexpensestandardMapper.java
@@ -0,0 +1,28 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.ServiceTravelexpensestandard;
+import com.ruoyi.project.domain.vo.SpTravelExpenseStandardIn;
+import com.ruoyi.project.domain.vo.SpTravelExpenseStandardOut;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 浣忓璐归檺棰濇爣鍑哅apper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-04-26
+ */
+public interface ServiceTravelexpensestandardMapper extends BaseMapper<ServiceTravelexpensestandard>
+{
+    /**
+     * 鏌ヨ浣忓璐归檺棰濇爣鍑嗗垪琛�
+     *
+     * @param serviceTravelexpensestandard 浣忓璐归檺棰濇爣鍑�
+     * @return 浣忓璐归檺棰濇爣鍑嗛泦鍚�
+     */
+    public List<ServiceTravelexpensestandard> selectServiceTravelexpensestandardList(ServiceTravelexpensestandard serviceTravelexpensestandard);
+
+    List<SpTravelExpenseStandardOut> getStandard(@Param("PAPROVINCECODE") String PAPROVINCECODE,@Param("PACITYCODE")  String PACITYCODE,@Param("PATOWNCODE")  String PATOWNCODE,@Param("PABEGINDATE")  String PABEGINDATE,@Param("PAENDDATE")  String PAENDDATE,@Param("STANDARDLEVEL")  Integer STANDARDLEVEL);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/VServiceDonateorganRegisterMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/VServiceDonateorganRegisterMapper.java
new file mode 100644
index 0000000..8eee8df
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/VServiceDonateorganRegisterMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+import com.ruoyi.project.domain.VServiceDonateorganRegister;
+
+/**
+ * 鍣ㄥ畼淇℃伅鐧昏鏂癕apper鎺ュ彛
+ * 
+ * @author shenjie
+ * @date 2021-11-11
+ */
+public interface VServiceDonateorganRegisterMapper extends BaseMapper<VServiceDonateorganRegister>
+{
+    /**
+     * 鏌ヨ鍣ㄥ畼淇℃伅鐧昏鏂板垪琛�
+     *
+     * @param vServiceDonateorganRegister 鍣ㄥ畼淇℃伅鐧昏鏂�
+     * @return 鍣ㄥ畼淇℃伅鐧昏鏂伴泦鍚�
+     */
+    public List<VServiceDonateorganRegister> selectVServiceDonateorganRegisterList(VServiceDonateorganRegister vServiceDonateorganRegister);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseExpertfeetypeService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseExpertfeetypeService.java
new file mode 100644
index 0000000..dd700b0
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseExpertfeetypeService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.BaseExpertfeetype;
+
+/**
+ * 涓撳璐圭敤Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-04-19
+ */
+public interface IBaseExpertfeetypeService extends IService<BaseExpertfeetype>
+{
+
+    /**
+     * 鏌ヨ涓撳璐圭敤鍒楄〃
+     * 
+     * @param baseExpertfeetype 涓撳璐圭敤
+     * @return 涓撳璐圭敤闆嗗悎
+     */
+    public List<BaseExpertfeetype> queryList(BaseExpertfeetype baseExpertfeetype);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseFinancesubjectService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseFinancesubjectService.java
new file mode 100644
index 0000000..a681cf3
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseFinancesubjectService.java
@@ -0,0 +1,37 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.BaseFinancesubject;
+import com.ruoyi.project.domain.vo.FinanceSubjectItemType;
+import com.ruoyi.project.domain.vo.FinanceSubjectVO;
+import com.ruoyi.project.domain.vo.ItemTypeVO;
+import com.ruoyi.project.domain.vo.SpServiceDonationcost;
+
+/**
+ * 鏀跺叆璐圭敤绉戠洰Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-11
+ */
+public interface IBaseFinancesubjectService extends IService<BaseFinancesubject>
+{
+
+    /**
+     * 鏌ヨ鏀跺叆璐圭敤绉戠洰鍒楄〃
+     * 
+     * @param baseFinancesubject 鏀跺叆璐圭敤绉戠洰
+     * @return 鏀跺叆璐圭敤绉戠洰闆嗗悎
+     */
+    public List<BaseFinancesubject> queryList(BaseFinancesubject baseFinancesubject);
+
+    List<FinanceSubjectVO> getItemName(String itemType);
+
+    List<SpServiceDonationcost> getDonationCost(String donorNo);
+
+    List<FinanceSubjectItemType> getItemType(String ExpenseType);
+
+    List<BaseFinancesubject> selectBaseFinancesubjectList(BaseFinancesubject baseFinancesubject);
+
+    List<ItemTypeVO> getDetails(String expenseType);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseItemexpenseService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseItemexpenseService.java
new file mode 100644
index 0000000..f85c56c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseItemexpenseService.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.BaseItemexpense;
+
+/**
+ * 鏀跺叆璐圭敤绉戠洰Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-05-11
+ */
+public interface IBaseItemexpenseService extends IService<BaseItemexpense>
+{
+
+    /**
+     * 鏌ヨ鏀跺叆璐圭敤绉戠洰鍒楄〃
+     * 
+     * @param baseItemexpense 鏀跺叆璐圭敤绉戠洰
+     * @return 鏀跺叆璐圭敤绉戠洰闆嗗悎
+     */
+    public List<BaseItemexpense> queryList(BaseItemexpense baseItemexpense);
+
+    List<BaseItemexpense> getDetailsByItemId(Long itemid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseOrganizationService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseOrganizationService.java
new file mode 100644
index 0000000..ff10ad0
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IBaseOrganizationService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.BaseOrganization;
+
+/**
+ * 鏈烘瀯绠$悊Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-05
+ */
+public interface IBaseOrganizationService extends IService<BaseOrganization>
+{
+
+    /**
+     * 鏌ヨ鏈烘瀯绠$悊鍒楄〃
+     * 
+     * @param baseOrganization 鏈烘瀯绠$悊
+     * @return 鏈烘瀯绠$悊闆嗗悎
+     */
+    public List<BaseOrganization> queryList(BaseOrganization baseOrganization);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IBasePrcaddressDictService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IBasePrcaddressDictService.java
new file mode 100644
index 0000000..5971228
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IBasePrcaddressDictService.java
@@ -0,0 +1,32 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.AddressSelect;
+import com.ruoyi.common.core.domain.TreeSelect;
+import com.ruoyi.common.core.domain.entity.BasePrcaddressDict;
+import com.ruoyi.common.core.domain.entity.SysDept;
+
+/**
+ * 鐪佸競鍖虹鐞哠ervice鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+public interface IBasePrcaddressDictService extends IService<BasePrcaddressDict>
+{
+
+    /**
+     * 鏌ヨ鐪佸競鍖虹鐞嗗垪琛�
+     * 
+     * @param basePrcaddressDict 鐪佸競鍖虹鐞�
+     * @return 鐪佸競鍖虹鐞嗛泦鍚�
+     */
+    public List<BasePrcaddressDict> queryList(BasePrcaddressDict basePrcaddressDict);
+
+    List<BasePrcaddressDict> selectBasePrcaddressDictList(BasePrcaddressDict basePrcaddressDict);
+
+    List<AddressSelect> buildAddressTreeSelect(List<BasePrcaddressDict> basePrcaddressDicts);
+
+    public List<BasePrcaddressDict> buildAddressTree(List<BasePrcaddressDict> depts);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDistributedetailService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDistributedetailService.java
new file mode 100644
index 0000000..7ad8d92
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDistributedetailService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDistributedetail;
+
+/**
+ * 涓撳璐圭敤鍒嗗彂姹囨�绘槑缁哠ervice鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+public interface IServiceDistributedetailService extends IService<ServiceDistributedetail>
+{
+
+    /**
+     * 鏌ヨ涓撳璐圭敤鍒嗗彂姹囨�绘槑缁嗗垪琛�
+     * 
+     * @param serviceDistributedetail 涓撳璐圭敤鍒嗗彂姹囨�绘槑缁�
+     * @return 涓撳璐圭敤鍒嗗彂姹囨�绘槑缁嗛泦鍚�
+     */
+    public List<ServiceDistributedetail> queryList(ServiceDistributedetail serviceDistributedetail);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDistributesummaryService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDistributesummaryService.java
new file mode 100644
index 0000000..dd8fa4c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDistributesummaryService.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDistributesummary;
+
+/**
+ * 涓撳璐圭敤鍒嗗彂姹囨�讳富Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+public interface IServiceDistributesummaryService extends IService<ServiceDistributesummary>
+{
+
+    /**
+     * 鏌ヨ涓撳璐圭敤鍒嗗彂姹囨�讳富鍒楄〃
+     * 
+     * @param serviceDistributesummary 涓撳璐圭敤鍒嗗彂姹囨�讳富
+     * @return 涓撳璐圭敤鍒嗗彂姹囨�讳富闆嗗悎
+     */
+    public List<ServiceDistributesummary> queryList(ServiceDistributesummary serviceDistributesummary);
+
+    List<ServiceDistributesummary> getSummaryByInfoId(Long infoid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDocumentfilesService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDocumentfilesService.java
new file mode 100644
index 0000000..4eb075f
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDocumentfilesService.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDocumentfiles;
+
+/**
+ * 鎹愮尞闄勪欢Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-04-08
+ */
+public interface IServiceDocumentfilesService extends IService<ServiceDocumentfiles>
+{
+
+    /**
+     * 鏌ヨ鎹愮尞闄勪欢鍒楄〃
+     * 
+     * @param serviceDocumentfiles 鎹愮尞闄勪欢
+     * @return 鎹愮尞闄勪欢闆嗗悎
+     */
+    public List<ServiceDocumentfiles> queryList(ServiceDocumentfiles serviceDocumentfiles);
+
+    List<ServiceDocumentfiles> selectList(ServiceDocumentfiles serviceDocumentfiles);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateannexService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateannexService.java
new file mode 100644
index 0000000..62c708c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateannexService.java
@@ -0,0 +1,26 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonateannex;
+import com.ruoyi.project.domain.vo.DonateAnnexVO;
+
+/**
+ * 鎹愮尞闄勪欢Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-11
+ */
+public interface IServiceDonateannexService extends IService<ServiceDonateannex>
+{
+
+    /**
+     * 鏌ヨ鎹愮尞闄勪欢鍒楄〃
+     * 
+     * @param serviceDonateannex 鎹愮尞闄勪欢
+     * @return 鎹愮尞闄勪欢闆嗗悎
+     */
+    public List<ServiceDonateannex> queryList(ServiceDonateannex serviceDonateannex);
+
+    List<DonateAnnexVO> selectVOList(DonateAnnexVO donateAnnexVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateannexrequirementService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateannexrequirementService.java
new file mode 100644
index 0000000..112092a
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateannexrequirementService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonateannexrequirement;
+
+/**
+ * 鎹愮尞闄勪欢瑕佹眰Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+public interface IServiceDonateannexrequirementService extends IService<ServiceDonateannexrequirement>
+{
+
+    /**
+     * 鏌ヨ鎹愮尞闄勪欢瑕佹眰鍒楄〃
+     * 
+     * @param serviceDonateannexrequirement 鎹愮尞闄勪欢瑕佹眰
+     * @return 鎹愮尞闄勪欢瑕佹眰闆嗗悎
+     */
+    public List<ServiceDonateannexrequirement> queryList(ServiceDonateannexrequirement serviceDonateannexrequirement);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoService.java
new file mode 100644
index 0000000..ef1eaca
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoService.java
@@ -0,0 +1,45 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonatebaseinfo;
+import com.ruoyi.project.domain.vo.TimeVO;
+import com.ruoyi.project.domain.vo.countByRecordStateVO;
+import org.apache.xmlbeans.impl.xb.xsdschema.Public;
+
+/**
+ * 鎹愮尞鍩虹Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-13
+ */
+public interface IServiceDonatebaseinfoService extends IService<ServiceDonatebaseinfo>
+{
+
+
+    /**
+     * 鏌ヨ鎹愮尞鍩虹鍒楄〃
+     * 
+     * @param serviceDonatebaseinfo 鎹愮尞鍩虹
+     * @return 鎹愮尞鍩虹闆嗗悎
+     */
+    public List<ServiceDonatebaseinfo> queryList(ServiceDonatebaseinfo serviceDonatebaseinfo);
+
+
+    public String getDonateNumber(ServiceDonatebaseinfo serviceDonatebaseinfo);
+
+
+    String getDonateNumberById(Long id);
+
+    String updateS1S2S3S4(Long id);
+
+    List<ServiceDonatebaseinfo> selectServiceDonatebaseinfoList(ServiceDonatebaseinfo serviceDonatebaseinfo);
+
+    List<ServiceDonatebaseinfo> listForSearch(ServiceDonatebaseinfo serviceDonatebaseinfo);
+
+    String gethqzz(Long infoid);
+
+    countByRecordStateVO countByRecordState(TimeVO timeVO);
+
+    String getDonateNameById(Long infoid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecompletioninfoService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecompletioninfoService.java
new file mode 100644
index 0000000..53f6015
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecompletioninfoService.java
@@ -0,0 +1,29 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
+import com.ruoyi.project.domain.vo.DonationCompletionVO;
+import com.ruoyi.project.domain.vo.DonationWitnessVO;
+
+/**
+ * 鎹愮尞瀹屾垚Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-19
+ */
+public interface IServiceDonatecompletioninfoService extends IService<ServiceDonatecompletioninfo>
+{
+
+    /**
+     * 鏌ヨ鎹愮尞瀹屾垚鍒楄〃
+     * 
+     * @param serviceDonatecompletioninfo 鎹愮尞瀹屾垚
+     * @return 鎹愮尞瀹屾垚闆嗗悎
+     */
+    public List<ServiceDonatecompletioninfo> queryList(ServiceDonatecompletioninfo serviceDonatecompletioninfo);
+
+    List<DonationCompletionVO> selectVOList(DonationCompletionVO donationCompletionVO);
+
+    void delDuplicateDonateCompletioninfo(long infoid,String createby);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateconsolationfundService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateconsolationfundService.java
new file mode 100644
index 0000000..34ed7d4
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateconsolationfundService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonateconsolationfund;
+
+/**
+ * 璧勯噾鐢宠涓昏〃Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-18
+ */
+public interface IServiceDonateconsolationfundService extends IService<ServiceDonateconsolationfund>
+{
+
+    /**
+     * 鏌ヨ璧勯噾鐢宠涓昏〃鍒楄〃
+     * 
+     * @param serviceDonateconsolationfund 璧勯噾鐢宠涓昏〃
+     * @return 璧勯噾鐢宠涓昏〃闆嗗悎
+     */
+    public List<ServiceDonateconsolationfund> queryList(ServiceDonateconsolationfund serviceDonateconsolationfund);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateflowchartService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateflowchartService.java
new file mode 100644
index 0000000..0f6cc5a
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateflowchartService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonateflowchart;
+
+/**
+ * 鎹愮尞娴佺▼Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+public interface IServiceDonateflowchartService extends IService<ServiceDonateflowchart>
+{
+
+    /**
+     * 鏌ヨ鎹愮尞娴佺▼鍒楄〃
+     * 
+     * @param serviceDonateflowchart 鎹愮尞娴佺▼
+     * @return 鎹愮尞娴佺▼闆嗗悎
+     */
+    public List<ServiceDonateflowchart> queryList(ServiceDonateflowchart serviceDonateflowchart);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatefollowupService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatefollowupService.java
new file mode 100644
index 0000000..e0e012d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatefollowupService.java
@@ -0,0 +1,32 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonatefollowup;
+import com.ruoyi.project.domain.vo.DonateFollowupVO;
+
+/**
+ * 鎹愮尞闅忚Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-12-10
+ */
+public interface IServiceDonatefollowupService extends IService<ServiceDonatefollowup>
+{
+
+    /**
+     * 鏌ヨ鎹愮尞闅忚鍒楄〃
+     * 
+     * @param serviceDonatefollowup 鎹愮尞闅忚
+     * @return 鎹愮尞闅忚闆嗗悎
+     */
+    public List<ServiceDonatefollowup> queryList(ServiceDonatefollowup serviceDonatefollowup);
+
+    List<ServiceDonatefollowup> selectAll(ServiceDonatefollowup serviceDonatefollowup);
+
+    ServiceDonatefollowup selectFollowUpById(Long id);
+
+    List<DonateFollowupVO> selectVOList(DonateFollowupVO donateFollowupVO);
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java
new file mode 100644
index 0000000..7664512
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java
@@ -0,0 +1,70 @@
+package com.ruoyi.project.service;
+
+import java.util.HashMap;
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonateorgan;
+import com.ruoyi.project.domain.vo.*;
+
+/**
+ * 鎹愮尞鍣ㄥ畼绠$悊Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+public interface IServiceDonateorganService extends IService<ServiceDonateorgan>
+{
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼绠$悊鍒楄〃
+     * 
+     * @param serviceDonateorgan 鎹愮尞鍣ㄥ畼绠$悊
+     * @return 鎹愮尞鍣ㄥ畼绠$悊闆嗗悎
+     */
+    public List<ServiceDonateorgan> queryList(ServiceDonateorgan serviceDonateorgan);
+
+    public List<NumberOfOrgans> getNumberOfOrgans();
+
+    public List<OrgansOfHospital> getOrgansOfHospital(String cityName);
+
+    public AllOrgansInfo getAllOrgansInfo(TimeVO timeVO);
+
+    public String getOrganNumber(ServiceDonateorgan serviceDonateorgan);
+
+    organQuality getOrganQuality(TimeVO timeVO);
+
+    List<DonateOrganVO> selectVOList(DonateOrganVO donateOrganVO);
+
+    DonateNumber getDonateNumber(TimeVO timeVO);
+
+    List<DonateNumberByMonth> getDonateNumberByMonth(TimeVO timeVO);
+
+    List<DonateNumberByMonth> getDonatePeopleByMonth(TimeVO timeVO);
+
+
+    List<DonateNumberByMonth> getDonatePeopleByMonthFromCompletioninfo(TimeVO timeVO);
+
+    List<DonateNumberByMonth> getDonateHospitalByMonth(TimeVO timeVO);
+
+    List<DonateNumberByMonth> getAcceptHospitalByMonth();
+
+    List<DonateNumberByMonth> getDonateBaseInfoByMonth();
+
+    List<DonateByRegionVO> OrgansOfHospitalByMonth(TimeVO timeVO);
+
+    List<DonateByRegionVO> OrgansOfHospitalByTime(TimeVO timeVO);
+
+    List<ServiceDonateorgan> selectServiceDonateorganList(ServiceDonateorgan serviceDonateorgan);
+
+    List<ServiceDonateorgan> selectServiceDonateorganListNotAbandon(ServiceDonateorgan serviceDonateorgan);
+
+    PMPRateVO getPMPRate(TimeVO timeVO);
+
+    List<DistrictDonateCalculateVO> getDistrictDonateCalculate();
+
+    List<DistrictDonateCalculateVO> getDistrictDonateCalculateByTime(TimeVO timeVO);
+
+    List<organNumberByOrgVO> getOrganNumberByOrg(TimeVO timeVO);
+
+    List<organInfoVO> getOrganCount(TimeVO timeVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java
new file mode 100644
index 0000000..fd85e85
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java
@@ -0,0 +1,32 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonationwitness;
+import com.ruoyi.project.domain.vo.DonationWitnessVO;
+import com.ruoyi.project.domain.vo.TimeVO;
+import com.ruoyi.project.domain.vo.WitnessStatsVO;
+
+/**
+ * 鎹愮尞瑙佽瘉Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-17
+ */
+public interface IServiceDonationwitnessService extends IService<ServiceDonationwitness>
+{
+
+    /**
+     * 鏌ヨ鎹愮尞瑙佽瘉鍒楄〃
+     * 
+     * @param serviceDonationwitness 鎹愮尞瑙佽瘉
+     * @return 鎹愮尞瑙佽瘉闆嗗悎
+     */
+    public List<ServiceDonationwitness> queryList(ServiceDonationwitness serviceDonationwitness);
+
+    List<DonationWitnessVO> selectVOList(DonationWitnessVO donationWitnessVO);
+
+    ServiceDonationwitness getByInfoId(Long infoid);
+
+    WitnessStatsVO getStats(TimeVO timeVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java
new file mode 100644
index 0000000..611655e
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java
@@ -0,0 +1,26 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceEthicalreviewopinions;
+import com.ruoyi.project.domain.vo.EthicalReviewVO;
+
+/**
+ * 浼︾悊瀹℃煡涓撳鎰忚Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-23
+ */
+public interface IServiceEthicalreviewopinionsService extends IService<ServiceEthicalreviewopinions>
+{
+
+    /**
+     * 鏌ヨ浼︾悊瀹℃煡涓撳鎰忚鍒楄〃
+     * 
+     * @param serviceEthicalreviewopinions 浼︾悊瀹℃煡涓撳鎰忚
+     * @return 浼︾悊瀹℃煡涓撳鎰忚闆嗗悎
+     */
+    public List<ServiceEthicalreviewopinions> queryList(ServiceEthicalreviewopinions serviceEthicalreviewopinions);
+
+    List<EthicalReviewVO> selectVOList(EthicalReviewVO ethicalReviewVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceExpertexpenseService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceExpertexpenseService.java
new file mode 100644
index 0000000..9113322
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceExpertexpenseService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceExpertexpense;
+
+/**
+ * 璐圭敤鐢宠涓籗ervice鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+public interface IServiceExpertexpenseService extends IService<ServiceExpertexpense>
+{
+
+    /**
+     * 鏌ヨ璐圭敤鐢宠涓诲垪琛�
+     * 
+     * @param serviceExpertexpense 璐圭敤鐢宠涓�
+     * @return 璐圭敤鐢宠涓婚泦鍚�
+     */
+    public List<ServiceExpertexpense> queryList(ServiceExpertexpense serviceExpertexpense);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceExternalpersonService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceExternalpersonService.java
new file mode 100644
index 0000000..543446e
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceExternalpersonService.java
@@ -0,0 +1,29 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceExternalperson;
+import com.ruoyi.project.domain.vo.reportInfo;
+
+/**
+ * 澶栧洿鍗曚綅浜哄憳Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-24
+ */
+public interface IServiceExternalpersonService extends IService<ServiceExternalperson>
+{
+
+    /**
+     * 鏌ヨ澶栧洿鍗曚綅浜哄憳鍒楄〃
+     * 
+     * @param serviceExternalperson 澶栧洿鍗曚綅浜哄憳
+     * @return 澶栧洿鍗曚綅浜哄憳闆嗗悎
+     */
+    public List<ServiceExternalperson> queryList(ServiceExternalperson serviceExternalperson);
+
+    List<reportInfo> getReportName(String usertype);
+
+
+    ServiceExternalperson getInfoByUserNo(String userno);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundService.java
new file mode 100644
index 0000000..a31a560
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundService.java
@@ -0,0 +1,48 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceFund;
+import com.ruoyi.project.domain.ServiceFunddetail;
+import com.ruoyi.project.domain.vo.*;
+
+/**
+ * 璐圭敤鐢宠涓籗ervice鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+public interface IServiceFundService extends IService<ServiceFund>
+{
+
+    /**
+     * 鏌ヨ璐圭敤鐢宠涓诲垪琛�
+     * 
+     * @param serviceFund 璐圭敤鐢宠涓�
+     * @return 璐圭敤鐢宠涓婚泦鍚�
+     */
+    public List<ServiceFund> queryList(ServiceFund serviceFund);
+
+    List<ServiceFund> getInfoByInfoId(Long infoid);
+
+
+
+    Long getFundId(Long infoid);
+
+    List<ServiceFund> selectServiceFundList(ServiceFund serviceFund);
+
+    List<ServiceFunddetail> getFundDetail(Long id);
+
+    List<FundVO> selectVOList(FundVO fundVO);
+
+
+    List<FundDetailOneVO> showFundDetailOne(ServiceFund serviceFund);
+
+    FundDetailTwoVO showFundDetailTwo(Long id);
+
+    String returnId(Long id);
+
+    List<SpFinancialExpensesFundOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT,Integer CHECKFLAG,Integer APPLYTYPE);
+
+    int countItem(Long infoid, Long itemid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundSharedService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundSharedService.java
new file mode 100644
index 0000000..cb2d27c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundSharedService.java
@@ -0,0 +1,24 @@
+package com.ruoyi.project.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceFundShared;
+
+import java.util.List;
+
+/**
+ * 璐圭敤鐢宠涓籗ervice鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2023-01-10
+ */
+public interface IServiceFundSharedService extends IService<ServiceFundShared>
+{
+
+    /**
+     * 鏌ヨ璐圭敤鐢宠涓诲垪琛�
+     * 
+     * @param serviceFundShared 璐圭敤鐢宠涓�
+     * @return 璐圭敤鐢宠涓婚泦鍚�
+     */
+    public List<ServiceFundShared> queryList(ServiceFundShared serviceFundShared);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFunddetailService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFunddetailService.java
new file mode 100644
index 0000000..3cd75e7
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFunddetailService.java
@@ -0,0 +1,39 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceFunddetail;
+
+/**
+ * 璐圭敤鐢宠鏄庣粏Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-25
+ */
+public interface IServiceFunddetailService extends IService<ServiceFunddetail>
+{
+
+    /**
+     * 鏌ヨ璐圭敤鐢宠鏄庣粏鍒楄〃
+     * 
+     * @param serviceFunddetail 璐圭敤鐢宠鏄庣粏
+     * @return 璐圭敤鐢宠鏄庣粏闆嗗悎
+     */
+    public List<ServiceFunddetail> queryList(ServiceFunddetail serviceFunddetail);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDLW(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDSH(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDSS(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDYX(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDHZ(Long id);
+
+    List<ServiceFunddetail> getAllDetailsByFDIDLWF(Long id);
+
+    List<ServiceFunddetail> selectServiceFunddetailList(ServiceFunddetail serviceFunddetail);
+
+    int deleteDetail(Long id);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundflowService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundflowService.java
new file mode 100644
index 0000000..75adc6c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundflowService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceFundflow;
+
+/**
+ * 璧勯噾瀹℃壒娴佺▼Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-04-27
+ */
+public interface IServiceFundflowService extends IService<ServiceFundflow>
+{
+
+    /**
+     * 鏌ヨ璧勯噾瀹℃壒娴佺▼鍒楄〃
+     * 
+     * @param serviceFundflow 璧勯噾瀹℃壒娴佺▼
+     * @return 璧勯噾瀹℃壒娴佺▼闆嗗悎
+     */
+    public List<ServiceFundflow> queryList(ServiceFundflow serviceFundflow);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundflowruleService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundflowruleService.java
new file mode 100644
index 0000000..8a80100
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundflowruleService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceFundflowrule;
+
+/**
+ * 璧勯噾瀹℃壒瑙勫垯Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-04-27
+ */
+public interface IServiceFundflowruleService extends IService<ServiceFundflowrule>
+{
+
+    /**
+     * 鏌ヨ璧勯噾瀹℃壒瑙勫垯鍒楄〃
+     * 
+     * @param serviceFundflowrule 璧勯噾瀹℃壒瑙勫垯
+     * @return 璧勯噾瀹℃壒瑙勫垯闆嗗悎
+     */
+    public List<ServiceFundflowrule> queryList(ServiceFundflowrule serviceFundflowrule);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMedicalevaluationService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMedicalevaluationService.java
new file mode 100644
index 0000000..6e1f622
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMedicalevaluationService.java
@@ -0,0 +1,28 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceMedicalevaluation;
+import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
+
+/**
+ * 鍖诲璇勪及Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-19
+ */
+public interface IServiceMedicalevaluationService extends IService<ServiceMedicalevaluation>
+{
+
+    /**
+     * 鏌ヨ鍖诲璇勪及鍒楄〃
+     * 
+     * @param serviceMedicalevaluation 鍖诲璇勪及
+     * @return 鍖诲璇勪及闆嗗悎
+     */
+    public List<ServiceMedicalevaluation> queryList(ServiceMedicalevaluation serviceMedicalevaluation);
+
+    List<MedicalEvaluationVO> selectVOList(MedicalEvaluationVO medicalEvaluationVO);
+
+    List<ServiceMedicalevaluation> selectServiceMedicalevaluationList(ServiceMedicalevaluation serviceMedicalevaluation);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceOrganallocationService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceOrganallocationService.java
new file mode 100644
index 0000000..54fca56
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceOrganallocationService.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceOrganallocation;
+
+/**
+ * 鍣ㄥ畼鍒嗛厤Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+public interface IServiceOrganallocationService extends IService<ServiceOrganallocation>
+{
+
+    /**
+     * 鏌ヨ鍣ㄥ畼鍒嗛厤鍒楄〃
+     * 
+     * @param serviceOrganallocation 鍣ㄥ畼鍒嗛厤
+     * @return 鍣ㄥ畼鍒嗛厤闆嗗悎
+     */
+    public List<ServiceOrganallocation> queryList(ServiceOrganallocation serviceOrganallocation);
+
+    List<ServiceOrganallocation> selectServiceOrganallocationList(ServiceOrganallocation serviceOrganallocation);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementService.java
new file mode 100644
index 0000000..1f00001
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementService.java
@@ -0,0 +1,38 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceReimbursement;
+import com.ruoyi.project.domain.ServiceReimbursementdetail;
+import com.ruoyi.project.domain.dto.ServiceReimbursementDto;
+import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
+
+/**
+ * 鎶ラ攢鐢宠Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+public interface IServiceReimbursementService extends IService<ServiceReimbursement>
+{
+
+    /**
+     * 鏌ヨ鎶ラ攢鐢宠鍒楄〃
+     * 
+     * @param serviceReimbursement 鎶ラ攢鐢宠
+     * @return 鎶ラ攢鐢宠闆嗗悎
+     */
+    public List<ServiceReimbursement> queryList(ServiceReimbursement serviceReimbursement);
+
+    Long getMaxId();
+
+    List<ServiceReimbursementdetail> getRBDetailList(Long id);
+
+    List<ServiceReimbursement> selectSearchList(ServiceReimbursementDto serviceReimbursementdto);
+
+    List<SpFinancialExpensesReimbursementOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT,Integer CHECKFLAG,Integer APPLYTYPE);
+
+    List<ServiceReimbursement> getInfoByInfoId(Long infoid);
+
+    List<ServiceReimbursement> getInfoByInfoIdRelatives(Long infoid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementSharedService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementSharedService.java
new file mode 100644
index 0000000..fed44c8
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementSharedService.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceReimbursementShared;
+
+import java.util.List;
+
+/**
+ * 鎶ラ攢鐢宠Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2023-01-10
+ */
+public interface IServiceReimbursementSharedService extends IService<ServiceReimbursementShared>
+{
+
+    /**
+     * 鏌ヨ鎶ラ攢鐢宠鍒楄〃
+     * 
+     * @param serviceReimbursementShared 鎶ラ攢鐢宠
+     * @return 鎶ラ攢鐢宠闆嗗悎
+     */
+    public List<ServiceReimbursementShared> queryList(ServiceReimbursementShared serviceReimbursementShared);
+    List<ServiceReimbursementShared> getRemShareInfoByRemId(Long remeid);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementdetailService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementdetailService.java
new file mode 100644
index 0000000..d370e85
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementdetailService.java
@@ -0,0 +1,32 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceReimbursementdetail;
+
+/**
+ * 鎶ラ攢鐢宠鏄庣粏Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+public interface IServiceReimbursementdetailService extends IService<ServiceReimbursementdetail>
+{
+
+    /**
+     * 鏌ヨ鎶ラ攢鐢宠鏄庣粏鍒楄〃
+     * 
+     * @param serviceReimbursementdetail 鎶ラ攢鐢宠鏄庣粏
+     * @return 鎶ラ攢鐢宠鏄庣粏闆嗗悎
+     */
+    public List<ServiceReimbursementdetail> queryList(ServiceReimbursementdetail serviceReimbursementdetail);
+
+    List<Long> getAllIds(Long rbid);
+
+
+    List<ServiceReimbursementdetail> getAllDetailsByRBID(Long id);
+
+    List<ServiceReimbursementdetail> selectServiceReimbursementdetailList(ServiceReimbursementdetail serviceReimbursementdetail);
+
+    int deleteDetail(Long id);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceRelativesconfirmationService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceRelativesconfirmationService.java
new file mode 100644
index 0000000..4308060
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceRelativesconfirmationService.java
@@ -0,0 +1,29 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceRelativesconfirmation;
+import com.ruoyi.project.domain.vo.RelativeConfirmationVO;
+
+/**
+ * 鎹愮尞浜插睘纭Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+public interface IServiceRelativesconfirmationService extends IService<ServiceRelativesconfirmation>
+{
+
+    /**
+     * 鏌ヨ鎹愮尞浜插睘纭鍒楄〃
+     * 
+     * @param serviceRelativesconfirmation 鎹愮尞浜插睘纭
+     * @return 鎹愮尞浜插睘纭闆嗗悎
+     */
+    public List<ServiceRelativesconfirmation> queryList(ServiceRelativesconfirmation serviceRelativesconfirmation);
+
+    String addH4H5(Long infoid);
+
+
+    List<RelativeConfirmationVO> selectVOList(RelativeConfirmationVO relativeConfirmationVO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceSystemmessageService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceSystemmessageService.java
new file mode 100644
index 0000000..7644e70
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceSystemmessageService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceSystemmessage;
+
+/**
+ * 绯荤粺娑堟伅Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-06-02
+ */
+public interface IServiceSystemmessageService extends IService<ServiceSystemmessage>
+{
+
+    /**
+     * 鏌ヨ绯荤粺娑堟伅鍒楄〃
+     * 
+     * @param serviceSystemmessage 绯荤粺娑堟伅
+     * @return 绯荤粺娑堟伅闆嗗悎
+     */
+    public List<ServiceSystemmessage> queryList(ServiceSystemmessage serviceSystemmessage);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceTravelexpensestandardService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceTravelexpensestandardService.java
new file mode 100644
index 0000000..7ba68da
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceTravelexpensestandardService.java
@@ -0,0 +1,28 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceTravelexpensestandard;
+import com.ruoyi.project.domain.vo.SpTravelExpenseStandardIn;
+import com.ruoyi.project.domain.vo.SpTravelExpenseStandardOut;
+
+/**
+ * 浣忓璐归檺棰濇爣鍑哠ervice鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2022-04-26
+ */
+public interface IServiceTravelexpensestandardService extends IService<ServiceTravelexpensestandard>
+{
+
+    /**
+     * 鏌ヨ浣忓璐归檺棰濇爣鍑嗗垪琛�
+     * 
+     * @param serviceTravelexpensestandard 浣忓璐归檺棰濇爣鍑�
+     * @return 浣忓璐归檺棰濇爣鍑嗛泦鍚�
+     */
+    public List<ServiceTravelexpensestandard> queryList(ServiceTravelexpensestandard serviceTravelexpensestandard);
+
+    List<SpTravelExpenseStandardOut> getStandard(String PAPROVINCECODE, String PACITYCODE,String PATOWNCODE, String PABEGINDATE,String PAENDDATE,Integer STANDARDLEVEL);
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IVServiceDonateorganRegisterService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IVServiceDonateorganRegisterService.java
new file mode 100644
index 0000000..220ee8f
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IVServiceDonateorganRegisterService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.VServiceDonateorganRegister;
+
+/**
+ * 鍣ㄥ畼淇℃伅鐧昏鏂癝ervice鎺ュ彛
+ * 
+ * @author shenjie
+ * @date 2021-11-11
+ */
+public interface IVServiceDonateorganRegisterService extends IService<VServiceDonateorganRegister>
+{
+
+    /**
+     * 鏌ヨ鍣ㄥ畼淇℃伅鐧昏鏂板垪琛�
+     * 
+     * @param vServiceDonateorganRegister 鍣ㄥ畼淇℃伅鐧昏鏂�
+     * @return 鍣ㄥ畼淇℃伅鐧昏鏂伴泦鍚�
+     */
+    public List<VServiceDonateorganRegister> queryList(VServiceDonateorganRegister vServiceDonateorganRegister);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseExpertfeetypeServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseExpertfeetypeServiceImpl.java
new file mode 100644
index 0000000..bf0a37f
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseExpertfeetypeServiceImpl.java
@@ -0,0 +1,46 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.BaseExpertfeetypeMapper;
+import com.ruoyi.project.domain.BaseExpertfeetype;
+import com.ruoyi.project.service.IBaseExpertfeetypeService;
+
+/**
+ * 涓撳璐圭敤Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-04-19
+ */
+@Service
+public class BaseExpertfeetypeServiceImpl extends ServiceImpl<BaseExpertfeetypeMapper, BaseExpertfeetype> implements IBaseExpertfeetypeService 
+{
+
+
+    /**
+     * 鏌ヨ涓撳璐圭敤鍒楄〃
+     * 
+     * @param baseExpertfeetype 涓撳璐圭敤
+     * @return 涓撳璐圭敤
+     */
+    @Override
+    public List<BaseExpertfeetype> queryList(BaseExpertfeetype baseExpertfeetype) {
+        LambdaQueryWrapper<BaseExpertfeetype> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(baseExpertfeetype.getTypecode())){
+            wrappers.eq(BaseExpertfeetype::getTypecode ,baseExpertfeetype.getTypecode());
+        }
+        if (StringUtils.isNotBlank(baseExpertfeetype.getTypename())){
+            wrappers.like(BaseExpertfeetype::getTypename ,baseExpertfeetype.getTypename());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseFinancesubjectServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseFinancesubjectServiceImpl.java
new file mode 100644
index 0000000..4aaff4b
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseFinancesubjectServiceImpl.java
@@ -0,0 +1,134 @@
+package com.ruoyi.project.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.domain.BaseFinancesubject;
+import com.ruoyi.project.domain.vo.*;
+import com.ruoyi.project.mapper.BaseFinancesubjectMapper;
+import com.ruoyi.project.service.IBaseFinancesubjectService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 鏀跺叆璐圭敤绉戠洰Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-01-11
+ */
+@Service
+public class BaseFinancesubjectServiceImpl extends ServiceImpl<BaseFinancesubjectMapper, BaseFinancesubject> implements IBaseFinancesubjectService 
+{
+
+    @Autowired
+    BaseFinancesubjectMapper baseFinancesubjectMapper;
+
+
+    /**
+     * 鏌ヨ鏀跺叆璐圭敤绉戠洰鍒楄〃
+     * 
+     * @param baseFinancesubject 鏀跺叆璐圭敤绉戠洰
+     * @return 鏀跺叆璐圭敤绉戠洰
+     */
+    @Override
+    public List<BaseFinancesubject> queryList(BaseFinancesubject baseFinancesubject) {
+        LambdaQueryWrapper<BaseFinancesubject> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(baseFinancesubject.getItemtype())){
+            wrappers.eq(BaseFinancesubject::getItemtype ,baseFinancesubject.getItemtype());
+        }
+        if (StringUtils.isNotBlank(baseFinancesubject.getItemname())){
+            wrappers.like(BaseFinancesubject::getItemname ,baseFinancesubject.getItemname());
+        }
+        if (StringUtils.isNotBlank(baseFinancesubject.getUsestate())){
+            wrappers.eq(BaseFinancesubject::getUsestate ,baseFinancesubject.getUsestate());
+        }
+        if (StringUtils.isNotBlank(baseFinancesubject.getExpensetype())){
+            wrappers.eq(BaseFinancesubject::getExpensetype ,baseFinancesubject.getExpensetype());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<FinanceSubjectVO> getItemName(String itemType) {
+        List<FinanceSubjectVO> l = baseFinancesubjectMapper.getItemName(itemType);
+
+        return l;
+    }
+
+    @Override
+    public List<SpServiceDonationcost> getDonationCost(String DonorNo) {
+        List<SpServiceDonationcost> l = baseFinancesubjectMapper.getDonationCost(DonorNo);
+
+        return l;
+    }
+
+    @Override
+    public List<FinanceSubjectItemType> getItemType(String ExpenseType) {
+        List<FinanceSubjectItemType> l = baseFinancesubjectMapper.getItemType(ExpenseType);
+
+        return l;
+    }
+
+    @Override
+    public List<BaseFinancesubject> selectBaseFinancesubjectList(BaseFinancesubject baseFinancesubject) {
+        return baseFinancesubjectMapper.selectBaseFinancesubjectList(baseFinancesubject);
+    }
+
+    @Override
+    public List<ItemTypeVO> getDetails(String expenseType) {
+        List<BaseFinancesubject> l = baseFinancesubjectMapper.getAllInfoByExpenseType(expenseType);
+        List<ItemTypeVO> list = new ArrayList<>();
+        boolean isExists = false;
+
+        for(BaseFinancesubject b : l){
+            ItemTypeVO temp = new ItemTypeVO();
+            for(int i = 0; i < list.size(); i++){
+                if(list.get(i).getItemType().equals(b.getItemtype())){
+                    isExists = true;
+                    temp = list.get(i);
+                }
+            }
+
+            if (isExists == false) {
+                ItemTypeVO itemTypeVO = new ItemTypeVO();
+                itemTypeVO.setItemType(b.getItemtype());
+                itemTypeVO.setItemTypeName(b.getItemtypename());
+
+                ItemDetailVO id = new ItemDetailVO();
+                id.setId(b.getId());
+                id.setItemCode(b.getItemcode());
+                id.setItemDescribe(b.getItemdescribe());
+                id.setItemName(b.getItemname());
+                id.setItemPinyin(b.getItempinyin());
+
+                List<ItemDetailVO> idList = new ArrayList<>();
+                idList.add(id);
+                itemTypeVO.setItemDetails(idList);
+                list.add(itemTypeVO);
+            }
+            else{
+
+                List<ItemDetailVO> idList = temp.getItemDetails();
+                ItemDetailVO id = new ItemDetailVO();
+                id.setId(b.getId());
+                id.setItemCode(b.getItemcode());
+                id.setItemDescribe(b.getItemdescribe());
+                id.setItemName(b.getItemname());
+                id.setItemPinyin(b.getItempinyin());
+
+                idList.add(id);
+                temp.setItemDetails(idList);
+                isExists = false;
+
+            }
+
+        }
+
+        return list;
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseItemexpenseServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseItemexpenseServiceImpl.java
new file mode 100644
index 0000000..e68225e
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseItemexpenseServiceImpl.java
@@ -0,0 +1,57 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.BaseItemexpenseMapper;
+import com.ruoyi.project.domain.BaseItemexpense;
+import com.ruoyi.project.service.IBaseItemexpenseService;
+
+/**
+ * 鏀跺叆璐圭敤绉戠洰Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-05-11
+ */
+@Service
+public class BaseItemexpenseServiceImpl extends ServiceImpl<BaseItemexpenseMapper, BaseItemexpense> implements IBaseItemexpenseService 
+{
+
+
+    @Autowired
+    private BaseItemexpenseMapper baseItemexpenseMapper;
+
+    /**
+     * 鏌ヨ鏀跺叆璐圭敤绉戠洰鍒楄〃
+     * 
+     * @param baseItemexpense 鏀跺叆璐圭敤绉戠洰
+     * @return 鏀跺叆璐圭敤绉戠洰
+     */
+    @Override
+    public List<BaseItemexpense> queryList(BaseItemexpense baseItemexpense) {
+        LambdaQueryWrapper<BaseItemexpense> wrappers = Wrappers.lambdaQuery();
+        if (baseItemexpense.getExpense() != null){
+            wrappers.eq(BaseItemexpense::getExpense ,baseItemexpense.getExpense());
+        }
+        if (StringUtils.isNotBlank(baseItemexpense.getExpensedescribe())){
+            wrappers.eq(BaseItemexpense::getExpensedescribe ,baseItemexpense.getExpensedescribe());
+        }
+        if (StringUtils.isNotBlank(baseItemexpense.getUsestate())){
+            wrappers.eq(BaseItemexpense::getUsestate ,baseItemexpense.getUsestate());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<BaseItemexpense> getDetailsByItemId(Long itemid) {
+        return baseItemexpenseMapper.getDetailsByItemId(itemid);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseOrganizationServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseOrganizationServiceImpl.java
new file mode 100644
index 0000000..57e612d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseOrganizationServiceImpl.java
@@ -0,0 +1,112 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.BaseOrganizationMapper;
+import com.ruoyi.project.domain.BaseOrganization;
+import com.ruoyi.project.service.IBaseOrganizationService;
+
+/**
+ * 鏈烘瀯绠$悊Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-05
+ */
+@Service
+public class BaseOrganizationServiceImpl extends ServiceImpl<BaseOrganizationMapper, BaseOrganization> implements IBaseOrganizationService 
+{
+
+
+    /**
+     * 鏌ヨ鏈烘瀯绠$悊鍒楄〃
+     * 
+     * @param baseOrganization 鏈烘瀯绠$悊
+     * @return 鏈烘瀯绠$悊
+     */
+    @Override
+    public List<BaseOrganization> queryList(BaseOrganization baseOrganization) {
+        LambdaQueryWrapper<BaseOrganization> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(baseOrganization.getOrganizationname())){
+            wrappers.like(BaseOrganization::getOrganizationname ,baseOrganization.getOrganizationname());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getOrganizationid())){
+            wrappers.eq(BaseOrganization::getOrganizationid ,baseOrganization.getOrganizationid());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getLogourl())){
+            wrappers.eq(BaseOrganization::getLogourl ,baseOrganization.getLogourl());
+        }
+        if (baseOrganization.getRegistertime() != null){
+            wrappers.eq(BaseOrganization::getRegistertime ,baseOrganization.getRegistertime());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getRegisteraddress())){
+            wrappers.eq(BaseOrganization::getRegisteraddress ,baseOrganization.getRegisteraddress());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getOfficeplace())){
+            wrappers.eq(BaseOrganization::getOfficeplace ,baseOrganization.getOfficeplace());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getLegalperson())){
+            wrappers.eq(BaseOrganization::getLegalperson ,baseOrganization.getLegalperson());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getContactperson())){
+            wrappers.eq(BaseOrganization::getContactperson ,baseOrganization.getContactperson());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getContactnumber())){
+            wrappers.eq(BaseOrganization::getContactnumber ,baseOrganization.getContactnumber());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getIntroduction())){
+            wrappers.eq(BaseOrganization::getIntroduction ,baseOrganization.getIntroduction());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getOrganizationtype())){
+            wrappers.eq(BaseOrganization::getOrganizationtype ,baseOrganization.getOrganizationtype());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getHospitalnature())){
+            wrappers.eq(BaseOrganization::getHospitalnature ,baseOrganization.getHospitalnature());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getRegionallevel())){
+            wrappers.eq(BaseOrganization::getRegionallevel ,baseOrganization.getRegionallevel());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getMedicalcode())){
+            wrappers.eq(BaseOrganization::getMedicalcode ,baseOrganization.getMedicalcode());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getProvince())){
+            wrappers.eq(BaseOrganization::getProvince ,baseOrganization.getProvince());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getProvincename())){
+            wrappers.like(BaseOrganization::getProvincename ,baseOrganization.getProvincename());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getCity())){
+            wrappers.eq(BaseOrganization::getCity ,baseOrganization.getCity());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getCityname())){
+            wrappers.like(BaseOrganization::getCityname ,baseOrganization.getCityname());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getTown())){
+            wrappers.eq(BaseOrganization::getTown ,baseOrganization.getTown());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getTownname())){
+            wrappers.like(BaseOrganization::getTownname ,baseOrganization.getTownname());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getCommunity())){
+            wrappers.eq(BaseOrganization::getCommunity ,baseOrganization.getCommunity());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getCommunityname())){
+            wrappers.like(BaseOrganization::getCommunityname ,baseOrganization.getCommunityname());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getCountycode())){
+            wrappers.eq(BaseOrganization::getCountycode ,baseOrganization.getCountycode());
+        }
+        if (StringUtils.isNotBlank(baseOrganization.getCountyname())){
+            wrappers.like(BaseOrganization::getCountyname ,baseOrganization.getCountyname());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BasePrcaddressDictServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BasePrcaddressDictServiceImpl.java
new file mode 100644
index 0000000..141fb53
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BasePrcaddressDictServiceImpl.java
@@ -0,0 +1,148 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.Iterator;
+import java.util.List;
+
+import com.ruoyi.common.core.domain.AddressSelect;
+import com.ruoyi.common.core.domain.TreeSelect;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.stream.Collectors;
+
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.BasePrcaddressDictMapper;
+import com.ruoyi.project.service.IBasePrcaddressDictService;
+import com.ruoyi.common.core.domain.entity.BasePrcaddressDict;
+
+/**
+ * 鐪佸競鍖虹鐞哠ervice涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+@Service
+public class BasePrcaddressDictServiceImpl extends ServiceImpl<BasePrcaddressDictMapper, BasePrcaddressDict> implements IBasePrcaddressDictService 
+{
+
+    @Autowired
+    private BasePrcaddressDictMapper basePrcaddressDictMapper;
+
+
+    /**
+     * 鏌ヨ鐪佸競鍖虹鐞嗗垪琛�
+     * 
+     * @param basePrcaddressDict 鐪佸競鍖虹鐞�
+     * @return 鐪佸競鍖虹鐞�
+     */
+    @Override
+    public List<BasePrcaddressDict> queryList(BasePrcaddressDict basePrcaddressDict) {
+        LambdaQueryWrapper<BasePrcaddressDict> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(basePrcaddressDict.getAreanumber())){
+            wrappers.eq(BasePrcaddressDict::getAreanumber ,basePrcaddressDict.getAreanumber());
+        }
+        if (StringUtils.isNotBlank(basePrcaddressDict.getAreaname())){
+            wrappers.like(BasePrcaddressDict::getAreaname ,basePrcaddressDict.getAreaname());
+        }
+        if (StringUtils.isNotBlank(basePrcaddressDict.getSuperiorareanumber())){
+            wrappers.eq(BasePrcaddressDict::getSuperiorareanumber ,basePrcaddressDict.getSuperiorareanumber());
+        }
+        if (basePrcaddressDict.getArealv() != null){
+            wrappers.eq(BasePrcaddressDict::getArealv ,basePrcaddressDict.getArealv());
+        }
+        if (StringUtils.isNotBlank(basePrcaddressDict.getPym())){
+            wrappers.eq(BasePrcaddressDict::getPym ,basePrcaddressDict.getPym());
+        }
+        if (StringUtils.isNotBlank(basePrcaddressDict.getWbm())){
+            wrappers.eq(BasePrcaddressDict::getWbm ,basePrcaddressDict.getWbm());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<BasePrcaddressDict> selectBasePrcaddressDictList(BasePrcaddressDict basePrcaddressDict) {
+        return basePrcaddressDictMapper.selectBasePrcaddressDictList(basePrcaddressDict);
+    }
+
+    @Override
+    public List<AddressSelect> buildAddressTreeSelect(List<BasePrcaddressDict> basePrcaddressDicts) {
+        List<BasePrcaddressDict> addressTrees = buildAddressTree(basePrcaddressDicts);
+        return addressTrees.stream().map(AddressSelect::new).collect(Collectors.toList());
+
+    }
+
+    @Override
+    public List<BasePrcaddressDict> buildAddressTree(List<BasePrcaddressDict> basePrcaddressDicts) {
+        List<BasePrcaddressDict> returnList = new ArrayList<BasePrcaddressDict>();
+        List<String> tempList = new ArrayList<String>();
+        for (BasePrcaddressDict basePrcaddressDict : basePrcaddressDicts) {
+            tempList.add(basePrcaddressDict.getAreanumber());
+        }
+        for (Iterator<BasePrcaddressDict> iterator = basePrcaddressDicts.iterator(); iterator.hasNext();){
+
+            BasePrcaddressDict basePrcaddressDict = (BasePrcaddressDict) iterator.next();
+            // 濡傛灉鏄《绾ц妭鐐�, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
+            if (!tempList.contains(basePrcaddressDict.getSuperiorareanumber()))
+            {
+                recursionFn(basePrcaddressDicts, basePrcaddressDict);
+                returnList.add(basePrcaddressDict);
+            }
+
+        }
+
+        if (returnList.isEmpty())
+        {
+            returnList = basePrcaddressDicts;
+        }
+        return returnList;
+    }
+
+
+    /**
+     * 閫掑綊鍒楄〃
+     */
+    private void recursionFn(List<BasePrcaddressDict> list, BasePrcaddressDict t)
+    {
+        // 寰楀埌瀛愯妭鐐瑰垪琛�
+        List<BasePrcaddressDict> childList = getChildList(list, t);
+        t.setChildren(childList);
+        for (BasePrcaddressDict tChild : childList)
+        {
+            if (hasChild(list, tChild))
+            {
+                recursionFn(list, tChild);
+            }
+        }
+    }
+
+    /**
+     * 寰楀埌瀛愯妭鐐瑰垪琛�
+     */
+    private List<BasePrcaddressDict> getChildList(List<BasePrcaddressDict> list, BasePrcaddressDict t)
+    {
+        List<BasePrcaddressDict> tlist = new ArrayList<BasePrcaddressDict>();
+        Iterator<BasePrcaddressDict> it = list.iterator();
+        while (it.hasNext())
+        {
+            BasePrcaddressDict n = (BasePrcaddressDict) it.next();
+            if (StringUtils.isNotNull(n.getSuperiorareanumber()) && n.getSuperiorareanumber().equals(t.getAreanumber()))
+            {
+                tlist.add(n);
+            }
+        }
+        return tlist;
+    }
+
+    /**
+     * 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣
+     */
+    private boolean hasChild(List<BasePrcaddressDict> list, BasePrcaddressDict t)
+    {
+        return getChildList(list, t).size() > 0 ? true : false;
+    }
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDistributedetailServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDistributedetailServiceImpl.java
new file mode 100644
index 0000000..88c2ebc
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDistributedetailServiceImpl.java
@@ -0,0 +1,76 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceDistributedetailMapper;
+import com.ruoyi.project.domain.ServiceDistributedetail;
+import com.ruoyi.project.service.IServiceDistributedetailService;
+
+/**
+ * 涓撳璐圭敤鍒嗗彂姹囨�绘槑缁哠ervice涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+@Service
+public class ServiceDistributedetailServiceImpl extends ServiceImpl<ServiceDistributedetailMapper, ServiceDistributedetail> implements IServiceDistributedetailService 
+{
+
+
+    /**
+     * 鏌ヨ涓撳璐圭敤鍒嗗彂姹囨�绘槑缁嗗垪琛�
+     * 
+     * @param serviceDistributedetail 涓撳璐圭敤鍒嗗彂姹囨�绘槑缁�
+     * @return 涓撳璐圭敤鍒嗗彂姹囨�绘槑缁�
+     */
+    @Override
+    public List<ServiceDistributedetail> queryList(ServiceDistributedetail serviceDistributedetail) {
+        LambdaQueryWrapper<ServiceDistributedetail> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceDistributedetail.getBeneficiaryname())){
+            wrappers.like(ServiceDistributedetail::getBeneficiaryname ,serviceDistributedetail.getBeneficiaryname());
+        }
+        if (StringUtils.isNotBlank(serviceDistributedetail.getBeneficiaryno())){
+            wrappers.eq(ServiceDistributedetail::getBeneficiaryno ,serviceDistributedetail.getBeneficiaryno());
+        }
+        if (StringUtils.isNotBlank(serviceDistributedetail.getUnitname())){
+            wrappers.like(ServiceDistributedetail::getUnitname ,serviceDistributedetail.getUnitname());
+        }
+        if (StringUtils.isNotBlank(serviceDistributedetail.getUnitno())){
+            wrappers.eq(ServiceDistributedetail::getUnitno ,serviceDistributedetail.getUnitno());
+        }
+        if (StringUtils.isNotBlank(serviceDistributedetail.getUnituserno())){
+            wrappers.eq(ServiceDistributedetail::getUnituserno ,serviceDistributedetail.getUnituserno());
+        }
+        if (StringUtils.isNotBlank(serviceDistributedetail.getApplytype())){
+            wrappers.eq(ServiceDistributedetail::getApplytype ,serviceDistributedetail.getApplytype());
+        }
+        if (serviceDistributedetail.getItemid() != null){
+            wrappers.eq(ServiceDistributedetail::getItemid ,serviceDistributedetail.getItemid());
+        }
+        if (StringUtils.isNotBlank(serviceDistributedetail.getItemname())){
+            wrappers.like(ServiceDistributedetail::getItemname ,serviceDistributedetail.getItemname());
+        }
+        if (StringUtils.isNotBlank(serviceDistributedetail.getItemtype())){
+            wrappers.eq(ServiceDistributedetail::getItemtype ,serviceDistributedetail.getItemtype());
+        }
+        if (StringUtils.isNotBlank(serviceDistributedetail.getRecordstatus())){
+            wrappers.eq(ServiceDistributedetail::getRecordstatus ,serviceDistributedetail.getRecordstatus());
+        }
+        if (serviceDistributedetail.getCreateTime() != null){
+            wrappers.eq(ServiceDistributedetail::getCreateTime ,serviceDistributedetail.getCreateTime());
+        }
+        if (StringUtils.isNotBlank(serviceDistributedetail.getUploadflag())){
+            wrappers.eq(ServiceDistributedetail::getUploadflag ,serviceDistributedetail.getUploadflag());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDistributesummaryServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDistributesummaryServiceImpl.java
new file mode 100644
index 0000000..4479c4b
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDistributesummaryServiceImpl.java
@@ -0,0 +1,79 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.project.domain.ServiceDistributedetail;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceDistributesummaryMapper;
+import com.ruoyi.project.domain.ServiceDistributesummary;
+import com.ruoyi.project.service.IServiceDistributesummaryService;
+
+/**
+ * 涓撳璐圭敤鍒嗗彂姹囨�讳富Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+@Service
+public class ServiceDistributesummaryServiceImpl extends ServiceImpl<ServiceDistributesummaryMapper, ServiceDistributesummary> implements IServiceDistributesummaryService 
+{
+
+    @Autowired
+    ServiceDistributesummaryMapper serviceDistributesummaryMapper;
+
+
+    /**
+     * 鏌ヨ涓撳璐圭敤鍒嗗彂姹囨�讳富鍒楄〃
+     * 
+     * @param serviceDistributesummary 涓撳璐圭敤鍒嗗彂姹囨�讳富
+     * @return 涓撳璐圭敤鍒嗗彂姹囨�讳富
+     */
+    @Override
+    public List<ServiceDistributesummary> queryList(ServiceDistributesummary serviceDistributesummary) {
+        LambdaQueryWrapper<ServiceDistributesummary> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceDistributesummary.getDonorno())){
+            wrappers.eq(ServiceDistributesummary::getDonorno ,serviceDistributesummary.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceDistributesummary.getDonorname())){
+            wrappers.like(ServiceDistributesummary::getDonorname ,serviceDistributesummary.getDonorname());
+        }
+        if (StringUtils.isNotBlank(serviceDistributesummary.getUserno())){
+            wrappers.eq(ServiceDistributesummary::getUserno ,serviceDistributesummary.getUserno());
+        }
+        if (StringUtils.isNotBlank(serviceDistributesummary.getUsername())){
+            wrappers.like(ServiceDistributesummary::getUsername ,serviceDistributesummary.getUsername());
+        }
+        if (StringUtils.isNotBlank(serviceDistributesummary.getUnitname())){
+            wrappers.like(ServiceDistributesummary::getUnitname ,serviceDistributesummary.getUnitname());
+        }
+        if (StringUtils.isNotBlank(serviceDistributesummary.getUnitno())){
+            wrappers.eq(ServiceDistributesummary::getUnitno ,serviceDistributesummary.getUnitno());
+        }
+        if (StringUtils.isNotBlank(serviceDistributesummary.getDepartmentno())){
+            wrappers.eq(ServiceDistributesummary::getDepartmentno ,serviceDistributesummary.getDepartmentno());
+        }
+        if (StringUtils.isNotBlank(serviceDistributesummary.getDepartmentname())){
+            wrappers.like(ServiceDistributesummary::getDepartmentname ,serviceDistributesummary.getDepartmentname());
+        }
+        if (StringUtils.isNotBlank(serviceDistributesummary.getRecordstatus())){
+            wrappers.eq(ServiceDistributesummary::getRecordstatus ,serviceDistributesummary.getRecordstatus());
+        }
+        if (StringUtils.isNotBlank(serviceDistributesummary.getUploadflag())){
+            wrappers.eq(ServiceDistributesummary::getUploadflag ,serviceDistributesummary.getUploadflag());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<ServiceDistributesummary> getSummaryByInfoId(Long infoid) {
+        return serviceDistributesummaryMapper.getSummaryByInfoId(infoid);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDocumentfilesServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDocumentfilesServiceImpl.java
new file mode 100644
index 0000000..41ed33e
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDocumentfilesServiceImpl.java
@@ -0,0 +1,62 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceDocumentfilesMapper;
+import com.ruoyi.project.domain.ServiceDocumentfiles;
+import com.ruoyi.project.service.IServiceDocumentfilesService;
+
+/**
+ * 鎹愮尞闄勪欢Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-04-08
+ */
+@Service
+public class ServiceDocumentfilesServiceImpl extends ServiceImpl<ServiceDocumentfilesMapper, ServiceDocumentfiles> implements IServiceDocumentfilesService 
+{
+
+    @Autowired
+    private ServiceDocumentfilesMapper serviceDocumentfilesMapper;
+
+    /**
+     * 鏌ヨ鎹愮尞闄勪欢鍒楄〃
+     * 
+     * @param serviceDocumentfiles 鎹愮尞闄勪欢
+     * @return 鎹愮尞闄勪欢
+     */
+    @Override
+    public List<ServiceDocumentfiles> queryList(ServiceDocumentfiles serviceDocumentfiles) {
+        LambdaQueryWrapper<ServiceDocumentfiles> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceDocumentfiles.getDoctype())){
+            wrappers.eq(ServiceDocumentfiles::getDoctype ,serviceDocumentfiles.getDoctype());
+        }
+        if (StringUtils.isNotBlank(serviceDocumentfiles.getFilename())){
+            wrappers.like(ServiceDocumentfiles::getFilename ,serviceDocumentfiles.getFilename());
+        }
+        if (StringUtils.isNotBlank(serviceDocumentfiles.getFiletype())){
+            wrappers.eq(ServiceDocumentfiles::getFiletype ,serviceDocumentfiles.getFiletype());
+        }
+        if (StringUtils.isNotBlank(serviceDocumentfiles.getFileurl())){
+            wrappers.eq(ServiceDocumentfiles::getFileurl ,serviceDocumentfiles.getFileurl());
+        }
+        if (StringUtils.isNotBlank(serviceDocumentfiles.getStatus())){
+            wrappers.eq(ServiceDocumentfiles::getStatus ,serviceDocumentfiles.getStatus());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<ServiceDocumentfiles> selectList(ServiceDocumentfiles serviceDocumentfiles) {
+        return serviceDocumentfilesMapper.selectServiceDocumentfilesList(serviceDocumentfiles);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateannexServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateannexServiceImpl.java
new file mode 100644
index 0000000..004273c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateannexServiceImpl.java
@@ -0,0 +1,79 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.project.domain.vo.DonateAnnexVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceDonateannexMapper;
+import com.ruoyi.project.domain.ServiceDonateannex;
+import com.ruoyi.project.service.IServiceDonateannexService;
+
+/**
+ * 鎹愮尞闄勪欢Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-11
+ */
+@Service
+public class ServiceDonateannexServiceImpl extends ServiceImpl<ServiceDonateannexMapper, ServiceDonateannex> implements IServiceDonateannexService 
+{
+
+    @Autowired
+    ServiceDonateannexMapper serviceDonateannexMapper;
+
+    /**
+     * 鏌ヨ鎹愮尞闄勪欢鍒楄〃
+     * 
+     * @param serviceDonateannex 鎹愮尞闄勪欢
+     * @return 鎹愮尞闄勪欢
+     */
+    @Override
+    public List<ServiceDonateannex> queryList(ServiceDonateannex serviceDonateannex) {
+        LambdaQueryWrapper<ServiceDonateannex> wrappers = Wrappers.lambdaQuery();
+        if (serviceDonateannex.getInfoid() != null){
+            wrappers.eq(ServiceDonateannex::getInfoid ,serviceDonateannex.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceDonateannex.getDonorno())){
+            wrappers.eq(ServiceDonateannex::getDonorno ,serviceDonateannex.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceDonateannex.getAnnexname())){
+            wrappers.like(ServiceDonateannex::getAnnexname ,serviceDonateannex.getAnnexname());
+        }
+        if (StringUtils.isNotBlank(serviceDonateannex.getAnnexno())){
+            wrappers.eq(ServiceDonateannex::getAnnexno ,serviceDonateannex.getAnnexno());
+        }
+        if (StringUtils.isNotBlank(serviceDonateannex.getAnnexurl())){
+            wrappers.eq(ServiceDonateannex::getAnnexurl ,serviceDonateannex.getAnnexurl());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<DonateAnnexVO> selectVOList(DonateAnnexVO donateAnnexVO) {
+
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List <SysRole> l = user.getRoles();
+        Boolean b = false;
+        for(SysRole r : l){
+            if(r.getRoleId().longValue() == 3){
+                b = true;
+            }
+        }
+        if(b){
+            donateAnnexVO.setCreate_by(user.getUserName());
+        }
+        return serviceDonateannexMapper.selectVOList(donateAnnexVO);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateannexrequirementServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateannexrequirementServiceImpl.java
new file mode 100644
index 0000000..68758de
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateannexrequirementServiceImpl.java
@@ -0,0 +1,58 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceDonateannexrequirementMapper;
+import com.ruoyi.project.domain.ServiceDonateannexrequirement;
+import com.ruoyi.project.service.IServiceDonateannexrequirementService;
+
+/**
+ * 鎹愮尞闄勪欢瑕佹眰Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Service
+public class ServiceDonateannexrequirementServiceImpl extends ServiceImpl<ServiceDonateannexrequirementMapper, ServiceDonateannexrequirement> implements IServiceDonateannexrequirementService 
+{
+
+
+    /**
+     * 鏌ヨ鎹愮尞闄勪欢瑕佹眰鍒楄〃
+     * 
+     * @param serviceDonateannexrequirement 鎹愮尞闄勪欢瑕佹眰
+     * @return 鎹愮尞闄勪欢瑕佹眰
+     */
+    @Override
+    public List<ServiceDonateannexrequirement> queryList(ServiceDonateannexrequirement serviceDonateannexrequirement) {
+        LambdaQueryWrapper<ServiceDonateannexrequirement> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceDonateannexrequirement.getAnnexname())){
+            wrappers.like(ServiceDonateannexrequirement::getAnnexname ,serviceDonateannexrequirement.getAnnexname());
+        }
+        if (StringUtils.isNotBlank(serviceDonateannexrequirement.getAnnexno())){
+            wrappers.eq(ServiceDonateannexrequirement::getAnnexno ,serviceDonateannexrequirement.getAnnexno());
+        }
+        if (serviceDonateannexrequirement.getExpirestime() != null){
+            wrappers.eq(ServiceDonateannexrequirement::getExpirestime ,serviceDonateannexrequirement.getExpirestime());
+        }
+        if (serviceDonateannexrequirement.getIsrequired() != null){
+            wrappers.eq(ServiceDonateannexrequirement::getIsrequired ,serviceDonateannexrequirement.getIsrequired());
+        }
+        if (StringUtils.isNotBlank(serviceDonateannexrequirement.getFlowname())){
+            wrappers.like(ServiceDonateannexrequirement::getFlowname ,serviceDonateannexrequirement.getFlowname());
+        }
+        if (StringUtils.isNotBlank(serviceDonateannexrequirement.getDonationcategory())){
+            wrappers.eq(ServiceDonateannexrequirement::getDonationcategory ,serviceDonateannexrequirement.getDonationcategory());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
new file mode 100644
index 0000000..549a817
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
@@ -0,0 +1,238 @@
+package com.ruoyi.project.service.impl;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.project.domain.BaseOrganization;
+import com.ruoyi.project.domain.ServiceDonationwitness;
+import com.ruoyi.project.domain.vo.TimeVO;
+import com.ruoyi.project.domain.vo.countByRecordStateVO;
+import com.ruoyi.project.mapper.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.domain.ServiceDonatebaseinfo;
+import com.ruoyi.project.mapper.BaseOrganizationMapper;
+import com.ruoyi.project.service.IServiceDonatebaseinfoService;
+
+/**
+ * 鎹愮尞鍩虹Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-13
+ */
+@Service
+public class ServiceDonatebaseinfoServiceImpl extends ServiceImpl<ServiceDonatebaseinfoMapper, ServiceDonatebaseinfo> implements IServiceDonatebaseinfoService 
+{
+
+    @Autowired
+    BaseOrganizationMapper baseOrganizationMapper;
+
+    @Autowired
+    ServiceExternalpersonMapper serviceExternalpersonMapper;
+
+    @Autowired
+    ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper;
+
+    @Autowired
+    ServiceDonationwitnessMapper serviceDonationwitnessMapper;
+
+
+
+    /**
+     * 鏌ヨ鎹愮尞鍩虹鍒楄〃
+     * 
+     * @param serviceDonatebaseinfo 鎹愮尞鍩虹
+     * @return 鎹愮尞鍩虹
+     */
+    @Override
+    public List<ServiceDonatebaseinfo> queryList(ServiceDonatebaseinfo serviceDonatebaseinfo) {
+        LambdaQueryWrapper<ServiceDonatebaseinfo> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getName())){
+            wrappers.like(ServiceDonatebaseinfo::getName ,serviceDonatebaseinfo.getName());
+        }
+        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getIdcardno())){
+            wrappers.like(ServiceDonatebaseinfo::getIdcardno ,serviceDonatebaseinfo.getIdcardno());
+        }
+        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getResidenceprovince())){
+            wrappers.eq(ServiceDonatebaseinfo::getResidenceprovince ,serviceDonatebaseinfo.getResidenceprovince());
+        }
+        if (serviceDonatebaseinfo.getRecordstate() != null){
+            wrappers.eq(ServiceDonatebaseinfo::getRecordstate ,serviceDonatebaseinfo.getRecordstate());
+        }
+        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getTreatmenthospitalname())){
+            wrappers.like(ServiceDonatebaseinfo::getTreatmenthospitalname ,serviceDonatebaseinfo.getTreatmenthospitalname());
+        }
+        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getDonorno())){
+            wrappers.eq(ServiceDonatebaseinfo::getDonorno ,serviceDonatebaseinfo.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getReportername())){
+            wrappers.like(ServiceDonatebaseinfo::getReportername ,serviceDonatebaseinfo.getReportername());
+        }
+        Map<String, Object> params = serviceDonatebaseinfo.getParams();
+        if (params.get("beginReporttime") != null && params.get("endReporttime") != null) {
+            wrappers.between(ServiceDonatebaseinfo::getReporttime ,params.get("beginReporttime"),params.get("endReporttime"));
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public String getDonateNumber(ServiceDonatebaseinfo serviceDonatebaseinfo) {
+        String donateNumber = "";
+
+        //鐪佺紪鍙� P1P2
+        donateNumber += "33";
+        //鍙戠幇鍖婚櫌 C1C2AF1N1
+        String hospitalNo = serviceDonatebaseinfo.getTreatmenthospitalno();
+        BaseOrganization baseOrganization = baseOrganizationMapper.getOrganizationByNumber(hospitalNo);
+        donateNumber += baseOrganization.getOrganizationid();
+
+        //宸ヤ綔浜哄憳 H1H2H3
+        donateNumber += serviceDonatebaseinfo.getReporterno();
+        //绾㈠崄瀛椾細 H4H5
+        donateNumber += "**";
+
+        //鎹愮尞鑰呮�у埆 G1+
+        donateNumber += serviceDonatebaseinfo.getSex().toString();
+        //鎹愮尞鑰呰鍨� B1
+
+        String bloodtype = "" + serviceDonatebaseinfo.getBloodtype() + serviceDonatebaseinfo.getRhyin();
+
+        donateNumber += serviceDonatebaseinfoMapper.getBloodCode(bloodtype);
+        //鎹愮尞鑰呭勾榫� A1A2
+        donateNumber += serviceDonatebaseinfo.getAge().toString();
+        //鎹愮尞骞翠唤 Y1Y2
+        Date dt = serviceDonatebaseinfo.getReporttime();
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String dateString = formatter.format(dt);
+        donateNumber += dateString.substring(2, 4);
+        //鎹愮尞鑰呭簭鍙� S1S2S3S4
+        //鏌ヨ褰撳勾鐨勫簭鍙锋暟鎹�
+        donateNumber += "****";
+
+
+        return donateNumber;
+    }
+
+    @Override
+    public String getDonateNumberById(Long id) {
+        return serviceDonatebaseinfoMapper.getDonateNumberById(id);
+    }
+
+    @Override
+    public String updateS1S2S3S4(Long id) {
+        String oldDonateNumber = serviceDonatebaseinfoMapper.getDonateNumberById(id);
+
+        List <ServiceDonationwitness> list = serviceDonationwitnessMapper.getWitnessList();
+        int completeDonation = list.size();
+
+        String number = "";
+
+        if(completeDonation < 10){
+            number = "000" + completeDonation;
+        }
+        else if(completeDonation >= 10 && completeDonation < 100){
+            number = "00" + completeDonation;
+        }
+        else if(completeDonation >= 100 && completeDonation < 1000){
+            number = "0" + completeDonation;
+        }
+        else {
+            number = "" + completeDonation;
+        }
+
+        int last = oldDonateNumber.lastIndexOf("*");
+        if(last == -1){
+            return oldDonateNumber;
+        }
+        else {
+            StringBuilder newDonateNumber = new StringBuilder(oldDonateNumber);
+            newDonateNumber.replace(last - 3, last + 1, number);
+
+            String updateNumber = newDonateNumber.toString();
+            int result = serviceDonatebaseinfoMapper.updateDonateNumber(id, updateNumber);
+
+            return updateNumber;
+        }
+    }
+
+    @Override
+    public List<ServiceDonatebaseinfo> selectServiceDonatebaseinfoList(ServiceDonatebaseinfo serviceDonatebaseinfo) {
+
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List <SysRole> l = user.getRoles();
+        int b = 0;
+
+        for(SysRole r : l){
+            if(r.getRoleId().longValue() == 3){
+                b = 1;
+            }
+            if(r.getRoleId().longValue() == 13){
+                b = 2;
+            }
+        }
+        if(b == 1){
+            serviceDonatebaseinfo.setCreateBy(user.getUserName());
+        }
+        if(b == 2){
+            serviceDonatebaseinfo.setDeptid(user.getDeptId());
+        }
+        return serviceDonatebaseinfoMapper.selectServiceDonatebaseinfoList(serviceDonatebaseinfo);
+    }
+
+    @Override
+    public List<ServiceDonatebaseinfo> listForSearch(ServiceDonatebaseinfo serviceDonatebaseinfo) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List <SysRole> l = user.getRoles();
+        Boolean b = false;
+        for(SysRole r : l){
+            if(r.getRoleId().longValue() == 3){
+                b = true;
+            }
+        }
+        if(b){
+            serviceDonatebaseinfo.setCreateBy(user.getUserName());
+        }
+
+        return serviceDonatebaseinfoMapper.listForSearch(serviceDonatebaseinfo);
+    }
+
+    @Override
+    public String gethqzz(Long infoid) {
+        return serviceDonatebaseinfoMapper.gethqzz(infoid);
+    }
+
+    @Override
+    public countByRecordStateVO countByRecordState(TimeVO timeVO) {
+        countByRecordStateVO c = new countByRecordStateVO();
+        c.setBaseinfo(serviceDonatebaseinfoMapper.countByRecordState("0", timeVO.getStarttime(), timeVO.getEndtime()));
+        c.setMedicalevaluation(serviceDonatebaseinfoMapper.countByRecordState("4", timeVO.getStarttime(), timeVO.getEndtime()));
+        c.setRelativeconfirmation(serviceDonatebaseinfoMapper.countByRecordState("6", timeVO.getStarttime(), timeVO.getEndtime()));
+        c.setEthicalreview(serviceDonatebaseinfoMapper.countByRecordState("8", timeVO.getStarttime(), timeVO.getEndtime()));
+        c.setOrganallocation(serviceDonatebaseinfoMapper.countByRecordState("10", timeVO.getStarttime(), timeVO.getEndtime()));
+        c.setWitness(serviceDonatebaseinfoMapper.countByRecordState("11", timeVO.getStarttime(), timeVO.getEndtime()));
+        c.setCompletion(serviceDonatebaseinfoMapper.countByRecordState("13", timeVO.getStarttime(), timeVO.getEndtime()));
+        c.setAbandon(serviceDonatebaseinfoMapper.countByRecordState("99", timeVO.getStarttime(), timeVO.getEndtime()));
+
+        return c;
+    }
+
+    @Override
+    public String getDonateNameById(Long infoid) {
+        return serviceDonatebaseinfoMapper.getDonateNameById(infoid);
+    }
+
+
+}
+
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java
new file mode 100644
index 0000000..ad32b72
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java
@@ -0,0 +1,86 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.project.domain.ServiceDonateorgan;
+import com.ruoyi.project.domain.vo.DonationCompletionVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceDonatecompletioninfoMapper;
+import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
+import com.ruoyi.project.service.IServiceDonatecompletioninfoService;
+
+/**
+ * 鎹愮尞瀹屾垚Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-19
+ */
+@Service
+public class ServiceDonatecompletioninfoServiceImpl extends ServiceImpl<ServiceDonatecompletioninfoMapper, ServiceDonatecompletioninfo> implements IServiceDonatecompletioninfoService 
+{
+
+    @Autowired
+    ServiceDonatecompletioninfoMapper serviceDonatecompletioninfoMapper;
+
+    /**
+     * 鏌ヨ鎹愮尞瀹屾垚鍒楄〃
+     * 
+     * @param serviceDonatecompletioninfo 鎹愮尞瀹屾垚
+     * @return 鎹愮尞瀹屾垚
+     */
+    @Override
+    public List<ServiceDonatecompletioninfo> queryList(ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
+        LambdaQueryWrapper<ServiceDonatecompletioninfo> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getDonorno())){
+            wrappers.eq(ServiceDonatecompletioninfo::getDonorno ,serviceDonatecompletioninfo.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getIsbodydonation())){
+            wrappers.eq(ServiceDonatecompletioninfo::getIsbodydonation ,serviceDonatecompletioninfo.getIsbodydonation());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getReceivingunit())){
+            wrappers.eq(ServiceDonatecompletioninfo::getReceivingunit ,serviceDonatecompletioninfo.getReceivingunit());
+        }
+        if (StringUtils.isNotNull(serviceDonatecompletioninfo.getId())){
+            wrappers.eq(ServiceDonatecompletioninfo::getId ,serviceDonatecompletioninfo.getId());
+        }
+        if (StringUtils.isNotNull(serviceDonatecompletioninfo.getInfoid())){
+            wrappers.eq(ServiceDonatecompletioninfo::getInfoid ,serviceDonatecompletioninfo.getInfoid());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<DonationCompletionVO> selectVOList(DonationCompletionVO donationCompletionVO) {
+
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List <SysRole> l = user.getRoles();
+        Boolean b = false;
+        for(SysRole r : l){
+            if(r.getRoleId().longValue() == 3){
+                b = true;
+            }
+        }
+        if(b){
+            donationCompletionVO.setBasecreateby(user.getUserName());
+        }
+
+        return serviceDonatecompletioninfoMapper.selectVOList(donationCompletionVO);
+    }
+
+    @Override
+    public void delDuplicateDonateCompletioninfo(long infoid,String createby) {
+        serviceDonatecompletioninfoMapper.delDuplicateDonateCompletioninfo(infoid,createby);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateconsolationfundServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateconsolationfundServiceImpl.java
new file mode 100644
index 0000000..51fe4e9
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateconsolationfundServiceImpl.java
@@ -0,0 +1,85 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceDonateconsolationfundMapper;
+import com.ruoyi.project.domain.ServiceDonateconsolationfund;
+import com.ruoyi.project.service.IServiceDonateconsolationfundService;
+
+/**
+ * 璧勯噾鐢宠涓昏〃Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-01-18
+ */
+@Service
+public class ServiceDonateconsolationfundServiceImpl extends ServiceImpl<ServiceDonateconsolationfundMapper, ServiceDonateconsolationfund> implements IServiceDonateconsolationfundService 
+{
+
+
+    /**
+     * 鏌ヨ璧勯噾鐢宠涓昏〃鍒楄〃
+     * 
+     * @param serviceDonateconsolationfund 璧勯噾鐢宠涓昏〃
+     * @return 璧勯噾鐢宠涓昏〃
+     */
+    @Override
+    public List<ServiceDonateconsolationfund> queryList(ServiceDonateconsolationfund serviceDonateconsolationfund) {
+        LambdaQueryWrapper<ServiceDonateconsolationfund> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getDonorno())){
+            wrappers.eq(ServiceDonateconsolationfund::getDonorno ,serviceDonateconsolationfund.getDonorno());
+        }
+        if (serviceDonateconsolationfund.getCreateTime() != null){
+            wrappers.eq(ServiceDonateconsolationfund::getCreateTime ,serviceDonateconsolationfund.getCreateTime());
+        }
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getName())){
+            wrappers.like(ServiceDonateconsolationfund::getName ,serviceDonateconsolationfund.getName());
+        }
+        if (serviceDonateconsolationfund.getSex() != null){
+            wrappers.eq(ServiceDonateconsolationfund::getSex ,serviceDonateconsolationfund.getSex());
+        }
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getIdcardno())){
+            wrappers.eq(ServiceDonateconsolationfund::getIdcardno ,serviceDonateconsolationfund.getIdcardno());
+        }
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getDepositbank())){
+            wrappers.eq(ServiceDonateconsolationfund::getDepositbank ,serviceDonateconsolationfund.getDepositbank());
+        }
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getBankcardno())){
+            wrappers.eq(ServiceDonateconsolationfund::getBankcardno ,serviceDonateconsolationfund.getBankcardno());
+        }
+        if (serviceDonateconsolationfund.getAmountrequested() != null){
+            wrappers.eq(ServiceDonateconsolationfund::getAmountrequested ,serviceDonateconsolationfund.getAmountrequested());
+        }
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getConsolationtype())){
+            wrappers.eq(ServiceDonateconsolationfund::getConsolationtype ,serviceDonateconsolationfund.getConsolationtype());
+        }
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getDeptmentno())){
+            wrappers.eq(ServiceDonateconsolationfund::getDeptmentno ,serviceDonateconsolationfund.getDeptmentno());
+        }
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getDeptmentname())){
+            wrappers.like(ServiceDonateconsolationfund::getDeptmentname ,serviceDonateconsolationfund.getDeptmentname());
+        }
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getRemark())){
+            wrappers.eq(ServiceDonateconsolationfund::getRemark ,serviceDonateconsolationfund.getRemark());
+        }
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getRecordstatus())){
+            wrappers.eq(ServiceDonateconsolationfund::getRecordstatus ,serviceDonateconsolationfund.getRecordstatus());
+        }
+        if (StringUtils.isNotBlank(serviceDonateconsolationfund.getUploadflag())){
+            wrappers.eq(ServiceDonateconsolationfund::getUploadflag ,serviceDonateconsolationfund.getUploadflag());
+        }
+        if (serviceDonateconsolationfund.getUploadtime() != null){
+            wrappers.eq(ServiceDonateconsolationfund::getUploadtime ,serviceDonateconsolationfund.getUploadtime());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateflowchartServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateflowchartServiceImpl.java
new file mode 100644
index 0000000..dbcac94
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateflowchartServiceImpl.java
@@ -0,0 +1,49 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceDonateflowchartMapper;
+import com.ruoyi.project.domain.ServiceDonateflowchart;
+import com.ruoyi.project.service.IServiceDonateflowchartService;
+
+/**
+ * 鎹愮尞娴佺▼Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+@Service
+public class ServiceDonateflowchartServiceImpl extends ServiceImpl<ServiceDonateflowchartMapper, ServiceDonateflowchart> implements IServiceDonateflowchartService 
+{
+
+
+    /**
+     * 鏌ヨ鎹愮尞娴佺▼鍒楄〃
+     * 
+     * @param serviceDonateflowchart 鎹愮尞娴佺▼
+     * @return 鎹愮尞娴佺▼
+     */
+    @Override
+    public List<ServiceDonateflowchart> queryList(ServiceDonateflowchart serviceDonateflowchart) {
+        LambdaQueryWrapper<ServiceDonateflowchart> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceDonateflowchart.getDonorno())){
+            wrappers.eq(ServiceDonateflowchart::getDonorno ,serviceDonateflowchart.getDonorno());
+        }
+        if (StringUtils.isNotNull(serviceDonateflowchart.getId())){
+            wrappers.eq(ServiceDonateflowchart::getId ,serviceDonateflowchart.getId());
+        }
+        if (StringUtils.isNotBlank(serviceDonateflowchart.getFlowname())){
+            wrappers.like(ServiceDonateflowchart::getFlowname ,serviceDonateflowchart.getFlowname());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatefollowupServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatefollowupServiceImpl.java
new file mode 100644
index 0000000..86351e9
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatefollowupServiceImpl.java
@@ -0,0 +1,88 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.project.domain.vo.DonateFollowupVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceDonatefollowupMapper;
+import com.ruoyi.project.domain.ServiceDonatefollowup;
+import com.ruoyi.project.service.IServiceDonatefollowupService;
+
+/**
+ * 鎹愮尞闅忚Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-12-10
+ */
+@Service
+public class ServiceDonatefollowupServiceImpl extends ServiceImpl<ServiceDonatefollowupMapper, ServiceDonatefollowup> implements IServiceDonatefollowupService 
+{
+
+    @Autowired
+    ServiceDonatefollowupMapper serviceDonatefollowupMapper;
+
+
+    /**
+     * 鏌ヨ鎹愮尞闅忚鍒楄〃
+     * 
+     * @param serviceDonatefollowup 鎹愮尞闅忚
+     * @return 鎹愮尞闅忚
+     */
+    @Override
+    public List<ServiceDonatefollowup> queryList(ServiceDonatefollowup serviceDonatefollowup) {
+        LambdaQueryWrapper<ServiceDonatefollowup> wrappers = Wrappers.lambdaQuery();
+        if (serviceDonatefollowup.getSeqno() != null){
+            wrappers.eq(ServiceDonatefollowup::getSeqno ,serviceDonatefollowup.getSeqno());
+        }
+        if (StringUtils.isNotBlank(serviceDonatefollowup.getRecipientname())){
+            wrappers.like(ServiceDonatefollowup::getRecipientname ,serviceDonatefollowup.getRecipientname());
+        }
+        if (StringUtils.isNotBlank(serviceDonatefollowup.getHospitalname())){
+            wrappers.like(ServiceDonatefollowup::getHospitalname ,serviceDonatefollowup.getHospitalname());
+        }
+        if (StringUtils.isNotBlank(serviceDonatefollowup.getDonateresult())){
+            wrappers.eq(ServiceDonatefollowup::getDonateresult ,serviceDonatefollowup.getDonateresult());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<ServiceDonatefollowup> selectAll(ServiceDonatefollowup serviceDonatefollowup) {
+        return serviceDonatefollowupMapper.selectAll(serviceDonatefollowup);
+    }
+
+    @Override
+    public ServiceDonatefollowup selectFollowUpById(Long id) {
+        return serviceDonatefollowupMapper.selectFollowUpById(id);
+    }
+
+    @Override
+    public List<DonateFollowupVO> selectVOList(DonateFollowupVO donateFollowupVO) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List <SysRole> l = user.getRoles();
+        Boolean b = false;
+        for(SysRole r : l){
+            if(r.getRoleId().longValue() == 3){
+                b = true;
+            }
+        }
+        if(b){
+            donateFollowupVO.setBasecreateby(user.getUserName());
+        }
+
+        return serviceDonatefollowupMapper.selectVOList(donateFollowupVO);
+    }
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java
new file mode 100644
index 0000000..f44c036
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java
@@ -0,0 +1,935 @@
+package com.ruoyi.project.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.domain.*;
+import com.ruoyi.project.domain.vo.*;
+import com.ruoyi.project.mapper.*;
+import com.ruoyi.project.service.IServiceDonateorganService;
+import com.ruoyi.system.mapper.SysDictDataMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 鎹愮尞鍣ㄥ畼绠$悊Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Service
+public class ServiceDonateorganServiceImpl extends ServiceImpl<ServiceDonateorganMapper, ServiceDonateorgan> implements IServiceDonateorganService 
+{
+
+    @Autowired
+    ServiceDonateorganMapper serviceDonateorganMapper;
+
+    @Autowired
+    BaseOrganizationMapper baseOrganizationMapper;
+
+    @Autowired
+    BasePrcaddressDictMapper basePrcaddressDictMapper;
+
+    @Autowired
+    ServiceDonationwitnessMapper serviceDonationwitnessMapper;
+
+    @Autowired
+    ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper;
+
+    @Autowired
+    ServiceMedicalevaluationMapper serviceMedicalevaluationMapper;
+
+    @Autowired
+    ServiceRelativesconfirmationMapper serviceRelativesconfirmationMapper;
+
+    @Autowired
+    ServiceOrganallocationMapper serviceOrganallocationMapper;
+
+    @Autowired
+    ServiceEthicalreviewopinionsMapper serviceEthicalreviewopinionsMapper;
+
+    @Autowired
+    ServiceDonatecompletioninfoMapper serviceDonatecompletioninfoMapper;
+
+
+    @Autowired
+    private SysDictDataMapper dictDataMapper;
+
+
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼绠$悊鍒楄〃
+     * 
+     * @param serviceDonateorgan 鎹愮尞鍣ㄥ畼绠$悊
+     * @return 鎹愮尞鍣ㄥ畼绠$悊
+     */
+    @Override
+    public List<ServiceDonateorgan> queryList(ServiceDonateorgan serviceDonateorgan) {
+        LambdaQueryWrapper<ServiceDonateorgan> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotNull(serviceDonateorgan.getInfoid())){
+            wrappers.eq(ServiceDonateorgan::getInfoid ,serviceDonateorgan.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceDonateorgan.getDonorno())){
+            wrappers.eq(ServiceDonateorgan::getDonorno ,serviceDonateorgan.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceDonateorgan.getOrganno())){
+            wrappers.eq(ServiceDonateorgan::getOrganno ,serviceDonateorgan.getOrganno());
+        }
+        if (StringUtils.isNotBlank(serviceDonateorgan.getOrganname())){
+            wrappers.like(ServiceDonateorgan::getOrganname ,serviceDonateorgan.getOrganname());
+        }
+        if (serviceDonateorgan.getOrganstate() != null){
+            wrappers.eq(ServiceDonateorgan::getOrganstate ,serviceDonateorgan.getOrganstate());
+        }
+        if (StringUtils.isNotBlank(serviceDonateorgan.getOrgannumber())){
+            wrappers.eq(ServiceDonateorgan::getOrgannumber ,serviceDonateorgan.getOrgannumber());
+        }
+        if (serviceDonateorgan.getOrgangettime() != null){
+            wrappers.eq(ServiceDonateorgan::getOrgangettime ,serviceDonateorgan.getOrgangettime());
+        }
+        if (StringUtils.isNotBlank(serviceDonateorgan.getOrgangetdoct())){
+            wrappers.eq(ServiceDonateorgan::getOrgangetdoct ,serviceDonateorgan.getOrgangetdoct());
+        }
+        if (StringUtils.isNotBlank(serviceDonateorgan.getGainhospitalno())){
+            wrappers.eq(ServiceDonateorgan::getGainhospitalno ,serviceDonateorgan.getGainhospitalno());
+        }
+        if (StringUtils.isNotBlank(serviceDonateorgan.getGainhospitalname())){
+            wrappers.like(ServiceDonateorgan::getGainhospitalname ,serviceDonateorgan.getGainhospitalname());
+        }
+        if (StringUtils.isNotBlank(serviceDonateorgan.getTransplanthospitalno())){
+            wrappers.eq(ServiceDonateorgan::getTransplanthospitalno ,serviceDonateorgan.getTransplanthospitalno());
+        }
+        if (StringUtils.isNotBlank(serviceDonateorgan.getTransplanthospitalname())){
+            wrappers.like(ServiceDonateorgan::getTransplanthospitalname ,serviceDonateorgan.getTransplanthospitalname());
+        }
+        if (StringUtils.isNotBlank(serviceDonateorgan.getTransplantdoct())){
+            wrappers.eq(ServiceDonateorgan::getTransplantdoct ,serviceDonateorgan.getTransplantdoct());
+        }
+        if (serviceDonateorgan.getTransplanttime() != null){
+            wrappers.eq(ServiceDonateorgan::getTransplanttime ,serviceDonateorgan.getTransplanttime());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<NumberOfOrgans> getNumberOfOrgans() {
+        ArrayList<NumberOfOrgans> list = new ArrayList<NumberOfOrgans>();
+        List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganMapper.getAllDonateOrgans();
+        Map<String, Integer> map_donate = new HashMap<String, Integer>();
+        Map<String, Integer> map_accept = new HashMap<String, Integer>();
+
+        for(ServiceDonateorgan s : serviceDonateorgans) {
+            BaseOrganization org_donate = baseOrganizationMapper.getOrganizationByNumber(s.getGainhospitalno());
+            if (org_donate != null) {
+                map_donate.put(org_donate.getCity(), map_donate.getOrDefault(org_donate.getCity(), 0) + 1);
+            }
+            BaseOrganization org_accept = baseOrganizationMapper.getOrganizationByNumber(s.getTransplanthospitalno());
+            if (org_accept != null) {
+                map_accept.put(org_accept.getCity(), map_accept.getOrDefault(org_accept.getCity(), 0) + 1);
+            }
+        }
+//        List<BasePrcaddressDict> city = basePrcaddressDictMapper.getAllCityOfZJ();
+//        for(BasePrcaddressDict c : city){
+//            NumberOfOrgans numberOfOrgans = new NumberOfOrgans();
+//            numberOfOrgans.setDistrict(c.getAreaname());
+//            numberOfOrgans.setNumberOfHospitals(baseOrganizationMapper.getOrganizationByCity(c.getAreanumber()));
+//            numberOfOrgans.setDonateNumber(map_donate.getOrDefault(c.getAreaname(),0));
+//            numberOfOrgans.setAcceptNumber(map_accept.getOrDefault(c.getAreaname(),0));
+//            list.add(numberOfOrgans);
+//        }
+
+        List<String> regions = new ArrayList<String>();
+        regions.add("0");
+        regions.add("1");
+        regions.add("2");
+        regions.add("3");
+        regions.add("4");
+        regions.add("5");
+        regions.add("6");
+        regions.add("7");
+        regions.add("8");
+        regions.add("9");
+        regions.add("A");
+        regions.add("B");
+        for(String r : regions){
+            NumberOfOrgans numberOfOrgans = new NumberOfOrgans();
+            numberOfOrgans.setDistrict(r);
+            numberOfOrgans.setNumberOfHospitals(baseOrganizationMapper.getOrganizationByCity(r));
+            numberOfOrgans.setDonateNumber(map_donate.getOrDefault(r,0));
+            numberOfOrgans.setAcceptNumber(map_accept.getOrDefault(r,0));
+            list.add(numberOfOrgans);
+        }
+
+        return list;
+    }
+
+    @Override
+    public List<OrgansOfHospital> getOrgansOfHospital(String cityName) {
+        ArrayList<OrgansOfHospital> list = new ArrayList<OrgansOfHospital>();
+        List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganMapper.getAllDonateOrgans();
+        Map<String, Integer> map_donate = new HashMap<String, Integer>();
+        Map<String, Integer> map_accept = new HashMap<String, Integer>();
+
+        for(ServiceDonateorgan s : serviceDonateorgans){
+            map_donate.put(s.getGainhospitalno(), map_donate.getOrDefault(s.getGainhospitalno(),0) + 1);
+
+            map_accept.put(s.getTransplanthospitalno(), map_accept.getOrDefault(s.getTransplanthospitalno(), 0) + 1);
+
+        }
+        List<BaseOrganization> baseOrganization = baseOrganizationMapper.getBaseOrganizationList();
+        for(BaseOrganization o : baseOrganization){
+            OrgansOfHospital organsOfHospital = new OrgansOfHospital();
+            if(cityName.equals(o.getCityname())) {
+                organsOfHospital.setHospitalName(o.getOrganizationname());
+                organsOfHospital.setHospitalNo(o.getMedicalcode());
+                organsOfHospital.setDonateNumber(map_donate.getOrDefault(o.getMedicalcode(),0));
+                organsOfHospital.setAcceptNumber(map_accept.getOrDefault(o.getMedicalcode(),0));
+                list.add(organsOfHospital);
+            }
+        }
+
+        return list;
+    }
+
+    @Override
+    public AllOrgansInfo getAllOrgansInfo(TimeVO timeVO) {
+
+        AllOrgansInfo allOrgansInfo = new AllOrgansInfo();
+
+        allOrgansInfo.setProcessOrgans(serviceDonateorganMapper.getAllProcessOrgans(timeVO));
+        allOrgansInfo.setFinishedOrgans(serviceDonateorganMapper.getAllFinishedOrgans(timeVO));
+        allOrgansInfo.setHeart(serviceDonateorganMapper.getOrganNo("C38", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setLeftLiver(serviceDonateorganMapper.getOrganNo("C22L", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setRightLiver(serviceDonateorganMapper.getOrganNo("C22R", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setFullLiver(serviceDonateorganMapper.getOrganNo("C22", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setLeftEye(serviceDonateorganMapper.getOrganNo("C69L", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setRightEye(serviceDonateorganMapper.getOrganNo("C69R", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setLeftLung(serviceDonateorganMapper.getOrganNo("C34L", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setRightLung(serviceDonateorganMapper.getOrganNo("C34R", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setFullLung(serviceDonateorganMapper.getOrganNo("C34", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setLeftRenal(serviceDonateorganMapper.getOrganNo("C64L", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setRightRenal(serviceDonateorganMapper.getOrganNo("C64R", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setPancreas(serviceDonateorganMapper.getOrganNo("C25", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setSmallIntestine(serviceDonateorganMapper.getOrganNo("C17", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setBody(serviceDonateorganMapper.getOrganNo("C00", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+        allOrgansInfo.setOthers(serviceDonateorganMapper.getOrganNo("C01", timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()));
+
+        return allOrgansInfo;
+    }
+
+    @Override
+    public String getOrganNumber(ServiceDonateorgan serviceDonateorgan) {
+        String organNo = serviceDonateorgan.getOrganno();
+        return organNo;
+
+    }
+
+    @Override
+    public organQuality getOrganQuality(TimeVO timeVO) {
+        organQuality og = new organQuality();
+
+        //鏈勾搴﹁幏鍙栨崘鐚�呮暟閲�
+        int transferNumber = serviceDonationwitnessMapper.countThisYearByTime(timeVO);
+        //鏈勾搴︽綔鍦ㄦ崘鐚�呮暟閲�
+        int donateNumber = serviceDonatebaseinfoMapper.getDonateBaseCountThisYear(timeVO);
+        if(donateNumber == 0){
+            og.setDonateTransferRate(0.0);
+        }
+        else {
+            double transferRate = (double) transferNumber / (double) donateNumber;
+            og.setDonateTransferRate(transferRate);
+        }
+
+        //鏈勾搴︾Щ妞嶅櫒瀹樻暟閲�
+        int organTransplantNumber = serviceDonateorganMapper.getAllFinishedOrgansThisYear(timeVO);
+        //鏈勾搴BD鏉ユ簮鍣ㄥ畼鎹愮尞鑰�
+        int DBDDonaterNumber = serviceDonationwitnessMapper.getDBDDonaterNumberThisYear(timeVO);
+        //鏈勾搴CD鏉ユ簮鍣ㄥ畼鎹愮尞鑰�
+        int DCDDonaterNumber = serviceDonationwitnessMapper.getDCDDonaterNumberThisYear(timeVO);
+        //鏈勾搴BCD鏉ユ簮鍣ㄥ畼鎹愮尞鑰�
+        int DBCDDonaterNumber = serviceDonationwitnessMapper.getDBCDDonaterNumberThisYear(timeVO);
+        if(transferNumber == 0){
+            og.setOrganProductionRate(0.0);
+            og.setDBDDonateRate(0.0);
+            og.setDCDDonateRate(0.0);
+            og.setDBCDDonateRate(0.0);
+        }
+        else{
+            double productionRate = (double) organTransplantNumber / (double) transferNumber;
+            og.setOrganProductionRate(productionRate);
+
+            double DBDDonaterRate = (double) DBDDonaterNumber / (double) transferNumber;
+            og.setDBDDonateRate(DBDDonaterRate);
+
+            double DCDDonaterRate = (double) DCDDonaterNumber / (double) transferNumber;
+            og.setDCDDonateRate(DCDDonaterRate);
+
+            double DBCDDonaterRate = (double) DBCDDonaterNumber / (double) transferNumber;
+            og.setDBCDDonateRate(DBCDDonaterRate);
+        }
+
+
+        //鏈勾搴﹁幏鍙栧櫒瀹樻暟閲�
+        int getOrganNumber = serviceDonateorganMapper.getOrganNumberThisYear(timeVO);
+        //鏈勾搴﹁幏鍙栧墠鍣ㄥ畼娲绘鏁伴噺
+        int biopsyBeforeNumber = serviceDonateorganMapper.getbiopsyBeforeNumberThisYear(timeVO);
+        //鏈勾搴﹁幏鍙栧悗绉绘鍓嶅櫒瀹樻椿妫�鏁伴噺
+        int biopsyAfterNumber = serviceDonateorganMapper.getbiopsyAfterNumberThisYear(timeVO);
+        //鏈勾搴﹁竟缂樹緵鍣ㄥ畼鏁伴噺
+        int marginalOrgansNumber = serviceDonateorganMapper.getmarginalOrgansNumberThisYear(timeVO);
+        //鏈勾搴︾梾鍘熻弻闃虫�ф暟閲�
+        int pathogenPositiveNumber = serviceDonateorganMapper.getPathogenPositiveNumberThisYear(timeVO);
+
+        if(getOrganNumber == 0){
+            og.setOrganUsedRate(0.0);
+            og.setOrganBeforeGetCheckRate(0.0);
+            og.setOrganAfterGetCheckRate(0.0);
+            og.setMarginOrganRate(0.0);
+            og.setGermPositiveRate(0.0);
+        }
+        else{
+            double organUsedRate = (double) organTransplantNumber / (double) getOrganNumber;
+            og.setOrganUsedRate(organUsedRate);
+
+            double biopsyBeforeRate = (double) biopsyBeforeNumber / (double) getOrganNumber;
+            og.setOrganBeforeGetCheckRate(biopsyBeforeRate);
+
+            double biopsyAfterRate = (double) biopsyAfterNumber / (double) getOrganNumber;
+            og.setOrganAfterGetCheckRate(biopsyAfterRate);
+
+            double marginalOrgansRate = (double) marginalOrgansNumber / (double) getOrganNumber;
+            og.setMarginOrganRate(marginalOrgansRate);
+
+            double pathogenPositiveRate = (double) pathogenPositiveNumber / (double) getOrganNumber;
+            og.setGermPositiveRate(pathogenPositiveRate);
+        }
+
+        //鏈勾搴︽�籔NF鏁伴噺
+        int PNFNumber = serviceDonateorganMapper.getPNFNumberThisYear(timeVO);
+        if(organTransplantNumber == 0){
+            og.setTotalPNFRate(0.0);
+        }
+        else{
+            double PNFRate = (double) PNFNumber / (double) organTransplantNumber;
+            og.setTotalPNFRate(PNFRate);
+        }
+
+        List<ServiceDonateorgan> list = serviceDonateorganMapper.getAllDonateOrgansByTime(timeVO);
+        List<ServiceDonateorgan> list_PNF = serviceDonateorganMapper.selectPNFOrganThisYear(timeVO);
+        List<ServiceDonateorgan> list_DGF = serviceDonateorganMapper.selectDGFOrganThisYear(timeVO);
+
+        //鏈勾搴BD鏉ユ簮鍣ㄥ畼鏁伴噺
+        int countDBD = 0;
+        //鏈勾搴CD鏉ユ簮鍣ㄥ畼鏁伴噺
+        int countDCD = 0;
+        //鏈勾搴BCD鏉ユ簮鍣ㄥ畼鏁伴噺
+        int countDBCD = 0;
+        for(ServiceDonateorgan l : list){
+            Long InfoId = l.getInfoid();
+
+            String category = serviceDonationwitnessMapper.getDonationCategoryByInfoId(InfoId);
+            if(category != null && category.equals("DBD")){
+                countDBD += 1;
+            }
+            if(category != null && category.equals("DCD")){
+                countDCD += 1;
+            }
+            if(category != null && category.equals("DBCD")){
+                countDBCD += 1;
+            }
+        }
+
+        //鏈勾搴BD鏉ユ簮鍣ㄥ畼PNF鏁伴噺
+        int countDBDPNF = 0;
+        //鏈勾搴CD鏉ユ簮鍣ㄥ畼PNF鏁伴噺
+        int countDCDPNF = 0;
+        //鏈勾搴BCD鏉ユ簮鍣ㄥ畼PNF鏁伴噺
+        int countDBCDPNF = 0;
+        for(ServiceDonateorgan s : list_PNF){
+            Long InfoId = s.getInfoid();
+            String category = serviceDonationwitnessMapper.getDonationCategoryByInfoId(InfoId);
+            if(category != null && category.equals("DBD")){
+                countDBDPNF += 1;
+            }
+            if(category != null && category.equals("DCD")){
+                countDCDPNF += 1;
+            }
+            if(category != null && category.equals("DBCD")){
+                countDBCDPNF += 1;
+            }
+        }
+
+        //鏈勾搴︽�籇GF鏁伴噺
+        int DGFNumber = serviceDonateorganMapper.getDGFNumberThisYear(timeVO);
+
+        if(organTransplantNumber == 0){
+            og.setTotalDGFRate(0.0);
+        }
+        else{
+            double DGFRate = (double) DGFNumber / (double) organTransplantNumber;
+            og.setTotalDGFRate(DGFRate);
+        }
+
+
+
+        //鏈勾搴BD鏉ユ簮鍣ㄥ畼DGF鏁伴噺
+        int countDBDDGF = 0;
+        //鏈勾搴CD鏉ユ簮鍣ㄥ畼DGF鏁伴噺
+        int countDCDDGF = 0;
+        //鏈勾搴BCD鏉ユ簮鍣ㄥ畼DGF鏁伴噺
+        int countDBCDDGF = 0;
+        for(ServiceDonateorgan d : list_DGF){
+            Long InfoId = d.getInfoid();
+            String category = serviceDonationwitnessMapper.getDonationCategoryByInfoId(InfoId);
+            if(category != null && category.equals("DBD")){
+                countDBDDGF += 1;
+            }
+            if(category != null && category.equals("DCD")){
+                countDCDDGF += 1;
+            }
+            if(category != null && category.equals("DBCD")){
+                countDBCDDGF += 1;
+            }
+        }
+
+        if(countDBD == 0){
+            og.setDBDPNFRate(0.0);
+            og.setDBDDGFRate(0.0);
+        }
+        else{
+            double DBDPNFRate = (double) countDBDPNF / (double) countDBD;
+            og.setDBDPNFRate(DBDPNFRate);
+
+            double DBDDGFRate = (double) countDBDDGF / (double) countDBD;
+            og.setDBDDGFRate(DBDDGFRate);
+        }
+
+        if(countDCD == 0){
+            og.setDCDPNFRate(0.0);
+            og.setDCDDGFRate(0.0);
+        }
+        else{
+            double DCDPNFRate = (double) countDCDPNF / (double) countDCD;
+            og.setDCDPNFRate(DCDPNFRate);
+
+            double DCDDGFRate = (double) countDCDDGF / (double) countDCD;
+            og.setDCDDGFRate(DCDDGFRate);
+        }
+
+        if(countDBCD == 0){
+            og.setDBCDPNFRate(0.0);
+            og.setDBCDDGFRate(0.0);
+        }
+        else{
+            double DBCDPNFRate = (double) countDBCDPNF / (double) countDBCD;
+            og.setDBCDPNFRate(DBCDPNFRate);
+
+            double DBCDDGFRate = (double) countDBCDDGF / (double) countDBCD;
+            og.setDBCDDGFRate(DBCDDGFRate);
+        }
+
+        return og;
+    }
+
+    @Override
+    public List<DonateOrganVO> selectVOList(DonateOrganVO donateOrganVO) {
+
+        return serviceDonateorganMapper.selectVOList(donateOrganVO);
+    }
+
+    @Override
+    public DonateNumber getDonateNumber(TimeVO timeVO) {
+        DonateNumber donateNumber = new DonateNumber();
+        donateNumber.setNumberOfDonate(serviceDonatebaseinfoMapper.countNumber(timeVO));
+        donateNumber.setNumberOfMedicalEvaluation(serviceMedicalevaluationMapper.countNumber(timeVO));
+        donateNumber.setNumberOfRelativeConfirmation(serviceRelativesconfirmationMapper.countNumber(timeVO));
+        donateNumber.setNumberOfDonatePeople(serviceOrganallocationMapper.countNumber(timeVO));
+        donateNumber.setNumberOfOrgans(serviceDonateorganMapper.countNumber(timeVO));
+        donateNumber.setNumberOfWitness(serviceDonationwitnessMapper.countNumber(timeVO));
+        donateNumber.setNumberOfEthicalReview(serviceEthicalreviewopinionsMapper.countNumber(timeVO));
+        donateNumber.setNumberOfCompletion(serviceDonatecompletioninfoMapper.countNumber(timeVO));
+        donateNumber.setNumberOfTerminated(serviceDonatebaseinfoMapper.countTerminatedNumber(timeVO));
+
+        return donateNumber;
+    }
+
+
+    @Override
+    public List<DonateNumberByMonth> getDonateBaseInfoByMonth() {
+        List<DonateNumberByMonth> l = new ArrayList<DonateNumberByMonth>();
+        List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getAllDonateBaseInfo();
+        HashMap<String, Integer> map_baseinfo_count = new HashMap<String, Integer>();
+
+        for(ServiceDonatebaseinfo s : serviceDonatebaseinfos){
+            Date dt = s.getReporttime();
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String date = formatter.format(dt);
+            String month = date.substring(0, 7);
+            map_baseinfo_count.put(month, map_baseinfo_count.getOrDefault(month,0) + 1);
+        }
+
+        for(Map.Entry<String, Integer> entry: map_baseinfo_count.entrySet()) {
+            DonateNumberByMonth d = new DonateNumberByMonth();
+            d.setDonatemonth(entry.getKey());
+            d.setDonatecount(entry.getValue());
+            l.add(d);
+        }
+
+        return l;
+    }
+
+    @Override
+    public List<DonateByRegionVO> OrgansOfHospitalByMonth(TimeVO timeVO) {
+        List<BaseOrganization> baseOrganizations = baseOrganizationMapper.getHospitalList();
+        List<DonateByRegionVO> l = new ArrayList<>();
+        List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getAllDonateBaseInfoByTime(timeVO);
+
+        for(BaseOrganization b : baseOrganizations){
+            HashMap<String, Integer> map_baseinfo_count = new HashMap<String, Integer>();
+            HashMap<String, Integer> map_completion_count = new HashMap<String, Integer>();
+            //List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getBaseInfoByHospital(b.getOrganizationid());
+            List<ServiceDonatebaseinfo> serviceDonatebaseinfoOfThisHospital = new ArrayList<>();
+            for(ServiceDonatebaseinfo sd : serviceDonatebaseinfos){
+                if(b.getOrganizationid().equals(sd.getTreatmenthospitalno())){
+                    serviceDonatebaseinfoOfThisHospital.add(sd);
+                }
+            }
+            for(ServiceDonatebaseinfo s : serviceDonatebaseinfoOfThisHospital){
+                Date dt = s.getReporttime();
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                String date = formatter.format(dt);
+                String month = date.substring(0, 7);
+                map_baseinfo_count.put(month, map_baseinfo_count.getOrDefault(month,0) + 1);
+                ServiceDonatecompletioninfo sc = serviceDonatecompletioninfoMapper.getByInfoId(s.getId());
+                if(sc != null){
+                    map_completion_count.put(month, map_completion_count.getOrDefault(month,0) + 1);
+                }
+                else{
+                    map_completion_count.put(month, map_completion_count.getOrDefault(month,0));
+                }
+
+            }
+
+            for(Map.Entry<String, Integer> entry: map_baseinfo_count.entrySet()) {
+                DonateByRegionVO d = new DonateByRegionVO();
+                d.setHospitalNumber(b.getOrganizationid());
+                d.setHospitalName(b.getOrganizationname());
+                d.setRegionLevel(b.getRegionallevel());
+                d.setMonth(entry.getKey());
+                d.setBaseInfoCount(entry.getValue());
+                d.setCompletionCount(map_completion_count.get(entry.getKey()));
+                l.add(d);
+            }
+        }
+        return l;
+    }
+
+
+    @Override
+    public List<DonateByRegionVO> OrgansOfHospitalByTime(TimeVO timeVO) {
+        List<BaseOrganization> baseOrganizations = baseOrganizationMapper.getHospitalList();
+        List<DonateByRegionVO> l = new ArrayList<>();
+        List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getAllDonateBaseInfoByTime(timeVO);
+        List<String> completeTreatmenthospitalnos = serviceDonatebaseinfoMapper.gettreatmenthospitalnoCompleteByTime(timeVO);
+
+        for(BaseOrganization b : baseOrganizations){
+            HashMap<String, Integer> map_baseinfo_count = new HashMap<String, Integer>();
+            HashMap<String, Integer> map_completion_count = new HashMap<String, Integer>();
+
+            String Organizationid = b.getOrganizationid();
+            for(ServiceDonatebaseinfo s : serviceDonatebaseinfos){
+
+                if(Organizationid.equals(s.getTreatmenthospitalno())){
+                    map_baseinfo_count.put(Organizationid, map_baseinfo_count.getOrDefault(Organizationid,0) + 1);
+                }
+            }
+
+            for(String sc : completeTreatmenthospitalnos){
+                if(Organizationid.equals(sc)){
+                    map_completion_count.put(Organizationid, map_completion_count.getOrDefault(Organizationid,0) + 1);
+                }
+            }
+
+            if(map_baseinfo_count.size()==0)
+            {
+                map_baseinfo_count.put(Organizationid, map_baseinfo_count.getOrDefault(Organizationid,0));
+            }
+
+            if(map_completion_count.size()==0)
+            {
+                map_completion_count.put(Organizationid, map_completion_count.getOrDefault(Organizationid,0));
+            }
+
+            // for(Map.Entry<String, Integer> entry: map_baseinfo_count.entrySet()) {
+            if(map_baseinfo_count.get(b.getOrganizationid())>0 || map_completion_count.get(b.getOrganizationid())>0)
+            {
+                DonateByRegionVO d = new DonateByRegionVO();
+                d.setHospitalNumber(b.getOrganizationid());
+                d.setHospitalName(b.getOrganizationname());
+                d.setRegionLevel(b.getCity());
+                d.setMonth(b.getCityname());
+                d.setBaseInfoCount(map_baseinfo_count.get(b.getOrganizationid()));
+                d.setCompletionCount(map_completion_count.get(b.getOrganizationid()));
+                l.add(d);
+            }
+
+            // }
+        }
+        return l;
+    }
+
+    @Override
+    public List<ServiceDonateorgan> selectServiceDonateorganList(ServiceDonateorgan serviceDonateorgan) {
+        return serviceDonateorganMapper.selectServiceDonateorganList(serviceDonateorgan);
+    }
+
+    @Override
+    public List<ServiceDonateorgan> selectServiceDonateorganListNotAbandon(ServiceDonateorgan serviceDonateorgan) {
+        return serviceDonateorganMapper.selectServiceDonateorganListNotAbandon(serviceDonateorgan);
+    }
+
+    @Override
+    public PMPRateVO getPMPRate(TimeVO timeVO) {
+        PMPRateVO p = new PMPRateVO();
+        int count = serviceDonatecompletioninfoMapper.count(timeVO);
+        p.setPMPRate((double) count / 64.0);
+
+        return p;
+    }
+
+    @Override
+    public List<DistrictDonateCalculateVO> getDistrictDonateCalculate() {
+        List<DistrictDonateCalculateVO> l = new ArrayList<>();
+        Map<String, Integer> map_donate = new HashMap<String, Integer>();
+        Map<String, Integer> map_complete = new HashMap<String, Integer>();
+        Map<String, Integer> map_organs = new HashMap<String, Integer>();
+
+        List<String> l1 = serviceDonatebaseinfoMapper.getDistrictDonate();
+        List<String> l2 = serviceDonatebaseinfoMapper.getDistrictComplete();
+        List<String> l3 = serviceDonatebaseinfoMapper.getDistrictOrgans();
+
+        for(String s1 : l1){
+            map_donate.put(s1, map_donate.getOrDefault(s1, 0) + 1);
+        }
+        for(String s2 : l2){
+            map_complete.put(s2, map_complete.getOrDefault(s2, 0) + 1);
+        }
+        for(String s3 : l3){
+            map_organs.put(s3, map_organs.getOrDefault(s3, 0) + 1);
+        }
+
+        List<String> regions = new ArrayList<String>();
+        regions.add("0");
+        regions.add("1");
+        regions.add("2");
+        regions.add("3");
+        regions.add("4");
+        regions.add("5");
+        regions.add("6");
+        regions.add("7");
+        regions.add("8");
+        regions.add("9");
+        regions.add("A");
+        regions.add("B");
+
+        for(String r : regions){
+            DistrictDonateCalculateVO d = new DistrictDonateCalculateVO();
+            d.setDistrict(r);
+            d.setDonateCount(map_donate.getOrDefault(r,0));
+            d.setCompleteCount(map_complete.getOrDefault(r,0));
+            d.setTotalOrganCount(map_organs.getOrDefault(r, 0));
+            l.add(d);
+        }
+
+        return l;
+    }
+
+    @Override
+    public List<DistrictDonateCalculateVO> getDistrictDonateCalculateByTime(TimeVO timeVO) {
+        List<DistrictDonateCalculateVO> l = new ArrayList<>();
+        Map<String, Integer> map_donate = new HashMap<String, Integer>();
+        Map<String, Integer> map_complete = new HashMap<String, Integer>();
+        Map<String, Integer> map_organs = new HashMap<String, Integer>();
+
+        List<String> l1 = serviceDonatebaseinfoMapper.getDistrictDonateByTime(timeVO);
+        List<String> l2 = serviceDonatebaseinfoMapper.getDistrictCompleteByTime(timeVO);
+        List<String> l3 = serviceDonatebaseinfoMapper.getDistrictOrgansByTime(timeVO);
+
+        for(String s1 : l1){
+            map_donate.put(s1, map_donate.getOrDefault(s1, 0) + 1);
+        }
+        for(String s2 : l2){
+            map_complete.put(s2, map_complete.getOrDefault(s2, 0) + 1);
+        }
+        for(String s3 : l3){
+            map_organs.put(s3, map_organs.getOrDefault(s3, 0) + 1);
+        }
+
+        List<String> regions = new ArrayList<String>();
+        regions.add("0");
+        regions.add("1");
+        regions.add("2");
+        regions.add("3");
+        regions.add("4");
+        regions.add("5");
+        regions.add("6");
+        regions.add("7");
+        regions.add("8");
+        regions.add("9");
+        regions.add("A");
+        regions.add("B");
+
+        for(String r : regions){
+            DistrictDonateCalculateVO d = new DistrictDonateCalculateVO();
+            d.setDistrict(r);
+            d.setDonateCount(map_donate.getOrDefault(r,0));
+            d.setCompleteCount(map_complete.getOrDefault(r,0));
+            d.setTotalOrganCount(map_organs.getOrDefault(r, 0));
+            l.add(d);
+        }
+
+        return l;
+    }
+
+
+    @Override
+    public List<organNumberByOrgVO> getOrganNumberByOrg(TimeVO timeVO) {
+        List<organNumberByOrgVO> l = new ArrayList<>();
+        List<BaseOrganization> baseOrganizations = baseOrganizationMapper.getTransOrg();
+        Map<String, Integer> map_organs = new HashMap<String, Integer>();
+        for (BaseOrganization b : baseOrganizations) {
+            int count = serviceDonateorganMapper.getOrgansCount(timeVO.getStarttime(), timeVO.getEndtime(), b.getOrganizationid());
+            map_organs.put(b.getOrganizationid(), count);
+        }
+
+        for (Map.Entry<String, Integer> entry : map_organs.entrySet()){
+            organNumberByOrgVO o = new organNumberByOrgVO();
+            o.setOrgId(entry.getKey());
+            o.setOrgName(baseOrganizationMapper.getNameByNo(entry.getKey()));
+            o.setOrganCount(entry.getValue());
+            l.add(o);
+        }
+        return l;
+    }
+
+    @Override
+    public List<organInfoVO> getOrganCount(TimeVO timeVO) {
+        List<organInfoVO> l = new ArrayList<>();
+
+        //List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganMapper.selectAll(timeVO);
+        Map<String, Integer> map_organs = new HashMap<String, Integer>();
+        //List<String> organNo = new ArrayList<>();
+
+        List<SysDictData>  data = dictDataMapper.selectDictDataByType("sys_Organ");
+        if (StringUtils.isNull(data))
+        {
+            data = new ArrayList<SysDictData>();
+        }
+
+
+        for(SysDictData sysDictData : data){
+            if(!sysDictData.getDictValue().equals("C00"))
+            {
+                int count = serviceDonateorganMapper.getDistinctOrgansCount(sysDictData.getDictValue(),timeVO.getStarttime(),timeVO.getEndtime(),timeVO.getCity(),timeVO.getReporterno());
+                map_organs.put(sysDictData.getDictValue(), count);
+            }
+        }
+        for (Map.Entry<String, Integer> entry : map_organs.entrySet()){
+            organInfoVO organ = new organInfoVO();
+            organ.setOrganNo(entry.getKey());
+            //organ.setOrganName(serviceDonateorganMapper.getOrganNameByNo(entry.getKey()));
+            organ.setCount(entry.getValue());
+            l.add(organ);
+        }
+
+        return l;
+    }
+
+
+//    @Override
+//    public List<DonateByRegionVO> OrgansOfHospitalByMonth() {
+//        List<BaseOrganization> baseOrganizations = baseOrganizationMapper.getHospitalList();
+//        List<DonateByRegionVO> l = new ArrayList<>();
+//        List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getAllDonateBaseInfo();
+//
+//        for(BaseOrganization b : baseOrganizations){
+//            HashMap<String, Integer> map_baseinfo_count = new HashMap<String, Integer>();
+//            HashMap<String, Integer> map_completion_count = new HashMap<String, Integer>();
+//            //List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getBaseInfoByHospital(b.getOrganizationid());
+//            List<ServiceDonatebaseinfo> serviceDonatebaseinfoOfThisHospital = new ArrayList<>();
+//            for(ServiceDonatebaseinfo sd : serviceDonatebaseinfos){
+//                if(b.getOrganizationid().equals(sd.getTreatmenthospitalno())){
+//                    serviceDonatebaseinfoOfThisHospital.add(sd);
+//                }
+//            }
+//            for(ServiceDonatebaseinfo s : serviceDonatebaseinfoOfThisHospital){
+//                Date dt = s.getReporttime();
+//                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                String date = formatter.format(dt);
+//                String month = date.substring(0, 7);
+//                map_baseinfo_count.put(month, map_baseinfo_count.getOrDefault(month,0) + 1);
+//                ServiceDonatecompletioninfo sc = serviceDonatecompletioninfoMapper.getByInfoId(s.getId());
+//                if(sc != null){
+//                    map_completion_count.put(month, map_completion_count.getOrDefault(month,0) + 1);
+//                }
+//                else{
+//                    map_completion_count.put(month, map_completion_count.getOrDefault(month,0));
+//                }
+//
+//            }
+//
+//            for(Map.Entry<String, Integer> entry: map_baseinfo_count.entrySet()) {
+//                DonateByRegionVO d = new DonateByRegionVO();
+//                d.setHospitalNumber(b.getOrganizationid());
+//                d.setHospitalName(b.getOrganizationname());
+//                d.setRegionLevel(b.getRegionallevel());
+//                d.setMonth(entry.getKey());
+//                d.setBaseInfoCount(entry.getValue());
+//                d.setCompletionCount(map_completion_count.get(entry.getKey()));
+//                l.add(d);
+//            }
+//        }
+//        return l;
+//    }
+
+    @Override
+    public List<DonateNumberByMonth> getDonatePeopleByMonth(TimeVO timeVO) {
+        List<DonateNumberByMonth> l = new ArrayList<DonateNumberByMonth>();
+        List<ServiceDonationwitness> serviceDonationwitnesses = serviceDonationwitnessMapper.getAllDonatePeopleByTime(timeVO);
+        HashMap<String, Integer> map_organ_count = new HashMap<String, Integer>();
+
+        for(ServiceDonationwitness s : serviceDonationwitnesses){
+            Date dt = s.getOperationbegtime();
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String date = formatter.format(dt);
+            String month = date.substring(0, 7);
+            map_organ_count.put(month, map_organ_count.getOrDefault(month,0) + 1);
+        }
+
+        for(Map.Entry<String, Integer> entry: map_organ_count.entrySet()) {
+            DonateNumberByMonth d = new DonateNumberByMonth();
+            d.setDonatemonth(entry.getKey());
+            d.setDonatecount(entry.getValue());
+            l.add(d);
+        }
+
+        return l;
+    }
+
+
+    @Override
+    public List<DonateNumberByMonth> getDonatePeopleByMonthFromCompletioninfo(TimeVO timeVO) {
+        List<DonateNumberByMonth> l = new ArrayList<DonateNumberByMonth>();
+        List<ServiceDonatecompletioninfo> serviceDonatecompletioninfos = serviceDonatecompletioninfoMapper.getCompletionDonatePeopleByTime(timeVO);
+        HashMap<String, Integer> map_organ_count = new HashMap<String, Integer>();
+
+        for(ServiceDonatecompletioninfo s : serviceDonatecompletioninfos){
+            Date dt = s.getCompletetime();
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String date = formatter.format(dt);
+            String month = date.substring(0, 7);
+            map_organ_count.put(month, map_organ_count.getOrDefault(month,0) + 1);
+        }
+
+        for(Map.Entry<String, Integer> entry: map_organ_count.entrySet()) {
+            DonateNumberByMonth d = new DonateNumberByMonth();
+            d.setDonatemonth(entry.getKey());
+            d.setDonatecount(entry.getValue());
+            l.add(d);
+        }
+
+        return l;
+    }
+
+
+    @Override
+    public List<DonateNumberByMonth> getDonateNumberByMonth(TimeVO timeVO) {
+
+        List<DonateNumberByMonth> l = new ArrayList<DonateNumberByMonth>();
+        List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganMapper.getAllDonateOrgansByTime(timeVO);
+        HashMap<String, Integer> map_organ_count = new HashMap<String, Integer>();
+
+        for(ServiceDonateorgan s : serviceDonateorgans){
+            Date dt = s.getOrgangettime();
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String date = formatter.format(dt);
+            String month = date.substring(0, 7);
+            map_organ_count.put(month, map_organ_count.getOrDefault(month,0) + 1);
+        }
+
+        for(Map.Entry<String, Integer> entry: map_organ_count.entrySet()) {
+            DonateNumberByMonth d = new DonateNumberByMonth();
+            d.setDonatemonth(entry.getKey());
+            d.setDonatecount(entry.getValue());
+            l.add(d);
+        }
+
+        return l;
+    }
+
+    @Override
+    public List<DonateNumberByMonth> getDonateHospitalByMonth(TimeVO timeVO) {
+        List<DonateNumberByMonth> l = new ArrayList<DonateNumberByMonth>();
+        List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganMapper.getAllDonateOrgansByTime(timeVO);
+        HashMap<String, Integer> map_organ_count = new HashMap<String, Integer>();
+        List<String> hospitals = new ArrayList<>();
+
+        for(ServiceDonateorgan s : serviceDonateorgans){
+            Date dt = s.getOrgangettime();
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String date = formatter.format(dt);
+            String month = date.substring(0, 7);
+            String gainHospital = s.getGainhospitalno();
+            if(!hospitals.contains(gainHospital)) {
+                map_organ_count.put(month, map_organ_count.getOrDefault(month, 0) + 1);
+                hospitals.add(gainHospital);
+            }
+        }
+
+        for(Map.Entry<String, Integer> entry: map_organ_count.entrySet()) {
+            DonateNumberByMonth d = new DonateNumberByMonth();
+            d.setDonatemonth(entry.getKey());
+            d.setDonatecount(entry.getValue());
+            l.add(d);
+        }
+
+        return l;
+    }
+
+    @Override
+    public List<DonateNumberByMonth> getAcceptHospitalByMonth() {
+        List<DonateNumberByMonth> l = new ArrayList<DonateNumberByMonth>();
+        List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganMapper.getAllDonateOrgans();
+        HashMap<String, Integer> map_organ_count = new HashMap<String, Integer>();
+        List<String> hospitals = new ArrayList<>();
+
+        for(ServiceDonateorgan s : serviceDonateorgans){
+            Date dt = s.getOrgangettime();
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String date = formatter.format(dt);
+            String month = date.substring(0, 7);
+            String acceptHospital = s.getTransplanthospitalno();
+            if(!hospitals.contains(acceptHospital)) {
+                map_organ_count.put(month, map_organ_count.getOrDefault(month, 0) + 1);
+                hospitals.add(acceptHospital);
+            }
+        }
+
+        for(Map.Entry<String, Integer> entry: map_organ_count.entrySet()) {
+            DonateNumberByMonth d = new DonateNumberByMonth();
+            d.setDonatemonth(entry.getKey());
+            d.setDonatecount(entry.getValue());
+            l.add(d);
+        }
+
+        return l;
+    }
+
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
new file mode 100644
index 0000000..a5136dc
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
@@ -0,0 +1,216 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.project.domain.ServiceDonatebaseinfo;
+import com.ruoyi.project.domain.vo.DonationWitnessVO;
+import com.ruoyi.project.domain.vo.TimeVO;
+import com.ruoyi.project.domain.vo.WitnessStatsVO;
+import com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceDonationwitnessMapper;
+import com.ruoyi.project.domain.ServiceDonationwitness;
+import com.ruoyi.project.service.IServiceDonationwitnessService;
+
+/**
+ * 鎹愮尞瑙佽瘉Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-17
+ */
+@Service
+public class ServiceDonationwitnessServiceImpl extends ServiceImpl<ServiceDonationwitnessMapper, ServiceDonationwitness> implements IServiceDonationwitnessService 
+{
+
+
+    @Autowired
+    ServiceDonationwitnessMapper serviceDonationwitnessMapper;
+
+    @Autowired
+    ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper;
+
+    /**
+     * 鏌ヨ鎹愮尞瑙佽瘉鍒楄〃
+     * 
+     * @param serviceDonationwitness 鎹愮尞瑙佽瘉
+     * @return 鎹愮尞瑙佽瘉
+     */
+    @Override
+    public List<ServiceDonationwitness> queryList(ServiceDonationwitness serviceDonationwitness) {
+        LambdaQueryWrapper<ServiceDonationwitness> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceDonationwitness.getDonorno())){
+            wrappers.eq(ServiceDonationwitness::getDonorno ,serviceDonationwitness.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitness.getGainhospitalname())){
+            wrappers.like(ServiceDonationwitness::getGainhospitalname ,serviceDonationwitness.getGainhospitalname());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitness.getOperationdoctor())){
+            wrappers.eq(ServiceDonationwitness::getOperationdoctor ,serviceDonationwitness.getOperationdoctor());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<DonationWitnessVO> selectVOList(DonationWitnessVO donationWitnessVO) {
+
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List <SysRole> l = user.getRoles();
+        Boolean b = false;
+        for(SysRole r : l){
+            if(r.getRoleId().longValue() == 3){
+                b = true;
+            }
+        }
+        if(b){
+            donationWitnessVO.setBasecreateby(user.getUserName());
+        }
+
+        return serviceDonationwitnessMapper.selectVOList(donationWitnessVO);
+    }
+
+    @Override
+    public ServiceDonationwitness getByInfoId(Long infoid) {
+
+
+        return serviceDonationwitnessMapper.selectByInfoId(infoid);
+    }
+
+    @Override
+    public WitnessStatsVO getStats(TimeVO timeVO) {
+        WitnessStatsVO w = new WitnessStatsVO();
+        ServiceDonationwitness serviceDonationwitness = new ServiceDonationwitness();
+        //List<ServiceDonationwitness> list = serviceDonationwitnessMapper.selectServiceDonationwitnessList(serviceDonationwitness);
+        List<ServiceDonationwitness> list = serviceDonationwitnessMapper.selectByTime(timeVO);
+        int total = list.size();
+        int manNumber = 0;
+        int womanNumber = 0;
+        int D0Number = 0;
+        int D1Number = 0;
+        int D2Number = 0;
+        int D3Number = 0;
+        int D4Number = 0;
+        int DBDNumber = 0;
+        int DCDNumber = 0;
+        int DBCDNumber = 0;
+        int A1Number = 0;
+        int A2Number = 0;
+        int A3Number = 0;
+        int XANumber = 0;
+        int XBNumber = 0;
+        int XONumber = 0;
+        int XABNumber = 0;
+        int DothersNumber = 0;
+        for(ServiceDonationwitness l : list){
+            ServiceDonatebaseinfo serviceDonatebaseinfo = serviceDonatebaseinfoMapper.getById(l.getInfoid());
+            if(serviceDonatebaseinfo.getSex() != null && serviceDonatebaseinfo.getSex().equals("1")){
+                manNumber++;
+            }
+            if(serviceDonatebaseinfo.getSex() != null && serviceDonatebaseinfo.getSex().equals("2")){
+                womanNumber++;
+            }
+            if(serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("0")){
+                D0Number++;
+            }
+            if(serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("1")){
+                D1Number++;
+            }
+            if(serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("2")){
+                D2Number++;
+            }
+            if(serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("3")){
+                D3Number++;
+            }
+            if(serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("4")){
+                D4Number++;
+            }
+            if(l.getDonationcategory() != null && l.getDonationcategory().equals("DBD")){
+                DBDNumber++;
+            }
+            if(l.getDonationcategory() != null && l.getDonationcategory().equals("DCD")){
+                DCDNumber++;
+            }
+            if(l.getDonationcategory() != null && l.getDonationcategory().equals("DBCD")){
+                DBCDNumber++;
+            }
+            if(serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 0 && serviceDonatebaseinfo.getAge() <= 17){
+                A1Number++;
+            }
+            if(serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 18 && serviceDonatebaseinfo.getAge() <= 48){
+                A2Number++;
+            }
+            if(serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 49 && serviceDonatebaseinfo.getAge() <= 69){
+                A3Number++;
+            }
+            if(serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("1")){
+                XANumber++;
+            }
+            if(serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("2")){
+                XBNumber++;
+            }
+            if(serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("3")){
+                XONumber++;
+            }
+            if(serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("4")){
+                XABNumber++;
+            }
+        }
+        DothersNumber = total - D0Number - D1Number - D2Number - D3Number - D4Number;
+
+        if(total == 0){
+            w.setManRate(0);
+            w.setWomanRate(0);
+            w.setD0Rate(0);
+            w.setD1Rate(0);
+            w.setD2Rate(0);
+            w.setD3Rate(0);
+            w.setD4Rate(0);
+            w.setDOthersRate(0);
+            w.setDBDRate(0);
+            w.setDCDRate(0);
+            w.setDBCDRate(0);
+            w.setA1Rate(0);
+            w.setA2Rate(0);
+            w.setA3Rate(0);
+            w.setXARate(0);
+            w.setXBRate(0);
+            w.setXORate(0);
+            w.setXABRate(0);
+
+        }
+
+        else{
+            w.setManRate((double) manNumber / (double) total);
+            w.setWomanRate((double) womanNumber / (double) total);
+            w.setD0Rate((double) D0Number / (double) total);
+            w.setD1Rate((double) D1Number / (double) total);
+            w.setD2Rate((double) D2Number / (double) total);
+            w.setD3Rate((double) D3Number / (double) total);
+            w.setD4Rate((double) D4Number / (double) total);
+            w.setDOthersRate((double) DothersNumber / (double) total);
+            w.setDBDRate((double) DBDNumber / (double) total);
+            w.setDCDRate((double) DCDNumber / (double) total);
+            w.setDBCDRate((double) DBCDNumber / (double) total);
+            w.setA1Rate((double) A1Number / (double) total);
+            w.setA2Rate((double) A2Number / (double) total);
+            w.setA3Rate((double) A3Number / (double) total);
+            w.setXARate((double) XANumber / (double) total);
+            w.setXBRate((double) XBNumber / (double) total);
+            w.setXORate((double) XONumber / (double) total);
+            w.setXABRate((double) XABNumber / (double) total);
+        }
+
+        return w;
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java
new file mode 100644
index 0000000..6ff5ad4
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java
@@ -0,0 +1,90 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.project.domain.vo.EthicalReviewVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceEthicalreviewopinionsMapper;
+import com.ruoyi.project.domain.ServiceEthicalreviewopinions;
+import com.ruoyi.project.service.IServiceEthicalreviewopinionsService;
+
+/**
+ * 浼︾悊瀹℃煡涓撳鎰忚Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-23
+ */
+@Service
+public class ServiceEthicalreviewopinionsServiceImpl extends ServiceImpl<ServiceEthicalreviewopinionsMapper, ServiceEthicalreviewopinions> implements IServiceEthicalreviewopinionsService 
+{
+
+    @Autowired
+    ServiceEthicalreviewopinionsMapper serviceEthicalreviewopinionsMapper;
+
+
+    /**
+     * 鏌ヨ浼︾悊瀹℃煡涓撳鎰忚鍒楄〃
+     * 
+     * @param serviceEthicalreviewopinions 浼︾悊瀹℃煡涓撳鎰忚
+     * @return 浼︾悊瀹℃煡涓撳鎰忚
+     */
+    @Override
+    public List<ServiceEthicalreviewopinions> queryList(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
+        LambdaQueryWrapper<ServiceEthicalreviewopinions> wrappers = Wrappers.lambdaQuery();
+        if (serviceEthicalreviewopinions.getInfoid() != null){
+            wrappers.eq(ServiceEthicalreviewopinions::getInfoid ,serviceEthicalreviewopinions.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getDonorno())){
+            wrappers.eq(ServiceEthicalreviewopinions::getDonorno ,serviceEthicalreviewopinions.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getExpertopinion())){
+            wrappers.eq(ServiceEthicalreviewopinions::getExpertopinion ,serviceEthicalreviewopinions.getExpertopinion());
+        }
+        if (serviceEthicalreviewopinions.getExpertconclusion() != null){
+            wrappers.eq(ServiceEthicalreviewopinions::getExpertconclusion ,serviceEthicalreviewopinions.getExpertconclusion());
+        }
+        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getExpertname())){
+            wrappers.like(ServiceEthicalreviewopinions::getExpertname ,serviceEthicalreviewopinions.getExpertname());
+        }
+        if (serviceEthicalreviewopinions.getConclusiontime() != null){
+            wrappers.eq(ServiceEthicalreviewopinions::getConclusiontime ,serviceEthicalreviewopinions.getConclusiontime());
+        }
+        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getConclusionannex())){
+            wrappers.eq(ServiceEthicalreviewopinions::getConclusionannex ,serviceEthicalreviewopinions.getConclusionannex());
+        }
+        if (serviceEthicalreviewopinions.getConclusionorder() != null){
+            wrappers.eq(ServiceEthicalreviewopinions::getConclusionorder ,serviceEthicalreviewopinions.getConclusionorder());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<EthicalReviewVO> selectVOList(EthicalReviewVO ethicalReviewVO) {
+
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List <SysRole> l = user.getRoles();
+        Boolean b = false;
+        for(SysRole r : l){
+            if(r.getRoleId().longValue() == 3){
+                b = true;
+            }
+        }
+        if(b){
+            ethicalReviewVO.setBasecreateby(user.getUserName());
+        }
+
+        return serviceEthicalreviewopinionsMapper.selectVOList(ethicalReviewVO);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceExpertexpenseServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceExpertexpenseServiceImpl.java
new file mode 100644
index 0000000..5b837c8
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceExpertexpenseServiceImpl.java
@@ -0,0 +1,85 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceExpertexpenseMapper;
+import com.ruoyi.project.domain.ServiceExpertexpense;
+import com.ruoyi.project.service.IServiceExpertexpenseService;
+
+/**
+ * 璐圭敤鐢宠涓籗ervice涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-03-01
+ */
+@Service
+public class ServiceExpertexpenseServiceImpl extends ServiceImpl<ServiceExpertexpenseMapper, ServiceExpertexpense> implements IServiceExpertexpenseService 
+{
+
+
+    /**
+     * 鏌ヨ璐圭敤鐢宠涓诲垪琛�
+     * 
+     * @param serviceExpertexpense 璐圭敤鐢宠涓�
+     * @return 璐圭敤鐢宠涓�
+     */
+    @Override
+    public List<ServiceExpertexpense> queryList(ServiceExpertexpense serviceExpertexpense) {
+        LambdaQueryWrapper<ServiceExpertexpense> wrappers = Wrappers.lambdaQuery();
+        if (serviceExpertexpense.getInfoid() != null){
+            wrappers.eq(ServiceExpertexpense::getInfoid ,serviceExpertexpense.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceExpertexpense.getDonorno())){
+            wrappers.eq(ServiceExpertexpense::getDonorno ,serviceExpertexpense.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceExpertexpense.getDonorname())){
+            wrappers.like(ServiceExpertexpense::getDonorname ,serviceExpertexpense.getDonorname());
+        }
+        if (StringUtils.isNotBlank(serviceExpertexpense.getUserno())){
+            wrappers.eq(ServiceExpertexpense::getUserno ,serviceExpertexpense.getUserno());
+        }
+        if (StringUtils.isNotBlank(serviceExpertexpense.getUsername())){
+            wrappers.like(ServiceExpertexpense::getUsername ,serviceExpertexpense.getUsername());
+        }
+        if (serviceExpertexpense.getIevaluatecost() != null){
+            wrappers.eq(ServiceExpertexpense::getIevaluatecost ,serviceExpertexpense.getIevaluatecost());
+        }
+        if (serviceExpertexpense.getIllnessevaluatecost() != null){
+            wrappers.eq(ServiceExpertexpense::getIllnessevaluatecost ,serviceExpertexpense.getIllnessevaluatecost());
+        }
+        if (serviceExpertexpense.getDeathjudgecost() != null){
+            wrappers.eq(ServiceExpertexpense::getDeathjudgecost ,serviceExpertexpense.getDeathjudgecost());
+        }
+        if (serviceExpertexpense.getEthicsevaluatecost() != null){
+            wrappers.eq(ServiceExpertexpense::getEthicsevaluatecost ,serviceExpertexpense.getEthicsevaluatecost());
+        }
+        if (serviceExpertexpense.getOevaluatecost() != null){
+            wrappers.eq(ServiceExpertexpense::getOevaluatecost ,serviceExpertexpense.getOevaluatecost());
+        }
+        if (StringUtils.isNotBlank(serviceExpertexpense.getDepartmentno())){
+            wrappers.eq(ServiceExpertexpense::getDepartmentno ,serviceExpertexpense.getDepartmentno());
+        }
+        if (StringUtils.isNotBlank(serviceExpertexpense.getDepartmentname())){
+            wrappers.like(ServiceExpertexpense::getDepartmentname ,serviceExpertexpense.getDepartmentname());
+        }
+        if (StringUtils.isNotBlank(serviceExpertexpense.getRecordstatus())){
+            wrappers.eq(ServiceExpertexpense::getRecordstatus ,serviceExpertexpense.getRecordstatus());
+        }
+        if (StringUtils.isNotBlank(serviceExpertexpense.getUploadflag())){
+            wrappers.eq(ServiceExpertexpense::getUploadflag ,serviceExpertexpense.getUploadflag());
+        }
+        if (serviceExpertexpense.getUploadtime() != null){
+            wrappers.eq(ServiceExpertexpense::getUploadtime ,serviceExpertexpense.getUploadtime());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceExternalpersonServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceExternalpersonServiceImpl.java
new file mode 100644
index 0000000..7ed5337
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceExternalpersonServiceImpl.java
@@ -0,0 +1,76 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.project.domain.ServiceDonateorgan;
+import com.ruoyi.project.domain.vo.OrgansOfHospital;
+import com.ruoyi.project.domain.vo.reportInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceExternalpersonMapper;
+import com.ruoyi.project.domain.ServiceExternalperson;
+import com.ruoyi.project.service.IServiceExternalpersonService;
+
+/**
+ * 澶栧洿鍗曚綅浜哄憳Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-24
+ */
+@Service
+public class ServiceExternalpersonServiceImpl extends ServiceImpl<ServiceExternalpersonMapper, ServiceExternalperson> implements IServiceExternalpersonService 
+{
+
+
+    @Autowired
+    ServiceExternalpersonMapper serviceExternalpersonMapper;
+
+    /**
+     * 鏌ヨ澶栧洿鍗曚綅浜哄憳鍒楄〃
+     * 
+     * @param serviceExternalperson 澶栧洿鍗曚綅浜哄憳
+     * @return 澶栧洿鍗曚綅浜哄憳
+     */
+    @Override
+    public List<ServiceExternalperson> queryList(ServiceExternalperson serviceExternalperson) {
+        LambdaQueryWrapper<ServiceExternalperson> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceExternalperson.getUserno())){
+            wrappers.eq(ServiceExternalperson::getUserno ,serviceExternalperson.getUserno());
+        }
+        if (StringUtils.isNotBlank(serviceExternalperson.getUsername())){
+            wrappers.like(ServiceExternalperson::getUsername ,serviceExternalperson.getUsername());
+        }
+        if (StringUtils.isNotBlank(serviceExternalperson.getUsertype())){
+            wrappers.eq(ServiceExternalperson::getUsertype ,serviceExternalperson.getUsertype());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<reportInfo> getReportName(String usertype) {
+        ArrayList<reportInfo> list = new ArrayList<reportInfo>();
+        List<ServiceExternalperson> serviceExternalpeople = serviceExternalpersonMapper.getAllpeople(usertype);
+
+        for(ServiceExternalperson s : serviceExternalpeople){
+            reportInfo r = new reportInfo();
+            r.setId(s.getId());
+            r.setReportNo(s.getUserno());
+            r.setReportName(s.getUsername());
+            list.add(r);
+        }
+
+        return list;
+    }
+
+    @Override
+    public ServiceExternalperson getInfoByUserNo(String userno) {
+        return serviceExternalpersonMapper.getInfoByUserNo(userno);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java
new file mode 100644
index 0000000..d7f68f4
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java
@@ -0,0 +1,610 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.ruoyi.project.domain.BaseExpertfeetype;
+import com.ruoyi.project.domain.ServiceFunddetail;
+import com.ruoyi.project.domain.ServiceReimbursement;
+import com.ruoyi.project.domain.vo.*;
+import com.ruoyi.project.mapper.BaseExpertfeetypeMapper;
+import com.ruoyi.project.mapper.ServiceFunddetailMapper;
+import com.ruoyi.project.mapper.ServiceReimbursementMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceFundMapper;
+import com.ruoyi.project.domain.ServiceFund;
+import com.ruoyi.project.service.IServiceFundService;
+
+/**
+ * 璐圭敤鐢宠涓籗ervice涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+@Service
+public class ServiceFundServiceImpl extends ServiceImpl<ServiceFundMapper, ServiceFund> implements IServiceFundService 
+{
+    @Autowired
+    ServiceFundMapper serviceFundMapper;
+
+    @Autowired
+    ServiceFunddetailMapper serviceFunddetailMapper;
+
+    @Autowired
+    BaseExpertfeetypeMapper baseExpertfeetypeMapper;
+
+    @Autowired
+    ServiceReimbursementMapper serviceReimbursementMapper;
+
+
+
+    /**
+     * 鏌ヨ璐圭敤鐢宠涓诲垪琛�
+     * 
+     * @param serviceFund 璐圭敤鐢宠涓�
+     * @return 璐圭敤鐢宠涓�
+     */
+    @Override
+    public List<ServiceFund> queryList(ServiceFund serviceFund) {
+        LambdaQueryWrapper<ServiceFund> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceFund.getDonorno())){
+            wrappers.eq(ServiceFund::getDonorno ,serviceFund.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceFund.getUserno())){
+            wrappers.eq(ServiceFund::getUserno ,serviceFund.getUserno());
+        }
+        if (StringUtils.isNotBlank(serviceFund.getUsername())){
+            wrappers.like(ServiceFund::getUsername ,serviceFund.getUsername());
+        }
+        if (StringUtils.isNotBlank(serviceFund.getApplytype())){
+            wrappers.eq(ServiceFund::getApplytype ,serviceFund.getApplytype());
+        }
+        if (StringUtils.isNotBlank(serviceFund.getDeptmentname())){
+            wrappers.like(ServiceFund::getDeptmentname ,serviceFund.getDeptmentname());
+        }
+        if (serviceFund.getRecordstatus()!= null){
+            wrappers.eq(ServiceFund::getRecordstatus ,serviceFund.getRecordstatus());
+        }
+        if (StringUtils.isNotBlank(serviceFund.getUploadflag())){
+            wrappers.eq(ServiceFund::getUploadflag ,serviceFund.getUploadflag());
+        }
+        if (serviceFund.getUploadtime() != null){
+            wrappers.eq(ServiceFund::getUploadtime ,serviceFund.getUploadtime());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<ServiceFund> getInfoByInfoId(Long infoid) {
+        return serviceFundMapper.getInfoByInfoId(infoid);
+    }
+
+
+
+    @Override
+    public Long getFundId(Long infoid) {
+        return serviceFundMapper.getFundId(infoid);
+    }
+
+    @Override
+    public List<ServiceFund> selectServiceFundList(ServiceFund serviceFund) {
+        return serviceFundMapper.selectServiceFundList(serviceFund);
+    }
+
+    @Override
+    public List<ServiceFunddetail> getFundDetail(Long id) {
+        return serviceFunddetailMapper.selectFundDetailListById(id);
+    }
+
+    @Override
+    public List<FundVO> selectVOList(FundVO fundVO) {
+        return serviceFundMapper.selectVOList(fundVO);
+    }
+
+    @Override
+    public List<FundDetailOneVO> showFundDetailOne(ServiceFund serviceFund) {
+        List<FundDetailOneVO> l = new ArrayList<>();
+        FundDetailOneVO f1 = new FundDetailOneVO();
+        f1.setNumber("1");
+        f1.setMessage("鑾峰彇涓撳鎬昏垂鐢�: " + serviceFund.getProcurementcost() + "鍏�; " + "涓撳璐圭敤鎬婚噾棰�: " + serviceFund.getExpertcost() + "鍏�; " + "浼︾悊瀹℃煡璐圭敤鎬婚噾棰�: " + serviceFund.getEthicscost() + "鍏�");
+        FundDetailOneVO f2 = new FundDetailOneVO();
+        f2.setNumber("2");
+        f2.setMessage("鎹愮尞鑰呭尰瀛︽垚鏈�婚噾棰�: " + serviceFund.getMedicalcost() + "鍏�; " + "鎹愮尞鑰呭杽鍚庢垚鏈�婚噾棰�: " + serviceFund.getAftercarecost() + "鍏�");
+        FundDetailOneVO f3 = new FundDetailOneVO();
+        f3.setNumber("3");
+        f3.setMessage("鎹愮尞鑰呭灞為瀹胯垂鎬婚噾棰�: " + serviceFund.getFamilycost() + "鍏�");
+        l.add(f1);
+        l.add(f2);
+        l.add(f3);
+
+        return l;
+
+    }
+
+    @Override
+    public FundDetailTwoVO showFundDetailTwo(Long infoid) {
+
+        FundDetailTwoVO fdvo = new FundDetailTwoVO();
+        List<ServiceFund> serviceFunds = serviceFundMapper.getInfoByInfoId(infoid);
+
+        List<ServiceFunddetail> fd = new ArrayList<>();
+        for(ServiceFund s : serviceFunds){
+            List<ServiceFunddetail> l = serviceFunddetailMapper.getAllDetailsByFDIDHZ(s.getId());
+            for(ServiceFunddetail df : l){
+                fd.add(df);
+            }
+        }
+
+        List<ServiceReimbursement> serviceReimbursements1 = serviceReimbursementMapper.getInfoByInfoId(infoid);
+        List<ServiceReimbursement> serviceReimbursements2 = serviceReimbursementMapper.getInfoByInfoIdRelatives(infoid);
+
+        double f1 = 0;
+        double f2 = 0;
+        double f3 = 0;
+        double f4 = 0;
+        double f5 = 0;
+        double f6 = 0;
+        double f7 = 0;
+        double f8 = 0;
+        double f9 = 0;
+        double f10 = 0;
+        double f11 = 0;
+        double f12 = 0;
+        double f13 = 0;
+        double f14 = 0;
+        double f15 = 0;
+        double f16 = 0;
+        double f17 = 0;
+        double f18 = 0;
+        double f19 = 0;
+        double f20 = 0;
+        double f21 = 0;
+        double f22 = 0;
+        double f23 = 0;
+        double f24 = 0;
+        double f25 = 0;
+        double f26 = 0;
+        double f27 = 0;
+        double f28 = 0;
+        double f29 = 0;
+        double f30 = 0;
+        double f31 = 0;
+        double f32 = 0;
+        double f33 = 0;
+        double f34 = 0;
+        double f35 = 0;
+        double f36 = 0;
+        double f37 = 0;
+        double f38 = 0;
+        double f39 = 0;
+        double f40 = 0;
+        double f41 = 0;
+        double f42 = 0;
+        double f43 = 0;
+        double f44 = 0;
+        double f45 = 0;
+        double f46 = 0;
+        double f47 = 0;
+        double f48 = 0;
+        double f49 = 0;
+        double f50 = 0;
+        double f51 = 0;
+        double f52 = 0;
+        double hj = 0;
+
+        double sh1 = 0;
+        double sh2 = 0;
+        double sh3 = 0;
+        double sh4 = 0;
+        double sh5 = 0;
+        double sh6 = 0;
+        double sh7 = 0;
+        double sh8 = 0;
+        double sh9 = 0;
+        double sh10 = 0;
+        double sh11 = 0;
+        double sh12 = 0;
+        double sh13 = 0;
+        double sh14 = 0;
+        double sh15 = 0;
+        double sh16 = 0;
+        double sh17 = 0;
+        double sh18 = 0;
+        double sh19 = 0;
+        double sh20 = 0;
+        double sh21 = 0;
+        double sh22 = 0;
+        double sh23 = 0;
+        double sh24 = 0;
+        double sh25 = 0;
+        double sh26 = 0;
+        double sh27 = 0;
+        double sh28 = 0;
+        double sh29 = 0;
+        double sh30 = 0;
+        double sh31 = 0;
+        double sh32 = 0;
+        double sh33 = 0;
+        double sh34 = 0;
+        double sh35 = 0;
+        double sh36 = 0;
+        double sh37 = 0;
+        double sh38 = 0;
+        double sh39 = 0;
+        double sh40 = 0;
+        double sh41 = 0;
+        double sh42 = 0;
+        double sh43 = 0;
+        double sh44 = 0;
+        double sh45 = 0;
+        double sh46 = 0;
+        double sh47 = 0;
+        double sh48 = 0;
+        double sh49 = 0;
+        double sh50 = 0;
+        double sh51 = 0;
+        double sh52 = 0;
+        double shhj = 0;
+
+        for(ServiceReimbursement sr : serviceReimbursements1){
+            f28 += sr.getAmountrequested();
+            sh28 += sr.getAmountrequested();
+        }
+        for(ServiceReimbursement sr : serviceReimbursements2){
+            f51 += sr.getAmountrequested();
+            sh51 += sr.getAmountrequested();
+        }
+
+        for(ServiceFunddetail s : fd){
+            if(s.getItemid() == 1){
+                f1 += s.getAmount();
+                sh1 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 2){
+                f2 += s.getAmount();
+                sh2 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 3){
+                f3 += s.getAmount();
+                sh3 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 4){
+                f4 += s.getAmount();
+                sh4 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 5){
+                f5 += s.getAmount();
+                sh5 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 6){
+                f6 += s.getAmount();
+                sh6 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 7){
+                f7 += s.getAmount();
+                sh7 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 8){
+                f8 += s.getAmount();
+                sh8 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 9){
+                f9 += s.getAmount();
+                sh9 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 10){
+                f10 += s.getAmount();
+                sh10 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 11){
+                f11 += s.getAmount();
+                sh11 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 12){
+                f12 += s.getAmount();
+                sh12 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 13){
+                f13 += s.getAmount();
+                sh13 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 14){
+                f14 += s.getAmount();
+                sh14 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 15){
+                f15 += s.getAmount();
+                sh15 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 16){
+                f16 += s.getAmount();
+                sh16 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 17){
+                f17 += s.getAmount();
+                sh17 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 18){
+                f18 += s.getAmount();
+                sh18 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 19){
+                f19 += s.getAmount();
+                sh19 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 20){
+                f20 += s.getAmount();
+                sh20 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 21){
+                f21 += s.getAmount();
+                sh21 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 22){
+                f22 += s.getAmount();
+                sh22 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 23){
+                f23 += s.getAmount();
+                sh23 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 24){
+                f24 += s.getAmount();
+                sh24 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 25){
+                f25 += s.getAmount();
+                sh25 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 26){
+                f26 += s.getAmount();
+                sh26 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 27){
+                f27 += s.getAmount();
+                sh27 += s.getTaxedamount();
+            }
+
+            if(s.getItemid() == 29){
+                f29 += s.getAmount();
+                sh29 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 30){
+                f30 += s.getAmount();
+                sh30 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 31){
+                f31 += s.getAmount();
+                sh31 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 32){
+                f32 += s.getAmount();
+                sh32 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 33){
+                f33 += s.getAmount();
+                sh33 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 34){
+                f34 += s.getAmount();
+                sh34 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 35){
+                f35 += s.getAmount();
+                sh35 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 36){
+                f36 += s.getAmount();
+                sh36 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 37){
+                f37 += s.getAmount();
+                sh37 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 38){
+                f38 += s.getAmount();
+                sh38 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 39){
+                f39 += s.getAmount();
+                sh39 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 40){
+                f40 += s.getAmount();
+                sh40 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 41){
+                f41 += s.getAmount();
+                sh41 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 42){
+                f42 += s.getAmount();
+                sh42 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 43){
+                f43 += s.getAmount();
+                sh43 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 44){
+                f44 += s.getAmount();
+                sh44 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 45){
+                f45 += s.getAmount();
+                sh45 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 46){
+                f46 += s.getAmount();
+                sh46 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 47){
+                f47 += s.getAmount();
+                sh47 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 48){
+                f48 += s.getAmount();
+                sh48 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 49){
+                f49 += s.getAmount();
+                sh49 += s.getTaxedamount();
+            }
+
+            if(s.getItemid() == 50){
+                f50 += s.getAmount();
+                sh50 += s.getTaxedamount();
+            }
+            if(s.getItemid() == 52){
+                f52 += s.getAmount();
+                sh52 += s.getTaxedamount();
+            }
+        }
+
+        hj = f1 + f2 + f3 + f4 + f5 + f6 + f7 + f8 + f9 + f10 + f11 + f12 + f13 + f14 + f15 + f16 + f17 + f18 + f19 + f20 + f21 + f22 + f23 + f24 + f25 + f26 + f27 + f28 + f29 + f30 + f31 + f32 + f33 + f34 + f35
+                + f36 + f37 + f38 + f39 + f40 + f41 + f42 + f43 + f44 + f45 + f46 + f47 + f48 + f49 + f50 + f51 + f52;
+
+        shhj = sh1 + sh2 + sh3 + sh4 + sh5 + sh6 + sh7 + sh8 + sh9 + sh10 + sh11 + sh12 + sh13 + sh14 + sh15 + sh16 + sh17 + sh18 + sh19 + sh20 + sh21 + sh22 + sh23 + sh24 + sh25 + sh26 + sh27 + sh28 + sh29 + sh30 + sh31 + sh32 + sh33 + sh34 + sh35
+                + sh36 + sh37 + sh38 + sh39 + sh40 + sh41 + sh42 + sh43 + sh44 + sh45 + sh46 + sh47 + sh48 + sh49 + sh50 + sh51 + sh52;
+
+        fdvo.setFy1(f1);
+        fdvo.setFy2(f2);
+        fdvo.setFy3(f3);
+        fdvo.setFy4(f4);
+        fdvo.setFy5(f5);
+        fdvo.setFy6(f6);
+        fdvo.setFy7(f7);
+        fdvo.setFy8(f8);
+        fdvo.setFy9(f9);
+        fdvo.setFy10(f10);
+        fdvo.setFy11(f11);
+        fdvo.setFy12(f12);
+        fdvo.setFy13(f13);
+        fdvo.setFy14(f14);
+        fdvo.setFy15(f15);
+        fdvo.setFy16(f16);
+        fdvo.setFy17(f17);
+        fdvo.setFy18(f18);
+        fdvo.setFy19(f19);
+        fdvo.setFy20(f20);
+        fdvo.setFy21(f21);
+        fdvo.setFy22(f22);
+        fdvo.setFy23(f23);
+        fdvo.setFy24(f24);
+        fdvo.setFy25(f25);
+        fdvo.setFy26(f26);
+        fdvo.setFy27(f27);
+        fdvo.setFy28(f28);
+        fdvo.setFy29(f29);
+        fdvo.setFy30(f30);
+        fdvo.setFy31(f31);
+        fdvo.setFy32(f32);
+        fdvo.setFy33(f33);
+        fdvo.setFy34(f34);
+        fdvo.setFy35(f35);
+        fdvo.setFy36(f36);
+        fdvo.setFy37(f37);
+        fdvo.setFy38(f38);
+        fdvo.setFy39(f39);
+        fdvo.setFy40(f40);
+        fdvo.setFy41(f41);
+        fdvo.setFy42(f42);
+        fdvo.setFy43(f43);
+        fdvo.setFy44(f44);
+        fdvo.setFy45(f45);
+        fdvo.setFy46(f46);
+        fdvo.setFy47(f47);
+        fdvo.setFy48(f48);
+        fdvo.setFy49(f49);
+        fdvo.setFy50(f50);
+        fdvo.setFy51(f51);
+        fdvo.setFy52(f52);
+        fdvo.setFyhj(hj);
+
+        fdvo.setSh1(sh1);
+        fdvo.setSh2(sh2);
+        fdvo.setSh3(sh3);
+        fdvo.setSh4(sh4);
+        fdvo.setSh5(sh5);
+        fdvo.setSh6(sh6);
+        fdvo.setSh7(sh7);
+        fdvo.setSh8(sh8);
+        fdvo.setSh9(sh9);
+        fdvo.setSh10(sh10);
+        fdvo.setSh11(sh11);
+        fdvo.setSh12(sh12);
+        fdvo.setSh13(sh13);
+        fdvo.setSh14(sh14);
+        fdvo.setSh15(sh15);
+        fdvo.setSh16(sh16);
+        fdvo.setSh17(sh17);
+        fdvo.setSh18(sh18);
+        fdvo.setSh19(sh19);
+        fdvo.setSh20(sh20);
+        fdvo.setSh21(sh21);
+        fdvo.setSh22(sh22);
+        fdvo.setSh23(sh23);
+        fdvo.setSh24(sh24);
+        fdvo.setSh25(sh25);
+        fdvo.setSh26(sh26);
+        fdvo.setSh27(sh27);
+        fdvo.setSh28(sh28);
+        fdvo.setSh29(sh29);
+        fdvo.setSh30(sh30);
+        fdvo.setSh31(sh31);
+        fdvo.setSh32(sh32);
+        fdvo.setSh33(sh33);
+        fdvo.setSh34(sh34);
+        fdvo.setSh35(sh35);
+        fdvo.setSh36(sh36);
+        fdvo.setSh37(sh37);
+        fdvo.setSh38(sh38);
+        fdvo.setSh39(sh39);
+        fdvo.setSh40(sh40);
+        fdvo.setSh41(sh41);
+        fdvo.setSh42(sh42);
+        fdvo.setSh43(sh43);
+        fdvo.setSh44(sh44);
+        fdvo.setSh45(sh45);
+        fdvo.setSh46(sh46);
+        fdvo.setSh47(sh47);
+        fdvo.setSh48(sh48);
+        fdvo.setSh49(sh49);
+        fdvo.setSh50(sh50);
+        fdvo.setSh51(sh51);
+        fdvo.setSh52(sh52);
+        fdvo.setShhj(shhj);
+
+        return fdvo;
+    }
+
+    @Override
+    public String returnId(Long id) {
+        return id.toString();
+    }
+
+    @Override
+    public List<SpFinancialExpensesFundOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT,Integer CHECKFLAG,Integer APPLYTYPE) {
+        return serviceFundMapper.getListBypower(PAUSERNO,  PAFUNDTYPE,  PAAPPLICANT,  PAAPPLICATIONBEGTIME,  PAAPPLICATIONENDTIME,  PADEPARTMENT,CHECKFLAG,APPLYTYPE);
+    }
+
+    @Override
+    public int countItem(Long infoid, Long itemid) {
+        List<ServiceFund> serviceFunds = serviceFundMapper.getInfoByInfoId(infoid);
+
+        int count = 0;
+        for(ServiceFund s : serviceFunds){
+            long fundid = s.getId();
+            int l = serviceFunddetailMapper.countItem(fundid, itemid);
+            count += l;
+        }
+
+        return count;
+    }
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundSharedServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundSharedServiceImpl.java
new file mode 100644
index 0000000..96c1d23
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundSharedServiceImpl.java
@@ -0,0 +1,169 @@
+package com.ruoyi.project.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.domain.ServiceFundShared;
+import com.ruoyi.project.mapper.ServiceFundSharedMapper;
+import com.ruoyi.project.service.IServiceFundSharedService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 璐圭敤鐢宠涓籗ervice涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2023-01-10
+ */
+@Service
+public class ServiceFundSharedServiceImpl extends ServiceImpl<ServiceFundSharedMapper, ServiceFundShared> implements IServiceFundSharedService 
+{
+
+
+    /**
+     * 鏌ヨ璐圭敤鐢宠涓诲垪琛�
+     * 
+     * @param serviceFundShared 璐圭敤鐢宠涓�
+     * @return 璐圭敤鐢宠涓�
+     */
+    @Override
+    public List<ServiceFundShared> queryList(ServiceFundShared serviceFundShared) {
+        LambdaQueryWrapper<ServiceFundShared> wrappers = Wrappers.lambdaQuery();
+        if (serviceFundShared.getInfoid() != null){
+            wrappers.eq(ServiceFundShared::getInfoid ,serviceFundShared.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getDonorno())){
+            wrappers.eq(ServiceFundShared::getDonorno ,serviceFundShared.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getDonorname())){
+            wrappers.like(ServiceFundShared::getDonorname ,serviceFundShared.getDonorname());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getUserno())){
+            wrappers.eq(ServiceFundShared::getUserno ,serviceFundShared.getUserno());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getUsername())){
+            wrappers.like(ServiceFundShared::getUsername ,serviceFundShared.getUsername());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getUnitname())){
+            wrappers.like(ServiceFundShared::getUnitname ,serviceFundShared.getUnitname());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getUnitno())){
+            wrappers.eq(ServiceFundShared::getUnitno ,serviceFundShared.getUnitno());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getUnituserno())){
+            wrappers.eq(ServiceFundShared::getUnituserno ,serviceFundShared.getUnituserno());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getPhone())){
+            wrappers.eq(ServiceFundShared::getPhone ,serviceFundShared.getPhone());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getAnnexbankcard())){
+            wrappers.eq(ServiceFundShared::getAnnexbankcard ,serviceFundShared.getAnnexbankcard());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getAnnexregistform())){
+            wrappers.eq(ServiceFundShared::getAnnexregistform ,serviceFundShared.getAnnexregistform());
+        }
+        if (serviceFundShared.getPretaxcost() != null){
+            wrappers.eq(ServiceFundShared::getPretaxcost ,serviceFundShared.getPretaxcost());
+        }
+        if (serviceFundShared.getTaxedcost() != null){
+            wrappers.eq(ServiceFundShared::getTaxedcost ,serviceFundShared.getTaxedcost());
+        }
+        if (serviceFundShared.getTotalcost() != null){
+            wrappers.eq(ServiceFundShared::getTotalcost ,serviceFundShared.getTotalcost());
+        }
+        if (serviceFundShared.getExpertcost() != null){
+            wrappers.eq(ServiceFundShared::getExpertcost ,serviceFundShared.getExpertcost());
+        }
+        if (serviceFundShared.getEthicscost() != null){
+            wrappers.eq(ServiceFundShared::getEthicscost ,serviceFundShared.getEthicscost());
+        }
+        if (serviceFundShared.getMedicalcost() != null){
+            wrappers.eq(ServiceFundShared::getMedicalcost ,serviceFundShared.getMedicalcost());
+        }
+        if (serviceFundShared.getFamilycost() != null){
+            wrappers.eq(ServiceFundShared::getFamilycost ,serviceFundShared.getFamilycost());
+        }
+        if (serviceFundShared.getAftercarecost() != null){
+            wrappers.eq(ServiceFundShared::getAftercarecost ,serviceFundShared.getAftercarecost());
+        }
+        if (serviceFundShared.getAmountrequested() != null){
+            wrappers.eq(ServiceFundShared::getAmountrequested ,serviceFundShared.getAmountrequested());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getApplytype())){
+            wrappers.eq(ServiceFundShared::getApplytype ,serviceFundShared.getApplytype());
+        }
+        if (serviceFundShared.getPrepaidamount() != null){
+            wrappers.eq(ServiceFundShared::getPrepaidamount ,serviceFundShared.getPrepaidamount());
+        }
+        if (serviceFundShared.getInvoicecount() != null){
+            wrappers.eq(ServiceFundShared::getInvoicecount ,serviceFundShared.getInvoicecount());
+        }
+        if (serviceFundShared.getAttachcount() != null){
+            wrappers.eq(ServiceFundShared::getAttachcount ,serviceFundShared.getAttachcount());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getManagerno())){
+            wrappers.eq(ServiceFundShared::getManagerno ,serviceFundShared.getManagerno());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getManagername())){
+            wrappers.like(ServiceFundShared::getManagername ,serviceFundShared.getManagername());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getDeptmentno())){
+            wrappers.eq(ServiceFundShared::getDeptmentno ,serviceFundShared.getDeptmentno());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getDeptmentname())){
+            wrappers.like(ServiceFundShared::getDeptmentname ,serviceFundShared.getDeptmentname());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getOpochecker())){
+            wrappers.eq(ServiceFundShared::getOpochecker ,serviceFundShared.getOpochecker());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getFinvicepresident())){
+            wrappers.eq(ServiceFundShared::getFinvicepresident ,serviceFundShared.getFinvicepresident());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getBusvicepresident())){
+            wrappers.eq(ServiceFundShared::getBusvicepresident ,serviceFundShared.getBusvicepresident());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getOfficedirector())){
+            wrappers.eq(ServiceFundShared::getOfficedirector ,serviceFundShared.getOfficedirector());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getFinancedirector())){
+            wrappers.eq(ServiceFundShared::getFinancedirector ,serviceFundShared.getFinancedirector());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getFinancechecher())){
+            wrappers.eq(ServiceFundShared::getFinancechecher ,serviceFundShared.getFinancechecher());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getRemark())){
+            wrappers.eq(ServiceFundShared::getRemark ,serviceFundShared.getRemark());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getIsdistribute())){
+            wrappers.eq(ServiceFundShared::getIsdistribute ,serviceFundShared.getIsdistribute());
+        }
+        if (serviceFundShared.getRecordstatus() != null){
+            wrappers.eq(ServiceFundShared::getRecordstatus ,serviceFundShared.getRecordstatus());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getUploadflag())){
+            wrappers.eq(ServiceFundShared::getUploadflag ,serviceFundShared.getUploadflag());
+        }
+        if (serviceFundShared.getUploadtime() != null){
+            wrappers.eq(ServiceFundShared::getUploadtime ,serviceFundShared.getUploadtime());
+        }
+        if (serviceFundShared.getFlowlevel() != null){
+            wrappers.eq(ServiceFundShared::getFlowlevel ,serviceFundShared.getFlowlevel());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getOaid())){
+            wrappers.eq(ServiceFundShared::getOaid ,serviceFundShared.getOaid());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getOabdzt())){
+            wrappers.eq(ServiceFundShared::getOabdzt ,serviceFundShared.getOabdzt());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getFilename())){
+            wrappers.like(ServiceFundShared::getFilename ,serviceFundShared.getFilename());
+        }
+        if (StringUtils.isNotBlank(serviceFundShared.getFileid())){
+            wrappers.eq(ServiceFundShared::getFileid ,serviceFundShared.getFileid());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
new file mode 100644
index 0000000..1c94fde
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
@@ -0,0 +1,134 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.project.domain.ServiceFund;
+import com.ruoyi.project.domain.ServiceReimbursement;
+import com.ruoyi.project.domain.ServiceReimbursementdetail;
+import com.ruoyi.project.mapper.ServiceFundMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceFunddetailMapper;
+import com.ruoyi.project.domain.ServiceFunddetail;
+import com.ruoyi.project.service.IServiceFunddetailService;
+
+/**
+ * 璐圭敤鐢宠鏄庣粏Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-01-25
+ */
+@Service
+public class ServiceFunddetailServiceImpl extends ServiceImpl<ServiceFunddetailMapper, ServiceFunddetail> implements IServiceFunddetailService 
+{
+
+    @Autowired
+    ServiceFunddetailMapper serviceFunddetailMapper;
+
+    @Autowired
+    ServiceFundMapper serviceFundMapper;
+
+
+    /**
+     * 鏌ヨ璐圭敤鐢宠鏄庣粏鍒楄〃
+     * 
+     * @param serviceFunddetail 璐圭敤鐢宠鏄庣粏
+     * @return 璐圭敤鐢宠鏄庣粏
+     */
+    @Override
+    public List<ServiceFunddetail> queryList(ServiceFunddetail serviceFunddetail) {
+        LambdaQueryWrapper<ServiceFunddetail> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceFunddetail.getBeneficiaryname())){
+            wrappers.like(ServiceFunddetail::getBeneficiaryname ,serviceFunddetail.getBeneficiaryname());
+        }
+        if (StringUtils.isNotBlank(serviceFunddetail.getUnitname())){
+            wrappers.like(ServiceFunddetail::getUnitname ,serviceFunddetail.getUnitname());
+        }
+        if (StringUtils.isNotBlank(serviceFunddetail.getApplytype())){
+            wrappers.eq(ServiceFunddetail::getApplytype ,serviceFunddetail.getApplytype());
+        }
+        if (StringUtils.isNotBlank(serviceFunddetail.getItemname())){
+            wrappers.like(ServiceFunddetail::getItemname ,serviceFunddetail.getItemname());
+        }
+        if (StringUtils.isNotBlank(serviceFunddetail.getItemtype())){
+            wrappers.eq(ServiceFunddetail::getItemtype ,serviceFunddetail.getItemtype());
+        }
+        if (StringUtils.isNotBlank(serviceFunddetail.getRecordstatus())){
+            wrappers.eq(ServiceFunddetail::getRecordstatus ,serviceFunddetail.getRecordstatus());
+        }
+        if (StringUtils.isNotBlank(serviceFunddetail.getCreateBy())){
+            wrappers.eq(ServiceFunddetail::getCreateBy ,serviceFunddetail.getCreateBy());
+        }
+        if (serviceFunddetail.getCreateTime() != null){
+            wrappers.eq(ServiceFunddetail::getCreateTime ,serviceFunddetail.getCreateTime());
+        }
+        if (StringUtils.isNotBlank(serviceFunddetail.getUploadflag())){
+            wrappers.eq(ServiceFunddetail::getUploadflag ,serviceFunddetail.getUploadflag());
+        }
+        if (serviceFunddetail.getUploadtime() != null){
+            wrappers.eq(ServiceFunddetail::getUploadtime ,serviceFunddetail.getUploadtime());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<ServiceFunddetail> getAllDetailsByFDIDLW(Long id) {
+        return serviceFunddetailMapper.getAllDetailsByFDIDLW(id);
+    }
+
+    @Override
+    public List<ServiceFunddetail> getAllDetailsByFDIDSH(Long id) {
+        return serviceFunddetailMapper.getAllDetailsByFDIDSH(id);
+    }
+
+    @Override
+    public List<ServiceFunddetail> getAllDetailsByFDIDSS(Long id) {
+        return serviceFunddetailMapper.getAllDetailsByFDIDSS(id);
+    }
+
+    @Override
+    public List<ServiceFunddetail> getAllDetailsByFDIDYX(Long id) {
+        return serviceFunddetailMapper.getAllDetailsByFDIDYX(id);
+    }
+
+    @Override
+    public List<ServiceFunddetail> getAllDetailsByFDIDHZ(Long id) {
+        return serviceFunddetailMapper.getAllDetailsByFDIDHZ(id);
+    }
+
+    @Override
+    public List<ServiceFunddetail> getAllDetailsByFDIDLWF(Long id) {
+        return serviceFunddetailMapper.getAllDetailsByFDIDLWF(id);
+    }
+
+    @Override
+    public List<ServiceFunddetail> selectServiceFunddetailList(ServiceFunddetail serviceFunddetail) {
+        return serviceFunddetailMapper.selectServiceFunddetailList(serviceFunddetail);
+    }
+
+    @Override
+    public int deleteDetail(Long id) {
+        ServiceFunddetail serviceFunddetail = serviceFunddetailMapper.selectById(id);
+        Long fundid = serviceFunddetail.getFundid();
+        ServiceFund serviceFund = serviceFundMapper.selectById(fundid);
+
+        Double pretax = serviceFund.getPretaxcost();
+        Double aftertax = serviceFund.getTaxedcost();
+        pretax = pretax - serviceFunddetail.getAmount();
+        aftertax = aftertax - serviceFunddetail.getTaxedamount();
+        Double amount = pretax + aftertax;
+
+        serviceFund.setPretaxcost(pretax);
+        serviceFund.setTaxedcost(aftertax);
+        serviceFund.setAmountrequested(amount);
+        int updateAmount = serviceFundMapper.updateById(serviceFund);
+
+        return serviceFunddetailMapper.deleteById(id);
+    }
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundflowServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundflowServiceImpl.java
new file mode 100644
index 0000000..5769970
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundflowServiceImpl.java
@@ -0,0 +1,61 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceFundflowMapper;
+import com.ruoyi.project.domain.ServiceFundflow;
+import com.ruoyi.project.service.IServiceFundflowService;
+
+/**
+ * 璧勯噾瀹℃壒娴佺▼Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-04-27
+ */
+@Service
+public class ServiceFundflowServiceImpl extends ServiceImpl<ServiceFundflowMapper, ServiceFundflow> implements IServiceFundflowService 
+{
+
+
+    /**
+     * 鏌ヨ璧勯噾瀹℃壒娴佺▼鍒楄〃
+     * 
+     * @param serviceFundflow 璧勯噾瀹℃壒娴佺▼
+     * @return 璧勯噾瀹℃壒娴佺▼
+     */
+    @Override
+    public List<ServiceFundflow> queryList(ServiceFundflow serviceFundflow) {
+        LambdaQueryWrapper<ServiceFundflow> wrappers = Wrappers.lambdaQuery();
+        if (serviceFundflow.getFundid() != null){
+            wrappers.eq(ServiceFundflow::getFundid ,serviceFundflow.getFundid());
+        }
+        if (StringUtils.isNotBlank(serviceFundflow.getCheckuserno())){
+            wrappers.eq(ServiceFundflow::getCheckuserno ,serviceFundflow.getCheckuserno());
+        }
+        if (StringUtils.isNotBlank(serviceFundflow.getCheckusername())){
+            wrappers.like(ServiceFundflow::getCheckusername ,serviceFundflow.getCheckusername());
+        }
+        if (StringUtils.isNotBlank(serviceFundflow.getFlowcontent())){
+            wrappers.eq(ServiceFundflow::getFlowcontent ,serviceFundflow.getFlowcontent());
+        }
+        if (serviceFundflow.getFlowconclusion() != null){
+            wrappers.eq(ServiceFundflow::getFlowconclusion ,serviceFundflow.getFlowconclusion());
+        }
+        if (serviceFundflow.getFundtype() != null){
+            wrappers.eq(ServiceFundflow::getFundtype ,serviceFundflow.getFundtype());
+        }
+        if (StringUtils.isNotBlank(serviceFundflow.getApplytype())){
+            wrappers.eq(ServiceFundflow::getApplytype ,serviceFundflow.getApplytype());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundflowruleServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundflowruleServiceImpl.java
new file mode 100644
index 0000000..e4def0b
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundflowruleServiceImpl.java
@@ -0,0 +1,60 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceFundflowruleMapper;
+import com.ruoyi.project.domain.ServiceFundflowrule;
+import com.ruoyi.project.service.IServiceFundflowruleService;
+
+/**
+ * 璧勯噾瀹℃壒瑙勫垯Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-04-27
+ */
+@Service
+public class ServiceFundflowruleServiceImpl extends ServiceImpl<ServiceFundflowruleMapper, ServiceFundflowrule> implements IServiceFundflowruleService 
+{
+
+
+    /**
+     * 鏌ヨ璧勯噾瀹℃壒瑙勫垯鍒楄〃
+     * 
+     * @param serviceFundflowrule 璧勯噾瀹℃壒瑙勫垯
+     * @return 璧勯噾瀹℃壒瑙勫垯
+     */
+    @Override
+    public List<ServiceFundflowrule> queryList(ServiceFundflowrule serviceFundflowrule) {
+        LambdaQueryWrapper<ServiceFundflowrule> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceFundflowrule.getApplytype())){
+            wrappers.eq(ServiceFundflowrule::getApplytype ,serviceFundflowrule.getApplytype());
+        }
+        if (StringUtils.isNotBlank(serviceFundflowrule.getCheckuserno())){
+            wrappers.eq(ServiceFundflowrule::getCheckuserno ,serviceFundflowrule.getCheckuserno());
+        }
+        if (StringUtils.isNotBlank(serviceFundflowrule.getCheckusername())){
+            wrappers.like(ServiceFundflowrule::getCheckusername ,serviceFundflowrule.getCheckusername());
+        }
+        if (serviceFundflowrule.getVerificationdept() != null){
+            wrappers.eq(ServiceFundflowrule::getVerificationdept ,serviceFundflowrule.getVerificationdept());
+        }
+        if (serviceFundflowrule.getFlowlevel() != null){
+            wrappers.eq(ServiceFundflowrule::getFlowlevel ,serviceFundflowrule.getFlowlevel());
+        }
+        if (serviceFundflowrule.getTotallevel() != null){
+            wrappers.eq(ServiceFundflowrule::getTotallevel ,serviceFundflowrule.getTotallevel());
+        }
+        if (serviceFundflowrule.getFundtype() != null){
+            wrappers.eq(ServiceFundflowrule::getFundtype ,serviceFundflowrule.getFundtype());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
new file mode 100644
index 0000000..027276d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
@@ -0,0 +1,78 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceMedicalevaluationMapper;
+import com.ruoyi.project.domain.ServiceMedicalevaluation;
+import com.ruoyi.project.service.IServiceMedicalevaluationService;
+
+/**
+ * 鍖诲璇勪及Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-19
+ */
+@Service
+public class ServiceMedicalevaluationServiceImpl extends ServiceImpl<ServiceMedicalevaluationMapper, ServiceMedicalevaluation> implements IServiceMedicalevaluationService 
+{
+
+    @Autowired
+    ServiceMedicalevaluationMapper serviceMedicalevaluationMapper;
+
+
+    /**
+     * 鏌ヨ鍖诲璇勪及鍒楄〃
+     * 
+     * @param serviceMedicalevaluation 鍖诲璇勪及
+     * @return 鍖诲璇勪及
+     */
+    @Override
+    public List<ServiceMedicalevaluation> queryList(ServiceMedicalevaluation serviceMedicalevaluation) {
+        LambdaQueryWrapper<ServiceMedicalevaluation> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotNull(serviceMedicalevaluation.getId())){
+            wrappers.eq(ServiceMedicalevaluation::getId ,serviceMedicalevaluation.getId());
+        }
+        if (StringUtils.isNotBlank(serviceMedicalevaluation.getDonorno())){
+            wrappers.eq(ServiceMedicalevaluation::getDonorno ,serviceMedicalevaluation.getDonorno());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<MedicalEvaluationVO> selectVOList(MedicalEvaluationVO medicalEvaluationVO) {
+
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List <SysRole> l = user.getRoles();
+        Boolean b = false;
+        for(SysRole r : l){
+            if(r.getRoleId().longValue() == 3){
+                b = true;
+            }
+        }
+        if(b){
+            medicalEvaluationVO.setBasecreateby(user.getUserName());
+        }
+
+        return serviceMedicalevaluationMapper.selectVOList(medicalEvaluationVO);
+    }
+
+    @Override
+    public List<ServiceMedicalevaluation> selectServiceMedicalevaluationList(ServiceMedicalevaluation serviceMedicalevaluation) {
+
+        return serviceMedicalevaluationMapper.selectServiceMedicalevaluationList(serviceMedicalevaluation);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceOrganallocationServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceOrganallocationServiceImpl.java
new file mode 100644
index 0000000..f6e6596
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceOrganallocationServiceImpl.java
@@ -0,0 +1,152 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceOrganallocationMapper;
+import com.ruoyi.project.domain.ServiceOrganallocation;
+import com.ruoyi.project.service.IServiceOrganallocationService;
+
+/**
+ * 鍣ㄥ畼鍒嗛厤Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Service
+public class ServiceOrganallocationServiceImpl extends ServiceImpl<ServiceOrganallocationMapper, ServiceOrganallocation> implements IServiceOrganallocationService 
+{
+
+    @Autowired
+    ServiceOrganallocationMapper serviceOrganallocationMapper;
+
+
+    /**
+     * 鏌ヨ鍣ㄥ畼鍒嗛厤鍒楄〃
+     * 
+     * @param serviceOrganallocation 鍣ㄥ畼鍒嗛厤
+     * @return 鍣ㄥ畼鍒嗛厤
+     */
+    @Override
+    public List<ServiceOrganallocation> queryList(ServiceOrganallocation serviceOrganallocation) {
+        LambdaQueryWrapper<ServiceOrganallocation> wrappers = Wrappers.lambdaQuery();
+        if (serviceOrganallocation.getOrganid() != null){
+            wrappers.eq(ServiceOrganallocation::getOrganid ,serviceOrganallocation.getOrganid());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getOrgannumber())){
+            wrappers.eq(ServiceOrganallocation::getOrgannumber ,serviceOrganallocation.getOrgannumber());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getApplicantuserid())){
+            wrappers.eq(ServiceOrganallocation::getApplicantuserid ,serviceOrganallocation.getApplicantuserid());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getApplicantusername())){
+            wrappers.like(ServiceOrganallocation::getApplicantusername ,serviceOrganallocation.getApplicantusername());
+        }
+        if (serviceOrganallocation.getApplicanttime() != null){
+            wrappers.eq(ServiceOrganallocation::getApplicanttime ,serviceOrganallocation.getApplicanttime());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getCheckuserid())){
+            wrappers.eq(ServiceOrganallocation::getCheckuserid ,serviceOrganallocation.getCheckuserid());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getCheckusername())){
+            wrappers.like(ServiceOrganallocation::getCheckusername ,serviceOrganallocation.getCheckusername());
+        }
+        if (serviceOrganallocation.getChecktime() != null){
+            wrappers.eq(ServiceOrganallocation::getChecktime ,serviceOrganallocation.getChecktime());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getChecksuggestion())){
+            wrappers.eq(ServiceOrganallocation::getChecksuggestion ,serviceOrganallocation.getChecksuggestion());
+        }
+        if (serviceOrganallocation.getAllocationstatus() != null){
+            wrappers.eq(ServiceOrganallocation::getAllocationstatus ,serviceOrganallocation.getAllocationstatus());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getName())){
+            wrappers.like(ServiceOrganallocation::getName ,serviceOrganallocation.getName());
+        }
+        if (serviceOrganallocation.getSex() != null){
+            wrappers.eq(ServiceOrganallocation::getSex ,serviceOrganallocation.getSex());
+        }
+        if (serviceOrganallocation.getIdcardtype() != null){
+            wrappers.eq(ServiceOrganallocation::getIdcardtype ,serviceOrganallocation.getIdcardtype());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getIdcardno())){
+            wrappers.eq(ServiceOrganallocation::getIdcardno ,serviceOrganallocation.getIdcardno());
+        }
+        if (serviceOrganallocation.getAge() != null){
+            wrappers.eq(ServiceOrganallocation::getAge ,serviceOrganallocation.getAge());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getAgeunit())){
+            wrappers.eq(ServiceOrganallocation::getAgeunit ,serviceOrganallocation.getAgeunit());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getBirthday())){
+            wrappers.eq(ServiceOrganallocation::getBirthday ,serviceOrganallocation.getBirthday());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getPhone())){
+            wrappers.eq(ServiceOrganallocation::getPhone ,serviceOrganallocation.getPhone());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidenceaddress())){
+            wrappers.eq(ServiceOrganallocation::getResidenceaddress ,serviceOrganallocation.getResidenceaddress());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidenceprovince())){
+            wrappers.eq(ServiceOrganallocation::getResidenceprovince ,serviceOrganallocation.getResidenceprovince());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidenceprovincename())){
+            wrappers.like(ServiceOrganallocation::getResidenceprovincename ,serviceOrganallocation.getResidenceprovincename());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidencecity())){
+            wrappers.eq(ServiceOrganallocation::getResidencecity ,serviceOrganallocation.getResidencecity());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidencecityname())){
+            wrappers.like(ServiceOrganallocation::getResidencecityname ,serviceOrganallocation.getResidencecityname());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidencetown())){
+            wrappers.eq(ServiceOrganallocation::getResidencetown ,serviceOrganallocation.getResidencetown());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidencetownname())){
+            wrappers.like(ServiceOrganallocation::getResidencetownname ,serviceOrganallocation.getResidencetownname());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidencecommunity())){
+            wrappers.eq(ServiceOrganallocation::getResidencecommunity ,serviceOrganallocation.getResidencecommunity());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidencecommunityname())){
+            wrappers.like(ServiceOrganallocation::getResidencecommunityname ,serviceOrganallocation.getResidencecommunityname());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidencecountycode())){
+            wrappers.eq(ServiceOrganallocation::getResidencecountycode ,serviceOrganallocation.getResidencecountycode());
+        }
+        if (StringUtils.isNotBlank(serviceOrganallocation.getResidencecountyname())){
+            wrappers.like(ServiceOrganallocation::getResidencecountyname ,serviceOrganallocation.getResidencecountyname());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<ServiceOrganallocation> selectServiceOrganallocationList(ServiceOrganallocation serviceOrganallocation) {
+
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List <SysRole> l = user.getRoles();
+        Boolean b = false;
+        for(SysRole r : l){
+            if(r.getRoleId().longValue() == 3){
+                b = true;
+            }
+        }
+        if(b){
+            serviceOrganallocation.setCreateBy(user.getUserName());
+        }
+
+        return serviceOrganallocationMapper.selectServiceOrganallocationList(serviceOrganallocation);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
new file mode 100644
index 0000000..6a5da46
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
@@ -0,0 +1,109 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.project.domain.ServiceReimbursementdetail;
+import com.ruoyi.project.domain.ServiceRelativesconfirmation;
+import com.ruoyi.project.domain.dto.ServiceReimbursementDto;
+import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
+import com.ruoyi.project.mapper.ServiceReimbursementdetailMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceReimbursementMapper;
+import com.ruoyi.project.domain.ServiceReimbursement;
+import com.ruoyi.project.service.IServiceReimbursementService;
+
+/**
+ * 鎶ラ攢鐢宠Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+@Service
+public class ServiceReimbursementServiceImpl extends ServiceImpl<ServiceReimbursementMapper, ServiceReimbursement> implements IServiceReimbursementService 
+{
+
+    @Autowired
+    ServiceReimbursementMapper serviceReimbursementMapper;
+
+    @Autowired
+    ServiceReimbursementdetailMapper serviceReimbursementdetailMapper;
+
+    /**
+     * 鏌ヨ鎶ラ攢鐢宠鍒楄〃
+     * 
+     * @param serviceReimbursement 鎶ラ攢鐢宠
+     * @return 鎶ラ攢鐢宠
+     */
+    @Override
+    public List<ServiceReimbursement> queryList(ServiceReimbursement serviceReimbursement) {
+        LambdaQueryWrapper<ServiceReimbursement> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceReimbursement.getCreateBy())){
+            wrappers.eq(ServiceReimbursement::getCreateBy ,serviceReimbursement.getCreateBy());
+        }
+        if (serviceReimbursement.getCreateTime() != null){
+            wrappers.eq(ServiceReimbursement::getCreateTime ,serviceReimbursement.getCreateTime());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursement.getUsername())){
+            wrappers.like(ServiceReimbursement::getUsername ,serviceReimbursement.getUsername());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursement.getTravelers())){
+            wrappers.like(ServiceReimbursement::getTravelers ,serviceReimbursement.getTravelers());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursement.getDeptmentname())){
+            wrappers.like(ServiceReimbursement::getDeptmentname ,serviceReimbursement.getDeptmentname());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursement.getDonorno())){
+            wrappers.eq(ServiceReimbursement::getDonorno ,serviceReimbursement.getDonorno());
+        }
+        if (serviceReimbursement.getRecordstatus()!=null){
+            wrappers.eq(ServiceReimbursement::getRecordstatus ,serviceReimbursement.getRecordstatus());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursement.getUploadflag())){
+            wrappers.eq(ServiceReimbursement::getUploadflag ,serviceReimbursement.getUploadflag());
+        }
+
+       /* if (serviceReimbursement.getStarttime()!=null && serviceReimbursement.getEndtime()!=null){
+            wrappers.between(ServiceReimbursement::getCreateTime ,serviceReimbursement.getStarttime(),serviceReimbursement.getEndtime());
+        }*/
+
+        return this.list(wrappers);
+    }
+
+    @Override
+    public Long getMaxId() {
+        return serviceReimbursementMapper.getMaxId();
+    }
+
+    @Override
+    public List<ServiceReimbursementdetail> getRBDetailList(Long id) {
+        return serviceReimbursementdetailMapper.getRBDetailList(id);
+    }
+
+    @Override
+    public List<ServiceReimbursement> selectSearchList(ServiceReimbursementDto serviceReimbursementdto) {
+        return serviceReimbursementMapper.selectSearchList(serviceReimbursementdto);
+    }
+
+    @Override
+    public List<SpFinancialExpensesReimbursementOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT,Integer CHECKFLAG,Integer APPLYTYPE) {
+        return serviceReimbursementMapper.getListBypower(PAUSERNO,  PAFUNDTYPE,  PAAPPLICANT,  PAAPPLICATIONBEGTIME,  PAAPPLICATIONENDTIME,  PADEPARTMENT,CHECKFLAG,APPLYTYPE);
+    }
+
+    @Override
+    public List<ServiceReimbursement> getInfoByInfoId(Long infoid) {
+        return serviceReimbursementMapper.getInfoByInfoId(infoid);
+    }
+
+    @Override
+    public List<ServiceReimbursement> getInfoByInfoIdRelatives(Long infoid) {
+        return serviceReimbursementMapper.getInfoByInfoIdRelatives(infoid);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementSharedServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementSharedServiceImpl.java
new file mode 100644
index 0000000..754b633
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementSharedServiceImpl.java
@@ -0,0 +1,171 @@
+package com.ruoyi.project.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.domain.ServiceReimbursementShared;
+import com.ruoyi.project.mapper.ServiceReimbursementSharedMapper;
+import com.ruoyi.project.service.IServiceReimbursementSharedService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鎶ラ攢鐢宠Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2023-01-10
+ */
+@Service
+public class ServiceReimbursementSharedServiceImpl extends ServiceImpl<ServiceReimbursementSharedMapper, ServiceReimbursementShared> implements IServiceReimbursementSharedService 
+{
+
+
+    @Autowired
+    ServiceReimbursementSharedMapper serviceReimbursementSharedMapper;
+
+    /**
+     * 鏌ヨ鎶ラ攢鐢宠鍒楄〃
+     * 
+     * @param serviceReimbursementShared 鎶ラ攢鐢宠
+     * @return 鎶ラ攢鐢宠
+     */
+    @Override
+    public List<ServiceReimbursementShared> queryList(ServiceReimbursementShared serviceReimbursementShared) {
+        LambdaQueryWrapper<ServiceReimbursementShared> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getUserno())){
+            wrappers.eq(ServiceReimbursementShared::getUserno ,serviceReimbursementShared.getUserno());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getUsername())){
+            wrappers.like(ServiceReimbursementShared::getUsername ,serviceReimbursementShared.getUsername());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getTravelers())){
+            wrappers.eq(ServiceReimbursementShared::getTravelers ,serviceReimbursementShared.getTravelers());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getIdcardtype())){
+            wrappers.eq(ServiceReimbursementShared::getIdcardtype ,serviceReimbursementShared.getIdcardtype());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getIdcardno())){
+            wrappers.eq(ServiceReimbursementShared::getIdcardno ,serviceReimbursementShared.getIdcardno());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getPhone())){
+            wrappers.eq(ServiceReimbursementShared::getPhone ,serviceReimbursementShared.getPhone());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getDepositbank())){
+            wrappers.eq(ServiceReimbursementShared::getDepositbank ,serviceReimbursementShared.getDepositbank());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getBankcardno())){
+            wrappers.eq(ServiceReimbursementShared::getBankcardno ,serviceReimbursementShared.getBankcardno());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getBranchbankname())){
+            wrappers.like(ServiceReimbursementShared::getBranchbankname ,serviceReimbursementShared.getBranchbankname());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getAnnexbankcard())){
+            wrappers.eq(ServiceReimbursementShared::getAnnexbankcard ,serviceReimbursementShared.getAnnexbankcard());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getAnnexfiles())){
+            wrappers.eq(ServiceReimbursementShared::getAnnexfiles ,serviceReimbursementShared.getAnnexfiles());
+        }
+        if (serviceReimbursementShared.getAmountrequested() != null){
+            wrappers.eq(ServiceReimbursementShared::getAmountrequested ,serviceReimbursementShared.getAmountrequested());
+        }
+        if (serviceReimbursementShared.getPrepaidamount() != null){
+            wrappers.eq(ServiceReimbursementShared::getPrepaidamount ,serviceReimbursementShared.getPrepaidamount());
+        }
+        if (serviceReimbursementShared.getInvoicecount() != null){
+            wrappers.eq(ServiceReimbursementShared::getInvoicecount ,serviceReimbursementShared.getInvoicecount());
+        }
+        if (serviceReimbursementShared.getAttachcount() != null){
+            wrappers.eq(ServiceReimbursementShared::getAttachcount ,serviceReimbursementShared.getAttachcount());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getManagerno())){
+            wrappers.eq(ServiceReimbursementShared::getManagerno ,serviceReimbursementShared.getManagerno());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getManagername())){
+            wrappers.like(ServiceReimbursementShared::getManagername ,serviceReimbursementShared.getManagername());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getDeptmentno())){
+            wrappers.eq(ServiceReimbursementShared::getDeptmentno ,serviceReimbursementShared.getDeptmentno());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getDeptmentname())){
+            wrappers.like(ServiceReimbursementShared::getDeptmentname ,serviceReimbursementShared.getDeptmentname());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getOpochecker())){
+            wrappers.eq(ServiceReimbursementShared::getOpochecker ,serviceReimbursementShared.getOpochecker());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getFinvicepresident())){
+            wrappers.eq(ServiceReimbursementShared::getFinvicepresident ,serviceReimbursementShared.getFinvicepresident());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getBusvicepresident())){
+            wrappers.eq(ServiceReimbursementShared::getBusvicepresident ,serviceReimbursementShared.getBusvicepresident());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getOfficedirector())){
+            wrappers.eq(ServiceReimbursementShared::getOfficedirector ,serviceReimbursementShared.getOfficedirector());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getFinancedirector())){
+            wrappers.eq(ServiceReimbursementShared::getFinancedirector ,serviceReimbursementShared.getFinancedirector());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getFinancechecher())){
+            wrappers.eq(ServiceReimbursementShared::getFinancechecher ,serviceReimbursementShared.getFinancechecher());
+        }
+        if (serviceReimbursementShared.getInfoid() != null){
+            wrappers.eq(ServiceReimbursementShared::getInfoid ,serviceReimbursementShared.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getDonorno())){
+            wrappers.eq(ServiceReimbursementShared::getDonorno ,serviceReimbursementShared.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getDonorname())){
+            wrappers.like(ServiceReimbursementShared::getDonorname ,serviceReimbursementShared.getDonorname());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getReason())){
+            wrappers.eq(ServiceReimbursementShared::getReason ,serviceReimbursementShared.getReason());
+        }
+        if (serviceReimbursementShared.getRecordstatus() != null){
+            wrappers.eq(ServiceReimbursementShared::getRecordstatus ,serviceReimbursementShared.getRecordstatus());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getUploadflag())){
+            wrappers.eq(ServiceReimbursementShared::getUploadflag ,serviceReimbursementShared.getUploadflag());
+        }
+        if (serviceReimbursementShared.getUploadtime() != null){
+            wrappers.eq(ServiceReimbursementShared::getUploadtime ,serviceReimbursementShared.getUploadtime());
+        }
+        if (serviceReimbursementShared.getTotalamount() != null){
+            wrappers.eq(ServiceReimbursementShared::getTotalamount ,serviceReimbursementShared.getTotalamount());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getBigstrmoney())){
+            wrappers.eq(ServiceReimbursementShared::getBigstrmoney ,serviceReimbursementShared.getBigstrmoney());
+        }
+        if (serviceReimbursementShared.getFlowlevel() != null){
+            wrappers.eq(ServiceReimbursementShared::getFlowlevel ,serviceReimbursementShared.getFlowlevel());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getCosttype())){
+            wrappers.eq(ServiceReimbursementShared::getCosttype ,serviceReimbursementShared.getCosttype());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getCosttypename())){
+            wrappers.like(ServiceReimbursementShared::getCosttypename ,serviceReimbursementShared.getCosttypename());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getOaid())){
+            wrappers.eq(ServiceReimbursementShared::getOaid ,serviceReimbursementShared.getOaid());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getOabdzt())){
+            wrappers.eq(ServiceReimbursementShared::getOabdzt ,serviceReimbursementShared.getOabdzt());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getFilename())){
+            wrappers.like(ServiceReimbursementShared::getFilename ,serviceReimbursementShared.getFilename());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementShared.getFileid())){
+            wrappers.eq(ServiceReimbursementShared::getFileid ,serviceReimbursementShared.getFileid());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public  List<ServiceReimbursementShared> getRemShareInfoByRemId(Long remeid)
+    {
+        return serviceReimbursementSharedMapper.getRemShareInfoByRemId(remeid);
+       // return  null;
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementdetailServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementdetailServiceImpl.java
new file mode 100644
index 0000000..d1bb09c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementdetailServiceImpl.java
@@ -0,0 +1,88 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.project.domain.ServiceReimbursement;
+import com.ruoyi.project.mapper.ServiceReimbursementMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceReimbursementdetailMapper;
+import com.ruoyi.project.domain.ServiceReimbursementdetail;
+import com.ruoyi.project.service.IServiceReimbursementdetailService;
+
+/**
+ * 鎶ラ攢鐢宠鏄庣粏Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-01-24
+ */
+@Service
+public class ServiceReimbursementdetailServiceImpl extends ServiceImpl<ServiceReimbursementdetailMapper, ServiceReimbursementdetail> implements IServiceReimbursementdetailService 
+{
+
+    @Autowired
+    ServiceReimbursementdetailMapper serviceReimbursementdetailMapper;
+
+    @Autowired
+    ServiceReimbursementMapper serviceReimbursementMapper;
+
+    /**
+     * 鏌ヨ鎶ラ攢鐢宠鏄庣粏鍒楄〃
+     * 
+     * @param serviceReimbursementdetail 鎶ラ攢鐢宠鏄庣粏
+     * @return 鎶ラ攢鐢宠鏄庣粏
+     */
+    @Override
+    public List<ServiceReimbursementdetail> queryList(ServiceReimbursementdetail serviceReimbursementdetail) {
+        LambdaQueryWrapper<ServiceReimbursementdetail> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceReimbursementdetail.getCreateBy())){
+            wrappers.eq(ServiceReimbursementdetail::getCreateBy ,serviceReimbursementdetail.getCreateBy());
+        }
+        if (serviceReimbursementdetail.getCreateTime() != null){
+            wrappers.eq(ServiceReimbursementdetail::getCreateTime ,serviceReimbursementdetail.getCreateTime());
+        }
+        if (StringUtils.isNotBlank(serviceReimbursementdetail.getUploadFlag())){
+            wrappers.eq(ServiceReimbursementdetail::getUploadFlag ,serviceReimbursementdetail.getUploadFlag());
+        }
+        if (serviceReimbursementdetail.getUploadTime() != null){
+            wrappers.eq(ServiceReimbursementdetail::getUploadTime ,serviceReimbursementdetail.getUploadTime());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<Long> getAllIds(Long rbid) {
+        return serviceReimbursementdetailMapper.getAllIds(rbid);
+    }
+
+    @Override
+    public List<ServiceReimbursementdetail> getAllDetailsByRBID(Long id) {
+        return serviceReimbursementdetailMapper.getAllDetailsByRBID(id);
+    }
+
+    @Override
+    public List<ServiceReimbursementdetail> selectServiceReimbursementdetailList(ServiceReimbursementdetail serviceReimbursementdetail) {
+        return serviceReimbursementdetailMapper.selectServiceReimbursementdetailList(serviceReimbursementdetail);
+    }
+
+    @Override
+    public int deleteDetail(Long id) {
+        ServiceReimbursementdetail serviceReimbursementdetail = serviceReimbursementdetailMapper.selectById(id);
+        Long rbid = serviceReimbursementdetail.getRbid();
+        ServiceReimbursement serviceReimbursement = serviceReimbursementMapper.selectById(rbid);
+        Double amount = serviceReimbursement.getAmountrequested();
+        amount = amount - serviceReimbursementdetail.getTrafficexpense() - serviceReimbursementdetail.getCityfee() - serviceReimbursementdetail.getHotelexpense() - serviceReimbursementdetail.getFoodexpenses() - serviceReimbursementdetail.getFoodallowance() - serviceReimbursementdetail.getOtherexpense() - serviceReimbursementdetail.getOtherfeeamount();
+        serviceReimbursement.setAmountrequested(amount);
+        int updateAmount = serviceReimbursementMapper.updateById(serviceReimbursement);
+
+        return serviceReimbursementdetailMapper.deleteById(id);
+    }
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceRelativesconfirmationServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceRelativesconfirmationServiceImpl.java
new file mode 100644
index 0000000..df440fe
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceRelativesconfirmationServiceImpl.java
@@ -0,0 +1,213 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.project.domain.ServiceDonatebaseinfo;
+import com.ruoyi.project.domain.vo.RelativeConfirmationVO;
+import com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper;
+import com.ruoyi.project.service.IServiceDonatebaseinfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceRelativesconfirmationMapper;
+import com.ruoyi.project.domain.ServiceRelativesconfirmation;
+import com.ruoyi.project.service.IServiceRelativesconfirmationService;
+
+/**
+ * 鎹愮尞浜插睘纭Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2021-11-15
+ */
+@Service
+public class ServiceRelativesconfirmationServiceImpl extends ServiceImpl<ServiceRelativesconfirmationMapper, ServiceRelativesconfirmation> implements IServiceRelativesconfirmationService 
+{
+
+    @Autowired
+    IServiceDonatebaseinfoService serviceDonatebaseinfoService;
+
+    @Autowired
+    ServiceRelativesconfirmationMapper serviceRelativesconfirmationMapper;
+
+    @Autowired
+    ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper;
+
+
+    /**
+     * 鏌ヨ鎹愮尞浜插睘纭鍒楄〃
+     * 
+     * @param serviceRelativesconfirmation 鎹愮尞浜插睘纭
+     * @return 鎹愮尞浜插睘纭
+     */
+    @Override
+    public List<ServiceRelativesconfirmation> queryList(ServiceRelativesconfirmation serviceRelativesconfirmation) {
+        LambdaQueryWrapper<ServiceRelativesconfirmation> wrappers = Wrappers.lambdaQuery();
+        if (serviceRelativesconfirmation.getId() != null){
+            wrappers.eq(ServiceRelativesconfirmation::getId ,serviceRelativesconfirmation.getId());
+        }
+        if (serviceRelativesconfirmation.getInfoid() != null){
+            wrappers.eq(ServiceRelativesconfirmation::getInfoid ,serviceRelativesconfirmation.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getDonorno())){
+            wrappers.eq(ServiceRelativesconfirmation::getDonorno ,serviceRelativesconfirmation.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getName())){
+            wrappers.like(ServiceRelativesconfirmation::getName ,serviceRelativesconfirmation.getName());
+        }
+        if (serviceRelativesconfirmation.getIdcardtype() != null){
+            wrappers.eq(ServiceRelativesconfirmation::getIdcardtype ,serviceRelativesconfirmation.getIdcardtype());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getIdcardno())){
+            wrappers.eq(ServiceRelativesconfirmation::getIdcardno ,serviceRelativesconfirmation.getIdcardno());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getPhone())){
+            wrappers.eq(ServiceRelativesconfirmation::getPhone ,serviceRelativesconfirmation.getPhone());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidenceaddress())){
+            wrappers.eq(ServiceRelativesconfirmation::getResidenceaddress ,serviceRelativesconfirmation.getResidenceaddress());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidenceprovince())){
+            wrappers.eq(ServiceRelativesconfirmation::getResidenceprovince ,serviceRelativesconfirmation.getResidenceprovince());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidenceprovincename())){
+            wrappers.like(ServiceRelativesconfirmation::getResidenceprovincename ,serviceRelativesconfirmation.getResidenceprovincename());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidencecity())){
+            wrappers.eq(ServiceRelativesconfirmation::getResidencecity ,serviceRelativesconfirmation.getResidencecity());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidencecityname())){
+            wrappers.like(ServiceRelativesconfirmation::getResidencecityname ,serviceRelativesconfirmation.getResidencecityname());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidencetown())){
+            wrappers.eq(ServiceRelativesconfirmation::getResidencetown ,serviceRelativesconfirmation.getResidencetown());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidencetownname())){
+            wrappers.like(ServiceRelativesconfirmation::getResidencetownname ,serviceRelativesconfirmation.getResidencetownname());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidencecommunity())){
+            wrappers.eq(ServiceRelativesconfirmation::getResidencecommunity ,serviceRelativesconfirmation.getResidencecommunity());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidencecommunityname())){
+            wrappers.like(ServiceRelativesconfirmation::getResidencecommunityname ,serviceRelativesconfirmation.getResidencecommunityname());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidencecountycode())){
+            wrappers.eq(ServiceRelativesconfirmation::getResidencecountycode ,serviceRelativesconfirmation.getResidencecountycode());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResidencecountyname())){
+            wrappers.like(ServiceRelativesconfirmation::getResidencecountyname ,serviceRelativesconfirmation.getResidencecountyname());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getKinship())){
+            wrappers.eq(ServiceRelativesconfirmation::getKinship ,serviceRelativesconfirmation.getKinship());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getSignfamilyrelations())){
+            wrappers.eq(ServiceRelativesconfirmation::getSignfamilyrelations ,serviceRelativesconfirmation.getSignfamilyrelations());
+        }
+        if (serviceRelativesconfirmation.getKinshipChildrennum() != null){
+            wrappers.eq(ServiceRelativesconfirmation::getKinshipChildrennum ,serviceRelativesconfirmation.getKinshipChildrennum());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getKinshipconfirmationsign())){
+            wrappers.eq(ServiceRelativesconfirmation::getKinshipconfirmationsign ,serviceRelativesconfirmation.getKinshipconfirmationsign());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getOrgandecision())){
+            wrappers.eq(ServiceRelativesconfirmation::getOrgandecision ,serviceRelativesconfirmation.getOrgandecision());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getOrgandecisionOther())){
+            wrappers.eq(ServiceRelativesconfirmation::getOrgandecisionOther ,serviceRelativesconfirmation.getOrgandecisionOther());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getRelativeconfirmationsign())){
+            wrappers.eq(ServiceRelativesconfirmation::getRelativeconfirmationsign ,serviceRelativesconfirmation.getRelativeconfirmationsign());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getFamilyrelations())){
+            wrappers.eq(ServiceRelativesconfirmation::getFamilyrelations ,serviceRelativesconfirmation.getFamilyrelations());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getAcquisitiontissueno())){
+            wrappers.eq(ServiceRelativesconfirmation::getAcquisitiontissueno ,serviceRelativesconfirmation.getAcquisitiontissueno());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getAcquisitiontissuename())){
+            wrappers.like(ServiceRelativesconfirmation::getAcquisitiontissuename ,serviceRelativesconfirmation.getAcquisitiontissuename());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResponsibleuserid())){
+            wrappers.eq(ServiceRelativesconfirmation::getResponsibleuserid ,serviceRelativesconfirmation.getResponsibleuserid());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getResponsibleusername())){
+            wrappers.like(ServiceRelativesconfirmation::getResponsibleusername ,serviceRelativesconfirmation.getResponsibleusername());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getCoordinateduserido())){
+            wrappers.eq(ServiceRelativesconfirmation::getCoordinateduserido ,serviceRelativesconfirmation.getCoordinateduserido());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getCoordinatedusernameo())){
+            wrappers.eq(ServiceRelativesconfirmation::getCoordinatedusernameo ,serviceRelativesconfirmation.getCoordinatedusernameo());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getCoordinateduseridt())){
+            wrappers.eq(ServiceRelativesconfirmation::getCoordinateduseridt ,serviceRelativesconfirmation.getCoordinateduseridt());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getCoordinatedusernamet())){
+            wrappers.eq(ServiceRelativesconfirmation::getCoordinatedusernamet ,serviceRelativesconfirmation.getCoordinatedusernamet());
+        }
+        Map<String, Object> params = serviceRelativesconfirmation.getParams();
+        if (params.get("beginSigndate") != null && params.get("endSigndate") != null) {
+            wrappers.between(ServiceRelativesconfirmation::getSigndate ,params.get("beginSigndate"),params.get("endSigndate"));
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getCreateBy())){
+            wrappers.eq(ServiceRelativesconfirmation::getCreateBy ,serviceRelativesconfirmation.getCreateBy());
+        }
+        if (serviceRelativesconfirmation.getCreateTime() != null){
+            wrappers.eq(ServiceRelativesconfirmation::getCreateTime ,serviceRelativesconfirmation.getCreateTime());
+        }
+        if (StringUtils.isNotBlank(serviceRelativesconfirmation.getUpdateBy())){
+            wrappers.eq(ServiceRelativesconfirmation::getUpdateBy ,serviceRelativesconfirmation.getUpdateBy());
+        }
+        if (serviceRelativesconfirmation.getUpdateTime() != null){
+            wrappers.eq(ServiceRelativesconfirmation::getUpdateTime ,serviceRelativesconfirmation.getUpdateTime());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public String addH4H5(Long infoid) {
+        String oldDonateNumber = serviceDonatebaseinfoService.getDonateNumberById(infoid);
+        String coordinateUserId = serviceRelativesconfirmationMapper.getCoordinateUserByInfoId(infoid);
+        String adjustcoordinateUserId = coordinateUserId.substring(coordinateUserId.length() - 2);
+        int first = oldDonateNumber.indexOf("*");
+
+        if(first == -1){
+            return oldDonateNumber;
+        }
+        else {
+            StringBuilder newDonateNumber = new StringBuilder(oldDonateNumber);
+            newDonateNumber.replace(first, first + 2, adjustcoordinateUserId);
+            String updateNumber = newDonateNumber.toString();
+            int result = serviceDonatebaseinfoMapper.updateDonateNumber(infoid, updateNumber);
+            return updateNumber;
+        }
+
+    }
+
+    @Override
+    public List<RelativeConfirmationVO> selectVOList(RelativeConfirmationVO relativeConfirmationVO) {
+
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List <SysRole> l = user.getRoles();
+        Boolean b = false;
+        for(SysRole r : l){
+            if(r.getRoleId().longValue() == 3){
+                b = true;
+            }
+        }
+        if(b){
+            relativeConfirmationVO.setBasecreateby(user.getUserName());
+        }
+
+        return serviceRelativesconfirmationMapper.selectVOList(relativeConfirmationVO);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceSystemmessageServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceSystemmessageServiceImpl.java
new file mode 100644
index 0000000..a7670a3
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceSystemmessageServiceImpl.java
@@ -0,0 +1,70 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceSystemmessageMapper;
+import com.ruoyi.project.domain.ServiceSystemmessage;
+import com.ruoyi.project.service.IServiceSystemmessageService;
+
+/**
+ * 绯荤粺娑堟伅Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-06-02
+ */
+@Service
+public class ServiceSystemmessageServiceImpl extends ServiceImpl<ServiceSystemmessageMapper, ServiceSystemmessage> implements IServiceSystemmessageService 
+{
+
+
+    /**
+     * 鏌ヨ绯荤粺娑堟伅鍒楄〃
+     * 
+     * @param serviceSystemmessage 绯荤粺娑堟伅
+     * @return 绯荤粺娑堟伅
+     */
+    @Override
+    public List<ServiceSystemmessage> queryList(ServiceSystemmessage serviceSystemmessage) {
+        LambdaQueryWrapper<ServiceSystemmessage> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceSystemmessage.getSenduserno())){
+            wrappers.eq(ServiceSystemmessage::getSenduserno ,serviceSystemmessage.getSenduserno());
+        }
+        if (StringUtils.isNotBlank(serviceSystemmessage.getSendusername())){
+            wrappers.like(ServiceSystemmessage::getSendusername ,serviceSystemmessage.getSendusername());
+        }
+        if (StringUtils.isNotBlank(serviceSystemmessage.getReceiveuserno())){
+            wrappers.eq(ServiceSystemmessage::getReceiveuserno ,serviceSystemmessage.getReceiveuserno());
+        }
+        if (StringUtils.isNotBlank(serviceSystemmessage.getReceiveusername())){
+            wrappers.like(ServiceSystemmessage::getReceiveusername ,serviceSystemmessage.getReceiveusername());
+        }
+        if (StringUtils.isNotBlank(serviceSystemmessage.getMessagecontent())){
+            wrappers.eq(ServiceSystemmessage::getMessagecontent ,serviceSystemmessage.getMessagecontent());
+        }
+        if (serviceSystemmessage.getMessagetype() != null){
+            wrappers.eq(ServiceSystemmessage::getMessagetype ,serviceSystemmessage.getMessagetype());
+        }
+        if (serviceSystemmessage.getIsread() != null){
+            wrappers.eq(ServiceSystemmessage::getIsread ,serviceSystemmessage.getIsread());
+        }
+        if (serviceSystemmessage.getReadtime() != null){
+            wrappers.eq(ServiceSystemmessage::getReadtime ,serviceSystemmessage.getReadtime());
+        }
+        if (StringUtils.isNotBlank(serviceSystemmessage.getApplytype())){
+            wrappers.eq(ServiceSystemmessage::getApplytype ,serviceSystemmessage.getApplytype());
+        }
+        if (serviceSystemmessage.getFundtype() != null){
+            wrappers.eq(ServiceSystemmessage::getFundtype ,serviceSystemmessage.getFundtype());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTravelexpensestandardServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTravelexpensestandardServiceImpl.java
new file mode 100644
index 0000000..8797168
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTravelexpensestandardServiceImpl.java
@@ -0,0 +1,66 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.project.domain.vo.SpServiceDonationcost;
+import com.ruoyi.project.domain.vo.SpTravelExpenseStandardIn;
+import com.ruoyi.project.domain.vo.SpTravelExpenseStandardOut;
+import com.ruoyi.project.mapper.BaseFinancesubjectMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.ServiceTravelexpensestandardMapper;
+import com.ruoyi.project.domain.ServiceTravelexpensestandard;
+import com.ruoyi.project.service.IServiceTravelexpensestandardService;
+
+/**
+ * 浣忓璐归檺棰濇爣鍑哠ervice涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2022-04-26
+ */
+@Service
+public class ServiceTravelexpensestandardServiceImpl extends ServiceImpl<ServiceTravelexpensestandardMapper, ServiceTravelexpensestandard> implements IServiceTravelexpensestandardService 
+{
+
+    @Autowired
+    ServiceTravelexpensestandardMapper serviceTravelexpensestandardMapper;
+    /**
+     * 鏌ヨ浣忓璐归檺棰濇爣鍑嗗垪琛�
+     * 
+     * @param serviceTravelexpensestandard 浣忓璐归檺棰濇爣鍑�
+     * @return 浣忓璐归檺棰濇爣鍑�
+     */
+    @Override
+    public List<ServiceTravelexpensestandard> queryList(ServiceTravelexpensestandard serviceTravelexpensestandard) {
+        LambdaQueryWrapper<ServiceTravelexpensestandard> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceTravelexpensestandard.getProvincecode())){
+            wrappers.eq(ServiceTravelexpensestandard::getProvincecode ,serviceTravelexpensestandard.getProvincecode());
+        }
+        if (StringUtils.isNotBlank(serviceTravelexpensestandard.getCitycode())){
+            wrappers.eq(ServiceTravelexpensestandard::getCitycode ,serviceTravelexpensestandard.getCitycode());
+        }
+        if (StringUtils.isNotBlank(serviceTravelexpensestandard.getTowncode())){
+            wrappers.eq(ServiceTravelexpensestandard::getTowncode ,serviceTravelexpensestandard.getTowncode());
+        }
+        if (StringUtils.isNotBlank(serviceTravelexpensestandard.getBegindate())){
+            wrappers.eq(ServiceTravelexpensestandard::getBegindate ,serviceTravelexpensestandard.getBegindate());
+        }
+        if (StringUtils.isNotBlank(serviceTravelexpensestandard.getEnddate())){
+            wrappers.eq(ServiceTravelexpensestandard::getEnddate ,serviceTravelexpensestandard.getEnddate());
+        }
+        return this.list(wrappers);
+    }
+
+    @Override
+    public List<SpTravelExpenseStandardOut> getStandard(String PAPROVINCECODE, String PACITYCODE,String PATOWNCODE, String PABEGINDATE,String PAENDDATE,Integer STANDARDLEVEL) {
+        List<SpTravelExpenseStandardOut> l = serviceTravelexpensestandardMapper.getStandard(PAPROVINCECODE, PACITYCODE,PATOWNCODE, PABEGINDATE,PAENDDATE,STANDARDLEVEL);
+        return l;
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/VServiceDonateorganRegisterServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/VServiceDonateorganRegisterServiceImpl.java
new file mode 100644
index 0000000..774af7d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/VServiceDonateorganRegisterServiceImpl.java
@@ -0,0 +1,87 @@
+package com.ruoyi.project.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.ArrayList;
+import java.util.Map;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.mapper.VServiceDonateorganRegisterMapper;
+import com.ruoyi.project.domain.VServiceDonateorganRegister;
+import com.ruoyi.project.service.IVServiceDonateorganRegisterService;
+
+/**
+ * 鍣ㄥ畼淇℃伅鐧昏鏂癝ervice涓氬姟灞傚鐞�
+ * 
+ * @author shenjie
+ * @date 2021-11-11
+ */
+@Service
+public class VServiceDonateorganRegisterServiceImpl extends ServiceImpl<VServiceDonateorganRegisterMapper, VServiceDonateorganRegister> implements IVServiceDonateorganRegisterService 
+{
+
+
+    /**
+     * 鏌ヨ鍣ㄥ畼淇℃伅鐧昏鏂板垪琛�
+     * 
+     * @param vServiceDonateorganRegister 鍣ㄥ畼淇℃伅鐧昏鏂�
+     * @return 鍣ㄥ畼淇℃伅鐧昏鏂�
+     */
+    @Override
+    public List<VServiceDonateorganRegister> queryList(VServiceDonateorganRegister vServiceDonateorganRegister) {
+        LambdaQueryWrapper<VServiceDonateorganRegister> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getName())){
+            wrappers.like(VServiceDonateorganRegister::getName ,vServiceDonateorganRegister.getName());
+        }
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getIdcardno())){
+            wrappers.eq(VServiceDonateorganRegister::getIdcardno ,vServiceDonateorganRegister.getIdcardno());
+        }
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getOrganno())){
+            wrappers.eq(VServiceDonateorganRegister::getOrganno ,vServiceDonateorganRegister.getOrganno());
+        }
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getOrganname())){
+            wrappers.like(VServiceDonateorganRegister::getOrganname ,vServiceDonateorganRegister.getOrganname());
+        }
+        if (vServiceDonateorganRegister.getOrganstate() != null){
+            wrappers.eq(VServiceDonateorganRegister::getOrganstate ,vServiceDonateorganRegister.getOrganstate());
+        }
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getOrgannumber())){
+            wrappers.eq(VServiceDonateorganRegister::getOrgannumber ,vServiceDonateorganRegister.getOrgannumber());
+        }
+        if (vServiceDonateorganRegister.getOrgangettime() != null){
+            wrappers.eq(VServiceDonateorganRegister::getOrgangettime ,vServiceDonateorganRegister.getOrgangettime());
+        }
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getGainhospitalname())){
+            wrappers.like(VServiceDonateorganRegister::getGainhospitalname ,vServiceDonateorganRegister.getGainhospitalname());
+        }
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getTransplanthospitalname())){
+            wrappers.like(VServiceDonateorganRegister::getTransplanthospitalname ,vServiceDonateorganRegister.getTransplanthospitalname());
+        }
+        if (vServiceDonateorganRegister.getTransplanttime() != null){
+            wrappers.eq(VServiceDonateorganRegister::getTransplanttime ,vServiceDonateorganRegister.getTransplanttime());
+        }
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getApplicantusername())){
+            wrappers.like(VServiceDonateorganRegister::getApplicantusername ,vServiceDonateorganRegister.getApplicantusername());
+        }
+        if (vServiceDonateorganRegister.getApplicanttime() != null){
+            wrappers.eq(VServiceDonateorganRegister::getApplicanttime ,vServiceDonateorganRegister.getApplicanttime());
+        }
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getCheckusername())){
+            wrappers.like(VServiceDonateorganRegister::getCheckusername ,vServiceDonateorganRegister.getCheckusername());
+        }
+        if (vServiceDonateorganRegister.getChecktime() != null){
+            wrappers.eq(VServiceDonateorganRegister::getChecktime ,vServiceDonateorganRegister.getChecktime());
+        }
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getAcceptname())){
+            wrappers.like(VServiceDonateorganRegister::getAcceptname ,vServiceDonateorganRegister.getAcceptname());
+        }
+        if (StringUtils.isNotBlank(vServiceDonateorganRegister.getAcceptidcard())){
+            wrappers.eq(VServiceDonateorganRegister::getAcceptidcard ,vServiceDonateorganRegister.getAcceptidcard());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/resources/mapper/project/BaseFinancesubjectMapper.xml b/ruoyi-project/src/main/resources/mapper/project/BaseFinancesubjectMapper.xml
new file mode 100644
index 0000000..df5e2ee
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/BaseFinancesubjectMapper.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.BaseFinancesubjectMapper">
+    
+    <resultMap type="BaseFinancesubject" id="BaseFinancesubjectResult">
+        <result property="id"    column="ID"    />
+        <result property="del_flag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="subjecttype"    column="SubjectType"    />
+        <result property="subjecttypename"    column="SubjectTypeName"    />
+        <result property="itemtypename"    column="ItemTypeName"    />
+        <result property="itemtype"    column="ItemType"    />
+        <result property="remark"    column="Remark"    />
+        <result property="itemname"    column="ItemName"    />
+        <result property="itemdescribe"    column="ItemDescribe"    />
+        <result property="itempinyin"    column="ItemPinYin"    />
+        <result property="itemcode"    column="ItemCode"    />
+        <result property="itemunit"    column="ItemUnit"    />
+        <result property="usestate"    column="UseState"    />
+        <result property="orderno"    column="OrderNo"    />
+    </resultMap>
+
+    <sql id="selectBaseFinancesubjectVo">
+        select ID, del_flag, create_by, create_time, update_by, update_time, SubjectType, ItemType, ItemTypeName, Remark, ItemName, ItemDescribe, ItemUnit, UseState, SubjectTypeName, ItemPinYin, ItemCode, OrderNo from base_financesubject
+    </sql>
+
+    <select id="selectBaseFinancesubjectList" parameterType="BaseFinancesubject" resultMap="BaseFinancesubjectResult">
+        <include refid="selectBaseFinancesubjectVo"/>
+        <where>
+            <if test="itemtype != null  and itemtype != ''"> and ItemType = #{itemtype}</if>
+            <if test="itemname != null  and itemname != ''"> and ItemName like concat('%', #{itemname}, '%')</if>
+            <if test="usestate != null  and usestate != ''"> and UseState = #{usestate}</if>
+        </where>
+        order by OrderNo
+    </select>
+    <select id="getItemName" resultType="com.ruoyi.project.domain.vo.FinanceSubjectVO">
+        select ItemName as itemname, ID as id, ItemPinYin as itempinyin, ItemDescribe as itemdescribe, ItemCode as itemcode from base_financesubject
+        where ItemType = #{itemType} AND del_flag=0
+        order by ID
+    </select>
+
+    <select id="getDonationCost" statementType="CALLABLE" resultType="com.ruoyi.project.domain.vo.SpServiceDonationcost">
+        call SP_SERVICE_DONATIONCOST(#{DonorNo,mode=IN,jdbcType=VARCHAR})
+    </select>
+
+    <select id="getItemType" resultType="com.ruoyi.project.domain.vo.FinanceSubjectItemType">
+        select DISTINCT ItemType, ItemTypeName from base_financesubject
+        where ExpenseType = #{expensetype} AND del_flag=0
+        order by ItemType
+    </select>
+
+    <select id="getAllInfoByExpenseType" resultType="com.ruoyi.project.domain.BaseFinancesubject">
+        <include refid="selectBaseFinancesubjectVo"/>
+        where ExpenseType = #{expenseType} AND del_flag = 0
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/BaseItemexpenseMapper.xml b/ruoyi-project/src/main/resources/mapper/project/BaseItemexpenseMapper.xml
new file mode 100644
index 0000000..284c695
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/BaseItemexpenseMapper.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.BaseItemexpenseMapper">
+    
+    <resultMap type="BaseItemexpense" id="BaseItemexpenseResult">
+        <result property="id"    column="Id"    />
+        <result property="itemid"    column="ItemId"    />
+        <result property="expense"    column="Expense"    />
+        <result property="expensedescribe"    column="ExpenseDescribe"    />
+        <result property="usestate"    column="UseState"    />
+        <result property="remark"    column="remark"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectBaseItemexpenseVo">
+        select Id, ItemId, Expense, ExpenseDescribe, UseState, remark, del_flag, create_by, create_time, update_by, update_time from base_itemexpense
+    </sql>
+
+    <select id="selectBaseItemexpenseList" parameterType="BaseItemexpense" resultMap="BaseItemexpenseResult">
+        <include refid="selectBaseItemexpenseVo"/>
+        <where>
+            <if test="expense != null "> and Expense = #{expense}</if>
+            <if test="expensedescribe != null  and expensedescribe != ''"> and ExpenseDescribe = #{expensedescribe}</if>
+            <if test="usestate != null  and usestate != ''"> and UseState = #{usestate}</if>
+        </where>
+    </select>
+    <select id="getDetailsByItemId" resultType="com.ruoyi.project.domain.BaseItemexpense">
+        <include refid="selectBaseItemexpenseVo"/>
+        where ItemId = #{itemid}
+        order by Id
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/BaseOrganizationMapper.xml b/ruoyi-project/src/main/resources/mapper/project/BaseOrganizationMapper.xml
new file mode 100644
index 0000000..806da8b
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/BaseOrganizationMapper.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.BaseOrganizationMapper">
+    
+    <resultMap type="BaseOrganization" id="BaseOrganizationResult">
+        <result property="id"    column="ID"    />
+        <result property="organizationname"    column="OrganizationName"    />
+        <result property="organizationid"    column="OrganizationID"    />
+        <result property="logourl"    column="LogoUrl"    />
+        <result property="registertime"    column="RegisterTime"    />
+        <result property="registeraddress"    column="RegisterAddress"    />
+        <result property="officeplace"    column="OfficePlace"    />
+        <result property="legalperson"    column="LegalPerson"    />
+        <result property="contactperson"    column="ContactPerson"    />
+        <result property="contactnumber"    column="ContactNumber"    />
+        <result property="introduction"    column="Introduction"    />
+        <result property="organizationtype"    column="OrganizationType"    />
+        <result property="hospitalnature"    column="HospitalNature"    />
+        <result property="regionallevel"    column="RegionalLevel"    />
+        <result property="medicalcode"    column="MedicalCode"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="province"    column="Province"    />
+        <result property="provincename"    column="ProvinceName"    />
+        <result property="city"    column="City"    />
+        <result property="cityname"    column="CityName"    />
+        <result property="town"    column="Town"    />
+        <result property="townname"    column="TownName"    />
+        <result property="community"    column="Community"    />
+        <result property="communityname"    column="CommunityName"    />
+        <result property="countycode"    column="CountyCode"    />
+        <result property="countyname"    column="CountyName"    />
+    </resultMap>
+
+    <sql id="selectBaseOrganizationVo">
+        select ID, OrganizationName, OrganizationID, LogoUrl, RegisterTime, RegisterAddress, OfficePlace, LegalPerson, ContactPerson, ContactNumber, Introduction, OrganizationType, HospitalNature, RegionalLevel, MedicalCode, del_flag, create_by, create_time, update_by, update_time, Province, ProvinceName, City, CityName, Town, TownName, Community, CommunityName, CountyCode, CountyName from base_organization
+    </sql>
+
+    <select id="selectBaseOrganizationList" parameterType="BaseOrganization" resultMap="BaseOrganizationResult">
+        <include refid="selectBaseOrganizationVo"/>
+        <where>
+            <if test="organizationname != null  and organizationname != ''"> and OrganizationName like concat('%', #{organizationname}, '%')</if>
+            <if test="organizationid != null  and organizationid != ''"> and OrganizationID = #{organizationid}</if>
+            <if test="logourl != null  and logourl != ''"> and LogoUrl = #{logourl}</if>
+            <if test="registertime != null "> and RegisterTime = #{registertime}</if>
+            <if test="registeraddress != null  and registeraddress != ''"> and RegisterAddress = #{registeraddress}</if>
+            <if test="officeplace != null  and officeplace != ''"> and OfficePlace = #{officeplace}</if>
+            <if test="legalperson != null  and legalperson != ''"> and LegalPerson = #{legalperson}</if>
+            <if test="contactperson != null  and contactperson != ''"> and ContactPerson = #{contactperson}</if>
+            <if test="contactnumber != null  and contactnumber != ''"> and ContactNumber = #{contactnumber}</if>
+            <if test="introduction != null  and introduction != ''"> and Introduction = #{introduction}</if>
+            <if test="organizationtype != null  and organizationtype != ''"> and OrganizationType = #{organizationtype}</if>
+            <if test="hospitalnature != null  and hospitalnature != ''"> and HospitalNature = #{hospitalnature}</if>
+            <if test="regionallevel != null  and regionallevel != ''"> and RegionalLevel = #{regionallevel}</if>
+            <if test="medicalcode != null  and medicalcode != ''"> and MedicalCode = #{medicalcode}</if>
+            <if test="province != null  and province != ''"> and Province = #{province}</if>
+            <if test="provincename != null  and provincename != ''"> and ProvinceName like concat('%', #{provincename}, '%')</if>
+            <if test="city != null  and city != ''"> and City = #{city}</if>
+            <if test="cityname != null  and cityname != ''"> and CityName like concat('%', #{cityname}, '%')</if>
+            <if test="town != null  and town != ''"> and Town = #{town}</if>
+            <if test="townname != null  and townname != ''"> and TownName like concat('%', #{townname}, '%')</if>
+            <if test="community != null  and community != ''"> and Community = #{community}</if>
+            <if test="communityname != null  and communityname != ''"> and CommunityName like concat('%', #{communityname}, '%')</if>
+            <if test="countycode != null  and countycode != ''"> and CountyCode = #{countycode}</if>
+            <if test="countyname != null  and countyname != ''"> and CountyName like concat('%', #{countyname}, '%')</if>
+        </where>
+    </select>
+
+    <select id="getOrganizationByNumber" resultType="com.ruoyi.project.domain.BaseOrganization">
+        <include refid="selectBaseOrganizationVo"/>
+        where OrganizationID = #{hospitalNo}
+    </select>
+    <select id="getOrganizationByCity" resultType="java.lang.Integer">
+        select count(*) from base_organization
+        where City = #{cityNumber}
+    </select>
+
+    <select id="getHospitalList" resultType="com.ruoyi.project.domain.BaseOrganization">
+        <include refid="selectBaseOrganizationVo"/>
+        where OrganizationType = "3" ORDER BY City,OrganizationID
+    </select>
+    <select id="getBaseOrganizationList" resultType="com.ruoyi.project.domain.BaseOrganization">
+        <include refid="selectBaseOrganizationVo"/>
+    </select>
+    <select id="getTransOrg" resultType="com.ruoyi.project.domain.BaseOrganization">
+        <include refid="selectBaseOrganizationVo"/>
+        where OrganizationType = "4"
+    </select>
+    <select id="getNameByNo" resultType="java.lang.String">
+        select OrganizationName from base_organization
+        where OrganizationID =#{orgno}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/BasePrcaddressDictMapper.xml b/ruoyi-project/src/main/resources/mapper/project/BasePrcaddressDictMapper.xml
new file mode 100644
index 0000000..56001e5
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/BasePrcaddressDictMapper.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.BasePrcaddressDictMapper">
+    
+    <resultMap type="BasePrcaddressDict" id="BasePrcaddressDictResult">
+        <result property="id"    column="ID"    />
+        <result property="areanumber"    column="AREANUMBER"    />
+        <result property="areaname"    column="AREANAME"    />
+        <result property="superiorareanumber"    column="SUPERIORAREANUMBER"    />
+        <result property="arealv"    column="AREALV"    />
+        <result property="pym"    column="PYM"    />
+        <result property="wbm"    column="WBM"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="reimbursementamount"    column="REIMBURSEMENTAMOUNT"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectBasePrcaddressDictVo">
+        select ID, AREANUMBER, AREANAME, SUPERIORAREANUMBER, AREALV, PYM, WBM, del_flag, REIMBURSEMENTAMOUNT, create_by, create_time, update_by, update_time
+        from base_prcaddress_dict
+    </sql>
+
+    <select id="selectBasePrcaddressDictList" parameterType="BasePrcaddressDict" resultMap="BasePrcaddressDictResult">
+        <include refid="selectBasePrcaddressDictVo"/>
+        where del_flag = '0'
+
+        <if test="areanumber != null  and areanumber != ''"> and AREANUMBER = #{areanumber}</if>
+        <if test="areaname != null  and areaname != ''"> and AREANAME like concat('%', #{areaname}, '%')</if>
+        <if test="superiorareanumber != null  and superiorareanumber != ''"> and SUPERIORAREANUMBER = #{superiorareanumber}</if>
+        <if test="arealv != null "> and AREALV = #{arealv}</if>
+        <if test="pym != null  and pym != ''"> and PYM = #{pym}</if>
+        <if test="wbm != null  and wbm != ''"> and WBM = #{wbm}</if>
+        order by ID
+
+    </select>
+    <select id="getAllCityOfZJ" resultType="com.ruoyi.common.core.domain.entity.BasePrcaddressDict">
+        <include refid="selectBasePrcaddressDictVo"/>
+        where SUPERIORAREANUMBER = "33"
+
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDistributedetailMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDistributedetailMapper.xml
new file mode 100644
index 0000000..778a2c2
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDistributedetailMapper.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDistributedetailMapper">
+    
+    <resultMap type="ServiceDistributedetail" id="ServiceDistributedetailResult">
+        <result property="id"    column="ID"    />
+        <result property="dsid"    column="DSID"    />
+        <result property="beneficiaryname"    column="BeneficiaryName"    />
+        <result property="beneficiaryno"    column="BeneficiaryNo"    />
+        <result property="unitname"    column="UnitName"    />
+        <result property="unitno"    column="UnitNo"    />
+        <result property="unituserno"    column="UnitUserNo"    />
+        <result property="title"    column="Title"    />
+        <result property="idcardtype"    column="IDCardType"    />
+        <result property="idcardno"    column="IDCardNo"    />
+        <result property="sex"    column="Sex"    />
+        <result property="familyrelations"    column="FamilyRelations"    />
+        <result property="phone"    column="Phone"    />
+        <result property="depositbank"    column="DepositBank"    />
+        <result property="bankcardno"    column="BankCardNo"    />
+        <result property="branchbankname"    column="BranchBankName"    />
+        <result property="annexbankcard"    column="AnnexBankCard"    />
+        <result property="annexregistform"    column="AnnexRegistForm"    />
+        <result property="applytype"    column="ApplyType"    />
+        <result property="itemid"    column="ItemID"    />
+        <result property="itemname"    column="ItemName"    />
+        <result property="itemtype"    column="ItemType"    />
+        <result property="quantity"    column="Quantity"    />
+        <result property="price"    column="Price"    />
+        <result property="amount"    column="Amount"    />
+        <result property="taxamount"    column="TaxAmount"    />
+        <result property="taxedamount"    column="TaxedAmount"    />
+        <result property="prepaidamount"    column="PrepaidAmount"    />
+        <result property="remark"    column="Remark"    />
+        <result property="recordstatus"    column="RecordStatus"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="uploadflag"    column="uploadflag"    />
+        <result property="uploadtime"    column="uploadtime"    />
+    </resultMap>
+
+    <sql id="selectServiceDistributedetailVo">
+        select ID, DSID, BeneficiaryName, BeneficiaryNo, UnitName, UnitNo, UnitUserNo, Title, IDCardType, IDCardNo, Sex, FamilyRelations, Phone, DepositBank, BankCardNo, BranchBankName, AnnexBankCard, AnnexRegistForm, ApplyType, ItemID, ItemName, ItemType, Quantity, Price, Amount, TaxAmount, TaxedAmount, PrepaidAmount, Remark, RecordStatus, del_flag, create_by, create_time, update_by, update_time, uploadflag, uploadtime from service_distributedetail
+    </sql>
+
+    <select id="selectServiceDistributedetailList" parameterType="ServiceDistributedetail" resultMap="ServiceDistributedetailResult">
+        <include refid="selectServiceDistributedetailVo"/>
+        <where>
+            <if test="beneficiaryname != null  and beneficiaryname != ''"> and BeneficiaryName like concat('%', #{beneficiaryname}, '%')</if>
+            <if test="beneficiaryno != null  and beneficiaryno != ''"> and BeneficiaryNo = #{beneficiaryno}</if>
+            <if test="unitname != null  and unitname != ''"> and UnitName like concat('%', #{unitname}, '%')</if>
+            <if test="unitno != null  and unitno != ''"> and UnitNo = #{unitno}</if>
+            <if test="unituserno != null  and unituserno != ''"> and UnitUserNo = #{unituserno}</if>
+            <if test="applytype != null  and applytype != ''"> and ApplyType = #{applytype}</if>
+            <if test="itemid != null "> and ItemID = #{itemid}</if>
+            <if test="itemname != null  and itemname != ''"> and ItemName like concat('%', #{itemname}, '%')</if>
+            <if test="itemtype != null  and itemtype != ''"> and ItemType = #{itemtype}</if>
+            <if test="recordstatus != null  and recordstatus != ''"> and RecordStatus = #{recordstatus}</if>
+            <if test="delFlag != null "> and del_flag = #{delFlag}</if>
+            <if test="createTime != null "> and create_time = #{createTime}</if>
+            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDistributesummaryMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDistributesummaryMapper.xml
new file mode 100644
index 0000000..404cb84
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDistributesummaryMapper.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDistributesummaryMapper">
+    
+    <resultMap type="ServiceDistributesummary" id="ServiceDistributesummaryResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="donorname"    column="DonorName"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="userno"    column="UserNo"    />
+        <result property="username"    column="UserName"    />
+        <result property="unitname"    column="UnitName"    />
+        <result property="unitno"    column="UnitNo"    />
+        <result property="unituserno"    column="UnitUserNo"    />
+        <result property="casecount"    column="CaseCount"    />
+        <result property="casedescribe"    column="CaseDescribe"    />
+        <result property="totalamount"    column="TotalAmount"    />
+        <result property="applytype"    column="ApplyType"    />
+        <result property="managerno"    column="ManagerNo"    />
+        <result property="managername"    column="ManagerName"    />
+        <result property="departmentno"    column="DepartmentNo"    />
+        <result property="departmentname"    column="DepartmentName"    />
+        <result property="operator"    column="Operator"    />
+        <result property="checher"    column="Checher"    />
+        <result property="financedirector"    column="FinanceDirector"    />
+        <result property="opodirector"    column="OPODirector"    />
+        <result property="remark"    column="Remark"    />
+        <result property="recordstatus"    column="RecordStatus"    />
+        <result property="uploadflag"    column="uploadflag"    />
+        <result property="uploadtime"    column="uploadtime"    />
+    </resultMap>
+
+    <sql id="selectServiceDistributesummaryVo">
+        select ID, InfoID, DonorNo, DonorName, del_flag, create_by, create_time, update_by, update_time, UserNo, UserName, UnitName, UnitNo, UnitUserNo, CaseCount, CaseDescribe, TotalAmount, ApplyType, ManagerNo, ManagerName, DepartmentNo, DepartmentName, Operator, Checher, FinanceDirector, OPODirector, Remark, RecordStatus, uploadflag, uploadtime from service_distributesummary
+    </sql>
+
+    <select id="selectServiceDistributesummaryList" parameterType="ServiceDistributesummary" resultMap="ServiceDistributesummaryResult">
+        <include refid="selectServiceDistributesummaryVo"/>
+        <where>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="donorname != null  and donorname != ''"> and DonorName like concat('%', #{donorname}, '%')</if>
+            <if test="userno != null  and userno != ''"> and UserNo = #{userno}</if>
+            <if test="username != null  and username != ''"> and UserName like concat('%', #{username}, '%')</if>
+            <if test="unitname != null  and unitname != ''"> and UnitName like concat('%', #{unitname}, '%')</if>
+            <if test="unitno != null  and unitno != ''"> and UnitNo = #{unitno}</if>
+            <if test="departmentno != null  and departmentno != ''"> and DepartmentNo = #{departmentno}</if>
+            <if test="departmentname != null  and departmentname != ''"> and DepartmentName like concat('%', #{departmentname}, '%')</if>
+            <if test="recordstatus != null  and recordstatus != ''"> and RecordStatus = #{recordstatus}</if>
+            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
+        </where>
+    </select>
+    <select id="getSummaryByInfoId" resultType="com.ruoyi.project.domain.ServiceDistributesummary">
+        <include refid="selectServiceDistributesummaryVo"/>
+        where InfoID = #{infoid}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDocumentfilesMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDocumentfilesMapper.xml
new file mode 100644
index 0000000..af2abe4
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDocumentfilesMapper.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDocumentfilesMapper">
+    
+    <resultMap type="ServiceDocumentfiles" id="ServiceDocumentfilesResult">
+        <result property="id"    column="id"    />
+        <result property="doctype"    column="doctype"    />
+        <result property="filename"    column="filename"    />
+        <result property="filetype"    column="filetype"    />
+        <result property="fileurl"    column="fileurl"    />
+        <result property="status"    column="status"    />
+        <result property="remark"    column="remark"    />
+        <result property="del_flag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="provinceno"    column="provinceno"    />
+        <result property="provincename"    column="provincename"    />
+        <result property="cityno"    column="cityno"    />
+        <result property="cityname"    column="cityname"    />
+        <result property="townno"    column="townno"    />
+        <result property="townname"    column="townname"    />
+        <result property="source"    column="source"    />
+        <result property="uploadtime"    column="uploadtime"    />
+    </resultMap>
+
+    <sql id="selectServiceDocumentfilesVo">
+        select id, doctype, filename, filetype, fileurl, status, provinceno, provincename, cityno, cityname, townno, townname, source, uploadtime, remark, del_flag, create_by, create_time, update_by, update_time from service_documentfiles
+    </sql>
+
+    <select id="selectServiceDocumentfilesList" parameterType="ServiceDocumentfiles" resultMap="ServiceDocumentfilesResult">
+        <include refid="selectServiceDocumentfilesVo"/>
+        <where>
+            del_flag = 0
+            <if test="doctype != null  and doctype != ''"> and doctype = #{doctype}</if>
+            <if test="filename != null  and filename != ''"> and filename like concat('%', #{filename}, '%')</if>
+            <if test="filetype != null  and filetype != ''"> and filetype = #{filetype}</if>
+            <if test="fileurl != null  and fileurl != ''"> and fileurl = #{fileurl}</if>
+            <if test="provinceno != null  and provinceno != ''"> and provinceno = #{provinceno}</if>
+            <if test="provincename != null  and provincename != ''"> and provincename = #{provincename}</if>
+            <if test="cityno != null  and cityno != ''"> and cityno = #{cityno}</if>
+            <if test="cityname != null  and cityname != ''"> and cityname = #{cityname}</if>
+            <if test="townno != null  and townno != ''"> and townno = #{townno}</if>
+            <if test="townname != null  and townname != ''"> and townname = #{townname}</if>
+            <if test="source != null  and source != ''"> and source = #{source}</if>
+
+        </where>
+        order by doctype, create_time desc
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateannexMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateannexMapper.xml
new file mode 100644
index 0000000..8ce184f
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateannexMapper.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDonateannexMapper">
+    
+    <resultMap type="ServiceDonateannex" id="ServiceDonateannexResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="annexname"    column="AnnexName"    />
+        <result property="annexno"    column="AnnexNo"    />
+        <result property="annexurl"    column="AnnexUrl"    />
+    </resultMap>
+
+    <sql id="selectServiceDonateannexVo">
+        select ID, InfoID, DonorNo, del_flag, create_by, create_time, update_by, update_time, AnnexName, AnnexNo, AnnexUrl from service_donateannex
+    </sql>
+
+    <select id="selectServiceDonateannexList" parameterType="ServiceDonateannex" resultMap="ServiceDonateannexResult">
+        <include refid="selectServiceDonateannexVo"/>
+        <where>
+            <if test="infoid != null "> and InfoID = #{infoid}</if>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="annexname != null  and annexname != ''"> and AnnexName like concat('%', #{annexname}, '%')</if>
+            <if test="annexno != null  and annexno != ''"> and AnnexNo = #{annexno}</if>
+            <if test="annexurl != null  and annexurl != ''"> and AnnexUrl = #{annexurl}</if>
+        </where>
+    </select>
+    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.DonateAnnexVO">
+    SELECT
+        `service_donatebaseinfo`.`ID` AS `ID`,
+        `service_donatebaseinfo`.`DonorNo` AS `DonorNo`,
+        `service_donatebaseinfo`.`RecordState` AS `RecordState`,
+        `service_donatebaseinfo`.`Name` AS `Name`,
+        `service_donatebaseinfo`.`Sex` AS `Sex`,
+        `service_donatebaseinfo`.`IDCardType` AS `IDCardType`,
+        `service_donatebaseinfo`.`IDCardNo` AS `IDCardNo`,
+        `service_donatebaseinfo`.`Age` AS `Age`,
+        `service_donatebaseinfo`.`AgeUnit` AS `AgeUnit`,
+        `service_donatebaseinfo`.`Birthday` AS `Birthday`,
+        `service_donatebaseinfo`.`Phone` AS `Phone`,
+        `service_donatebaseinfo`.`TreatmentHospitalNo` AS `TreatmentHospitalNo`,
+        `service_donatebaseinfo`.`TreatmentHospitalName` AS `TreatmentHospitalName`,
+        `service_donatebaseinfo`.`TreatmentDeptName` AS `TreatmentDeptName`,
+        `service_donatebaseinfo`.`ReporterNo` AS `ReporterNo`,
+        `service_donatebaseinfo`.`ReporterName` AS `ReporterName`,
+        `service_donatebaseinfo`.`ReporterPhone` AS `ReporterPhone`,
+        `service_donatebaseinfo`.`ReportTime` AS `ReportTime`,
+        `service_donateannex`.`ID` AS `daID`,
+        `service_donateannex`.`InfoID` AS `InfoID`,
+        `service_donateannex`.`DonorNo` AS `daDonorNo`,
+        `service_donateannex`.`AnnexName` AS `AnnexName`,
+        `service_donateannex`.`AnnexNo` AS `AnnexNo`,
+        `service_donateannex`.`AnnexUrl` AS `AnnexUrl` ,
+        `service_donateannex`.`del_flag` AS `del_flag`,
+        `service_donateannex`.`create_by` AS `create_by`,
+        `service_donateannex`.`create_time` AS `create_time`,
+        `service_donateannex`.`update_by` AS `update_by`,
+        `service_donateannex`.`update_time` AS `update_time`
+    FROM
+        (
+            `service_donatebaseinfo`
+            JOIN `service_donateannex` ON ((
+                `service_donatebaseinfo`.`ID` = `service_donateannex`.`InfoID`
+        )))
+
+
+        <where>
+            <if test="donorno != null  and donorno != ''"> and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
+            <if test="name != null  and name != ''"> and `service_donatebaseinfo`.`Name` = #{name}</if>
+            <if test="idcardno != null  and idcardno != ''"> and `service_donatebaseinfo`.`IDCardNo` = #{idcardno}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}</if>
+            <if test="recordstate != null  and recordstate != ''"> and `service_donatebaseinfo`.`RecordState` = #{recordstate}</if>
+            <if test="create_by != null  and create_by != ''"> and `service_donateannex`.`create_by` = #{create_by}</if>
+        </where>
+
+        order by `service_donateannex`.`create_time` desc
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateannexrequirementMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateannexrequirementMapper.xml
new file mode 100644
index 0000000..c3ee25e
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateannexrequirementMapper.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDonateannexrequirementMapper">
+    
+    <resultMap type="ServiceDonateannexrequirement" id="ServiceDonateannexrequirementResult">
+        <result property="id"    column="ID"    />
+        <result property="annexname"    column="AnnexName"    />
+        <result property="annexno"    column="AnnexNo"    />
+        <result property="expirestime"    column="ExpiresTime"    />
+        <result property="isrequired"    column="IsRequired"    />
+        <result property="flowname"    column="FlowName"    />
+        <result property="donationcategory"    column="DonationCategory"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectServiceDonateannexrequirementVo">
+        select ID, AnnexName, AnnexNo, ExpiresTime, IsRequired, FlowName, DonationCategory, del_flag, create_by, create_time, update_by, update_time from service_donateannexrequirement
+    </sql>
+
+    <select id="selectServiceDonateannexrequirementList" parameterType="ServiceDonateannexrequirement" resultMap="ServiceDonateannexrequirementResult">
+        <include refid="selectServiceDonateannexrequirementVo"/>
+        <where>
+            <if test="annexname != null  and annexname != ''"> and AnnexName like concat('%', #{annexname}, '%')</if>
+            <if test="annexno != null  and annexno != ''"> and AnnexNo = #{annexno}</if>
+            <if test="expirestime != null "> and ExpiresTime = #{expirestime}</if>
+            <if test="isrequired != null "> and IsRequired = #{isrequired}</if>
+            <if test="flowname != null  and flowname != ''"> and FlowName like concat('%', #{flowname}, '%')</if>
+            <if test="donationcategory != null  and donationcategory != ''"> and DonationCategory = #{donationcategory}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml
new file mode 100644
index 0000000..b5de3ab
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml
@@ -0,0 +1,333 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper">
+    
+    <resultMap type="ServiceDonatebaseinfo" id="ServiceDonatebaseinfoResult">
+        <result property="id"    column="ID"    />
+        <result property="name"    column="Name"    />
+        <result property="sex"    column="Sex"    />
+        <result property="idcardtype"    column="IDCardType"    />
+        <result property="idcardno"    column="IDCardNo"    />
+        <result property="age"    column="Age"    />
+        <result property="ageunit"    column="AgeUnit"    />
+        <result property="birthday"    column="Birthday"    />
+        <result property="phone"    column="Phone"    />
+        <result property="residenceaddress"    column="ResidenceAddress"    />
+        <result property="residenceprovince"    column="ResidenceProvince"    />
+        <result property="residenceprovincename"    column="ResidenceProvinceName"    />
+        <result property="residencecity"    column="ResidenceCity"    />
+        <result property="residencecityname"    column="ResidenceCityName"    />
+        <result property="residencetown"    column="ResidenceTown"    />
+        <result property="residencetownname"    column="ResidenceTownName"    />
+        <result property="residencecommunity"    column="ResidenceCommunity"    />
+        <result property="residencecommunityname"    column="ResidenceCommunityName"    />
+        <result property="residencecountycode"    column="ResidenceCountyCode"    />
+        <result property="residencecountyname"    column="ResidenceCountyName"    />
+        <result property="registeraddress"    column="RegisterAddress"    />
+        <result property="registerprovince"    column="RegisterProvince"    />
+        <result property="registerprovincename"    column="RegisterProvinceName"    />
+        <result property="registercity"    column="RegisterCity"    />
+        <result property="registercityname"    column="RegisterCityName"    />
+        <result property="registertown"    column="RegisterTown"    />
+        <result property="registertownname"    column="RegisterTownName"    />
+        <result property="registercommunity"    column="RegisterCommunity"    />
+        <result property="registercommunityname"    column="RegisterCommunityName"    />
+        <result property="registercountycode"    column="RegisterCountyCode"    />
+        <result property="registercountyname"    column="RegisterCountyName"    />
+        <result property="recordstate"    column="RecordState"    />
+        <result property="treatmenthospitalno"    column="TreatmentHospitalNo"    />
+        <result property="treatmenthospitalname"    column="TreatmentHospitalName"    />
+<!--        <result property="treatmentdeptno"    column="TreatmentDeptNo"    />-->
+        <result property="treatmentdeptname"    column="TreatmentDeptName"    />
+        <result property="diagnosisno"    column="DiagnosisNo"    />
+        <result property="diagnosisname"    column="DiagnosisName"    />
+        <result property="bloodtype"    column="BloodType"    />
+        <result property="inpatientno"    column="InpatientNo"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="donationcategory"    column="DonationCategory"    />
+        <result property="illnessoverview"    column="IllnessOverview"    />
+<!--        <result property="malignanttumor"    column="MalignantTumor"    />-->
+<!--        <result property="deepcoma"    column="DeepComa"    />-->
+<!--        <result property="spontaneousbreathing"    column="SpontaneousBreathing"    />-->
+<!--        <result property="istrafficaccident"    column="IsTrafficAccident"    />-->
+<!--        <result property="iscriminalcase"    column="IsCriminalCase"    />-->
+        <result property="kinship"    column="Kinship"    />
+        <result property="selfwill"    column="SelfWill"    />
+        <result property="kinshipwill"    column="KinshipWill"    />
+        <result property="infosources"    column="InfoSources"    />
+        <result property="redorganno"    column="RedOrganNo"    />
+        <result property="redorganname"    column="RedOrganName"    />
+        <result property="contactperson"    column="ContactPerson"    />
+        <result property="contactnumber"    column="ContactNumber"    />
+        <result property="contacttime"    column="ContactTime"    />
+        <result property="reporterno"    column="ReporterNo"    />
+        <result property="reportername"    column="ReporterName"    />
+        <result property="reporterphone"    column="ReporterPhone"    />
+        <result property="reporttime"    column="ReportTime"    />
+        <result property="del_flag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="nation"    column="Nation"    />
+        <result property="occupation"    column="Occupation"    />
+        <result property="education"    column="Education"    />
+        <result property="nativeplace"    column="NativePlace"    />
+<!--        <result property="annexillnessprofile"    column="AnnexIllnessProfile"    />-->
+<!--        <result property="annexdiseaseassessment"    column="AnnexDiseaseAssessment"    />-->
+<!--        <result property="annexevaluationopinion"    column="AnnexEvaluationOpinion"    />-->
+<!--        <result property="annexbraindeathjudgment"    column="AnnexBrainDeathJudgment"    />-->
+<!--        <result property="annexeegreport"    column="AnnexEEGReport"    />-->
+<!--        <result property="annexshortlatencyreport"    column="AnnexShortLatencyReport"    />-->
+<!--        <result property="annexdopplerreportus"    column="AnnexDopplerReportUS"    />-->
+<!--        <result property="annexdeathriskassessment"    column="AnnexDeathRiskAssessment"    />-->
+        <result property="infoname"    column="infoName"    />
+        <result property="infophone"    column="infoPhone"    />
+        <result property="deptid"    column="deptid"    />
+        <result property="deptname"    column="deptname"    />
+        <result property="leaderno"    column="leaderno"    />
+        <result property="leadername"    column="leadername"    />
+        <result property="businessarea"    column="businessarea"    />
+
+    </resultMap>
+
+    <sql id="selectServiceDonatebaseinfoVo">
+   select service_donatebaseinfo.* from service_donatebaseinfo         LEFT JOIN `base_organization` ON `base_organization`.`OrganizationID` = `service_donatebaseinfo`.`TreatmentHospitalNo`
+    </sql>
+    <update id="updateDonateNumber">
+        update service_donatebaseinfo
+        set DonorNo = #{updateNumber}
+        where ID = #{id}
+    </update>
+
+    <select id="selectServiceDonatebaseinfoList" parameterType="ServiceDonatebaseinfo" resultMap="ServiceDonatebaseinfoResult">
+        <include refid="selectServiceDonatebaseinfoVo"/>
+        <where>
+            service_donatebaseinfo.del_flag = 0
+            <if test="name != null  and name != ''"> and Name like concat('%', #{name}, '%')</if>
+            <if test="sex != null "> and Sex = #{sex}</if>
+            <if test="idcardtype != null "> and IDCardType = #{idcardtype}</if>
+            <if test="idcardno != null  and idcardno != ''"> and IDCardNo = #{idcardno}</if>
+            <if test="age != null "> and Age = #{age}</if>
+            <if test="ageunit != null  and ageunit != ''"> and AgeUnit = #{ageunit}</if>
+            <if test="birthday != null  and birthday != ''"> and Birthday = #{birthday}</if>
+            <if test="phone != null  and phone != ''"> and Phone = #{phone}</if>
+            <if test="residenceaddress != null  and residenceaddress != ''"> and ResidenceAddress = #{residenceaddress}</if>
+            <if test="residenceprovince != null  and residenceprovince != ''"> and ResidenceProvince = #{residenceprovince}</if>
+            <if test="residenceprovincename != null  and residenceprovincename != ''"> and ResidenceProvinceName like concat('%', #{residenceprovincename}, '%')</if>
+            <if test="residencecity != null  and residencecity != ''"> and ResidenceCity = #{residencecity}</if>
+            <if test="residencecityname != null  and residencecityname != ''"> and ResidenceCityName like concat('%', #{residencecityname}, '%')</if>
+            <if test="residencetown != null  and residencetown != ''"> and ResidenceTown = #{residencetown}</if>
+            <if test="residencetownname != null  and residencetownname != ''"> and ResidenceTownName like concat('%', #{residencetownname}, '%')</if>
+            <if test="residencecommunity != null  and residencecommunity != ''"> and ResidenceCommunity = #{residencecommunity}</if>
+            <if test="residencecommunityname != null  and residencecommunityname != ''"> and ResidenceCommunityName like concat('%', #{residencecommunityname}, '%')</if>
+            <if test="residencecountycode != null  and residencecountycode != ''"> and ResidenceCountyCode = #{residencecountycode}</if>
+            <if test="residencecountyname != null  and residencecountyname != ''"> and ResidenceCountyName like concat('%', #{residencecountyname}, '%')</if>
+            <if test="registeraddress != null  and registeraddress != ''"> and RegisterAddress = #{registeraddress}</if>
+            <if test="registerprovince != null  and registerprovince != ''"> and RegisterProvince = #{registerprovince}</if>
+            <if test="registerprovincename != null  and registerprovincename != ''"> and RegisterProvinceName like concat('%', #{registerprovincename}, '%')</if>
+            <if test="registercity != null  and registercity != ''"> and RegisterCity = #{registercity}</if>
+            <if test="registercityname != null  and registercityname != ''"> and RegisterCityName like concat('%', #{registercityname}, '%')</if>
+            <if test="registertown != null  and registertown != ''"> and RegisterTown = #{registertown}</if>
+            <if test="registertownname != null  and registertownname != ''"> and RegisterTownName like concat('%', #{registertownname}, '%')</if>
+            <if test="registercommunity != null  and registercommunity != ''"> and RegisterCommunity = #{registercommunity}</if>
+            <if test="registercommunityname != null  and registercommunityname != ''"> and RegisterCommunityName like concat('%', #{registercommunityname}, '%')</if>
+            <if test="registercountycode != null  and registercountycode != ''"> and RegisterCountyCode = #{registercountycode}</if>
+            <if test="registercountyname != null  and registercountyname != ''"> and RegisterCountyName like concat('%', #{registercountyname}, '%')</if>
+            <if test="recordstate != null and recordstate != ''"> and RecordState = #{recordstate}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and TreatmentHospitalNo = #{treatmenthospitalno}</if>
+            <if test="treatmenthospitalname != null  and treatmenthospitalname != ''"> and TreatmentHospitalName like concat('%', #{treatmenthospitalname}, '%')</if>
+<!--            <if test="treatmentdeptno != null  and treatmentdeptno != ''"> and TreatmentDeptNo = #{treatmentdeptno}</if>-->
+            <if test="treatmentdeptname != null  and treatmentdeptname != ''"> and TreatmentDeptName like concat('%', #{treatmentdeptname}, '%')</if>
+            <if test="diagnosisno != null  and diagnosisno != ''"> and DiagnosisNo = #{diagnosisno}</if>
+            <if test="diagnosisname != null  and diagnosisname != ''"> and DiagnosisName like concat('%', #{diagnosisname}, '%')</if>
+            <if test="bloodtype != null  and bloodtype != ''"> and BloodType = #{bloodtype}</if>
+            <if test="inpatientno != null  and inpatientno != ''"> and InpatientNo = #{inpatientno}</if>
+            <if test="donorno != null  and donorno != ''"> and DonorNo like concat('%', #{donorno}, '%')</if>
+            <if test="donationcategory != null  and donationcategory != ''"> and DonationCategory = #{donationcategory}</if>
+            <if test="illnessoverview != null  and illnessoverview != ''"> and IllnessOverview = #{illnessoverview}</if>
+<!--            <if test="malignanttumor != null "> and MalignantTumor = #{malignanttumor}</if>-->
+<!--            <if test="deepcoma != null "> and DeepComa = #{deepcoma}</if>-->
+<!--            <if test="spontaneousbreathing != null "> and SpontaneousBreathing = #{spontaneousbreathing}</if>-->
+<!--            <if test="istrafficaccident != null "> and IsTrafficAccident = #{istrafficaccident}</if>-->
+<!--            <if test="iscriminalcase != null "> and IsCriminalCase = #{iscriminalcase}</if>-->
+            <if test="kinship != null  and kinship != ''"> and Kinship = #{kinship}</if>
+            <if test="selfwill != null "> and SelfWill = #{selfwill}</if>
+            <if test="kinshipwill != null "> and KinshipWill = #{kinshipwill}</if>
+            <if test="infosources != null  and infosources != ''"> and InfoSources = #{infosources}</if>
+            <if test="redorganno != null  and redorganno != ''"> and RedOrganNo = #{redorganno}</if>
+            <if test="redorganname != null  and redorganname != ''"> and RedOrganName like concat('%', #{redorganname}, '%')</if>
+            <if test="contactperson != null  and contactperson != ''"> and ContactPerson = #{contactperson}</if>
+            <if test="contactnumber != null  and contactnumber != ''"> and ContactNumber = #{contactnumber}</if>
+            <if test="contacttime != null  and contacttime != ''"> and ContactTime = #{contacttime}</if>
+            <if test="reporterno != null  and reporterno != ''"> and ReporterNo = #{reporterno}</if>
+            <if test="reportername != null  and reportername != ''"> and ReporterName like concat('%', #{reportername}, '%')</if>
+            <if test="reporterphone != null  and reporterphone != ''"> and ReporterPhone = #{reporterphone}</if>
+            <if test="reporttime != null "> and ReportTime = #{reporttime}</if>
+<!--            <if test="annexillnessprofile != null  and annexillnessprofile != ''"> and AnnexIllnessProfile = #{annexillnessprofile}</if>-->
+<!--            <if test="annexdiseaseassessment != null  and annexdiseaseassessment != ''"> and AnnexDiseaseAssessment = #{annexdiseaseassessment}</if>-->
+<!--            <if test="annexevaluationopinion != null  and annexevaluationopinion != ''"> and AnnexEvaluationOpinion = #{annexevaluationopinion}</if>-->
+<!--            <if test="annexbraindeathjudgment != null  and annexbraindeathjudgment != ''"> and AnnexBrainDeathJudgment = #{annexbraindeathjudgment}</if>-->
+<!--            <if test="annexeegreport != null  and annexeegreport != ''"> and AnnexEEGReport = #{annexeegreport}</if>-->
+<!--            <if test="annexshortlatencyreport != null  and annexshortlatencyreport != ''"> and AnnexShortLatencyReport = #{annexshortlatencyreport}</if>-->
+<!--            <if test="annexdopplerreportus != null  and annexdopplerreportus != ''"> and AnnexDopplerReportUS = #{annexdopplerreportus}</if>-->
+<!--            <if test="annexdeathriskassessment != null  and annexdeathriskassessment != ''"> and AnnexDeathRiskAssessment = #{annexdeathriskassessment}</if>-->
+            <if test="infoname != null "> and infoName = #{infoname}</if>
+            <if test="infophone != null "> and infoPhone = #{infophone}</if>
+            <if test="createBy != null "> and `service_donatebaseinfo`.create_by = #{createBy}</if>
+            <if test="starttime != null "> and ReportTime >= #{starttime} </if>
+            <if test="endtime != null ">  and  ReportTime &lt;= #{endtime}</if>
+            <if test="nativeplace != null  and nativeplace != ''"> and NativePlace = #{nativeplace}</if>
+            <if test="city != null and city != ''"> and `base_organization`.`City` = #{city}</if>
+            <if test="deptid != null "> and deptid = #{deptid}</if>
+            <if test="deptname != null "> and deptname = #{deptname}</if>
+            <if test="leaderno != null "> and leaderno = #{leaderno}</if>
+            <if test="leadername != null "> and leadername = #{leadername}</if>
+            <if test="businessarea != null "> and businessarea = #{businessarea}</if>
+        </where>
+
+        order by ReportTime desc
+
+    </select>
+
+    <select id="getDonateNumberById" resultType="java.lang.String">
+        select DonorNo from service_donatebaseinfo
+        where id = #{id}
+    </select>
+
+    <select id="getDonateCount" resultType="java.lang.Integer">
+        select count(*) from service_donatebaseinfo
+        where RecordState = "9"
+
+    </select>
+    <select id="getDonateBaseCountThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donatebaseinfo b
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        <where>
+                                              AND  b.del_flag=0
+        <if test="starttime != null "> and b.ReportTime >= #{starttime} </if>
+        <if test="endtime != null ">  and b.ReportTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+        </where>
+    </select>
+    <select id="countNumber" resultType="java.lang.Integer">
+        select count(*) from service_donatebaseinfo
+        where ReportTime >= #{starttime} and ReportTime &lt;= #{endtime}
+    </select>
+    <select id="getBloodCode" resultType="java.lang.String">
+        select BloodCode from base_bloodtype
+        where BloodType = #{bloodtype}
+    </select>
+    <select id="countTerminatedNumber" resultType="java.lang.Integer">
+        select count(*) from service_donatebaseinfo
+        where RecordState = "99"
+        and ReportTime >= #{starttime} and ReportTime &lt;= #{endtime}
+    </select>
+    <select id="getAllDonateBaseInfo" resultType="com.ruoyi.project.domain.ServiceDonatebaseinfo">
+        <include refid="selectServiceDonatebaseinfoVo"/>
+    </select>
+    <select id="getBaseInfoByHospital" resultType="com.ruoyi.project.domain.ServiceDonatebaseinfo">
+        select ID, ReportTime from service_donatebaseinfo
+        where TreatmentHospitalNo = #{organizationid}
+    </select>
+    <select id="getAllDonateBaseInfoByTime" resultType="com.ruoyi.project.domain.ServiceDonatebaseinfo">
+        select * from service_donatebaseinfo b
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        <where>
+        <if test="starttime != null "> and b.ReportTime >= #{starttime} </if>
+        <if test="endtime != null ">  and b.ReportTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+        </where>
+    </select>
+    <select id="listForSearch" resultType="com.ruoyi.project.domain.ServiceDonatebaseinfo">
+        <include refid="selectServiceDonatebaseinfoVo"/>
+        <where>
+            <if test="name != null and name != ''"> Name like concat('%', #{name}, '%')
+            or idcardno like concat('%', #{name}, '%')
+            or treatmenthospitalname like concat('%', #{name}, '%')
+           or residenceprovincename like concat('%', #{name}, '%')
+             or residencecityname like concat('%', #{name}, '%')
+           or residencetownname like concat('%', #{name}, '%')
+             or bloodtype like concat('%', #{name}, '%')
+            or nativeplace like concat('%', #{name}, '%')
+            or reportername like concat('%', #{name}, '%')</if>
+
+        </where>
+    </select>
+    <select id="getDonorNameById" resultType="java.lang.String">
+        select name from service_donatebaseinfo
+        where id = #{infoid}
+    </select>
+    <select id="gethqzz" resultType="java.lang.String">
+        select AcquisitionTissueName from service_donatebaseinfo
+        where id = #{infoid}
+    </select>
+    <select id="getById" resultType="com.ruoyi.project.domain.ServiceDonatebaseinfo">
+        select * from service_donatebaseinfo
+        where id = #{infoid}
+    </select>
+    <select id="countByRecordState" resultType="java.lang.Integer">
+        select count(*) from service_donatebaseinfo
+        where RecordState = #{recordState}
+        and ReportTime >= #{starttime} and ReportTime &lt;= #{endtime}
+    </select>
+    <select id="getDistrictDonate" resultType="java.lang.String">
+        select o.city from service_donatebaseinfo b
+        inner join base_organization o on o.organizationid=b.treatmenthospitalno
+        where (b.RecordState = '0' or b.RecordState = '1' or b.RecordState = '2')
+    </select>
+    <select id="getDistrictComplete" resultType="java.lang.String">
+        select o.city from service_donatebaseinfo b
+        inner join service_donatecompletioninfo d on d.infoid=b.id
+        inner join base_organization o on o.organizationid=b.treatmenthospitalno
+        where d.CompleteTime > 0
+    </select>
+    <select id="getDistrictOrgans" resultType="java.lang.String">
+        select o.city from service_donatebaseinfo b
+        inner join service_donateorgan d on d.infoid=b.id
+        inner join base_organization o on o.organizationid=b.treatmenthospitalno
+        where d.OrganGetTime > 0
+    </select>
+    <select id="getDonateNameById" resultType="java.lang.String">
+        select Name from service_donatebaseinfo
+        where id = #{infoid}
+    </select>
+
+    <select id="getDistrictDonateByTime" resultType="java.lang.String">
+        select o.city from service_donatebaseinfo b
+                               inner join base_organization o on o.organizationid=b.treatmenthospitalno
+        where (b.RecordState = '0' or b.RecordState = '1' or b.RecordState = '2')
+            and b.ReportTime >= #{starttime} and b.ReportTime &lt;= #{endtime}
+    </select>
+    <select id="getDistrictCompleteByTime" resultType="java.lang.String">
+        select o.city from service_donatebaseinfo b
+                               inner join service_donatecompletioninfo d on d.infoid=b.id
+                               inner join base_organization o on o.organizationid=b.treatmenthospitalno
+        where d.del_flag=0  and d.CompleteTime >= #{starttime} and d.CompleteTime &lt;= #{endtime}
+    </select>
+
+    <select id="gettreatmenthospitalnoCompleteByTime" resultType="java.lang.String">
+        select b.treatmenthospitalno from service_donatebaseinfo b
+                               inner join service_donatecompletioninfo d on d.infoid=b.id
+                               inner join base_organization o on o.organizationid=b.treatmenthospitalno
+        <where>
+            d.del_flag=0
+            <if test="starttime != null "> and d.CompleteTime >= #{starttime} </if>
+            <if test="endtime != null ">  and d.CompleteTime &lt;= #{endtime}</if>
+            <if test="city != null and city != ''"> and o.City = #{city} </if>
+            <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+        </where>
+    </select>
+
+    <select id="getDistrictOrgansByTime" resultType="java.lang.String">
+        select o.city from service_donatebaseinfo b
+                               inner join service_donateorgan d on d.infoid=b.id
+                               inner join base_organization o on o.organizationid=b.treatmenthospitalno
+        WHERE d.del_flag=0  AND d.OrganGetTime IS NOT NULL AND d.OrganGetTime >= #{starttime} AND d.OrganGetTime &lt;= #{endtime}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml
new file mode 100644
index 0000000..4ee365e
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDonatecompletioninfoMapper">
+    
+    <resultMap type="ServiceDonatecompletioninfo" id="ServiceDonatecompletioninfoResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="del_flag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="isbodydonation"    column="IsBodyDonation"    />
+        <result property="receivingunit"    column="ReceivingUnit"    />
+        <result property="receivingunitname"    column="ReceivingUnitName"    />
+        <result property="completetime"    column="CompleteTime"    />
+        <result property="responsibleuserid"    column="ResponsibleUserID"    />
+        <result property="responsibleusername"    column="ResponsibleUserName"    />
+        <result property="coordinateduserido"    column="CoordinatedUserIDO"    />
+        <result property="coordinatedusernameo"    column="CoordinatedUserNameO"    />
+        <result property="coordinateduseridt"    column="CoordinatedUserIDT"    />
+        <result property="coordinatedusernamet"    column="CoordinatedUserNameT"    />
+        <result property="assessannex"    column="AssessAnnex"    />
+        <result property="donateorgan"    column="DonateOrgan"    />
+    </resultMap>
+
+    <sql id="selectServiceDonatecompletioninfoVo">
+        select ID, InfoID, DonorNo, del_flag, create_by, create_time, update_by, update_time, IsBodyDonation, ReceivingUnit, ReceivingUnitName, CompleteTime, ResponsibleUserID, ResponsibleUserName, CoordinatedUserIDO, CoordinatedUserNameO, CoordinatedUserIDT, CoordinatedUserNameT, AssessAnnex, DonateOrgan from service_donatecompletioninfo
+    </sql>
+
+    <select id="selectServiceDonatecompletioninfoList" parameterType="ServiceDonatecompletioninfo" resultMap="ServiceDonatecompletioninfoResult">
+        <include refid="selectServiceDonatecompletioninfoVo"/>
+        <where>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="isbodydonation != null  and isbodydonation != ''"> and IsBodyDonation = #{isbodydonation}</if>
+            <if test="receivingunit != null  and receivingunit != ''"> and ReceivingUnit = #{receivingunit}</if>
+        </where>
+    </select>
+    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.DonationCompletionVO">
+    SELECT
+        `service_donatebaseinfo`.`ID` AS `ID`,
+        `service_donatebaseinfo`.`DonorNo` AS `DonorNo`,
+        `service_donatebaseinfo`.`DonationCategory` AS `DonationCategory`,
+        `service_donatebaseinfo`.`RecordState` AS `RecordState`,
+        `service_donatebaseinfo`.`Name` AS `Name`,
+        `service_donatebaseinfo`.`Sex` AS `Sex`,
+        `service_donatebaseinfo`.`IDCardType` AS `IDCardType`,
+        `service_donatebaseinfo`.`IDCardNo` AS `IDCardNo`,
+        `service_donatebaseinfo`.`Age` AS `Age`,
+        `service_donatebaseinfo`.`AgeUnit` AS `AgeUnit`,
+        `service_donatebaseinfo`.`Birthday` AS `Birthday`,
+        `service_donatebaseinfo`.`Nationality` AS `Nationality`,
+        `service_donatebaseinfo`.`Nation` AS `Nation`,
+        `service_donatebaseinfo`.`ReporterNo` AS `ReporterNo`,
+        `service_donatebaseinfo`.`ReporterName` AS `ReporterName`,
+        `service_donatebaseinfo`.`ReporterPhone` AS `ReporterPhone`,
+        `service_donatebaseinfo`.`ReportTime` AS `ReportTime`,
+        `service_donatebaseinfo`.`TreatmentHospitalNo` AS `TreatmentHospitalNo`,
+        `service_donatebaseinfo`.`TreatmentHospitalName` AS `TreatmentHospitalName`,
+        `service_donatebaseinfo`.`TreatmentDeptName` AS `TreatmentDeptName`,
+        `service_donatebaseinfo`.`RegisterAddress` AS `RegisterAddress`,
+        `service_donatebaseinfo`.`RegisterProvince` AS `RegisterProvince`,
+        `service_donatebaseinfo`.`RegisterProvinceName` AS `RegisterProvinceName`,
+        `service_donatebaseinfo`.`RegisterCity` AS `RegisterCity`,
+        `service_donatebaseinfo`.`RegisterCityName` AS `RegisterCityName`,
+        `service_donatebaseinfo`.`RegisterTown` AS `RegisterTown`,
+        `service_donatebaseinfo`.`RegisterTownName` AS `RegisterTownName`,
+        `service_donatebaseinfo`.`RegisterCommunity` AS `RegisterCommunity`,
+        `service_donatebaseinfo`.`RegisterCommunityName` AS `RegisterCommunityName`,
+        `service_donatebaseinfo`.`RegisterCountyCode` AS `RegisterCountyCode`,
+        `service_donatebaseinfo`.`RegisterCountyName` AS `RegisterCountyName`,
+        `service_donatebaseinfo`.`create_by` AS `basecreateby`,
+        `service_donatecompletioninfo`.`ID` AS `dcID`,
+        `service_donatecompletioninfo`.`InfoID` AS `InfoID`,
+        `service_donatecompletioninfo`.`DonorNo` AS `dcDonorNo`,
+        `service_donatecompletioninfo`.`IsBodyDonation` AS `IsBodyDonation`,
+        `service_donatecompletioninfo`.`ReceivingUnitName` AS `ReceivingUnitName`,
+        `service_donatecompletioninfo`.`ReceivingUnit` AS `ReceivingUnit`,
+        `service_donatecompletioninfo`.`CompleteTime` AS `CompleteTime`,
+        `service_donatecompletioninfo`.`ResponsibleUserID` AS `ResponsibleUserID`,
+        `service_donatecompletioninfo`.`ResponsibleUserName` AS `ResponsibleUserName`,
+        `service_donatecompletioninfo`.`CoordinatedUserIDO` AS `CoordinatedUserIDO`,
+        `service_donatecompletioninfo`.`CoordinatedUserNameO` AS `CoordinatedUserNameO`,
+        `service_donatecompletioninfo`.`CoordinatedUserIDT` AS `CoordinatedUserIDT`,
+        `service_donatecompletioninfo`.`CoordinatedUserNameT` AS `CoordinatedUserNameT`,
+        `service_donatecompletioninfo`.`AssessAnnex` AS `AssessAnnex`,
+        `service_donatecompletioninfo`.`DonateOrgan` AS `DonateOrgan`,
+        `service_donatecompletioninfo`.`del_flag` AS `delflag`,
+        `service_donatecompletioninfo`.`create_by` AS `createby`,
+        `service_donatecompletioninfo`.`create_time` AS `createtime`,
+        `service_donatecompletioninfo`.`update_by` AS `updateby`,
+        `service_donatecompletioninfo`.`update_time` AS `updatetime`
+    FROM
+
+              `service_donatebaseinfo`
+            LEFT JOIN  (    select * from `service_donatecompletioninfo`  where `del_flag`='0' and  id in (
+                select min(id) from `service_donatecompletioninfo` where `del_flag`='0' group by `InfoID`
+                )  )`service_donatecompletioninfo` ON
+                `service_donatebaseinfo`.`ID` = `service_donatecompletioninfo`.`InfoID`
+        LEFT JOIN `base_organization` ON
+        `base_organization`.`OrganizationID` = `service_donatebaseinfo`.`TreatmentHospitalNo`
+
+
+        <where>
+            `service_donatebaseinfo`.`del_flag` = 0
+            <if test="donorno != null  and donorno != ''"> and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
+            <if test="name != null  and name != ''"> and `service_donatebaseinfo`.`Name` like concat('%', #{name}, '%')</if>
+            <if test="idcardno != null  and idcardno != ''"> and `service_donatebaseinfo`.`IDCardNo` = #{idcardno}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}</if>
+            <if test="recordstate != null  and recordstate != ''"> and `service_donatebaseinfo`.`RecordState` = #{recordstate}</if>
+            <if test="basecreateby != null  and basecreateby != ''"> and `service_donatebaseinfo`.`create_by` = #{basecreateby}</if>
+            <if test="starttime != null "> and `service_donatecompletioninfo`.CompleteTime >= #{starttime} </if>
+            <if test="endtime != null ">  and `service_donatecompletioninfo`.CompleteTime &lt;= #{endtime}</if>
+            <if test="reporterno != null  and reporterno != ''"> and `service_donatebaseinfo`.ReporterNo = #{reporterno}</if>
+            <if test="city != null and city != ''"> and `base_organization`.`City` = #{city}</if>
+            <if test="id != null "> and `service_donatebaseinfo`.`ID` = #{id}</if>
+    </where>
+
+        order by `service_donatecompletioninfo`.`create_time` desc
+
+
+    </select>
+    <select id="countNumber" resultType="java.lang.Integer">
+        select count(*) from service_donatecompletioninfo
+        where CompleteTime >= #{starttime} and CompleteTime &lt;= #{endtime}  AND del_flag=0
+    </select>
+    <select id="getByInfoId" resultType="com.ruoyi.project.domain.ServiceDonatecompletioninfo">
+        <include refid="selectServiceDonatecompletioninfoVo"/>
+        where InfoID = #{id}  AND del_flag=0
+    </select>
+    <select id="count" resultType="java.lang.Integer">
+        select count(*) from service_donatecompletioninfo
+        where del_flag=0 and CompleteTime >= #{starttime} and CompleteTime &lt;= #{endtime}
+    </select>
+    <select id="getCompletionDonatePeopleByTime" resultType="com.ruoyi.project.domain.ServiceDonatecompletioninfo">
+        <include refid="selectServiceDonatecompletioninfoVo"/>
+        where CompleteTime >= #{starttime} AND CompleteTime &lt;= #{endtime} AND del_flag=0
+    </select>
+
+
+    <update id="delDuplicateDonateCompletioninfo">
+        update service_donatecompletioninfo
+        set del_flag = 1,create_by= #{createby},update_time=now()
+        where InfoID = #{infoid}
+    </update>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateconsolationfundMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateconsolationfundMapper.xml
new file mode 100644
index 0000000..5168cc9
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateconsolationfundMapper.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDonateconsolationfundMapper">
+    
+    <resultMap type="ServiceDonateconsolationfund" id="ServiceDonateconsolationfundResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="familyrelations"    column="FamilyRelations"    />
+        <result property="name"    column="Name"    />
+        <result property="sex"    column="Sex"    />
+        <result property="idcardtype"    column="IDCardType"    />
+        <result property="idcardno"    column="IDCardNo"    />
+        <result property="phone"    column="Phone"    />
+        <result property="depositbank"    column="DepositBank"    />
+        <result property="bankprovince"    column="BankProvince"    />
+        <result property="bankprovincename"    column="BankProvinceName"    />
+        <result property="bankcity"    column="BankCity"    />
+        <result property="bankcityname"    column="BankCityName"    />
+        <result property="banktown"    column="BankTown"    />
+        <result property="banktownname"    column="BankTownName"    />
+        <result property="branchbankname"    column="BranchBankName"    />
+        <result property="bankcardno"    column="BankCardNo"    />
+        <result property="annexbankcard"    column="AnnexBankCard"    />
+        <result property="annexregistform"    column="AnnexRegistForm"    />
+        <result property="amountrequested"    column="AmountRequested"    />
+        <result property="consolationmark"    column="ConsolationMark"    />
+        <result property="consolationtype"    column="ConsolationType"    />
+        <result property="prepaidamount"    column="PrepaidAmount"    />
+        <result property="invoicecount"    column="InvoiceCount"    />
+        <result property="attachcount"    column="AttachCount"    />
+        <result property="managerno"    column="ManagerNo"    />
+        <result property="managername"    column="ManagerName"    />
+        <result property="deptmentno"    column="DeptmentNo"    />
+        <result property="deptmentname"    column="DeptmentName"    />
+        <result property="opochecker"    column="OPOchecker"    />
+        <result property="finvicepresident"    column="FinVicePresident"    />
+        <result property="busvicepresident"    column="BusVicePresident"    />
+        <result property="officedirector"    column="OfficeDirector"    />
+        <result property="financedirector"    column="FinanceDirector"    />
+        <result property="financechecher"    column="FinanceChecher"    />
+        <result property="remark"    column="Remark"    />
+        <result property="recordstatus"    column="RecordStatus"    />
+        <result property="uploadflag"    column="uploadflag"    />
+        <result property="uploadtime"    column="uploadtime"    />
+    </resultMap>
+
+    <sql id="selectServiceDonateconsolationfundVo">
+        select ID, InfoID, DonorNo, del_flag, create_by, create_time, update_by, update_time, FamilyRelations, Name, Sex, IDCardType, IDCardNo, Phone, DepositBank, BankProvince, BankProvinceName, BankCity, BankCityName, BankTown, BankTownName, BranchBankName, BankCardNo, AnnexBankCard, AnnexRegistForm, AmountRequested, ConsolationMark, ConsolationType, PrepaidAmount, InvoiceCount, AttachCount, ManagerNo, ManagerName, DeptmentNo, DeptmentName, OPOchecker, FinVicePresident, BusVicePresident, OfficeDirector, FinanceDirector, FinanceChecher, Remark, RecordStatus, uploadflag, uploadtime from service_donateconsolationfund
+    </sql>
+
+    <select id="selectServiceDonateconsolationfundList" parameterType="ServiceDonateconsolationfund" resultMap="ServiceDonateconsolationfundResult">
+        <include refid="selectServiceDonateconsolationfundVo"/>
+        <where>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="delFlag != null "> and del_flag = #{delFlag}</if>
+            <if test="createTime != null "> and create_time = #{createTime}</if>
+            <if test="name != null  and name != ''"> and Name like concat('%', #{name}, '%')</if>
+            <if test="sex != null "> and Sex = #{sex}</if>
+            <if test="idcardno != null  and idcardno != ''"> and IDCardNo = #{idcardno}</if>
+            <if test="depositbank != null  and depositbank != ''"> and DepositBank = #{depositbank}</if>
+            <if test="bankcardno != null  and bankcardno != ''"> and BankCardNo = #{bankcardno}</if>
+            <if test="amountrequested != null "> and AmountRequested = #{amountrequested}</if>
+            <if test="consolationtype != null  and consolationtype != ''"> and ConsolationType = #{consolationtype}</if>
+            <if test="deptmentno != null  and deptmentno != ''"> and DeptmentNo = #{deptmentno}</if>
+            <if test="deptmentname != null  and deptmentname != ''"> and DeptmentName like concat('%', #{deptmentname}, '%')</if>
+            <if test="remark != null  and remark != ''"> and Remark = #{remark}</if>
+            <if test="recordstatus != null  and recordstatus != ''"> and RecordStatus = #{recordstatus}</if>
+            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
+            <if test="uploadtime != null "> and uploadtime = #{uploadtime}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatefollowupMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatefollowupMapper.xml
new file mode 100644
index 0000000..8bbb0ef
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatefollowupMapper.xml
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDonatefollowupMapper">
+    
+    <resultMap type="ServiceDonatefollowup" id="ServiceDonatefollowupResult">
+        <result property="id"    column="ID"    />
+        <result property="seqno"    column="seqNo"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="organid"    column="OrganID"    />
+        <result property="recipientname"    column="recipientName"    />
+        <result property="recipientphone"    column="recipientPhone"    />
+        <result property="recipientdescribe"    column="recipientDescribe"    />
+        <result property="hospitalno"    column="hospitalNo"    />
+        <result property="hospitalname"    column="hospitalName"    />
+        <result property="hospitaldept"    column="hospitalDept"    />
+        <result property="doctorname"    column="doctorName"    />
+        <result property="doctorphone"    column="doctorPhone"    />
+        <result property="doctordescribe"    column="doctorDescribe"    />
+        <result property="donateresult"    column="donateResult"    />
+        <result property="followupdescribe"    column="followupDescribe"    />
+        <result property="followupno"    column="followupNo"    />
+        <result property="followuptime"    column="followupTime"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectServiceDonatefollowupVo">
+        select ID, seqNo, InfoID, OrganID, recipientName, recipientPhone, recipientDescribe, hospitalNo, hospitalName, hospitalDept, doctorName, doctorPhone, doctorDescribe, donateResult, followupDescribe, followupNo, followupTime, del_flag, create_by, create_time, update_by, update_time from service_donatefollowup
+    </sql>
+
+    <select id="selectServiceDonatefollowupList" parameterType="ServiceDonatefollowup" resultMap="ServiceDonatefollowupResult">
+        <include refid="selectServiceDonatefollowupVo"/>
+        <where>
+            <if test="seqno != null "> and seqNo = #{seqno}</if>
+            <if test="recipientname != null  and recipientname != ''"> and recipientName like concat('%', #{recipientname}, '%')</if>
+            <if test="hospitalname != null  and hospitalname != ''"> and hospitalName like concat('%', #{hospitalname}, '%')</if>
+            <if test="donateresult != null  and donateresult != ''"> and donateResult = #{donateresult}</if>
+        </where>
+    </select>
+    <select id="selectAll" resultType="com.ruoyi.project.domain.ServiceDonatefollowup">
+        <include refid="selectServiceDonatefollowupVo"/>
+        <where>
+            <if test="seqno != null "> and seqNo = #{seqno}</if>
+            <if test="infoid != null "> and InfoID = #{infoid}</if>
+            <if test="organid != null "> and OrganID = #{organid}</if>
+            <if test="recipientname != null  and recipientname != ''"> and recipientName like concat('%', #{recipientname}, '%')</if>
+            <if test="hospitalname != null  and hospitalname != ''"> and hospitalName like concat('%', #{hospitalname}, '%')</if>
+            <if test="donateresult != null  and donateresult != ''"> and donateResult = #{donateresult}</if>
+        </where>
+    </select>
+    <select id="selectFollowUpById" resultType="com.ruoyi.project.domain.ServiceDonatefollowup">
+        <include refid="selectServiceDonatefollowupVo"/>
+        where ID = #{id}
+    </select>
+    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.DonateFollowupVO">
+        SELECT
+        `service_donateorgan`.`ID` AS `ID`,
+        `service_donateorgan`.`DonorNo` AS `DonorNo`,
+        `service_donateorgan`.`OrganNo` AS `OrganNo`,
+        `service_donateorgan`.`OrganName` AS `OrganName`,
+        `service_donateorgan`.`OrganState` AS `OrganState`,
+        `service_donateorgan`.`OrganNumber` AS `OrganNumber`,
+        `service_donateorgan`.`OrganGetTime` AS `OrganGetTime`,
+        `service_donateorgan`.`OrganGetDoct` AS `OrganGetDoct`,
+        `service_donateorgan`.`GainHospitalNo` AS `GainHospitalNo`,
+        `service_donateorgan`.`GainHospitalName` AS `GainHospitalName`,
+        `service_donateorgan`.`TransplantHospitalNo` AS `TransplantHospitalNo`,
+        `service_donateorgan`.`TransplantHospitalName` AS `TransplantHospitalName`,
+        `service_donateorgan`.`TransplantDoct` AS `TransplantDoct`,
+        `service_donateorgan`.`TransplantTime` AS `TransplantTime`,
+        `service_donateorgan`.`CaseNo` AS `CaseNo`,
+        `service_donateorgan`.`IsBiopsyBefore` AS `IsBiopsyBefore`,
+        `service_donateorgan`.`IsBiopsyAfter` AS `IsBiopsyAfter`,
+        `service_donateorgan`.`IsMarginalOrgan` AS `IsMarginalOrgan`,
+        `service_donateorgan`.`IsPathogenPositive` AS `IsPathogenPositive`,
+        `service_donateorgan`.`IsPNF` AS `IsPNF`,
+        `service_donateorgan`.`IsDGF` AS `IsDGF`,
+        `service_donatebaseinfo`.`ID` AS `InfoID`,
+        `service_donatebaseinfo`.`Name` AS `Name`,
+        `service_donatebaseinfo`.`Sex` AS `Sex`,
+        `service_donatebaseinfo`.`Age` AS `Age`,
+        `service_donatebaseinfo`.`ReporterNo` AS `ReporterNo`,
+        `service_donatebaseinfo`.`ReporterName` AS `ReporterName`,
+        `service_donatebaseinfo`.`ReporterPhone` AS `ReporterPhone`,
+        `service_donatebaseinfo`.`ReportTime` AS `ReportTime`,
+        `service_donatebaseinfo`.`TreatmentHospitalNo` AS `TreatmentHospitalNo`,
+        `service_donatebaseinfo`.`TreatmentHospitalName` AS `TreatmentHospitalName`,
+        `service_donatebaseinfo`.`create_by` AS `basecreateby`,
+        `service_donatefollowup`.`ID` AS `dfID`,
+        `service_donatefollowup`.`seqNo` AS `seqNo`,
+        `service_donatefollowup`.`InfoID` AS `dfInfoID`,
+        `service_donatefollowup`.`OrganID` AS `OrganID`,
+        `service_donatefollowup`.`recipientName` AS `recipientName`,
+        `service_donatefollowup`.`recipientPhone` AS `recipientPhone`,
+        `service_donatefollowup`.`recipientDescribe` AS `recipientDescribe`,
+        `service_donatefollowup`.`hospitalNo` AS `hospitalNo`,
+        `service_donatefollowup`.`hospitalName` AS `hospitalName`,
+        `service_donatefollowup`.`hospitalDept` AS `hospitalDept`,
+        `service_donatefollowup`.`doctorName` AS `doctorName`,
+        `service_donatefollowup`.`doctorPhone` AS `doctorPhone`,
+        `service_donatefollowup`.`doctorDescribe` AS `doctorDescribe`,
+        `service_donatefollowup`.`donateResult` AS `donateResult`,
+        `service_donatefollowup`.`followupDescribe` AS `followupDescribe`,
+        `service_donatefollowup`.`followupNo` AS `followupNo`,
+        `service_donatefollowup`.`followupTime` AS `followupTime`,
+        `service_donatefollowup`.`del_flag` AS `delflag`,
+        `service_donatefollowup`.`create_by` AS `createby`,
+        `service_donatefollowup`.`create_time` AS `createtime`,
+        `service_donatefollowup`.`update_by` AS `updateby`,
+        `service_donatefollowup`.`update_time` AS `updatetime`
+        FROM
+        ((
+        `service_donatebaseinfo`
+        JOIN `service_donateorgan` ON ((
+        `service_donatebaseinfo`.`ID` = `service_donateorgan`.`InfoID`
+        )))
+        LEFT JOIN `service_donatefollowup` ON ((
+        `service_donatefollowup`.`OrganID` = `service_donateorgan`.`ID`
+        )))
+
+        <where>
+            <if test="donorno != null  and donorno != ''"> and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
+            <if test="name != null  and name != ''"> and `service_donatebaseinfo`.`Name` = #{name}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}</if>
+            <if test="basecreateby != null  and basecreateby != ''"> and `service_donatebaseinfo`.`create_by` = #{basecreateby}</if>
+        </where>
+
+        order by `service_donatefollowup`.`create_time` desc
+
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
new file mode 100644
index 0000000..438243b
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
@@ -0,0 +1,389 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDonateorganMapper">
+    
+    <resultMap type="ServiceDonateorgan" id="ServiceDonateorganResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="organno"    column="OrganNo"    />
+        <result property="organname"    column="OrganName"    />
+        <result property="organstate"    column="OrganState"    />
+        <result property="organnumber"    column="OrganNumber"    />
+        <result property="organgettime"    column="OrganGetTime"    />
+        <result property="organgetdoct"    column="OrganGetDoct"    />
+        <result property="gainhospitalno"    column="GainHospitalNo"    />
+        <result property="gainhospitalname"    column="GainHospitalName"    />
+        <result property="transplanthospitalno"    column="TransplantHospitalNo"    />
+        <result property="transplanthospitalname"    column="TransplantHospitalName"    />
+        <result property="abandonreason"    column="AbandonReason"    />
+        <result property="reallocationreason"    column="ReallocationReason"    />
+        <result property="transplantdoct"    column="TransplantDoct"    />
+        <result property="transplanttime"    column="TransplantTime"    />
+        <result property="isbiopsybefore"    column="IsBiopsyBefore"    />
+        <result property="isbiopsyafter"    column="IsBiopsyAfter"    />
+        <result property="ismarginalorgan"    column="IsMarginalOrgan"    />
+        <result property="ispathogenpositive"    column="IsPathogenPositive"    />
+        <result property="ispnf"    column="IsPNF"    />
+        <result property="isdgf"    column="IsDGF"    />
+        <result property="del_flag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectServiceDonateorganVo">
+        select ID, InfoID, DonorNo, OrganNo, OrganName, OrganState, OrganNumber, OrganGetTime, OrganGetDoct, GainHospitalNo, GainHospitalName, TransplantHospitalNo, TransplantHospitalName, TransplantDoct, TransplantTime, AbandonReason, ReallocationReason, IsBiopsyBefore, IsBiopsyAfter, IsMarginalOrgan, IsPathogenPositive, IsPNF, IsDGF, del_flag, create_by, create_time, update_by, update_time from service_donateorgan
+    </sql>
+
+    <select id="selectServiceDonateorganList" parameterType="ServiceDonateorgan" resultMap="ServiceDonateorganResult">
+        <include refid="selectServiceDonateorganVo"/>
+        <where>
+            <if test="infoid != null "> and InfoID = #{infoid}</if>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="organno != null  and organno != ''"> and OrganNo = #{organno}</if>
+            <if test="organname != null  and organname != ''"> and OrganName like concat('%', #{organname}, '%')</if>
+            <if test="organstate != null "> and OrganState = #{organstate}</if>
+            <if test="organnumber != null  and organnumber != ''"> and OrganNumber = #{organnumber}</if>
+            <if test="organgettime != null "> and OrganGetTime = #{organgettime}</if>
+            <if test="organgetdoct != null  and organgetdoct != ''"> and OrganGetDoct = #{organgetdoct}</if>
+            <if test="gainhospitalno != null  and gainhospitalno != ''"> and GainHospitalNo = #{gainhospitalno}</if>
+            <if test="gainhospitalname != null  and gainhospitalname != ''"> and GainHospitalName like concat('%', #{gainhospitalname}, '%')</if>
+            <if test="transplanthospitalno != null  and transplanthospitalno != ''"> and TransplantHospitalNo = #{transplanthospitalno}</if>
+            <if test="transplanthospitalname != null  and transplanthospitalname != ''"> and TransplantHospitalName like concat('%', #{transplanthospitalname}, '%')</if>
+            <if test="transplantdoct != null  and transplantdoct != ''"> and TransplantDoct = #{transplantdoct}</if>
+            <if test="transplanttime != null "> and TransplantTime = #{transplanttime}</if>
+            <if test="abandonreason != null "> and AbandonReason = #{abandonreason}</if>
+            <if test="reallocationreason != null "> and ReallocationReason = #{reallocationreason}</if>
+            <if test="isbiopsybefore != null "> and IsBiopsyBefore = #{isbiopsybefore}</if>
+            <if test="isbiopsyafter != null "> and IsBiopsyAfter = #{isbiopsyafter}</if>
+            <if test="ismarginalorgan != null "> and IsMarginalOrgan = #{ismarginalorgan}</if>
+            <if test="ispathogenpositive != null "> and IsPathogenPositive = #{ispathogenpositive}</if>
+            <if test="ispnf != null "> and IsPNF = #{ispnf}</if>
+            <if test="isdgf != null "> and isDGF = #{isdgf}</if>
+
+        </where>
+    </select>
+    <select id="getAllDonateOrgans" resultType="com.ruoyi.project.domain.ServiceDonateorgan">
+        <include refid="selectServiceDonateorganVo"/>
+    </select>
+    <select id="getAllProcessOrgans" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where OrganState = "3"
+
+        <if test="starttime != null "> and d.create_time >= #{starttime} </if>
+        <if test="endtime != null ">  and d.create_time &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getAllFinishedOrgans" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where OrganState = "6" AND d.del_flag=0 AND d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
+        <if test="starttime != null "> and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getOrganNo" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where d.del_flag=0 AND d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00' and d.OrganNo = #{organno}
+        <if test="starttime != null "> and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getAllFinishedOrgansThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where OrganState = "6" AND d.del_flag=0 AND d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
+        AND d.OrganNo != 'C69L'
+        AND d.OrganNo != 'C69R'
+        <if test="starttime != null"> and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getOrganNumberThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+
+        where d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
+        AND d.OrganNo != 'C69L'
+        AND d.OrganNo != 'C69R'
+        AND d.del_flag=0
+        <if test="starttime != null "> and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getbiopsyBeforeNumberThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where IsBiopsyBefore = "1"
+        AND
+        d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
+        AND d.OrganNo != 'C69L'
+        AND d.OrganNo != 'C69R'
+        AND d.del_flag=0
+        <if test="starttime != null"> and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getbiopsyAfterNumberThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where IsBiopsyAfter = "1"
+        AND
+        d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
+        AND d.OrganNo != 'C69L'
+        AND d.OrganNo != 'C69R'
+        AND d.del_flag=0
+        <if test="starttime != null "> and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getmarginalOrgansNumberThisYear" resultType="java.lang.Integer">
+         select count(*) from service_donateorgan d
+
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+         where IsMarginalOrgan = "1" AND
+        d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
+        AND d.OrganNo != 'C69L'
+        AND d.OrganNo != 'C69R'
+        AND d.del_flag=0
+         <if test="starttime != null "> and d.OrganGetTime >= #{starttime} </if>
+         <if test="endtime != null">  and d.OrganGetTime &lt;= #{endtime}</if>
+         <if test="city != null and city != ''"> and o.City = #{city} </if>
+         <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getPathogenPositiveNumberThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where IsPathogenPositive = "1"
+        AND
+        d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
+        AND d.OrganNo != 'C69L'
+        AND d.OrganNo != 'C69R'
+        AND d.del_flag=0
+        <if test="starttime != null "> and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getPNFNumberThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where IsPNF = "1"
+        <if test="starttime != null ">  and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getDGFNumberThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where IsDGF = "1"
+        <if test="starttime != null ">  and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="selectPNFOrganThisYear" resultType="com.ruoyi.project.domain.ServiceDonateorgan">
+        select * from service_donateorgan d
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where IsPNF = "1"
+        AND
+        d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
+        AND d.OrganNo != 'C69L'
+        AND d.OrganNo != 'C69R'
+        AND d.del_flag=0
+        <if test="starttime != null ">  and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+
+    </select>
+    <select id="selectDGFOrganThisYear" resultType="com.ruoyi.project.domain.ServiceDonateorgan">
+        select * from service_donateorgan d
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where IsDGF = "1"
+        AND
+        d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
+        AND d.OrganNo != 'C69L'
+        AND d.OrganNo != 'C69R'
+        AND d.del_flag=0
+        <if test="starttime != null ">  and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.DonateOrganVO">
+    SELECT
+        `service_donatebaseinfo`.`ID` AS `ID`,
+        `service_donatebaseinfo`.`Name` AS `Name`,
+        `service_donatebaseinfo`.`Sex` AS `Sex`,
+        `service_donatebaseinfo`.`IDCardType` AS `IDCardType`,
+        `service_donatebaseinfo`.`IDCardNo` AS `IDCardNo`,
+        `service_donatebaseinfo`.`Age` AS `Age`,
+        `service_donatebaseinfo`.`AgeUnit` AS `AgeUnit`,
+        `service_donatebaseinfo`.`Birthday` AS `Birthday`,
+        `service_donatebaseinfo`.`Phone` AS `Phone`,
+        `service_donatebaseinfo`.`Nationality` AS `Nationality`,
+        `service_donatebaseinfo`.`NativePlace` AS `NativePlace`,
+        `service_donatebaseinfo`.`Nation` AS `Nation`,
+        `service_donatebaseinfo`.`TreatmentHospitalNo` AS `TreatmentHospitalNo`,
+        `service_donatebaseinfo`.`TreatmentHospitalName` AS `TreatmentHospitalName`,
+        `service_donatebaseinfo`.`TreatmentDeptName` AS `TreatmentDeptName`,
+        `service_donatebaseinfo`.`DiagnosisNo` AS `DiagnosisNo`,
+        `service_donatebaseinfo`.`DonorNo` AS `DonorNo`,
+        `service_donatebaseinfo`.`PatientState` AS `PatientState`,
+        `service_donatebaseinfo`.`ReporterNo` AS `ReporterNo`,
+        `service_donatebaseinfo`.`ReporterName` AS `ReporterName`,
+        `service_donatebaseinfo`.`ReporterPhone` AS `ReporterPhone`,
+        `service_donatebaseinfo`.`ReportTime` AS `ReportTime`,
+        `service_donatebaseinfo`.`RecordState` AS `RecordState`,
+        `service_donateorgan`.`ID` AS `doID`,
+        `service_donateorgan`.`InfoID` AS `InfoID`,
+        `service_donateorgan`.`DonorNo` AS `doDonorNo`,
+        `service_donateorgan`.`OrganNo` AS `OrganNo`,
+        `service_donateorgan`.`OrganName` AS `OrganName`,
+        `service_donateorgan`.`OrganState` AS `OrganState`,
+        `service_donateorgan`.`OrganNumber` AS `OrganNumber`,
+        `service_donateorgan`.`OrganGetTime` AS `OrganGetTime`,
+        `service_donateorgan`.`OrganGetDoct` AS `OrganGetDoct`,
+        `service_donateorgan`.`GainHospitalNo` AS `GainHospitalNo`,
+        `service_donateorgan`.`GainHospitalName` AS `GainHospitalName`,
+        `service_donateorgan`.`TransplantHospitalNo` AS `TransplantHospitalNo`,
+        `service_donateorgan`.`TransplantHospitalName` AS `TransplantHospitalName`,
+        `service_donateorgan`.`TransplantDoct` AS `TransplantDoct`,
+        `service_donateorgan`.`TransplantTime` AS `TransplantTime`,
+        `service_donateorgan`.`AbandonReason` AS `AbandonReason`,
+        `service_donateorgan`.`ReallocationReason` AS `ReallocationReason`,
+        `service_donateorgan`.`CaseNo` AS `CaseNo`,
+        `service_donateorgan`.`IsBiopsyBefore` AS `IsBiopsyBefore`,
+        `service_donateorgan`.`IsBiopsyAfter` AS `IsBiopsyAfter`,
+        `service_donateorgan`.`IsMarginalOrgan` AS `IsMarginalOrgan`,
+        `service_donateorgan`.`IsPathogenPositive` AS `IsPathogenPositive`,
+        `service_donateorgan`.`IsPNF` AS `IsPNF`,
+        `service_donateorgan`.`IsDGF` AS `IsDGF`,
+        `service_donateorgan`.`del_flag` AS `del_flag`,
+        `service_donateorgan`.`create_by` AS `create_by`,
+        `service_donateorgan`.`create_time` AS `create_time`,
+        `service_donateorgan`.`update_by` AS `update_by`,
+        `service_donateorgan`.`update_time` AS `update_time`,
+        `service_donatebaseinfo`.`leadername` AS `leadername`,
+        `service_donatebaseinfo`.`leaderno` AS `leaderno`,
+        `service_donatebaseinfo`.`businessarea` AS `businessarea`
+    FROM
+        (
+            `service_donatebaseinfo`
+            JOIN `service_donateorgan` ON ((
+                `service_donatebaseinfo`.`ID` = `service_donateorgan`.`InfoID`
+        )))
+
+        <where>
+            <if test="donorno != null  and donorno != ''"> and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
+            <if test="name != null  and name != ''"> and `service_donatebaseinfo`.`Name` = #{name}</if>
+            <if test="idcardno != null  and idcardno != ''"> and `service_donatebaseinfo`.`IDCardNo` = #{idcardno}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}</if>
+            <if test="recordstate != null  and recordstate != ''"> and `service_donatebaseinfo`.`RecordState` = #{recordstate}</if>
+
+            <if test="organno != null  and organno != ''"> and `service_donateorgan`.`OrganNo` = #{organno}</if>
+            <if test="organname != null  and organname != ''"> and `service_donateorgan`.`OrganName` = #{organname}</if>
+            <if test="transplanthospitalno != null  and transplanthospitalno != ''"> and `service_donateorgan`.`TransplantHospitalNo` = #{transplanthospitalno}</if>
+            <if test="transplanthospitalname != null  and transplanthospitalname != ''"> and `service_donateorgan`.`TransplantHospitalName` = #{transplanthospitalname}</if>
+            <if test="organstate != null  and organstate != ''"> and `service_donateorgan`.`OrganState` = #{organstate}</if>
+            <if test="reportername != null  and reportername != ''"> and `service_donatebaseinfo`.`ReporterName` = #{reportername}</if>
+            <if test="leadername != null  and leadername != ''"> and `service_donatebaseinfo`.`leadername` = #{leadername}</if>
+            <if test="leaderno != null  and leaderno != ''"> and `service_donatebaseinfo`.`leaderno` = #{leaderno}</if>
+            <if test="businessarea != null  and businessarea != ''"> and `service_donatebaseinfo`.`businessarea` = #{businessarea}</if>
+            <if test="gainHospitalname != null  and gainHospitalname != ''"> and `service_donateorgan`.`GainHospitalName` = #{gainHospitalname}</if>
+            <if test="treatmenthospitalname != null  and treatmenthospitalname != ''"> and `service_donatebaseinfo`.`TreatmentHospitalName` = #{treatmenthospitalname}</if>
+            <if test="startorgangettime != null  and endorgangettime != null "> and `service_donateorgan`.`OrganGetTime` >= #{startorgangettime} and `service_donateorgan`.`OrganGetTime`  &lt;=  #{endorgangettime} </if>
+            <if test="starttransplanttime != null  and endtransplanttime != null  ">  and `service_donateorgan`.`TransplantTime` >= #{starttransplanttime} and  `service_donateorgan`.`TransplantTime` &lt;= #{endtransplanttime}</if>
+
+        </where>
+    </select>
+    <select id="countNumber" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan
+        where
+            OrganGetTime >= #{starttime} and OrganGetTime &lt;= #{endtime}
+            -- (OrganState = "3" or OrganState = "4" or OrganState = "5" or OrganState = "6")
+          AND OrganGetTime IS NOT NULL
+AND OrganNo != 'C00'
+          AND del_flag=0
+    </select>
+    <select id="countPeople" resultType="java.lang.Integer">
+        select count(distinct(InfoID)) from service_donateorgan
+        where create_time >= #{starttime} and create_time &lt;= #{endtime}
+    </select>
+    <select id="getAllDonateOrgansByTime" resultType="com.ruoyi.project.domain.ServiceDonateorgan">
+        <include refid="selectServiceDonateorganVo"/>
+        where OrganGetTime >= #{starttime} and OrganGetTime &lt;= #{endtime}
+        AND OrganGetTime IS NOT NULL
+        -- AND  (OrganState = "3" or OrganState = "4" or OrganState = "5" or OrganState = "6")
+        AND OrganNo != 'C00'
+        AND del_flag=0
+    </select>
+    <select id="selectServiceDonateorganListNotAbandon" resultMap="ServiceDonateorganResult">
+        <include refid="selectServiceDonateorganVo"/>
+        where OrganState != "99"
+    </select>
+
+    <select id="getOrgansCount" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan
+        where TransplantHospitalNo = #{organizationid} and del_flag = 0
+        and OrganGetTime >= #{starttime} and OrganGetTime &lt;= #{endtime}
+    </select>
+    <select id="getDistinctOrgansCount" resultType="java.lang.Integer">
+        select count(*) from service_donateorgan d
+        inner join service_donatebaseinfo b on b.id = d.InfoID
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where d.OrganNo = #{organno}
+        -- and (OrganState = "3" or OrganState = "4" or OrganState = "5" or OrganState = "6")
+        and d.del_flag=0
+        and d.OrganGetTime IS NOT NULL
+        <if test="starttime != null ">  and d.OrganGetTime >= #{starttime} </if>
+        <if test="endtime != null ">  and d.OrganGetTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getOrganNameByNo" resultType="java.lang.String">
+        select distinct OrganName from service_donateorgan
+        where OrganNo = #{organno}
+    </select>
+    <select id="selectAll" resultType="com.ruoyi.project.domain.ServiceDonateorgan">
+        <include refid="selectServiceDonateorganVo"/>
+        where OrganGetTime > 0 and del_flag = 0
+        and OrganGetTime >= #{starttime} and OrganGetTime &lt;= #{endtime}
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
new file mode 100644
index 0000000..5324027
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDonationwitnessMapper">
+    
+    <resultMap type="ServiceDonationwitness" id="ServiceDonationwitnessResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="gainhospitalno"    column="GainHospitalNo"    />
+        <result property="gainhospitalname"    column="GainHospitalName"    />
+        <result property="deathtime"    column="DeathTime"    />
+        <result property="deathreason"    column="DeathReason"    />
+        <result property="deathjudgedocto"    column="DeathJudgeDoctO"    />
+        <result property="deathjudgedoctt"    column="DeathJudgeDoctT"    />
+        <result property="deathjudgeannex"    column="DeathJudgeAnnex"    />
+        <result property="operationbegtime"    column="OperationBegTime"    />
+        <result property="operationendtime"    column="OperationEndTime"    />
+        <result property="operationdoctor"    column="OperationDoctor"    />
+        <result property="isspendremember"    column="IsSpendRemember"    />
+        <result property="isrestoreremains"    column="IsRestoreRemains"    />
+        <result property="rememberannex"    column="RememberAnnex"    />
+        <result property="responsibleuserid"    column="ResponsibleUserID"    />
+        <result property="responsibleusername"    column="ResponsibleUserName"    />
+        <result property="coordinateduserido"    column="CoordinatedUserIDO"    />
+        <result property="coordinatedusernameo"    column="CoordinatedUserNameO"    />
+        <result property="coordinateduseridt"    column="CoordinatedUserIDT"    />
+        <result property="coordinatedusernamet"    column="CoordinatedUserNameT"    />
+        <result property="abdominalaortacannulatime"    column="AbdominalAortaCannulaTime"    />
+        <result property="abdominalaortaperfusiontime"    column="AbdominalAortaPerfusionTime"    />
+        <result property="portalveincannulatime"    column="PortalVeinCannulaTime"    />
+        <result property="portalveinperfusiontime"    column="PortalVeinPerfusionTime"    />
+        <result property="pulmonaryarterycannulatime"    column="PulmonaryArteryCannulaTime"    />
+        <result property="pulmonaryarteryperfusiontime"    column="PulmonaryArteryPerfusionTime"    />
+        <result property="aortacannulatime"    column="AortaCannulaTime"    />
+        <result property="aortaperfusiontime"    column="AortaPerfusionTime"    />
+        <result property="del_flag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="organdonation"    column="OrganDonation"    />
+        <result property="organdonationOther"    column="OrganDonation_Other"    />
+        <result property="donationcategory"    column="DonationCategory"    />
+    </resultMap>
+
+    <sql id="selectServiceDonationwitnessVo">
+        select ID, InfoID, DonorNo, GainHospitalNo, GainHospitalName, DeathTime, DeathReason, DeathJudgeDoctO, DeathJudgeDoctT, DeathJudgeAnnex, OperationBegTime, OperationEndTime, OperationDoctor, IsSpendRemember, IsRestoreRemains, RememberAnnex, ResponsibleUserID, ResponsibleUserName, CoordinatedUserIDO, CoordinatedUserNameO, CoordinatedUserIDT, CoordinatedUserNameT, AbdominalAortaCannulaTime, AbdominalAortaPerfusionTime, PortalVeinCannulaTime, PortalVeinPerfusionTime, PulmonaryArteryCannulaTime, PulmonaryArteryPerfusionTime, AortaCannulaTime, AortaPerfusionTime, del_flag, create_by, create_time, update_by, update_time, OrganDonation, OrganDonation_Other, DonationCategory from service_donationwitness
+    </sql>
+
+    <select id="selectServiceDonationwitnessList" parameterType="ServiceDonationwitness" resultMap="ServiceDonationwitnessResult">
+        <include refid="selectServiceDonationwitnessVo"/>
+        <where>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="gainhospitalname != null  and gainhospitalname != ''"> and GainHospitalName like concat('%', #{gainhospitalname}, '%')</if>
+            <if test="operationdoctor != null  and operationdoctor != ''"> and OperationDoctor = #{operationdoctor}</if>
+        </where>
+    </select>
+
+    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.DonationWitnessVO">
+    SELECT
+        `service_donatebaseinfo`.`ID` AS `ID`,
+        `service_donatebaseinfo`.`DonorNo` AS `DonorNo`,
+        `service_donatebaseinfo`.`DonationCategory` AS `DonationCategory`,
+        `service_donatebaseinfo`.`Name` AS `Name`,
+        `service_donatebaseinfo`.`Sex` AS `Sex`,
+        `service_donatebaseinfo`.`IDCardType` AS `IDCardType`,
+        `service_donatebaseinfo`.`IDCardNo` AS `IDCardNo`,
+        `service_donatebaseinfo`.`Age` AS `Age`,
+        `service_donatebaseinfo`.`Birthday` AS `Birthday`,
+        `service_donatebaseinfo`.`TreatmentHospitalNo` AS `TreatmentHospitalNo`,
+        `service_donatebaseinfo`.`TreatmentHospitalName` AS `TreatmentHospitalName`,
+        `service_donatebaseinfo`.`TreatmentDeptName` AS `TreatmentDeptName`,
+        `service_donatebaseinfo`.`RecordState` AS `RecordState`,
+        `service_donatebaseinfo`.`ReporterNo` AS `ReporterNo`,
+        `service_donatebaseinfo`.`ReporterName` AS `ReporterName`,
+        `service_donatebaseinfo`.`ReporterPhone` AS `ReporterPhone`,
+        `service_donatebaseinfo`.`ReportTime` AS `ReportTime`,
+        `service_donatebaseinfo`.`create_by` AS `basecreateby`,
+        `service_donationwitness`.`ID` AS `dwID`,
+        `service_donationwitness`.`InfoID` AS `InfoID`,
+        `service_donationwitness`.`DonorNo` AS `dwDonorNo`,
+        `service_donationwitness`.`GainHospitalNo` AS `GainHospitalNo`,
+        `service_donationwitness`.`GainHospitalName` AS `GainHospitalName`,
+        `service_donationwitness`.`DeathTime` AS `DeathTime`,
+        `service_donationwitness`.`DeathReason` AS `DeathReason`,
+        `service_donationwitness`.`DeathJudgeDoctO` AS `DeathJudgeDoctO`,
+        `service_donationwitness`.`DeathJudgeDoctT` AS `DeathJudgeDoctT`,
+        `service_donationwitness`.`DeathJudgeAnnex` AS `DeathJudgeAnnex`,
+        `service_donationwitness`.`OperationBegTime` AS `OperationBegTime`,
+        `service_donationwitness`.`OperationEndTime` AS `OperationEndTime`,
+        `service_donationwitness`.`OperationDoctor` AS `OperationDoctor`,
+        `service_donationwitness`.`IsSpendRemember` AS `IsSpendRemember`,
+        `service_donationwitness`.`IsRestoreRemains` AS `IsRestoreRemains`,
+        `service_donationwitness`.`RememberAnnex` AS `RememberAnnex`,
+        `service_donationwitness`.`ResponsibleUserID` AS `ResponsibleUserID`,
+        `service_donationwitness`.`ResponsibleUserName` AS `ResponsibleUserName`,
+        `service_donationwitness`.`CoordinatedUserIDO` AS `CoordinatedUserIDO`,
+        `service_donationwitness`.`CoordinatedUserNameO` AS `CoordinatedUserNameO`,
+        `service_donationwitness`.`CoordinatedUserIDT` AS `CoordinatedUserIDT`,
+        `service_donationwitness`.`CoordinatedUserNameT` AS `CoordinatedUserNameT`,
+        `service_donationwitness`.`AbdominalAortaCannulaTime` AS `AbdominalAortaCannulaTime`,
+        `service_donationwitness`.`AbdominalAortaPerfusionTime` AS `AbdominalAortaPerfusionTime`,
+        `service_donationwitness`.`PortalVeinCannulaTime` AS `PortalVeinCannulaTime`,
+        `service_donationwitness`.`PortalVeinPerfusionTime` AS `PortalVeinPerfusionTime`,
+        `service_donationwitness`.`PulmonaryArteryPerfusionTime` AS `PulmonaryArteryPerfusionTime`,
+        `service_donationwitness`.`PulmonaryArteryCannulaTime` AS `PulmonaryArteryCannulaTime`,
+        `service_donationwitness`.`AortaCannulaTime` AS `AortaCannulaTime`,
+        `service_donationwitness`.`AortaPerfusionTime` AS `AortaPerfusionTime`,
+        `service_donationwitness`.`OrganDonation` AS `OrganDonation`,
+        `service_donationwitness`.`OrganDonation_Other` AS `OrganDonation_Other`,
+        `service_donationwitness`.`DonationCategory` AS `dwDonationCategory`,
+        `service_donationwitness`.`del_flag` AS `delflag`,
+        `service_donationwitness`.`create_by` AS `createby`,
+        `service_donationwitness`.`create_time` AS `createtime`,
+        `service_donationwitness`.`update_by` AS `updateby`,
+        `service_donationwitness`.`update_time` AS `updatetime`
+    FROM
+
+            `service_donatebaseinfo`
+            LEFT JOIN `service_donationwitness` ON
+                `service_donatebaseinfo`.`ID` = `service_donationwitness`.`InfoID`
+            LEFT JOIN `base_organization` ON
+            `base_organization`.`OrganizationID` = `service_donatebaseinfo`.`TreatmentHospitalNo`
+
+        <where>
+            <if test="donorno != null  and donorno != ''"> and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
+            <if test="name != null  and name != ''"> and `service_donatebaseinfo`.`Name` like concat('%', #{name}, '%')</if>
+            <if test="idcardno != null  and idcardno != ''"> and `service_donatebaseinfo`.`IDCardNo` = #{idcardno}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}</if>
+            <if test="recordstate != null  and recordstate != ''"> and `service_donatebaseinfo`.`RecordState` = #{recordstate}</if>
+            <if test="basecreateby != null  and basecreateby != ''"> and `service_donatebaseinfo`.`create_by`  = #{basecreateby}</if>
+            <if test="starttime != null "> and `service_donationwitness`.OperationBegTime >= #{starttime} </if>
+            <if test="endtime != null ">  and `service_donationwitness`.OperationBegTime &lt;= #{endtime}</if>
+            <if test="reporterno != null  and reporterno != ''"> and `service_donatebaseinfo`.ReporterNo = #{reporterno}</if>
+            <if test="city != null and city != ''"> and `base_organization`.`City` = #{city}</if>
+        </where>
+
+        order by `service_donationwitness`.`create_time` desc
+
+    </select>
+    <select id="getDBDDonaterNumberThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donationwitness w
+        inner join service_donatebaseinfo b on w.InfoID = b.id
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where w.DonationCategory = "DBD"
+        <if test="starttime != null "> and w.OperationBegTime >= #{starttime} </if>
+        <if test="endtime != null ">  and w.OperationBegTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getDCDDonaterNumberThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donationwitness w
+        inner join service_donatebaseinfo b on w.InfoID = b.id
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where w.DonationCategory = "DCD"
+        <if test="starttime != null "> and w.OperationBegTime >= #{starttime} </if>
+        <if test="endtime != null ">  and w.OperationBegTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+
+    </select>
+    <select id="getDBCDDonaterNumberThisYear" resultType="java.lang.Integer">
+        select count(*) from service_donationwitness w
+        inner join service_donatebaseinfo b on w.InfoID = b.id
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        where w.DonationCategory = "DBCD"
+        <if test="starttime != null "> and w.OperationBegTime >= #{starttime} </if>
+        <if test="endtime != null ">  and w.OperationBegTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+    </select>
+    <select id="getDonationCategoryByInfoId" resultType="java.lang.String">
+        select DonationCategory from service_donationwitness
+        where InfoID = #{infoId} and del_flag = 0
+    </select>
+    <select id="countNumber" resultType="java.lang.Integer">
+        select count(*) from service_donationwitness
+        where OperationBegTime >= #{starttime} and OperationBegTime &lt;= #{endtime}
+    </select>
+    <select id="selectByInfoId" resultType="com.ruoyi.project.domain.ServiceDonationwitness">
+        <include refid="selectServiceDonationwitnessVo"/>
+        where InfoID = #{infoid}
+    </select>
+    <select id="getAllDonatePeople" resultType="com.ruoyi.project.domain.ServiceDonationwitness">
+        <include refid="selectServiceDonationwitnessVo"/>
+    </select>
+    <select id="countThisYearByTime" resultType="java.lang.Integer">
+        select count(*) from service_donationwitness w
+        inner join service_donatebaseinfo b on w.InfoID = b.id
+        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        <where>
+        <if test="starttime != null "> and w.OperationBegTime >= #{starttime} </if>
+        <if test="endtime != null ">  and w.OperationBegTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''"> and o.City = #{city} </if>
+        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+        </where>
+    </select>
+    <select id="getWitnessList" resultType="com.ruoyi.project.domain.ServiceDonationwitness">
+        <include refid="selectServiceDonationwitnessVo"/>
+    </select>
+    <select id="getAllDonatePeopleByTime" resultType="com.ruoyi.project.domain.ServiceDonationwitness">
+        <include refid="selectServiceDonationwitnessVo"/>
+        where OperationEndTime >= #{starttime} and OperationEndTime &lt;= #{endtime}
+    </select>
+    <select id="selectByTime" resultType="com.ruoyi.project.domain.ServiceDonationwitness">
+        <include refid="selectServiceDonationwitnessVo"/>
+        where OperationBegTime >= #{starttime} and OperationBegTime &lt;= #{endtime}
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewopinionsMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewopinionsMapper.xml
new file mode 100644
index 0000000..23dd1a2
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewopinionsMapper.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceEthicalreviewopinionsMapper">
+    
+    <resultMap type="ServiceEthicalreviewopinions" id="ServiceEthicalreviewopinionsResult">
+        <result property="id"    column="ID"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="expertopinion"    column="ExpertOpinion"    />
+        <result property="expertconclusion"    column="ExpertConclusion"    />
+        <result property="expertname"    column="ExpertName"    />
+        <result property="conclusiontime"    column="ConclusionTime"    />
+        <result property="conclusionannex"    column="ConclusionAnnex"    />
+        <result property="conclusionorder"    column="ConclusionOrder"    />
+    </resultMap>
+
+    <sql id="selectServiceEthicalreviewopinionsVo">
+        select ID, del_flag, create_by, create_time, update_by, update_time, InfoID, DonorNo, ExpertOpinion, ExpertConclusion, ExpertName, ConclusionTime, ConclusionAnnex, ConclusionOrder from service_ethicalreviewopinions
+    </sql>
+
+    <select id="selectServiceEthicalreviewopinionsList" parameterType="ServiceEthicalreviewopinions" resultMap="ServiceEthicalreviewopinionsResult">
+        <include refid="selectServiceEthicalreviewopinionsVo"/>
+        <where>
+            <if test="infoid != null "> and InfoID = #{infoid}</if>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="expertopinion != null  and expertopinion != ''"> and ExpertOpinion = #{expertopinion}</if>
+            <if test="expertconclusion != null "> and ExpertConclusion = #{expertconclusion}</if>
+            <if test="expertname != null  and expertname != ''"> and ExpertName like concat('%', #{expertname}, '%')</if>
+            <if test="conclusiontime != null "> and ConclusionTime = #{conclusiontime}</if>
+            <if test="conclusionannex != null  and conclusionannex != ''"> and ConclusionAnnex = #{conclusionannex}</if>
+            <if test="conclusionorder != null "> and ConclusionOrder = #{conclusionorder}</if>
+        </where>
+    </select>
+    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.EthicalReviewVO">
+        SELECT
+        `service_donatebaseinfo`.`ID` AS `ID`,
+        `service_donatebaseinfo`.`Name` AS `Name`,
+        `service_donatebaseinfo`.`Sex` AS `Sex`,
+        `service_donatebaseinfo`.`IDCardNo` AS `IDCardNo`,
+        `service_donatebaseinfo`.`Age` AS `Age`,
+        `service_donatebaseinfo`.`Birthday` AS `Birthday`,
+        `service_donatebaseinfo`.`Nationality` AS `Nationality`,
+        `service_donatebaseinfo`.`Nation` AS `Nation`,
+        `service_donatebaseinfo`.`RegisterAddress` AS `RegisterAddress`,
+        `service_donatebaseinfo`.`RegisterProvince` AS `RegisterProvince`,
+        `service_donatebaseinfo`.`RegisterProvinceName` AS `RegisterProvinceName`,
+        `service_donatebaseinfo`.`RegisterCity` AS `RegisterCity`,
+        `service_donatebaseinfo`.`RegisterCityName` AS `RegisterCityName`,
+        `service_donatebaseinfo`.`RegisterTown` AS `RegisterTown`,
+        `service_donatebaseinfo`.`RegisterTownName` AS `RegisterTownName`,
+        `service_donatebaseinfo`.`RegisterCommunity` AS `RegisterCommunity`,
+        `service_donatebaseinfo`.`RegisterCommunityName` AS `RegisterCommunityName`,
+        `service_donatebaseinfo`.`RegisterCountyCode` AS `RegisterCountyCode`,
+        `service_donatebaseinfo`.`RegisterCountyName` AS `RegisterCountyName`,
+        `service_donatebaseinfo`.`RecordState` AS `RecordState`,
+        `service_donatebaseinfo`.`TreatmentHospitalNo` AS `TreatmentHospitalNo`,
+        `service_donatebaseinfo`.`TreatmentHospitalName` AS `TreatmentHospitalName`,
+        `service_donatebaseinfo`.`TreatmentDeptName` AS `TreatmentDeptName`,
+        `service_donatebaseinfo`.`DiagnosisNo` AS `DiagnosisNo`,
+        `service_donatebaseinfo`.`DiagnosisName` AS `DiagnosisName`,
+        `service_donatebaseinfo`.`DonorNo` AS `DonorNo`,
+        `service_donatebaseinfo`.`ReporterNo` AS `ReporterNo`,
+        `service_donatebaseinfo`.`ReporterName` AS `ReporterName`,
+        `service_donatebaseinfo`.`ReporterPhone` AS `ReporterPhone`,
+        `service_donatebaseinfo`.`ReportTime` AS `ReportTime`,
+        `service_donatebaseinfo`.`BloodType` AS `BloodType`,
+        `service_donatebaseinfo`.`RhYin` AS `RhYin`,
+        `service_donatebaseinfo`.`InpatientNo` AS `InpatientNo`,
+        `service_donatebaseinfo`.`IllnessOverview` AS `IllnessOverview`,
+        `service_donatebaseinfo`.`DiseaseType` AS `DiseaseType`,
+        `service_donatebaseinfo`.`PatientState` AS `PatientState`,
+        `service_donatebaseinfo`.`create_by` AS `basecreateby`,
+        `service_donateflowchart`.`ID` AS `fcID`,
+        `service_donateflowchart`.`InfoID` AS `InfoID`,
+        `service_donateflowchart`.`DonorNo` AS `fcDonorNo`,
+        `service_donateflowchart`.`del_flag` AS `delFlag`,
+        `service_donateflowchart`.`create_by` AS `createBy`,
+        `service_donateflowchart`.`create_time` AS `createTime`,
+        `service_donateflowchart`.`update_by` AS `updateBy`,
+        `service_donateflowchart`.`update_time` AS `updateTime`,
+        `service_donateflowchart`.`FlowName` AS `FlowName`,
+        `service_donateflowchart`.`FlowAnnex` AS `FlowAnnex`,
+        `service_donateflowchart`.`FlowContent` AS `FlowContent`,
+        `service_donateflowchart`.`FlowConclusion` AS `FlowConclusion`
+        FROM
+
+        `service_donatebaseinfo`
+        LEFT JOIN `service_donateflowchart` ON
+        `service_donatebaseinfo`.`ID` = `service_donateflowchart`.`InfoID`
+        AND  `service_donateflowchart`.`FlowName` = '浼︾悊瀹℃煡'
+        LEFT JOIN `base_organization` ON
+        `base_organization`.`OrganizationID` = `service_donatebaseinfo`.`TreatmentHospitalNo`
+        <where>
+            <if test="donorno != null  and donorno != ''"> and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
+            <if test="name != null  and name != ''"> and `service_donatebaseinfo`.`Name` like concat('%', #{name}, '%')</if>
+            <if test="idcardno != null  and idcardno != ''"> and `service_donatebaseinfo`.`IDCardNo` = #{idcardno}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}</if>
+            <if test="recordstate != null  and recordstate != ''"> and `service_donatebaseinfo`.`RecordState` = #{recordstate}</if>
+            <if test="basecreateby != null  and basecreateby != ''"> and `service_donatebaseinfo`.`create_by` = #{basecreateby}</if>
+            <if test="starttime != null "> and `service_donateflowchart`.create_time >= #{starttime} </if>
+            <if test="endtime != null ">  and `service_donateflowchart`.create_time &lt;= #{endtime}</if>
+            <if test="reporterno != null  and reporterno != ''"> and `service_donatebaseinfo`.ReporterNo = #{reporterno}</if>
+            <if test="city != null and city != ''"> and `base_organization`.`City` = #{city}</if>
+            <if test="fcid != null ">  and `service_donateflowchart`.`ID` = #{fcid}</if>
+        </where>
+
+        order by  `service_donateflowchart`.`create_time` desc
+
+    </select>
+    <select id="countNumber" resultType="java.lang.Integer">
+        select count(*) from service_donateflowchart where `service_donateflowchart`.`FlowName` = '浼︾悊瀹℃煡'
+        and create_time >= #{starttime} and create_time &lt;= #{endtime}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceExpertexpenseMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceExpertexpenseMapper.xml
new file mode 100644
index 0000000..7f3786c
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceExpertexpenseMapper.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.ServiceExpertexpenseMapper">
+    
+    <resultMap type="ServiceExpertexpense" id="ServiceExpertexpenseResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="donorname"    column="DonorName"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="userno"    column="UserNo"    />
+        <result property="username"    column="UserName"    />
+        <result property="ievaluatecost"    column="IEvaluateCost"    />
+        <result property="ecomteamcost"    column="ECOMTeamCost"    />
+        <result property="mcost"    column="MCost"    />
+        <result property="mexpertcost"    column="MExpertCost"    />
+        <result property="mmedicalcost"    column="MMedicalCost"    />
+        <result property="mnursecost"    column="MNurseCost"    />
+        <result property="meetingcost"    column="MeetingCost"    />
+        <result property="nursecost"    column="NurseCost"    />
+        <result property="checkcost"    column="CheckCost"    />
+        <result property="transportcost"    column="TransportCost"    />
+        <result property="illnessevaluatecost"    column="IllnessEvaluateCost"    />
+        <result property="deathjudgecost"    column="DeathJudgeCost"    />
+        <result property="deathothercost"    column="DeathOtherCost"    />
+        <result property="bnursecost"    column="BNurseCost"    />
+        <result property="ethicsevaluatecost"    column="EthicsEvaluateCost"    />
+        <result property="oproducecost"    column="OProduceCost"    />
+        <result property="otransportcost"    column="OTransportCost"    />
+        <result property="oevaluatecost"    column="OEvaluateCost"    />
+        <result property="totalcost"    column="TotalCost"    />
+        <result property="managerno"    column="ManagerNo"    />
+        <result property="managername"    column="ManagerName"    />
+        <result property="departmentno"    column="DepartmentNo"    />
+        <result property="departmentname"    column="DepartmentName"    />
+        <result property="opochecker"    column="OPOchecker"    />
+        <result property="financedirector"    column="FinanceDirector"    />
+        <result property="financechecher"    column="FinanceChecher"    />
+        <result property="recordstatus"    column="RecordStatus"    />
+        <result property="uploadflag"    column="uploadflag"    />
+        <result property="uploadtime"    column="uploadtime"    />
+    </resultMap>
+
+    <sql id="selectServiceExpertexpenseVo">
+        select ID, InfoID, DonorNo, DonorName, del_flag, create_by, create_time, update_by, update_time, UserNo, UserName, IEvaluateCost, ECOMTeamCost, MCost, MExpertCost, MMedicalCost, MNurseCost, MeetingCost, NurseCost, CheckCost, TransportCost, IllnessEvaluateCost, DeathJudgeCost, DeathOtherCost, BNurseCost, EthicsEvaluateCost, OProduceCost, OTransportCost, OEvaluateCost, TotalCost, ManagerNo, ManagerName, DepartmentNo, DepartmentName, OPOchecker, FinanceDirector, FinanceChecher, RecordStatus, uploadflag, uploadtime from service_expertexpense
+    </sql>
+
+    <select id="selectServiceExpertexpenseList" parameterType="ServiceExpertexpense" resultMap="ServiceExpertexpenseResult">
+        <include refid="selectServiceExpertexpenseVo"/>
+        <where>
+            <if test="infoid != null "> and InfoID = #{infoid}</if>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="donorname != null  and donorname != ''"> and DonorName like concat('%', #{donorname}, '%')</if>
+            <if test="userno != null  and userno != ''"> and UserNo = #{userno}</if>
+            <if test="username != null  and username != ''"> and UserName like concat('%', #{username}, '%')</if>
+            <if test="ievaluatecost != null "> and IEvaluateCost = #{ievaluatecost}</if>
+            <if test="illnessevaluatecost != null "> and IllnessEvaluateCost = #{illnessevaluatecost}</if>
+            <if test="deathjudgecost != null "> and DeathJudgeCost = #{deathjudgecost}</if>
+            <if test="ethicsevaluatecost != null "> and EthicsEvaluateCost = #{ethicsevaluatecost}</if>
+            <if test="oevaluatecost != null "> and OEvaluateCost = #{oevaluatecost}</if>
+            <if test="departmentno != null  and departmentno != ''"> and DepartmentNo = #{departmentno}</if>
+            <if test="departmentname != null  and departmentname != ''"> and DepartmentName like concat('%', #{departmentname}, '%')</if>
+            <if test="recordstatus != null  and recordstatus != ''"> and RecordStatus = #{recordstatus}</if>
+            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
+            <if test="uploadtime != null "> and uploadtime = #{uploadtime}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceExternalpersonMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceExternalpersonMapper.xml
new file mode 100644
index 0000000..2264e65
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceExternalpersonMapper.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceExternalpersonMapper">
+    
+    <resultMap type="ServiceExternalperson" id="ServiceExternalpersonResult">
+        <result property="id"    column="ID"    />
+        <result property="userno"    column="UserNo"    />
+        <result property="username"    column="UserName"    />
+        <result property="userstatus"    column="UserStatus"    />
+        <result property="usertype"    column="UserType"    />
+        <result property="idcardno"    column="IDCardNo"    />
+        <result property="personnelunitno"    column="PersonnelUnitNo"    />
+        <result property="sex"    column="Sex"    />
+        <result property="telephone"    column="Telephone"    />
+        <result property="address"    column="Address"    />
+        <result property="unitno"    column="UnitNo"    />
+        <result property="unitname"    column="UnitName"    />
+        <result property="title"    column="Title"    />
+        <result property="depositbank"    column="DepositBank"    />
+        <result property="branchbankname"    column="BranchBankName"    />
+        <result property="bankcardno"    column="BankCardNo"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="pym"    column="PYM"    />
+        <result property="wbm"    column="WBM"    />
+    </resultMap>
+
+    <sql id="selectServiceExternalpersonVo">
+        select ID, UserNo, UserName, UserStatus, IDCardNo, UserType, PersonnelUnitNo, Sex, Telephone, Address, UnitNo, UnitName, Title, DepositBank, BranchBankName, BankCardNo, del_flag, create_by, create_time, update_by, update_time, PYM, WBM from service_externalperson
+    </sql>
+
+    <select id="selectServiceExternalpersonList" parameterType="ServiceExternalperson" resultMap="ServiceExternalpersonResult">
+        <include refid="selectServiceExternalpersonVo"/>
+        <where>
+            <if test="userno != null  and userno != ''"> and UserNo = #{userno}</if>
+            <if test="username != null  and username != ''"> and UserName like concat('%', #{username}, '%')</if>
+            <if test="usertype != null  and usertype != ''"> and UserType = #{usertype}</if>
+            <if test="sex != null  and sex != ''"> and Sex = #{sex}</if>
+            <if test="telephone != null  and telephone != ''"> and Telephone = #{telephone}</if>
+            <if test="address != null  and address != ''"> and Address = #{address}</if>
+            <if test="unitno != null  and unitno != ''"> and UnitNo = #{unitno}</if>
+            <if test="unitname != null  and unitname != ''"> and UnitName = #{unitname}</if>
+            <if test="title != null  and title != ''"> and Title = #{title}</if>
+            <if test="depositbank != null  and depositbank != ''"> and DepositBank = #{depositbank}</if>
+            <if test="branchbankname != null  and branchbankname != ''"> and BranchBankName = #{branchbankname}</if>
+            <if test="bankcardno != null  and bankcardno != ''"> and BankCardNo = #{bankcardno}</if>
+
+        </where>
+    </select>
+
+    <select id="getAllpeople" resultType="com.ruoyi.project.domain.ServiceExternalperson">
+        <include refid="selectServiceExternalpersonVo"/>
+        where UserType = #{usertype}
+    </select>
+    <select id="getInfoByUserNo" resultType="com.ruoyi.project.domain.ServiceExternalperson">
+        <include refid="selectServiceExternalpersonVo"/>
+        where UserNo = #{userno}
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml
new file mode 100644
index 0000000..c2d6661
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceFundMapper">
+    
+    <resultMap type="ServiceFund" id="ServiceFundResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="donorname"    column="DonorName"    />
+        <result property="del_flag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="userno"    column="UserNo"    />
+        <result property="username"    column="UserName"    />
+        <result property="unitname"    column="UnitName"    />
+        <result property="unitno"    column="UnitNo"    />
+        <result property="unituserno"    column="UnitUserNo"    />
+        <result property="phone"    column="Phone"    />
+        <result property="annexbankcard"    column="AnnexBankCard"    />
+        <result property="annexregistform"    column="AnnexRegistForm"    />
+        <result property="amountrequested"    column="AmountRequested"    />
+        <result property="applytype"    column="ApplyType"    />
+        <result property="prepaidamount"    column="PrepaidAmount"    />
+        <result property="invoicecount"    column="InvoiceCount"    />
+        <result property="attachcount"    column="AttachCount"    />
+        <result property="managerno"    column="ManagerNo"    />
+        <result property="managername"    column="ManagerName"    />
+        <result property="deptmentno"    column="DeptmentNo"    />
+        <result property="deptmentname"    column="DeptmentName"    />
+        <result property="opochecker"    column="OPOchecker"    />
+        <result property="finvicepresident"    column="FinVicePresident"    />
+        <result property="busvicepresident"    column="BusVicePresident"    />
+        <result property="officedirector"    column="OfficeDirector"    />
+        <result property="financedirector"    column="FinanceDirector"    />
+        <result property="totalcost"    column="TotalCost"    />
+        <result property="procurementcost"    column="ProcurementCost"    />
+        <result property="expertcost"    column="ExpertCost"    />
+        <result property="ethicscost"    column="EthicsCost"    />
+        <result property="medicalcost"    column="MedicalCost"    />
+        <result property="familycost"    column="FamilyCost"    />
+        <result property="aftercarecost"    column="AftercareCost"    />
+        <result property="remark"    column="Remark"    />
+        <result property="recordstatus"    column="RecordStatus"    />
+        <result property="uploadflag"    column="uploadflag"    />
+        <result property="uploadtime"    column="uploadtime"    />
+        <result property="flowlevel"    column="FlowLevel"    />
+        <result property="pretaxcost"    column="PretaxCost"    />
+        <result property="taxedcost"    column="TaxedCost"    />
+    </resultMap>
+
+    <sql id="selectServiceFundVo">
+        select ID, InfoID, DonorNo, DonorName, del_flag, create_by, create_time, update_by, update_time, UserNo, UserName, UnitName, UnitNo, UnitUserNo, PretaxCost, TaxedCost, Phone, AnnexBankCard, AnnexRegistForm, AmountRequested, ApplyType, PrepaidAmount, InvoiceCount, AttachCount, ManagerNo, ManagerName, DeptmentNo, DeptmentName, OPOchecker, FinVicePresident, BusVicePresident, OfficeDirector, FinanceDirector, FinanceChecher, TotalCost, ProcurementCost, ExpertCost, EthicsCost, MedicalCost, FamilyCost, AftercareCost, Remark, RecordStatus, uploadflag, uploadtime,FlowLevel from service_fund
+    </sql>
+
+    <select id="selectServiceFundList" parameterType="ServiceFund" resultMap="ServiceFundResult">
+        <include refid="selectServiceFundVo"/>
+
+        where del_flag = '0'
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="userno != null  and userno != ''"> and UserNo = #{userno}</if>
+            <if test="username != null  and username != ''"> and UserName like concat('%', #{username}, '%')</if>
+            <if test="applytype != null  and applytype != ''"> and ApplyType = #{applytype}</if>
+            <if test="deptmentname != null  and deptmentname != ''"> and DeptmentName like concat('%', #{deptmentname}, '%')</if>
+            <if test="recordstatus != null"> and RecordStatus = #{recordstatus}</if>
+            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
+            <if test="uploadtime != null "> and uploadtime = #{uploadtime}</if>
+            <if test="createBy != null  and createBy != '' "> and create_by = #{createBy}</if>
+            <if test="infoid != null "> and InfoID = #{infoid}</if>
+            <if test="donorno != null   and donorno != '' "> and DonorNo = #{donorno}</if>
+    </select>
+
+    <select id="getInfoByInfoId" resultType="com.ruoyi.project.domain.ServiceFund">
+        <include refid="selectServiceFundVo"/>
+        where infoid = #{infoid} and del_flag = '0'
+    </select>
+
+    <select id="getFundId" resultType="java.lang.Long">
+        select max(ID) from service_fund
+        where infoid = #{infoid}
+    </select>
+    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.FundVO">
+        SELECT
+        `service_fund`.`ID` AS `id`,
+        `service_fund`.`InfoID` AS `infoid`,
+        `service_fund`.`DonorNo` AS `donorno`,
+        `service_fund`.`DonorName` AS `donorname`,
+        `service_fund`.`UserNo` AS `userno`,
+        `service_fund`.`UserName` AS `username`,
+        `service_fund`.`UnitName` AS `unitname`,
+        `service_fund`.`UnitNo` AS `unitno`,
+        `service_fund`.`UnitUserNo` AS `unituserno`,
+        `service_fund`.`Phone` AS `phone`,
+        `service_fund`.`AnnexBankCard` AS `annebankcard`,
+        `service_fund`.`AnnexRegistForm` AS `annexregistform`,
+        `service_fund`.`AmountRequested` AS `Amountrequested`,
+        `service_fund`.`ApplyType` AS `applytype`,
+        `service_fund`.`PrepaidAmount` AS `prepaidamount`,
+        `service_fund`.`InvoiceCount` AS `invoicecount`,
+        `service_fund`.`AttachCount` AS `attachcount`,
+        `service_fund`.`ManagerNo` AS `managerno`,
+        `service_fund`.`ManagerName` AS `managername`,
+        `service_fund`.`DeptmentNo` AS `deptmentno`,
+        `service_fund`.`DeptmentName` AS `deptmentname`,
+        `service_fund`.`OPOchecker` AS `opochecker`,
+        `service_fund`.`FinVicePresident` AS `finvicepresident`,
+        `service_fund`.`BusVicePresident` AS `busvicepresident`,
+        `service_fund`.`OfficeDirector` AS `officedirector`,
+        `service_fund`.`FinanceDirector` AS `financedirector`,
+        `service_fund`.`TotalCost` AS `totalcost`,
+        `service_fund`.`ProcurementCost` AS `procurementcost`,
+        `service_fund`.`ExpertCost` AS `expertcost`,
+        `service_fund`.`EthicsCost` AS `ethicscost`,
+        `service_fund`.`MedicalCost` AS `medicalcost`,
+        `service_fund`.`FamilyCost` AS `familycost`,
+        `service_fund`.`AftercareCost` AS `aftercarecost`,
+        `service_fund`.`Remark` AS `remark`,
+        `service_fund`.`RecordStatus` AS `recordstatus`,
+        `service_fund`.`del_flag` AS `del_flag`,
+        `service_fund`.`create_by` AS `create_by`,
+        `service_fund`.`create_time` AS `create_time`,
+        `service_fund`.`update_by` AS `update_by`,
+        `service_fund`.`update_time` AS `update_time`,
+        `service_fund`.`uploadflag` AS `uploadflag`,
+        `service_fund`.`uploadtime` AS `uploadtime`,
+        `service_fund`.`PretaxCost` AS `pretaxcost`,
+        `service_fund`.`TaxedCost` AS `taxedcost`,
+        `service_funddetail`.`ID` AS `fdid`,
+        `service_funddetail`.`fundID` AS `fundid`,
+        `service_funddetail`.`BeneficiaryName` AS `beneficiaryname`,
+        `service_funddetail`.`BeneficiaryNo` AS `beneficiaryno`,
+        `service_funddetail`.`UnitName` AS `fdunitname`,
+        `service_funddetail`.`UnitNo` AS `fdunitno`,
+        `service_funddetail`.`UnitUserNo` AS `fdunituserno`,
+        `service_funddetail`.`Title` AS `title`,
+        `service_funddetail`.`IDCardType` AS `idcardtype`,
+        `service_funddetail`.`IDCardNo` AS `idcardno`,
+        `service_funddetail`.`Sex` AS `sex`,
+        `service_funddetail`.`FamilyRelations` AS `familyrelations`,
+        `service_funddetail`.`Phone` AS `fdphone`,
+        `service_funddetail`.`DepositBank` AS `depositbank`,
+        `service_funddetail`.`BankCardNo` AS `bankcardno`,
+        `service_funddetail`.`BranchBankName` AS `branchbankname`,
+        `service_funddetail`.`AnnexBankCard` AS `fdannexbankcard`,
+        `service_funddetail`.`AnnexRegistForm` AS `fdannexregistform`,
+        `service_funddetail`.`ApplyType` AS `fdapplytype`,
+        `service_funddetail`.`ItemID` AS `itemid`,
+        `service_funddetail`.`ItemName` AS `itemname`,
+        `service_funddetail`.`ItemType` AS `itemtype`,
+        `service_funddetail`.`Amount` AS `amount`,
+        `service_funddetail`.`TaxAmount` AS `taxamount`,
+        `service_funddetail`.`TaxedAmount` AS `taxedamount`,
+        `service_funddetail`.`PrepaidAmount` AS `fdprepaidamount`,
+        `service_funddetail`.`InvoiceCount` AS `fdinvoicecount`,
+        `service_funddetail`.`AttachCount` AS `fdattachcount`,
+        `service_funddetail`.`Remark` AS `fdremark`,
+        `service_funddetail`.`RecordStatus` AS `fdrecordstatus`
+        `service_funddetail`.`Quantity` AS `quantity`,
+        `service_funddetail`.`Price` AS `price`
+        FROM
+        (
+        `service_funddetail`
+        LEFT JOIN `service_fund` ON ((
+        `service_fund`.`ID` = `service_funddetail`.`fundID`
+        )))
+        <where>
+            <if test="donorno != null  and donorno != ''"> and `service_fund`.`DonorNo` = #{donorno}</if>
+            <if test="userno != null  and userno != ''"> and `service_fund`.`UserNo` = #{userno}</if>
+            <if test="username != null  and username != ''"> and `service_fund`.`UserName` = #{username}</if>
+            <if test="unitname != null  and unitname != ''"> and `service_fund`.`UnitName` = #{unitname}</if>
+            <if test="create_by != null  and create_by != ''"> and `service_fund`.`create_by` = #{create_by}</if>
+            <if test="create_time != null  and create_time != ''"> and `service_fund`.`create_time` = #{create_time}</if>
+
+        </where>
+
+    </select>
+
+    <select id="getListBypower" statementType="CALLABLE" resultType="com.ruoyi.project.domain.vo.SpFinancialExpensesFundOut">
+        call SP_FINANCIAL_EXPENSES(#{PAUSERNO,mode=IN,jdbcType=VARCHAR},#{PAFUNDTYPE,mode=IN,jdbcType=INTEGER},#{PAAPPLICANT,mode=IN,jdbcType=VARCHAR},#{PAAPPLICATIONBEGTIME,mode=IN,jdbcType=VARCHAR},#{PAAPPLICATIONENDTIME,mode=IN,jdbcType=VARCHAR},#{PADEPARTMENT,mode=IN,jdbcType=VARCHAR},#{CHECKFLAG,mode=IN,jdbcType=INTEGER},#{APPLYTYPE,mode=IN,jdbcType=INTEGER})
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFundSharedMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFundSharedMapper.xml
new file mode 100644
index 0000000..abc3bf5
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFundSharedMapper.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.ServiceFundSharedMapper">
+    
+    <resultMap type="ServiceFundShared" id="ServiceFundSharedResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="donorname"    column="DonorName"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="userno"    column="UserNo"    />
+        <result property="username"    column="UserName"    />
+        <result property="unitname"    column="UnitName"    />
+        <result property="unitno"    column="UnitNo"    />
+        <result property="unituserno"    column="UnitUserNo"    />
+        <result property="phone"    column="Phone"    />
+        <result property="annexbankcard"    column="AnnexBankCard"    />
+        <result property="annexregistform"    column="AnnexRegistForm"    />
+        <result property="pretaxcost"    column="PretaxCost"    />
+        <result property="taxedcost"    column="TaxedCost"    />
+        <result property="totalcost"    column="TotalCost"    />
+        <result property="procurementcost"    column="ProcurementCost"    />
+        <result property="expertcost"    column="ExpertCost"    />
+        <result property="ethicscost"    column="EthicsCost"    />
+        <result property="medicalcost"    column="MedicalCost"    />
+        <result property="familycost"    column="FamilyCost"    />
+        <result property="aftercarecost"    column="AftercareCost"    />
+        <result property="amountrequested"    column="AmountRequested"    />
+        <result property="applytype"    column="ApplyType"    />
+        <result property="prepaidamount"    column="PrepaidAmount"    />
+        <result property="invoicecount"    column="InvoiceCount"    />
+        <result property="attachcount"    column="AttachCount"    />
+        <result property="managerno"    column="ManagerNo"    />
+        <result property="managername"    column="ManagerName"    />
+        <result property="deptmentno"    column="DeptmentNo"    />
+        <result property="deptmentname"    column="DeptmentName"    />
+        <result property="opochecker"    column="OPOchecker"    />
+        <result property="finvicepresident"    column="FinVicePresident"    />
+        <result property="busvicepresident"    column="BusVicePresident"    />
+        <result property="officedirector"    column="OfficeDirector"    />
+        <result property="financedirector"    column="FinanceDirector"    />
+        <result property="financechecher"    column="FinanceChecher"    />
+        <result property="remark"    column="Remark"    />
+        <result property="isdistribute"    column="Isdistribute"    />
+        <result property="recordstatus"    column="RecordStatus"    />
+        <result property="uploadflag"    column="uploadflag"    />
+        <result property="uploadtime"    column="uploadtime"    />
+        <result property="flowlevel"    column="FlowLevel"    />
+        <result property="oaid"    column="oaid"    />
+        <result property="oabdzt"    column="oabdzt"    />
+        <result property="filename"    column="filename"    />
+        <result property="fileid"    column="fileid"    />
+    </resultMap>
+
+    <sql id="selectServiceFundSharedVo">
+        select ID, InfoID, DonorNo, DonorName, del_flag, create_by, create_time, update_by, update_time, UserNo, UserName, UnitName, UnitNo, UnitUserNo, Phone, AnnexBankCard, AnnexRegistForm, PretaxCost, TaxedCost, TotalCost, ProcurementCost, ExpertCost, EthicsCost, MedicalCost, FamilyCost, AftercareCost, AmountRequested, ApplyType, PrepaidAmount, InvoiceCount, AttachCount, ManagerNo, ManagerName, DeptmentNo, DeptmentName, OPOchecker, FinVicePresident, BusVicePresident, OfficeDirector, FinanceDirector, FinanceChecher, Remark, Isdistribute, RecordStatus, uploadflag, uploadtime, FlowLevel, oaid, oabdzt, filename, fileid from service_fund_shared
+    </sql>
+
+    <select id="selectServiceFundSharedList" parameterType="ServiceFundShared" resultMap="ServiceFundSharedResult">
+        <include refid="selectServiceFundSharedVo"/>
+        <where>
+            <if test="infoid != null "> and InfoID = #{infoid}</if>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="donorname != null  and donorname != ''"> and DonorName like concat('%', #{donorname}, '%')</if>
+            <if test="userno != null  and userno != ''"> and UserNo = #{userno}</if>
+            <if test="username != null  and username != ''"> and UserName like concat('%', #{username}, '%')</if>
+            <if test="unitname != null  and unitname != ''"> and UnitName like concat('%', #{unitname}, '%')</if>
+            <if test="unitno != null  and unitno != ''"> and UnitNo = #{unitno}</if>
+            <if test="unituserno != null  and unituserno != ''"> and UnitUserNo = #{unituserno}</if>
+            <if test="phone != null  and phone != ''"> and Phone = #{phone}</if>
+            <if test="annexbankcard != null  and annexbankcard != ''"> and AnnexBankCard = #{annexbankcard}</if>
+            <if test="annexregistform != null  and annexregistform != ''"> and AnnexRegistForm = #{annexregistform}</if>
+            <if test="pretaxcost != null "> and PretaxCost = #{pretaxcost}</if>
+            <if test="taxedcost != null "> and TaxedCost = #{taxedcost}</if>
+            <if test="totalcost != null "> and TotalCost = #{totalcost}</if>
+            <if test="expertcost != null "> and ExpertCost = #{expertcost}</if>
+            <if test="ethicscost != null "> and EthicsCost = #{ethicscost}</if>
+            <if test="medicalcost != null "> and MedicalCost = #{medicalcost}</if>
+            <if test="familycost != null "> and FamilyCost = #{familycost}</if>
+            <if test="aftercarecost != null "> and AftercareCost = #{aftercarecost}</if>
+            <if test="amountrequested != null "> and AmountRequested = #{amountrequested}</if>
+            <if test="applytype != null  and applytype != ''"> and ApplyType = #{applytype}</if>
+            <if test="prepaidamount != null "> and PrepaidAmount = #{prepaidamount}</if>
+            <if test="invoicecount != null "> and InvoiceCount = #{invoicecount}</if>
+            <if test="attachcount != null "> and AttachCount = #{attachcount}</if>
+            <if test="managerno != null  and managerno != ''"> and ManagerNo = #{managerno}</if>
+            <if test="managername != null  and managername != ''"> and ManagerName like concat('%', #{managername}, '%')</if>
+            <if test="deptmentno != null  and deptmentno != ''"> and DeptmentNo = #{deptmentno}</if>
+            <if test="deptmentname != null  and deptmentname != ''"> and DeptmentName like concat('%', #{deptmentname}, '%')</if>
+            <if test="opochecker != null  and opochecker != ''"> and OPOchecker = #{opochecker}</if>
+            <if test="finvicepresident != null  and finvicepresident != ''"> and FinVicePresident = #{finvicepresident}</if>
+            <if test="busvicepresident != null  and busvicepresident != ''"> and BusVicePresident = #{busvicepresident}</if>
+            <if test="officedirector != null  and officedirector != ''"> and OfficeDirector = #{officedirector}</if>
+            <if test="financedirector != null  and financedirector != ''"> and FinanceDirector = #{financedirector}</if>
+            <if test="financechecher != null  and financechecher != ''"> and FinanceChecher = #{financechecher}</if>
+            <if test="remark != null  and remark != ''"> and Remark = #{remark}</if>
+            <if test="isdistribute != null  and isdistribute != ''"> and Isdistribute = #{isdistribute}</if>
+            <if test="recordstatus != null "> and RecordStatus = #{recordstatus}</if>
+            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
+            <if test="uploadtime != null "> and uploadtime = #{uploadtime}</if>
+            <if test="flowlevel != null "> and FlowLevel = #{flowlevel}</if>
+            <if test="oaid != null  and oaid != ''"> and oaid = #{oaid}</if>
+            <if test="oabdzt != null  and oabdzt != ''"> and oabdzt = #{oabdzt}</if>
+            <if test="filename != null  and filename != ''"> and filename like concat('%', #{filename}, '%')</if>
+            <if test="fileid != null  and fileid != ''"> and fileid = #{fileid}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml
new file mode 100644
index 0000000..5753b0a
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceFunddetailMapper">
+    
+    <resultMap type="ServiceFunddetail" id="ServiceFunddetailResult">
+        <result property="id"    column="ID"    />
+        <result property="fundid"    column="fundID"    />
+        <result property="beneficiaryname"    column="BeneficiaryName"    />
+        <result property="beneficiaryno"    column="BeneficiaryNo"    />
+        <result property="unitname"    column="UnitName"    />
+        <result property="unitno"    column="UnitNo"    />
+        <result property="unituserno"    column="UnitUserNo"    />
+        <result property="title"    column="Title"    />
+        <result property="idcardtype"    column="IDCardType"    />
+        <result property="idcardno"    column="IDCardNo"    />
+        <result property="sex"    column="Sex"    />
+        <result property="familyrelations"    column="FamilyRelations"    />
+        <result property="phone"    column="Phone"    />
+        <result property="depositbank"    column="DepositBank"    />
+        <result property="bankcardno"    column="BankCardNo"    />
+        <result property="branchbankname"    column="BranchBankName"    />
+        <result property="annexbankcard"    column="AnnexBankCard"    />
+        <result property="annexregistform"    column="AnnexRegistForm"    />
+        <result property="applytype"    column="ApplyType"    />
+        <result property="applytypename"    column="ApplyTypeName"    />
+        <result property="itemid"    column="ItemID"    />
+        <result property="itemname"    column="ItemName"    />
+        <result property="itemtype"    column="ItemType"    />
+        <result property="amount"    column="Amount"    />
+        <result property="prepaidamount"    column="PrepaidAmount"    />
+        <result property="taxamount"    column="TaxAmount"    />
+        <result property="invoicecount"    column="InvoiceCount"    />
+        <result property="taxedamount"    column="TaxedAmount"    />
+        <result property="attachcount"    column="AttachCount"    />
+        <result property="remark"    column="Remark"    />
+        <result property="recordstatus"    column="RecordStatus"    />
+        <result property="price"    column="Price"    />
+        <result property="quantity"    column="Quantity"    />
+        <result property="del_flag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="uploadflag"    column="uploadflag"    />
+        <result property="uploadtime"    column="uploadtime"    />
+        <result property="infoid"    column="InfoId"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="donorname"    column="DonorName"    />
+        <result property="servicesscope"    column="SERVICESSCOPE"    />
+        <result property="servicesscopename"    column="SERVICESSCOPENAME"    />
+        <result property="servicetype"    column="SERVICETYPE"    />
+        <result property="servicetypename"    column="SERVICETYPENAME"    />
+        <result property="orderno"    column="OrderNo"    />
+        <result property="itemcode"    column="ItemCode"    />
+    </resultMap>
+
+    <sql id="selectServiceFunddetailVo">
+        select ID, fundID, InfoId, DonorNo, DonorName, BeneficiaryName, BeneficiaryNo, UnitName, UnitNo, UnitUserNo, Title, OrderNo, ItemCode, IDCardType, IDCardNo, Sex, FamilyRelations, Phone, DepositBank, BankCardNo, BranchBankName, AnnexBankCard, AnnexRegistForm, ApplyType,ApplyTypeName, ItemID, ItemName, ItemType, Amount, PrepaidAmount, TaxAmount, InvoiceCount, TaxedAmount, AttachCount, Quantity, Price, Remark, RecordStatus, del_flag, create_by, create_time, update_by, update_time, uploadflag, uploadtime,SERVICESSCOPE,SERVICESSCOPENAME,SERVICETYPE,SERVICETYPENAME from service_funddetail
+    </sql>
+
+    <select id="selectServiceFunddetailList" parameterType="ServiceFunddetail" resultMap="ServiceFunddetailResult">
+        <include refid="selectServiceFunddetailVo"/>
+        <where>
+            del_flag = '0'
+            <if test="beneficiaryname != null  and beneficiaryname != ''"> and BeneficiaryName like concat('%', #{beneficiaryname}, '%')</if>
+            <if test="unitname != null  and unitname != ''"> and UnitName like concat('%', #{unitname}, '%')</if>
+            <if test="applytype != null  and applytype != ''"> and ApplyType = #{applytype}</if>
+            <if test="itemname != null  and itemname != ''"> and ItemName like concat('%', #{itemname}, '%')</if>
+            <if test="itemtype != null  and itemtype != ''"> and ItemType = #{itemtype}</if>
+            <if test="recordstatus != null  and recordstatus != ''"> and RecordStatus = #{recordstatus}</if>
+            <if test="createBy != null  and createBy != ''"> and create_by = #{createBy}</if>
+            <if test="createTime != null "> and create_time = #{createTime}</if>
+            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
+            <if test="uploadtime != null "> and uploadtime = #{uploadtime}</if>
+            <if test="fundid != null and fundid != '' "> and fundID = #{fundid}</if>
+
+        </where>
+    </select>
+    <select id="selectFundDetailListById" resultType="com.ruoyi.project.domain.ServiceFunddetail">
+        <include refid="selectServiceFunddetailVo"/>
+        where fundID = #{id} and del_flag = '0'
+        order by OrderNo
+    </select>
+
+    <select id="getAllDetailsByFDIDLW" resultType="com.ruoyi.project.domain.ServiceFunddetail">
+        <include refid="selectServiceFunddetailVo"/>
+        where fundID = #{id} and ItemType = "10"
+    </select>
+    <select id="getAllDetailsByFDIDSH" resultType="com.ruoyi.project.domain.ServiceFunddetail">
+        <include refid="selectServiceFunddetailVo"/>
+        where fundID = #{id} and ItemType = "14"
+    </select>
+    <select id="getAllDetailsByFDIDSS" resultType="com.ruoyi.project.domain.ServiceFunddetail">
+        <include refid="selectServiceFunddetailVo"/>
+        where fundID = #{id} and ItemType = "16"
+    </select>
+    <select id="getAllDetailsByFDIDYX" resultType="com.ruoyi.project.domain.ServiceFunddetail">
+        <include refid="selectServiceFunddetailVo"/>
+        where fundID = #{id} and ItemType = "15"
+    </select>
+    <select id="getAllDetailsByFDIDHZ" resultType="com.ruoyi.project.domain.ServiceFunddetail">
+        <include refid="selectServiceFunddetailVo"/>
+        where fundID = #{id} and del_flag = 0 order by OrderNo
+    </select>
+    <select id="getAllDetailsByFDIDLWF" resultType="com.ruoyi.project.domain.ServiceFunddetail">
+        <include refid="selectServiceFunddetailVo"/>
+        where fundID = #{id} and ItemType = "12"
+    </select>
+    <select id="countItem" resultType="java.lang.Integer">
+        select count(*) from service_funddetail
+        where ItemID = #{itemid} and fundID = #{fundid} and del_flag = '0'
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFundflowMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFundflowMapper.xml
new file mode 100644
index 0000000..a596ef8
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFundflowMapper.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceFundflowMapper">
+    
+    <resultMap type="ServiceFundflow" id="ServiceFundflowResult">
+        <result property="id"    column="ID"    />
+        <result property="fundid"    column="FundID"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="checkuserno"    column="CheckUserNo"    />
+        <result property="checkusername"    column="CheckUserName"    />
+        <result property="flowcontent"    column="FlowContent"    />
+        <result property="flowconclusion"    column="FlowConclusion"    />
+        <result property="fundtype"    column="FundType"    />
+        <result property="applytype"    column="ApplyType"    />
+        <result property="flowlevel"    column="FlowLevel"    />
+    </resultMap>
+
+    <sql id="selectServiceFundflowVo">
+        select ID, FundID, del_flag, create_by, create_time, update_by, update_time, CheckUserNo, CheckUserName, FlowContent, FlowConclusion, FundType, ApplyType,FlowLevel from service_fundflow
+    </sql>
+
+    <select id="selectServiceFundflowList" parameterType="ServiceFundflow" resultMap="ServiceFundflowResult">
+        <include refid="selectServiceFundflowVo"/>
+        <where>
+            <if test="fundid != null "> and FundID = #{fundid}</if>
+            <if test="checkuserno != null  and checkuserno != ''"> and CheckUserNo = #{checkuserno}</if>
+            <if test="checkusername != null  and checkusername != ''"> and CheckUserName like concat('%', #{checkusername}, '%')</if>
+            <if test="flowcontent != null  and flowcontent != ''"> and FlowContent = #{flowcontent}</if>
+            <if test="flowconclusion != null "> and FlowConclusion = #{flowconclusion}</if>
+            <if test="fundtype != null "> and FundType = #{fundtype}</if>
+            <if test="applytype != null  and applytype != ''"> and ApplyType = #{applytype}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFundflowruleMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFundflowruleMapper.xml
new file mode 100644
index 0000000..19a3442
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFundflowruleMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceFundflowruleMapper">
+    
+    <resultMap type="ServiceFundflowrule" id="ServiceFundflowruleResult">
+        <result property="id"    column="ID"    />
+        <result property="applytype"    column="ApplyType"    />
+        <result property="checkuserno"    column="CheckUserNo"    />
+        <result property="checkusername"    column="CheckUserName"    />
+        <result property="verificationdept"    column="VerificationDept"    />
+        <result property="flowlevel"    column="FlowLevel"    />
+        <result property="totallevel"    column="TotalLevel"    />
+        <result property="fundtype"    column="FundType"    />
+    </resultMap>
+
+    <sql id="selectServiceFundflowruleVo">
+        select ID, ApplyType, CheckUserNo, CheckUserName, VerificationDept, FlowLevel, TotalLevel, FundType from service_fundflowrule
+    </sql>
+
+    <select id="selectServiceFundflowruleList" parameterType="ServiceFundflowrule" resultMap="ServiceFundflowruleResult">
+        <include refid="selectServiceFundflowruleVo"/>
+        <where>
+            <if test="applytype != null  and applytype != ''"> and ApplyType = #{applytype}</if>
+            <if test="checkuserno != null  and checkuserno != ''"> and CheckUserNo = #{checkuserno}</if>
+            <if test="checkusername != null  and checkusername != ''"> and CheckUserName like concat('%', #{checkusername}, '%')</if>
+            <if test="verificationdept != null "> and VerificationDept = #{verificationdept}</if>
+            <if test="flowlevel != null "> and FlowLevel = #{flowlevel}</if>
+            <if test="totallevel != null "> and TotalLevel = #{totallevel}</if>
+            <if test="fundtype != null "> and FundType = #{fundtype}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml
new file mode 100644
index 0000000..e6ba5d9
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceMedicalevaluationMapper">
+    
+    <resultMap type="ServiceMedicalevaluation" id="ServiceMedicalevaluationResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="illnessoverview"    column="IllnessOverview"    />
+        <result property="diagnosisname"    column="DiagnosisName"    />
+        <result property="hospitalassesscontent"    column="HospitalAssessContent"    />
+        <result property="hospitalassessdoctor"    column="HospitalAssessDoctor"    />
+        <result property="hospitalassesstime"    column="HospitalAssessTime"    />
+        <result property="hospitalassessconclusion"    column="HospitalAssessConclusion"    />
+        <result property="provincialassesscontent"    column="ProvincialAssessContent"    />
+        <result property="provincialassessdoctor"    column="ProvincialAssessDoctor"    />
+        <result property="provincialassesstime"    column="ProvincialAssessTime"    />
+        <result property="provincialassessconclusion"    column="ProvincialAssessConclusion"    />
+        <result property="coreteamassesscontent"    column="CoreTeamAssessContent"    />
+        <result property="coreteamassessdoctor"    column="CoreTeamAssessDoctor"    />
+        <result property="coreteamassesstime"    column="CoreTeamAssessTime"    />
+        <result property="coreteamassessconclusion"    column="CoreTeamAssessConclusion"    />
+        <result property="assessannex"    column="AssessAnnex"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectServiceMedicalevaluationVo">
+        select ID, InfoID, DonorNo, IllnessOverview, DiagnosisName, HospitalAssessContent, HospitalAssessDoctor, HospitalAssessTime, HospitalAssessConclusion, ProvincialAssessContent, ProvincialAssessDoctor, ProvincialAssessTime, ProvincialAssessConclusion, CoreTeamAssessContent, CoreTeamAssessDoctor, CoreTeamAssessTime, CoreTeamAssessConclusion, AssessAnnex, del_flag, create_by, create_time, update_by, update_time from service_medicalevaluation
+    </sql>
+
+    <select id="selectServiceMedicalevaluationList" parameterType="ServiceMedicalevaluation" resultMap="ServiceMedicalevaluationResult">
+        <include refid="selectServiceMedicalevaluationVo"/>
+        <where>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+        </where>
+    </select>
+
+
+
+    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.MedicalEvaluationVO">
+    SELECT
+        `service_donatebaseinfo`.`ID` AS `ID`,
+        `service_donatebaseinfo`.`Name` AS `Name`,
+        `service_donatebaseinfo`.`Sex` AS `Sex`,
+        `service_donatebaseinfo`.`IDCardNo` AS `IDCardNo`,
+        `service_donatebaseinfo`.`Age` AS `Age`,
+        `service_donatebaseinfo`.`RegisterAddress` AS `RegisterAddress`,
+        `service_donatebaseinfo`.`RegisterProvince` AS `RegisterProvince`,
+        `service_donatebaseinfo`.`RegisterProvinceName` AS `RegisterProvinceName`,
+        `service_donatebaseinfo`.`RegisterCity` AS `RegisterCity`,
+        `service_donatebaseinfo`.`RegisterCityName` AS `RegisterCityName`,
+        `service_donatebaseinfo`.`RegisterTown` AS `RegisterTown`,
+        `service_donatebaseinfo`.`RegisterTownName` AS `RegisterTownName`,
+        `service_donatebaseinfo`.`RecordState` AS `RecordState`,
+        `service_donatebaseinfo`.`TreatmentHospitalNo` AS `TreatmentHospitalNo`,
+        `service_donatebaseinfo`.`TreatmentHospitalName` AS `TreatmentHospitalName`,
+        `service_donatebaseinfo`.`DiagnosisNo` AS `DiagnosisNo`,
+        `service_donatebaseinfo`.`DiagnosisName` AS `DiagnosisName`,
+        `service_donatebaseinfo`.`DonorNo` AS `DonorNo`,
+        `service_donatebaseinfo`.`DiseaseType` AS `DiseaseType`,
+        `service_donatebaseinfo`.`PatientState` AS `PatientState`,
+        `service_donatebaseinfo`.`ReporterName` AS `ReporterName`,
+        `service_donatebaseinfo`.`ReporterNo` AS `ReporterNo`,
+        `service_donatebaseinfo`.`ReportTime` AS `ReportTime`,
+        `service_donatebaseinfo`.`create_by` AS `basecreateby`,
+        `service_medicalevaluation`.`ID` AS `meID`,
+        `service_medicalevaluation`.`HospitalAssessContent` AS `HospitalAssessContent`,
+        `service_medicalevaluation`.`HospitalAssessConclusion` AS `HospitalAssessConclusion`,
+        `service_medicalevaluation`.`ProvincialAssessContent` AS `ProvincialAssessContent`,
+        `service_medicalevaluation`.`ProvincialAssessConclusion` AS `ProvincialAssessConclusion`,
+        `service_medicalevaluation`.`CoreTeamAssessContent` AS `CoreTeamAssessContent`,
+        `service_medicalevaluation`.`CoreTeamAssessConclusion` AS `CoreTeamAssessConclusion`,
+        `service_medicalevaluation`.`InfoID` AS `InfoID`,
+        `service_medicalevaluation`.`IllnessOverview` AS `IllnessOverview`,
+        `service_medicalevaluation`.`DiagnosisName` AS `meDiagnosisName`,
+        `service_medicalevaluation`.`HospitalAssessDoctor` AS `HospitalAssessDoctor`,
+        `service_medicalevaluation`.`HospitalAssessTime` AS `HospitalAssessTime`,
+        `service_medicalevaluation`.`ProvincialAssessDoctor` AS `ProvincialAssessDoctor`,
+        `service_medicalevaluation`.`ProvincialAssessTime` AS `ProvincialAssessTime`,
+        `service_medicalevaluation`.`CoreTeamAssessDoctor` AS `CoreTeamAssessDoctor`,
+        `service_medicalevaluation`.`CoreTeamAssessTime` AS `CoreTeamAssessTime`,
+        `service_medicalevaluation`.`AssessAnnex` AS `AssessAnnex`,
+        `service_medicalevaluation`.`del_flag` AS `delflag`,
+        `service_medicalevaluation`.`create_time` AS `createtime`,
+        `service_medicalevaluation`.`create_by` AS `createby`,
+        `service_medicalevaluation`.`update_by` AS `updateby`,
+        `service_medicalevaluation`.`update_time` AS `updatetime`
+        FROM
+
+            `service_donatebaseinfo`
+            LEFT JOIN `service_medicalevaluation` ON
+            `service_donatebaseinfo`.`ID` = `service_medicalevaluation`.`InfoID`
+        LEFT JOIN `base_organization` ON
+        `base_organization`.`OrganizationID` = `service_donatebaseinfo`.`TreatmentHospitalNo`
+
+
+        <where>
+            <if test="name != null  and name != ''"> and `service_donatebaseinfo`.Name like concat('%', #{name}, '%')</if>
+            <if test="donorno != null  and donorno != ''"> and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
+            <if test="idcardno != null  and idcardno != ''"> and `service_donatebaseinfo`.`IDCardNo` = #{idcardno}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}</if>
+            <if test="recordstate != null  and recordstate != ''"> and `service_donatebaseinfo`.`RecordState` = #{recordstate}</if>
+            <if test="basecreateby != null  and basecreateby != ''"> and `service_donatebaseinfo`.`create_by` = #{basecreateby}</if>
+            <if test="starttime != null "> and `service_medicalevaluation`.CoreTeamAssessTime >= #{starttime} </if>
+            <if test="endtime != null ">  and `service_medicalevaluation`.CoreTeamAssessTime &lt;= #{endtime}</if>
+            <if test="reporterno != null  and reporterno != ''"> and `service_donatebaseinfo`.ReporterNo = #{reporterno}</if>
+            <if test="city != null and city != ''"> and `base_organization`.`City` = #{city}</if>
+    </where>
+
+        order by `service_medicalevaluation`.`create_time` desc,
+        `service_donatebaseinfo`.`create_time` desc
+    </select>
+
+    <select id="countNumber" resultType="java.lang.Integer">
+        select count(*) from service_medicalevaluation
+        where CoreTeamAssessTime >= #{starttime} and CoreTeamAssessTime &lt;= #{endtime}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceOrganallocationMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceOrganallocationMapper.xml
new file mode 100644
index 0000000..6180020
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceOrganallocationMapper.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceOrganallocationMapper">
+    
+    <resultMap type="ServiceOrganallocation" id="ServiceOrganallocationResult">
+        <result property="id"    column="ID"    />
+        <result property="organid"    column="OrganID"    />
+        <result property="organnumber"    column="OrganNumber"    />
+        <result property="applicantuserid"    column="ApplicantUserID"    />
+        <result property="applicantusername"    column="ApplicantUserName"    />
+        <result property="applicanttime"    column="ApplicantTime"    />
+        <result property="checkuserid"    column="CheckUserID"    />
+        <result property="checkusername"    column="CheckUserName"    />
+        <result property="checktime"    column="CheckTime"    />
+        <result property="checksuggestion"    column="CheckSuggestion"    />
+        <result property="allocationstatus"    column="AllocationStatus"    />
+        <result property="name"    column="Name"    />
+        <result property="sex"    column="Sex"    />
+        <result property="idcardtype"    column="IDCardType"    />
+        <result property="idcardno"    column="IDCardNo"    />
+        <result property="age"    column="Age"    />
+        <result property="ageunit"    column="AgeUnit"    />
+        <result property="birthday"    column="Birthday"    />
+        <result property="phone"    column="Phone"    />
+        <result property="residenceaddress"    column="ResidenceAddress"    />
+        <result property="residenceprovince"    column="ResidenceProvince"    />
+        <result property="residenceprovincename"    column="ResidenceProvinceName"    />
+        <result property="residencecity"    column="ResidenceCity"    />
+        <result property="residencecityname"    column="ResidenceCityName"    />
+        <result property="residencetown"    column="ResidenceTown"    />
+        <result property="residencetownname"    column="ResidenceTownName"    />
+        <result property="residencecommunity"    column="ResidenceCommunity"    />
+        <result property="residencecommunityname"    column="ResidenceCommunityName"    />
+        <result property="residencecountycode"    column="ResidenceCountyCode"    />
+        <result property="residencecountyname"    column="ResidenceCountyName"    />
+        <result property="del_flag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectServiceOrganallocationVo">
+        select service_organallocation.* from service_organallocation
+                                                  LEFT JOIN service_donateorgan on service_organallocation.OrganID=service_donateorgan.ID
+                                                  LEFT JOIN service_donatebaseinfo on service_donateorgan.InfoID=service_donatebaseinfo.ID
+                                                  LEFT JOIN base_organization on base_organization.OrganizationID = service_donatebaseinfo.TreatmentHospitalNo
+    </sql>
+
+    <select id="selectServiceOrganallocationList" parameterType="ServiceOrganallocation" resultMap="ServiceOrganallocationResult">
+        <include refid="selectServiceOrganallocationVo"/>
+        <where>
+            <if test="organid != null "> and service_organallocation.OrganID = #{organid}</if>
+            <if test="organnumber != null  and organnumber != ''"> and service_organallocation.OrganNumber = #{organnumber}</if>
+            <if test="applicantuserid != null  and applicantuserid != ''"> and service_organallocation.ApplicantUserID = #{applicantuserid}</if>
+            <if test="applicantusername != null  and applicantusername != ''"> and service_organallocation.ApplicantUserName like concat('%', #{applicantusername}, '%')</if>
+            <if test="applicanttime != null "> and service_organallocation.ApplicantTime = #{applicanttime}</if>
+            <if test="checkuserid != null  and checkuserid != ''"> and service_organallocation.CheckUserID = #{checkuserid}</if>
+            <if test="checkusername != null  and checkusername != ''"> and service_organallocation.CheckUserName like concat('%', #{checkusername}, '%')</if>
+            <if test="checktime != null "> and service_organallocation.CheckTime = #{checktime}</if>
+            <if test="checksuggestion != null  and checksuggestion != ''"> and service_organallocation.CheckSuggestion = #{checksuggestion}</if>
+            <if test="allocationstatus != null "> and service_organallocation.AllocationStatus = #{allocationstatus}</if>
+            <if test="name != null  and name != ''"> and service_organallocation.Name like concat('%', #{name}, '%')</if>
+            <if test="sex != null "> and service_organallocation.Sex = #{sex}</if>
+            <if test="idcardtype != null "> and service_organallocation.IDCardType = #{idcardtype}</if>
+            <if test="idcardno != null  and idcardno != ''"> and service_organallocation.IDCardNo = #{idcardno}</if>
+            <if test="age != null "> and service_organallocation.Age = #{age}</if>
+            <if test="ageunit != null  and ageunit != ''"> and service_organallocation.AgeUnit = #{ageunit}</if>
+            <if test="birthday != null  and birthday != ''"> and service_organallocation.Birthday = #{birthday}</if>
+            <if test="phone != null  and phone != ''"> and service_organallocation.Phone = #{phone}</if>
+            <if test="residenceaddress != null  and residenceaddress != ''"> and service_organallocation.ResidenceAddress = #{residenceaddress}</if>
+            <if test="residenceprovince != null  and residenceprovince != ''"> and service_organallocation.ResidenceProvince = #{residenceprovince}</if>
+            <if test="residenceprovincename != null  and residenceprovincename != ''"> and service_organallocation.ResidenceProvinceName like concat('%', #{residenceprovincename}, '%')</if>
+            <if test="residencecity != null  and residencecity != ''"> and service_organallocation.ResidenceCity = #{residencecity}</if>
+            <if test="residencecityname != null  and residencecityname != ''"> and service_organallocation.ResidenceCityName like concat('%', #{residencecityname}, '%')</if>
+            <if test="residencetown != null  and residencetown != ''"> and service_organallocation.ResidenceTown = #{residencetown}</if>
+            <if test="residencetownname != null  and residencetownname != ''"> and service_organallocation.ResidenceTownName like concat('%', #{residencetownname}, '%')</if>
+            <if test="residencecommunity != null  and residencecommunity != ''"> and service_organallocation.ResidenceCommunity = #{residencecommunity}</if>
+            <if test="residencecommunityname != null  and residencecommunityname != ''"> and service_organallocation.ResidenceCommunityName like concat('%', #{residencecommunityname}, '%')</if>
+            <if test="residencecountycode != null  and residencecountycode != ''"> and service_organallocation.ResidenceCountyCode = #{residencecountycode}</if>
+            <if test="residencecountyname != null  and residencecountyname != ''"> and service_organallocation.ResidenceCountyName like concat('%', #{residencecountyname}, '%')</if>
+            <if test="createBy != null  and createBy != ''"> and service_organallocation.create_by = #{createBy}</if>
+            <if test="starttime != null "> and `service_organallocation`.ApplicantTime >= #{starttime} </if>
+            <if test="endtime != null ">  and `service_organallocation`.ApplicantTime &lt;= #{endtime}</if>
+            <if test="reporterno != null  and reporterno != ''"> and `service_donatebaseinfo`.ReporterNo = #{reporterno}</if>
+            <if test="city != null and city != ''"> and `base_organization`.`City` = #{city}</if>
+        </where>
+
+        order by create_time desc
+    </select>
+    <select id="countNumber" resultType="java.lang.Integer">
+        select count(*) from service_organallocation
+        where ApplicantTime >= #{starttime} and ApplicantTime &lt;= #{endtime}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementMapper.xml
new file mode 100644
index 0000000..802af57
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementMapper.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceReimbursementMapper">
+    
+    <resultMap type="ServiceReimbursement" id="ServiceReimbursementResult">
+        <result property="id"    column="ID"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="userno"    column="UserNo"    />
+        <result property="username"    column="UserName"    />
+        <result property="idcardtype"    column="IDCardType"    />
+        <result property="idcardno"    column="IDCardNo"    />
+        <result property="phone"    column="Phone"    />
+        <result property="depositbank"    column="DepositBank"    />
+        <result property="bankcardno"    column="BankCardNo"    />
+        <result property="branchbankname"    column="BranchBankName"    />
+        <result property="annexbankcard"    column="AnnexBankCard"    />
+        <result property="annexfiles"    column="AnnexFiles"    />
+        <result property="amountrequested"    column="AmountRequested"    />
+        <result property="prepaidamount"    column="PrepaidAmount"    />
+        <result property="invoicecount"    column="InvoiceCount"    />
+        <result property="attachcount"    column="AttachCount"    />
+        <result property="managerno"    column="ManagerNo"    />
+        <result property="managername"    column="ManagerName"    />
+        <result property="deptmentno"    column="DeptmentNo"    />
+        <result property="deptmentname"    column="DeptmentName"    />
+        <result property="opochecker"    column="OPOchecker"    />
+        <result property="finvicepresident"    column="FinVicePresident"    />
+        <result property="busvicepresident"    column="BusVicePresident"    />
+        <result property="officedirector"    column="OfficeDirector"    />
+        <result property="financedirector"    column="FinanceDirector"    />
+        <result property="financechecher"    column="FinanceChecher"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="remark"    column="remark"    />
+        <result property="recordstatus"    column="RecordStatus"    />
+        <result property="uploadflag"    column="uploadflag"    />
+        <result property="uploadtime"    column="uploadtime"    />
+        <result property="travelers"    column="Travelers"    />
+        <result property="reason"    column="Reason"    />
+        <result property="donorname"    column="DonorName"    />
+        <result property="totalamount"    column="totalAmount"    />
+        <result property="bigstrmoney"    column="bigStrMoney"    />
+        <result property="flowlevel"    column="FlowLevel"    />
+        <result property="costtype"    column="costtype"    />
+        <result property="costtypename"    column="costtypename"    />
+        <result property="fileurl"    column="fileurl"    />
+    </resultMap>
+
+    <sql id="selectServiceReimbursementVo">
+        select ID, del_flag, create_by, create_time, update_by, update_time, UserNo, UserName, IDCardType, IDCardNo, Phone, DepositBank, BankCardNo, BranchBankName, AnnexBankCard, AnnexFiles, AmountRequested, PrepaidAmount, InvoiceCount, AttachCount, ManagerNo, ManagerName, DeptmentNo, DeptmentName, OPOchecker, FinVicePresident, BusVicePresident, OfficeDirector, FinanceDirector, FinanceChecher, InfoID, DonorNo, remark, RecordStatus, uploadflag, uploadtime, Travelers, DonorName, Reason, FlowLevel, costtype, costtypename,fileurl from service_reimbursement
+    </sql>
+
+    <select id="selectServiceReimbursementList" parameterType="ServiceReimbursement" resultMap="ServiceReimbursementResult">
+        <include refid="selectServiceReimbursementVo"/>
+        <where>
+            <if test="createBy != null  and createBy != ''"> and create_by = #{createBy}</if>
+            <if test="createTime != null "> and create_time = #{createTime}</if>
+            <if test="username != null  and username != ''"> and UserName like concat('%', #{username}, '%')</if>
+            <if test="deptmentname != null  and deptmentname != ''"> and DeptmentName like concat('%', #{deptmentname}, '%')</if>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="recordstatus != null  and recordstatus != ''"> and RecordStatus = #{recordstatus}</if>
+            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
+            <if test="travelers != null  and travelers != ''"> and Travelers = #{travelers}</if>
+        </where>
+    </select>
+    <select id="getMaxId" resultType="java.lang.Long">
+        select max(ID) from service_reimbursement
+    </select>
+    <select id="selectSearchList" resultMap="ServiceReimbursementResult">
+        <include refid="selectServiceReimbursementVo"/>
+        <where>
+
+            <if test="createTime != null and createTime != ''" > and create_time >= #{searchstarttime} and create_time &lt;= #{searchendtime} </if>
+            <if test="travelers != null  and travelers != ''"> and Travelers = #{travelers}</if>
+
+        </where>
+    </select>
+
+
+    <select id="getListBypower" statementType="CALLABLE" resultType="com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut">
+        call SP_FINANCIAL_EXPENSES(#{PAUSERNO,mode=IN,jdbcType=VARCHAR},#{PAFUNDTYPE,mode=IN,jdbcType=INTEGER},#{PAAPPLICANT,mode=IN,jdbcType=VARCHAR},#{PAAPPLICATIONBEGTIME,mode=IN,jdbcType=VARCHAR},#{PAAPPLICATIONENDTIME,mode=IN,jdbcType=VARCHAR},#{PADEPARTMENT,mode=IN,jdbcType=VARCHAR},#{CHECKFLAG,mode=IN,jdbcType=INTEGER},#{APPLYTYPE,mode=IN,jdbcType=INTEGER})
+    </select>
+    <select id="getInfoByInfoId" resultType="com.ruoyi.project.domain.ServiceReimbursement">
+        <include refid="selectServiceReimbursementVo"/>
+        where infoid = #{infoid} and del_flag = '0' and (costtype = "1" or costtype = "2" or costtype = "3")
+    </select>
+    <select id="getInfoByInfoIdRelatives" resultType="com.ruoyi.project.domain.ServiceReimbursement">
+        <include refid="selectServiceReimbursementVo"/>
+        where infoid = #{infoid} and del_flag = '0' and costtype = "4"
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementSharedMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementSharedMapper.xml
new file mode 100644
index 0000000..c19ca10
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementSharedMapper.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceReimbursementSharedMapper">
+    
+    <resultMap type="ServiceReimbursementShared" id="ServiceReimbursementSharedResult">
+        <result property="id"    column="ID"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="userno"    column="UserNo"    />
+        <result property="username"    column="UserName"    />
+        <result property="travelers"    column="Travelers"    />
+        <result property="idcardtype"    column="IDCardType"    />
+        <result property="idcardno"    column="IDCardNo"    />
+        <result property="phone"    column="Phone"    />
+        <result property="depositbank"    column="DepositBank"    />
+        <result property="bankcardno"    column="BankCardNo"    />
+        <result property="branchbankname"    column="BranchBankName"    />
+        <result property="annexbankcard"    column="AnnexBankCard"    />
+        <result property="annexfiles"    column="AnnexFiles"    />
+        <result property="amountrequested"    column="AmountRequested"    />
+        <result property="prepaidamount"    column="PrepaidAmount"    />
+        <result property="invoicecount"    column="InvoiceCount"    />
+        <result property="attachcount"    column="AttachCount"    />
+        <result property="managerno"    column="ManagerNo"    />
+        <result property="managername"    column="ManagerName"    />
+        <result property="deptmentno"    column="DeptmentNo"    />
+        <result property="deptmentname"    column="DeptmentName"    />
+        <result property="opochecker"    column="OPOchecker"    />
+        <result property="finvicepresident"    column="FinVicePresident"    />
+        <result property="busvicepresident"    column="BusVicePresident"    />
+        <result property="officedirector"    column="OfficeDirector"    />
+        <result property="financedirector"    column="FinanceDirector"    />
+        <result property="financechecher"    column="FinanceChecher"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="donorname"    column="DonorName"    />
+        <result property="reason"    column="Reason"    />
+        <result property="remark"    column="remark"    />
+        <result property="recordstatus"    column="RecordStatus"    />
+        <result property="uploadflag"    column="uploadflag"    />
+        <result property="uploadtime"    column="uploadtime"    />
+        <result property="totalamount"    column="totalAmount"    />
+        <result property="bigstrmoney"    column="bigStrMoney"    />
+        <result property="flowlevel"    column="FlowLevel"    />
+        <result property="costtype"    column="costtype"    />
+        <result property="costtypename"    column="costtypename"    />
+        <result property="oaid"    column="oaid"    />
+        <result property="oabdzt"    column="oabdzt"    />
+        <result property="filename"    column="filename"    />
+        <result property="fileid"    column="fileid"    />
+        <result property="reimid"    column="reimid"    />
+    </resultMap>
+
+    <sql id="selectServiceReimbursementSharedVo">
+        select ID, del_flag, create_by, create_time, update_by, update_time, UserNo, UserName, Travelers, IDCardType, IDCardNo, Phone, DepositBank, BankCardNo, BranchBankName, AnnexBankCard, AnnexFiles, AmountRequested, PrepaidAmount, InvoiceCount, AttachCount, ManagerNo, ManagerName, DeptmentNo, DeptmentName, OPOchecker, FinVicePresident, BusVicePresident, OfficeDirector, FinanceDirector, FinanceChecher, InfoID, DonorNo, DonorName, Reason, remark, RecordStatus, uploadflag, uploadtime, totalAmount, bigStrMoney, FlowLevel, costtype, costtypename, oaid, oabdzt, filename, fileid,reimid from service_reimbursement_shared
+    </sql>
+
+    <select id="getRemShareInfoByRemId" resultType="com.ruoyi.project.domain.ServiceReimbursementShared" resultMap="ServiceReimbursementSharedResult">
+        <include refid="selectServiceReimbursementSharedVo"/>
+        where reimid = #{RemId}
+    </select>
+
+    <select id="selectServiceReimbursementSharedList" parameterType="ServiceReimbursementShared" resultMap="ServiceReimbursementSharedResult">
+        <include refid="selectServiceReimbursementSharedVo"/>
+        <where>
+            <if test="userno != null  and userno != ''"> and UserNo = #{userno}</if>
+            <if test="username != null  and username != ''"> and UserName like concat('%', #{username}, '%')</if>
+            <if test="travelers != null  and travelers != ''"> and Travelers = #{travelers}</if>
+            <if test="idcardtype != null  and idcardtype != ''"> and IDCardType = #{idcardtype}</if>
+            <if test="idcardno != null  and idcardno != ''"> and IDCardNo = #{idcardno}</if>
+            <if test="phone != null  and phone != ''"> and Phone = #{phone}</if>
+            <if test="depositbank != null  and depositbank != ''"> and DepositBank = #{depositbank}</if>
+            <if test="bankcardno != null  and bankcardno != ''"> and BankCardNo = #{bankcardno}</if>
+            <if test="branchbankname != null  and branchbankname != ''"> and BranchBankName like concat('%', #{branchbankname}, '%')</if>
+            <if test="annexbankcard != null  and annexbankcard != ''"> and AnnexBankCard = #{annexbankcard}</if>
+            <if test="annexfiles != null  and annexfiles != ''"> and AnnexFiles = #{annexfiles}</if>
+            <if test="amountrequested != null "> and AmountRequested = #{amountrequested}</if>
+            <if test="prepaidamount != null "> and PrepaidAmount = #{prepaidamount}</if>
+            <if test="invoicecount != null "> and InvoiceCount = #{invoicecount}</if>
+            <if test="attachcount != null "> and AttachCount = #{attachcount}</if>
+            <if test="managerno != null  and managerno != ''"> and ManagerNo = #{managerno}</if>
+            <if test="managername != null  and managername != ''"> and ManagerName like concat('%', #{managername}, '%')</if>
+            <if test="deptmentno != null  and deptmentno != ''"> and DeptmentNo = #{deptmentno}</if>
+            <if test="deptmentname != null  and deptmentname != ''"> and DeptmentName like concat('%', #{deptmentname}, '%')</if>
+            <if test="opochecker != null  and opochecker != ''"> and OPOchecker = #{opochecker}</if>
+            <if test="finvicepresident != null  and finvicepresident != ''"> and FinVicePresident = #{finvicepresident}</if>
+            <if test="busvicepresident != null  and busvicepresident != ''"> and BusVicePresident = #{busvicepresident}</if>
+            <if test="officedirector != null  and officedirector != ''"> and OfficeDirector = #{officedirector}</if>
+            <if test="financedirector != null  and financedirector != ''"> and FinanceDirector = #{financedirector}</if>
+            <if test="financechecher != null  and financechecher != ''"> and FinanceChecher = #{financechecher}</if>
+            <if test="infoid != null "> and InfoID = #{infoid}</if>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="donorname != null  and donorname != ''"> and DonorName like concat('%', #{donorname}, '%')</if>
+            <if test="reason != null  and reason != ''"> and Reason = #{reason}</if>
+            <if test="recordstatus != null "> and RecordStatus = #{recordstatus}</if>
+            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
+            <if test="uploadtime != null "> and uploadtime = #{uploadtime}</if>
+            <if test="totalamount != null "> and totalAmount = #{totalamount}</if>
+            <if test="bigstrmoney != null  and bigstrmoney != ''"> and bigStrMoney = #{bigstrmoney}</if>
+            <if test="flowlevel != null "> and FlowLevel = #{flowlevel}</if>
+            <if test="costtype != null  and costtype != ''"> and costtype = #{costtype}</if>
+            <if test="costtypename != null  and costtypename != ''"> and costtypename like concat('%', #{costtypename}, '%')</if>
+            <if test="oaid != null  and oaid != ''"> and oaid = #{oaid}</if>
+            <if test="oabdzt != null  and oabdzt != ''"> and oabdzt = #{oabdzt}</if>
+            <if test="filename != null  and filename != ''"> and filename like concat('%', #{filename}, '%')</if>
+            <if test="fileid != null  and fileid != ''"> and fileid = #{fileid}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementdetailMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementdetailMapper.xml
new file mode 100644
index 0000000..836de38
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementdetailMapper.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceReimbursementdetailMapper">
+    
+    <resultMap type="ServiceReimbursementdetail" id="ServiceReimbursementdetailResult">
+        <result property="id"    column="ID"    />
+        <result property="rbid"    column="RBID"    />
+        <result property="starttime"    column="StartTime"    />
+        <result property="departure"    column="Departure"    />
+        <result property="endtime"    column="EndTime"    />
+        <result property="destination"    column="Destination"    />
+        <result property="days"    column="Days"    />
+        <result property="trafficexpense"    column="TrafficExpense"    />
+        <result property="traffictype"    column="TrafficType"    />
+        <result property="cityfee"    column="CityFee"    />
+        <result property="hotelexpense"    column="HotelExpense"    />
+        <result property="invoicecount"    column="InvoiceCount"    />
+        <result property="attachcount"    column="AttachCount"    />
+        <result property="otherexpense"    column="OtherExpense"    />
+        <result property="foodexpenses"    column="FoodExpenses"    />
+        <result property="foodallowance"    column="FoodAllowance"    />
+        <result property="annexfiles"    column="AnnexFiles"    />
+        <result property="remark"    column="remark"    />
+        <result property="del_flag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="travelprovince"    column="travelprovince"    />
+        <result property="travelprovincename"    column="travelprovincename"    />
+        <result property="travelcity"    column="travelcity"    />
+        <result property="travelcityname"    column="travelcityname"    />
+        <result property="traveltown"    column="traveltown"    />
+        <result property="traveltownname"    column="traveltownname"    />
+        <result property="otherfeeamount"    column="otherfeeamount"    />
+        <result property="otherfeedesc"    column="otherfeedesc"    />
+        <result property="orderno"    column="OrderNo"    />
+
+    </resultMap>
+
+    <sql id="selectServiceReimbursementdetailVo">
+        select ID, RBID, StartTime, Departure, EndTime, Destination, Days, TrafficExpense, TrafficType, CityFee, HotelExpense, InvoiceCount, AttachCount, OtherExpense, FoodExpenses, FoodAllowance, AnnexFiles, remark, del_flag, create_by, create_time, update_by, update_time, upload_flag, upload_time, travelprovince, travelprovincename, travelcity, travelcityname, traveltown, traveltownname, otherfeeamount, otherfeedesc, OrderNo from service_reimbursementdetail
+    </sql>
+
+    <select id="selectServiceReimbursementdetailList" parameterType="ServiceReimbursementdetail" resultMap="ServiceReimbursementdetailResult">
+        <include refid="selectServiceReimbursementdetailVo"/>
+        <where>
+            del_flag = '0'
+            <if test="createBy != null  and createBy != ''"> and create_by = #{createBy}</if>
+            <if test="createTime != null "> and create_time = #{createTime}</if>
+            <if test="uploadFlag != null  and uploadFlag != ''"> and upload_flag = #{uploadFlag}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="rbid != null  and rbid != ''"> and RBID = #{rbid}</if>
+        </where>
+    </select>
+    <select id="getRBDetailList" resultType="com.ruoyi.project.domain.ServiceReimbursementdetail">
+        <include refid="selectServiceReimbursementdetailVo"/>
+        where RBID = #{id} and del_flag = 0
+        order by OrderNo
+    </select>
+    <select id="getAllIds" resultType="java.lang.Long">
+        select ID from service_reimbursementdetail
+        where RBID = #{rbid}
+    </select>
+    <select id="getAllDetailsByRBID" resultType="com.ruoyi.project.domain.ServiceReimbursementdetail">
+        <include refid="selectServiceReimbursementdetailVo"/>
+        where RBID = #{id} and del_flag = 0 order by OrderNo
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
new file mode 100644
index 0000000..5ae6253
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceRelativesconfirmationMapper">
+    
+    <resultMap type="ServiceRelativesconfirmation" id="ServiceRelativesconfirmationResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="name"    column="Name"    />
+        <result property="idcardtype"    column="IDCardType"    />
+        <result property="idcardno"    column="IDCardNo"    />
+        <result property="phone"    column="Phone"    />
+        <result property="residenceaddress"    column="ResidenceAddress"    />
+        <result property="residenceprovince"    column="ResidenceProvince"    />
+        <result property="residenceprovincename"    column="ResidenceProvinceName"    />
+        <result property="residencecity"    column="ResidenceCity"    />
+        <result property="residencecityname"    column="ResidenceCityName"    />
+        <result property="residencetown"    column="ResidenceTown"    />
+        <result property="residencetownname"    column="ResidenceTownName"    />
+        <result property="residencecommunity"    column="ResidenceCommunity"    />
+        <result property="residencecommunityname"    column="ResidenceCommunityName"    />
+        <result property="residencecountycode"    column="ResidenceCountyCode"    />
+        <result property="residencecountyname"    column="ResidenceCountyName"    />
+        <result property="kinship"    column="Kinship"    />
+        <result property="kinshipChildrennum"    column="Kinship_ChildrenNum"    />
+        <result property="signfamilyrelations"    column="SignFamilyRelations"    />
+        <result property="kinshipconfirmationsign"    column="KinshipConfirmationSign"    />
+        <result property="organdecision"    column="OrganDecision"    />
+        <result property="organdecisionOther"    column="OrganDecision_Other"    />
+        <result property="relativeconfirmationsign"    column="RelativeConfirmationSign"    />
+        <result property="familyrelations"    column="FamilyRelations"    />
+        <result property="acquisitiontissueno"    column="AcquisitionTissueNo"    />
+        <result property="acquisitiontissuename"    column="AcquisitionTissueName"    />
+        <result property="responsibleuserid"    column="ResponsibleUserID"    />
+        <result property="responsibleusername"    column="ResponsibleUserName"    />
+        <result property="coordinateduserido"    column="CoordinatedUserIDO"    />
+        <result property="coordinatedusernameo"    column="CoordinatedUserNameO"    />
+        <result property="coordinateduseridt"    column="CoordinatedUserIDT"    />
+        <result property="coordinatedusernamet"    column="CoordinatedUserNameT"    />
+        <result property="signdate"    column="SignDate"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectServiceRelativesconfirmationVo">
+        select ID, InfoID, DonorNo, Name, IDCardType, IDCardNo, Phone, ResidenceAddress, ResidenceProvince, ResidenceProvinceName, ResidenceCity, ResidenceCityName, ResidenceTown, ResidenceTownName, ResidenceCommunity, ResidenceCommunityName, ResidenceCountyCode, ResidenceCountyName, Kinship, Kinship_ChildrenNum, SignFamilyRelations, KinshipConfirmationSign, OrganDecision, OrganDecision_Other, RelativeConfirmationSign, FamilyRelations, AcquisitionTissueNo, AcquisitionTissueName, ResponsibleUserID, ResponsibleUserName, CoordinatedUserIDO, CoordinatedUserNameO, CoordinatedUserIDT, CoordinatedUserNameT, SignDate, del_flag, create_by, create_time, update_by, update_time from service_relativesconfirmation
+    </sql>
+
+    <select id="selectServiceRelativesconfirmationList" parameterType="ServiceRelativesconfirmation" resultMap="ServiceRelativesconfirmationResult">
+        <include refid="selectServiceRelativesconfirmationVo"/>
+        <where>
+            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
+            <if test="name != null  and name != ''"> and Name like concat('%', #{name}, '%')</if>
+            <if test="idcardno != null  and idcardno != ''"> and IDCardNo = #{idcardno}</if>
+            <if test="acquisitiontissueno != null  and acquisitiontissueno != ''"> and AcquisitionTissueNo = #{acquisitiontissueno}</if>
+            <if test="params.beginSigndate != null and params.beginSigndate != '' and params.endSigndate != null and params.endSigndate != ''"> and SignDate between #{params.beginSigndate} and #{params.endSigndate}</if>
+        </where>
+    </select>
+    <select id="getCoordinateUserByInfoId" resultType="java.lang.String">
+        select CoordinatedUserIDO from service_relativesconfirmation
+        where InfoID = #{infoid}
+    </select>
+    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.RelativeConfirmationVO">
+    SELECT
+        `service_donatebaseinfo`.`ID` AS `ID`,
+        `service_donatebaseinfo`.`Name` AS `Name`,
+        `service_donatebaseinfo`.`Sex` AS `Sex`,
+        `service_donatebaseinfo`.`IDCardType` AS `IDCardType`,
+        `service_donatebaseinfo`.`IDCardNo` AS `IDCardNo`,
+        `service_donatebaseinfo`.`Age` AS `Age`,
+        `service_donatebaseinfo`.`Birthday` AS `Birthday`,
+        `service_donatebaseinfo`.`AgeUnit` AS `AgeUnit`,
+        `service_donatebaseinfo`.`Phone` AS `Phone`,
+        `service_donatebaseinfo`.`Nationality` AS `Nationality`,
+        `service_donatebaseinfo`.`NativePlace` AS `NativePlace`,
+        `service_donatebaseinfo`.`Nation` AS `Nation`,
+        `service_donatebaseinfo`.`Occupation` AS `Occupation`,
+        `service_donatebaseinfo`.`Education` AS `Education`,
+        `service_donatebaseinfo`.`RegisterAddress` AS `RegisterAddress`,
+        `service_donatebaseinfo`.`RegisterProvince` AS `RegisterProvince`,
+        `service_donatebaseinfo`.`RegisterProvinceName` AS `RegisterProvinceName`,
+        `service_donatebaseinfo`.`RegisterCity` AS `RegisterCity`,
+        `service_donatebaseinfo`.`RegisterCityName` AS `RegisterCityName`,
+        `service_donatebaseinfo`.`RegisterTown` AS `RegisterTown`,
+        `service_donatebaseinfo`.`RegisterTownName` AS `RegisterTownName`,
+        `service_donatebaseinfo`.`RegisterCommunity` AS `RegisterCommunity`,
+        `service_donatebaseinfo`.`RegisterCountyCode` AS `RegisterCountyCode`,
+        `service_donatebaseinfo`.`RegisterCommunityName` AS `RegisterCommunityName`,
+        `service_donatebaseinfo`.`RegisterCountyName` AS `RegisterCountyName`,
+        `service_donatebaseinfo`.`RecordState` AS `RecordState`,
+        `service_donatebaseinfo`.`ReporterNo` AS `ReporterNo`,
+        `service_donatebaseinfo`.`ReporterName` AS `ReporterName`,
+        `service_donatebaseinfo`.`ReporterPhone` AS `ReporterPhone`,
+        `service_donatebaseinfo`.`ReportTime` AS `ReportTime`,
+        `service_donatebaseinfo`.`DonorNo` AS `DonorNo`,
+        `service_donatebaseinfo`.`TreatmentHospitalNo` AS `TreatmentHospitalNo`,
+        `service_donatebaseinfo`.`TreatmentHospitalName` AS `TreatmentHospitalName`,
+        `service_donatebaseinfo`.`TreatmentDeptName` AS `TreatmentDeptName`,
+        `service_donatebaseinfo`.`create_by` AS `basecreateby`,
+        `service_relativesconfirmation`.`ID` AS `rcID`,
+        `service_relativesconfirmation`.`InfoID` AS `InfoID`,
+        `service_relativesconfirmation`.`DonorNo` AS `rcDonroNo`,
+        `service_relativesconfirmation`.`Name` AS `rcName`,
+        `service_relativesconfirmation`.`IDCardType` AS `erIDCardType`,
+        `service_relativesconfirmation`.`IDCardNo` AS `rcIDCardNo`,
+        `service_relativesconfirmation`.`Phone` AS `rcPhone`,
+        `service_relativesconfirmation`.`FamilyRelations` AS `FamilyRelations`,
+        `service_relativesconfirmation`.`OrganDecision` AS `OrganDecision`,
+        `service_relativesconfirmation`.`ResidenceAddress` AS `ResidenceAddress`,
+        `service_relativesconfirmation`.`ResidenceProvince` AS `ResidenceProvince`,
+        `service_relativesconfirmation`.`CoordinatedUserNameT` AS `CoordinatedUserNameT`,
+        `service_relativesconfirmation`.`CoordinatedUserIDT` AS `CoordinatedUserIDT`,
+        `service_relativesconfirmation`.`CoordinatedUserNameO` AS `CoordinatedUserNameO`,
+        `service_relativesconfirmation`.`CoordinatedUserIDO` AS `CoordinatedUserIDO`,
+        `service_relativesconfirmation`.`ResponsibleUserName` AS `ResponsibleUserName`,
+        `service_relativesconfirmation`.`ResponsibleUserID` AS `ResponsibleUserID`,
+        `service_relativesconfirmation`.`AcquisitionTissueName` AS `AcquisitionTissueName`,
+        `service_relativesconfirmation`.`AcquisitionTissueNo` AS `AcquisitionTissueNo`,
+        `service_relativesconfirmation`.`SignFamilyRelations` AS `SignFamilyRelations`,
+        `service_relativesconfirmation`.`RelativeConfirmationSign` AS `RelativeConfirmationSign`,
+        `service_relativesconfirmation`.`OrganDecision_Other` AS `OrganDecision_Other`,
+        `service_relativesconfirmation`.`ResidenceProvinceName` AS `ResidenceProvinceName`,
+        `service_relativesconfirmation`.`ResidenceCityName` AS `ResidenceCityName`,
+        `service_relativesconfirmation`.`ResidenceTown` AS `ResidenceTown`,
+        `service_relativesconfirmation`.`ResidenceTownName` AS `ResidenceTownName`,
+        `service_relativesconfirmation`.`ResidenceCommunity` AS `ResidenceCommunity`,
+        `service_relativesconfirmation`.`ResidenceCommunityName` AS `ResidenceCommunityName`,
+        `service_relativesconfirmation`.`ResidenceCountyCode` AS `ResidenceCountyCode`,
+        `service_relativesconfirmation`.`ResidenceCountyName` AS `ResidenceCountyName`,
+        `service_relativesconfirmation`.`ResidenceCity` AS `ResidenceCity`,
+        `service_relativesconfirmation`.`Kinship` AS `Kinship`,
+        `service_relativesconfirmation`.`Kinship_ChildrenNum` AS `Kinship_ChildrenNum`,
+        `service_relativesconfirmation`.`KinshipConfirmationSign` AS `KinshipConfirmationSign`,
+        `service_relativesconfirmation`.`SignDate` AS `SignDate`,
+        `service_relativesconfirmation`.`del_flag` AS `delFlag`,
+        `service_relativesconfirmation`.`create_by` AS `createBy`,
+        `service_relativesconfirmation`.`create_time` AS `createTime`,
+        `service_relativesconfirmation`.`update_by` AS `updateBy`,
+        `service_relativesconfirmation`.`update_time` AS `updateTime`
+    FROM
+
+            `service_donatebaseinfo`
+            LEFT JOIN `service_relativesconfirmation` ON
+                `service_donatebaseinfo`.`ID` = `service_relativesconfirmation`.`InfoID`
+        LEFT JOIN `base_organization` ON
+        `base_organization`.`OrganizationID` = `service_donatebaseinfo`.`TreatmentHospitalNo`
+
+        <where>
+            <if test="donorno != null  and donorno != ''"> and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
+            <if test="name != null  and name != ''"> and `service_donatebaseinfo`.`Name` like concat('%', #{name}, '%')</if>
+            <if test="idcardno != null  and idcardno != ''"> and `service_donatebaseinfo`.`IDCardNo` = #{idcardno}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}</if>
+            <if test="recordstate != null  and recordstate != ''"> and `service_donatebaseinfo`.`RecordState` = #{recordstate}</if>
+            <if test="basecreateby != null  and basecreateby != ''"> and `service_donatebaseinfo`.`create_by` = #{basecreateby}</if>
+            <if test="infoid != null  and infoid != ''"> and `service_relativesconfirmation`.`InfoID` = #{infoid}</if>
+            <if test="starttime != null "> and `service_relativesconfirmation`.SignDate >= #{starttime} </if>
+            <if test="endtime != null ">  and `service_relativesconfirmation`.SignDate &lt;= #{endtime}</if>
+            <if test="reporterno != null  and reporterno != ''"> and `service_donatebaseinfo`.ReporterNo = #{reporterno}</if>
+            <if test="city != null and city != ''"> and `base_organization`.`City` = #{city}</if>
+            <if test="residenceprovince != null and residenceprovince != ''"> and `service_relativesconfirmation`.`ResidenceProvince` = #{residenceprovince}</if>
+            <if test="residencecity != null and residencecity != ''"> and `service_relativesconfirmation`.`ResidenceCity` = #{residencecity}</if>
+            <if test="residencetown != null and residencetown != ''"> and `service_relativesconfirmation`.`ResidenceTown` = #{residencetown}</if>
+
+    </where>
+
+        order by `service_relativesconfirmation`.`create_time` desc
+
+    </select>
+    <select id="countNumber" resultType="java.lang.Integer">
+        select count(*) from service_relativesconfirmation
+        where SignDate >= #{starttime} and SignDate &lt;= #{endtime}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceSystemmessageMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceSystemmessageMapper.xml
new file mode 100644
index 0000000..6bb26c7
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceSystemmessageMapper.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceSystemmessageMapper">
+    
+    <resultMap type="ServiceSystemmessage" id="ServiceSystemmessageResult">
+        <result property="id"    column="ID"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="senduserno"    column="SendUserNo"    />
+        <result property="sendusername"    column="SendUserName"    />
+        <result property="receiveuserno"    column="ReceiveUserNo"    />
+        <result property="receiveusername"    column="ReceiveUserName"    />
+        <result property="messagecontent"    column="MessageContent"    />
+        <result property="messagetype"    column="MessageType"    />
+        <result property="isread"    column="IsRead"    />
+        <result property="readtime"    column="ReadTime"    />
+        <result property="applytype"    column="ApplyType"    />
+        <result property="fundtype"    column="FundType"    />
+        <result property="relevantno"    column="RelevantNo"    />
+        <result property="messagetitle"    column="MessageTitle"    />
+
+    </resultMap>
+
+    <sql id="selectServiceSystemmessageVo">
+        select ID, del_flag, create_by, create_time, update_by, update_time, SendUserNo, SendUserName, ReceiveUserNo, ReceiveUserName, MessageContent, MessageType, IsRead, ReadTime, ApplyType, FundType,RelevantNo,MessageTitle from service_systemmessage
+    </sql>
+
+    <select id="selectServiceSystemmessageList" parameterType="ServiceSystemmessage" resultMap="ServiceSystemmessageResult">
+        <include refid="selectServiceSystemmessageVo"/>
+        <where>
+            <if test="senduserno != null  and senduserno != ''"> and SendUserNo = #{senduserno}</if>
+            <if test="sendusername != null  and sendusername != ''"> and SendUserName like concat('%', #{sendusername}, '%')</if>
+            <if test="receiveuserno != null  and receiveuserno != ''"> and ReceiveUserNo = #{receiveuserno}</if>
+            <if test="receiveusername != null  and receiveusername != ''"> and ReceiveUserName like concat('%', #{receiveusername}, '%')</if>
+            <if test="messagecontent != null  and messagecontent != ''"> and MessageContent = #{messagecontent}</if>
+            <if test="messagetype != null "> and MessageType = #{messagetype}</if>
+            <if test="isread != null "> and IsRead = #{isread}</if>
+            <if test="readtime != null "> and ReadTime = #{readtime}</if>
+            <if test="applytype != null  and applytype != ''"> and ApplyType = #{applytype}</if>
+            <if test="fundtype != null "> and FundType = #{fundtype}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceTravelexpensestandardMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceTravelexpensestandardMapper.xml
new file mode 100644
index 0000000..c14ddf5
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceTravelexpensestandardMapper.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ServiceTravelexpensestandardMapper">
+    
+    <resultMap type="ServiceTravelexpensestandard" id="ServiceTravelexpensestandardResult">
+        <result property="id"    column="ID"    />
+        <result property="provincecode"    column="PROVINCECODE"    />
+        <result property="citycode"    column="CITYCODE"    />
+        <result property="towncode"    column="TOWNCODE"    />
+        <result property="begindate"    column="BEGINDATE"    />
+        <result property="enddate"    column="ENDDATE"    />
+        <result property="firstlevelcost"    column="FIRSTLEVELCOST"    />
+        <result property="secondlevelcost"    column="SECONDLEVELCOST"    />
+        <result property="thirdlevelcost"    column="THIRDLEVELCOST"    />
+        <result property="provincename"    column="PROVINCENAME"    />
+        <result property="cityname"    column="CITYNAME"    />
+        <result property="townname"    column="TOWNNAME"    />
+    </resultMap>
+
+    <sql id="selectServiceTravelexpensestandardVo">
+        select ID, PROVINCECODE, CITYCODE, TOWNCODE, BEGINDATE, ENDDATE, FIRSTLEVELCOST, SECONDLEVELCOST, THIRDLEVELCOST from service_travelexpensestandard
+    </sql>
+
+    <select id="selectServiceTravelexpensestandardList" parameterType="ServiceTravelexpensestandard" resultMap="ServiceTravelexpensestandardResult">
+        <include refid="selectServiceTravelexpensestandardVo"/>
+        <where>
+            <if test="provincecode != null  and provincecode != ''"> and PROVINCECODE = #{provincecode}</if>
+            <if test="citycode != null  and citycode != ''"> and CITYCODE = #{citycode}</if>
+            <if test="towncode != null  and towncode != ''"> and TOWNCODE = #{towncode}</if>
+            <if test="begindate != null  and begindate != ''"> and BEGINDATE = #{begindate}</if>
+            <if test="enddate != null  and enddate != ''"> and ENDDATE = #{enddate}</if>
+        </where>
+    </select>
+
+    <select id="getStandard" statementType="CALLABLE" resultType="com.ruoyi.project.domain.vo.SpTravelExpenseStandardOut">
+        call SP_TRAVEL_EXPENSE_STANDARD(#{PAPROVINCECODE,mode=IN,jdbcType=VARCHAR},#{PACITYCODE,mode=IN,jdbcType=VARCHAR},#{PATOWNCODE,mode=IN,jdbcType=VARCHAR},#{PABEGINDATE,mode=IN,jdbcType=VARCHAR},#{PAENDDATE,mode=IN,jdbcType=VARCHAR},#{STANDARDLEVEL,mode=IN,jdbcType=INTEGER})
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/VServiceDonateorganRegisterMapper.xml b/ruoyi-project/src/main/resources/mapper/project/VServiceDonateorganRegisterMapper.xml
new file mode 100644
index 0000000..3bc0521
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/VServiceDonateorganRegisterMapper.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.VServiceDonateorganRegisterMapper">
+    
+    <resultMap type="VServiceDonateorganRegister" id="VServiceDonateorganRegisterResult">
+        <result property="id"    column="ID"    />
+        <result property="name"    column="NAME"    />
+        <result property="sex"    column="Sex"    />
+        <result property="idcardno"    column="IDCardNo"    />
+        <result property="age"    column="Age"    />
+        <result property="ageunit"    column="AgeUnit"    />
+        <result property="birthday"    column="Birthday"    />
+        <result property="phone"    column="Phone"    />
+        <result property="residenceaddress"    column="ResidenceAddress"    />
+        <result property="donorno"    column="DonorNo"    />
+        <result property="organno"    column="OrganNo"    />
+        <result property="organname"    column="OrganName"    />
+        <result property="organstate"    column="OrganState"    />
+        <result property="organnumber"    column="OrganNumber"    />
+        <result property="organgettime"    column="OrganGetTime"    />
+        <result property="organgetdoct"    column="OrganGetDoct"    />
+        <result property="gainhospitalno"    column="GainHospitalNo"    />
+        <result property="gainhospitalname"    column="GainHospitalName"    />
+        <result property="transplanthospitalno"    column="TransplantHospitalNo"    />
+        <result property="transplanthospitalname"    column="TransplantHospitalName"    />
+        <result property="transplantdoct"    column="TransplantDoct"    />
+        <result property="transplanttime"    column="TransplantTime"    />
+        <result property="applicantusername"    column="ApplicantUserName"    />
+        <result property="applicanttime"    column="ApplicantTime"    />
+        <result property="checkusername"    column="CheckUserName"    />
+        <result property="checktime"    column="CheckTime"    />
+        <result property="checksuggestion"    column="CheckSuggestion"    />
+        <result property="allocationstatus"    column="AllocationStatus"    />
+        <result property="acceptname"    column="AcceptName"    />
+        <result property="acceptsex"    column="AcceptSex"    />
+        <result property="acceptidcard"    column="AcceptIdcard"    />
+        <result property="acceptage"    column="AcceptAge"    />
+        <result property="acceptageunit"    column="AcceptAgeUnit"    />
+        <result property="acceptphone"    column="AcceptPhone"    />
+        <result property="acceptresidenceaddress"    column="AcceptResidenceAddress"    />
+    </resultMap>
+
+    <sql id="selectVServiceDonateorganRegisterVo">
+        select ID, NAME, Sex, IDCardNo, Age, AgeUnit, Birthday, Phone, ResidenceAddress, DonorNo, OrganNo, OrganName, OrganState, OrganNumber, OrganGetTime, OrganGetDoct, GainHospitalNo, GainHospitalName, TransplantHospitalNo, TransplantHospitalName, TransplantDoct, TransplantTime, ApplicantUserName, ApplicantTime, CheckUserName, CheckTime, CheckSuggestion, AllocationStatus, AcceptName, AcceptSex, AcceptIdcard, AcceptAge, AcceptAgeUnit, AcceptPhone, AcceptResidenceAddress from v_service_donateorgan_register
+    </sql>
+
+    <select id="selectVServiceDonateorganRegisterList" parameterType="VServiceDonateorganRegister" resultMap="VServiceDonateorganRegisterResult">
+        <include refid="selectVServiceDonateorganRegisterVo"/>
+        <where>
+            <if test="name != null  and name != ''"> and NAME like concat('%', #{name}, '%')</if>
+            <if test="idcardno != null  and idcardno != ''"> and IDCardNo = #{idcardno}</if>
+            <if test="organno != null  and organno != ''"> and OrganNo = #{organno}</if>
+            <if test="organname != null  and organname != ''"> and OrganName like concat('%', #{organname}, '%')</if>
+            <if test="organstate != null "> and OrganState = #{organstate}</if>
+            <if test="organnumber != null  and organnumber != ''"> and OrganNumber = #{organnumber}</if>
+            <if test="organgettime != null "> and OrganGetTime = #{organgettime}</if>
+            <if test="gainhospitalname != null  and gainhospitalname != ''"> and GainHospitalName like concat('%', #{gainhospitalname}, '%')</if>
+            <if test="transplanthospitalname != null  and transplanthospitalname != ''"> and TransplantHospitalName like concat('%', #{transplanthospitalname}, '%')</if>
+            <if test="transplanttime != null "> and TransplantTime = #{transplanttime}</if>
+            <if test="applicantusername != null  and applicantusername != ''"> and ApplicantUserName like concat('%', #{applicantusername}, '%')</if>
+            <if test="applicanttime != null "> and ApplicantTime = #{applicanttime}</if>
+            <if test="checkusername != null  and checkusername != ''"> and CheckUserName like concat('%', #{checkusername}, '%')</if>
+            <if test="checktime != null "> and CheckTime = #{checktime}</if>
+            <if test="acceptname != null  and acceptname != ''"> and AcceptName like concat('%', #{acceptname}, '%')</if>
+            <if test="acceptidcard != null  and acceptidcard != ''"> and AcceptIdcard = #{acceptidcard}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3